Function at 0x452a8d
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
mov eax, dword [ebx + 4]
mov esi, ecx
sub eax, 0x100
push edi
mov dword [esp + 0x14], esi
je 0x452c79
dec eax
je 0x452c32
sub eax, 0x103
je 0x452bfd
sub eax, 3
je 0x452b92
dec eax
je 0x452b77
dec eax
dec eax
je 0x452af8
dec eax
jne 0x452b1a
mov eax, dword [ebx + 8]
test al, 0x20
je 0x452ae8
mov ecx, 0x4776b0
call fcn.00416480
jmp 0x452b1a
test al, 0x40
je 0x452b1a
mov ecx, 0x4776b0
call fcn.0041642a
jmp 0x452b1a
mov esi, 0x499510
mov ecx, esi
call fcn.0045cc64
test eax, eax
je 0x452b30
mov eax, dword [ebx + 8]
mov ecx, esi
shr eax, 0x10
push eax
call fcn.0044555f
mov esi, dword [esp + 0x14]
push ebx
lea ecx, [esi + 0x900]
call fcn.004327d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4
cmp dword [0x473aac], 0
je 0x452b16
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
movsx eax, ax
shr eax, 0x10
test ax, ax
je 0x452b16
push 0x12
call esi
movsx eax, ax
shr eax, 0x10
test ax, ax
je 0x452b61
push 0
jmp 0x452b68
mov eax, dword [ebx + 8]
shr eax, 0x10
push eax
mov ecx, 0x4776b0
call fcn.00419132
jmp 0x452d56
cmp dword [0x473ac0], 0
je 0x452b1a
cmp dword [0x45fc4c], 3
jne 0x452b1a
mov dword [ebx + 4], 0x202
jmp 0x452b1a
mov al, byte [0x4738f8]
test al, 1
je 0x452bd7
cmp dword [0x475a18], 0
je 0x452bbf
cmp dword [0x4738fc], 0
je 0x452bbf
mov esi, 0x5341b0
test al, 0x20
mov ecx, esi
jne 0x452bc6
call fcn.00430a2d
jmp 0x452bcb
mov esi, 0x5341b0
mov ecx, esi
call fcn.0042e286
mov ecx, esi
call fcn.00430941
jmp 0x452d56
cmp dword [0x473ac0], 0
je 0x452b1a
cmp dword [0x45fc4c], 3
jne 0x452b1a
mov dword [ebx + 4], 0x201
jmp 0x452b1a
mov eax, dword [ebx]
cmp eax, dword [esi + 0x90c]
je 0x452c13
cmp eax, dword [esi + 0xacc]
jne 0x452b1a
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [esp + 0x18]
mov ecx, esi
push dword [esp + 0x18]
call fcn.00451379
jmp 0x452d56
cmp dword [ebx + 8], 9
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x452c53
push 0x11
call edi
shr eax, 8
test al, al
je 0x452c53
mov dword [esi + 0x8e4], 1
add esi, 0x8e4
cmp dword [esi], 0
je 0x452b16
push 0x11
call edi
shr eax, 8
test al, al
jne 0x452b16
and dword [esi], 0
jmp 0x452b16
xor ebp, ebp
cmp dword [0x475b74], ebp
jle 0x452b1a
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x463498
mov ebx, dword [edi]
test ebx, ebx
je 0x452d24
mov al, byte [edi]
push 1
shr ebx, 8
mov byte [esp + 0x17], al
pop eax
test bl, bl
jbe 0x452cf5
test bl, 2
je 0x452cbe
push 0x11
call esi
shr eax, 8
neg al
sbb eax, eax
neg eax
test bl, 1
je 0x452cd9
test eax, eax
je 0x452cd7
push 0x10
call esi
shr eax, 8
test al, al
je 0x452cd7
push 1
pop eax
jmp 0x452cd9
xor eax, eax
test bl, 4
je 0x452cef
test eax, eax
je 0x452ced
push 0x12
call esi
shr eax, 8
test al, al
jne 0x452d16
xor eax, eax
test eax, eax
je 0x452d24
jmp 0x452d16
push 0x11
call esi
shr eax, 8
test al, al
jne 0x452d24
push 0x12
call esi
shr eax, 8
test al, al
jne 0x452d24
push 0x10
call esi
shr eax, 8
test al, al
jne 0x452d24
movzx eax, byte [esp + 0x13]
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 8]
je 0x452d40
inc ebp
add edi, 0x824
cmp ebp, dword [0x475b74]
jl 0x452c92
mov ebx, dword [esp + 0x20]
jmp 0x452b16
imul ebp, ebp, 0x824
mov ecx, dword [esp + 0x14]
add ebp, 0x46349c
push ebp
call fcn.004524bb
push 1
pop eax
jmp 0x452b26