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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rsi, rcx
movsxd rcx, dword [0x14000fbb0]
mov r13, r9
mov rbx, r8
mov r12d, edx
call fcn.1400093d4
xor r14d, r14d
mov rbp, 0xffffffffd0d0d0d1
mov rdi, rax
cmp dword [rax], r14d
jne 0x140007cd1
cmp r12d, 0x112
jne 0x140007f60
mov rdx, rbx
and edx, 0xfff0
cmp rdx, 0xf000
jne 0x140007f60
xor edx, edx
lea r8, [rsp + 0x30]
xor r9d, r9d
lea ecx, [rdx + 0x26]
call qword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp dword [rsp + 0x30], r14d
je 0x140007f60
lea rdx, [rdi + 0x10]
and ebx, 0xf
mov rcx, rsi
mov dword [rdi], 1
mov dword [rdi + 0x30], ebx
call qword [sym.imp.USER32.dll_GetWindowRect]
lea rdx, [rdi + 0x20]
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [r14 + 0x3d]
mov dword [rdi + 0x34], r14d
mov dword [rdi + 0x38], r14d
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea ecx, [r14 + 0x3e]
mov dword [rdi + 0x3c], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea edx, [r14 - 0x10]
mov rcx, rsi
mov dword [rdi + 0x40], eax
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
bt rax, 0x17
jae 0x140007bb8
lea ecx, [r14 + 5]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea ecx, [r14 + 6]
jmp 0x140007bdd
mov edx, 0xffffffec
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
bt rax, 8
jae 0x140007beb
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0x2e
mov dword [rdi + 0x44], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [rdi + 0x48], eax
jmp 0x140007bf3
mov dword [rdi + 0x44], r14d
mov dword [rdi + 0x48], r14d
mov ecx, 0x22
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0x23
mov dword [rdi + 0x4c], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0x3b
mov dword [rdi + 0x50], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0x3c
mov dword [rdi + 0x54], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor r8d, r8d
lea r9, [rdi + 0x34]
lea edx, [r8 + 0x24]
mov rcx, rsi
mov dword [rdi + 0x58], eax
call qword [sym.imp.USER32.dll_SendMessageA]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
cmp ax, r14w
jne 0x140007c65
xor r9d, r9d
mov edx, 0x201
mov rcx, rsi
lea r8d, [r9 + 1]
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetCapture]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x231
mov rcx, rsi
call qword [sym.imp.USER32.dll_PostMessageA]
cmp dword [rdi + 0x30], r14d
jne 0x140007cc8
lea rcx, [rdi + 8]
mov dword [rdi + 4], 1
call qword [sym.imp.USER32.dll_GetCursorPos]
xor r9d, r9d
mov edx, 0x7f86
lea r8d, [r9 + 2]
xor ecx, ecx
mov dword [rsp + 0x28], 0x8040
mov dword [rsp + 0x20], r14d
call qword [sym.imp.USER32.dll_LoadImageA]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
jmp 0x140007f5d
mov dword [rdi + 4], r14d
jmp 0x140007f5d
cmp r12d, 0x200
jne 0x140007d4b
mov dword [rax + 4], r14d
movsx eax, r13w
shr r13, 0x10
mov dword [rsp + 0x38], eax
movsx eax, r13w
lea r8, [rsp + 0x38]
mov r9d, 1
xor edx, edx
mov rcx, rsi
mov dword [rsp + 0x3c], eax
call qword [sym.imp.USER32.dll_MapWindowPoints]
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x38]
mov r8, rdi
call fcn.1400078c8
movsxd r8, dword [rdi + 0x30]
lea r9, [rdi + 0x10]
lea edx, [r12 + 0x14]
mov rcx, rsi
call qword [sym.imp.USER32.dll_SendMessageA]
lea rdx, [rsp + 0x40]
mov rcx, rsi
movdqu xmm5, xmmword [rdi + 0x10]
movdqu xmmword [rsp + 0x40], xmm5
call fcn.1400079d0
jmp 0x140007f5d
cmp r12d, 0x100
jne 0x140007f22
sub rbx, 0xd
je 0x140007f1a
sub rbx, 0xe
je 0x140007f1a
sub rbx, 0xa
je 0x140007ecd
sub rbx, 1
je 0x140007e78
sub rbx, 1
je 0x140007e1f
cmp rbx, 1
jne 0x140007f60
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [rdi + 0x30]
cmp eax, r14d
jne 0x140007dc1
mov r8d, dword [rdi + 0x1c]
mov dword [rdi + 0x30], 6
sub r8d, 2
mov edx, dword [rsp + 0x38]
mov ecx, 0x7f85
jmp 0x140007dfe
cmp eax, 2
jne 0x140007de2
mov r8d, dword [rdi + 0x1c]
mov edx, dword [rdi + 0x18]
mov dword [rdi + 0x30], 8
sub r8d, 2
sub edx, 2
mov ecx, 0x7f82
jmp 0x140007dfe
cmp eax, 1
jne 0x140007e08
mov r8d, dword [rdi + 0x1c]
mov edx, dword [rdi + 0x10]
mov dword [rdi + 0x30], 7
sub r8d, 2
mov ecx, 0x7f83
call fcn.140007884
jmp 0x140007f60
mov r8d, dword [rsp + 0x3c]
add r8d, 0xa
mov edx, dword [rsp + 0x38]
mov dword [rsp + 0x3c], r8d
jmp 0x140007f0d
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [rdi + 0x30]
cmp eax, r14d
jne 0x140007e4b
mov edx, dword [rdi + 0x18]
mov dword [rdi + 0x30], 2
sub edx, 2
mov r8d, dword [rsp + 0x3c]
mov ecx, 0x7f84
jmp 0x140007dfe
cmp eax, 3
jne 0x140007e63
mov edx, dword [rdi + 0x18]
mov r8d, dword [rdi + 0x14]
mov dword [rdi + 0x30], 5
sub edx, 2
jmp 0x140007df9
cmp eax, 6
je 0x140007dc6
mov edx, dword [rsp + 0x38]
add edx, 0xa
jmp 0x140007f04
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [rdi + 0x30]
cmp eax, r14d
jne 0x140007e9b
mov r8d, dword [rdi + 0x14]
mov dword [rdi + 0x30], 3
jmp 0x140007db6
cmp eax, 2
je 0x140007e50
cmp eax, 1
jne 0x140007ebf
mov r8d, dword [rdi + 0x14]
mov edx, dword [rdi + 0x10]
mov dword [rdi + 0x30], 4
add r8d, 2
add edx, 2
jmp 0x140007ddb
mov r8d, dword [rsp + 0x3c]
sub r8d, 0xa
jmp 0x140007e11
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [rdi + 0x30]
cmp eax, r14d
jne 0x140007eef
mov edx, dword [rdi + 0x10]
mov dword [rdi + 0x30], 1
jmp 0x140007e3f
cmp eax, 3
je 0x140007ea5
cmp eax, 6
je 0x140007de7
mov edx, dword [rsp + 0x38]
sub edx, 0xa
mov r8d, dword [rsp + 0x3c]
mov dword [rsp + 0x38], edx
mov r9, rdi
mov rcx, rsi
call fcn.140007a44
jmp 0x140007f60
call qword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x140007f5d
cmp r12d, 0x202
je 0x140007f1a
cmp r12d, 0x215
jne 0x140007f60
lea edx, [r12 + 0x1d]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.USER32.dll_PostMessageA]
mov dword [rdi], r14d
cmp dword [rdi + 4], r14d
je 0x140007f5d
mov edx, dword [rdi + 0xc]
mov ecx, dword [rdi + 8]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov rbp, r14
lea r11, [rsp + 0x50]
mov rax, rbp
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
ret