004DF644 . 8945 A0 mov dword ptr [ebp-60], eax ; 第十一位
004DF647 . DB45 A0 fild dword ptr [ebp-60]
004DF64A . 83C4 F4 add esp, -0C
004DF64D . DB3C24 fstp tbyte ptr [esp] ; 第十一位
004DF650 . 9B wait
004DF651 . B8 09000000 mov eax, 9 ; eax=9
004DF656 . E8 0519F5FF call 00430F60 ; 计算[esp]的eax次方,计算结果记为A11
004DF65B . 33C0 xor eax, eax
004DF65D . 8AC3 mov al, bl ; 第十一位
004DF65F . F7E8 imul eax ; eax*eax
004DF661 . F7E8 imul eax ; eax*eax
004DF663 . 66:8945 9C mov word ptr [ebp-64], ax ; 取ax给ebp-64
004DF667 . DF45 9C fild word ptr [ebp-64] ; 将word ptr [ebp-64]装入st(0)
004DF66A . DEC9 fmulp st(1), st ; A11与st再乘
004DF66C . DC45 E0 fadd qword ptr [ebp-20] ; 加上[ebp-20](初始为0)
004DF66F . DD5D E0 fstp qword ptr [ebp-20] ; 保存在ebp-20中
004DF672 . 9B wait
004DF673 . 8B45 F8 mov eax, dword ptr [ebp-8] ; eax为假码地址
004DF676 . 8A58 0B mov bl, byte ptr [eax+B] ; bl为第十二位
004DF679 . 33C0 xor eax, eax
004DF67B . 8AC3 mov al, bl ; al=bl
004DF67D . 83C0 0B add eax, 0B ; eax+0XB
004DF680 . 71 05 jno
short
004DF687 ; 不溢出就跳
004DF682 . E8 7544F2FF call 00403AFC
004DF687 > 8945 A0 mov dword ptr [ebp-60], eax
004DF68A . DB45 A0 fild dword ptr [ebp-60]
004DF68D . D9FA fsqrt ; 第十二位+0xB开方
004DF68F . E8 B835F2FF call 00402C4C ; 取开方后的整数
004DF694 . 8BF0 mov esi, eax ; esi=开方后的整数
004DF696 . C745 D8 01000>mov dword ptr [ebp-28], 1
004DF69D . C745 DC 00000>mov dword ptr [ebp-24], 0
004DF6A4 . 83FE 01 cmp esi, 1 ; 是否为1
004DF6A7 . 76 2D jbe
short
004DF6D6
004DF6A9 > 8BC6 mov eax, esi ; 循环开始(算阶乘)
004DF6AB . 33D2 xor edx, edx
004DF6AD . 52 push edx
004DF6AE . 50 push eax
004DF6AF . 8B45 D8 mov eax, dword ptr [ebp-28]
004DF6B2 . 8B55 DC mov edx, dword ptr [ebp-24]
004DF6B5 . E8 2A65F2FF call 00405BE4 ; 相乘
004DF6BA . 71 05 jno
short
004DF6C1
004DF6BC . E8 3B44F2FF call 00403AFC
004DF6C1 > 8945 D8 mov dword ptr [ebp-28], eax
004DF6C4 . 8955 DC mov dword ptr [ebp-24], edx
004DF6C7 . 83EE 01 sub esi, 1
004DF6CA . 73 05 jnb
short
004DF6D1
004DF6CC . E8 2B44F2FF call 00403AFC
004DF6D1 > 83FE 01 cmp esi, 1
004DF6D4 .^ 77 D3 ja
short
004DF6A9 ; 循环结束
004DF6D6 > FF75 DC push dword ptr [ebp-24]
004DF6D9 . FF75 D8 push dword ptr [ebp-28] ; 阶乘后的值
004DF6DC . 33C0 xor eax, eax ; eax=0
004DF6DE . 8AC3 mov al, bl ; 第十二位
004DF6E0 . F7E8 imul eax ; 相乘
004DF6E2 . F7E8 imul eax ; 相乘
004DF6E4 . 0FBFC0 movsx eax, ax ; 取ax
004DF6E7 . 33D2 xor edx, edx ; EDX=0
004DF6E9 . 8AD3 mov dl, bl ; 第十二位
004DF6EB . F7EA imul edx ; 相乘
004DF6ED . 71 05 jno
short
004DF6F4
004DF6EF . E8 0844F2FF call 00403AFC
004DF6F4 > 99 cdq ; 护展成四字节
004DF6F5 . E8 EA64F2FF call 00405BE4 ; 相乘
004DF6FA . 71 05 jno
short
004DF701 ; 与前面的结果相乘
004DF6FC . E8 FB43F2FF call 00403AFC
004DF701 > 8945 94 mov dword ptr [ebp-6C], eax
004DF704 . 8955 98 mov dword ptr [ebp-68], edx
004DF707 . DF6D 94 fild qword ptr [ebp-6C] ; 装入第十二位运算结果
004DF70A . DC45 E0 fadd qword ptr [ebp-20] ; 与[ebp-20]相加
004DF70D . DD5D E0 fstp qword ptr [ebp-20]
004DF710 . 9B wait
004DF711 . 8B45 F8 mov eax, dword ptr [ebp-8] ; eax为假码地址
004DF714 . 8A58 0C mov bl, byte ptr [eax+C] ; 第十三位
004DF717 . 33C0 xor eax, eax
004DF719 . 8AC3 mov al, bl ; al=bl
004DF71B . 8945 A0 mov dword ptr [ebp-60], eax
004DF71E . DB45 A0 fild dword ptr [ebp-60]
004DF721 . 83C4 F4 add esp, -0C
004DF724 . DB3C24 fstp tbyte ptr [esp] ; 参数2为假码第十三位
004DF727 . 9B wait
004DF728 . 68 01400000 push 4001
004DF72D . 68 000000C0 push C0000000
004DF732 . 6A 00 push 0 ; 参数1(此时进入流程2)
004DF734 . E8 3B18F5FF call 00430F74
004DF739 . 33C0 xor eax, eax
004DF73B . 8AC3 mov al, bl
004DF73D . 8945 A0 mov dword ptr [ebp-60], eax
004DF740 . DB45 A0 fild dword ptr [ebp-60]
004DF743 . DEC9 fmulp st(1), st ; 相乘
004DF745 . DC45 E0 fadd qword ptr [ebp-20] ; 与[ebp-20]相加
004DF748 . DD5D E0 fstp qword ptr [ebp-20]
004DF74B . 9B wait
004DF74C . 8B45 F8 mov eax, dword ptr [ebp-8]
004DF74F . 8A58 0D mov bl, byte ptr [eax+D] ; 第十四位
004DF752 . 8BC3 mov eax, ebx
004DF754 . 25 FF000000 and eax, 0FF
004DF759 . 33D2 xor edx, edx
004DF75B . 8945 D8 mov dword ptr [ebp-28], eax
004DF75E . 8955 DC mov dword ptr [ebp-24], edx
004DF761 . DF6D D8 fild qword ptr [ebp-28]
004DF764 . 83C4 F4 add esp, -0C
004DF767 . DB3C24 fstp tbyte ptr [esp] ; 参数2为假码第十四位
004DF76A . 9B wait
004DF76B . 68 00400000 push 4000
004DF770 . 68 00000080 push 80000000 ; 2(进入流程2)
004DF775 . 6A 00 push 0
004DF777 . E8 F817F5FF call 00430F74
004DF77C . 8B45 F8 mov eax, dword ptr [ebp-8]
004DF77F . 0FB640 0A movzx eax, byte ptr [eax+A] ; 第十一位
004DF783 . F7E8 imul eax ; eax*eax
004DF785 . 66:8945 9C mov word ptr [ebp-64], ax
004DF789 . DF45 9C fild word ptr [ebp-64]
004DF78C . DEC9 fmulp st(1), st ; 相乘
004DF78E . 8B45 F8 mov eax, dword ptr [ebp-8]
004DF791 . 8A40 0B mov al, byte ptr [eax+B] ; 第十二位
004DF794 . 25 FF000000 and eax, 0FF
004DF799 . 8945 A0 mov dword ptr [ebp-60], eax
004DF79C . DB45 A0 fild dword ptr [ebp-60]
004DF79F . DEC9 fmulp st(1), st ; 相乘
004DF7A1 . DC45 E0 fadd qword ptr [ebp-20] ; 与[ebp-20]相加
004DF7A4 . DD5D E0 fstp qword ptr [ebp-20]
004DF7A7 . 9B wait
004DF7A8 . 33C0 xor eax, eax
004DF7AA . 55 push ebp
004DF7AB . 68 FEF74D00 push 004DF7FE
004DF7B0 . 64:FF30 push dword ptr fs:[eax]
004DF7B3 . 64:8920 mov dword ptr fs:[eax], esp ; 安装SEH异常
004DF7B6 . DD45 E0 fld qword ptr [ebp-20] ; 压入第十一位到第十四位的运算结果
004DF7B9 . E8 8E34F2FF call 00402C4C
004DF7BE 2D 8063E7EA sub eax, EAE76380 ; 1026143249280
004DF7C3 81DA EE000000 sbb edx, 0EE
004DF7C9 . 71 05 jno
short
004DF7D0
004DF7CB . E8 2C43F2FF call 00403AFC
004DF7D0 > 8945 94 mov dword ptr [ebp-6C], eax
004DF7D3 . 8955 98 mov dword ptr [ebp-68], edx
004DF7D6 . DF6D 94 fild qword ptr [ebp-6C]
004DF7D9 . DB7D 88 fstp tbyte ptr [ebp-78]
004DF7DC . 9B wait
004DF7DD . E8 06CAF2FF call 0040C1E8 ; 通过GetLocalTime计算出一个随机数,无用
004DF7E2 . DB6D 88 fld tbyte ptr [ebp-78]
004DF7E5 . DEF9 fdivp st(1), st ; st(1)%st(0)给st(1)(主要在st0)
004DF7E7 . DDD8 fstp st ; st为0,触发异常
004DF7E9 . 33C0 xor eax, eax
004DF7EB . 5A pop edx
004DF7EC . 59 pop ecx
004DF7ED . 59 pop ecx
004DF7EE . 64:8910 mov dword ptr fs:[eax], edx
004DF7F1 . E9 A6000000 jmp 004DF89C ; 如果没有触发异常,这里必跳