Function at 0x14002b6d0
Capabilities:
Check for unmoving mouse cursor
Register raw input devices

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rsi, qword [rcx + 0x350]
mov rbx, rcx
mov edi, edx
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp rsi, rax
je 0x14002b7a0
mov rsi, qword [sym.imp.USER32.dll_GetCursorPos]
lea rcx, [rsp + 0x28]
call rsi
test eax, eax
jne 0x14002b712
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.USER32.dll_WindowFromPoint]
cmp rax, qword [rbx + 0x350]
jne 0x14002b707
lea rsi, [rsp + 0x30]
mov rcx, rax
mov rdx, rsi
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [rbx + 0x350]
mov rdx, rsi
mov rdi, qword [sym.imp.USER32.dll_ClientToScreen]
call rdi
lea rdx, [rsi + 8]
mov rcx, qword [rbx + 0x350]
call rdi
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x14002b707
cmp dword [rbx + 0x7c], 0x34001
jne 0x14002b890
mov rax, qword [rbx + 0x50]
test rax, rax
je 0x14002b924
mov rcx, qword [rax + 8]
call qword [sym.imp.USER32.dll_SetCursor]
nop
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
cmp edi, 0x34003
je 0x14002b8a4
mov rdi, qword [0x14006d9c0]
cmp qword [rdi + 0x2478], rbx
je 0x14002b830
xor ecx, ecx
call qword [sym.imp.USER32.dll_ClipCursor]
cmp qword [rdi + 0x2478], rbx
mov qword [rdi + 0x2480], 0
jne 0x14002b6f5
cvttsd2si edx, qword [rdi + 0x2468]
mov qword [rdi + 0x2478], 0
cvttsd2si eax, qword [rdi + 0x2470]
mov rcx, qword [rbx + 0x350]
mov dword [rsp + 0x30], edx
mov dword [rbx + 0x388], edx
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rbx + 0x38c], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x30]
call qword [sym.imp.USER32.dll_SetCursorPos]
jmp 0x14002b6f5
mov eax, dword [rbx + 0x1f8]
test eax, eax
je 0x14002b7bc
lea rcx, [rsp + 0x30]
mov r8d, 0x10
mov edx, 1
mov qword [rsp + 0x38], 0
movabs rax, 0x100020001
mov qword [rsp + 0x30], rax
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14002b7bc
lea rdx, str.Win32:_Failed_to_remove_raw_input_device
mov ecx, 0x10008
call sym._glfwInputErrorWin32
jmp 0x14002b7bc
xor ecx, ecx
call qword [sym.imp.USER32.dll_SetCursor]
nop
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rbp, [rsp + 0x30]
mov rsi, qword [sym.imp.USER32.dll_GetCursorPos]
mov rcx, rbp
call rsi
mov rdi, qword [0x14006d9c0]
test eax, eax
jne 0x14002b990
mov rcx, rbx
call sym._glfwCenterCursorInContentArea
mov edx, dword [rbx + 0x1f8]
test edx, edx
jne 0x14002b940
mov rcx, qword [rbx + 0x350]
mov rdx, rbp
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [rbx + 0x350]
mov rdx, rbp
mov r12, qword [sym.imp.USER32.dll_ClientToScreen]
call r12
lea rdx, [rbp + 8]
mov rcx, qword [rbx + 0x350]
call r12
mov rcx, rbp
call qword [sym.imp.USER32.dll_ClipCursor]
mov qword [rdi + 0x2480], rbx
mov qword [rdi + 0x2478], rbx
jmp 0x14002b6fc
xor ecx, ecx
mov edx, 0x7f00
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
jmp 0x14002b707
mov rax, qword [rbx + 0x350]
mov r8d, 0x10
mov edx, 1
mov rcx, rbp
mov qword [rsp + 0x30], 0x20001
mov qword [rsp + 0x38], rax
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14002b8d6
lea rdx, str.Win32:_Failed_to_register_raw_input_device
mov ecx, 0x10008
call sym._glfwInputErrorWin32
jmp 0x14002b8d6
mov rcx, qword [rbx + 0x350]
mov rdx, rbp
call qword [sym.imp.USER32.dll_ScreenToClient]
pxor xmm1, xmm1
pxor xmm0, xmm0
cvtsi2sd xmm1, dword [rsp + 0x30]
cvtsi2sd xmm0, dword [rsp + 0x34]
movsd qword [rdi + 0x2468], xmm1
movsd qword [rdi + 0x2470], xmm0
jmp 0x14002b8c4