=== 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]            ; rckgabewert!
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
