Function at 0x463230
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x47c
push ebx
push ebp
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
xor ebx, ebx
push ebx
push ebx
push 0x1042
push esi
call edi
mov ebp, eax
cmp ebp, 0xffffffff
mov dword [esp + 0xc], ebp
je 0x4634d2
mov eax, dword [esp + 0x48c]
lea ebx, [eax + ebp]
test ebx, ebx
jl 0x4632b0
push 0
push 0
push 0x1004
push esi
call edi
dec eax
test eax, eax
jle 0x463288
push 0
push 0
push 0x1004
push esi
call edi
dec eax
jmp 0x46328a
xor eax, eax
cmp ebx, eax
jle 0x4632b2
push 0
push 0
push 0x1004
push esi
call edi
dec eax
test eax, eax
jle 0x4632b0
push 0
push 0
push 0x1004
push esi
call edi
mov ebx, eax
dec ebx
jmp 0x4632b2
xor ebx, ebx
xor eax, eax
cmp ebp, ebx
je 0x4634d4
cmp ebx, eax
je 0x4632c4
cmp ebp, eax
jne 0x4632ce
mov ecx, dword [esp + 0x490]
mov dword [ecx + 0x14], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10]
push eax
push ebp
push 0x1073
lea edx, [esp + 0x28c]
push esi
mov dword [esp + 0x38], 0x104
mov dword [esp + 0x34], edx
call edi
lea edx, [esp + 0x10]
push edx
push ebx
push 0x1073
lea ecx, [esp + 0x84]
push esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x38], 0x104
mov dword [esp + 0x34], ecx
call edi
lea ecx, [esp + 0x10]
push ecx
push ebp
push 0x1074
lea eax, [esp + 0x84]
push esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], eax
call edi
lea eax, [esp + 0x10]
push eax
push ebx
push 0x1074
lea edx, [esp + 0x28c]
push esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], edx
call edi
push 0xf000
push ebp
push 0x102c
push esi
call edi
push 0xf000
push ebx
mov ebp, eax
push 0x102c
shr ebp, 0xc
push esi
dec ebp
mov dword [esp + 0x30], 0xf000
call edi
shr eax, 0xc
dec eax
mov eax, dword [esp + 0xc]
mov ecx, 0
setne cl
lea edx, [esp + 0x10]
push edx
push eax
push 0x102b
push esi
inc ecx
shl ecx, 0xc
mov dword [esp + 0x2c], ecx
call edi
xor ecx, ecx
test ebp, ebp
setne cl
lea edx, [esp + 0x10]
push edx
push ebx
push 0x102b
push esi
mov dword [esp + 0x30], 0xf000
inc ecx
shl ecx, 0xc
mov dword [esp + 0x2c], ecx
call edi
lea eax, [esp + 0x78]
push eax
call fcn.004622f0
test eax, eax
je 0x463404
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x7c]
push edx
call fcn.00461a00
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x10]
lea eax, [esp + 0x38]
push ecx
mov dword [esp + 0x28], eax
push edx
jmp 0x463416
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x28], 0x5d49c0
push ecx
push 0x1074
mov ebp, 1
push esi
mov dword [esp + 0x28], ebp
call edi
lea edx, [esp + 0x280]
push edx
call fcn.004622f0
test eax, eax
je 0x463459
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x284]
push ecx
call fcn.00461a00
lea edx, [esp + 0x38]
lea eax, [esp + 0x10]
mov dword [esp + 0x24], edx
push eax
jmp 0x463466
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], 0x5d49c0
push ecx
push ebx
push 0x1074
push esi
mov dword [esp + 0x28], ebp
call edi
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x46349e
push 0x26
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x46349a
push 0x28
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x46349e
mov ebx, dword [esp + 0xc]
push ebx
push 0
push 0x1043
push esi
call edi
lea edx, [esp + 0x10]
push edx
push ebx
mov eax, 3
push 0x102b
push esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
call edi
pop edi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x47c
ret 8
mov eax, ebx
pop edi
pop ebp
pop ebx
add esp, 0x47c
ret 8