Function at 0x180057330
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push rbp
push r12
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x1804610b0]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov r15, rcx
mov r12, rdx
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x180057366
xor al, al
jmp 0x1800578e5
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x108], rsi
mov qword [rsp + 0x100], rdi
mov edi, 0x202
mov qword [rsp + 0xf8], r13
xor r13b, r13b
mov qword [rsp + 0xf0], r14
cmp r8d, edi
ja 0x18005781e
je 0x180057765
cmp r8d, 0xf
je 0x180057643
cmp r8d, 0x20
je 0x180057440
mov esi, 0x200
cmp r8d, esi
jne 0x1800578b9
cmp byte [r15 + 0xd1], r13b
jne 0x180057415
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [rsp + 0x60]
sub eax, dword [r15 + 0xc0]
cdq
xor eax, edx
sub eax, edx
cmp eax, 3
jg 0x180057405
mov eax, dword [rsp + 0x64]
sub eax, dword [r15 + 0xc4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 3
jle 0x180057438
mov byte [r15 + 0xd1], 1
mov r13b, 1
jmp 0x1800578b9
mov edx, 0x7f86
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
xor r8d, r8d
mov dl, 1
mov rcx, r12
call fcn.180167480
mov r13b, 1
jmp 0x1800578b9
mov rax, qword [rcx]
mov r13b, 1
call qword [rax + 0x30]
test rax, rax
je 0x18005745f
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x28]
test al, al
jne 0x1800578b9
mov rbx, qword [rbp + 0x50]
lea rcx, [rbp - 0x80]
shr rbx, 0x10
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rax, qword [rbp - 0x80]
mov esi, 0x200
cmp bx, si
jne 0x180057498
cmp dword [r15 + 0xb8], eax
jne 0x180057498
mov ecx, dword [rbp - 0x7c]
cmp dword [r15 + 0xbc], ecx
je 0x1800578b9
mov qword [r15 + 0xb8], rax
mov eax, 0x205
cmp bx, ax
jne 0x1800574bf
xor r9d, r9d
xor r8d, r8d
mov edx, eax
mov rcx, r12
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x1800578b9
cmp bx, di
jne 0x1800574da
xor r9d, r9d
xor r8d, r8d
mov edx, edi
mov rcx, r12
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x1800578b9
mov eax, 0x201
cmp bx, ax
jne 0x18005750f
mov rcx, qword [r15 + 0x28]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xf]
call qword [sym.imp.USER32.dll_PostMessageW]
lea rcx, [r15 + 0xc0]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rcx, r12
call fcn.180167360
jmp 0x18005753e
cmp bx, si
jne 0x18005753e
cmp byte [r15 + 0xd0], 0
jne 0x18005753e
mov rax, qword [r15 + 0x28]
lea rcx, [0x180482420]
mov byte [r15 + 0xd0], 1
mov qword [0x180482428], rax
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov r12d, dword [r15 + 0xc8]
lea rcx, [rsp + 0x60]
mov r14d, dword [r15 + 0xcc]
xor edi, edi
mov qword [rsp + 0x60], rdi
mov dword [rsp + 0x58], 0xffffffff
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rcx, qword [r15 + 0x28]
lea rdx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rax, qword [rsp + 0x60]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x78], rax
mov rcx, r15
call fcn.180059350
mov edi, dword [rsp + 0x58]
xor ecx, ecx
cmp edi, 0xffffffff
jne 0x1800575cb
mov edx, 0x7f86
cmp byte [r15 + 0xd1], cl
jne 0x1800575af
mov edx, 0x7f00
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
mov qword [r15 + 0xc8], 0xffffffffffffffff
jmp 0x180057614
mov edx, 0x7f89
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
mov eax, 0x201
cmp bx, ax
jne 0x1800575fd
mov dword [r15 + 0xc8], edi
mov dword [r15 + 0xcc], 0xffffffff
jmp 0x180057614
cmp bx, si
jne 0x180057614
mov dword [r15 + 0xcc], edi
mov dword [r15 + 0xc8], 0xffffffff
cmp r12d, dword [r15 + 0xc8]
jne 0x18005762a
cmp r14d, dword [r15 + 0xcc]
je 0x1800578b9
mov rcx, qword [r15 + 0x28]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xf]
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x1800578b9
lea rdx, [rbp - 0x70]
mov rcx, r12
mov r13b, 1
call qword [sym.imp.USER32.dll_BeginPaint]
mov qword [rsp + 0x50], rax
mov rbx, rax
test rax, rax
je 0x180057753
mov rcx, r15
call fcn.180078b90
mov r14, qword [r15 + 0x28]
lea rdx, [rsp + 0x68]
xor eax, eax
mov rcx, r14
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
call qword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [rsp + 0x70]
sub ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x74]
sub eax, dword [rsp + 0x6c]
mov dword [rsp + 0x60], ecx
mov rcx, rbx
mov dword [rsp + 0x64], eax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, dword [rsp + 0x64]
xor r8d, r8d
mov ecx, dword [rsp + 0x60]
mov rsi, rax
call fcn.180165a90
mov rdx, rax
mov rcx, rsi
mov rdi, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov rdx, rsi
mov rcx, r15
mov rbx, rax
call fcn.1800588d0
mov eax, dword [rsp + 0x68]
lea rcx, [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
lea r9, [rsp + 0x60]
mov dword [rsp + 0x78], eax
lea r8, [rsp + 0x78]
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x40], 2
mov qword [rsp + 0x38], rcx
mov rcx, r14
mov dword [rsp + 0x7c], eax
xor eax, eax
mov dword [rsp + 0x30], eax
mov qword [rbp - 0x80], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x58], 0x1ff0000
call qword [sym.imp.USER32.dll_UpdateLayeredWindow]
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
lea rdx, [rbp - 0x70]
mov rcx, r12
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x1800578b9
mov ebx, dword [r15 + 0xc8]
lea rcx, [rsp + 0x60]
xor edi, edi
mov r13b, 1
mov qword [rsp + 0x60], rdi
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rcx, qword [r15 + 0x28]
lea rdx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rax, qword [rsp + 0x60]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x50], rax
mov rcx, r15
mov dword [rsp + 0x58], edi
call fcn.180059350
mov rcx, r12
call fcn.180167680
cmp byte [r15 + 0xd1], dil
je 0x1800577fd
xor eax, eax
lea rdx, [rsp + 0x68]
mov rcx, r12
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rsp + 0x68]
mov dword [r15 + 0xb0], eax
mov eax, dword [rsp + 0x6c]
mov dword [r15 + 0xb4], eax
mov byte [r15 + 0xd1], dil
jmp 0x1800578b9
mov edx, dword [rsp + 0x58]
test edx, edx
js 0x1800578b9
cmp ebx, edx
jne 0x1800578b9
mov rcx, r15
call fcn.1800586a0
jmp 0x1800578b9
mov eax, 0x205
cmp r8d, eax
je 0x1800578a3
cmp r8d, 0x2a2
jne 0x1800578b9
xor edi, edi
mov byte [r15 + 0xd0], 0
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x78], rdi
call qword [sym.imp.USER32.dll_GetCursorPos]
xor eax, eax
lea rdx, [rsp + 0x68]
mov rcx, r12
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x68]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x180057438
xor r9d, r9d
mov qword [r15 + 0xc8], 0xffffffffffffffff
xor r8d, r8d
lea edx, [rdi + 0xf]
mov rcx, r12
call qword [sym.imp.USER32.dll_PostMessageW]
mov r13b, 1
jmp 0x1800578b9
mov rcx, r12
mov r13b, 1
call fcn.180167680
mov qword [r15 + 0xc8], 0xffffffffffffffff
mov r14, qword [rsp + 0xf0]
movzx eax, r13b
mov r13, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x108]
mov rbx, qword [rsp + 0x140]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1802994c0
add rsp, 0x110
pop r15
pop r12
pop rbp
ret