=== GetKey() ================================================================ 40B378 push ebp 40B379 mov ebp, esp 40B37B sub esp, 00000104 40B381 xor eax, eax 40B383 push ebx 40B384 push esi 40B385 mov ecx, 0000003F 40B38A push edi 40B38B xor esi, esi 40B38D lea edi, dword ptr [ebp+FFFFFEFD] 40B393 push 00000100 40B398 mov byte ptr [ebp+FFFFFEFC], 00 40B39F repz 40B3A0 stosd 40B3A1 stosw 40B3A3 lea ecx, dword ptr [ebp+FFFFFEFC] 40B3A9 xor ebx, ebx 40B3AB stosb 40B3AC push [ebp+08] 40B3AF push ecx 40B3B0 call 00426880 ------ CALL1 ------ 40B3B5 add esp, 0000000C 40B3B8 lea ecx, dword ptr [ebp+FFFFFEFC] 40B3BE push ecx 40B3BF call 00425FD0 ------ CALL2 ------ 40B3C4 add esp, 00000004 40B3C7 test eax, eax 40B3C9 je 0040B430 40B3CB lea edi, dword ptr [ebp-03] 40B3CE xor eax, eax 40B3D0 push 00000004 40B3D2 lea ecx, dword ptr [ebp-04] 40B3D5 mov [ebp-04], 00 40B3D9 stosw 40B3DB stosb 40B3DC lea eax, dword ptr [ebp+ebx-00000104] 40B3E3 push eax 40B3E4 push ecx 40B3E5 call 00426880 ------ CALL1 ------ 40B3EA add esp, 0000000C 40B3ED mov al, byte ptr [ebp-01] 40B3F0 xor al, byte ptr [ebp-03] 40B3F3 movzx edx, al 40B3F6 not edx 40B3F8 mov al, byte ptr [ebp-02] 40B3FB xor al, byte ptr [ebp-04] 40B3FE movzx eax, al 40B401 not eax 40B403 add edx, eax 40B405 mov eax, ebx 40B407 and al, 07 40B409 lea ecx, dword ptr [2*eax+00000000] 40B410 shl edx, cl 40B412 test edx, edx 40B414 jl 0040B41A 40B416 add esi, edx 40B418 jmp 0040B41C 40B41A sub esi, edx 40B41C inc ebx 40B41D lea eax, dword ptr [ebp+FFFFFEFC] 40B423 push eax ú 40B424 call 00425FD0 ------ CALL2 ------ 40B429 add esp, 00000004 ú 40B42C cmp eax, ebx ú 40B42E ja 0040B3CB úúúúúúúúúúú 40B430 imul esi, 00000025 40B433 mov ecx, 000F4240 40B438 mov eax, esi 40B43A cdq 40B43B idiv ecx 40B43D mov edi, edx 40B43F mov ecx, edx 40B441 imul edi, 00000064 40B444 xor esi, esi 40B446 test ecx, ecx 40B448 je 0040B461 úúúúúúúúúúúú 40B44A mov ebx, 00000064 ú 40B44F mov eax, ecx <úúúúúúúú ú 40B451 cdq ú ú 40B452 idiv ebx ú ú 40B454 add esi, edx ú ú 40B456 mov eax, ecx ú ú 40B458 cdq ú ú 40B459 idiv ebx ú ú 40B45B mov ecx, eax ú ú 40B45D test ecx, ecx ú ú 40B45F jne 0040B44F úúúúúúúúú ú 40B461 mov eax, esi úúúúúúúúúúúú 40B463 mov ecx, 00000064 40B468 imul eax, 00000003 40B46B cdq 40B46C and edx, 00000003 40B46F add eax, edx 40B471 sar eax, 02 40B474 cdq 40B475 idiv ecx 40B477 lea eax, dword ptr [edi+edx] ; r�ckgabewert! 40B47A pop edi 40B47B pop esi 40B47C pop ebx 40B47D mov esp, ebp 40B47F pop ebp 40B480 ret === Call1 =================================================================== 426880 mov ecx, dword ptr [esp+0C] 426884 push edi 426885 test ecx, ecx 426887 je 00426903 426889 push esi 42688A push ebx 42688B mov ebx, ecx 42688D mov esi, dword ptr [esp+14] 426891 test esi, 00000003 426897 mov edi, dword ptr [esp+10] 42689B jne 004268A4 42689D shr ecx, 02 4268A0 jne 00426911 4268A2 jmp 004268C5 4268A4 mov al, byte ptr [esi] 4268A6 inc esi 4268A7 mov byte ptr [edi], al 4268A9 inc edi 4268AA dec ecx 4268AB je 004268D2 4268AD test al, al 4268AF je 004268DA 4268B1 test esi, 00000003 4268B7 jne 004268A4 4268B9 mov ebx, ecx 4268BB shr ecx, 02 4268BE jne 00426911 4268C0 and ebx, 00000003 4268C3 je 004268D2 4268C5 mov al, byte ptr [esi] 4268C7 inc esi 4268C8 mov byte ptr [edi], al 4268CA inc edi 4268CB test al, al 4268CD je 004268FE 4268CF dec ebx 4268D0 jne 004268C5 4268D2 mov eax, dword ptr [esp+10] 4268D6 pop ebx 4268D7 pop esi 4268D8 pop edi 4268D9 ret 4268DA test edi, 00000003 4268E0 je 004268F4 4268E2 mov byte ptr [edi], al 4268E4 inc edi 4268E5 dec ecx 4268E6 je 00426976 4268EC test edi, 00000003 4268F2 jne 004268E2 4268F4 mov ebx, ecx 4268F6 shr ecx, 02 4268F9 jne 00426967 4268FB mov byte ptr [edi], al 4268FD inc edi 4268FE dec ebx 4268FF jne 004268FB 426901 pop ebx 426902 pop esi 426903 mov eax, dword ptr [esp+08] 426907 pop edi 426908 ret 426909 mov dword ptr [edi], edx 42690B add edi, 00000004 42690E dec ecx 42690F je 004268C0 426911 mov edx, 7EFEFEFF 426916 mov eax, dword ptr [esi] 426918 add edx, eax 42691A xor eax, FFFFFFFF 42691D xor eax, edx 42691F mov edx, dword ptr [esi] 426921 add esi, 00000004 426924 test eax, 81010100 426929 je 00426909 42692B test dl, dl 42692D je 0042695B 42692F test dh, dh 426931 je 00426951 426933 test edx, 00FF0000 426939 je 00426947 42693B test edx, FF000000 426941 jne 00426909 426943 mov dword ptr [edi], edx 426945 jmp 0042695F 426947 and edx, 0000FFFF 42694D mov dword ptr [edi], edx 42694F jmp 0042695F 426951 and edx, 000000FF 426957 mov dword ptr [edi], edx 426959 jmp 0042695F 42695B xor edx, edx 42695D mov dword ptr [edi], edx 42695F add edi, 00000004 426962 xor eax, eax 426964 dec ecx 426965 je 00426971 426967 xor eax, eax 426969 mov dword ptr [edi], eax 42696B add edi, 00000004 42696E dec ecx 42696F jne 00426969 426971 and ebx, 00000003 426974 jne 004268FB 426976 mov eax, dword ptr [esp+10] 42697A pop ebx 42697B pop esi 42697C pop edi 42697D ret === Call2 =================================================================== 425FD0 mov ecx, dword ptr [esp+04] 425FD4 test ecx, 00000003 425FDA je 00425FF0 425FDC mov al, byte ptr [ecx] 425FDE inc ecx 425FDF test al, al 425FE1 je 00426023 425FE3 test ecx, 00000003 425FE9 jne 00425FDC 425FEB add eax, 00000000 425FF0 mov eax, dword ptr [ecx] 425FF2 mov edx, 7EFEFEFF 425FF7 add edx, eax 425FF9 xor eax, FFFFFFFF 425FFC xor eax, edx 425FFE add ecx, 00000004 426001 test eax, 81010100 426006 je 00425FF0 426008 mov eax, dword ptr [ecx-04] 42600B test al, al 42600D je 00426041 42600F test ah, ah 426011 je 00426037 426013 test eax, 00FF0000 426018 je 0042602D 42601A test eax, FF000000 42601F je 00426023 426021 jmp 00425FF0 426023 lea eax, dword ptr [ecx-01] 426026 mov ecx, dword ptr [esp+04] 42602A sub eax, ecx 42602C ret 42602D lea eax, dword ptr [ecx-02] 426030 mov ecx, dword ptr [esp+04] 426034 sub eax, ecx 426036 ret 426037 lea eax, dword ptr [ecx-03] 42603A mov ecx, dword ptr [esp+04] 42603E sub eax, ecx 426040 ret 426041 lea eax, dword ptr [ecx-04] 426044 mov ecx, dword ptr [esp+04] 426048 sub eax, ecx 42604A ret