Function at 0x18000cdd0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x70
mov rax, qword [0x180096020]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x20], r8
mov rbx, rdx
mov dword [0x1800995a4], 0
test r9b, r9b
jne 0x18000ce11
xor al, al
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180015250
add rsp, 0x70
pop rbx
ret
movss xmm0, dword [rdx + 4]
mov rdx, r8
movss xmm1, dword [rbx]
unpcklps xmm1, xmm0
mov qword [rsp + 0x80], rdi
movq rcx, xmm1
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm7
call fcn.18000c0b0
cmp dword [0x180096ca4], 0xffffffff
movzx edi, al
je 0x18000ce6c
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [0x180096ca4]
mov r8d, 0xffffffff
test ax, ax
cmove edx, r8d
mov dword [0x180096ca4], edx
movzx eax, byte [0x1800995a1]
xorps xmm6, xmm6
movss xmm7, dword [rsp + 0x20]
test al, al
je 0x18000ce9b
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18000cf89
movzx eax, byte [0x1800995a1]
test dil, dil
jne 0x18000ceb3
movss xmm0, dword [0x1800997d0]
ucomiss xmm0, xmm6
jp 0x18000ceb3
je 0x18000cf82
test al, al
jne 0x18000cf82
cmp byte [0x1800995ac], 0
movsxd rax, dword [0x1800995a4]
je 0x18000cf5e
lea rcx, [0x1800995c0]
cmp byte [rax + rcx], 0
jne 0x18000cee0
mov byte [rax + rcx], 1
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rcx, qword [0x180099530]
lea rdx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm2, dword [rsp + 0x30]
movd xmm3, dword [rsp + 0x34]
movss xmm1, dword [0x1800997d0]
ucomiss xmm1, xmm6
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
subss xmm2, xmm7
subss xmm3, dword [rsp + 0x24]
jp 0x18000cf47
jne 0x18000cf47
movaps xmm1, xmm2
movaps xmm0, xmm3
subss xmm1, dword [rbx]
movss dword [0x1800997d0], xmm1
subss xmm0, dword [rbx + 4]
movss dword [0x1800997d4], xmm0
subss xmm2, xmm1
movss dword [rbx], xmm2
subss xmm3, dword [0x1800997d4]
movss dword [rbx + 4], xmm3
jmp 0x18000cf89
cmp rax, 0x100
jae 0x18000d0d0
lea rcx, [0x1800995c0]
mov qword [0x1800997d0], 0
mov byte [rax + rcx], 0
jmp 0x18000cf89
mov byte [0x1800995a1], 0
movss xmm1, dword [rbx + 4]
lea r9, [rsp + 0x30]
movss xmm0, dword [0x18008ec88]
movss xmm2, dword [rsp + 0x24]
movss xmm6, dword [0x18008ec4c]
movss dword [0x180096ca8], xmm0
movss xmm0, dword [rbx]
movss dword [0x18009bc18], xmm0
movups xmm0, xmmword [0x1800901a0]
mov qword [0x18009bbf0], 0
movss dword [0x18009bc1c], xmm1
movaps xmm1, xmm7
movdqa xmmword [rsp + 0x30], xmm0
mov qword [0x18009bc10], 0
mov qword [0x18009bbe8], 0
movss xmm0, dword [rbx]
movss xmm3, dword [rbx + 4]
unpcklps xmm0, xmm3
movq rcx, xmm0
mov dword [0x1800995a8], 0
mov dword [0x18009959c], 0x41c80000
call fcn.18000cb30
movups xmm0, xmmword [0x180090190]
lea r9, [rsp + 0x30]
movss xmm3, dword [rbx + 4]
movaps xmm2, xmm6
movdqa xmmword [rsp + 0x30], xmm0
movaps xmm1, xmm7
movss xmm0, dword [rbx]
unpcklps xmm0, xmm3
movq rcx, xmm0
call fcn.18000cb30
movss xmm0, dword [0x1800995a8]
lea r8, [rsp + 0x30]
mulss xmm7, dword [0x18008ebe8]
addss xmm0, xmm6
lea rcx, [0x18008e6e0]
mov r9b, 1
movss xmm1, dword [0x180099724]
addss xmm1, dword [0x18008ec2c]
addss xmm7, dword [rbx]
movss dword [0x1800995a8], xmm0
movaps xmm0, xmmword [0x18008f3d0]
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmm7
unpcklps xmm0, xmm1
movq rdx, xmm0
call fcn.18000c7a0
movaps xmm6, xmmword [rsp + 0x60]
mov al, 1
mov rdi, qword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180015250
add rsp, 0x70
pop rbx
ret
call fcn.1800154a0
int3