Function at 0x45206e
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 0x45225a
dec eax
je 0x452213
sub eax, 0x103
je 0x4521de
sub eax, 3
je 0x452173
dec eax
je 0x452158
dec eax
dec eax
je 0x4520d9
dec eax
jne 0x4520fb
mov eax, dword [ebx + 8]
test al, 0x20
je 0x4520c9
mov ecx, 0x475a08
call fcn.0041607f
jmp 0x4520fb
test al, 0x40
je 0x4520fb
mov ecx, 0x475a08
call fcn.00416029
jmp 0x4520fb
mov esi, 0x497860
mov ecx, esi
call fcn.0045c164
test eax, eax
je 0x452111
mov eax, dword [ebx + 8]
mov ecx, esi
shr eax, 0x10
push eax
call fcn.00444cba
mov esi, dword [esp + 0x14]
push ebx
lea ecx, [esi + 0x900]
call fcn.00432024
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4
cmp dword [0x471e0c], 0
je 0x4520f7
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
movsx eax, ax
shr eax, 0x10
test ax, ax
je 0x4520f7
push 0x12
call esi
movsx eax, ax
shr eax, 0x10
test ax, ax
je 0x452142
push 0
jmp 0x452149
mov eax, dword [ebx + 8]
shr eax, 0x10
push eax
mov ecx, 0x475a08
call fcn.00418d4d
jmp 0x452337
cmp dword [0x471e20], 0
je 0x4520fb
cmp dword [0x45f13c], 3
jne 0x4520fb
mov dword [ebx + 4], 0x202
jmp 0x4520fb
mov al, byte [0x471c58]
test al, 1
je 0x4521b8
cmp dword [0x473d74], 0
je 0x4521a0
cmp dword [0x471c5c], 0
je 0x4521a0
mov esi, 0x532500
test al, 0x20
mov ecx, esi
jne 0x4521a7
call fcn.00430281
jmp 0x4521ac
mov esi, 0x532500
mov ecx, esi
call fcn.0042dada
mov ecx, esi
call fcn.00430195
jmp 0x452337
cmp dword [0x471e20], 0
je 0x4520fb
cmp dword [0x45f13c], 3
jne 0x4520fb
mov dword [ebx + 4], 0x201
jmp 0x4520fb
mov eax, dword [ebx]
cmp eax, dword [esi + 0x90c]
je 0x4521f4
cmp eax, dword [esi + 0xacc]
jne 0x4520fb
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.00450a67
jmp 0x452337
cmp dword [ebx + 8], 9
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x452234
push 0x11
call edi
shr eax, 8
test al, al
je 0x452234
mov dword [esi + 0x8e4], 1
add esi, 0x8e4
cmp dword [esi], 0
je 0x4520f7
push 0x11
call edi
shr eax, 8
test al, al
jne 0x4520f7
and dword [esi], 0
jmp 0x4520f7
xor ebp, ebp
cmp dword [0x473ecc], ebp
jle 0x4520fb
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x4617f8
mov ebx, dword [edi]
test ebx, ebx
je 0x452305
mov al, byte [edi]
push 1
shr ebx, 8
mov byte [esp + 0x17], al
pop eax
test bl, bl
jbe 0x4522d6
test bl, 2
je 0x45229f
push 0x11
call esi
shr eax, 8
neg al
sbb eax, eax
neg eax
test bl, 1
je 0x4522ba
test eax, eax
je 0x4522b8
push 0x10
call esi
shr eax, 8
test al, al
je 0x4522b8
push 1
pop eax
jmp 0x4522ba
xor eax, eax
test bl, 4
je 0x4522d0
test eax, eax
je 0x4522ce
push 0x12
call esi
shr eax, 8
test al, al
jne 0x4522f7
xor eax, eax
test eax, eax
je 0x452305
jmp 0x4522f7
push 0x11
call esi
shr eax, 8
test al, al
jne 0x452305
push 0x12
call esi
shr eax, 8
test al, al
jne 0x452305
push 0x10
call esi
shr eax, 8
test al, al
jne 0x452305
movzx eax, byte [esp + 0x13]
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 8]
je 0x452321
inc ebp
add edi, 0x824
cmp ebp, dword [0x473ecc]
jl 0x452273
mov ebx, dword [esp + 0x20]
jmp 0x4520f7
imul ebp, ebp, 0x824
mov ecx, dword [esp + 0x14]
add ebp, 0x4617fc
push ebp
call fcn.00451a9c
push 1
pop eax
jmp 0x452107