Function at 0x180165d10
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x30
call fcn.180174f70
mov rdi, rax
lea r14, [0x1804dbe60]
mov qword [rsp + 0x60], r14
mov rcx, r14
call fcn.180283150
test eax, eax
jne 0x180166092
cmp dword [0x1804dbeac], 0x7fffffff
je 0x18016607d
cmp qword [0x1804dbed0], 0
je 0x180165e62
mov rcx, qword [0x1804dbec0]
dec rcx
and rcx, qword [0x1804dbec8]
mov rax, qword [0x1804dbeb8]
mov rsi, qword [rax + rcx*8]
mov rbp, qword [rsi + 8]
mov rbx, qword [rsi]
cmp rbx, rbp
je 0x180165da8
nop word [rax + rax]
movzx r8d, byte [rbx + 8]
mov edx, dword [rbx]
mov rcx, rdi
call fcn.18016d320
add rbx, 0x10
cmp rbx, rbp
jne 0x180165d90
mov rbp, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x18]
cmp rbx, rbp
je 0x180165dd8
nop word [rax + rax]
movzx r8d, byte [rbx + 4]
mov edx, dword [rbx]
mov rcx, rdi
call fcn.18016d350
add rbx, 8
cmp rbx, rbp
jne 0x180165dc0
mov rbp, qword [rsi + 0x38]
mov rbx, qword [rsi + 0x30]
cmp rbx, rbp
je 0x180165df9
movzx edx, word [rbx]
mov rcx, rdi
call fcn.18016d0c0
add rbx, 2
cmp rbx, rbp
jne 0x180165de5
movss xmm0, dword [rsi + 0x48]
addss xmm0, dword [rdi + 0xe08]
movss dword [rdi + 0xe08], xmm0
movss xmm1, dword [rsi + 0x4c]
addss xmm1, dword [rdi + 0xe0c]
movss dword [rdi + 0xe0c], xmm1
mov rcx, qword [0x1804dbec0]
dec rcx
and rcx, qword [0x1804dbec8]
mov rax, qword [0x1804dbeb8]
mov rcx, qword [rax + rcx*8]
call fcn.180165ab0
sub qword [0x1804dbed0], 1
jne 0x180165e5b
mov qword [0x1804dbec8], 0
jmp 0x180165e62
inc qword [0x1804dbec8]
mov rcx, r14
call fcn.180283194
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
mov rcx, qword [0x1804dbed8]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rsp + 0x28]
sub eax, dword [rsp + 0x20]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [rsp + 0x2c]
sub eax, dword [rsp + 0x24]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 8], xmm1
movss dword [rdi + 0xc], xmm0
mov qword [rsp + 0x68], 0
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x68]
sub rax, qword [0x1804dbee0]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
xorps xmm0, xmm0
cvtsi2ss xmm0, qword [0x1804dbee8]
divss xmm1, xmm0
movss dword [rdi + 0x10], xmm1
mov rax, qword [rsp + 0x68]
mov qword [0x1804dbee0], rax
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
movzx r8d, al
mov edx, 0x1000
mov rcx, rdi
call fcn.18016d320
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
movzx r8d, al
mov edx, 0x2000
mov rcx, rdi
call fcn.18016d320
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
movzx r8d, al
mov edx, 0x4000
mov rcx, rdi
call fcn.18016d320
mov ecx, 0x5d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
movzx r8d, al
mov edx, 0x8000
mov rcx, rdi
call fcn.18016d320
call fcn.180174f70
mov rbx, rax
cmp byte [rax + 0xcf], 0
je 0x180165fc7
cvttss2si ecx, dword [rax + 0xdf8]
mov dword [rsp + 0x60], ecx
cvttss2si ecx, dword [rax + 0xdfc]
mov dword [rsp + 0x64], ecx
lea rdx, [rsp + 0x60]
mov rcx, qword [0x1804dbed8]
call qword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x180165fc7
mov edx, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x60]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov dword [rbx + 0xdf8], 0xff7fffff
mov dword [rbx + 0xdfc], 0xff7fffff
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x180166046
mov rdx, qword [0x1804dbed8]
cmp rax, rdx
je 0x180165fff
mov rcx, rax
call qword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x180166046
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x180166046
lea rdx, [rsp + 0x70]
mov rcx, qword [0x1804dbed8]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x180166046
movd xmm0, dword [rsp + 0x70]
cvtdq2ps xmm0, xmm0
movd xmm1, dword [rsp + 0x74]
cvtdq2ps xmm1, xmm1
movss dword [rbx + 0xdf8], xmm0
movss dword [rbx + 0xdfc], xmm1
cmp byte [rdi + 0x50], 0
je 0x180166053
mov eax, 0xffffffff
jmp 0x180166058
call fcn.180175330
cmp dword [0x1804c3cc8], eax
je 0x18016606b
mov dword [0x1804c3cc8], eax
call fcn.1801660d0
inc qword [0x1804dbe50]
add rsp, 0x30
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dword [0x1804dbeac], 0x7ffffffe
mov ecx, 6
call fcn.1802835e0
int3
mov ecx, 5
call fcn.1802835e0
int3