Function at 0x453963
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 0x453b4f
dec eax
je 0x453b08
sub eax, 0x103
je 0x453ad3
sub eax, 3
je 0x453a68
dec eax
je 0x453a4d
dec eax
dec eax
je 0x4539ce
dec eax
jne 0x4539f0
mov eax, dword [ebx + 8]
test al, 0x20
je 0x4539be
mov ecx, 0x4789e8
call fcn.004168c0
jmp 0x4539f0
test al, 0x40
je 0x4539f0
mov ecx, 0x4789e8
call fcn.0041686a
jmp 0x4539f0
mov esi, 0x49ac50
mov ecx, esi
call fcn.0045db74
test eax, eax
je 0x453a06
mov eax, dword [ebx + 8]
mov ecx, esi
shr eax, 0x10
push eax
call fcn.00446365
mov esi, dword [esp + 0x14]
push ebx
lea ecx, [esi + 0x900]
call fcn.004333af
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4
cmp dword [0x474de0], 0
je 0x4539ec
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
movsx eax, ax
shr eax, 0x10
test ax, ax
je 0x4539ec
push 0x12
call esi
movsx eax, ax
shr eax, 0x10
test ax, ax
je 0x453a37
push 0
jmp 0x453a3e
mov eax, dword [ebx + 8]
shr eax, 0x10
push eax
mov ecx, 0x4789e8
call fcn.004195ec
jmp 0x453c2c
cmp dword [0x474df4], 0
je 0x4539f0
cmp dword [0x460a7c], 3
jne 0x4539f0
mov dword [ebx + 4], 0x202
jmp 0x4539f0
mov al, byte [0x474c28]
test al, 1
je 0x453aad
cmp dword [0x476d4c], 0
je 0x453a95
cmp dword [0x474c2c], 0
je 0x453a95
mov esi, 0x5358f0
test al, 0x20
mov ecx, esi
jne 0x453a9c
call fcn.004315f9
jmp 0x453aa1
mov esi, 0x5358f0
mov ecx, esi
call fcn.0042ee4f
mov ecx, esi
call fcn.0043150d
jmp 0x453c2c
cmp dword [0x474df4], 0
je 0x4539f0
cmp dword [0x460a7c], 3
jne 0x4539f0
mov dword [ebx + 4], 0x201
jmp 0x4539f0
mov eax, dword [ebx]
cmp eax, dword [esi + 0x90c]
je 0x453ae9
cmp eax, dword [esi + 0xacc]
jne 0x4539f0
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.0045215c
jmp 0x453c2c
cmp dword [ebx + 8], 9
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x453b29
push 0x11
call edi
shr eax, 8
test al, al
je 0x453b29
mov dword [esi + 0x8e4], 1
add esi, 0x8e4
cmp dword [esi], 0
je 0x4539ec
push 0x11
call edi
shr eax, 8
test al, al
jne 0x4539ec
and dword [esi], 0
jmp 0x4539ec
xor ebp, ebp
cmp dword [0x476eac], ebp
jle 0x4539f0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x4647c8
mov ebx, dword [edi]
test ebx, ebx
je 0x453bfa
mov al, byte [edi]
push 1
shr ebx, 8
mov byte [esp + 0x17], al
pop eax
test bl, bl
jbe 0x453bcb
test bl, 2
je 0x453b94
push 0x11
call esi
shr eax, 8
neg al
sbb eax, eax
neg eax
test bl, 1
je 0x453baf
test eax, eax
je 0x453bad
push 0x10
call esi
shr eax, 8
test al, al
je 0x453bad
push 1
pop eax
jmp 0x453baf
xor eax, eax
test bl, 4
je 0x453bc5
test eax, eax
je 0x453bc3
push 0x12
call esi
shr eax, 8
test al, al
jne 0x453bec
xor eax, eax
test eax, eax
je 0x453bfa
jmp 0x453bec
push 0x11
call esi
shr eax, 8
test al, al
jne 0x453bfa
push 0x12
call esi
shr eax, 8
test al, al
jne 0x453bfa
push 0x10
call esi
shr eax, 8
test al, al
jne 0x453bfa
movzx eax, byte [esp + 0x13]
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 8]
je 0x453c16
inc ebp
add edi, 0x824
cmp ebp, dword [0x476eac]
jl 0x453b68
mov ebx, dword [esp + 0x20]
jmp 0x4539ec
imul ebp, ebp, 0x824
mov ecx, dword [esp + 0x14]
add ebp, 0x4647cc
push ebp
call fcn.00453387
push 1
pop eax
jmp 0x4539fc