Function at 0x4cc1e0
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov eax, dword [0x7ce4e4]
xor eax, esp
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 0x24], 0
push esi
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x1c], esi
push edi
mov edi, dword [ebp + 8]
cmp eax, 0x100
ja 0x4cc791
je 0x4cc784
lea edx, [eax - 1]
mov dword [esp + 0x18], edx
cmp edx, 0x83
mov edx, dword [esp + 0x14]
ja case.default.0x4cc84d
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4ccc94]
jmp dword [eax*4 + 0x4ccc60]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0xe0]
call eax
jmp 0x4cc6d3
push 0
push 0
push dword [edi + 0x104]
push 0x8001
call dword [sym.imp.USER32.dll_NotifyWinEvent]
mov eax, dword [edi + 0x164]
test eax, eax
je 0x4cc2a6
mov dword [eax + 8], 0
mov eax, dword [edi + 0x164]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [edi + 0x164], 0
mov ecx, dword [edi + 0x168]
test ecx, ecx
je 0x4cc2c0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [edi + 0x168], 0
push str.RegWndAccDataProp
push dword [edi + 0x104]
call dword [sym.imp.USER32.dll_GetPropW]
mov esi, dword [sym.imp.USER32.dll_SetPropW]
mov dword [esp + 0x18], eax
test eax, eax
je 0x4cc2fc
push 0
push str.RegWndAccDataProp
push dword [edi + 0x104]
call esi
push 8
push dword [esp + 0x1c]
call fcn.005be247
add esp, 8
cmp byte [edi + 0x16c], 0
je 0x4cc30b
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0
push str.1E287BCD_7589_42C0_911D_4A79F12E75BD
push dword [edi + 0x104]
call esi
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x104], 0
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
push 0x40
lea eax, [esp + 0x4c]
push 0
push eax
call fcn.005c0be0
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x54]
add esp, 0xc
push eax
push esi
call dword [sym.imp.USER32.dll_BeginPaint]
mov ecx, edi
call fcn.004ccdf0
lea eax, [esp + 0x48]
push eax
push esi
call dword [sym.imp.USER32.dll_EndPaint]
mov eax, dword [esp + 0x2c]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [edi]
mov eax, esi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
mov eax, dword [edx + 0xec]
push ecx
mov ecx, edi
call eax
jmp 0x4cc6d3
cmp byte [edi + 0x115], 0
je 0x4cc3bf
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [edi + 0x115], 0
call fcn.004d2c20
cmp dword [eax + 4], 0
je 0x4cc41d
call fcn.004d2c20
mov esi, dword [eax + 4]
call fcn.004d2c20
cmp dword [eax + 4], esi
jne 0x4cc41d
call fcn.004d2c20
mov esi, dword [eax + 4]
call fcn.004d2c20
push 0
push 0
mov ecx, esi
mov dword [eax + 4], 0
mov eax, dword [esi]
call dword [eax + 0x28]
mov byte [esi + 0x64], 1
mov byte [esi + 0x71], 0
mov eax, dword [esp + 0x2c]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [edi]
mov ecx, edi
push dword [esp + 0x10]
mov eax, dword [eax + 0x104]
call eax
jmp 0x4cc6d3
mov edx, dword [edi]
mov eax, esi
shr eax, 0x10
mov ecx, edi
cwde
push eax
movsx eax, si
push eax
mov eax, dword [edx + 0xf4]
call eax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov esi, dword [edi + 0xa8]
mov byte [esp + 0xf], al
cmp esi, dword [edi + 0xac]
je 0x4cc48c
nop dword [eax]
mov ecx, dword [esi]
test ecx, ecx
je 0x4cc481
push dword [ecx + 0x24]
push dword [ecx + 0x20]
call fcn.004d0d80
add esi, 4
cmp esi, dword [edi + 0xac]
jne 0x4cc470
mov eax, dword [edi]
mov ecx, edi
push 0
push 0
call dword [eax + 0x40]
cmp dword [edi + 0x8c], edi
je 0x4cc4a3
mov byte [edi + 0x64], 1
cmp byte [esp + 0xf], 0
jmp 0x4cc6d5
mov edx, dword [edi]
cmp ecx, 1
mov ecx, edi
sete al
movzx eax, al
push eax
mov eax, dword [edx + 0xfc]
call eax
jmp 0x4cc6d3
mov edx, dword [edi]
lea eax, [esp + 0x2c]
push eax
mov eax, esi
mov ecx, edi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
mov eax, dword [edx + 0xe8]
call eax
jmp 0x4cc6d3
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x108]
call eax
test al, al
jne 0x4cc6db
mov eax, dword [edi + 0x108]
test eax, eax
je 0x4ccc01
push eax
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
jne 0x4ccc01
push 1
push dword [edi + 0x108]
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x4ccc01
mov edx, dword [edi]
lea ecx, [esp + 0x2c]
mov eax, esi
movzx esi, si
shr eax, 0x10
push ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
cwde
push eax
movsx eax, si
push eax
mov eax, dword [edx + 0x114]
push ecx
mov ecx, edi
mov dword [esp + 0x28], esi
call eax
cmp byte [edi + 0x126], 0
mov byte [esp + 0xf], al
je 0x4cc6d3
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
jne 0x4cc6cf
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
cmp ecx, dword [edi + 0x144]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
movzx eax, ax
jne 0x4cc5c6
cmp eax, dword [edi + 0x148]
jne 0x4cc5c6
cmp edx, dword [edi + 0x13c]
jne 0x4cc5c6
cmp ecx, dword [edi + 0x140]
je 0x4cc6cf
cmp byte [edi + 0x126], 0
mov dword [edi + 0x148], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 0x13c], edx
mov dword [edi + 0x140], ecx
mov dword [edi + 0x144], eax
je 0x4cc6cf
push esi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
jne 0x4cc6cf
lea eax, [esp + 0x30]
xorps xmm0, xmm0
push eax
push esi
movaps xmmword [esp + 0x38], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x30]
movzx edx, ax
mov dword [esp + 0x28], eax
movzx eax, cx
shl edx, 0x10
or edx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
movzx ecx, ax
cmp ecx, 0x201
jne 0x4cc68d
mov eax, edx
mov ecx, edi
shr eax, 0x10
cwde
push eax
movsx eax, dx
push eax
call fcn.004d1d30
call fcn.004d2c20
cmp dword [eax + 4], edi
je 0x4cc6db
push dword [edi + 0x104]
call dword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x115], 1
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
cmp ecx, 0x204
jne 0x4cc6c1
mov eax, edx
mov ecx, edi
shr eax, 0x10
cwde
push eax
movsx eax, dx
push eax
call fcn.004d1e80
mov eax, dword [esp + 0x2c]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [edi]
push edx
push 0
push ecx
push esi
push edi
call dword [eax + 0xd0]
mov al, byte [esp + 0xf]
test al, al
je 0x4ccbfd
mov eax, dword [esp + 0x2c]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
cmp esi, 0xfffffffc
jne 0x4cc727
mov eax, dword [edi + 0x168]
test eax, eax
je 0x4cc727
push eax
push ecx
push 0x72df54
call dword [sym.imp.OLEACC.dll_LresultFromObject]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
cmp edx, dword [edi + 0x104]
jne case.0x4cc84d.518
cmp dword [edi + 0x164], 0
je case.0x4cc84d.518
cmp byte [edi + 0x16c], 0
jne 0x4cc75c
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov ecx, dword [esp + 0x10]
mov byte [edi + 0x16c], 1
push dword [edi + 0x164]
push ecx
push 0x72df54
call dword [sym.imp.OLEACC.dll_LresultFromObject]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
push ecx
mov ecx, edi
call fcn.004cd400
jmp 0x4ccc01
cmp eax, 0x200
ja 0x4cc828
je 0x4cc810
sub eax, 0x101
je 0x4cc803
sub eax, 0x11
je 0x4cc7cf
sub eax, 1
jne case.0x4cc84d.518
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [edi]
mov ecx, edi
push eax
push dword [esp + 0x14]
mov eax, dword [edx + 0x100]
call eax
jmp 0x4cc6d3
cmp ecx, 0xf100
jne case.0x4cc84d.518
cmp esi, 0x20
jne case.0x4cc84d.518
mov ecx, edx
call fcn.004cd520
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
push ecx
mov ecx, edi
call fcn.004cd740
jmp 0x4ccc01
mov eax, esi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
push ecx
mov ecx, edi
call fcn.004cd020
jmp 0x4cc6d3
lea esi, [eax - 0x201]
mov dword [esp + 0x18], esi
cmp esi, 0xa2
mov esi, dword [esp + 0x20]
ja case.default.0x4cc84d
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x4ccd48]
jmp dword [eax*4 + 0x4ccd18]
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, ecx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x34]
mov eax, dword [esi + 0xc]
push ecx
sub eax, edx
mov dword [esp + 0x28], edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [edi]
push ecx
lea ecx, [esp + 0x28]
push ecx
push dword [esp + 0x20]
mov eax, dword [eax + 0xf0]
mov ecx, edi
call eax
test al, al
je 0x4ccc01
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
add eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x24]
add eax, edx
mov dword [esi], ecx
mov dword [esi + 4], edx
mov dword [esi + 0xc], eax
mov dword [esp + 0x2c], 1
jmp 0x4cc6db
mov eax, esi
mov ecx, edi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
call fcn.004d1d30
mov byte [esp + 0xf], al
call fcn.004d2c20
cmp dword [eax + 4], edi
je 0x4cc6cf
push dword [edi + 0x104]
call dword [sym.imp.USER32.dll_SetCapture]
mov byte [edi + 0x115], 1
jmp 0x4cc6cf
mov byte [esp + 0xf], 0
call fcn.004d2c20
cmp dword [eax + 4], 0
je 0x4cc9a2
call fcn.004d2c20
mov esi, dword [eax + 4]
call fcn.004d2c20
cmp dword [eax + 4], esi
jne 0x4cc9a2
mov esi, dword [esp + 0x20]
movsx eax, si
mov dword [esp + 0x1c], eax
mov eax, esi
shr eax, 0x10
movsx esi, ax
mov dword [esp + 0x24], esi
call fcn.004d2c20
mov eax, dword [eax + 4]
test eax, eax
je 0x4cc972
xor ecx, ecx
xor edx, edx
cmp eax, edi
je 0x4cc968
add ecx, dword [eax + 0x20]
add edx, dword [eax + 0x24]
mov eax, dword [eax + 0x88]
test eax, eax
jne 0x4cc954
sub dword [esp + 0x1c], ecx
sub esi, edx
mov dword [esp + 0x24], esi
call fcn.004d2c20
mov esi, dword [eax + 4]
call fcn.004d2c20
push dword [esp + 0x24]
mov ecx, esi
push dword [esp + 0x20]
mov dword [eax + 4], 0
mov eax, dword [esi]
call dword [eax + 0x28]
mov byte [esi + 0x64], 1
mov byte [esi + 0x71], 0
mov byte [esp + 0xf], 1
cmp byte [edi + 0x115], 0
je 0x4cc6cf
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [edi + 0x115], 0
jmp 0x4cc6cf
mov eax, esi
mov ecx, edi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
call fcn.004d1e80
jmp 0x4cc6d3
mov eax, esi
mov ecx, edi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
call fcn.004d1f70
jmp 0x4cc6d3
push ecx
call fcn.004cd160
jmp 0x4cc6d3
call fcn.004d2c20
cmp dword [eax], 0
je 0x4cc6db
call fcn.004d2c20
mov ecx, dword [esp + 0x10]
mov esi, eax
shr ecx, 0x10
mov eax, 0x88888889
movsx ecx, cx
imul ecx
add edx, ecx
mov ecx, dword [esi]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, dword [esp + 0x14]
movzx eax, ax
push eax
call fcn.004d2160
jmp 0x4cc6d3
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, ecx
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
mov eax, dword [esi + 0xc]
push ecx
sub eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x38]
mov eax, dword [edi]
push ecx
lea ecx, [esp + 0x30]
push ecx
mov eax, dword [eax + 0xf8]
mov ecx, edi
call eax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov esi, dword [edi + 0xa8]
mov byte [esp + 0xf], al
cmp esi, dword [edi + 0xac]
je 0x4ccabc
mov ecx, dword [esi]
test ecx, ecx
je 0x4ccab1
push dword [ecx + 0x24]
push dword [ecx + 0x20]
call fcn.004d0d80
add esi, 4
cmp esi, dword [edi + 0xac]
jne 0x4ccaa0
mov eax, dword [edi]
mov ecx, edi
push 0
push 0
call dword [eax + 0x40]
cmp dword [edi + 0x8c], edi
je 0x4ccad3
mov byte [edi + 0x64], 1
cmp byte [esp + 0xf], 0
mov esi, dword [esp + 0x20]
je 0x4ccc01
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
add eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esi], ecx
mov dword [esi + 4], edx
mov dword [esi + 0xc], eax
mov dword [esp + 0x2c], 1
jmp 0x4cc6db
mov eax, esi
mov ecx, edi
shr eax, 0x10
cwde
push eax
movsx eax, si
push eax
call fcn.004d2060
jmp 0x4cc6d3
cmp esi, dword [edi + 0x104]
je case.0x4cc84d.518
cmp byte [edi + 0x115], 0
je 0x4ccb47
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [edi + 0x115], 0
call fcn.004d2c20
cmp dword [eax + 4], 0
je 0x4ccc01
call fcn.004d2c20
mov esi, dword [eax + 4]
call fcn.004d2c20
cmp dword [eax + 4], esi
jne 0x4ccbfd
lea eax, [esp + 0x30]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x34], xmm0
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [esp + 0x30]
push eax
push dword [edi + 0x104]
call dword [sym.imp.USER32.dll_ScreenToClient]
call fcn.004d2c20
mov eax, dword [eax + 4]
test eax, eax
je 0x4ccbbd
xor ecx, ecx
xor edx, edx
cmp eax, edi
je 0x4ccbb5
add ecx, dword [eax + 0x20]
add edx, dword [eax + 0x24]
mov eax, dword [eax + 0x88]
test eax, eax
jne 0x4ccba1
sub dword [esp + 0x30], ecx
sub dword [esp + 0x34], edx
call fcn.004d2c20
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
call fcn.004d2c20
push esi
push dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov ecx, esi
mov dword [eax + 4], 0
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
call dword [eax + 0x28]
mov byte [esi + 0x64], 1
mov byte [esi + 0x71], 0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x10]
cmp byte [edi + 0x116], 0
je 0x4ccc40
mov edi, dword [edi + 0x118]
test edi, edi
je 0x4ccc40
push esi
push ecx
push eax
push edx
push edi
call dword [sym.imp.USER32.dll_CallWindowProcW]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14
push esi
push ecx
push eax
push edx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
xor ecx, esp
call fcn.005be209
mov esp, ebp
pop ebp
ret 0x14