|:004C7EF3(C)
|
:004C7EB3 8B45E0 mov eax, dword ptr [ebp-20]; 把C_2取反的字符串,每次取六位,取完为止传入eax,设为C_22
:004C7EB6 0FB67C18FF movzx edi, byte ptr [eax+ebx-01]; 依次取C_22
:004C7EBB 8B45F4 mov eax, dword ptr [ebp-0C] ; 把字符串yangyi传入eax,设为C_3
:004C7EBE 0FB64418FF movzx eax, byte ptr [eax+ebx-01]; 依次取C_3
:004C7EC3 33F8 xor edi, eax
:004C7EC5 8D45E0 lea eax, dword ptr [ebp-20]
:004C7EC8 B901000000 mov ecx, 00000001
:004C7ECD 8BD3 mov edx, ebx
:004C7ECF E8C8C2F3FF call 0040419C
:004C7ED4 8BC7 mov eax, edi
:004C7ED6 8845DF mov byte ptr [ebp-21], al
:004C7ED9 8D45AC lea eax, dword ptr [ebp-54]
:004C7EDC 8A55DF mov dl, byte ptr [ebp-21]
:004C7EDF E898BFF3FF call 00403E7C
:004C7EE4 8B45AC mov eax, dword ptr [ebp-54]
:004C7EE7 8D55E0 lea edx, dword ptr [ebp-20]
:004C7EEA 8BCB mov ecx, ebx
:004C7EEC E8F3C2F3FF call 004041E4
:004C7EF1 43 inc ebx
:004C7EF2 4E dec esi
:004C7EF3 75BE jne 004C7EB3 ; 这一段共计算三次,把三次的计算结果设为code1,code2,code3
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C7EAC(C)
|
:004C7EF5 8D45D8 lea eax, dword ptr [ebp-28]
:004C7EF8 8B55E0 mov edx, dword ptr [ebp-20] ; 将计算得到的字符串传入edx
:004C7EFB E85CC0F3FF call 00403F5C
:004C7F00 8B45E8 mov eax, dword ptr [ebp-18]
:004C7F03 0145E4 add dword ptr [ebp-1C], eax
:004C7F06 8B45E4 mov eax, dword ptr [ebp-1C]
:004C7F09 3B45EC cmp eax, dword ptr [ebp-14]
:004C7F0C 0F8E5DFFFFFF jle 004C7E6F
:004C7F12 8D45F8 lea eax, dword ptr [ebp-08]
:004C7F15 8B55D8 mov edx, dword ptr [ebp-28]
:004C7F18 E84FBEF3FF call 00403D6C
:004C7F1D 8B45F8 mov eax, dword ptr [ebp-08]
:004C7F20 E82FC0F3FF call 00403F54
:004C7F25 83F804 cmp eax, 00000004
:004C7F28 7D10 jge 004C7F3A
:004C7F2A 8D45F8 lea eax, dword ptr [ebp-08]
:004C7F2D 8B4DF8 mov ecx, dword ptr [ebp-08]
* Possible StringData Ref from Code Obj ->"love"
|
:004C7F30 BA28854C00 mov edx, 004C8528
:004C7F35 E866C0F3FF call 00403FA0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C7F28(C)
|
:004C7F3A 8B45F8 mov eax, dword ptr [ebp-08]
:004C7F3D E812C0F3FF call 00403F54
:004C7F42 8BC8 mov ecx, eax
:004C7F44 83E904 sub ecx, 00000004
:004C7F47 8D45F8 lea eax, dword ptr [ebp-08]
:004C7F4A BA01000000 mov edx, 00000001
:004C7F4F E848C2F3FF call 0040419C
:004C7F54 8B45F8 mov eax, dword ptr [ebp-08]
:004C7F57 E8F8BFF3FF call 00403F54
:004C7F5C 8945EC mov dword ptr [ebp-14], eax
:004C7F5F 8D45D8 lea eax, dword ptr [ebp-28]
:004C7F62 B9FF000000 mov ecx, 000000FF
:004C7F67 BA01000000 mov edx, 00000001
:004C7F6C E82BC2F3FF call 0040419C
:004C7F71 8D55D8 lea edx, dword ptr [ebp-28]
:004C7F74 A140034D00 mov eax, dword ptr [004D0340]
:004C7F79 8B00 mov eax, dword ptr [eax]
:004C7F7B 8B80E8020000 mov eax, dword ptr [eax+000002E8]
:004C7F81 E806B2F6FF call 0043318C
:004C7F86 8B75EC mov esi, dword ptr [ebp-14]
:004C7F89 85F6 test esi, esi
:004C7F8B 0F8EB1000000 jle 004C8042
:004C7F91 BB01000000 mov ebx, 00000001
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C803C(C)
|
:004C7F96 8B45F8 mov eax, dword ptr [ebp-08]; 把字符串code3+code2+code3的结果传入eax,设为sum_1
:004C7F99 0FB67C18FF movzx edi, byte ptr [eax+ebx-01]; 依次取sum_1
:004C7F9E 037DF0 add edi, dword ptr [ebp-10]; edi=edi+[ebp-10] ebp-10的值为0x14
:004C7FA1 81FFFF000000 cmp edi, 000000FF ; 这里的比较和第一部分的注册码的比较是一样的。
:004C7FA7 7E06 jle 004C7FAF
:004C7FA9 81EFFF000000 sub edi, 000000FF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C7FA7(C)
|
:004C7FAF 85FF test edi, edi
:004C7FB1 7D06 jge 004C7FB9
:004C7FB3 81C7FF000000 add edi, 000000FF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C7FB1(C)
|
:004C7FB9 8D45C4 lea eax, dword ptr [ebp-3C]
:004C7FBC 8BD3 mov edx, ebx
:004C7FBE 4A dec edx
:004C7FBF 03D2 add edx, edx
:004C7FC1 8B4DD8 mov ecx, dword ptr [ebp-28]
:004C7FC4 8A1411 mov dl, byte ptr [ecx+edx]; 取第二部分的假码的奇数位
:004C7FC7 885001 mov byte ptr [eax+01], dl
:004C7FCA C60001 mov byte ptr [eax], 01
:004C7FCD 8D55C4 lea edx, dword ptr [ebp-3C]
:004C7FD0 8D45C0 lea eax, dword ptr [ebp-40]
:004C7FD3 E8F0AAF3FF call 00402AC8
:004C7FD8 8D45BC lea eax, dword ptr [ebp-44]
:004C7FDB 8BD3 mov edx, ebx
:004C7FDD 4A dec edx
:004C7FDE 03D2 add edx, edx
:004C7FE0 8B4DD8 mov ecx, dword ptr [ebp-28]
:004C7FE3 8A541101 mov dl, byte ptr [ecx+edx+01]; 取第二部分的假码的偶数位
:004C7FE7 885001 mov byte ptr [eax+01], dl
:004C7FEA C60001 mov byte ptr [eax], 01
:004C7FED 8D55BC lea edx, dword ptr [ebp-44]
:004C7FF0 8D45C0 lea eax, dword ptr [ebp-40]
:004C7FF3 B102 mov cl, 02
:004C7FF5 E89EAAF3FF call 00402A98
:004C7FFA 8D55C0 lea edx, dword ptr [ebp-40]
:004C7FFD 8D45A8 lea eax, dword ptr [ebp-58]
:004C8000 E8F3BEF3FF call 00403EF8
:004C8005 8B45A8 mov eax, dword ptr [ebp-58]
:004C8008 50 push eax
:004C8009 8D45A4 lea eax, dword ptr [ebp-5C]
:004C800C 50 push eax
:004C800D 897DB0 mov dword ptr [ebp-50], edi
:004C8010 C645B400 mov [ebp-4C], 00
:004C8014 8D55B0 lea edx, dword ptr [ebp-50]
:004C8017 33C9 xor ecx, ecx


