Function at 0x46ddd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x501
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x64
ja case.0x46ddff.1
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx + 0x46e1f0]
jmp dword [eax*4 + 0x46e1dc]
push 0
push 0
push 0
mov ecx, dword [0x6de314]
call fcn.0053a130
test eax, eax
jne 0x46de4c
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
and ecx, 0x8000
je 0x46de3c
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x18]
call fcn.0046e380
jmp 0x46de4c
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0046e290
jmp 0x46e1d3
mov edx, dword [ebp - 0x18]
add edx, 0x634
cmp dword [ebp + 0xc], edx
jne 0x46de69
call fcn.0046d700
jmp 0x46e078
mov eax, dword [ebp - 0x18]
add eax, 0x3e4
cmp dword [ebp + 0xc], eax
jne 0x46de9f
mov ecx, dword [ebp - 0x18]
add ecx, 0x1ec
push ecx
push 0
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1e8]
push ecx
push 0
call fcn.00467110
add esp, 0x14
jmp 0x46e078
mov edx, dword [ebp - 0x18]
add edx, 0x9dc
cmp dword [ebp + 0xc], edx
jne 0x46df57
cmp dword [0x6de314], 0
je 0x46df52
push 0
push 0
push 0
mov ecx, dword [0x6de314]
call fcn.0053a130
test eax, eax
jne 0x46df2f
push 0
push 0
push 1
mov ecx, dword [0x6de314]
call fcn.0053a130
test eax, eax
jne 0x46df0c
push 0
mov ecx, dword [ebp - 0x18]
add ecx, 0x9dc
call fcn.00426310
push 1
push 1
mov eax, dword [0x693284]
push eax
call fcn.00510020
add esp, 0xc
jmp 0x46df2d
push 1
mov ecx, dword [ebp - 0x18]
add ecx, 0x9dc
call fcn.00426310
push 0
push 0
push 5
mov ecx, dword [0x6de314]
call fcn.0053a130
jmp 0x46df52
push 1
mov ecx, dword [ebp - 0x18]
add ecx, 0x9dc
call fcn.00426310
push 0
push 5
mov ecx, dword [0x693284]
push ecx
call fcn.00510020
add esp, 0xc
jmp 0x46e078
mov edx, dword [ebp - 0x18]
add edx, 0xc2c
cmp dword [ebp + 0xc], edx
jne 0x46dfaf
cmp dword [0x6de314], 0
je 0x46dfaa
push 0
push 0
push 1
mov ecx, dword [0x6de314]
call fcn.0053a130
test eax, eax
jne 0x46df97
push 1
push 2
mov eax, dword [0x693284]
push eax
call fcn.00510020
add esp, 0xc
jmp 0x46dfaa
push 2
push 3
mov ecx, dword [0x693284]
push ecx
call fcn.00510020
add esp, 0xc
jmp 0x46e078
mov edx, dword [ebp - 0x18]
add edx, 0xe7c
cmp dword [ebp + 0xc], edx
jne 0x46e078
call fcn.004666f0
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
jmp 0x46dfe2
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 3
jge 0x46e00a
push 0
mov ecx, dword [ebp - 0xc]
push ecx
push 7
mov ecx, dword [0x6de314]
call fcn.0053a130
test eax, eax
je 0x46e008
mov dword [ebp - 8], 1
jmp 0x46e00a
jmp 0x46dfd9
cmp dword [ebp - 8], 0
jne 0x46e059
xor edx, edx
cmp dword [0x6de400], 1
sete dl
test edx, edx
je 0x46e02a
mov eax, dword [0x6df75c]
mov dword [ebp - 0x20], eax
jmp 0x46e033
mov ecx, dword [0x6df758]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x10], edx
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.MSVCR80.dll_strlen
add esp, 4
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0048e030
add esp, 0xc
jmp 0x46e1d3
cmp dword [ebp - 4], 0
je 0x46e06e
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0x24]
call edx
jmp 0x46e078
push 1
call fcn.00466570
add esp, 4
jmp 0x46e1d3
cmp dword [ebp + 0xc], 0
jne 0x46e094
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x18]
call fcn.0046e260
jmp 0x46e128
cmp dword [ebp + 0xc], 1
je 0x46e0a0
cmp dword [ebp + 0xc], 2
jne 0x46e0c4
cmp dword [ebp + 0x10], 0
je 0x46e0c2
cmp dword [0x6de314], 0
je 0x46e0c2
push 0
mov ecx, dword [ebp + 0x10]
push ecx
push 2
mov ecx, dword [0x6de314]
call fcn.0053a130
jmp 0x46e128
cmp dword [ebp + 0xc], 5
jne 0x46e0e5
cmp dword [ebp + 0x10], 0
je 0x46e0e3
push 0
mov edx, dword [ebp + 0x10]
push edx
push 6
mov ecx, dword [0x6de314]
call fcn.0053a130
jmp 0x46e128
cmp dword [ebp + 0xc], 3
jne 0x46e128
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x46e0fc
jmp 0x46e1d3
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.MSVCR80.dll_atoi]
add esp, 4
push eax
mov edx, dword [ebp - 0x14]
add edx, 0x20
push edx
call dword [sym.imp.MSVCR80.dll_atoi]
add esp, 4
push eax
push 4
mov ecx, dword [0x6de314]
call fcn.0053a130
jmp 0x46e1d3
cmp dword [ebp + 0xc], 0
jne 0x46e146
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x18]
call fcn.0046e260
jmp 0x46e1bb
cmp dword [ebp + 0xc], 1
jne 0x46e17e
cmp dword [ebp + 0x10], 0
je 0x46e17c
cmp dword [0x6de314], 0
je 0x46e17c
push 0
push 0
push 5
mov ecx, dword [0x6de314]
call fcn.0053a130
push 1
mov ecx, dword [ebp - 0x18]
add ecx, 0x9dc
call fcn.00426310
jmp 0x46e1bb
cmp dword [ebp + 0xc], 4
jne 0x46e19f
cmp dword [ebp + 0x10], 0
je 0x46e19d
cmp dword [0x6de314], 0
je 0x46e19d
push 1
call fcn.00466570
add esp, 4
jmp 0x46e1bb
cmp dword [ebp + 0xc], 5
jne 0x46e1bb
cmp dword [ebp + 0x10], 0
je 0x46e1bb
push 0
mov ecx, dword [ebp - 0x18]
add ecx, 0x9dc
call fcn.00426310
jmp 0x46e1d3
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x18]
call fcn.004428d0
jmp 0x46e1d5
xor eax, eax
mov esp, ebp
pop ebp
ret 0xc