Function at 0xc1dc70
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0xd2fae3
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0xd916ec]
xor eax, esp
mov dword [esp + 0x74], eax
push esi
push edi
mov eax, dword [0xd916ec]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
test eax, eax
je 0xc1e014
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0xc1e014
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0xc1e014
push 8
call fcn.00cb8a50
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x90], 0
test eax, eax
je 0xc1dcf8
push eax
call fcn.00c1fd00
mov esi, eax
jmp 0xc1dcfa
xor esi, esi
mov dword [esp + 0x90], 0xffffffff
mov ecx, dword [ebx + 0x28]
cmp ecx, esi
je 0xc1dd1b
test ecx, ecx
je 0xc1dd18
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [ebx + 0x28], esi
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 4]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x74]
call eax
test al, al
je 0xc1ddf3
cmp dword [ebx + 0xc], 0
jne 0xc1ddf3
cmp byte [ebx + 0x34], 0
je 0xc1ddf3
mov edi, dword [ebx + 0x28]
call fcn.00c0e590
lea ecx, [esp + 0x64]
call fcn.00c0e550
mov dword [esp + 0x14], eax
mov dword [esp + 0x90], 1
mov esi, dword [ebx]
call fcn.00c1ea10
test al, al
push 0x10
sete byte [esp + 0x14]
call fcn.00cb8a50
add esp, 4
test eax, eax
je 0xc1dd9a
mov cl, byte [esp + 0x10]
mov dword [eax], vtable.._AV__MethodSlotClosure1_XPBDVImpl_SingleViewHost_win32_ggadget__P81234_AEXPBD_N_Z_N_ggadget__.0
mov dword [eax + 4], ebx
mov dword [eax + 8], 0xc1e040
mov byte [eax + 0xc], cl
jmp 0xc1dd9c
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0x10
jb 0xc1ddae
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
jmp 0xc1ddb2
mov dword [esp + 0x14], ecx
mov ecx, dword [edi]
mov esi, dword [ebx]
push 0x14
push eax
push 0
mov dword [esp + 0x24], ecx
call fcn.00c1ea10
movzx edx, al
mov eax, dword [esp + 0x20]
neg edx
sbb edx, edx
and edx, 8
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [edx + 8]
mov ecx, edi
call eax
lea ecx, [esp + 0x64]
mov dword [esp + 0x90], 0xffffffff
call fcn.00c30ca0
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx + 4]
mov edx, dword [eax]
cmp edx, dword [eax + 4]
je 0xc1e014
fld qword [eax + 0x10]
fst qword [esp + 0x2c]
fld qword [eax + 0x18]
fst qword [esp + 0x34]
fld qword [eax + 0x20]
fst qword [esp + 0x3c]
fld qword [eax + 0x28]
fst qword [esp + 0x44]
fld st(3)
call fcn.00d18790
fld st(2)
mov dword [esp + 0x1c], eax
call fcn.00d18790
fldz
fld st(0)
mov dword [esp + 0x20], eax
fucomp st(5)
fnstsw ax
fstp st(4)
test ah, 0x44
jp 0xc1de73
fld st(3)
fucomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x44
jp 0xc1de7b
fld st(2)
fucompp
fnstsw ax
test ah, 0x44
jp 0xc1de7d
fucompp
fnstsw ax
test ah, 0x44
jp 0xc1de81
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
jmp 0xc1de96
fstp st(3)
fstp st(1)
fstp st(0)
jmp 0xc1de7f
fstp st(2)
fstp st(1)
fstp st(0)
mov edx, dword [ebx + 8]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x38]
push ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
fild dword [esp + 0x1c]
mov ecx, dword [ebx + 0x28]
lea eax, [esp + 0x2c]
push eax
fstp qword [esp + 0x30]
fild dword [esp + 0x24]
fstp qword [esp + 0x38]
mov edx, dword [ecx]
mov edx, dword [edx + 0x14]
call edx
mov edi, dword [ebx + 0x28]
lea esi, [ebx + 0x50]
call fcn.00c1eae0
test al, al
jne 0xc1decb
mov al, 1
jmp 0xc1e016
mov eax, dword [ebx + 0x30]
lea edi, [ebx + 0x30]
test eax, eax
je 0xc1dedc
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov dword [edi], eax
test eax, eax
je 0xc1e014
mov eax, dword [ebx + 0x28]
mov esi, dword [eax + 4]
mov ecx, esi
mov dword [esp + 0x18], 0x1000
call fcn.00c1fa40
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call fcn.00c1f920
push edi
mov ecx, esi
call fcn.00c1fab0
xor esi, esi
test byte [ebp + 8], 2
je 0xc1df22
mov esi, 2
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 4]
mov edx, dword [ebx + 0x28]
mov dword [ecx + 0x50], edx
fld qword [esp + 0x3c]
fld st(0)
fldz
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
fld qword [esp + 0x44]
test ah, 0x44
jp 0xc1df8f
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0xc1df91
mov eax, dword [ebx + 8]
fstp st(0)
mov ecx, dword [eax + 4]
fstp st(0)
mov eax, dword [ecx + 0x38]
mov edx, dword [esp + 0x28]
mov ecx, dword [edi]
push 0
push eax
mov eax, dword [esp + 0x2c]
push 0
push edx
push eax
push esi
push ecx
call dword [sym.imp.USER32.dll_TrackPopupMenu]
test eax, eax
setne al
jmp 0xc1e016
fstp st(1)
fld qword [esp + 0x2c]
xor eax, eax
fld st(0)
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], 0x14
call fcn.00d18790
fld qword [esp + 0x34]
fld st(0)
mov dword [esp + 0x54], eax
call fcn.00d18790
fxch st(3)
faddp st(1)
mov dword [esp + 0x58], eax
call fcn.00d18790
fld st(0)
faddp st(2)
mov dword [esp + 0x5c], eax
fxch st(1)
call fcn.00d18790
fiadd dword [esp + 0x20]
mov edx, dword [ebx + 8]
mov dword [esp + 0x60], eax
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x38]
lea ecx, [esp + 0x50]
push ecx
push eax
call fcn.00d18790
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [edi]
push edx
push esi
push eax
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
test eax, eax
setne al
jmp 0xc1e016
xor al, al
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.00cb8a41
mov esp, ebp
pop ebp
ret 4