Function at 0x4ce6ec
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
cmp dword [0x568958], 0
jne 0x4ce705
xor eax, eax
jmp 0x4ceb4a
push dword [0x568978]
call fcn.00412773
test eax, eax
jne 0x4ce71e
call fcn.004127e5
mov dword [0x568978], eax
cmp dword [0x568978], 0
jne 0x4ce72e
xor eax, eax
jmp 0x4ceb4a
call sub.USER32.dll_GetFocus
mov dword [ebp - 0x20], eax
push dword [0x568958]
call sub.USER32.dll_GetMenuItemCount
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jg 0x4ce751
xor eax, eax
jmp 0x4ceb4a
push dword [0x56cee8]
call sub.USER32.dll_GetDC
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4ce76c
xor eax, eax
jmp 0x4ceb4a
push 0xd
call sub.GDI32.dll_GetStockObject
push eax
push dword [ebp - 0x24]
call sub.GDI32.dll_SelectObject
mov dword [ebp - 0x14], eax
push 0xf
call fcn.00520172
mov dword [ebp - 8], eax
call sub.USER32.dll_GetMenuCheckMarkDimensions
movzx edx, ax
mov dword [ebp - 0x10], edx
xor edi, edi
xor eax, eax
mov dword [ebp - 4], eax
xor esi, esi
cmp esi, dword [ebp - 0xc]
jge 0x4ce807
push 0x400
push 0x62
push 0x577e2a
push esi
push dword [0x568958]
call sub.USER32.dll_GetMenuStringA
mov ebx, eax
test ebx, ebx
jg 0x4ce7cf
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x4ce7ca
adc eax, 0
add dword [ebp - 4], eax
jmp 0x4ce801
push ebx
push 0x577e2a
push dword [ebp - 0x24]
call fcn.004ee101
add eax, dword [ebp - 0x10]
mov ebx, eax
push esi
push dword [0x568958]
call sub.USER32.dll_GetSubMenu
test eax, eax
je 0x4ce7f5
add ebx, dword [ebp - 0x10]
cmp edi, ebx
jge 0x4ce7fb
mov edi, ebx
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
inc esi
cmp esi, dword [ebp - 0xc]
jl 0x4ce7a2
push dword [ebp - 0x14]
push dword [ebp - 0x24]
call sub.GDI32.dll_SelectObject
push dword [ebp - 0x24]
push dword [0x56cee8]
call sub.USER32.dll_ReleaseDC
add edi, 0xa
movzx edx, word [ebp + 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
and cx, 0xffff
movzx eax, cx
mov dword [ebp - 0x18], eax
lea edx, [ebp - 0x1c]
push edx
push dword [ebp + 8]
call sub.USER32.dll_ClientToScreen
xor esi, esi
cmp dword [0x56cef0], 0
jne 0x4ce868
push dword [0x56cee8]
call sub.USER32.dll_SetForegroundWindow
push dword [0x56cee8]
call sub.USER32.dll_SetActiveWindow
push dword [ebp + 8]
call fcn.0051dd0a
mov ebx, eax
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff6
cmp eax, 0x10
ja case.0x4ce887.10
mov al, byte [eax + 0x4ce88e]
jmp dword [eax*4 + 0x4ce89f]
lea edx, [ebp - 0x34]
push edx
push dword [0x55d528]
call sub.USER32.dll_GetWindowRect
lea ecx, [ebp - 0x1c]
push ecx
call sub.USER32.dll_GetCursorPos
mov eax, dword [ebp - 0x34]
add eax, dword [0x55d790]
add eax, 0xffffffec
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x28]
add edx, 0xfffffffe
mov dword [ebp - 0x18], edx
push 0
lea ecx, [ebp - 0x34]
push ecx
lea eax, [ebp - 0x1c]
push eax
push dword [0x55d528]
call fcn.004d48ac
jmp 0x4ce8f5
dec dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
add edx, edi
cmp edx, dword [ebp - 0x2c]
jg 0x4ce8f2
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x1c]
jle 0x4ce90f
mov dword [ebp - 0x1c], eax
jmp 0x4ce90f
dec dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 4]
add edx, 0xfffffffe
cmp edx, dword [ebp - 0x28]
jg 0x4ce90c
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x18]
jle 0x4ce928
mov dword [ebp - 0x18], eax
push 0
push dword [0x56cee8]
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push esi
push dword [0x568958]
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x4ceaff
push 0
call fcn.0042c4bf
jmp 0x4ceaff
lea edx, [ebp - 0x1c]
push edx
call sub.USER32.dll_GetCursorPos
push 0
push dword [0x56cee8]
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push esi
push dword [0x568958]
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x4ceaff
push 0
call fcn.0042c4bf
jmp 0x4ceaff
cmp dword [ebp + 0x10], 0
jne 0x4cea84
test ebx, ebx
je 0x4ce9c4
cmp dword [ebx + 0x820], 0
je 0x4ce9c4
mov ecx, dword [ebx + 0x820]
cmp ecx, dword [ebp - 0x20]
jne 0x4ce9c4
lea eax, [ebp - 0x34]
push eax
push dword [ebx + 0x820]
call sub.USER32.dll_GetWindowRect
jmp 0x4ce9d0
lea edx, [ebp - 0x34]
push edx
push dword [ebp + 8]
call sub.USER32.dll_GetWindowRect
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
sub ecx, eax
sar ecx, 1
jns 0x4ce9df
adc ecx, 0
add ecx, eax
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
sub edx, eax
sar edx, 1
jns 0x4ce9f3
adc edx, 0
add edx, eax
mov dword [ebp - 0x18], edx
mov esi, 4
cmp dword [ebp - 0xc], 1
jne 0x4cea12
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x4cea0d
adc eax, 0
sub dword [ebp - 0x18], eax
jmp 0x4cea84
cmp dword [ebp + 0xc], 4
jne 0x4cea20
mov edx, dword [ebp - 8]
add dword [ebp - 0x18], edx
jmp 0x4cea48
cmp dword [ebp + 0xc], 6
jne 0x4cea2e
mov ecx, dword [ebp - 8]
add dword [ebp - 0x18], ecx
jmp 0x4cea48
cmp dword [ebp + 0xc], 7
jne 0x4cea3c
mov eax, dword [ebp - 8]
add dword [ebp - 0x18], eax
jmp 0x4cea48
cmp dword [ebp + 0xc], 0xe
jne 0x4cea48
mov edx, dword [ebp - 8]
add dword [ebp - 0x18], edx
mov ecx, dword [ebp - 4]
sar ecx, 1
jns 0x4cea52
adc ecx, 0
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x4cea5c
adc eax, 0
add ecx, eax
sub dword [ebp - 0x18], ecx
cmp dword [ebp - 0xc], 0
jle 0x4cea71
sub dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jg 0x4cea67
cmp dword [ebp - 0xc], 0
jne 0x4cea84
mov edx, dword [ebp - 8]
sar edx, 1
jns 0x4cea81
adc edx, 0
add dword [ebp - 0x18], edx
push 0
lea ecx, [ebp - 0x34]
push ecx
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 8]
call fcn.004d48ac
jmp 0x4cea9b
dec dword [ebp - 0x1c]
mov edx, edi
sar edx, 1
jns 0x4ceaa4
adc edx, 0
add edx, dword [ebp - 0x1c]
add edx, 8
cmp edx, dword [ebp - 0x2c]
jg 0x4cea98
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x1c]
jle 0x4ceabf
mov dword [ebp - 0x1c], eax
jmp 0x4ceabf
dec dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 4]
add edx, 0xfffffffe
cmp edx, dword [ebp - 0x28]
jg 0x4ceabc
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x18]
jle 0x4cead8
mov dword [ebp - 0x18], eax
push 0
push dword [0x56cee8]
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push esi
push dword [0x568958]
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x4ceaff
push 0
call fcn.0042c4bf
test ebx, ebx
je 0x4ceb3c
mov edx, dword [ebx]
cmp edx, dword [0x56cef4]
jne 0x4ceb3c
mov eax, dword [ebx + 0x83c]
test eax, eax
je 0x4ceb1c
mov dword [ebp - 0x20], eax
jmp 0x4ceb34
cmp dword [ebp - 0x20], 0
jne 0x4ceb29
mov edx, dword [ebx]
mov dword [ebp - 0x20], edx
jmp 0x4ceb34
push dword [ebp - 0x20]
call fcn.0051df9b
mov dword [ebp - 0x20], eax
push dword [ebp - 0x20]
call sub.USER32.dll_SetFocus
mov ecx, dword [ebp + 0xc]
mov dword [0x568980], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc