Function at 0x49f24c
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, 0x515564
mov edi, 0x515574
mov ebx, dword [0x4fa224]
test ebx, ebx
jne 0x49f26d
xor eax, eax
jmp 0x49f6de
push ebx
call sub.USER32.dll_GetMenuItemCount
mov dword [0x515560], eax
cmp dword [0x515560], 0
jg 0x49f288
xor eax, eax
jmp 0x49f6de
mov edx, dword [0x4fd9ec]
push edx
call sub.USER32.dll_GetDC
mov ebx, eax
mov dword [0x51557c], ebx
test ebx, ebx
jne 0x49f2a7
xor eax, eax
jmp 0x49f6de
push 0xd
call sub.GDI32.dll_GetStockObject
push eax
push ebx
call sub.GDI32.dll_SelectObject
mov dword [0x515570], eax
push 0xf
call fcn.004eb050
mov dword [0x51556c], eax
call sub.USER32.dll_GetMenuCheckMarkDimensions
movzx edx, ax
mov dword [0x515568], edx
xor ecx, ecx
mov dword [0x515554], ecx
xor eax, eax
mov dword [0x515558], eax
xor edx, edx
mov dword [0x51555c], edx
jmp 0x49f383
push 0x400
push 0x62
push 0x515718
mov ecx, dword [0x51555c]
push ecx
mov eax, dword [0x4fa224]
push eax
call sub.USER32.dll_GetMenuStringA
mov ebx, eax
mov dword [esi], ebx
test ebx, ebx
jg 0x49f32a
mov eax, dword [0x51556c]
sar eax, 1
jns 0x49f322
adc eax, 0
add dword [0x515558], eax
jmp 0x49f37d
push ebx
push 0x515718
mov edx, dword [0x51557c]
push edx
call fcn.004bc200
add eax, dword [0x515568]
mov dword [esi], eax
mov ecx, dword [0x51555c]
push ecx
mov eax, dword [0x4fa224]
push eax
call sub.USER32.dll_GetSubMenu
test eax, eax
je 0x49f362
mov edx, dword [0x515568]
add dword [esi], edx
mov eax, dword [esi]
cmp eax, dword [0x515554]
jle 0x49f371
mov dword [0x515554], eax
mov edx, dword [0x51556c]
add dword [0x515558], edx
inc dword [0x51555c]
mov ecx, dword [0x51555c]
cmp ecx, dword [0x515560]
jl 0x49f2f0
mov eax, dword [0x515570]
push eax
mov edx, dword [0x51557c]
push edx
call sub.GDI32.dll_SelectObject
mov ecx, dword [0x51557c]
push ecx
mov eax, dword [0x4fd9ec]
push eax
call sub.USER32.dll_ReleaseDC
add dword [0x515554], 0xa
cmp dword [ebp + 0x10], 0
jle 0x49f3e9
movzx edx, word [ebp + 0x10]
mov dword [edi], edx
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
and cx, 0xffff
movzx eax, cx
mov dword [edi + 4], eax
push edi
mov edx, dword [ebp + 8]
push edx
call sub.USER32.dll_ClientToScreen
jmp 0x49f430
push 0x515580
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.dll_GetWindowRect
mov edx, dword [0x515588]
mov eax, dword [0x515580]
sub edx, eax
sar edx, 1
jns 0x49f40b
adc edx, 0
add edx, eax
mov dword [edi], edx
mov ecx, dword [0x51558c]
mov eax, dword [0x515584]
sub ecx, eax
sar ecx, 1
jns 0x49f423
adc ecx, 0
add ecx, eax
mov dword [edi + 4], ecx
xor edx, edx
mov dword [0x51556c], edx
cmp dword [0x515560], 1
jne 0x49f44e
mov ecx, dword [0x51556c]
sar ecx, 1
jns 0x49f446
adc ecx, 0
sub dword [edi + 4], ecx
jmp 0x49f4d7
cmp dword [ebp + 0xc], 4
jne 0x49f45e
mov eax, dword [0x51556c]
add dword [edi + 4], eax
jmp 0x49f48e
cmp dword [ebp + 0xc], 6
jne 0x49f46f
mov edx, dword [0x51556c]
add dword [edi + 4], edx
jmp 0x49f48e
cmp dword [ebp + 0xc], 7
jne 0x49f480
mov ecx, dword [0x51556c]
add dword [edi + 4], ecx
jmp 0x49f48e
cmp dword [ebp + 0xc], 0xe
jne 0x49f48e
mov eax, dword [0x51556c]
add dword [edi + 4], eax
mov edx, dword [0x515558]
sar edx, 1
jns 0x49f49b
adc edx, 0
mov ecx, dword [0x51556c]
sar ecx, 1
jns 0x49f4a8
adc ecx, 0
add edx, ecx
sub dword [edi + 4], edx
jmp 0x49f4b6
sub dword [0x515560], 2
cmp dword [0x515560], 0
jg 0x49f4af
cmp dword [0x515560], 0
jne 0x49f4d7
mov eax, dword [0x51556c]
sar eax, 1
jns 0x49f4d4
adc eax, 0
add dword [edi + 4], eax
cmp dword [0x4fd9f4], 0
jne 0x49f4f8
mov edx, dword [0x4fd9ec]
push edx
call sub.USER32.dll_SetActiveWindow
mov ecx, dword [0x4fd9ec]
push ecx
call sub.USER32.dll_SetForegroundWindow
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff6
cmp eax, 0x10
ja case.0x49f50d.10
mov al, byte [eax + 0x49f514]
jmp dword [eax*4 + 0x49f525]
push 0x515580
mov edx, dword [0x4fcf7c]
push edx
call sub.USER32.dll_GetWindowRect
push edi
call sub.USER32.dll_GetCursorPos
mov ecx, dword [0x515580]
add ecx, dword [0x4fd1e0]
add ecx, 0xffffffec
mov dword [edi], ecx
mov eax, dword [0x51558c]
add eax, 0xfffffffe
mov dword [edi + 4], eax
push 0x515580
call fcn.004eb300
jmp 0x49f572
dec dword [edi]
mov edx, dword [edi]
add edx, dword [0x515554]
cmp edx, dword [0x515588]
jg 0x49f570
cmp dword [edi], 0
jge 0x49f590
xor ecx, ecx
mov dword [edi], ecx
jmp 0x49f590
dec dword [edi + 4]
mov eax, dword [edi + 4]
add eax, dword [0x515558]
add eax, 0xfffffffe
cmp eax, dword [0x51558c]
jg 0x49f58d
cmp dword [edi + 4], 0
jge 0x49f5af
xor edx, edx
mov dword [edi + 4], edx
push 0
mov ecx, dword [0x4fd9ec]
push ecx
push 0
mov eax, dword [edi + 4]
push eax
mov edx, dword [edi]
push edx
push 0
mov ecx, dword [0x4fa224]
push ecx
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x49f69b
push 0
call sub.USER32.dll_MessageBeep
jmp 0x49f69b
push edi
call sub.USER32.dll_GetCursorPos
push 0
mov eax, dword [0x4fd9ec]
push eax
push 0
mov edx, dword [edi + 4]
push edx
mov ecx, dword [edi]
push ecx
push 0
mov eax, dword [0x4fa224]
push eax
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x49f69b
push 0
call sub.USER32.dll_MessageBeep
jmp 0x49f69b
push 0x515580
call fcn.004eb300
jmp 0x49f629
dec dword [edi]
mov edx, dword [0x515554]
sar edx, 1
jns 0x49f636
adc edx, 0
add edx, dword [edi]
add edx, 8
cmp edx, dword [0x515588]
jg 0x49f627
cmp dword [edi], 0
jge 0x49f651
xor ecx, ecx
mov dword [edi], ecx
jmp 0x49f651
dec dword [edi + 4]
mov eax, dword [edi + 4]
add eax, dword [0x515558]
add eax, 0xfffffffe
cmp eax, dword [0x51558c]
jg 0x49f64e
cmp dword [edi + 4], 0
jge 0x49f670
xor edx, edx
mov dword [edi + 4], edx
push 0
mov ecx, dword [0x4fd9ec]
push ecx
push 0
mov eax, dword [edi + 4]
push eax
mov edx, dword [edi]
push edx
push 4
mov ecx, dword [0x4fa224]
push ecx
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x49f69b
push 0
call sub.USER32.dll_MessageBeep
mov eax, dword [ebp + 8]
push eax
call fcn.004eae80
mov dword [0x515550], eax
mov eax, dword [0x515550]
test eax, eax
je 0x49f6d1
cmp dword [eax + 0x5d0], 0
je 0x49f6d1
mov edx, dword [eax]
cmp edx, dword [0x4fd9f8]
jne 0x49f6d1
mov ecx, dword [eax + 0x5d0]
push ecx
call sub.USER32.dll_SetFocus
mov eax, dword [ebp + 0xc]
mov dword [0x4fa2ac], eax
mov eax, 1
pop edi
pop esi
pop ebx
pop ebp
ret 0xc