Function at 0x43752c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xe8]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x20]
call fcn.00437d2e
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jl 0x437567
mov ecx, dword [ebp - 0x20]
call fcn.00420050
cmp eax, dword [ebp - 8]
jg 0x43756e
xor eax, eax
jmp 0x437758
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x108], 0
je 0x4375ba
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x20]
call fcn.0043775e
test eax, eax
je 0x4375ba
push 1
push 1
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x20]
call fcn.00435f6c
neg eax
sbb eax, eax
inc eax
push eax
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [ebp - 0x20]
call fcn.00435dbf
mov eax, 1
jmp 0x437758
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
and eax, 0x8000
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 4], eax
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
and ecx, 0x8000
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
je 0x4376cf
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x100], 0
je 0x4376cf
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0xe8], 0
jl 0x4376bb
mov ecx, dword [ebp - 0x20]
call fcn.00420050
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0xe8], eax
jge 0x4376bb
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0xe8]
cmp eax, dword [ebp - 8]
jge 0x43764a
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0xe8]
mov dword [ebp - 0x24], edx
jmp 0x437650
mov eax, dword [ebp - 8]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0xe8]
cmp eax, dword [ebp - 8]
jle 0x437672
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0xe8]
mov dword [ebp - 0x28], edx
jmp 0x437678
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
jmp 0x43768f
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jg 0x4376a7
push 1
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0x20]
call fcn.00436376
jmp 0x437686
push 0
push 1
push 0
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x20]
call fcn.00436647
jmp 0x4376cd
push 0
push 1
push 1
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x20]
call fcn.00436647
jmp 0x437746
cmp dword [ebp - 4], 0
je 0x437734
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x100], 0
je 0x437734
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x20]
call fcn.004365f6
test eax, eax
je 0x437720
push 0
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x20]
call fcn.00436376
mov edx, dword [ebp - 8]
cmp edx, dword [ebp - 0xc]
jne 0x43771e
push 0
push 1
push 0
mov ecx, dword [ebp - 0x20]
call fcn.004364b8
push eax
mov ecx, dword [ebp - 0x20]
call fcn.00436647
jmp 0x437732
push 0
push 1
push 0
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x20]
call fcn.00436647
jmp 0x437746
push 0
push 1
push 1
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x20]
call fcn.00436647
mov edx, dword [ebp - 0x20]
mov dword [edx + 0xfc], 1
mov eax, 1
mov esp, ebp
pop ebp
ret 8