Function at 0x40392a
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x38
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], 0x100
je 0x40394e
cmp dword [eax + 0x10], 9
je 0x403df3
jmp case.0x403990.10
push 0x10
call sub.USER32.dll_GetKeyState
push 0x11
movsx esi, ax
shr esi, 0x1f
call sub.USER32.dll_GetKeyState
lea edx, [ebp - 0x44]
movsx ebx, ax
shr ebx, 0x1f
push edx
push 0
push 0x434
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
lea edx, [eax - 9]
cmp edx, 0x4d
ja case.0x403990.10
jmp dword [edx*4 + 0x403998]
test ebx, ebx
je case.0x403990.10
push 0
cmp eax, 0x26
setne al
movzx eax, al
add eax, 0x10000
push eax
push 0x115
jmp 0x403c6a
test ebx, ebx
jne case.0x403990.10
test esi, esi
jne case.0x403990.10
cmp dword [0x40c0b4], 0
je case.0x403990.10
push 0
push 0xffffffffffffffff
push 0xbb
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
push 0
mov edi, eax
mov ebx, edi
push 0xffffffffffffffff
push 0xc1
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
mov esi, eax
add esi, edi
jmp 0x403b57
push ebx
push 5
push 0x44c
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
mov ebx, eax
push ebx
push 3
push 0x44c
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
test al, 0x10
je 0x403b72
cmp ebx, esi
jl 0x403b42
cmp dword [ebp - 0x44], ebx
jne 0x403b7f
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], edi
jmp 0x403b85
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x44], ebx
lea eax, [ebp - 0x44]
push eax
push 0
push 0x437
jmp 0x403c6a
cmp dword [0x40c0b0], 0
je case.0x403990.10
push 0
push 0x20a
push 0x111
push dword [0x40c044]
call sub.USER32.dll_PostMessageA
jmp case.0x403990.10
test ebx, ebx
jne case.0x403990.10
cmp dword [0x40c0a4], 0
je 0x403bfe
mov eax, dword [0x40c340]
mov ebx, dword [0x40a010]
dec eax
cdq
idiv ebx
mov eax, ebx
sub eax, edx
cmp ebx, eax
jle 0x403be8
mov ebx, eax
push ebx
lea eax, [ebp - 0x3c]
push 0x20
push eax
call sub.msvcrt.dll_memset
mov byte [ebp + ebx - 0x3c], 0
add esp, 0xc
jmp 0x403c0e
push 2
lea eax, [ebp - 0x3c]
push 0x403920
push eax
call sub.KERNEL32.dll_lstrcpynA
push 0
push dword [ebp - 0x44]
push 0xc1
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
push dword [ebp - 0x44]
mov ebx, eax
push 0
push 0x436
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
push 0
push eax
push 0xbb
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
add ebx, eax
test esi, esi
jne 0x403c7a
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x44], eax
je 0x403c5f
cmp eax, ebx
jge 0x403c7a
lea eax, [ebp - 0x3c]
push eax
push 1
push 0xc2
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
jmp 0x403df3
xor eax, eax
test esi, esi
sete al
push eax
call fcn.004014c3
pop eax
jmp case.0x403990.10
test esi, esi
jne 0x403cd2
push 0x12
call sub.USER32.dll_GetKeyState
test ax, ax
js case.0x403990.86
test ebx, ebx
jne 0x403cd2
xor eax, eax
mov edx, 0x403922
cmp dword [0x40a020], 0
sete al
test eax, eax
mov dword [0x40a020], eax
jne 0x403cc0
mov edx, 0x403926
push edx
push 2
call fcn.00407ea0
pop esi
pop edi
test ebx, ebx
je case.0x403990.10
call fcn.004080f7
jmp 0x403df3
test ebx, ebx
je case.0x403990.10
jmp 0x403df3
test ebx, ebx
je case.0x403990.10
sub eax, 0x30
push eax
call fcn.00403290
jmp 0x403dec
test ebx, ebx
jne case.0x403990.10
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x40], eax
jne case.0x403990.10
cmp dword [0x40a088], 0
je case.0x403990.10
push 0
push 0xffffffffffffffff
push 0xbb
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x18], edx
sub edx, eax
test edx, edx
mov eax, edx
jle case.0x403990.10
add eax, 3
lea ebx, [ebp - 0x1c]
push eax
call fcn.00407ebb
mov byte [eax], 0xa
mov esi, eax
lea eax, [eax + 1]
push ebx
push 0
push 0x437
push dword [0x40c048]
mov dword [ebp - 0x14], eax
call sub.USER32.dll_SendMessageA
push dword [ebp - 0x14]
push 0
push 0x43e
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
push ebx
mov eax, dword [ebp - 0x18]
push 0
push 0x437
push dword [0x40c048]
mov dword [ebp - 0x1c], eax
call sub.USER32.dll_SendMessageA
pop ecx
xor edx, edx
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx]
test al, al
je 0x403dc7
cmp al, 0x20
je 0x403db6
cmp al, 9
jne 0x403dc7
inc edx
movzx eax, byte [edx + ecx]
test al, al
je 0x403dc7
cmp al, 0x20
je 0x403db6
cmp al, 9
je 0x403db6
mov eax, dword [ebp - 0x14]
mov byte [edx + eax], 0
push esi
push 1
push 0xc2
push dword [0x40c048]
call sub.USER32.dll_SendMessageA
push esi
call fcn.00407ed1
call fcn.00403304
pop eax
jmp 0x403df3
xor eax, eax
jmp 0x403e10
mov eax, dword [ebp + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp