Function at 0x475830
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
sub esp, 0x2c
cmp eax, 0x201
push ebx
push esi
push edi
mov esi, ecx
jne 0x4758b8
mov ebx, dword [ebp + 8]
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x10]
xor edi, edi
push ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
mov edx, dword [esi + 4]
neg eax
push 1
sbb eax, eax
push edi
and eax, 2
push edx
mov dword [esi + 8], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [esi]
mov eax, dword [eax + 8]
push ecx
push edx
push 0x201
push ebx
mov ecx, esi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x202
jne 0x47592e
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x18]
push ecx
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea edx, [esp + 0x10]
xor edi, edi
push edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.USER32.dll_PtInRect]
neg eax
sbb eax, eax
neg eax
push 1
mov dword [esi + 8], eax
mov eax, dword [esi + 4]
push edi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push eax
push ecx
push 0x202
push ebx
mov ecx, esi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x203
jne 0x47595a
xor edi, edi
cmp dword [esi + 0x40], edi
je 0x47594f
push 0x7f00
push edi
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x200
jne 0x475a19
mov ebx, dword [ebp + 8]
lea eax, [esp + 0x28]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x10]
xor edi, edi
push ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x4759e4
xor eax, eax
lea edx, [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
push edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x20], 2
mov dword [esp + 0x24], ebx
call dword [sym.imp.USER32.dll_TrackMouseEvent]
cmp dword [esi + 8], edi
jne 0x4759f9
mov eax, dword [esi + 4]
push 1
push edi
mov dword [esi + 8], 1
push eax
jmp 0x4759f3
cmp dword [esi + 8], edi
je 0x4759f9
mov ecx, dword [esi + 4]
push 1
push edi
mov dword [esi + 8], edi
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi]
mov edx, dword [edx + 0x10]
push eax
push ecx
push 0x200
push ebx
mov ecx, esi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x2a3
jne 0x475a5a
xor edi, edi
cmp dword [esi + 8], edi
je 0x475a37
mov eax, dword [esi + 4]
push 1
push edi
push eax
mov dword [esi + 8], edi
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi]
mov edx, dword [edx + 0x14]
push eax
mov eax, dword [ebp + 8]
push ecx
push 0x2a3
push eax
mov ecx, esi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0xf
jne 0x47594f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [esi]
push ecx
mov ecx, dword [ebp + 8]
push edx
mov edx, dword [eax + 0x18]
push 0xf
push ecx
mov ecx, esi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10