Function at 0x18000c3c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x60
mov qword [rsp + 0x20], r8
mov rbx, rdx
mov dword [0x180044ffc], 0
mov rsi, rcx
test r9b, r9b
jne 0x18000c3f1
xor al, al
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rsi
ret
movss xmm0, dword [rdx + 4]
mov rdx, r8
movss xmm1, dword [rbx]
unpcklps xmm1, xmm0
mov qword [rsp + 0x70], rdi
movq rcx, xmm1
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm7
call fcn.180007160
cmp dword [0x180043094], 0xffffffff
movzx edi, al
je 0x18000c43f
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18000c43f
mov dword [0x180043094], 0xffffffff
movzx eax, byte [0x180044ba4]
xorps xmm6, xmm6
movss xmm7, dword [rsp + 0x20]
test al, al
je 0x18000c488
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000c481
movss xmm0, dword [rbx]
movss xmm1, dword [rbx + 4]
movss dword [0x1800474b0], xmm0
movss dword [0x1800474b4], xmm1
jmp 0x18000c560
movzx eax, byte [0x180044ba4]
test dil, dil
jne 0x18000c4a0
movss xmm0, dword [0x1800474e0]
ucomiss xmm0, xmm6
jp 0x18000c4a0
je 0x18000c559
test al, al
jne 0x18000c559
cmp byte [0x180044ce0], 0
movsxd rax, dword [0x180044ffc]
je 0x18000c535
lea rcx, [0x180044cf0]
cmp byte [rax + rcx], 0
jne 0x18000c4c9
mov byte [rax + rcx], 1
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm2, dword [rsp + 0x30]
movd xmm3, dword [rsp + 0x34]
movss xmm1, dword [0x1800474e0]
ucomiss xmm1, xmm6
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
subss xmm2, xmm7
subss xmm3, dword [rsp + 0x24]
jp 0x18000c51e
jne 0x18000c51e
movaps xmm1, xmm2
movaps xmm0, xmm3
subss xmm1, dword [rbx]
movss dword [0x1800474e0], xmm1
subss xmm0, dword [rbx + 4]
movss dword [0x1800474e4], xmm0
subss xmm2, xmm1
movss dword [rbx], xmm2
subss xmm3, dword [0x1800474e4]
movss dword [rbx + 4], xmm3
jmp 0x18000c560
cmp rax, 0x100
jae 0x18000c685
lea rcx, [0x180044cf0]
mov qword [0x1800474e0], 0
mov byte [rax + rcx], 0
jmp 0x18000c560
mov byte [0x180044ba4], 0
movss xmm2, dword [rsp + 0x24]
lea r9, [rsp + 0x30]
mov dword [0x180044cd4], 0
mov dword [0x180044ff8], 0
movss xmm0, dword [rbx]
movss xmm1, dword [rbx + 4]
movss dword [0x1800474b0], xmm0
movups xmm0, xmmword [0x180043990]
mov qword [0x1800474b8], 0
movss dword [0x1800474b4], xmm1
movaps xmm1, xmm7
movdqa xmmword [rsp + 0x30], xmm0
mov qword [0x1800474d0], 0
mov qword [0x1800474d8], 0
movss xmm0, dword [rbx]
movss xmm3, dword [rbx + 4]
unpcklps xmm0, xmm3
movq rcx, xmm0
call fcn.18000d040
movups xmm0, xmmword [0x1800439a0]
lea r9, [rsp + 0x30]
movss xmm3, dword [rbx + 4]
movaps xmm1, xmm7
movss xmm6, dword [0x180031968]
movdqa xmmword [rsp + 0x30], xmm0
movaps xmm2, xmm6
movss xmm0, dword [rbx]
unpcklps xmm0, xmm3
movq rcx, xmm0
call fcn.18000d040
movss xmm0, dword [0x180044ff8]
lea r8, [rsp + 0x30]
mulss xmm7, dword [0x180031904]
addss xmm0, xmm6
xor r9d, r9d
mov rcx, rsi
movss dword [0x180044ff8], xmm0
movaps xmm0, xmmword [0x180031ab0]
addss xmm7, dword [rbx]
movss xmm1, dword [rbx + 4]
addss xmm1, dword [0x180031950]
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmm7
unpcklps xmm0, xmm1
movq rdx, xmm0
call fcn.18000bb50
movaps xmm6, xmmword [rsp + 0x50]
mov al, 1
mov rdi, qword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x40]
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rsi
ret
call fcn.18000f05c
int3