-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdasm.txt
179 lines (178 loc) · 4.89 KB
/
dasm.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
.method public hidebysig static void Interpret(string script) cil managed
{
// Code size 360 (0x168)
.maxstack 3
.locals init ([0] char[] data,
[1] int32 inst_p,
[2] int32 data_p,
[3] int32 level,
[4] int32 V_4,
[5] char CS$0$0000)
IL_0000: ldc.i4 0x7530
IL_0005: newarr [mscorlib]System.Char
IL_000a: stloc.0
IL_000b: ldc.i4.0
IL_000c: stloc.1
IL_000d: ldc.i4.0
IL_000e: stloc.2
IL_000f: br IL_015b
IL_0014: ldarg.0
IL_0015: ldloc.1
IL_0016: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_001b: stloc.s CS$0$0000
IL_001d: ldloc.s CS$0$0000
IL_001f: ldc.i4.s 43
IL_0021: sub
IL_0022: switch (
IL_007a,
IL_00bb,
IL_0094,
IL_00ae)
IL_0037: ldloc.s CS$0$0000
IL_0039: ldc.i4.s 60
IL_003b: sub
IL_003c: switch (
IL_0071,
IL_0157,
IL_0068)
IL_004d: ldloc.s CS$0$0000
IL_004f: ldc.i4.s 91
IL_0051: sub
IL_0052: switch (
IL_00c9,
IL_0157,
IL_0112)
IL_0063: br IL_0157
IL_0068: ldloc.2
IL_0069: ldc.i4.1
IL_006a: add
IL_006b: stloc.2
IL_006c: br IL_0157
IL_0071: ldloc.2
IL_0072: ldc.i4.1
IL_0073: sub
IL_0074: stloc.2
IL_0075: br IL_0157
IL_007a: ldloc.0
IL_007b: ldloc.2
IL_007c: ldelema [mscorlib]System.Char
IL_0081: dup
IL_0082: ldobj [mscorlib]System.Char
IL_0087: ldc.i4.1
IL_0088: add
IL_0089: conv.u2
IL_008a: stobj [mscorlib]System.Char
IL_008f: br IL_0157
IL_0094: ldloc.0
IL_0095: ldloc.2
IL_0096: ldelema [mscorlib]System.Char
IL_009b: dup
IL_009c: ldobj [mscorlib]System.Char
IL_00a1: ldc.i4.1
IL_00a2: sub
IL_00a3: conv.u2
IL_00a4: stobj [mscorlib]System.Char
IL_00a9: br IL_0157
IL_00ae: ldloc.0
IL_00af: ldloc.2
IL_00b0: ldelem.u2
IL_00b1: call void [mscorlib]System.Console::Write(char)
IL_00b6: br IL_0157
IL_00bb: ldloc.0
IL_00bc: ldloc.2
IL_00bd: call int32 [mscorlib]System.Console::Read()
IL_00c2: conv.u2
IL_00c3: stelem.i2
IL_00c4: br IL_0157
IL_00c9: ldloc.0
IL_00ca: ldloc.2
IL_00cb: ldelem.u2
IL_00cc: brtrue IL_0157
IL_00d1: ldc.i4.0
IL_00d2: stloc.3
IL_00d3: br.s IL_0103
IL_00d5: ldarg.0
IL_00d6: ldloc.1
IL_00d7: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_00dc: ldc.i4.s 93
IL_00de: bne.un.s IL_00e3
IL_00e0: ldloc.3
IL_00e1: brfalse.s IL_0157
IL_00e3: ldarg.0
IL_00e4: ldloc.1
IL_00e5: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_00ea: ldc.i4.s 93
IL_00ec: bne.un.s IL_00f4
IL_00ee: ldloc.3
IL_00ef: ldc.i4.1
IL_00f0: sub
IL_00f1: stloc.3
IL_00f2: br.s IL_0103
IL_00f4: ldarg.0
IL_00f5: ldloc.1
IL_00f6: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_00fb: ldc.i4.s 91
IL_00fd: bne.un.s IL_0103
IL_00ff: ldloc.3
IL_0100: ldc.i4.1
IL_0101: add
IL_0102: stloc.3
IL_0103: ldloc.1
IL_0104: ldc.i4.1
IL_0105: add
IL_0106: dup
IL_0107: stloc.1
IL_0108: ldarg.0
IL_0109: callvirt instance int32 [mscorlib]System.String::get_Length()
IL_010e: blt.s IL_00d5
IL_0110: br.s IL_0157
IL_0112: ldloc.0
IL_0113: ldloc.2
IL_0114: ldelem.u2
IL_0115: brfalse.s IL_0157
IL_0117: ldc.i4.0
IL_0118: stloc.s V_4
IL_011a: br.s IL_014f
IL_011c: ldarg.0
IL_011d: ldloc.1
IL_011e: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_0123: ldc.i4.s 91
IL_0125: bne.un.s IL_012b
IL_0127: ldloc.s V_4
IL_0129: brfalse.s IL_0157
IL_012b: ldarg.0
IL_012c: ldloc.1
IL_012d: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_0132: ldc.i4.s 91
IL_0134: bne.un.s IL_013e
IL_0136: ldloc.s V_4
IL_0138: ldc.i4.1
IL_0139: sub
IL_013a: stloc.s V_4
IL_013c: br.s IL_014f
IL_013e: ldarg.0
IL_013f: ldloc.1
IL_0140: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_0145: ldc.i4.s 93
IL_0147: bne.un.s IL_014f
IL_0149: ldloc.s V_4
IL_014b: ldc.i4.1
IL_014c: add
IL_014d: stloc.s V_4
IL_014f: ldloc.1
IL_0150: ldc.i4.1
IL_0151: sub
IL_0152: dup
IL_0153: stloc.1
IL_0154: ldc.i4.0
IL_0155: bge.s IL_011c
IL_0157: ldloc.1
IL_0158: ldc.i4.1
IL_0159: add
IL_015a: stloc.1
IL_015b: ldloc.1
IL_015c: ldarg.0
IL_015d: callvirt instance int32 [mscorlib]System.String::get_Length()
IL_0162: blt IL_0014
IL_0167: ret
} // end of method Program::Interpret