Function at 0x40df70
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x20
mov eax, dword [0x4228e4]
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [0x425464], eax
mov dword [0x425460], eax
mov eax, dword [0x427820]
push str.Loading_Intel_HEX_file
push edi
push 0x401
push eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, dword [esp + 0x40]
jmp 0x40dfb5
mov edi, dword [esp + 0x1c]
push 0x1b
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x40e20c
call fcn.0040df10
test eax, eax
jl 0x40e20c
inc edi
cmp eax, 0x3a
jne 0x40dfc6
mov byte [0x426080], al
mov esi, 0x426081
call fcn.0040df10
test eax, eax
jl 0x40e20c
inc edi
cmp eax, 0xd
mov dword [esp + 0x1c], edi
je 0x40e004
cmp eax, 0xa
je 0x40e004
mov byte [esi], al
inc esi
jmp 0x40dfe3
mov ecx, dword [esp + 0x34]
mov dword [0x427740], edi
push ecx
call fcn.004156d0
mov al, byte [0x426087]
add esp, 4
cmp al, 0x30
jne 0x40dfb5
mov al, byte [0x426088]
cmp al, 0x31
je 0x40e20c
cmp al, 0x32
jne 0x40e073
mov al, byte [0x42608a]
mov dl, byte [0x426089]
mov cl, byte [0x42608b]
mov byte [esp + 0x25], al
mov byte [esp + 0x24], dl
mov dl, byte [0x42608c]
lea eax, [esp + 0x24]
mov byte [esp + 0x26], cl
push eax
mov byte [esp + 0x2b], dl
mov byte [esp + 0x2c], 0
call fcn.00415890
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x40dfb5
cmp al, 0x34
jne 0x40e0b9
mov dl, byte [0x42608a]
mov cl, byte [0x426089]
mov al, byte [0x42608b]
mov byte [esp + 0x25], dl
mov byte [esp + 0x24], cl
mov cl, byte [0x42608c]
lea edx, [esp + 0x24]
mov byte [esp + 0x26], al
push edx
mov byte [esp + 0x2b], cl
mov byte [esp + 0x2c], 0
call fcn.00415890
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x40dfb5
cmp al, 0x30
jne 0x40dfb5
mov al, byte [0x426081]
mov cl, byte [0x426082]
lea edx, [esp + 0x24]
mov byte [esp + 0x24], al
push edx
mov byte [esp + 0x29], cl
mov byte [esp + 0x2a], 0
call fcn.00415800
mov cl, byte [0x426084]
mov dl, byte [0x426085]
mov si, ax
mov al, byte [0x426083]
mov byte [esp + 0x29], cl
mov byte [esp + 0x28], al
mov al, byte [0x426086]
lea ecx, [esp + 0x28]
push ecx
and esi, 0xffff
mov byte [esp + 0x2e], dl
mov byte [esp + 0x2f], al
mov byte [esp + 0x30], 0
call fcn.00415890
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
shl edx, 0xc
add edx, ebp
add esp, 8
shl edx, 4
add eax, edx
xor ecx, ecx
test esi, esi
mov dword [0x42420c], ecx
jle 0x40dfb5
mov edx, dword [0x424170]
mov ebp, eax
mov eax, dword [esp + 0x18]
mov edi, 0x42608a
add eax, esi
mov dword [esp + 0x18], eax
cmp ebp, dword [esp + 0x38]
jb 0x40e1e2
cmp ebp, dword [esp + 0x3c]
ja 0x40e1e2
mov al, byte [edi - 1]
mov cl, byte [edi]
lea edx, [esp + 0x24]
mov byte [esp + 0x24], al
push edx
mov byte [esp + 0x29], cl
mov byte [esp + 0x2a], 0
call fcn.00415800
mov ecx, dword [0x42420c]
add esp, 4
and eax, 0xffff
test ecx, ecx
jne 0x40e1a1
mov edx, ebp
mov dword [0x424170], edx
jmp 0x40e1a7
mov edx, dword [0x424170]
cmp dword [0x424018], 0
jne 0x40e1d5
mov ebx, dword [0x427710]
sub ebx, dword [esp + 0x38]
add ebx, edx
add ebx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x40]
mov byte [ecx + ebx], al
mov ecx, dword [0x42420c]
mov edx, dword [0x424170]
jmp 0x40e1db
mov byte [ecx + 0x426640], al
inc ecx
mov dword [0x42420c], ecx
add edi, 2
inc ebp
dec esi
jne 0x40e15d
test ecx, ecx
je 0x40dfb1
mov edi, dword [esp + 0x38]
push ecx
sub edx, edi
add edx, ebx
push edx
call fcn.00417590
add esp, 8
jmp 0x40dfb1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x20
ret