Function at 0x45fea4
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], ebx
mov esi, ecx
mov ebx, edx
mov edi, eax
mov byte [0x4a24d8], 0
cmp ebx, 0x2d
jne 0x45fede
movzx edx, si
cmp edx, 1
je 0x460074
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, edi
mov edx, ebx
mov ecx, esi
call fcn.0045f38c
cmp eax, 1
je case.default.0x45ff2f
mov eax, dword [edi + 0x48]
cmp eax, 1
je case.default.0x45ff2f
movsx eax, byte [edi + 0x215]
test eax, eax
jne 0x46005c
movsx eax, byte [edi + 0x214]
test eax, eax
jne 0x46005c
add ebx, 0xffffffdf
cmp ebx, 7
ja case.default.0x45ff2f
mov edx, dword [ebx*4 + 0x4973e0]
jmp edx
push 0
push 1
push 0x115
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push 0
push 1
push 0x114
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
xor edx, edx
push edx
push edx
push 0x115
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
xor edx, edx
push edx
push edx
push 0x114
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x45ffa9
push 0
push 6
push 0x115
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 6
push 0x114
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x45ffdf
push 0
push 7
push 0x115
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 7
push 0x114
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x460014
push 0
push 3
push 0x114
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push 0
push 3
push 0x115
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x460049
push 0
push 2
push 0x114
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push 0
push 2
push 0x115
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x45ff2f
push esi
push ebx
push edi
call fcn.0045673c
add esp, 0xc
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x4600cc
mov edx, dword [0x4a2494]
test edx, edx
je 0x45fed1
call fcn.0045097c
push eax
call dword [sym.imp.USER32.dll_GetMenu]
push 0
push 0x3ec
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
test eax, eax
jne 0x45fed1
push 0
push 0x3ec
push 0x111
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x45fed1
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x45fed1
mov edx, dword [0x4a2498]
test edx, edx
je 0x45fed1
call fcn.0045097c
push eax
call dword [sym.imp.USER32.dll_GetMenu]
push 0
push 0x3fd
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
test eax, eax
jne 0x45fed1
push 0
push 0x3fd
push 0x111
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x45fed1