Function at 0x40fef0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x448e58
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
push edi
mov eax, dword [0x460590]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
cmp eax, 0x112
jne 0x40ff58
cmp dword [edi + 8], 0xf020
jne 0x40ff58
mov eax, dword [esi + 0x20]
push 6
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x1b
je 0x40ff3f
cmp eax, eax
jne 0x41016e
cmp dword [edi + 8], 0x78
jne 0x40ffaf
cmp dword [esi + 0x25c], 0
je 0x40ff93
mov ecx, dword [0x464ed8]
mov edx, dword [ecx + 0x13c]
push edx
push esi
call fcn.00410500
push edi
mov ecx, esi
call fcn.00416aae
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x70
jne 0x40fff3
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x51
call esi
push 0
push 2
push 0
push 0x51
call esi
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x71
jne 0x410037
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x57
call esi
push 0
push 2
push 0
push 0x57
call esi
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x72
jne 0x41007b
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x45
call esi
push 0
push 2
push 0
push 0x45
call esi
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x73
jne 0x4100bf
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x52
call esi
push 0
push 2
push 0
push 0x52
call esi
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x74
jne 0x410103
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x54
call esi
push 0
push 2
push 0
push 0x54
call esi
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x75
jne 0x410143
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x59
call esi
push 0
push 2
push 0
push 0x59
call esi
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x41016e
cmp dword [edi + 8], 0x77
jne 0x41016e
call fcn.0040fb70
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x204
jne 0x410196
push 2
push esi
call fcn.004109e0
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x205
jne 0x4101be
push 3
push esi
call fcn.004109e0
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x40ff93
cmp dword [edi + 8], 8
je 0x40ff93
cmp dword [edi + 4], 0x200
jne 0x4101fc
mov eax, dword [esi + 0x2c0]
push edi
push 0
push 0x407
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x40ff93
lea ecx, [esi + 0x208]
call fcn.0041b5e0
test eax, eax
je 0x410276
mov ecx, dword [eax]
lea edx, [esp + 0xc]
push edx
push 0x450fcc
push eax
mov eax, dword [ecx]
mov dword [esp + 0x18], 0
call eax
test eax, eax
jl 0x41026a
mov eax, dword [esp + 0xc]
test eax, eax
je 0x41026e
lea esi, [esp + 0x10]
call fcn.00407cb0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x410256
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push edi
push eax
call edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
test eax, eax
je 0x41026a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4