Function at 0x40c5a8
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, 0x40c538
call fcn.0040557c
mov ebx, 0x40e64c
xor eax, eax
push ebp
push 0x40cbaf
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0040c504
mov dl, 1
mov eax, dword [0x40bf00]
call fcn.0040bfb0
mov esi, eax
mov edx, 0x80000002
mov eax, esi
call fcn.0040c050
xor ecx, ecx
mov edx, 0x40cbc8
mov eax, esi
call fcn.0040c194
xor ecx, ecx
mov edx, 0x40cbdc
mov eax, esi
call fcn.0040c194
xor ecx, ecx
mov edx, 0x40cbf0
mov eax, esi
call fcn.0040c194
xor ecx, ecx
mov edx, 0x40cc00
mov eax, esi
call fcn.0040c194
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.0040275c
mov eax, dword [ebp - 0x10]
push eax
mov ecx, 0x40cc18
mov edx, 0x40cc2c
mov eax, esi
call fcn.0040c3e4
mov eax, esi
call fcn.00402a98
call fcn.004027b4
mov eax, 0xa
call fcn.0040282c
inc eax
mov word [0x40e654], ax
push ebx
call sub.user32.dll_GetCursorPos
mov si, word [ebx]
mov di, word [ebx + 4]
xor eax, eax
mov dword [0x40e658], eax
cmp word [0x40e654], 1
jne 0x40c766
inc dword [0x40e658]
cmp dword [0x40e658], 0x2faf0800
jne 0x40c6c0
mov eax, 0x320
call fcn.0040282c
mov esi, eax
mov eax, 0x258
call fcn.0040282c
mov edi, eax
xor eax, eax
mov dword [0x40e658], eax
mov byte [0x40e65c], 0
mov eax, dword [0x40e658]
mov ecx, 0xc350
xor edx, edx
div ecx
test edx, edx
jne 0x40c688
cmp byte [0x40e65c], 0
jne 0x40c688
mov word [0x40e654], 0
mov word [0x40e656], 0
push ebx
call sub.user32.dll_GetCursorPos
movsx edx, si
mov eax, dword [ebx]
cmp edx, eax
jne 0x40c70b
movsx ecx, di
cmp ecx, dword [ebx + 4]
jne 0x40c70b
mov byte [0x40e65c], 1
cmp edx, eax
jle 0x40c718
mov word [0x40e654], 1
cmp edx, eax
jge 0x40c725
mov word [0x40e654], 0xffff
movsx ecx, di
mov edx, dword [ebx + 4]
cmp ecx, edx
jle 0x40c738
mov word [0x40e656], 1
movsx ecx, di
cmp edx, ecx
jle 0x40c748
mov word [0x40e656], 0xffff
movsx ecx, word [0x40e656]
add ecx, edx
push ecx
movsx edx, word [0x40e654]
add edx, eax
push edx
call sub.user32.dll_SetCursorPos
jmp 0x40c688
cmp word [0x40e654], 2
jne 0x40c7ba
inc dword [0x40e658]
mov eax, dword [0x40e658]
mov ecx, 0x4e20
xor edx, edx
div ecx
test edx, edx
jne 0x40c770
push ebx
call sub.user32.dll_GetCursorPos
mov eax, 5
call fcn.0040282c
mov edx, dword [ebx + 4]
add edx, 2
sub edx, eax
push edx
mov eax, 5
call fcn.0040282c
mov edx, dword [ebx]
add edx, 2
sub edx, eax
push edx
call sub.user32.dll_SetCursorPos
jmp 0x40c770
cmp word [0x40e654], 3
jne 0x40c806
inc dword [0x40e658]
cmp dword [0x40e658], 0xee6b2800
jbe 0x40c7c4
mov eax, 0x258
call fcn.0040282c
push eax
mov eax, 0x320
call fcn.0040282c
push eax
call sub.user32.dll_SetCursorPos
cmp dword [0x40e658], 0xee6b9d30
jne 0x40c7c4
xor eax, eax
mov dword [0x40e658], eax
jmp 0x40c7c4
cmp word [0x40e654], 4
jne 0x40c830
push ebx
call sub.user32.dll_GetCursorPos
mov eax, dword [ebx]
push eax
mov eax, dword [ebx + 4]
push eax
call sub.user32.dll_SetCursorPos
mov eax, dword [ebx + 4]
push eax
mov eax, dword [ebx]
push eax
call sub.user32.dll_SetCursorPos
jmp 0x40c810
cmp word [0x40e654], 5
jne 0x40c870
inc dword [0x40e658]
cmp dword [0x40e658], 0x77359400
jne 0x40c83a
mov eax, 0x258
call fcn.0040282c
push eax
mov eax, 0x320
call fcn.0040282c
push eax
call sub.user32.dll_SetCursorPos
xor eax, eax
mov dword [0x40e658], eax
jmp 0x40c83a
cmp word [0x40e654], 6
jne 0x40c8d2
push ebx
call sub.user32.dll_GetCursorPos
movsx edx, si
push edx
mov eax, dword [ebx]
mov edx, eax
pop ecx
sub edx, ecx
test edx, edx
jl 0x40c8ae
mov ecx, dword [ebx + 4]
push ecx
add edx, edx
sub eax, edx
push eax
call sub.user32.dll_SetCursorPos
mov ax, word [ebx]
mov edx, eax
sub dx, si
add edx, edx
sub ax, dx
mov esi, eax
jmp 0x40c87a
mov edx, dword [ebx + 4]
push edx
movsx edx, si
sub edx, eax
add edx, edx
add edx, eax
push edx
call sub.user32.dll_SetCursorPos
mov ax, word [ebx]
sub si, ax
mov edx, esi
add edx, edx
add dx, ax
mov esi, edx
jmp 0x40c87a
cmp word [0x40e654], 7
jne 0x40c932
push ebx
call sub.user32.dll_GetCursorPos
movsx edx, di
mov eax, dword [ebx + 4]
sub edx, eax
test edx, edx
jl 0x40c90d
add edx, edx
add edx, eax
push edx
mov eax, dword [ebx]
push eax
call sub.user32.dll_SetCursorPos
mov ax, word [ebx + 4]
sub di, ax
mov edx, edi
add edx, edx
add dx, ax
mov edi, edx
jmp 0x40c8dc
movsx edx, di
sub edx, dword [ebx + 4]
add edx, edx
add edx, eax
push edx
mov eax, dword [ebx]
push eax
call sub.user32.dll_SetCursorPos
mov ax, word [ebx + 4]
sub di, ax
mov edx, edi
add edx, edx
add dx, ax
mov edi, edx
jmp 0x40c8dc
cmp word [0x40e654], 8
jne 0x40c9a0
push ebx
call sub.user32.dll_GetCursorPos
movsx edx, si
mov eax, dword [ebx]
mov ecx, eax
sub ecx, edx
cmp ecx, 0x1e
jl 0x40c957
mov si, word [ebx]
add si, 0x1e
movsx edx, si
sub edx, eax
cmp edx, 0x1e
jl 0x40c968
mov si, word [ebx]
sub si, 0x1e
movsx edx, di
mov eax, dword [ebx + 4]
mov ecx, eax
sub ecx, edx
cmp ecx, 0x1e
jl 0x40c97f
mov di, word [ebx + 4]
add di, 0x1e
movsx edx, di
sub edx, eax
cmp edx, 0x1e
jl 0x40c991
mov di, word [ebx + 4]
sub di, 0x1e
movsx eax, di
push eax
movsx eax, si
push eax
call sub.user32.dll_SetCursorPos
jmp 0x40c93c
cmp word [0x40e654], 9
jne 0x40cb36
push ebx
call sub.user32.dll_GetCursorPos
movsx eax, si
sub eax, dword [ebx]
test eax, eax
jle 0x40ca0c
movsx edx, di
sub edx, dword [ebx + 4]
test edx, edx
jle 0x40ca0c
movsx edx, di
sub edx, dword [ebx + 4]
lea edx, [edx + edx*2]
mov ecx, dword [ebx + 4]
sub ecx, edx
push ecx
lea eax, [eax + eax*2]
mov edx, dword [ebx]
sub edx, eax
push edx
call sub.user32.dll_SetCursorPos
mov edx, esi
mov ax, word [ebx]
sub dx, ax
lea edx, [edx + edx*2]
sub ax, dx
mov word [0x40e654], ax
mov edx, edi
mov ax, word [ebx + 4]
sub dx, ax
lea edx, [edx + edx*2]
sub ax, dx
mov word [0x40e656], ax
movsx eax, si
sub eax, dword [ebx]
test eax, eax
jle 0x40ca66
movsx edx, di
mov ecx, dword [ebx + 4]
sub ecx, edx
test ecx, ecx
jle 0x40ca66
movsx edx, di
mov ecx, dword [ebx + 4]
sub ecx, edx
lea edx, [ecx + ecx*2]
add edx, dword [ebx + 4]
push edx
lea eax, [eax + eax*2]
mov edx, dword [ebx]
sub edx, eax
push edx
call sub.user32.dll_SetCursorPos
mov eax, esi
sub ax, word [ebx]
lea eax, [eax + eax*2]
mov dx, word [ebx]
sub dx, ax
mov word [0x40e654], dx
mov ax, word [ebx + 4]
sub ax, di
lea eax, [eax + eax*2]
add ax, word [ebx + 4]
mov word [0x40e656], ax
movsx eax, si
mov edx, dword [ebx]
sub edx, eax
test edx, edx
jle 0x40cac5
movsx eax, di
sub eax, dword [ebx + 4]
test eax, eax
jle 0x40cac5
movsx eax, di
sub eax, dword [ebx + 4]
lea eax, [eax + eax*2]
mov edx, dword [ebx + 4]
sub edx, eax
push edx
movsx eax, si
mov edx, dword [ebx]
sub edx, eax
lea eax, [edx + edx*2]
add eax, dword [ebx]
push eax
call sub.user32.dll_SetCursorPos
mov ax, word [ebx]
sub ax, si
lea eax, [eax + eax*2]
add ax, word [ebx]
mov word [0x40e654], ax
mov eax, edi
sub ax, word [ebx + 4]
lea eax, [eax + eax*2]
mov dx, word [ebx + 4]
sub dx, ax
mov word [0x40e656], dx
movsx eax, si
mov edx, dword [ebx]
sub edx, eax
test edx, edx
jle 0x40cb23
movsx eax, di
mov edx, dword [ebx + 4]
sub edx, eax
test edx, edx
jle 0x40cb23
movsx eax, di
mov edx, dword [ebx + 4]
sub edx, eax
lea eax, [edx + edx*2]
add eax, dword [ebx + 4]
push eax
movsx eax, si
mov edx, dword [ebx]
sub edx, eax
lea eax, [edx + edx*2]
add eax, dword [ebx]
push eax
call sub.user32.dll_SetCursorPos
mov ax, word [ebx]
sub ax, si
lea eax, [eax + eax*2]
add ax, word [ebx]
mov word [0x40e654], ax
mov ax, word [ebx + 4]
sub ax, di
lea eax, [eax + eax*2]
add ax, word [ebx + 4]
mov word [0x40e656], ax
mov si, word [0x40e654]
mov di, word [0x40e656]
jmp 0x40c9ae
cmp word [0x40e654], 0xa
jne 0x40cb99
inc dword [0x40e658]
push ebx
call sub.user32.dll_GetCursorPos
cmp dword [0x40e658], 0x7530
jae 0x40cb67
movsx eax, di
push eax
mov eax, dword [ebx]
push eax
call sub.user32.dll_SetCursorPos
mov si, word [ebx]
cmp dword [0x40e658], 0x7530
jbe 0x40cb84
mov eax, dword [ebx + 4]
push eax
movsx eax, si
push eax
call sub.user32.dll_SetCursorPos
mov di, word [ebx + 4]
cmp dword [0x40e658], 0xea60
jbe 0x40cb40
xor eax, eax
mov dword [0x40e658], eax
jmp 0x40cb40
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40cbb6
lea eax, [ebp - 0x10]
call fcn.00403384
ret