Function at 0x140024ed0
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0xb0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x140060040]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r15, r8
mov rdi, rcx
mov rbp, rcx
mov ebx, 0x88
mov r14, rcx
lea esi, [rbx - 0x18]
cmp byte [rcx + 0xd0], 0
jne 0x140024f57
movups xmm0, xmmword [rdx]
movups xmmword [rcx + 0x70], xmm0
movsd xmm1, qword [rdx + 0x10]
movsd qword [rcx + 0x80], xmm1
mov dword [rcx + 0x68], 0x40c00000
movups xmm0, xmmword [r8]
movups xmmword [rcx + 0x88], xmm0
movsd xmm1, qword [r8 + 0x10]
movsd qword [rcx + 0x98], xmm1
mov byte [rcx + 0xd0], 1
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne cl
mov byte [rdi + 0xd2], cl
test ax, ax
je 0x140024f81
cmp byte [0x1400611a0], 0
sete cl
mov al, 1
jmp 0x140024f85
xor al, al
xor cl, cl
mov byte [rdi + 0xd1], cl
mov byte [0x1400611a0], al
movups xmm6, xmmword [rbx + rbp]
movsd xmm0, qword [rbx + rbp + 0x10]
movsd qword [rsp + 0x70], xmm0
movups xmm7, xmmword [r14 + rsi]
movsd xmm0, qword [r14 + rsi + 0x10]
movsd qword [rsp + 0x70], xmm0
xor ebp, ebp
mov qword [rsp + 0x50], rbp
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm2, dword [rsp + 0x54]
cvtdq2pd xmm2, xmm2
movd xmm3, dword [rsp + 0x50]
cvtdq2pd xmm3, xmm3
comisd xmm3, xmm7
jbe 0x14002500c
movaps xmm1, xmm7
unpckhpd xmm1, xmm7
comisd xmm2, xmm1
jbe 0x14002500c
movaps xmm0, xmm6
addsd xmm0, xmm7
comisd xmm0, xmm3
jbe 0x14002500c
unpckhpd xmm6, xmm6
addsd xmm6, xmm1
comisd xmm6, xmm2
jbe 0x14002500c
mov sil, 1
jmp 0x14002500f
xor sil, sil
movzx eax, byte [0x140061200]
test al, al
je 0x140025071
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
lea r14, [rsp + 0xd8]
movabs rdx, 0xff00ff00ff00ff00
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], r14
mov rbx, qword [r14]
mov rax, rbx
xor rax, rdx
mov qword [rsp + 0x60], rax
mov qword [r14], rbp
mov rax, qword [0x140061010]
mov ecx, 1
call rax
nop
mov qword [r14], rbx
test ax, ax
jne 0x140025148
movzx eax, byte [0x140061200]
test sil, sil
jne 0x14002508a
movsd xmm1, qword [rdi + 8]
xorps xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14002508a
je 0x140025148
test al, al
jne 0x140025148
cmp byte [rdi + 0xd2], al
je 0x140025136
mov qword [rsp + 0x50], rbp
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetCursorPos]
movsd xmm6, qword [0x140060230]
movsd xmm7, qword [0x140060238]
mov qword [rsp + 0x58], rbp
lea rcx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm1, dword [rsp + 0x50]
cvtdq2pd xmm1, xmm1
movd xmm0, dword [rsp + 0x58]
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x14005a098]
subsd xmm6, xmm1
movd xmm1, dword [rsp + 0x54]
cvtdq2pd xmm1, xmm1
movd xmm0, dword [rsp + 0x5c]
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x14005a098]
subsd xmm7, xmm1
movsd qword [0x140060230], xmm6
movsd qword [0x140060238], xmm7
movsd xmm0, qword [rsp + 0x58]
movsd qword [0x140060240], xmm0
jmp 0x140025148
xorps xmm0, xmm0
movups xmmword [rdi + 8], xmm0
movsd xmm0, qword [rsp + 0x70]
movsd qword [rdi + 0x18], xmm0
mov byte [0x140061200], 0
xorps xmm0, xmm0
movups xmmword [rdi + 0xa0], xmm0
movsd xmm0, qword [rsp + 0x70]
movsd qword [rdi + 0xb0], xmm0
mov eax, dword [rdi + 0x20]
movsd xmm4, qword [r15 + 8]
cvtpd2ps xmm4, xmm4
movsd xmm3, qword [r15]
cvtpd2ps xmm3, xmm3
movsd xmm2, qword [rdi + 0x78]
cvtpd2ps xmm2, xmm2
movsd xmm1, qword [rdi + 0x70]
cvtpd2ps xmm1, xmm1
movss xmm0, dword [0x14005a1c8]
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x38], xmm0
mov byte [rsp + 0x30], 1
mov dword [rsp + 0x28], eax
movss dword [rsp + 0x20], xmm4
call fcn.1400017a0
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140034050
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret