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

Disassembly:
mov rax, rsp
push rbp
push rbx
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
cmp qword [0x140080b68], 0
mov qword [rax - 0x20], rsi
mov qword [rax - 0x28], rdi
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r15
movaps xmmword [rax - 0x58], xmm7
jne 0x14003d965
call fcn.1400243f0
mov rcx, qword [0x140080b88]
lea rdx, [rbp - 0x69]
mov rdi, qword [0x140080590]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rbp - 0x61]
lea rcx, [rbp + 0x7f]
sub eax, dword [rbp - 0x69]
movd xmm1, eax
mov eax, dword [rbp - 0x5d]
sub eax, dword [rbp - 0x65]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x10], xmm1
movss dword [rdi + 0x14], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rbp + 0x7f]
xorps xmm1, xmm1
mov rax, rcx
xorps xmm0, xmm0
sub rax, qword [0x140080b90]
cvtsi2ss xmm0, qword [0x140080b98]
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rdi + 0x18], xmm1
mov qword [0x140080b90], rcx
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x10
and al, 1
mov byte [rdi + 0x130], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x12
and al, 1
mov byte [rdi + 0x131], al
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [0x140080590]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x133], 0
mov byte [rdi + 0x132], al
cmp byte [rcx + 0x3af], 0
lea rbx, [rcx + 0x118]
je 0x14003da6c
cvttss2si eax, dword [rbx]
lea rdx, [rbp + 0x67]
mov dword [rbp + 0x67], eax
cvttss2si eax, dword [rcx + 0x11c]
mov rcx, qword [0x140080b88]
mov dword [rbp + 0x6b], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rbp + 0x6b]
mov ecx, dword [rbp + 0x67]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov dword [rbx], 0xff7fffff
mov dword [rbx + 4], 0xff7fffff
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp rax, qword [0x140080b88]
jne 0x14003dac4
lea rcx, [rbp + 0x6f]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x14003dac4
mov rcx, qword [0x140080b88]
lea rdx, [rbp + 0x6f]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x14003dac4
movd xmm0, dword [rbp + 0x6f]
movd xmm1, dword [rbp + 0x73]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbx], xmm0
movss dword [rbx + 4], xmm1
cmp byte [rdi + 0xd0], 0
je 0x14003dad4
mov eax, 0xffffffff
jmp 0x14003dae1
mov rax, qword [0x140080590]
mov eax, dword [rax + 0x1d70]
cmp dword [0x14007f858], eax
je 0x14003daf4
mov dword [0x14007f858], eax
call fcn.1400245d0
call fcn.1400064c0
cmp byte [0x14008058b], 1
jne 0x14003db3d
mov eax, dword [0x140080b20]
lea r9, [0x14007f4c0]
cvttss2si r8d, dword [0x1400570f8]
cdq
mov dword [rsp + 0x20], 0x64
sub eax, edx
sar eax, 1
mov r10d, eax
mov eax, dword [0x140080b24]
cdq
sub eax, edx
mov edx, r10d
sar eax, 1
mov ecx, eax
call fcn.140038860
call fcn.14003a440
lea rcx, [rbp + 0x77]
call qword [sym.imp.USER32.dll_GetCursorPos]
movss xmm2, dword [0x14004e3b0]
mov ecx, 0x2d
movss xmm0, dword [0x1400570e8]
movss xmm1, dword [0x1400570f0]
mulss xmm0, xmm2
mulss xmm1, xmm2
cvttss2si rbx, xmm0
movss xmm0, dword [0x1400570ec]
mulss xmm0, xmm2
cvttss2si rsi, xmm1
cvttss2si rdi, xmm0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003dbc1
movzx eax, byte [0x14008058c]
test al, al
jne 0x14003dbab
mov byte [0x14008058c], 1
jmp 0x14003dbb6
cmp al, 1
jne 0x14003dbb6
mov byte [0x14008058c], 0
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
movss xmm7, dword [0x14004e2ac]
xor r14d, r14d
cmp byte [0x14008058c], r14b
movabs r15, 0x469a438cbd6e113b
movabs r12, 0xdbe7b3e9944a7380
je 0x14003ddc7
movsd xmm2, qword [0x14004e2a0]
xorps xmm0, xmm0
mov edx, dword [rbp + 0x7b]
xorps xmm1, xmm1
mov eax, ebx
movaps xmmword [rsp + 0xc0], xmm6
mov dword [rbp - 0x5d], 0x3f800000
cvtsi2sd xmm0, rax
mov eax, edi
cvtsi2sd xmm1, rax
mov eax, esi
mulsd xmm0, xmm2
mulsd xmm1, xmm2
cvtpd2ps xmm0, xmm0
movss dword [rbp - 0x69], xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
mov rax, qword [rbp + 0x77]
movss dword [rbp - 0x65], xmm0
lea ecx, [rax + 5]
mulsd xmm1, xmm2
add eax, 0xfffffffb
cvtpd2ps xmm0, xmm1
movd xmm1, eax
lea eax, [rdx - 5]
movss dword [rbp - 0x61], xmm0
movd xmm0, ecx
lea ecx, [rdx + 5]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0x67], xmm0
movd xmm0, ecx
lea rcx, [rbp - 0x69]
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x6f], xmm1
movss dword [rbp + 0x6b], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x73], xmm0
call fcn.140002e20
mov rcx, qword [0x140080590]
lea r8, [rbp + 0x67]
xorps xmm0, xmm0
mov dword [rsp + 0x28], 0xf
add rcx, 0x1cc8
movss dword [rsp + 0x20], xmm0
mov r9d, eax
lea rdx, [rbp + 0x6f]
call fcn.14001edd0
mov rbx, qword [0x140080590]
lea rdx, [rbp - 0x59]
movdqa xmm6, xmmword [0x14004e7a0]
mov dword [rbp - 0x59], 2
mov qword [rbx + 0x1ae4], r14
lea rcx, [rbx + 0x1a78]
mov qword [rbx + 0x1aec], r14
mov dword [rbx + 0x1ac8], 2
movsd xmm0, qword [rbx + 0x10]
movsd qword [rbx + 0x1af4], xmm0
mov dword [rbx + 0x1acc], 2
movups xmm0, xmmword [rbx + 0x1610]
movups xmmword [rbp - 0x55], xmm0
call fcn.140013890
mov qword [rbp - 0x59], r15
lea rcx, [rbp - 0x59]
mov qword [rbp - 0x51], r12
movabs rax, 0x34fd28efdc0c3218
mov qword [rbp - 0x69], rax
xor edx, edx
movabs rax, 0xdbe7b3e9f02406ef
mov r8d, 0x201f
mov qword [rbp - 0x61], rax
movaps xmm0, xmmword [rbp - 0x69]
xorps xmm0, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x59], xmm0
movups xmmword [rbx + 0x1610], xmm6
call fcn.140009cb0
call fcn.14000c970
mov r8, qword [0x140080590]
movsxd rax, dword [r8 + 0x1a78]
mov rcx, qword [r8 + 0x1a80]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, 0x15f
add rax, rax
movups xmmword [r8 + rax*8], xmm0
dec dword [r8 + 0x1a78]
call fcn.14003c2f0
mov rax, qword [0x140080590]
movaps xmm6, xmmword [rsp + 0xc0]
mov byte [rax + 0xd0], 1
jmp 0x14003ddd5
mov rax, qword [0x140080590]
mov byte [rax + 0xd0], r14b
cmp byte [0x1400570c7], 1
mov rdi, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xe8]
jne 0x14003de4c
movss xmm2, dword [rax + 0x3b4]
lea rdx, [rbp - 0x59]
movabs rcx, 0x68aa66ac873d417d
mov qword [rbp - 0x69], r15
mov qword [rbp - 0x59], rcx
movabs rcx, 0xdbe7b3e9944a73e6
mov qword [rbp - 0x51], rcx
lea rcx, [rbp - 0x39]
movaps xmm0, xmmword [rbp - 0x59]
cvtps2pd xmm2, xmm2
mov qword [rbp - 0x61], r12
xorps xmm0, xmmword [rbp - 0x69]
movq r8, xmm2
movdqa xmmword [rbp - 0x59], xmm0
call fcn.140014600
lea r9, [rbp - 0x39]
lea r8, [0x14007f300]
call fcn.140037e50
cmp byte [0x1400570e5], 1
mov r15, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xd8]
mov rcx, qword [0x1400805d0]
jne 0x14003de73
mov edx, 0x11
jmp 0x14003de75
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowDisplayAffinity]
call fcn.1400075e0
mov rcx, qword [0x140080668]
xor r8d, r8d
mov edx, 7
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x140080668]
xor r8d, r8d
mov edx, 0x1b
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x140080668]
xor r8d, r8d
mov edx, 0xae
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x140080668]
mov r9d, 1
mov dword [rsp + 0x30], r14d
xor r8d, r8d
movss dword [rsp + 0x28], xmm7
xor edx, edx
mov dword [rsp + 0x20], r14d
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [0x140080668]
mov rax, qword [rcx]
call qword [rax + 0x148]
movaps xmm7, xmmword [rsp + 0xb0]
test eax, eax
js 0x14003df3e
call fcn.140007a90
mov rcx, qword [0x140080590]
add rcx, 0x1c70
cmp byte [rcx], r14b
cmove rcx, r14
call fcn.140023ae0
mov rcx, qword [0x140080668]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x140080668]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x14003e000
mov rcx, qword [0x140080668]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x14003e000
cmp qword [0x140080b78], r14
je 0x14003dfe4
mov rcx, qword [0x140080b80]
test rcx, rcx
je 0x14003dfa0
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x140080b80], r14
mov rcx, qword [0x140080b70]
test rcx, rcx
je 0x14003dfb9
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x140080b70], r14
mov rcx, qword [0x140080b68]
mov rbx, qword [0x140080590]
test rcx, rcx
je 0x14003dfd2
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x140080b68], r14
mov rax, qword [rbx + 0xa0]
mov qword [rax + 8], r14
mov rcx, qword [0x140080668]
lea rdx, [0x140080620]
mov rax, qword [rcx]
call qword [rax + 0x80]
call fcn.1400243f0
add rsp, 0xf0
pop r14
pop rbx
pop rbp
ret