Function at 0x40a100
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd8
mov eax, dword [0x434090]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 4], 0
push 4
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 6
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov eax, dword [ebp + 8]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0x113
ja 0x40a185
cmp dword [ebp - 0xcc], 0x113
je 0x40a541
mov ecx, dword [ebp - 0xcc]
sub ecx, 0xf
mov dword [ebp - 0xcc], ecx
cmp dword [ebp - 0xcc], 0x76
ja case.0x40a17e.1
mov edx, dword [ebp - 0xcc]
movzx eax, byte [edx + 0x40a6f8]
jmp dword [eax*4 + 0x40a6dc]
cmp dword [ebp - 0xcc], 0x20a
ja 0x40a1d6
cmp dword [ebp - 0xcc], 0x20a
je 0x40a4fb
cmp dword [ebp - 0xcc], 0x200
je 0x40a296
cmp dword [ebp - 0xcc], 0x201
je 0x40a3d3
cmp dword [ebp - 0xcc], 0x202
je 0x40a464
jmp case.0x40a17e.1
cmp dword [ebp - 0xcc], 0x2a3
je 0x40a368
cmp dword [ebp - 0xcc], 0x2341
je 0x40a520
jmp case.0x40a17e.1
lea ecx, [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x7c]
push eax
call dword [sym.imp.USER32.dll_BeginPaint]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc8]
add ecx, 0x64
call fcn.00406040
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x1c]
call eax
push 0xcc0020
push 0
push 0
mov ecx, dword [ebp - 0xc8]
add ecx, 0x64
call fcn.00406040
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 0x48]
push edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 0x44]
push ecx
push 0
push 0
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 0x7c]
push edx
call dword [sym.imp.USER32.dll_EndPaint]
mov eax, 1
jmp 0x40a6cc
mov eax, 1
jmp 0x40a6cc
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax + 0xb8]
test ecx, ecx
jne 0x40a2e3
mov dword [ebp - 0x70], 0x10
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x7c]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x6c], 3
mov dword [ebp - 0x64], 1
lea ecx, [ebp - 0x70]
push ecx
call dword [sym.imp.COMCTL32.dll__TrackMouseEvent]
test eax, eax
setne dl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0xb8], dl
lea ecx, [ebp - 0x60]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
lea edx, [ebp - 0x60]
push edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 0x7c]
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 4]
mov dword [ebp - 0xd0], edx
fild dword [ebp - 0xd0]
push ecx
fstp dword [esp]
fild dword [ebp - 0x60]
push ecx
fstp dword [esp]
lea ecx, [ebp - 0x58]
call fcn.00408680
sub esp, 8
mov ecx, esp
lea eax, [ebp - 0x58]
push eax
call fcn.0040d010
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x10]
call eax
push 0
push 0
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x38]
call eax
mov eax, 1
jmp 0x40a6cc
mov ecx, dword [ebp - 0xc8]
mov byte [ecx + 0xb8], 0
push ecx
fld dword [0x430754]
fstp dword [esp]
push ecx
fld dword [0x430754]
fstp dword [esp]
lea ecx, [ebp - 0x78]
call fcn.00408680
sub esp, 8
mov ecx, esp
lea edx, [ebp - 0x78]
push edx
call fcn.0040d010
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x10]
call eax
push 0
push 0
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x38]
call eax
mov eax, 1
jmp 0x40a6cc
lea ecx, [ebp - 0x88]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
lea edx, [ebp - 0x88]
push edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 0x7c]
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 4]
mov dword [ebp - 0xd4], edx
fild dword [ebp - 0xd4]
push ecx
fstp dword [esp]
fild dword [ebp - 0x88]
push ecx
fstp dword [esp]
lea ecx, [ebp - 0x80]
call fcn.00408680
sub esp, 8
mov ecx, esp
lea eax, [ebp - 0x80]
push eax
call fcn.0040d010
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x14]
call eax
push 0
push 0
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x38]
call eax
mov eax, 1
jmp 0x40a6cc
lea ecx, [ebp - 0x98]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
lea edx, [ebp - 0x98]
push edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 0x7c]
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov edx, dword [ebp - 0x94]
add edx, dword [ebp - 4]
mov dword [ebp - 0xd8], edx
fild dword [ebp - 0xd8]
push ecx
fstp dword [esp]
fild dword [ebp - 0x98]
push ecx
fstp dword [esp]
lea ecx, [ebp - 0x90]
call fcn.00408680
sub esp, 8
mov ecx, esp
lea eax, [ebp - 0x90]
push eax
call fcn.0040d010
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x18]
call eax
push 0
push 0
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x38]
call eax
mov eax, 1
jmp 0x40a6cc
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x2c]
call eax
mov eax, 1
jmp 0x40a6cc
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc8]
mov edx, dword [eax + 0x20]
call edx
mov eax, 1
jmp 0x40a6cc
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x4c]
call eax
test eax, eax
je 0x40a566
mov eax, 1
jmp 0x40a6cc
jmp case.0x40a17e.1
mov ecx, dword [ebp - 0xc8]
cmp dword [ecx + 0x80], 0
je 0x40a5a7
mov edx, dword [ebp - 0xc8]
mov ecx, dword [edx + 0x80]
call fcn.00409470
push eax
call fcn.00411a50
add esp, 4
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, 1
jmp 0x40a6cc
mov eax, dword [ebp - 0xc8]
cmp dword [eax + 0xc0], 0
je 0x40a5e1
mov ecx, dword [ebp - 0xc8]
mov ecx, dword [ecx + 0xc0]
call fcn.00409470
push eax
call fcn.00411a50
add esp, 4
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, 1
jmp 0x40a6cc
jmp case.0x40a17e.1
mov eax, 1
jmp 0x40a6cc
mov eax, 1
jmp 0x40a6cc
mov edx, dword [ebp + 0x10]
and edx, 0xffff
movzx eax, dx
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
and ecx, 0xffff
movzx edx, cx
mov dword [ebp - 0x9c], edx
lea eax, [ebp - 0xa0]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 0x7c]
push edx
call dword [sym.imp.USER32.dll_ScreenToClient]
push 4
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0xa4]
jg 0x40a6c3
fild dword [ebp - 0x9c]
push ecx
fstp dword [esp]
fild dword [ebp - 0xa0]
push ecx
fstp dword [esp]
lea ecx, [ebp - 0xac]
call fcn.00408680
push 0
push 0x4352f0
push 0x4352d4
sub esp, 8
mov ecx, esp
lea edx, [ebp - 0xac]
push edx
call fcn.0040d010
mov ecx, dword [ebp - 0xc8]
call fcn.0040b340
push 0
push eax
call fcn.004286ca
add esp, 0x14
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0
je 0x40a6bc
mov eax, 1
jmp 0x40a6cc
mov eax, 2
jmp 0x40a6cc
mov eax, 1
jmp 0x40a6cc
xor eax, eax
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00419bfc
mov esp, ebp
pop ebp
ret 0xc