能力值:
( LV9,RANK:210 )
|
-
-
3 楼
=============
VM的核心代码,后面的注释都是自己分析的时候为了方便弄上的,很多地方前后表达很含糊,前后风格不统一,不少地方还弄错了,也有些地方当时觉得一看就明白了,没加注释,大家对付看吧,实在没力气改了!
00400DB1 \8B4D 00 mov ecx, dword ptr [ebp] ; EBP读入指令流;vm_opcode59
00400DB4 83C5 04 add ebp, 4 ; VM_EIP++
00400DB7 49 dec ecx ; 58
00400DB8 81F9 9C000000 cmp ecx, 9C ; 9c,VM_exit
00400DBE 0F87 1B0E0000 ja 00401BDF
00400DC4 FF248D 901D4000 /jmp dword ptr [ecx*4+401D90] ; ecx=code编号-1;code处理函数入口地址=ecx*4+401d90
00400DCB 8B45 00 |mov eax, dword ptr [ebp]
00400DCE 8B1C30 |mov ebx, dword ptr [eax+esi]
00400DD1 83C5 04 |add ebp, 4
00400DD4 895C24 10 |mov dword ptr [esp+10], ebx
00400DD8 E9 E90D0000 |jmp 00401BC6
00400DDD 8B45 00 |mov eax, dword ptr [ebp]
00400DE0 8B3C30 |mov edi, dword ptr [eax+esi]
00400DE3 83C5 04 |add ebp, 4
00400DE6 897C24 20 |mov dword ptr [esp+20], edi
00400DEA E9 D70D0000 |jmp 00401BC6
00400DEF 8B45 00 |mov eax, dword ptr [ebp] ; 取操作数;;VM_opcode 3a
00400DF2 8B5424 28 |mov edx, dword ptr [esp+28] ; 从28号寄存器取数/堆栈底部
00400DF6 83C5 04 |add ebp, 4 ; 指向下一指令
00400DF9 03C2 |add eax, edx ; 栈顶指针
00400DFB 8B1C30 |mov ebx, dword ptr [eax+esi] ; 从堆栈取数
00400DFE 895C24 10 |mov dword ptr [esp+10], ebx ; 操作数送10号寄存器
00400E02 E9 BF0D0000 |jmp 00401BC6 ; mov r10,[r28+C]
00400E07 8B45 00 |mov eax, dword ptr [ebp] ; 取操作数
00400E0A 8B4C24 28 |mov ecx, dword ptr [esp+28] ; 从28号寄存器取数
00400E0E 83C5 04 |add ebp, 4 ; 校正下一指令地址,这是因为指令长度是可变的
00400E11 03C1 |add eax, ecx ; 栈顶指针
00400E13 8B3C30 |mov edi, dword ptr [eax+esi] ; 出栈
00400E16 897C24 20 |mov dword ptr [esp+20], edi ; 送20号寄存器
00400E1A E9 A70D0000 |jmp 00401BC6 ; mov r20,r28+c
00400E1F 8B45 00 |mov eax, dword ptr [ebp]
00400E22 8B1430 |mov edx, dword ptr [eax+esi]
00400E25 8B1C16 |mov ebx, dword ptr [esi+edx]
00400E28 83C5 04 |add ebp, 4
00400E2B 895C24 10 |mov dword ptr [esp+10], ebx
00400E2F E9 920D0000 |jmp 00401BC6
00400E34 8B45 00 |mov eax, dword ptr [ebp]
00400E37 8B0430 |mov eax, dword ptr [eax+esi]
00400E3A 8B3C06 |mov edi, dword ptr [esi+eax]
00400E3D 83C5 04 |add ebp, 4
00400E40 897C24 20 |mov dword ptr [esp+20], edi
00400E44 E9 7D0D0000 |jmp 00401BC6
00400E49 8B45 00 |mov eax, dword ptr [ebp]
00400E4C 8B4C24 28 |mov ecx, dword ptr [esp+28]
00400E50 83C5 04 |add ebp, 4
00400E53 03C1 |add eax, ecx
00400E55 8B1430 |mov edx, dword ptr [eax+esi]
00400E58 8B1C16 |mov ebx, dword ptr [esi+edx]
00400E5B 895C24 10 |mov dword ptr [esp+10], ebx
00400E5F E9 620D0000 |jmp 00401BC6
00400E64 8B45 00 |mov eax, dword ptr [ebp]
00400E67 8B4C24 28 |mov ecx, dword ptr [esp+28]
00400E6B 83C5 04 |add ebp, 4
00400E6E 03C1 |add eax, ecx
00400E70 8B1430 |mov edx, dword ptr [eax+esi]
00400E73 8B3C16 |mov edi, dword ptr [esi+edx]
00400E76 897C24 20 |mov dword ptr [esp+20], edi
00400E7A E9 470D0000 |jmp 00401BC6
00400E7F 8B45 00 |mov eax, dword ptr [ebp]
00400E82 8B4C24 2C |mov ecx, dword ptr [esp+2C]
00400E86 83C5 04 |add ebp, 4
00400E89 3BD9 |cmp ebx, ecx
00400E8B 7C 0A |jl short 00400E97
00400E8D 3B5C24 14 |cmp ebx, dword ptr [esp+14]
00400E91 0F8C 820D0000 |jl 00401C19
00400E97 8B4C24 44 |mov ecx, dword ptr [esp+44]
00400E9B 3B59 24 |cmp ebx, dword ptr [ecx+24]
00400E9E 0F83 790D0000 |jnb 00401C1D
00400EA4 48 |dec eax ; Switch (cases 1..4)
00400EA5 74 25 |je short 00400ECC
00400EA7 48 |dec eax
00400EA8 74 15 |je short 00400EBF
00400EAA 83E8 02 |sub eax, 2
00400EAD 0F85 130D0000 |jnz 00401BC6
00400EB3 8B1C33 |mov ebx, dword ptr [ebx+esi] ; Case 4 of switch 00400EA4
00400EB6 895C24 10 |mov dword ptr [esp+10], ebx
00400EBA E9 070D0000 |jmp 00401BC6
00400EBF 0FB71C33 |movzx ebx, word ptr [ebx+esi] ; Case 2 of switch 00400EA4
00400EC3 895C24 10 |mov dword ptr [esp+10], ebx
00400EC7 E9 FA0C0000 |jmp 00401BC6
00400ECC 0FB61C33 |movzx ebx, byte ptr [ebx+esi] ; Case 1 of switch 00400EA4
00400ED0 895C24 10 |mov dword ptr [esp+10], ebx
00400ED4 E9 ED0C0000 |jmp 00401BC6
00400ED9 8B5D 00 |mov ebx, dword ptr [ebp] ; VM_opcode 8B
00400EDC 895C24 10 |mov dword ptr [esp+10], ebx
00400EE0 83C5 04 |add ebp, 4
00400EE3 E9 DE0C0000 |jmp 00401BC6 ; mov r10,C
00400EE8 8B7D 00 |mov edi, dword ptr [ebp] ; 取操作数
00400EEB 897C24 20 |mov dword ptr [esp+20], edi ; mov r20,edi
00400EEF 83C5 04 |add ebp, 4 ; 下一指令
00400EF2 E9 CF0C0000 |jmp 00401BC6 ; mov r20,c
00400EF7 8B5D 00 |mov ebx, dword ptr [ebp]
00400EFA 8B4424 28 |mov eax, dword ptr [esp+28]
00400EFE 83C5 04 |add ebp, 4
00400F01 03D8 |add ebx, eax
00400F03 895C24 10 |mov dword ptr [esp+10], ebx
00400F07 E9 BA0C0000 |jmp 00401BC6
00400F0C 8B7D 00 |mov edi, dword ptr [ebp]
00400F0F 8B4424 28 |mov eax, dword ptr [esp+28]
00400F13 83C5 04 |add ebp, 4
00400F16 03F8 |add edi, eax
00400F18 897C24 20 |mov dword ptr [esp+20], edi
00400F1C E9 A50C0000 |jmp 00401BC6
00400F21 8B45 00 |mov eax, dword ptr [ebp]
00400F24 83C5 04 |add ebp, 4
00400F27 891C30 |mov dword ptr [eax+esi], ebx
00400F2A E9 930C0000 |jmp 00401BC2
00400F2F 8B45 00 |mov eax, dword ptr [ebp]
00400F32 83C5 04 |add ebp, 4
00400F35 893C30 |mov dword ptr [eax+esi], edi
00400F38 E9 850C0000 |jmp 00401BC2
00400F3D 8B45 00 |mov eax, dword ptr [ebp] ; 取操作数;op27
00400F40 8B4C24 28 |mov ecx, dword ptr [esp+28] ; mov ecx,r28
00400F44 83C5 04 |add ebp, 4 ; 指向下一指令
00400F47 03C1 |add eax, ecx
00400F49 891C30 |mov dword ptr [eax+esi], ebx ; mov [eax],ebx
00400F4C E9 710C0000 |jmp 00401BC2 ; mov [r28+c],r10
00400F51 8B45 00 |mov eax, dword ptr [ebp]
00400F54 8B5424 28 |mov edx, dword ptr [esp+28]
00400F58 83C5 04 |add ebp, 4
00400F5B 03C2 |add eax, edx
00400F5D 893C30 |mov dword ptr [eax+esi], edi
00400F60 E9 5D0C0000 |jmp 00401BC2
00400F65 8B45 00 |mov eax, dword ptr [ebp]
00400F68 8B0430 |mov eax, dword ptr [eax+esi]
00400F6B 83C5 04 |add ebp, 4
00400F6E 891C06 |mov dword ptr [esi+eax], ebx
00400F71 E9 4C0C0000 |jmp 00401BC2
00400F76 8B45 00 |mov eax, dword ptr [ebp]
00400F79 8B0C30 |mov ecx, dword ptr [eax+esi]
00400F7C 83C5 04 |add ebp, 4
00400F7F 893C0E |mov dword ptr [esi+ecx], edi
00400F82 E9 3B0C0000 |jmp 00401BC2
00400F87 8B45 00 |mov eax, dword ptr [ebp]
00400F8A 8B5424 28 |mov edx, dword ptr [esp+28]
00400F8E 83C5 04 |add ebp, 4
00400F91 03C2 |add eax, edx
00400F93 8B0430 |mov eax, dword ptr [eax+esi]
00400F96 891C06 |mov dword ptr [esi+eax], ebx
00400F99 E9 240C0000 |jmp 00401BC2
00400F9E 8B45 00 |mov eax, dword ptr [ebp]
00400FA1 8B4C24 28 |mov ecx, dword ptr [esp+28]
00400FA5 83C5 04 |add ebp, 4
00400FA8 03C1 |add eax, ecx
00400FAA 8B1430 |mov edx, dword ptr [eax+esi]
00400FAD 893C16 |mov dword ptr [esi+edx], edi
00400FB0 E9 0D0C0000 |jmp 00401BC2
00400FB5 3B7C24 2C |cmp edi, dword ptr [esp+2C]
00400FB9 7C 0A |jl short 00400FC5
00400FBB 3B7C24 14 |cmp edi, dword ptr [esp+14]
00400FBF 0F8C 350C0000 |jl 00401BFA
00400FC5 8B4424 44 |mov eax, dword ptr [esp+44]
00400FC9 3B78 24 |cmp edi, dword ptr [eax+24]
00400FCC 0F83 2C0C0000 |jnb 00401BFE
00400FD2 891C37 |mov dword ptr [edi+esi], ebx
00400FD5 E9 E80B0000 |jmp 00401BC2
00400FDA 8B45 00 |mov eax, dword ptr [ebp]
00400FDD 8B4C24 2C |mov ecx, dword ptr [esp+2C]
00400FE1 83C5 04 |add ebp, 4
00400FE4 3BF9 |cmp edi, ecx
00400FE6 7C 0A |jl short 00400FF2
00400FE8 3B7C24 14 |cmp edi, dword ptr [esp+14]
00400FEC 0F8C 270C0000 |jl 00401C19
00400FF2 8B4C24 44 |mov ecx, dword ptr [esp+44]
00400FF6 3B79 24 |cmp edi, dword ptr [ecx+24]
00400FF9 0F83 1E0C0000 |jnb 00401C1D
00400FFF 48 |dec eax ; Switch (cases 1..4)
00401000 74 1D |je short 0040101F
00401002 48 |dec eax
00401003 74 11 |je short 00401016
00401005 83E8 02 |sub eax, 2
00401008 0F85 B80B0000 |jnz 00401BC6
0040100E 891C37 |mov dword ptr [edi+esi], ebx ; Case 4 of switch 00400FFF
00401011 E9 AC0B0000 |jmp 00401BC2
00401016 66:891C37 |mov word ptr [edi+esi], bx ; Case 2 of switch 00400FFF
0040101A E9 A30B0000 |jmp 00401BC2
0040101F 881C37 |mov byte ptr [edi+esi], bl ; Case 1 of switch 00400FFF
00401022 E9 9B0B0000 |jmp 00401BC2
00401027 8D1C9F |lea ebx, dword ptr [edi+ebx*4]
0040102A EB 0A |jmp short 00401036
0040102C 8B4D 00 |mov ecx, dword ptr [ebp]
0040102F D3E3 |shl ebx, cl
00401031 83C5 04 |add ebp, 4
00401034 03DF |add ebx, edi
00401036 3B5C24 2C |cmp ebx, dword ptr [esp+2C] ; opcode=97;;cmp r10,r2c
0040103A 7C 0A |jl short 00401046
0040103C 3B5C24 14 |cmp ebx, dword ptr [esp+14]
00401040 0F8C B40B0000 |jl 00401BFA
00401046 8B4424 44 |mov eax, dword ptr [esp+44] ; mov,r44
0040104A 3B58 24 |cmp ebx, dword ptr [eax+24] ; cmp r10,r2c
0040104D 0F83 AB0B0000 |jnb 00401BFE
00401053 8B1C33 |mov ebx, dword ptr [ebx+esi] ; offiset 400='s'
00401056 895C24 10 |mov dword ptr [esp+10], ebx ; 操作数送10号寄存器/mov[reg,bx]
0040105A E9 670B0000 |jmp 00401BC6 ; mov r10,ds:[r10]
0040105F 8D1C9F |lea ebx, dword ptr [edi+ebx*4] ; 指令10/取offiset400
00401062 895C24 10 |mov dword ptr [esp+10], ebx ; 送10号寄存器
00401066 E9 5B0B0000 |jmp 00401BC6 ; lea r10,[r10*4+r20]
0040106B 8B4D 00 |mov ecx, dword ptr [ebp]
0040106E 83C5 04 |add ebp, 4
00401071 D3E3 |shl ebx, cl
00401073 03DF |add ebx, edi ; VM_opcode 34
00401075 895C24 10 |mov dword ptr [esp+10], ebx ; add r10,r20
00401079 E9 480B0000 |jmp 00401BC6
0040107E 8B45 00 |mov eax, dword ptr [ebp]
00401081 83C5 04 |add ebp, 4
00401084 83F8 04 |cmp eax, 4
00401087 0F83 390B0000 |jnb 00401BC6
0040108D B9 04000000 |mov ecx, 4
00401092 2BC8 |sub ecx, eax
00401094 33D9 |xor ebx, ecx
00401096 895C24 10 |mov dword ptr [esp+10], ebx
0040109A E9 270B0000 |jmp 00401BC6
0040109F 8B45 00 |mov eax, dword ptr [ebp]
004010A2 83C5 04 |add ebp, 4
004010A5 83F8 04 |cmp eax, 4
004010A8 0F83 180B0000 |jnb 00401BC6
004010AE BA 04000000 |mov edx, 4
004010B3 2BD0 |sub edx, eax
004010B5 33FA |xor edi, edx
004010B7 897C24 20 |mov dword ptr [esp+20], edi
004010BB E9 060B0000 |jmp 00401BC6
004010C0 8B45 00 |mov eax, dword ptr [ebp]
004010C3 83C5 04 |add ebp, 4
004010C6 83F8 06 |cmp eax, 6 ; Switch (cases 0..6)
004010C9 0F87 F70A0000 |ja 00401BC6
004010CF FF2485 04204000 |jmp dword ptr [eax*4+402004]
004010D6 8B4424 34 |mov eax, dword ptr [esp+34] ; Case 0 of switch 004010C6
004010DA 8B58 0C |mov ebx, dword ptr [eax+C]
004010DD 895C24 10 |mov dword ptr [esp+10], ebx
004010E1 E9 E00A0000 |jmp 00401BC6
004010E6 8B4C24 34 |mov ecx, dword ptr [esp+34] ; Case 1 of switch 004010C6
004010EA 8B59 10 |mov ebx, dword ptr [ecx+10]
004010ED 895C24 10 |mov dword ptr [esp+10], ebx
004010F1 E9 D00A0000 |jmp 00401BC6
004010F6 8B5C24 2C |mov ebx, dword ptr [esp+2C] ; Case 2 of switch 004010C6
004010FA 895C24 10 |mov dword ptr [esp+10], ebx
004010FE E9 C30A0000 |jmp 00401BC6
00401103 8B5424 44 |mov edx, dword ptr [esp+44] ; Case 3 of switch 004010C6
00401107 8B5A 24 |mov ebx, dword ptr [edx+24]
0040110A 895C24 10 |mov dword ptr [esp+10], ebx
0040110E E9 B30A0000 |jmp 00401BC6
00401113 8B5C24 14 |mov ebx, dword ptr [esp+14] ; Case 4 of switch 004010C6
00401117 895C24 10 |mov dword ptr [esp+10], ebx
0040111B E9 A60A0000 |jmp 00401BC6
00401120 8B5C24 28 |mov ebx, dword ptr [esp+28] ; Case 5 of switch 004010C6
00401124 895C24 10 |mov dword ptr [esp+10], ebx
00401128 E9 990A0000 |jmp 00401BC6
0040112D 8B4424 24 |mov eax, dword ptr [esp+24] ; Case 6 of switch 004010C6
00401131 8BDD |mov ebx, ebp
00401133 2BD8 |sub ebx, eax
00401135 895C24 10 |mov dword ptr [esp+10], ebx
00401139 E9 880A0000 |jmp 00401BC6
0040113E 8B45 00 |mov eax, dword ptr [ebp]
00401141 83C0 FE |add eax, -2
00401144 83C5 04 |add ebp, 4
00401147 83F8 04 |cmp eax, 4 ; Switch (cases 0..4)
0040114A 0F87 760A0000 |ja 00401BC6
00401150 FF2485 20204000 |jmp dword ptr [eax*4+402020]
00401157 895C24 2C |mov dword ptr [esp+2C], ebx ; Case 0 of switch 00401147
0040115B E9 660A0000 |jmp 00401BC6
00401160 895C24 14 |mov dword ptr [esp+14], ebx ; Case 2 of switch 00401147
00401164 E9 5D0A0000 |jmp 00401BC6
00401169 895C24 28 |mov dword ptr [esp+28], ebx ; Case 3 of switch 00401147
0040116D E9 540A0000 |jmp 00401BC6
00401172 8B4424 24 |mov eax, dword ptr [esp+24] ; Case 4 of switch 00401147
00401176 8D2C03 |lea ebp, dword ptr [ebx+eax]
00401179 E9 480A0000 |jmp 00401BC6
0040117E 8BDF |mov ebx, edi ; VM_opcode 3c
00401180 895C24 10 |mov dword ptr [esp+10], ebx
00401184 E9 3D0A0000 |jmp 00401BC6 ; mov r10,r20
00401189 8BFB |mov edi, ebx
0040118B 897C24 20 |mov dword ptr [esp+20], edi
0040118F E9 320A0000 |jmp 00401BC6
00401194 8BC3 |mov eax, ebx
00401196 8BDF |mov ebx, edi
00401198 8BF8 |mov edi, eax
0040119A 895C24 10 |mov dword ptr [esp+10], ebx
0040119E 897C24 20 |mov dword ptr [esp+20], edi
004011A2 E9 1F0A0000 |jmp 00401BC6
004011A7 8B4424 14 |mov eax, dword ptr [esp+14] ; 取栈顶指针mov eax,r14
004011AB 83E8 04 |sub eax, 4 ; -4
004011AE 894424 14 |mov dword ptr [esp+14], eax ; 修改栈顶指针mov r14,eax
004011B2 891C30 |mov dword ptr [eax+esi], ebx ; 入栈push ebx/movebx,r10,esi指向栈底
004011B5 E9 080A0000 |jmp 00401BC2 ; push r10
004011BA 8B4424 14 |mov eax, dword ptr [esp+14]
004011BE 83E8 04 |sub eax, 4
004011C1 894424 14 |mov dword ptr [esp+14], eax
004011C5 893C30 |mov dword ptr [eax+esi], edi
004011C8 E9 F5090000 |jmp 00401BC2
004011CD 8B4D 00 |mov ecx, dword ptr [ebp] ; 取操作数
004011D0 8B4424 14 |mov eax, dword ptr [esp+14] ; mov eax,r14
004011D4 83C5 04 |add ebp, 4 ; 指向下一条指令
004011D7 83E8 04 |sub eax, 4 ; sub r14,4
004011DA 894424 14 |mov dword ptr [esp+14], eax ; 更新栈顶指针
004011DE 890C30 |mov dword ptr [eax+esi], ecx ; 操作数入栈
004011E1 E9 DC090000 |jmp 00401BC2 ; push C
004011E6 8B4D 00 |mov ecx, dword ptr [ebp]
004011E9 83C5 04 |add ebp, 4
004011EC 85C9 |test ecx, ecx
004011EE 0F84 D2090000 |je 00401BC6
004011F4 8B4424 14 |mov eax, dword ptr [esp+14]
004011F8 8B5424 30 |mov edx, dword ptr [esp+30]
004011FC 8D6424 00 |lea esp, dword ptr [esp]
00401200 83E8 04 |/sub eax, 4
00401203 49 ||dec ecx
00401204 891C10 ||mov dword ptr [eax+edx], ebx
00401207 8B5C24 10 ||mov ebx, dword ptr [esp+10]
0040120B ^ 75 F3 |\jnz short 00401200
0040120D 8B7424 30 |mov esi, dword ptr [esp+30]
00401211 8B7C24 20 |mov edi, dword ptr [esp+20]
00401215 894424 14 |mov dword ptr [esp+14], eax
00401219 E9 A8090000 |jmp 00401BC6
0040121E 8B4D 00 |mov ecx, dword ptr [ebp]
00401221 8B4424 14 |mov eax, dword ptr [esp+14]
00401225 8B0C31 |mov ecx, dword ptr [ecx+esi]
00401228 83C5 04 |add ebp, 4
0040122B 83E8 04 |sub eax, 4
0040122E 894424 14 |mov dword ptr [esp+14], eax
00401232 890C30 |mov dword ptr [eax+esi], ecx
00401235 E9 88090000 |jmp 00401BC2
0040123A 8B45 00 |mov eax, dword ptr [ebp]
0040123D 8B4C24 14 |mov ecx, dword ptr [esp+14]
00401241 8B5424 28 |mov edx, dword ptr [esp+28]
00401245 83E9 04 |sub ecx, 4
00401248 83C5 04 |add ebp, 4
0040124B 03C2 |add eax, edx
0040124D 8B0430 |mov eax, dword ptr [eax+esi]
00401250 894C24 14 |mov dword ptr [esp+14], ecx
00401254 890431 |mov dword ptr [ecx+esi], eax
00401257 E9 66090000 |jmp 00401BC2
0040125C 8B4424 14 |mov eax, dword ptr [esp+14]
00401260 8B1C30 |mov ebx, dword ptr [eax+esi]
00401263 83C0 04 |add eax, 4
00401266 895C24 10 |mov dword ptr [esp+10], ebx
0040126A 894424 14 |mov dword ptr [esp+14], eax
0040126E E9 53090000 |jmp 00401BC6
00401273 8B4424 14 |mov eax, dword ptr [esp+14] ; 取栈顶指针;mov eax,r14
00401277 8B3C30 |mov edi, dword ptr [eax+esi] ; mov edi,[r14]
0040127A 83C0 04 |add eax, 4 ; 栈顶指针+4
0040127D 897C24 20 |mov dword ptr [esp+20], edi ; mov r20,edi
00401281 894424 14 |mov dword ptr [esp+14], eax ; 修改栈顶指针;op47
00401285 E9 3C090000 |jmp 00401BC6 ; pop r20
0040128A 8B4424 14 |mov eax, dword ptr [esp+14] ; mov eax,r14
0040128E 8B4D 00 |mov ecx, dword ptr [ebp] ; 取操作数;mov ecx,c
00401291 8BF8 |mov edi, eax ; mov edi,r14
00401293 03C1 |add eax, ecx ; add eax,c
00401295 8B4C24 2C |mov ecx, dword ptr [esp+2C] ; mov r2c,ecx
00401299 83C1 40 |add ecx, 40 ; add,ecx,40
0040129C 83C5 04 |add ebp, 4 ; 指向下一个指令
0040129F 3BC8 |cmp ecx, eax ; cmp r2c+40,r14+c
004012A1 897C24 20 |mov dword ptr [esp+20], edi ; mov r20,r14
004012A5 894424 14 |mov dword ptr [esp+14], eax ; mov r14 ,r14+c
004012A9 ^ 0F8F F5FAFFFF |jg 00400DA4 ; if r2c+40<r14+c then VM_exit
004012AF 8B5424 44 |mov edx, dword ptr [esp+44]
004012B3 3B42 24 |cmp eax, dword ptr [edx+24]
004012B6 ^ 0F8F 84FAFFFF |jg 00400D40 ; if r14+c>[r44+24] then VM_exit
004012BC E9 05090000 |jmp 00401BC6 ; mov r20,r14;mov r14,r14+c;
004012C1 8B4424 2C |mov eax, dword ptr [esp+2C]
004012C5 8B4D 00 |mov ecx, dword ptr [ebp]
004012C8 8B5424 14 |mov edx, dword ptr [esp+14]
004012CC 8BF8 |mov edi, eax
004012CE 03C1 |add eax, ecx
004012D0 8D48 40 |lea ecx, dword ptr [eax+40]
004012D3 83C5 04 |add ebp, 4
004012D6 3BCA |cmp ecx, edx
004012D8 897C24 20 |mov dword ptr [esp+20], edi
004012DC 894424 2C |mov dword ptr [esp+2C], eax
004012E0 ^ 0F8F BEFAFFFF |jg 00400DA4
004012E6 8B5424 44 |mov edx, dword ptr [esp+44]
004012EA 3B42 1C |cmp eax, dword ptr [edx+1C]
004012ED ^ 0F8C 63FAFFFF |jl 00400D56
004012F3 E9 CE080000 |jmp 00401BC6
004012F8 8B4424 14 |mov eax, dword ptr [esp+14] ; mov eax,r14;;VM_esp=[esp+14]
004012FC 8B5424 2C |mov edx, dword ptr [esp+2C] ; mov edx,r2c
00401300 8B4C24 28 |mov ecx, dword ptr [esp+28] ; mov ecx,r28
00401304 83E8 04 |sub eax, 4 ; r14-4
00401307 83C2 40 |add edx, 40
0040130A 3BD0 |cmp edx, eax ; if r2c+40>r14-4 then
0040130C 894424 14 |mov dword ptr [esp+14], eax ; mov r14,r14-4
00401310 890C30 |mov dword ptr [eax+esi], ecx ; mov [r14-4],r28
00401313 894424 28 |mov dword ptr [esp+28], eax ; mov r28,r14-4
00401317 ^ 0F8F 87FAFFFF |jg 00400DA4 ; sub r14,4;;push r28;;mov r28,r14-4
0040131D E9 A0080000 |jmp 00401BC2
00401322 8B4424 14 |mov eax, dword ptr [esp+14]
00401326 8B0C30 |mov ecx, dword ptr [eax+esi]
00401329 8B6C30 04 |mov ebp, dword ptr [eax+esi+4]
0040132D 83C0 04 |add eax, 4
00401330 83C0 04 |add eax, 4
00401333 894424 14 |mov dword ptr [esp+14], eax
00401337 3B6C24 38 |cmp ebp, dword ptr [esp+38]
0040133B 894C24 28 |mov dword ptr [esp+28], ecx
0040133F 0F83 F3080000 |jnb 00401C38
00401345 8B5424 24 |mov edx, dword ptr [esp+24]
00401349 03EA |add ebp, edx
0040134B E9 76080000 |jmp 00401BC6
00401350 8B4424 14 |mov eax, dword ptr [esp+14] ; 取栈顶指针mov eax,r14
00401354 8B0C30 |mov ecx, dword ptr [eax+esi] ; 取栈顶元素mov ecx,[r14]
00401357 8B6C30 04 |mov ebp, dword ptr [eax+esi+4] ; 取栈顶第二个元素mov ebp,[r14+4]
0040135B 83C0 04 |add eax, 4 ; add eax,4
0040135E 894C24 28 |mov dword ptr [esp+28], ecx ; 栈顶元素送r28 mov r28,ecx
00401362 8B4C24 38 |mov ecx, dword ptr [esp+38] ; mov ecx,r38
00401366 83C0 04 |add eax, 4 ; add eax,4
00401369 3BE9 |cmp ebp, ecx
0040136B 0F83 C7080000 |jnb 00401C38 ; if [r14+4]>r28 then VM_exit
00401371 8B5424 24 |mov edx, dword ptr [esp+24] ; mov edx,r24
00401375 8B0C30 |mov ecx, dword ptr [eax+esi] ; 取栈顶第三个元素mov ecx,[r14+8]
00401378 03EA |add ebp, edx ; add ebp,r24;;VM_EIP+r24+栈顶第二个的元素
0040137A 8B5424 44 |mov edx, dword ptr [esp+44] ; mov edx,r44
0040137E 8D4408 04 |lea eax, dword ptr [eax+ecx+4] ; lea eax,[r14+8+[r14+8]+4];;ecx=4
00401382 894424 14 |mov dword ptr [esp+14], eax ; 栈顶指针指向原第5个元素mov r14,eax;;r14=r14+16
00401386 8942 20 |mov dword ptr [edx+20], eax ; mov [r44+20],eax
00401389 E9 38080000 |jmp 00401BC6 ; mov [r44+20],[r14+8+[r14+8]+4];;mov r14,[r14+8+[r14+8]+4];pop VM_EIP
0040138E 8B4C24 24 |mov ecx, dword ptr [esp+24]
00401392 8B4424 14 |mov eax, dword ptr [esp+14]
00401396 8BD5 |mov edx, ebp
00401398 2BD1 |sub edx, ecx
0040139A 83E8 04 |sub eax, 4
0040139D 83C2 04 |add edx, 4
004013A0 891430 |mov dword ptr [eax+esi], edx
004013A3 8B6D 00 |mov ebp, dword ptr [ebp]
004013A6 894424 14 |mov dword ptr [esp+14], eax
004013AA 03E9 |add ebp, ecx
004013AC E9 11080000 |jmp 00401BC2
004013B1 8B4424 14 |mov eax, dword ptr [esp+14]
004013B5 8B4C24 24 |mov ecx, dword ptr [esp+24]
004013B9 83E8 04 |sub eax, 4
004013BC 2BE9 |sub ebp, ecx
004013BE 892C30 |mov dword ptr [eax+esi], ebp
004013C1 8B5C24 10 |mov ebx, dword ptr [esp+10]
004013C5 894424 14 |mov dword ptr [esp+14], eax
004013C9 8D2C0B |lea ebp, dword ptr [ebx+ecx]
004013CC E9 F5070000 |jmp 00401BC6
004013D1 85DB |test ebx, ebx ; op82
004013D3 ^ 0F85 16FBFFFF |jnz 00400EEF ; if r10=0 then goto
004013D9 8B6D 00 |mov ebp, dword ptr [ebp]
004013DC 036C24 24 |add ebp, dword ptr [esp+24] ; jz c ;;r24
004013E0 E9 E1070000 |jmp 00401BC6
004013E5 85DB |test ebx, ebx
004013E7 ^ 0F84 02FBFFFF |je 00400EEF ; jne c
004013ED 8B6D 00 |mov ebp, dword ptr [ebp]
004013F0 036C24 24 |add ebp, dword ptr [esp+24]
004013F4 E9 CD070000 |jmp 00401BC6
004013F9 3BDF |cmp ebx, edi
004013FB ^ 0F85 EEFAFFFF |jnz 00400EEF
00401401 8B6D 00 |mov ebp, dword ptr [ebp]
00401404 036C24 24 |add ebp, dword ptr [esp+24]
00401408 E9 B9070000 |jmp 00401BC6
0040140D 3BDF |cmp ebx, edi
0040140F ^ 0F84 DAFAFFFF |je 00400EEF
00401415 8B6D 00 |mov ebp, dword ptr [ebp]
00401418 036C24 24 |add ebp, dword ptr [esp+24]
0040141C E9 A5070000 |jmp 00401BC6
00401421 3BDF |cmp ebx, edi
00401423 ^ 0F83 C6FAFFFF |jnb 00400EEF
00401429 8B6D 00 |mov ebp, dword ptr [ebp]
0040142C 036C24 24 |add ebp, dword ptr [esp+24]
00401430 E9 91070000 |jmp 00401BC6
00401435 3BDF |cmp ebx, edi
00401437 ^ 0F87 B2FAFFFF |ja 00400EEF
0040143D 8B6D 00 |mov ebp, dword ptr [ebp]
00401440 036C24 24 |add ebp, dword ptr [esp+24]
00401444 E9 7D070000 |jmp 00401BC6
00401449 3BDF |cmp ebx, edi
0040144B ^ 0F86 9EFAFFFF |jbe 00400EEF
00401451 8B6D 00 |mov ebp, dword ptr [ebp]
00401454 036C24 24 |add ebp, dword ptr [esp+24]
00401458 E9 69070000 |jmp 00401BC6
0040145D 3BDF |cmp ebx, edi
0040145F ^ 0F82 8AFAFFFF |jb 00400EEF
00401465 8B6D 00 |mov ebp, dword ptr [ebp]
00401468 036C24 24 |add ebp, dword ptr [esp+24]
0040146C E9 55070000 |jmp 00401BC6
00401471 3BDF |cmp ebx, edi
00401473 ^ 0F8D 76FAFFFF |jge 00400EEF
00401479 8B6D 00 |mov ebp, dword ptr [ebp]
0040147C 036C24 24 |add ebp, dword ptr [esp+24]
00401480 E9 41070000 |jmp 00401BC6
00401485 3BDF |cmp ebx, edi
00401487 ^ 0F8F 62FAFFFF |jg 00400EEF
0040148D 8B6D 00 |mov ebp, dword ptr [ebp]
00401490 036C24 24 |add ebp, dword ptr [esp+24]
00401494 E9 2D070000 |jmp 00401BC6
00401499 3BDF |cmp ebx, edi
0040149B ^ 0F8E 4EFAFFFF |jle 00400EEF
004014A1 8B6D 00 |mov ebp, dword ptr [ebp]
004014A4 036C24 24 |add ebp, dword ptr [esp+24]
004014A8 E9 19070000 |jmp 00401BC6
004014AD 3BDF |cmp ebx, edi
004014AF ^ 0F8C 3AFAFFFF |jl 00400EEF
004014B5 8B6D 00 |mov ebp, dword ptr [ebp] ; 取操作数;;op39
004014B8 036C24 24 |add ebp, dword ptr [esp+24] ; add ebp,ebp+r24
004014BC E9 05070000 |jmp 00401BC6 ; add ebp,ebp+r24
004014C1 8BCF |mov ecx, edi ; VM_opcode 35
004014C3 D3E3 |shl ebx, cl ; shl,ebx,edi
004014C5 895C24 10 |mov dword ptr [esp+10], ebx ; mov r10,ebx
004014C9 E9 F8060000 |jmp 00401BC6 ; shl r10,r20
004014CE 8BCF |mov ecx, edi
004014D0 D3EB |shr ebx, cl
004014D2 895C24 10 |mov dword ptr [esp+10], ebx
004014D6 E9 EB060000 |jmp 00401BC6 ; shr r10,r20
004014DB 8BCF |mov ecx, edi
004014DD D3FB |sar ebx, cl
004014DF 895C24 10 |mov dword ptr [esp+10], ebx
004014E3 E9 DE060000 |jmp 00401BC6
004014E8 8B4D 00 |mov ecx, dword ptr [ebp]
004014EB 83C5 04 |add ebp, 4
004014EE D3E3 |shl ebx, cl
004014F0 895C24 10 |mov dword ptr [esp+10], ebx
004014F4 E9 CD060000 |jmp 00401BC6
004014F9 8B4D 00 |mov ecx, dword ptr [ebp]
004014FC 83C5 04 |add ebp, 4
004014FF D3E7 |shl edi, cl
00401501 897C24 20 |mov dword ptr [esp+20], edi
00401505 E9 BC060000 |jmp 00401BC6
0040150A 8B4D 00 |mov ecx, dword ptr [ebp]
0040150D 83C5 04 |add ebp, 4
00401510 D3EB |shr ebx, cl
00401512 895C24 10 |mov dword ptr [esp+10], ebx
00401516 E9 AB060000 |jmp 00401BC6
0040151B 8B4D 00 |mov ecx, dword ptr [ebp]
0040151E 83C5 04 |add ebp, 4
00401521 D3EF |shr edi, cl
00401523 897C24 20 |mov dword ptr [esp+20], edi
00401527 E9 9A060000 |jmp 00401BC6
0040152C 85FF |test edi, edi
0040152E 0F84 23070000 |je 00401C57
00401534 8BC3 |mov eax, ebx
00401536 99 |cdq
00401537 F7FF |idiv edi
00401539 8BCF |mov ecx, edi
0040153B 8BD8 |mov ebx, eax
0040153D 99 |cdq
0040153E F7FF |idiv edi
00401540 895C24 10 |mov dword ptr [esp+10], ebx
00401544 8BFA |mov edi, edx
00401546 85FF |test edi, edi
00401548 897C24 20 |mov dword ptr [esp+20], edi
0040154C 0F84 74060000 |je 00401BC6
00401552 8BD1 |mov edx, ecx
00401554 33D7 |xor edx, edi
00401556 0F8D 6A060000 |jge 00401BC6
0040155C 4B |dec ebx
0040155D 03F9 |add edi, ecx
0040155F 895C24 10 |mov dword ptr [esp+10], ebx
00401563 897C24 20 |mov dword ptr [esp+20], edi
00401567 E9 5A060000 |jmp 00401BC6
0040156C 85DB |test ebx, ebx ; VM_opcode 30
0040156E 0F84 E3060000 |je 00401C57
00401574 8BC7 |mov eax, edi ; r20
00401576 99 |cdq
00401577 F7FB |idiv ebx ; /r10
00401579 8BCB |mov ecx, ebx
0040157B 8BD8 |mov ebx, eax
0040157D 8BC7 |mov eax, edi ; r20
0040157F 99 |cdq
00401580 F7F9 |idiv ecx ; /r10
00401582 895C24 10 |mov dword ptr [esp+10], ebx ; 第一步的商
00401586 8BFA |mov edi, edx ; 余数
00401588 85FF |test edi, edi
0040158A 897C24 20 |mov dword ptr [esp+20], edi ; r20=余数
0040158E 0F84 32060000 |je 00401BC6 ; 余数为0返回
00401594 8BC1 |mov eax, ecx ; 除数
00401596 33C7 |xor eax, edi ; xor 除数,原数
00401598 0F8D 28060000 |jge 00401BC6
0040159E 4B |dec ebx
0040159F 03F9 |add edi, ecx ; 原数+除数
004015A1 895C24 10 |mov dword ptr [esp+10], ebx ; mov r10,商减一
004015A5 897C24 20 |mov dword ptr [esp+20], edi ; 原数+除数
004015A9 E9 18060000 jmp 00401BC6 ; idiv r20,r10;返回:r20余数,r10商;以上是有符号数除法?
004015AE 0FAFDF |imul ebx, edi
004015B1 895C24 10 |mov dword ptr [esp+10], ebx
004015B5 E9 0C060000 |jmp 00401BC6
004015BA 85FF |test edi, edi
004015BC 0F84 95060000 |je 00401C57
004015C2 8BC3 |mov eax, ebx
004015C4 33D2 |xor edx, edx
004015C6 F7F7 |div edi
004015C8 8BD8 |mov ebx, eax
004015CA 8BFA |mov edi, edx
004015CC 895C24 10 |mov dword ptr [esp+10], ebx
004015D0 897C24 20 |mov dword ptr [esp+20], edi
004015D4 E9 ED050000 |jmp 00401BC6
004015D9 85DB |test ebx, ebx
004015DB 0F84 76060000 |je 00401C57
004015E1 8BC7 |mov eax, edi
004015E3 33D2 |xor edx, edx
004015E5 F7F3 |div ebx
004015E7 8BD8 |mov ebx, eax
004015E9 8BFA |mov edi, edx
004015EB 895C24 10 |mov dword ptr [esp+10], ebx
004015EF 897C24 20 |mov dword ptr [esp+20], edi
004015F3 E9 CE050000 |jmp 00401BC6
004015F8 2BDF |sub ebx, edi
004015FA 895C24 10 |mov dword ptr [esp+10], ebx
004015FE E9 C3050000 |jmp 00401BC6
00401603 8BCF |mov ecx, edi
00401605 2BCB |sub ecx, ebx
00401607 8BD9 |mov ebx, ecx
00401609 895C24 10 |mov dword ptr [esp+10], ebx
0040160D E9 B4050000 |jmp 00401BC6
00401612 23DF |and ebx, edi ; op4a
00401614 895C24 10 |mov dword ptr [esp+10], ebx ; and r10,r20
00401618 E9 A9050000 |jmp 00401BC6
0040161D 0BDF |or ebx, edi
0040161F 895C24 10 |mov dword ptr [esp+10], ebx
00401623 E9 9E050000 |jmp 00401BC6
00401628 33DF |xor ebx, edi ; ;op77
0040162A 895C24 10 |mov dword ptr [esp+10], ebx ; mov r10,ebx
0040162E E9 93050000 |jmp 00401BC6 ; xor r10,r20
00401633 33D2 |xor edx, edx
00401635 85DB |test ebx, ebx
00401637 0F94C2 |sete dl
0040163A 8BDA |mov ebx, edx
0040163C 895C24 10 |mov dword ptr [esp+10], ebx
00401640 E9 81050000 |jmp 00401BC6
00401645 F7D3 |not ebx
00401647 895C24 10 |mov dword ptr [esp+10], ebx ; mov r10,ebx
0040164B E9 76050000 |jmp 00401BC6 ; not r10
00401650 8B45 00 |mov eax, dword ptr [ebp] ; 取操作数
00401653 83C5 04 |add ebp, 4
00401656 03D8 |add ebx, eax
00401658 895C24 10 |mov dword ptr [esp+10], ebx
0040165C E9 65050000 |jmp 00401BC6 ; add r10,C
00401661 8B45 00 |mov eax, dword ptr [ebp] ; 取操作数;;VM_opcode 75
00401664 83C5 04 |add ebp, 4 ; 指向下一条指令
00401667 0FAFC3 |imul eax, ebx ; 操作数*bx
0040166A 8BD8 |mov ebx, eax ; 保持ebx,r10同步
0040166C 895C24 10 |mov dword ptr [esp+10], ebx ; mov r10,ebx
00401670 E9 51050000 |jmp 00401BC6 ; imul r10,c
00401675 33DB |xor ebx, ebx ; VM_opcode 7f
00401677 895C24 10 |mov dword ptr [esp+10], ebx
0040167B E9 46050000 |jmp 00401BC6 ; xor r10,r10
00401680 33FF |xor edi, edi
00401682 897C24 20 |mov dword ptr [esp+20], edi
00401686 E9 3B050000 |jmp 00401BC6
0040168B 8B45 00 |mov eax, dword ptr [ebp]
0040168E 83C5 04 |add ebp, 4
00401691 C70430 00000000 |mov dword ptr [eax+esi], 0
00401698 E9 25050000 |jmp 00401BC2
0040169D 8B45 00 |mov eax, dword ptr [ebp]
004016A0 8B4C24 28 |mov ecx, dword ptr [esp+28]
004016A4 83C5 04 |add ebp, 4
004016A7 03C1 |add eax, ecx
004016A9 C70430 00000000 |mov dword ptr [eax+esi], 0
004016B0 E9 0D050000 |jmp 00401BC2
004016B5 8BD3 |mov edx, ebx
004016B7 81E2 FF000000 |and edx, 0FF
004016BD 81FA 80000000 |cmp edx, 80
004016C3 0F8C FD040000 |jl 00401BC6
004016C9 81CB 00FFFFFF |or ebx, FFFFFF00
004016CF 895C24 10 |mov dword ptr [esp+10], ebx
004016D3 E9 EE040000 |jmp 00401BC6
004016D8 8BC7 |mov eax, edi
004016DA 25 FF000000 |and eax, 0FF
004016DF 3D 80000000 |cmp eax, 80
004016E4 0F8C DC040000 |jl 00401BC6
004016EA 81CF 00FFFFFF |or edi, FFFFFF00
004016F0 897C24 20 |mov dword ptr [esp+20], edi
004016F4 E9 CD040000 |jmp 00401BC6
004016F9 33C9 |xor ecx, ecx
004016FB 3BDF |cmp ebx, edi
004016FD 0F94C1 |sete cl
00401700 8BD9 |mov ebx, ecx
00401702 895C24 10 |mov dword ptr [esp+10], ebx
00401706 E9 BB040000 |jmp 00401BC6
0040170B 33D2 |xor edx, edx
0040170D 3BDF |cmp ebx, edi
0040170F 0F95C2 |setne dl
00401712 8BDA |mov ebx, edx
00401714 895C24 10 |mov dword ptr [esp+10], ebx
00401718 E9 A9040000 |jmp 00401BC6
0040171D 3BDF |cmp ebx, edi
0040171F 1BDB |sbb ebx, ebx
00401721 F7DB |neg ebx
00401723 895C24 10 |mov dword ptr [esp+10], ebx
00401727 E9 9A040000 |jmp 00401BC6
|
能力值:
( LV9,RANK:210 )
|
-
-
4 楼
0040172C 3BFB |cmp edi, ebx
0040172E 1BDB |sbb ebx, ebx
00401730 43 |inc ebx
00401731 895C24 10 |mov dword ptr [esp+10], ebx
00401735 E9 8C040000 |jmp 00401BC6
0040173A 3BFB |cmp edi, ebx
0040173C 1BDB |sbb ebx, ebx
0040173E F7DB |neg ebx
00401740 895C24 10 |mov dword ptr [esp+10], ebx
00401744 E9 7D040000 |jmp 00401BC6
00401749 3BDF |cmp ebx, edi
0040174B 1BDB |sbb ebx, ebx
0040174D 43 |inc ebx
0040174E 895C24 10 |mov dword ptr [esp+10], ebx
00401752 E9 6F040000 |jmp 00401BC6
00401757 33C0 |xor eax, eax
00401759 3BDF |cmp ebx, edi
0040175B 0F9CC0 |setl al
0040175E 8BD8 |mov ebx, eax
00401760 895C24 10 |mov dword ptr [esp+10], ebx
00401764 E9 5D040000 |jmp 00401BC6
00401769 33C9 |xor ecx, ecx
0040176B 3BDF |cmp ebx, edi
0040176D 0F9EC1 |setle cl
00401770 8BD9 |mov ebx, ecx
00401772 895C24 10 |mov dword ptr [esp+10], ebx
00401776 E9 4B040000 |jmp 00401BC6
0040177B 33D2 |xor edx, edx
0040177D 3BDF |cmp ebx, edi
0040177F 0F9FC2 |setg dl
00401782 8BDA |mov ebx, edx
00401784 895C24 10 |mov dword ptr [esp+10], ebx
00401788 E9 39040000 |jmp 00401BC6
0040178D 33C0 |xor eax, eax
0040178F 3BDF |cmp ebx, edi
00401791 0F9DC0 |setge al
00401794 8BD8 |mov ebx, eax
00401796 895C24 10 |mov dword ptr [esp+10], ebx
0040179A E9 27040000 |jmp 00401BC6
0040179F 8B45 00 |mov eax, dword ptr [ebp]
004017A2 33C9 |xor ecx, ecx
004017A4 83C5 04 |add ebp, 4
004017A7 3BD8 |cmp ebx, eax
004017A9 0F94C1 |sete cl
004017AC 8BD9 |mov ebx, ecx
004017AE 895C24 10 |mov dword ptr [esp+10], ebx
004017B2 E9 0F040000 |jmp 00401BC6
004017B7 8B45 00 |mov eax, dword ptr [ebp]
004017BA 33DB |xor ebx, ebx
004017BC 83C5 04 |add ebp, 4
004017BF 3BF8 |cmp edi, eax
004017C1 0F94C3 |sete bl
004017C4 895C24 10 |mov dword ptr [esp+10], ebx
004017C8 E9 F9030000 |jmp 00401BC6
004017CD 47 |inc edi
004017CE 897C24 20 |mov dword ptr [esp+20], edi
004017D2 E9 EF030000 |jmp 00401BC6
004017D7 8B45 00 |mov eax, dword ptr [ebp]
004017DA 8B0C30 |mov ecx, dword ptr [eax+esi]
004017DD 83C5 04 |add ebp, 4
004017E0 41 |inc ecx
004017E1 890C30 |mov dword ptr [eax+esi], ecx
004017E4 E9 D9030000 |jmp 00401BC2
004017E9 8B45 00 |mov eax, dword ptr [ebp] ; 取操作数;;op17
004017EC 8B5424 28 |mov edx, dword ptr [esp+28] ; mov edx,r28
004017F0 03C2 |add eax, edx
004017F2 8B0C30 |mov ecx, dword ptr [eax+esi] ; mov ecx,[r28+c];;esi存放基址
004017F5 03C6 |add eax, esi
004017F7 83C5 04 |add ebp, 4 ; 指向下一个指令
004017FA 41 |inc ecx
004017FB 8908 |mov dword ptr [eax], ecx
004017FD E9 C0030000 |jmp 00401BC2 ; inc [r28+c]
00401802 FF0433 |inc dword ptr [ebx+esi]
00401805 E9 B8030000 |jmp 00401BC2
0040180A 4B |dec ebx
0040180B 895C24 10 |mov dword ptr [esp+10], ebx
0040180F E9 B2030000 |jmp 00401BC6
00401814 4F |dec edi
00401815 897C24 20 |mov dword ptr [esp+20], edi
00401819 E9 A8030000 |jmp 00401BC6
0040181E 8B45 00 |mov eax, dword ptr [ebp]
00401821 8B0C30 |mov ecx, dword ptr [eax+esi]
00401824 83C5 04 |add ebp, 4
00401827 49 |dec ecx
00401828 890C30 |mov dword ptr [eax+esi], ecx
0040182B E9 92030000 |jmp 00401BC2
00401830 8B45 00 |mov eax, dword ptr [ebp]
00401833 8B4C24 28 |mov ecx, dword ptr [esp+28]
00401837 03C1 |add eax, ecx
00401839 8B0C30 |mov ecx, dword ptr [eax+esi]
0040183C 03C6 |add eax, esi
0040183E 83C5 04 |add ebp, 4
00401841 49 |dec ecx
00401842 8908 |mov dword ptr [eax], ecx
00401844 E9 79030000 |jmp 00401BC2
00401849 FF0C33 |dec dword ptr [ebx+esi]
0040184C E9 71030000 |jmp 00401BC2
00401851 8B4D 00 |mov ecx, dword ptr [ebp]
00401854 8B5424 2C |mov edx, dword ptr [esp+2C]
00401858 83C5 04 |add ebp, 4
0040185B 3BDA |cmp ebx, edx
0040185D 7C 0A |jl short 00401869
0040185F 3B5C24 14 |cmp ebx, dword ptr [esp+14]
00401863 0F8C 0D040000 |jl 00401C76
00401869 8B7424 44 |mov esi, dword ptr [esp+44]
0040186D 3B5E 24 |cmp ebx, dword ptr [esi+24]
00401870 0F83 04040000 |jnb 00401C7A
00401876 8D0419 |lea eax, dword ptr [ecx+ebx]
00401879 3BC2 |cmp eax, edx
0040187B 7E 0E |jle short 0040188B
0040187D 3B4424 14 |cmp eax, dword ptr [esp+14]
00401881 0F8C 0E040000 |jl 00401C95
00401887 8B7424 44 |mov esi, dword ptr [esp+44]
0040188B 8B76 24 |mov esi, dword ptr [esi+24]
0040188E 3BC6 |cmp eax, esi
00401890 0F87 FF030000 |ja 00401C95
00401896 3BFA |cmp edi, edx
00401898 7C 0A |jl short 004018A4
0040189A 3B7C24 14 |cmp edi, dword ptr [esp+14]
0040189E 0F8C F1030000 |jl 00401C95
004018A4 3BFE |cmp edi, esi
004018A6 0F83 E9030000 |jnb 00401C95
004018AC 03F9 |add edi, ecx
004018AE 3BFA |cmp edi, edx
004018B0 7E 0A |jle short 004018BC
004018B2 3B7C24 14 |cmp edi, dword ptr [esp+14]
004018B6 0F8C D9030000 |jl 00401C95
004018BC 3BFE |cmp edi, esi
004018BE 0F87 D1030000 |ja 00401C95
004018C4 8B4424 30 |mov eax, dword ptr [esp+30]
004018C8 8B5424 20 |mov edx, dword ptr [esp+20]
004018CC 8D3403 |lea esi, dword ptr [ebx+eax]
004018CF 8D3C02 |lea edi, dword ptr [edx+eax]
004018D2 8BC1 |mov eax, ecx
004018D4 C1E9 02 |shr ecx, 2
004018D7 F3:A5 |rep movs dword ptr es:[edi], dword >
004018D9 8BC8 |mov ecx, eax
004018DB 83E1 03 |and ecx, 3
004018DE F3:A4 |rep movs byte ptr es:[edi], byte pt>
004018E0 8B7424 30 |mov esi, dword ptr [esp+30]
004018E4 8BFA |mov edi, edx
004018E6 E9 D7020000 |jmp 00401BC2
004018EB 8B4D 00 |mov ecx, dword ptr [ebp]
004018EE 8B5424 2C |mov edx, dword ptr [esp+2C]
004018F2 83C5 04 |add ebp, 4
004018F5 3BDA |cmp ebx, edx
004018F7 7C 0A |jl short 00401903
004018F9 3B5C24 14 |cmp ebx, dword ptr [esp+14]
004018FD 0F8C B1030000 |jl 00401CB4
00401903 8B7424 44 |mov esi, dword ptr [esp+44]
00401907 3B5E 24 |cmp ebx, dword ptr [esi+24]
0040190A 0F83 A8030000 |jnb 00401CB8
00401910 8D0419 |lea eax, dword ptr [ecx+ebx]
00401913 3BC2 |cmp eax, edx
00401915 7E 0E |jle short 00401925
00401917 3B4424 14 |cmp eax, dword ptr [esp+14]
0040191B 0F8C 17030000 |jl 00401C38
00401921 8B7424 44 |mov esi, dword ptr [esp+44]
00401925 8B76 24 |mov esi, dword ptr [esi+24]
00401928 3BC6 |cmp eax, esi
0040192A 0F87 08030000 |ja 00401C38
00401930 3BFA |cmp edi, edx
00401932 7C 0A |jl short 0040193E
00401934 3B7C24 14 |cmp edi, dword ptr [esp+14]
00401938 0F8C FA020000 |jl 00401C38
0040193E 3BFE |cmp edi, esi
00401940 0F83 F2020000 |jnb 00401C38
00401946 03F9 |add edi, ecx
00401948 3BFA |cmp edi, edx
0040194A 7E 0A |jle short 00401956
0040194C 3B7C24 14 |cmp edi, dword ptr [esp+14]
00401950 0F8C E2020000 |jl 00401C38
00401956 3BFE |cmp edi, esi
00401958 0F87 DA020000 |ja 00401C38
0040195E 8B4424 30 |mov eax, dword ptr [esp+30]
00401962 8B5424 20 |mov edx, dword ptr [esp+20]
00401966 8D3C03 |lea edi, dword ptr [ebx+eax]
00401969 8D3402 |lea esi, dword ptr [edx+eax]
0040196C 33DB |xor ebx, ebx
0040196E F3:A6 |repe cmps byte ptr es:[edi], byte pt>
00401970 74 05 |je short 00401977
00401972 1BDB |sbb ebx, ebx
00401974 83DB FF |sbb ebx, -1
00401977 8B7424 30 |mov esi, dword ptr [esp+30]
0040197B 8B7C24 20 |mov edi, dword ptr [esp+20]
0040197F 895C24 10 |mov dword ptr [esp+10], ebx
00401983 E9 3E020000 |jmp 00401BC6
00401988 8B45 00 |mov eax, dword ptr [ebp]
0040198B 8B5424 2C |mov edx, dword ptr [esp+2C]
0040198F 83C5 04 |add ebp, 4
00401992 3BFA |cmp edi, edx
00401994 7C 0A |jl short 004019A0
00401996 3B7C24 14 |cmp edi, dword ptr [esp+14]
0040199A 0F8C 79020000 |jl 00401C19
004019A0 8B4C24 44 |mov ecx, dword ptr [esp+44]
004019A4 3B79 24 |cmp edi, dword ptr [ecx+24]
004019A7 0F83 70020000 |jnb 00401C1D
004019AD 8D0C38 |lea ecx, dword ptr [eax+edi]
004019B0 3BCA |cmp ecx, edx
004019B2 7E 0A |jle short 004019BE
004019B4 3B4C24 14 |cmp ecx, dword ptr [esp+14]
004019B8 0F8C 7A020000 |jl 00401C38
004019BE 8B5424 44 |mov edx, dword ptr [esp+44]
004019C2 3B4A 24 |cmp ecx, dword ptr [edx+24]
004019C5 0F87 6D020000 |ja 00401C38
004019CB 83F8 04 |cmp eax, 4
004019CE 0F82 F2010000 |jb 00401BC6
004019D4 8D0C37 |lea ecx, dword ptr [edi+esi]
004019D7 C1E8 02 |shr eax, 2
004019DA 8D9B 00000000 |lea ebx, dword ptr [ebx]
004019E0 8919 |/mov dword ptr [ecx], ebx
004019E2 8B5C24 10 ||mov ebx, dword ptr [esp+10]
004019E6 83C1 04 ||add ecx, 4
004019E9 48 ||dec eax
004019EA ^ 75 F4 |\jnz short 004019E0
004019EC 8B7424 30 |mov esi, dword ptr [esp+30]
004019F0 8B7C24 20 |mov edi, dword ptr [esp+20]
004019F4 E9 CD010000 |jmp 00401BC6
004019F9 8B45 00 |mov eax, dword ptr [ebp] ; VM_opcode 5
004019FC 83C5 04 |add ebp, 4
004019FF 3BD8 |cmp ebx, eax ; 比较r10和操作数
00401A01 0F86 BF010000 |jbe 00401BC6 ; 估计是检测错误的,对算法影响不大
00401A07 8B4424 24 |mov eax, dword ptr [esp+24]
00401A0B 8B4C24 18 |mov ecx, dword ptr [esp+18]
00401A0F 8B5424 1C |mov edx, dword ptr [esp+1C]
00401A13 2BE8 |sub ebp, eax
00401A15 8B4424 44 |mov eax, dword ptr [esp+44]
00401A19 8968 10 |mov dword ptr [eax+10], ebp
00401A1C 5D |pop ebp
00401A1D 5E |pop esi
00401A1E 5F |pop edi
00401A1F 8948 20 |mov dword ptr [eax+20], ecx
00401A22 8950 18 |mov dword ptr [eax+18], edx
00401A25 B8 04000000 |mov eax, 4
00401A2A 5B |pop ebx
00401A2B 83C4 30 |add esp, 30
00401A2E C3 |retn
00401A2F 8B4424 24 |mov eax, dword ptr [esp+24]
00401A33 8B5424 2C |mov edx, dword ptr [esp+2C]
00401A37 8BCD |mov ecx, ebp
00401A39 2BC8 |sub ecx, eax
00401A3B 8B4424 44 |mov eax, dword ptr [esp+44]
00401A3F 8948 10 |mov dword ptr [eax+10], ecx
00401A42 8B4C24 28 |mov ecx, dword ptr [esp+28]
00401A46 8948 14 |mov dword ptr [eax+14], ecx
00401A49 8B4C24 14 |mov ecx, dword ptr [esp+14]
00401A4D 8948 20 |mov dword ptr [eax+20], ecx
00401A50 03CE |add ecx, esi
00401A52 51 |push ecx
00401A53 8950 18 |mov dword ptr [eax+18], edx
00401A56 8D5424 14 |lea edx, dword ptr [esp+14]
00401A5A 52 |push edx
00401A5B 53 |push ebx
00401A5C 50 |push eax
00401A5D FF50 08 |call dword ptr [eax+8]
00401A60 83C4 10 |add esp, 10
00401A63 85C0 |test eax, eax
00401A65 0F84 57010000 |je 00401BC2
00401A6B 83F8 0C |cmp eax, 0C
00401A6E 8B5424 18 |mov edx, dword ptr [esp+18]
00401A72 0F85 C9020000 |jnz 00401D41
00401A78 8B4424 44 |mov eax, dword ptr [esp+44]
00401A7C 8B4C24 10 |mov ecx, dword ptr [esp+10]
00401A80 5D |pop ebp
00401A81 8948 54 |mov dword ptr [eax+54], ecx
00401A84 8B4C24 18 |mov ecx, dword ptr [esp+18]
00401A88 5E |pop esi
00401A89 8978 58 |mov dword ptr [eax+58], edi
00401A8C 5F |pop edi
00401A8D 8950 5C |mov dword ptr [eax+5C], edx
00401A90 8948 60 |mov dword ptr [eax+60], ecx
00401A93 B8 0C000000 |mov eax, 0C
00401A98 5B |pop ebx
00401A99 83C4 30 |add esp, 30
00401A9C C3 |retn
00401A9D 8B45 00 |mov eax, dword ptr [ebp]
00401AA0 8B5C24 24 |mov ebx, dword ptr [esp+24]
00401AA4 8B5424 2C |mov edx, dword ptr [esp+2C]
00401AA8 83C5 04 |add ebp, 4
00401AAB 8BCD |mov ecx, ebp
00401AAD 2BCB |sub ecx, ebx
00401AAF 8B5C24 44 |mov ebx, dword ptr [esp+44]
00401AB3 894B 10 |mov dword ptr [ebx+10], ecx
00401AB6 8B4C24 28 |mov ecx, dword ptr [esp+28]
00401ABA 894B 14 |mov dword ptr [ebx+14], ecx
00401ABD 8B4C24 14 |mov ecx, dword ptr [esp+14]
00401AC1 894B 20 |mov dword ptr [ebx+20], ecx
00401AC4 03CE |add ecx, esi
00401AC6 51 |push ecx
00401AC7 8953 18 |mov dword ptr [ebx+18], edx
00401ACA 8D5424 14 |lea edx, dword ptr [esp+14]
00401ACE 52 |push edx
00401ACF 50 |push eax
00401AD0 53 |push ebx
00401AD1 FF53 08 |call dword ptr [ebx+8]
00401AD4 83C4 10 |add esp, 10
00401AD7 E9 DE000000 |jmp 00401BBA
00401ADC 8B45 00 |mov eax, dword ptr [ebp]
00401ADF 8D6C28 04 |lea ebp, dword ptr [eax+ebp+4]
00401AE3 E9 DE000000 |jmp 00401BC6
00401AE8 83C5 08 |add ebp, 8
00401AEB E9 D6000000 |jmp 00401BC6
00401AF0 8B4C24 24 |mov ecx, dword ptr [esp+24]
00401AF4 8D2C0B |lea ebp, dword ptr [ebx+ecx]
00401AF7 E9 CA000000 |jmp 00401BC6
00401AFC 8B55 00 |mov edx, dword ptr [ebp]
00401AFF 8B4C24 24 |mov ecx, dword ptr [esp+24]
00401B03 8B6C11 08 |mov ebp, dword ptr [ecx+edx+8]
00401B07 8D4411 04 |lea eax, dword ptr [ecx+edx+4]
00401B0B 03E9 |add ebp, ecx
00401B0D 8B08 |mov ecx, dword ptr [eax]
00401B0F 83C0 08 |add eax, 8
00401B12 85C9 |test ecx, ecx
00401B14 0F8E AC000000 |jle 00401BC6
00401B1A 8D9B 00000000 |lea ebx, dword ptr [ebx]
00401B20 3918 |/cmp dword ptr [eax], ebx
00401B22 74 0D ||je short 00401B31
00401B24 49 ||dec ecx
00401B25 83C0 08 ||add eax, 8
00401B28 85C9 ||test ecx, ecx
00401B2A ^ 7F F4 |\jg short 00401B20
00401B2C E9 95000000 |jmp 00401BC6
00401B31 85C9 |test ecx, ecx
00401B33 0F8E 8D000000 |jle 00401BC6
00401B39 8B68 04 |mov ebp, dword ptr [eax+4]
00401B3C 036C24 24 |add ebp, dword ptr [esp+24]
00401B40 E9 81000000 |jmp 00401BC6
00401B45 8B4424 14 |mov eax, dword ptr [esp+14]
00401B49 8B0C30 |mov ecx, dword ptr [eax+esi]
00401B4C 891C30 |mov dword ptr [eax+esi], ebx
00401B4F 8BD9 |mov ebx, ecx
00401B51 895C24 10 |mov dword ptr [esp+10], ebx
00401B55 EB 6F |jmp short 00401BC6
00401B57 8B4424 14 |mov eax, dword ptr [esp+14]
00401B5B 8B0C30 |mov ecx, dword ptr [eax+esi]
00401B5E 893C30 |mov dword ptr [eax+esi], edi
00401B61 8BF9 |mov edi, ecx
00401B63 897C24 20 |mov dword ptr [esp+20], edi
00401B67 EB 59 |jmp short 00401BC2
00401B69 8B45 00 |mov eax, dword ptr [ebp]
00401B6C 8B4C24 14 |mov ecx, dword ptr [esp+14]
00401B70 8B5424 28 |mov edx, dword ptr [esp+28]
00401B74 83E9 04 |sub ecx, 4
00401B77 83C5 04 |add ebp, 4
00401B7A 03C2 |add eax, edx
00401B7C 894C24 14 |mov dword ptr [esp+14], ecx
00401B80 890431 |mov dword ptr [ecx+esi], eax
00401B83 EB 3D |jmp short 00401BC2
00401B85 8B4424 44 |mov eax, dword ptr [esp+44] ; mov eax,r44;;VM_opcode 43
00401B89 8B40 0C |mov eax, dword ptr [eax+C] ; mov eax,[r44+0xC]
00401B8C 85C0 |test eax, eax
00401B8E 74 36 |je short 00401BC6 ; if [r44+c]<>0 then VM_exit
00401B90 8B5C24 44 |mov ebx, dword ptr [esp+44]
00401B94 8B4C24 28 |mov ecx, dword ptr [esp+28]
00401B98 8B5424 14 |mov edx, dword ptr [esp+14]
00401B9C 894B 14 |mov dword ptr [ebx+14], ecx
00401B9F 8B4C24 2C |mov ecx, dword ptr [esp+2C]
00401BA3 8953 20 |mov dword ptr [ebx+20], edx
00401BA6 894B 18 |mov dword ptr [ebx+18], ecx
00401BA9 8B4C24 24 |mov ecx, dword ptr [esp+24]
00401BAD 8BD5 |mov edx, ebp
00401BAF 2BD1 |sub edx, ecx
00401BB1 53 |push ebx
00401BB2 8953 10 |mov dword ptr [ebx+10], edx
00401BB5 FFD0 |call eax
00401BB7 83C4 04 |add esp, 4
00401BBA 85C0 |test eax, eax
00401BBC 0F85 95010000 |jnz 00401D57
00401BC2 8B5C24 10 |mov ebx, dword ptr [esp+10] ; 这是为了保证r10和ebx的值始终同步
00401BC6 8B45 00 |mov eax, dword ptr [ebp] ; VM_opcode; Default case of switch 00401147; Default case of switch 00401147
00401BC9 8D48 FF |lea ecx, dword ptr [eax-1] ; VM_opcode-1
00401BCC 83C5 04 |add ebp, 4 ; VM_EIP++
00401BCF 81F9 9C000000 |cmp ecx, 9C ; VM_exit?
00401BD5 ^ 0F86 E9F1FFFF \jbe 00400DC4
00401BDB 8B4424 44 mov eax, dword ptr [esp+44]
00401BDF 8B4C24 18 mov ecx, dword ptr [esp+18]
00401BE3 8B5424 1C mov edx, dword ptr [esp+1C]
00401BE7 5D pop ebp
00401BE8 8948 20 mov dword ptr [eax+20], ecx
00401BEB 8950 18 mov dword ptr [eax+18], edx
00401BEE B8 06000000 mov eax, 6
00401BF3 5E pop esi
00401BF4 5F pop edi
00401BF5 5B pop ebx
00401BF6 83C4 30 add esp, 30
00401BF9 C3 retn
00401BFA 8B4424 44 mov eax, dword ptr [esp+44]
00401BFE 8B4C24 18 mov ecx, dword ptr [esp+18]
00401C02 8B5424 1C mov edx, dword ptr [esp+1C]
00401C06 5D pop ebp
00401C07 5E pop esi
00401C08 5F pop edi
00401C09 8948 20 mov dword ptr [eax+20], ecx
00401C0C 8950 18 mov dword ptr [eax+18], edx
00401C0F B8 05000000 mov eax, 5
00401C14 5B pop ebx
00401C15 83C4 30 add esp, 30
00401C18 C3 retn
00401C19 8B4C24 44 mov ecx, dword ptr [esp+44]
00401C1D 8B4424 18 mov eax, dword ptr [esp+18]
00401C21 8B5424 1C mov edx, dword ptr [esp+1C]
00401C25 5D pop ebp
00401C26 5E pop esi
00401C27 5F pop edi
00401C28 8941 20 mov dword ptr [ecx+20], eax
00401C2B 8951 18 mov dword ptr [ecx+18], edx
00401C2E B8 05000000 mov eax, 5
00401C33 5B pop ebx
00401C34 83C4 30 add esp, 30
00401C37 C3 retn
00401C38 8B4424 44 mov eax, dword ptr [esp+44]
00401C3C 8B4C24 18 mov ecx, dword ptr [esp+18]
00401C40 8B5424 1C mov edx, dword ptr [esp+1C]
00401C44 5D pop ebp
00401C45 5E pop esi
00401C46 5F pop edi
00401C47 8948 20 mov dword ptr [eax+20], ecx
00401C4A 8950 18 mov dword ptr [eax+18], edx
00401C4D B8 05000000 mov eax, 5
00401C52 5B pop ebx
00401C53 83C4 30 add esp, 30
00401C56 C3 retn
00401C57 8B4424 44 mov eax, dword ptr [esp+44]
00401C5B 8B4C24 18 mov ecx, dword ptr [esp+18]
00401C5F 8B5424 1C mov edx, dword ptr [esp+1C]
00401C63 5D pop ebp
00401C64 5E pop esi
00401C65 5F pop edi
00401C66 8948 20 mov dword ptr [eax+20], ecx
00401C69 8950 18 mov dword ptr [eax+18], edx
00401C6C B8 0B000000 mov eax, 0B
00401C71 5B pop ebx
00401C72 83C4 30 add esp, 30
00401C75 C3 retn
00401C76 8B7424 44 mov esi, dword ptr [esp+44]
00401C7A 8B4424 18 mov eax, dword ptr [esp+18]
00401C7E 8B4C24 1C mov ecx, dword ptr [esp+1C]
00401C82 5D pop ebp
00401C83 8946 20 mov dword ptr [esi+20], eax
00401C86 894E 18 mov dword ptr [esi+18], ecx
00401C89 5E pop esi
00401C8A 5F pop edi
00401C8B B8 05000000 mov eax, 5
00401C90 5B pop ebx
00401C91 83C4 30 add esp, 30
00401C94 C3 retn
00401C95 8B4424 44 mov eax, dword ptr [esp+44]
00401C99 8B5424 18 mov edx, dword ptr [esp+18]
00401C9D 8B4C24 1C mov ecx, dword ptr [esp+1C]
00401CA1 5D pop ebp
00401CA2 5E pop esi
00401CA3 5F pop edi
00401CA4 8950 20 mov dword ptr [eax+20], edx
00401CA7 8948 18 mov dword ptr [eax+18], ecx
00401CAA B8 05000000 mov eax, 5
00401CAF 5B pop ebx
00401CB0 83C4 30 add esp, 30
00401CB3 C3 retn
00401CB4 8B7424 44 mov esi, dword ptr [esp+44]
00401CB8 8B4424 1C mov eax, dword ptr [esp+1C]
00401CBC 8B5424 18 mov edx, dword ptr [esp+18]
00401CC0 5D pop ebp
00401CC1 8946 18 mov dword ptr [esi+18], eax
00401CC4 8956 20 mov dword ptr [esi+20], edx
00401CC7 5E pop esi
00401CC8 5F pop edi
00401CC9 B8 05000000 mov eax, 5
00401CCE 5B pop ebx
00401CCF 83C4 30 add esp, 30
00401CD2 C3 retn
00401CD3 8B45 00 mov eax, dword ptr [ebp] ; 取操作数
00401CD6 8B4C24 48 mov ecx, dword ptr [esp+48] ; mov ecx,r48
00401CDA 83C5 04 add ebp, 4 ; 下一指令
00401CDD 85C9 test ecx, ecx
00401CDF 74 02 je short 00401CE3
00401CE1 8919 mov dword ptr [ecx], ebx ; 保存要传回的参数,哦也,就是他了
00401CE3 8B4C24 44 mov ecx, dword ptr [esp+44]
00401CE7 8B7424 24 mov esi, dword ptr [esp+24] ; esi=old _eip
00401CEB 8B5424 28 mov edx, dword ptr [esp+28]
00401CEF 2BEE sub ebp, esi
00401CF1 83F8 0C cmp eax, 0C
00401CF4 8951 14 mov dword ptr [ecx+14], edx
00401CF7 8959 54 mov dword ptr [ecx+54], ebx
00401CFA 8979 58 mov dword ptr [ecx+58], edi
00401CFD 8969 10 mov dword ptr [ecx+10], ebp
00401D00 75 29 jnz short 00401D2B
00401D02 8B4424 14 mov eax, dword ptr [esp+14]
00401D06 8B5424 2C mov edx, dword ptr [esp+2C]
00401D0A 5D pop ebp
00401D0B 8941 20 mov dword ptr [ecx+20], eax
00401D0E 8B4424 14 mov eax, dword ptr [esp+14]
00401D12 5E pop esi
00401D13 8951 18 mov dword ptr [ecx+18], edx
00401D16 8B5424 14 mov edx, dword ptr [esp+14]
00401D1A 5F pop edi
00401D1B 8941 5C mov dword ptr [ecx+5C], eax
00401D1E 8951 60 mov dword ptr [ecx+60], edx
00401D21 B8 0C000000 mov eax, 0C
00401D26 5B pop ebx
00401D27 83C4 30 add esp, 30
00401D2A C3 retn
00401D2B 8B5424 18 mov edx, dword ptr [esp+18]
00401D2F 5D pop ebp
00401D30 5E pop esi
00401D31 8951 20 mov dword ptr [ecx+20], edx
00401D34 8B5424 14 mov edx, dword ptr [esp+14]
00401D38 5F pop edi
00401D39 8951 18 mov dword ptr [ecx+18], edx
00401D3C 5B pop ebx
00401D3D 83C4 30 add esp, 30
00401D40 C3 retn
00401D41 8B4C24 44 mov ecx, dword ptr [esp+44]
00401D45 5D pop ebp
00401D46 5E pop esi
00401D47 8951 20 mov dword ptr [ecx+20], edx
00401D4A 8B5424 14 mov edx, dword ptr [esp+14]
00401D4E 5F pop edi
00401D4F 8951 18 mov dword ptr [ecx+18], edx
00401D52 5B pop ebx
00401D53 83C4 30 add esp, 30
00401D56 C3 retn
00401D57 83F8 0C cmp eax, 0C
00401D5A 8B5424 1C mov edx, dword ptr [esp+1C]
00401D5E 8B4C24 18 mov ecx, dword ptr [esp+18]
00401D62 75 1D jnz short 00401D81
00401D64 8B4424 10 mov eax, dword ptr [esp+10]
00401D68 5D pop ebp
00401D69 5E pop esi
00401D6A 897B 58 mov dword ptr [ebx+58], edi
00401D6D 8943 54 mov dword ptr [ebx+54], eax
00401D70 5F pop edi
00401D71 894B 5C mov dword ptr [ebx+5C], ecx
00401D74 8953 60 mov dword ptr [ebx+60], edx
00401D77 B8 0C000000 mov eax, 0C
00401D7C 5B pop ebx
00401D7D 83C4 30 add esp, 30
00401D80 C3 retn
00401D81 5D pop ebp
00401D82 5E pop esi
00401D83 5F pop edi
00401D84 894B 20 mov dword ptr [ebx+20], ecx
00401D87 8953 18 mov dword ptr [ebx+18], edx
00401D8A 5B pop ebx
00401D8B 83C4 30 add esp, 30
00401D8E C3 retn
|