Function at 0x412310
Capabilities:
Check for unmoving mouse cursor

Disassembly:
mov ecx, dword [0x4230c0]
sub esp, 0x228
test ecx, ecx
push ebx
push esi
push edi
jne 0x412341
mov eax, dword [0x4230b8]
test eax, eax
jne 0x412341
mov eax, dword [esp + 0x244]
mov ecx, dword [esp + 0x240]
push eax
push ecx
jmp 0x412676
mov eax, dword [esp + 0x240]
cmp eax, 0xfffffff2
jne 0x4124d4
mov esi, dword [esp + 0x238]
mov eax, dword [esi + 0x6a0]
test eax, eax
je 0x41236e
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x228
ret
lea edx, [esp + 0xc]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
push ecx
push 0x423098
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x4123dd
mov edx, dword [0x4230b8]
mov edi, dword [esp + 0x23c]
push edx
push edi
call dword [sym.imp.USER32.dll_KillTimer]
push 0
push 1
or eax, 0xffffffff
push edi
push esi
mov dword [0x4230b8], 0
mov dword [0x420088], eax
mov dword [0x420090], eax
mov dword [0x42008c], eax
call fcn.0040fbb0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x228
ret
mov eax, dword [0x420088]
test eax, eax
jne 0x412408
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x23c]
push eax
push ecx
add esi, 8
push 0x423098
push edi
push esi
call fcn.00411680
jmp 0x41242b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x23c]
push edx
push eax
add esi, 0x354
push 0x423098
push edi
push esi
call fcn.004116e0
mov ecx, dword [0x420090]
add esp, 0x14
cmp ecx, eax
mov dword [0x42008c], eax
je 0x4124c3
mov edx, dword [0x42309c]
mov ecx, dword [0x423098]
mov eax, dword [0x4230a0]
mov dword [esp + 0x18], edx
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [0x4230a4]
push edx
push esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call fcn.00411720
add esp, 8
lea eax, [esp + 0x24]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
neg ecx
neg edx
push ecx
lea eax, [esp + 0x18]
push edx
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
push edi
call dword [sym.imp.USER32.dll_GetWindowDC]
lea ecx, [esp + 0x14]
mov ebx, eax
push 0xffffffffffffffff
push ecx
push ebx
push edi
push esi
call fcn.00411640
add esp, 0x14
push ebx
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x42008c]
pop edi
mov dword [0x420090], eax
pop esi
xor eax, eax
pop ebx
add esp, 0x228
ret
cmp eax, 0xfffd
jne 0x41250b
mov esi, dword [esp + 0x23c]
push ecx
push esi
call dword [sym.imp.USER32.dll_KillTimer]
push 0
push 0x37
push 0xfffe
push esi
call dword [sym.imp.USER32.dll_SetTimer]
pop edi
mov dword [0x4230c0], eax
pop esi
xor eax, eax
pop ebx
add esp, 0x228
ret
cmp eax, 0xfffe
jne 0x41266d
lea edx, [esp + 0xc]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edi, dword [esp + 0x23c]
lea eax, [esp + 0xc]
push eax
push edi
call dword [sym.imp.USER32.dll_ScreenToClient]
lea ecx, [esp + 0x34]
push 0x100
push ecx
push edi
call dword [sym.imp.USER32.dll_GetClassNameW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
lea edx, [esp + 0x34]
push 0x4200cc
push edx
call esi
test eax, eax
push 0xffffffffffffffec
push edi
sete bl
call dword [sym.imp.USER32.dll_GetWindowLongW]
lea eax, [esp + 0x34]
push 0x41fc74
push eax
call esi
mov esi, dword [esp + 0x238]
test eax, eax
sete al
test bl, bl
jne 0x412589
test al, al
je 0x41261f
mov eax, dword [0x420094]
test eax, eax
je 0x412597
cmp eax, 1
jne 0x4125b8
mov ecx, dword [0x420080]
mov eax, dword [esi + 0x370]
neg ecx
sbb ecx, ecx
and ecx, 2
dec ecx
add eax, ecx
mov dword [esi + 0x370], eax
mov eax, dword [0x420094]
cmp eax, 2
je 0x4125c2
cmp eax, 3
jne 0x4125da
mov eax, dword [0x420080]
cmp eax, 2
mov eax, dword [esi + 0x36c]
jne 0x4125d4
neg eax
add dword [esi + 0x370], eax
mov eax, dword [esi + 0x364]
mov ecx, dword [esi + 0x370]
cmp ecx, eax
jge 0x4125f0
mov dword [esi + 0x370], eax
mov edx, dword [esi + 0x368]
mov ebx, dword [esi + 0x36c]
mov ecx, dword [esi + 0x370]
sub edx, ebx
lea eax, [edx + 1]
cmp ecx, eax
jbe 0x412611
mov dword [esi + 0x370], eax
push 0
push 1
push edi
push esi
call fcn.0040fbb0
add esp, 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
and eax, 0xffff
and ecx, 0xffff
shl eax, 0x10
or eax, ecx
push eax
push 1
push edi
push esi
call fcn.00411a20
mov eax, dword [0x420094]
add esp, 0x10
cmp eax, 0xffffffff
je 0x412661
mov edx, dword [0x4230bc]
push 0
push eax
push edx
push edi
call fcn.004114c0
add esp, 0x10
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x228
ret
mov ecx, dword [esp + 0x244]
push ecx
push eax
mov eax, dword [esp + 0x240]
mov edx, dword [esp + 0x244]
push 0x113
push edx
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.USER32.dll_CallWindowProcW]
pop edi
pop esi
pop ebx
add esp, 0x228
ret