Function at 0x455e90
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
mov eax, dword [0x549e00]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, ecx
mov ecx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
cmp ecx, 0x565
ja 0x45618f
je 0x45608b
mov eax, ecx
sub eax, 0x502
je 0x45601c
sub eax, 0xc
je 0x455f0d
sub eax, 6
jne 0x4561a3
lea eax, [esi + 0x40]
cmp edi, eax
jne 0x455ef2
push ebx
mov ecx, esi
call fcn.004521e0
jmp 0x456227
lea eax, [esi + 0x1e8]
cmp edi, eax
jne 0x456227
push ebx
mov ecx, esi
call fcn.00452150
jmp 0x456227
mov eax, ebx
mov byte [ebp - 0x124], 0
lea ecx, [ebp - 0x124]
shr eax, 0x10
push ecx
push eax
movzx ebx, bx
mov ecx, esi
push ebx
push edi
mov dword [ebp - 0x15c], eax
call fcn.00452ca0
test eax, eax
jle 0x456227
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x24]
push 0x1f
push eax
call fcn.00454c20
lea eax, [ebp - 0x24]
push eax
call fcn.004527f0
add esp, 0x10
test eax, eax
jns 0x456227
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
test ax, ax
jns 0x455ff7
mov ecx, dword [0x54d3d0]
mov dword [ebp - 0x158], 0xffffffff
test ecx, ecx
je 0x455fac
mov eax, dword [ecx]
lea edx, [ebp - 0x158]
push edx
lea edx, [ebp - 0x154]
push edx
lea edx, [ebp - 0x24]
push edx
call dword [eax + 0x18]
test eax, eax
je 0x455fac
cmp dword [ebp - 0x158], 1
je 0x455fdc
push 0x20
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x154]
push eax
call fcn.004bc400
add esp, 0xc
mov byte [ebp - 0x135], 0
mov dword [ebp - 0x130], 0xffffffff
mov dword [ebp - 0x134], 0
push dword [ebp - 0x15c]
lea eax, [ebp - 0x154]
push ebx
push eax
call fcn.00448a50
add esp, 0xc
jmp 0x456227
push 0x12
call esi
test ax, ax
jns 0x456227
push dword [ebp - 0x15c]
lea eax, [ebp - 0x24]
push ebx
push eax
call fcn.004488d0
add esp, 0xc
jmp 0x456227
cmp edi, esi
jne 0x456227
mov eax, ebx
shr eax, 0x10
cmp eax, 1
jne 0x456227
movzx eax, bx
test ax, ax
js 0x456081
mov edx, eax
mov eax, dword [esi + 0x6498]
imul ecx, edx, 0x2818
cmp byte [eax + ecx + 5], 0
sete al
movzx eax, al
push eax
push edx
call fcn.00451d50
mov ecx, dword [0x54faf0]
add esp, 8
test ecx, ecx
je 0x456227
movsx eax, word [ecx + 6]
push eax
movsx eax, word [ecx + 4]
mov ecx, esi
push eax
call fcn.004546d0
jmp 0x456227
call fcn.0040b0b0
jmp 0x456227
lea ebx, [esi + 0x390]
cmp edi, ebx
jne 0x4560b1
call fcn.00455380
mov ecx, ebx
call fcn.0040f170
test eax, eax
setne al
mov byte [esi + 0x30e1], al
jmp 0x456227
xor edx, edx
lea ecx, [esi + 0x16b4]
xor eax, eax
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], ecx
nop dword [eax]
lea ebx, [esi + 0x3140]
add ebx, eax
add eax, 0x3100
add eax, esi
mov dword [ebp - 0x16c], ebx
mov dword [ebp - 0x170], eax
cmp edi, ecx
jne 0x456110
mov dword [esi + 0x51b8], edx
mov ebx, 1
mov dword [ebp - 0x158], 0xf
mov dword [ebp - 0x15c], 0xfffffffe
jmp 0x456126
mov dword [ebp - 0x158], 0xfffffed4
xor ebx, ebx
mov dword [ebp - 0x15c], 0
push ebx
call fcn.00418680
mov ecx, dword [ebp - 0x16c]
push ebx
call fcn.00416080
push dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x170]
push dword [ebp - 0x158]
call fcn.0041cb80
mov eax, dword [ebp - 0x168]
mov edx, dword [ebp - 0x160]
add eax, 0x574
mov ecx, dword [ebp - 0x164]
inc edx
add ecx, 0x2b4
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x168], eax
cmp eax, 0x20b8
jl 0x4560d0
jmp 0x456227
cmp ecx, 0x5c9
je 0x45621c
cmp ecx, 0x691
je 0x4561c0
push ebx
push edi
push ecx
mov ecx, esi
call fcn.0041cda0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0048a3c9
mov esp, ebp
pop ebp
ret 0xc
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x456227
lea eax, [ebp - 0x124]
mov byte [ebp - 0x124], 0
push eax
push ebx
push edi
mov ecx, esi
call fcn.00452d00
test eax, eax
jle 0x456227
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x24]
push 0x1f
push eax
call fcn.00454c20
lea eax, [ebp - 0x24]
push eax
call fcn.004527f0
shr eax, 0x1f
lea ecx, [ebp - 0x24]
push 1
xor al, 1
push ecx
movzx eax, al
push eax
call fcn.0045e320
add esp, 0x1c
jmp 0x456227
call fcn.0040dfc0
mov dword [esi + 0x30fc], eax
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0048a3c9
mov esp, ebp
pop ebp
ret 0xc