0040543C |. 8945 F4 mov [local.3],eax
0040543F |. 8B5D F4 mov ebx,[local.3]
00405442 |. E8 49CAFFFF call cm.00401E90 ; 取出分割后的文本的成员个数(注册码2被"%"分割)
00405447 |. 33C9 xor ecx,ecx
00405449 |. 50 push eax
0040544A |. 8D45 F0 lea eax,[local.4]
0040544D |. 8BD8 mov ebx,eax
0040544F |. 58 pop eax
00405450 |> 41 /inc ecx
00405451 |. 51 |push ecx
00405452 |. 53 |push ebx
00405453 |. 890B |mov dword ptr ds:[ebx],ecx
00405455 |. 50 |push eax
00405456 |. 3BC8 |cmp ecx,eax
00405458 |. 0F8F 99030000 |jg cm.004057F7
0040545E |. 8B5D F4 |mov ebx,[local.3]
00405461 |. E8 DFC2FFFF |call cm.00401745
00405466 |. 53 |push ebx
00405467 |. 51 |push ecx
00405468 |. 8B45 F0 |mov eax,[local.4]
0040546B |. 48 |dec eax
0040546C |. 79 0D |jns short cm.0040547B
0040546E |. 68 04000000 |push 0x4
00405473 |. E8 22130000 |call cm.0040679A
00405478 |. 83C4 04 |add esp,0x4
0040547B |> 59 |pop ecx
0040547C |. 5B |pop ebx
0040547D |. 3BC1 |cmp eax,ecx
0040547F |. 7C 0D |jl short cm.0040548E
00405481 |. 68 01000000 |push 0x1
00405486 |. E8 0F130000 |call cm.0040679A
0040548B |. 83C4 04 |add esp,0x4
0040548E |> C1E0 02 |shl eax,0x2
00405491 |. 03D8 |add ebx,eax
00405493 |. 895D D8 |mov [local.10],ebx ; 注册码2被 "%" 分割
00405496 |. 8B5D D8 |mov ebx,[local.10]
00405499 |. 8B03 |mov eax,dword ptr ds:[ebx]
0040549B |. 85C0 |test eax,eax
0040549D |. 74 15 |je short cm.004054B4
0040549F |. 50 |push eax
004054A0 |. 8BD8 |mov ebx,eax
004054A2 |. E8 02CAFFFF |call cm.00401EA9 ; 取出第一部分的长度
004054A7 |. 40 |inc eax ; 长度 + 1
004054A8 |. 50 |push eax
004054A9 |. E8 E6120000 |call cm.00406794 ; 注册码2
004054AE |. 59 |pop ecx
004054AF |. 5E |pop esi ; cm.00484CB3
004054B0 |. 8BF8 |mov edi,eax
004054B2 |. F3:A4 |rep movs byte ptr es:[edi],byte ptr ds:[esi]; 拷贝第n部分(n是循环的次数)
004054B4 |> 50 |push eax
004054B5 |. 8B5D EC |mov ebx,[local.5]
004054B8 |. 85DB |test ebx,ebx
004054BA |. 74 09 |je short cm.004054C5
004054BC |. 53 |push ebx
004054BD |. E8 CC120000 |call cm.0040678E
004054C2 |. 83C4 04 |add esp,0x4
004054C5 |> 58 |pop eax
004054C6 |. 8945 EC |mov [local.5],eax
004054C9 |. B8 884C4800 |mov eax,cm.00484C88
004054CE |. 50 |push eax
004054CF |. 8B5D E8 |mov ebx,[local.6]
004054D2 |. 85DB |test ebx,ebx
004054D4 |. 74 09 |je short cm.004054DF
004054D6 |. 53 |push ebx
004054D7 |. E8 B2120000 |call cm.0040678E
004054DC |. 83C4 04 |add esp,0x4
004054DF |> 58 |pop eax
004054E0 |. 8945 E8 |mov [local.6],eax
004054E3 |. 68 04000080 |push 0x80000004
004054E8 |. 6A 00 |push 0x0
004054EA |. 8B45 EC |mov eax,[local.5]
004054ED |. 85C0 |test eax,eax
004054EF |. 75 05 |jnz short cm.004054F6
004054F1 |. B8 884C4800 |mov eax,cm.00484C88
004054F6 |> 50 |push eax
004054F7 |. 68 01000000 |push 0x1
004054FC |. BB A0694000 |mov ebx,cm.004069A0
00405501 |. E8 A6120000 |call cm.004067AC ; 取第n部分文本长度
00405506 |. 83C4 10 |add esp,0x10
00405509 |. 33C9 |xor ecx,ecx
0040550B |. 50 |push eax
0040550C |. 8D45 E4 |lea eax,[local.7]
0040550F |. 8BD8 |mov ebx,eax
00405511 |. 58 |pop eax
00405512 |> 41 |/inc ecx
00405513 |. 51 ||push ecx
00405514 |. 53 ||push ebx
00405515 |. 890B ||mov dword ptr ds:[ebx],ecx
00405517 |. 50 ||push eax
00405518 |. 3BC8 ||cmp ecx,eax
0040551A |. 0F8F 12020000 ||jg cm.00405732
00405520 |. 68 01030080 ||push 0x80000301
00405525 |. 6A 00 ||push 0x0
00405527 |. 68 01000000 ||push 0x1
0040552C |. 68 01030080 ||push 0x80000301
00405531 |. 6A 00 ||push 0x0
00405533 |. FF75 E4 ||push [local.7]
00405536 |. 68 04000080 ||push 0x80000004
0040553B |. 6A 00 ||push 0x0
0040553D |. 8B45 EC ||mov eax,[local.5]
00405540 |. 85C0 ||test eax,eax
00405542 |. 75 05 ||jnz short cm.00405549
00405544 |. B8 884C4800 ||mov eax,cm.00484C88
00405549 |> 50 ||push eax
0040554A |. 68 03000000 ||push 0x3
0040554F |. BB 706A4000 ||mov ebx,cm.00406A70
00405554 |. E8 53120000 ||call cm.004067AC ; 取出第n部分的一个字节
00405559 |. 83C4 28 ||add esp,0x28
0040555C |. 8945 D8 ||mov [local.10],eax
0040555F |. 8B5D FC ||mov ebx,[local.1]
00405562 |. E8 DEC1FFFF ||call cm.00401745 ; 重定义数组
00405567 |. B8 09000000 ||mov eax,0x9
0040556C |. 3BC1 ||cmp eax,ecx
0040556E |. 7C 0D ||jl short cm.0040557D
00405570 |. 68 01000000 ||push 0x1
00405575 |. E8 20120000 ||call cm.0040679A
0040557A |. 83C4 04 ||add esp,0x4
0040557D |> C1E0 02 ||shl eax,0x2
00405580 |. 03D8 ||add ebx,eax
00405582 |. 895D D4 ||mov [local.11],ebx
00405585 |. 8B5D D4 ||mov ebx,[local.11]
00405588 |. 8B03 ||mov eax,dword ptr ds:[ebx]
0040558A |. 50 ||push eax
0040558B |. FF75 D8 ||push [local.10]
0040558E |. E8 12BBFFFF ||call cm.004010A5 ; 再和p比较
00405593 |. 83C4 08 ||add esp,0x8
00405596 |. 83F8 00 ||cmp eax,0x0
00405599 |. B8 00000000 ||mov eax,0x0
0040559E |. 0f94c0 ||sete al
004055A1 |. 8945 D0 ||mov [local.12],eax
004055A4 |. 8B5D D8 ||mov ebx,[local.10]
004055A7 |. 85DB ||test ebx,ebx
004055A9 |. 74 09 ||je short cm.004055B4
004055AB |. 53 ||push ebx
004055AC |. E8 DD110000 ||call cm.0040678E
004055B1 |. 83C4 04 ||add esp,0x4
004055B4 |> 837D D0 00 ||cmp [local.12],0x0
004055B8 |. 0F84 35000000 ||je cm.004055F3
004055BE |. 68 B24C4800 ||push cm.00484CB2 ; /0
004055C3 |. FF75 E8 ||push [local.6] ; |Arg1 = 0077F7F8
004055C6 |. B9 02000000 ||mov ecx,0x2 ; |
004055CB |. E8 44C9FFFF ||call cm.00401F14 ; \cm.00401F14
004055D0 |. 83C4 08 ||add esp,0x8 ; 相等则用'0'替换
004055D3 |. 8945 D8 ||mov [local.10],eax
004055D6 |. 8B45 D8 ||mov eax,[local.10]
004055D9 |. 50 ||push eax
004055DA |. 8B5D E8 ||mov ebx,[local.6]
004055DD |. 85DB ||test ebx,ebx
004055DF |. 74 09 ||je short cm.004055EA
004055E1 |. 53 ||push ebx
004055E2 |. E8 A7110000 ||call cm.0040678E
004055E7 |. 83C4 04 ||add esp,0x4
004055EA |> 58 ||pop eax
004055EB |. 8945 E8 ||mov [local.6],eax
004055EE |. E9 37010000 ||jmp cm.0040572A
004055F3 |> 8B5D FC ||mov ebx,[local.1]
004055F6 |. E8 95C8FFFF ||call cm.00401E90 ; 取出asdfghjklp的长度(已经被分割 即s[1] = 'a' s[2] = 's'...一共十个字节)
004055FB |. 33C9 ||xor ecx,ecx
004055FD |. 50 ||push eax
004055FE |. 8D45 E0 ||lea eax,[local.8]
00405601 |. 8BD8 ||mov ebx,eax
00405603 |. 58 ||pop eax
00405604 |> 41 ||/inc ecx
00405605 |. 51 |||push ecx
00405606 |. 53 |||push ebx
00405607 |. 890B |||mov dword ptr ds:[ebx],ecx
00405609 |. 50 |||push eax
0040560A |. 3BC8 |||cmp ecx,eax
0040560C |. 0F8F 15010000 |||jg cm.00405727 ; 小循环十次
00405612 |. 68 01030080 |||push 0x80000301
00405617 |. 6A 00 |||push 0x0
00405619 |. 68 01000000 |||push 0x1
0040561E |. 68 01030080 |||push 0x80000301
00405623 |. 6A 00 |||push 0x0
00405625 |. FF75 E4 |||push [local.7] ; 第二个循环的循环次数
00405628 |. 68 04000080 |||push 0x80000004
0040562D |. 6A 00 |||push 0x0
0040562F |. 8B45 EC |||mov eax,[local.5] ; 注册码(分割后 即注册码[n])
00405632 |. 85C0 |||test eax,eax
00405634 |. 75 05 |||jnz short cm.0040563B
00405636 |. B8 884C4800 |||mov eax,cm.00484C88
0040563B |> 50 |||push eax
0040563C |. 68 03000000 |||push 0x3
00405641 |. BB 706A4000 |||mov ebx,cm.00406A70
00405646 |. E8 61110000 |||call cm.004067AC ; 取出一个字节
0040564B |. 83C4 28 |||add esp,0x28
0040564E |. 8945 D8 |||mov [local.10],eax
00405651 |. 8B5D FC |||mov ebx,[local.1]
00405654 |. E8 ECC0FFFF |||call cm.00401745
00405659 |. 53 |||push ebx
0040565A |. 51 |||push ecx
0040565B |. 8B45 E0 |||mov eax,[local.8]
0040565E |. 48 |||dec eax
0040565F |. 79 0D |||jns short cm.0040566E
00405661 |. 68 04000000 |||push 0x4
00405666 |. E8 2F110000 |||call cm.0040679A
0040566B |. 83C4 04 |||add esp,0x4
0040566E |> 59 |||pop ecx
0040566F |. 5B |||pop ebx
00405670 |. 3BC1 |||cmp eax,ecx
00405672 |. 7C 0D |||jl short cm.00405681
00405674 |. 68 01000000 |||push 0x1
00405679 |. E8 1C110000 |||call cm.0040679A
0040567E |. 83C4 04 |||add esp,0x4
00405681 |> C1E0 02 |||shl eax,0x2
00405684 |. 03D8 |||add ebx,eax
00405686 |. 895D D4 |||mov [local.11],ebx
00405689 |. 8B5D D4 |||mov ebx,[local.11]
0040568C |. 8B03 |||mov eax,dword ptr ds:[ebx]
0040568E |. 50 |||push eax ; "asdfghjklp"的每个字符(执行完一个小循环就换下一个)
0040568F |. FF75 D8 |||push [local.10]
00405692 |. E8 0EBAFFFF |||call cm.004010A5 ; eax和注册码(分割后 即 注册码[n])一个字节比较
00405697 |. 83C4 08 |||add esp,0x8
0040569A |. 83F8 00 |||cmp eax,0x0
0040569D |. B8 00000000 |||mov eax,0x0
004056A2 |. 0f94c0 |||sete al
004056A5 |. 8945 D0 |||mov [local.12],eax
004056A8 |. 8B5D D8 |||mov ebx,[local.10]
004056AB |. 85DB |||test ebx,ebx
004056AD |. 74 09 |||je short cm.004056B8
004056AF |. 53 |||push ebx
004056B0 |. E8 D9100000 |||call cm.0040678E
004056B5 |. 83C4 04 |||add esp,0x4
004056B8 |> 837D D0 00 |||cmp [local.12],0x0
004056BC |. 0F84 5D000000 |||je cm.0040571F ; 如果相等则不转移
004056C2 |. 68 01030080 |||push 0x80000301
004056C7 |. 6A 00 |||push 0x0
004056C9 |. FF75 E0 |||push [local.8]
004056CC |. 68 01000000 |||push 0x1
004056D1 |. BB F0784000 |||mov ebx,cm.004078F0
004056D6 |. E8 D1100000 |||call cm.004067AC ; 循环次数到文本
004056DB |. 83C4 10 |||add esp,0x10
004056DE |. 8945 D8 |||mov [local.10],eax ; 循环次数
004056E1 |. FF75 D8 |||push [local.10] ; /Arg2 = 0077F768
004056E4 |. FF75 E8 |||push [local.6] ; |Arg1 = 0077F7F8
004056E7 |. B9 02000000 |||mov ecx,0x2 ; |
004056EC |. E8 23C8FFFF |||call cm.00401F14 ; \cm.00401F14
004056F1 |. 83C4 08 |||add esp,0x8
004056F4 |. 8945 D4 |||mov [local.11],eax ; 文本合成 LOCAL6 = LOCAL6 + 到文本(循环次数)(LOCAL6的初始值是0x00)
004056F7 |. 8B5D D8 |||mov ebx,[local.10]
004056FA |. 85DB |||test ebx,ebx
004056FC |. 74 09 |||je short cm.00405707
004056FE |. 53 |||push ebx
004056FF |. E8 8A100000 |||call cm.0040678E
00405704 |. 83C4 04 |||add esp,0x4
00405707 |> 8B45 D4 |||mov eax,[local.11]
0040570A |. 50 |||push eax
0040570B |. 8B5D E8 |||mov ebx,[local.6]
0040570E |. 85DB |||test ebx,ebx
00405710 |. 74 09 |||je short cm.0040571B
00405712 |. 53 |||push ebx
00405713 |. E8 76100000 |||call cm.0040678E
00405718 |. 83C4 04 |||add esp,0x4
0040571B |> 58 |||pop eax
0040571C |. 8945 E8 |||mov [local.6],eax
0040571F |> 58 |||pop eax
00405720 |. 5B |||pop ebx
00405721 |. 59 |||pop ecx
00405722 |.^ E9 DDFEFFFF ||\jmp cm.00405604
00405727 |> 83C4 0C ||add esp,0xC
0040572A |> 58 ||pop eax
0040572B |. 5B ||pop ebx
0040572C |. 59 ||pop ecx
0040572D |.^ E9 E0FDFFFF |\jmp cm.00405512
00405732 |> 83C4 0C |add esp,0xC
00405735 |. 68 04000080 |push 0x80000004
0040573A |. 6A 00 |push 0x0
0040573C |. 8B45 E8 |mov eax,[local.6]
0040573F |. 85C0 |test eax,eax
00405741 |. 75 05 |jnz short cm.00405748
00405743 |. B8 884C4800 |mov eax,cm.00484C88
00405748 |> 50 |push eax
00405749 |. 68 01000000 |push 0x1
0040574E |. BB 40704000 |mov ebx,cm.00407040
00405753 |. E8 54100000 |call cm.004067AC ; 将LOCAL6转换到整数
00405758 |. 83C4 10 |add esp,0x10
0040575B |. 68 01030080 |push 0x80000301
00405760 |. 6A 00 |push 0x0
00405762 |. 50 |push eax
00405763 |. 68 01000000 |push 0x1
00405768 |. BB E0764000 |mov ebx,cm.004076E0
0040576D |. E8 3A100000 |call cm.004067AC ; 再转换成字节集
00405772 |. 83C4 10 |add esp,0x10
00405775 |. 8945 D4 |mov [local.11],eax ; LOCAL.11 = 到字节集(LOCAL.6(整数型))
00405778 |. 68 05000080 |push 0x80000005
0040577D |. 6A 00 |push 0x0
0040577F |. 8B45 D4 |mov eax,[local.11]
00405782 |. 85C0 |test eax,eax
00405784 |. 75 05 |jnz short cm.0040578B
00405786 |. B8 4E4C4800 |mov eax,cm.00484C4E
0040578B |> 50 |push eax
0040578C |. 68 01000000 |push 0x1
00405791 |. BB F0784000 |mov ebx,cm.004078F0
00405796 |. E8 11100000 |call cm.004067AC ; 再转换成文本
0040579B |. 83C4 10 |add esp,0x10
0040579E |. 8945 D0 |mov [local.12],eax
004057A1 |. 8B5D D4 |mov ebx,[local.11]
004057A4 |. 85DB |test ebx,ebx
004057A6 |. 74 09 |je short cm.004057B1
004057A8 |. 53 |push ebx
004057A9 |. E8 E00F0000 |call cm.0040678E
004057AE |. 83C4 04 |add esp,0x4
004057B1 |> FF75 D0 |push [local.12] ; /Arg2 = 00000000
004057B4 |. FF75 DC |push [local.9] ; |Arg1 = 00000000
004057B7 |. B9 02000000 |mov ecx,0x2 ; |
004057BC |. E8 53C7FFFF |call cm.00401F14 ; \cm.00401F14
004057C1 |. 83C4 08 |add esp,0x8
004057C4 |. 8945 CC |mov [local.13],eax ; local.9 + local.12(文本链接)
004057C7 |. 8B5D D0 |mov ebx,[local.12]
004057CA |. 85DB |test ebx,ebx
004057CC |. 74 09 |je short cm.004057D7
004057CE |. 53 |push ebx
004057CF |. E8 BA0F0000 |call cm.0040678E
004057D4 |. 83C4 04 |add esp,0x4
004057D7 |> 8B45 CC |mov eax,[local.13]
004057DA |. 50 |push eax
004057DB |. 8B5D DC |mov ebx,[local.9]
004057DE |. 85DB |test ebx,ebx
004057E0 |. 74 09 |je short cm.004057EB
004057E2 |. 53 |push ebx
004057E3 |. E8 A60F0000 |call cm.0040678E
004057E8 |. 83C4 04 |add esp,0x4
004057EB |> 58 |pop eax
004057EC |. 8945 DC |mov [local.9],eax ; 将LOCAL13的值保存到LOCAL9中
004057EF |. 58 |pop eax
004057F0 |. 5B |pop ebx
004057F1 |. 59 |pop ecx
004057F2 |.^ E9 59FCFFFF \jmp cm.00405450
004057F7 |> 83C4 0C add esp,0xC
004057FA |. 8B45 DC mov eax,[local.9] ; 这时 eax 就是即将弹出的MessageBox的内容。