Function at 0x455a70
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push 0xff
push 0xff
push 0xff
push 0xff
lea ecx, [ebp - 8]
call fcn.00457f50
push 0x70
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
je 0x455aaf
xor ecx, ecx
je 0x455aaf
mov dword [ebp - 0x1c], 1
jmp 0x455ab6
mov dword [ebp - 0x1c], 0
mov dl, byte [ebp - 0x1c]
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
test eax, eax
jne 0x455ad4
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x21844], 1
jne 0x455bca
mov dword [ebp - 0xc], 0
jmp 0x455ae6
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 3
jge 0x455bc5
push 0
push 0
push 0x64
push 0
push 0
push 0
lea ecx, [ebp - 0x18]
call fcn.00457f50
push eax
mov eax, dword [ebp - 0xc]
shl eax, 4
fld dword [eax + 0x6e2098]
fadd qword [0x6c9790]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x20]
push ecx
fstp dword [esp]
mov ecx, dword [ebp - 0xc]
shl ecx, 4
fld dword [ecx + 0x6e2094]
fadd qword [0x6c9790]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x24]
push ecx
fstp dword [esp]
mov edx, dword [ebp - 0xc]
shl edx, 4
fld dword [edx + 0x6e2090]
fsub qword [0x6c9798]
fstp dword [ebp - 0x28]
fld dword [ebp - 0x28]
push ecx
fstp dword [esp]
mov eax, dword [ebp - 0xc]
shl eax, 4
fld dword [eax + 0x6e208c]
fsub qword [0x6c9798]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x2c]
push ecx
fstp dword [esp]
call fcn.005cc2d0
add esp, 0x1c
push 0x20
xor ecx, ecx
cmp dword [ebp - 0xc], 1
setge cl
push ecx
push 0
mov edx, dword [ebp - 0xc]
shl edx, 9
add edx, 0x836c50
push edx
mov eax, dword [ebp - 0xc]
shl eax, 4
push ecx
fld dword [eax + 0x6e2090]
fstp dword [esp]
mov ecx, dword [ebp - 0xc]
shl ecx, 4
push ecx
fld dword [ecx + 0x6e208c]
fstp dword [esp]
call fcn.00455e30
add esp, 0x18
jmp 0x455add
jmp 0x455e1e
movsx edx, byte [0x836c50]
test edx, edx
je 0x455cc3
movsx eax, byte [0x836e50]
test eax, eax
je 0x455cc3
movsx ecx, byte [0x837050]
test ecx, ecx
je 0x455cc3
mov edx, dword [0x8357bc]
push edx
mov eax, dword [0x8357b8]
push eax
push 0x6e207c
call fcn.00455a00
add esp, 0xc
movzx ecx, al
test ecx, ecx
je 0x455cc3
lea edx, [ebp - 8]
push edx
push ecx
fld dword [0x6e2088]
fstp dword [esp]
push ecx
fld dword [0x6e2084]
fstp dword [esp]
push ecx
fld dword [0x6e2080]
fstp dword [esp]
push ecx
fld dword [0x6e207c]
fstp dword [esp]
mov ecx, dword [0x835790]
call fcn.00459d40
cmp dword [0x8357c0], 0
je 0x455cc3
push 0x836c50
mov eax, dword [ebp + 8]
add eax, 0x21848
push eax
call fcn.005e5680
add esp, 8
push 0x836e50
mov ecx, dword [ebp + 8]
add ecx, 0x218c8
push ecx
call fcn.005e5680
add esp, 8
push 0x837050
mov edx, dword [ebp + 8]
add edx, 0x21948
push edx
call fcn.005e5680
add esp, 8
mov eax, dword [ebp + 8]
add eax, 0x21acc
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x21a48
push ecx
call fcn.005e5680
add esp, 8
mov ecx, dword [ebp + 8]
call fcn.0045dad0
mov dword [ebp - 0x10], 0
jmp 0x455cd5
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 3
jge 0x455e1e
cmp dword [0x8357c0], 0
je 0x455d1f
mov eax, dword [0x8357bc]
push eax
mov ecx, dword [0x8357b8]
push ecx
mov edx, dword [ebp - 0x10]
shl edx, 4
add edx, 0x6e208c
push edx
call fcn.00455a00
add esp, 0xc
movzx eax, al
test eax, eax
je 0x455d1f
mov ecx, dword [ebp - 0x10]
mov dword [0x836c4c], ecx
call fcn.00461de0
cmp dword [ebp - 0x10], 1
je 0x455d34
cmp dword [ebp - 0x10], 2
je 0x455d34
mov dword [ebp - 0x30], 0
jmp 0x455d3b
mov dword [ebp - 0x30], 1
mov edx, dword [ebp - 0x10]
mov eax, dword [edx*4 + 0x6e2070]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [0x836c4c]
cmp edx, dword [ebp - 0x10]
sete al
movzx ecx, al
push ecx
mov edx, dword [ebp - 0x10]
shl edx, 9
add edx, 0x836c50
push edx
mov eax, dword [ebp - 0x10]
shl eax, 4
push ecx
fld dword [eax + 0x6e2090]
fstp dword [esp]
mov ecx, dword [ebp - 0x10]
shl ecx, 4
push ecx
fld dword [ecx + 0x6e208c]
fstp dword [esp]
call fcn.00455e30
add esp, 0x18
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 9
jne 0x455dcd
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
and edx, 0x8000
je 0x455db8
mov eax, dword [0x836c4c]
sub eax, 1
mov dword [ebp - 0x34], eax
jmp 0x455dc4
mov ecx, dword [0x836c4c]
add ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x34]
mov dword [0x836c4c], edx
cmp dword [ebp - 0x14], 0xd
jne 0x455df3
mov eax, dword [ebp - 0x10]
shl eax, 9
movsx ecx, byte [eax + 0x836c50]
test ecx, ecx
je 0x455df3
mov edx, dword [0x836c4c]
add edx, 1
mov dword [0x836c4c], edx
cmp dword [0x836c4c], 3
jl 0x455e06
mov dword [0x836c4c], 0
cmp dword [0x836c4c], 0
jge 0x455e19
mov dword [0x836c4c], 2
jmp 0x455ccc
mov esp, ebp
pop ebp
ret