Function at 0x4cf498
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
cmp dword [0x56aa6c], 0
jne 0x4cf4b1
xor eax, eax
jmp 0x4cf8f6
push dword [0x56aa8c]
call fcn.0041261f
test eax, eax
jne 0x4cf4ca
call fcn.00412691
mov dword [0x56aa8c], eax
cmp dword [0x56aa8c], 0
jne 0x4cf4da
xor eax, eax
jmp 0x4cf8f6
call sub.USER32.dll_GetFocus
mov dword [ebp - 0x20], eax
push dword [0x56aa6c]
call sub.USER32.dll_GetMenuItemCount
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jg 0x4cf4fd
xor eax, eax
jmp 0x4cf8f6
push dword [0x56f018]
call sub.USER32.dll_GetDC
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4cf518
xor eax, eax
jmp 0x4cf8f6
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.00521f77
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 0x4cf5b3
push 0x400
push 0x62
push 0x579f7a
push esi
push dword [0x56aa6c]
call sub.USER32.dll_GetMenuStringA
mov ebx, eax
test ebx, ebx
jg 0x4cf57b
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x4cf576
adc eax, 0
add dword [ebp - 4], eax
jmp 0x4cf5ad
push ebx
push 0x579f7a
push dword [ebp - 0x24]
call fcn.004ef215
add eax, dword [ebp - 0x10]
mov ebx, eax
push esi
push dword [0x56aa6c]
call sub.USER32.dll_GetSubMenu
test eax, eax
je 0x4cf5a1
add ebx, dword [ebp - 0x10]
cmp edi, ebx
jge 0x4cf5a7
mov edi, ebx
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
inc esi
cmp esi, dword [ebp - 0xc]
jl 0x4cf54e
push dword [ebp - 0x14]
push dword [ebp - 0x24]
call sub.GDI32.dll_SelectObject
push dword [ebp - 0x24]
push dword [0x56f018]
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 [0x56f020], 0
jne 0x4cf614
push dword [0x56f018]
call sub.USER32.dll_SetForegroundWindow
push dword [0x56f018]
call sub.USER32.dll_SetActiveWindow
push dword [ebp + 8]
call fcn.0051fafa
mov ebx, eax
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff6
cmp eax, 0x10
ja case.0x4cf633.10
mov al, byte [eax + 0x4cf63a]
jmp dword [eax*4 + 0x4cf64b]
lea edx, [ebp - 0x34]
push edx
push dword [0x55f520]
call sub.USER32.dll_GetWindowRect
lea ecx, [ebp - 0x1c]
push ecx
call sub.USER32.dll_GetCursorPos
mov eax, dword [ebp - 0x34]
add eax, dword [0x55f788]
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 [0x55f520]
call fcn.004d56b4
jmp 0x4cf6a1
dec dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
add edx, edi
cmp edx, dword [ebp - 0x2c]
jg 0x4cf69e
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x1c]
jle 0x4cf6bb
mov dword [ebp - 0x1c], eax
jmp 0x4cf6bb
dec dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 4]
add edx, 0xfffffffe
cmp edx, dword [ebp - 0x28]
jg 0x4cf6b8
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x18]
jle 0x4cf6d4
mov dword [ebp - 0x18], eax
push 0
push dword [0x56f018]
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push esi
push dword [0x56aa6c]
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x4cf8ab
push 0
call fcn.0042c6cc
jmp 0x4cf8ab
lea edx, [ebp - 0x1c]
push edx
call sub.USER32.dll_GetCursorPos
push 0
push dword [0x56f018]
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push esi
push dword [0x56aa6c]
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x4cf8ab
push 0
call fcn.0042c6cc
jmp 0x4cf8ab
cmp dword [ebp + 0x10], 0
jne 0x4cf830
test ebx, ebx
je 0x4cf770
cmp dword [ebx + 0x820], 0
je 0x4cf770
mov ecx, dword [ebx + 0x820]
cmp ecx, dword [ebp - 0x20]
jne 0x4cf770
lea eax, [ebp - 0x34]
push eax
push dword [ebx + 0x820]
call sub.USER32.dll_GetWindowRect
jmp 0x4cf77c
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 0x4cf78b
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 0x4cf79f
adc edx, 0
add edx, eax
mov dword [ebp - 0x18], edx
mov esi, 4
cmp dword [ebp - 0xc], 1
jne 0x4cf7be
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x4cf7b9
adc eax, 0
sub dword [ebp - 0x18], eax
jmp 0x4cf830
cmp dword [ebp + 0xc], 4
jne 0x4cf7cc
mov edx, dword [ebp - 8]
add dword [ebp - 0x18], edx
jmp 0x4cf7f4
cmp dword [ebp + 0xc], 6
jne 0x4cf7da
mov ecx, dword [ebp - 8]
add dword [ebp - 0x18], ecx
jmp 0x4cf7f4
cmp dword [ebp + 0xc], 7
jne 0x4cf7e8
mov eax, dword [ebp - 8]
add dword [ebp - 0x18], eax
jmp 0x4cf7f4
cmp dword [ebp + 0xc], 0xe
jne 0x4cf7f4
mov edx, dword [ebp - 8]
add dword [ebp - 0x18], edx
mov ecx, dword [ebp - 4]
sar ecx, 1
jns 0x4cf7fe
adc ecx, 0
mov eax, dword [ebp - 8]
sar eax, 1
jns 0x4cf808
adc eax, 0
add ecx, eax
sub dword [ebp - 0x18], ecx
cmp dword [ebp - 0xc], 0
jle 0x4cf81d
sub dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jg 0x4cf813
cmp dword [ebp - 0xc], 0
jne 0x4cf830
mov edx, dword [ebp - 8]
sar edx, 1
jns 0x4cf82d
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.004d56b4
jmp 0x4cf847
dec dword [ebp - 0x1c]
mov edx, edi
sar edx, 1
jns 0x4cf850
adc edx, 0
add edx, dword [ebp - 0x1c]
add edx, 8
cmp edx, dword [ebp - 0x2c]
jg 0x4cf844
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x1c]
jle 0x4cf86b
mov dword [ebp - 0x1c], eax
jmp 0x4cf86b
dec dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 4]
add edx, 0xfffffffe
cmp edx, dword [ebp - 0x28]
jg 0x4cf868
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x18]
jle 0x4cf884
mov dword [ebp - 0x18], eax
push 0
push dword [0x56f018]
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push esi
push dword [0x56aa6c]
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x4cf8ab
push 0
call fcn.0042c6cc
test ebx, ebx
je 0x4cf8e8
mov edx, dword [ebx]
cmp edx, dword [0x56f024]
jne 0x4cf8e8
mov eax, dword [ebx + 0x83c]
test eax, eax
je 0x4cf8c8
mov dword [ebp - 0x20], eax
jmp 0x4cf8e0
cmp dword [ebp - 0x20], 0
jne 0x4cf8d5
mov edx, dword [ebx]
mov dword [ebp - 0x20], edx
jmp 0x4cf8e0
push dword [ebp - 0x20]
call fcn.0051fd8b
mov dword [ebp - 0x20], eax
push dword [ebp - 0x20]
call sub.USER32.dll_SetFocus
mov ecx, dword [ebp + 0xc]
mov dword [0x56aa94], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc