Function at 0x4711e0
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push edi
push 0x10
mov edi, ecx
call esi
movzx ebx, ax
shr ebx, 0xf
push 0x11
and bl, 1
call esi
mov ecx, dword [edi + 0x20]
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 8], eax
mov edx, dword [ecx]
call dword [edx + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0xc], eax
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov ecx, dword [ebp + 8]
xor edx, edx
mov byte [ebp - 4], dl
mov esi, eax
cmp ecx, 0x28
ja 0x47138f
je 0x471373
cmp ecx, 0x23
ja 0x47132f
je 0x47130a
sub ecx, 8
je 0x4712d8
sub ecx, 5
je 0x4712c7
sub ecx, 0xe
je 0x4712b7
sub ecx, 6
je 0x471296
dec ecx
jne 0x471439
test bl, bl
je 0x471280
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x5c]
dec eax
push 1
mov edx, dword [ecx]
add eax, esi
push eax
call dword [edx + 0x78]
mov byte [ebp - 4], 1
mov ecx, dword [edi + 0x5c]
push dword [ebp - 4]
dec ecx
add ecx, esi
push ecx
mov ecx, edi
call fcn.00470ec0
jmp 0x471463
test bl, bl
je 0x4712ad
mov ecx, dword [edi + 0x20]
sub eax, dword [edi + 0x5c]
push 1
inc eax
mov edx, dword [ecx]
push eax
call dword [edx + 0x78]
mov byte [ebp - 4], 1
sub esi, dword [edi + 0x5c]
push dword [ebp - 4]
inc esi
push esi
jmp 0x47128a
mov ecx, dword [edi + 0x1c]
push 1
push edx
call fcn.0043317a
jmp 0x471439
mov eax, dword [edi]
mov ecx, edi
push 0xffffffffffffffff
call dword [eax + 0x1c4]
jmp 0x471463
mov esi, dword [edi + 0x1c]
cmp byte [esi + 0x68], dl
je 0x4712f1
push edx
push 8
push 0x102
push dword [esi + 0x44]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp byte [esi + 0x68], 0
jne 0x471463
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1c8]
jmp 0x471463
mov esi, dword [ebp - 0xc]
test bl, bl
je 0x471323
mov ecx, dword [edi + 0x20]
lea eax, [esi - 1]
push 1
push eax
mov edx, dword [ecx]
call dword [edx + 0x78]
mov byte [ebp - 4], 1
push dword [ebp - 4]
lea eax, [esi - 1]
push eax
jmp 0x47128a
sub ecx, 0x24
je 0x471355
dec ecx
je 0x471355
dec ecx
je 0x471343
dec ecx
jne 0x471439
jmp 0x47130a
test bl, bl
je 0x471323
mov ecx, dword [edi + 0x20]
push esi
mov eax, dword [ecx]
call dword [eax + 0x80]
jmp 0x47131f
test bl, bl
je 0x47136a
mov ecx, dword [edi + 0x20]
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 0x78]
mov byte [ebp - 4], 1
xor edx, edx
push dword [ebp - 4]
push edx
jmp 0x47128a
test bl, bl
je 0x471387
mov ecx, dword [edi + 0x20]
push esi
mov eax, dword [ecx]
call dword [eax + 0x80]
mov byte [ebp - 4], 1
push dword [ebp - 4]
lea eax, [esi + 1]
jmp 0x471329
cmp ecx, 0x58
ja 0x471427
je 0x47143d
sub ecx, 0x2d
je 0x4713ea
dec ecx
je 0x4713c7
sub ecx, 0x13
je 0x471451
dec ecx
dec ecx
je 0x47144a
sub ecx, 0x13
jne 0x471439
cmp byte [ebp - 8], dl
je 0x471463
jmp 0x4713ee
mov ecx, dword [edi + 0x20]
mov edx, 0x7d1
test bl, bl
lea eax, [edx + 1]
cmovne edx, eax
inc eax
cmp byte [ebp - 8], 0
cmovne edx, eax
mov eax, dword [ecx]
push edx
call dword [eax + 0xd8]
jmp 0x471463
test bl, bl
je 0x471407
push edx
push 0x59b2
mov eax, dword [edi + 0x1c]
push 0x111
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x471463
cmp byte [ebp - 8], dl
je 0x471414
push edx
push 0x59b1
jmp 0x4713f4
mov ecx, dword [edi + 0x20]
push esi
mov eax, dword [ecx]
call dword [eax + 0x80]
push 1
jmp 0x47138a
sub ecx, 0x61
je 0x471451
dec ecx
dec ecx
je 0x47144a
sub ecx, 0x13
je 0x4713bc
dec ecx
dec ecx
je 0x47143d
xor al, al
jmp 0x471465
cmp byte [ebp - 8], dl
je 0x471463
push edx
push 0x59b0
jmp 0x4713f4
cmp byte [ebp - 8], dl
je 0x471463
jmp 0x47140c
cmp byte [ebp - 8], dl
je 0x471463
mov eax, dword [ebp - 0xc]
dec eax
push eax
push ecx
mov ecx, edi
call fcn.00470e92
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc