Function at 0x421950
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x354
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push 0
push 0
push 0x1004
push dword [edi + 0x24]
mov ebx, eax
mov dword [ebp - 0x350], 2
call dword [sym.imp.USER32.dll_SendMessageW]
xor esi, esi
mov dword [ebp - 0x34c], eax
test eax, eax
jle 0x4219c2
push 2
push esi
push 0x102c
push dword [edi + 0x24]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x4219b8
inc esi
cmp esi, dword [ebp - 0x34c]
jl 0x421998
jmp 0x4219c2
mov dword [ebp - 0x350], 0
lea eax, [ebp - 0x348]
mov dword [ebp - 0x348], 0
xorps xmm0, xmm0
mov dword [ebp - 0x334], 0
push eax
movups xmmword [ebp - 0x344], xmm0
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x348]
push eax
push dword [edi + 0x24]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0x348]
push eax
push 0
push 0x1039
push dword [edi + 0x24]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x338]
mov esi, 0x51c3cc
mov dword [edi + 0x4c], eax
add eax, 0xfffffffe
cmp eax, 5
ja case.default.0x421a2a
jmp dword [eax*4 + 0x421c00]
mov esi, 0x51c3d4
jmp case.default.0x421a2a
mov esi, 0x51c3e0
jmp case.default.0x421a2a
mov esi, 0x51c3e8
jmp case.default.0x421a2a
mov esi, 0x51c3f0
jmp case.default.0x421a2a
mov esi, 0x51c3fc
jmp case.default.0x421a2a
mov esi, 0x51c408
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x380]
sub ecx, dword [edi + 0x37c]
mov dword [ebp - 0x34c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
test ecx, ecx
jle 0x421aa3
mov eax, dword [ebp - 0x33c]
test eax, eax
js 0x421aa3
cmp eax, ecx
jge 0x421aa3
mov ecx, dword [edi + 0x37c]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x34c], eax
push esi
lea eax, [ebp - 0x198]
push 0x51c464
push eax
call fcn.00425290
add esp, 0xc
lea eax, [ebp - 0x328]
push dword [ebp - 0x34c]
push 0x51c488
push eax
call fcn.00425290
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
lea eax, [ebp - 0x198]
add esp, 0xc
push eax
push 0x400
push 0
push ebx
call esi
push str._rY6RteL
push 0x800
push 0
push ebx
call esi
lea eax, [ebp - 0x328]
push eax
push 0x403
push 0
push ebx
call esi
push 0x51b3ac
push 0
push 0x800
push ebx
call esi
push 0x51c4a0
push 0x40a
push dword [ebp - 0x350]
push ebx
call esi
push 0x51c4c0
push 0x404
push 0
push ebx
call esi
push 0x51c4d8
push 0x405
push 0
push ebx
call esi
push 0x51c4ec
push 0x406
push 0
push ebx
call esi
push 0x51c510
push 0x409
push 0
push ebx
call esi
mov ecx, dword [edi + 0x380]
mov eax, 0x2aaaaaab
sub ecx, dword [edi + 0x37c]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x421ba2
push 0x51c530
push 0x407
push eax
push ebx
call esi
push 0x51c558
push 0x408
push 0
push ebx
call esi
push 0x51b3ac
push 0
push 0x800
push ebx
call esi
push 0x51c590
push 0x401
push 0
push ebx
call esi
lea eax, [ebp - 0x330]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0
push dword [edi]
push 0
push dword [ebp - 0x32c]
push dword [ebp - 0x330]
push 0
push ebx
call dword [sym.imp.USER32.dll_TrackPopupMenu]
push ebx
call dword [sym.imp.USER32.dll_DestroyMenu]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004dadd7
mov esp, ebp
pop ebp
ret