Function at 0x40cd04
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push 0xffffffffffffffff
push 0x41c938
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
mov eax, dword [esp + 0x40]
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_GetCursorPos]
push esi
mov esi, ecx
mov ecx, dword [esp + 0x50]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jne 0x40cd36
cmp ecx, ebx
jne 0x40cd36
lea eax, [esp + 0x4c]
push eax
call ebp
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
jmp 0x40cd45
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x14]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea ecx, [esi + 0x60]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
call fcn.0041b3e0
mov esi, eax
cmp esi, ebx
je 0x40cf5f
mov edx, dword [esi]
lea eax, [esp + 0xc]
push eax
push 0x41f1a8
push esi
call dword [edx]
mov ecx, dword [esi]
push esi
call dword [ecx + 8]
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
push eax
call dword [edx + 0x1ac]
mov eax, dword [esp + 0xc]
push eax
mov edx, dword [eax]
call dword [edx + 8]
cmp dword [esp + 0x10], ebx
je 0x40cf5f
push 6
call dword [0x424888]
push eax
lea ecx, [esp + 0x50]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x4c]
mov dword [esp + 0x44], ebx
call sub.MFC42.DLL_CString::MakeUpper
lea ecx, [esp + 0x4c]
call sub.MFC42.DLL_CString::TrimLeft
mov eax, dword [esp + 0x4c]
push 2
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0040cc40
add esp, 0xc
test eax, eax
je 0x40cea3
mov dword [esp + 0x1c], 0x41ee50
mov dword [esp + 0x20], ebx
lea eax, [esp + 0x2c]
mov byte [esp + 0x44], 1
push eax
call ebp
push 0x8d
push 4
push 0x8d
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadMenuA]
push eax
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CMenu::Attach
mov ecx, dword [esp + 0x20]
push ebx
push ecx
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov esi, eax
call sub.MFC42.DLL_AfxGetThread
cmp eax, ebx
je 0x40ce47
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x40ce49
xor eax, eax
mov ecx, dword [esp + 0x2c]
push ebx
push eax
mov eax, dword [esp + 0x38]
push eax
push ecx
push 2
mov ecx, esi
call sub.MFC42.DLL_CMenu::TrackPopupMenu
mov dword [esp + 0x1c], 0x41ee50
lea ecx, [esp + 0x1c]
mov byte [esp + 0x44], 2
call sub.MFC42.DLL_CMenu::DestroyMenu
lea ecx, [esp + 0x4c]
mov dword [esp + 0x1c], 0x41e924
mov dword [esp + 0x44], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop esi
pop ebp
mov al, 1
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 8
mov dword [esp + 0x24], 0x41ee50
mov dword [esp + 0x28], ebx
lea edx, [esp + 0x34]
mov byte [esp + 0x44], 3
push edx
call ebp
push 0x8f
push 4
push 0x8f
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadMenuA]
push eax
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CMenu::Attach
mov eax, dword [esp + 0x28]
push ebx
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call sub.MFC42.DLL_CMenu::FromHandle
mov esi, eax
call sub.MFC42.DLL_AfxGetThread
cmp eax, ebx
je 0x40cf03
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x40cf05
xor eax, eax
mov ecx, dword [esp + 0x34]
push ebx
push eax
mov eax, dword [esp + 0x40]
push eax
push ecx
push 2
mov ecx, esi
call sub.MFC42.DLL_CMenu::TrackPopupMenu
mov dword [esp + 0x24], 0x41ee50
lea ecx, [esp + 0x24]
mov byte [esp + 0x44], 4
call sub.MFC42.DLL_CMenu::DestroyMenu
lea ecx, [esp + 0x4c]
mov dword [esp + 0x24], 0x41e924
mov dword [esp + 0x44], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop esi
pop ebp
mov al, 1
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 8
mov ecx, dword [esp + 0x3c]
pop esi
pop ebp
xor al, al
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c
ret 8