Function at 0x474314
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, 0x4e4a44
mov esi, dword [0x4d0f2c]
test esi, esi
jne 0x474333
xor eax, eax
jmp 0x474780
push esi
call sub.USER32.dll_GetMenuItemCount
mov dword [0x4e4a30], eax
cmp dword [0x4e4a30], 0
jg 0x47434e
xor eax, eax
jmp 0x474780
mov edx, dword [0x4d429c]
push edx
call sub.USER32.dll_GetDC
mov esi, eax
mov dword [0x4e4a4c], esi
test esi, esi
jne 0x47436d
xor eax, eax
jmp 0x474780
push 0xd
call sub.GDI32.dll_GetStockObject
push eax
push esi
call sub.GDI32.dll_SelectObject
mov dword [0x4e4a40], eax
push 0xf
call fcn.004b7b04
mov dword [0x4e4a3c], eax
call sub.USER32.dll_GetMenuCheckMarkDimensions
movzx edx, ax
mov dword [0x4e4a38], edx
xor ecx, ecx
mov dword [0x4e4a24], ecx
xor eax, eax
mov dword [0x4e4a28], eax
xor edx, edx
mov dword [0x4e4a2c], edx
jmp 0x474457
push 0x400
push 0x62
push 0x4e4b90
mov ecx, dword [0x4e4a2c]
push ecx
mov eax, dword [0x4d0f2c]
push eax
call sub.USER32.dll_GetMenuStringA
mov esi, eax
mov dword [0x4e4a34], esi
test esi, esi
jg 0x4743f4
mov eax, dword [0x4e4a3c]
sar eax, 1
jns 0x4743ec
adc eax, 0
add dword [0x4e4a28], eax
jmp 0x474451
push esi
push 0x4e4b90
mov edx, dword [0x4e4a4c]
push edx
call fcn.0048d498
add eax, dword [0x4e4a38]
mov dword [0x4e4a34], eax
mov ecx, dword [0x4e4a2c]
push ecx
mov eax, dword [0x4d0f2c]
push eax
call sub.USER32.dll_GetSubMenu
test eax, eax
je 0x474433
mov edx, dword [0x4e4a38]
add dword [0x4e4a34], edx
mov eax, dword [0x4e4a34]
cmp eax, dword [0x4e4a24]
jle 0x474445
mov dword [0x4e4a24], eax
mov edx, dword [0x4e4a3c]
add dword [0x4e4a28], edx
inc dword [0x4e4a2c]
mov ecx, dword [0x4e4a2c]
cmp ecx, dword [0x4e4a30]
jl 0x4743b6
mov eax, dword [0x4e4a40]
push eax
mov edx, dword [0x4e4a4c]
push edx
call sub.GDI32.dll_SelectObject
mov ecx, dword [0x4e4a4c]
push ecx
mov eax, dword [0x4d429c]
push eax
call sub.USER32.dll_ReleaseDC
add dword [0x4e4a24], 0xa
cmp dword [ebp + 0x10], 0
jle 0x4744bd
movzx edx, word [ebp + 0x10]
mov dword [ebx], edx
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
and cx, 0xffff
movzx eax, cx
mov dword [ebx + 4], eax
push ebx
mov edx, dword [ebp + 8]
push edx
call sub.USER32.dll_ClientToScreen
jmp 0x474504
push 0x4e4a50
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.dll_GetWindowRect
mov edx, dword [0x4e4a58]
mov eax, dword [0x4e4a50]
sub edx, eax
sar edx, 1
jns 0x4744df
adc edx, 0
add edx, eax
mov dword [ebx], edx
mov ecx, dword [0x4e4a5c]
mov eax, dword [0x4e4a54]
sub ecx, eax
sar ecx, 1
jns 0x4744f7
adc ecx, 0
add ecx, eax
mov dword [ebx + 4], ecx
xor edx, edx
mov dword [0x4e4a3c], edx
cmp dword [0x4e4a30], 1
jne 0x474522
mov ecx, dword [0x4e4a3c]
sar ecx, 1
jns 0x47451a
adc ecx, 0
sub dword [ebx + 4], ecx
jmp 0x4745a7
cmp edi, 4
jne 0x474531
mov eax, dword [0x4e4a3c]
add dword [ebx + 4], eax
jmp 0x47455e
cmp edi, 6
jne 0x474541
mov edx, dword [0x4e4a3c]
add dword [ebx + 4], edx
jmp 0x47455e
cmp edi, 7
jne 0x474551
mov ecx, dword [0x4e4a3c]
add dword [ebx + 4], ecx
jmp 0x47455e
cmp edi, 0xe
jne 0x47455e
mov eax, dword [0x4e4a3c]
add dword [ebx + 4], eax
mov edx, dword [0x4e4a28]
sar edx, 1
jns 0x47456b
adc edx, 0
mov ecx, dword [0x4e4a3c]
sar ecx, 1
jns 0x474578
adc ecx, 0
add edx, ecx
sub dword [ebx + 4], edx
jmp 0x474586
sub dword [0x4e4a30], 2
cmp dword [0x4e4a30], 0
jg 0x47457f
cmp dword [0x4e4a30], 0
jne 0x4745a7
mov eax, dword [0x4e4a3c]
sar eax, 1
jns 0x4745a4
adc eax, 0
add dword [ebx + 4], eax
cmp edi, 0xa
je 0x4745c4
cmp edi, 0x10
je 0x4745c4
cmp edi, 0x11
je 0x4745c4
cmp edi, 0x12
je 0x4745c4
cmp edi, 0x13
jne 0x47467c
push 0x4e4a50
mov edx, dword [0x4d3998]
push edx
call sub.USER32.dll_GetWindowRect
push ebx
call sub.USER32.dll_GetCursorPos
mov ecx, dword [0x4e4a50]
add ecx, dword [0x4d3bec]
add ecx, 0xffffffec
mov dword [ebx], ecx
mov eax, dword [0x4e4a5c]
add eax, 0xfffffffe
mov dword [ebx + 4], eax
push 0x4e4a50
call sub.USER32.dll_GetDesktopWindow
push eax
call sub.USER32.dll_GetWindowRect
jmp 0x47460b
dec dword [ebx]
mov edx, dword [ebx]
add edx, dword [0x4e4a24]
cmp edx, dword [0x4e4a58]
jg 0x474609
cmp dword [ebx], 0
jge 0x474629
xor ecx, ecx
mov dword [ebx], ecx
jmp 0x474629
dec dword [ebx + 4]
mov eax, dword [ebx + 4]
add eax, dword [0x4e4a28]
add eax, 0xfffffffe
cmp eax, dword [0x4e4a5c]
jg 0x474626
cmp dword [ebx + 4], 0
jge 0x474648
xor edx, edx
mov dword [ebx + 4], edx
push 0
mov ecx, dword [0x4d429c]
push ecx
push 0
mov eax, dword [ebx + 4]
push eax
mov edx, dword [ebx]
push edx
push 0
mov ecx, dword [0x4d0f2c]
push ecx
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x47473f
push 0
call sub.USER32.dll_MessageBeep
jmp 0x47473f
cmp edi, 0xc
jne 0x4746b9
push ebx
call sub.USER32.dll_GetCursorPos
push 0
mov eax, dword [0x4d429c]
push eax
push 0
mov edx, dword [ebx + 4]
push edx
mov ecx, dword [ebx]
push ecx
push 8
mov eax, dword [0x4d0f2c]
push eax
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x47473f
push 0
call sub.USER32.dll_MessageBeep
jmp 0x47473f
push 0x4e4a50
call sub.USER32.dll_GetDesktopWindow
push eax
call sub.USER32.dll_GetWindowRect
jmp 0x4746cd
dec dword [ebx]
mov edx, dword [0x4e4a24]
sar edx, 1
jns 0x4746da
adc edx, 0
add edx, dword [ebx]
add edx, 8
cmp edx, dword [0x4e4a58]
jg 0x4746cb
cmp dword [ebx], 0
jge 0x4746f5
xor ecx, ecx
mov dword [ebx], ecx
jmp 0x4746f5
dec dword [ebx + 4]
mov eax, dword [ebx + 4]
add eax, dword [0x4e4a28]
add eax, 0xfffffffe
cmp eax, dword [0x4e4a5c]
jg 0x4746f2
cmp dword [ebx + 4], 0
jge 0x474714
xor edx, edx
mov dword [ebx + 4], edx
push 0
mov ecx, dword [0x4d429c]
push ecx
push 0
mov eax, dword [ebx + 4]
push eax
mov edx, dword [ebx]
push edx
push 4
mov ecx, dword [0x4d0f2c]
push ecx
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x47473f
push 0
call sub.USER32.dll_MessageBeep
mov eax, dword [ebp + 8]
push eax
call fcn.004b7934
mov dword [0x4e4a20], eax
mov eax, dword [0x4e4a20]
test eax, eax
je 0x474775
cmp dword [eax + 0x518], 0
je 0x474775
mov edx, dword [eax]
cmp edx, dword [0x4d42a8]
jne 0x474775
mov ecx, dword [eax + 0x518]
push ecx
call sub.USER32.dll_SetFocus
mov dword [0x4d0f4c], edi
mov eax, 1
pop edi
pop esi
pop ebx
pop ebp
ret 0xc