Function at 0x460010
Capabilities:
Check for unmoving mouse cursor

Disassembly:
sub esp, 0x4c
push ebx
push ebp
push esi
mov esi, ecx
xor ebp, ebp
push edi
mov ecx, dword [esi + 0x30]
cmp ecx, ebp
je 0x4605a7
push 0xffffffffffffffff
call fcn.0045b0c0
test eax, eax
jne 0x4605a7
mov ecx, dword [esi + 0x30]
call fcn.0045aeb0
test eax, eax
jne 0x460240
mov ecx, dword [esi + 0x30]
call fcn.0045a980
mov edi, eax
lea ecx, [esp + 0x24]
dec edi
neg edi
sbb edi, edi
inc edi
call fcn.00459c90
mov eax, dword [esi + 0x700]
mov ebx, 1
cmp eax, ebx
jne 0x4600b7
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.0045ad90
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [esi + 0x58]
fadd qword [0x4cc720]
call fcn.004bedcc
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
mov dword [esp + 0x28], eax
call fcn.0045adf0
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [esi + 0x58]
fadd qword [0x4cc720]
call fcn.004bedcc
mov dword [esp + 0x28], eax
jmp 0x4600c5
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0x6c]
mov edx, dword [esi + 0x68]
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x6c8]
mov dword [esp + 0x2c], edx
cmp eax, ebp
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], edi
je 0x4600f0
cmp edi, ebp
mov dword [esp + 0x4c], ebx
jne 0x4600f4
mov dword [esp + 0x4c], ebp
mov eax, dword [esi + 0x70]
mov edx, dword [esi + 0x7c]
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0x80]
lea eax, [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 0x30]
push eax
mov dword [esp + 0x40], edx
call fcn.0045a2c0
test eax, eax
jne 0x460139
push ebp
push ebp
mov ecx, esi
call fcn.0045fcf0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret 8
cmp dword [esi + 0x6c8], ebp
je 0x4601a4
mov ecx, dword [esi + 0x30]
cmp ecx, ebp
je 0x4601a4
call fcn.0045a980
cmp eax, ebx
jne 0x4601a4
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x6c4], ebx
mov dword [esi + 0x6d0], ebp
call fcn.0045cb80
cmp eax, ebp
je 0x4601a4
mov ecx, dword [esi + 0x6d0]
mov edx, dword [eax + 0x14]
cmp ecx, edx
jge 0x46018c
cmp ecx, ebp
jl 0x46018c
mov edx, dword [eax + 0x10]
mov ecx, dword [edx + ecx*4]
cmp ecx, ebp
je 0x46018c
xor eax, eax
mov ax, word [ecx + 2]
jmp 0x460191
mov eax, 0xa
push ebp
push eax
mov eax, dword [esi + 0x50]
push ebx
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [esi + 0x6c4], ebp
cmp dword [esi + 0x700], ebp
jne 0x460239
mov edi, dword [esi + 0x30]
cmp edi, ebp
je 0x460230
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045ad90
test eax, eax
je 0x460230
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045adf0
push 0xffffffffffffffff
mov ecx, edi
mov ebx, eax
call fcn.0045ad90
cmp eax, ebx
push 0xffffffffffffffff
mov ecx, edi
jle 0x460208
call fcn.0045ac50
mov dword [esp + 0x14], eax
push 0xffffffffffffffff
fild dword [esp + 0x18]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.0045ad90
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdivr qword [esp + 0x1c]
jmp 0x460236
call fcn.0045acc0
mov dword [esp + 0x14], eax
push 0xffffffffffffffff
fild dword [esp + 0x18]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.0045adf0
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdivr qword [esp + 0x1c]
jmp 0x460236
fld qword [0x4cc7b8]
fstp qword [esi + 0x58]
mov ecx, esi
call fcn.00460a80
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], ebp
cmp eax, 0x64
ja 0x460266
lea ecx, [esi + 0x84]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x30]
push edx
push eax
call fcn.0045a6b0
mov edi, eax
jmp 0x460297
mov ecx, dword [esi + 0x30]
push ebp
push ebp
push eax
call fcn.0045a6b0
mov edi, eax
mov eax, dword [esp + 0x64]
cmp eax, ebp
je 0x460297
mov ecx, dword [esi + 0x30]
call fcn.0045cb70
cmp eax, dword [esi + 0x6d0]
jne 0x460297
mov eax, dword [esi + 0x50]
push ebp
push ebp
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
cmp edi, ebp
jne 0x4602e3
mov ecx, dword [esi + 0x30]
push ebp
call fcn.0045a850
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetCursorPos]
mov eax, dword [esi + 0x50]
push ebp
push ebp
push 0x401
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret 8
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.0045b0c0
test eax, eax
je 0x460327
mov ecx, dword [esi + 0x30]
push ebp
call fcn.0045a850
mov ecx, dword [esi + 0x50]
push ebp
push 1
push 0x401
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetCursorPos]
cmp dword [esp + 0x64], ebp
je 0x46053c
mov ecx, dword [esi + 0x30]
call fcn.0045cb70
cmp eax, dword [esi + 0x6d0]
jne 0x46053c
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x46053c
dec eax
mov dword [esp + 0x10], eax
mov edi, dword [esi + 0x30]
test edi, edi
je 0x4603fa
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045ad90
test eax, eax
je 0x4603da
push 0xffffffffffffffff
mov ecx, edi
call fcn.0045adf0
push 0xffffffffffffffff
mov ecx, edi
mov ebx, eax
call fcn.0045ad90
cmp eax, ebx
push 0xffffffffffffffff
mov ecx, edi
jle 0x4603b2
call fcn.0045ac50
mov dword [esp + 0x60], eax
push 0xffffffffffffffff
fild dword [esp + 0x64]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.0045ad90
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivr qword [esp + 0x1c]
jmp 0x4603e0
call fcn.0045acc0
mov dword [esp + 0x60], eax
push 0xffffffffffffffff
fild dword [esp + 0x64]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.0045adf0
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivr qword [esp + 0x1c]
jmp 0x4603e0
fld qword [0x4cc7b8]
fld qword [esi + 0x58]
fmul qword [0x4cc728]
fdiv st(1)
fadd qword [0x4cc720]
call fcn.004bedcc
fstp st(0)
jmp 0x46040e
fld qword [esi + 0x58]
fmul qword [0x4cc728]
fadd qword [0x4cc720]
call fcn.004bedcc
mov edx, dword [esp + 0x10]
mov edi, eax
mov ecx, edi
mov eax, 0x51eb851f
sub ecx, 0x64
neg ecx
sbb ecx, ecx
shl edx, 4
lea ebx, [edx + esi + 0x84]
mov edx, dword [edx + esi + 0x84]
imul edx, edi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
xor eax, eax
lea ebp, [edx + ecx]
test ebp, ebp
setl al
dec eax
and eax, ebp
mov dword [ebx], eax
mov edx, dword [esp + 0x10]
shl edx, 4
mov eax, 0x51eb851f
lea ebx, [edx + esi + 0x88]
mov edx, dword [edx + esi + 0x88]
imul edx, edi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
xor eax, eax
add ecx, edx
test ecx, ecx
setl al
dec eax
and eax, ecx
mov dword [ebx], eax
mov ecx, dword [esp + 0x10]
xor ebx, ebx
cmp edi, 0x64
setg bl
shl ecx, 4
mov eax, 0x51eb851f
lea ebp, [ecx + esi + 0x8c]
mov ecx, dword [ecx + esi + 0x8c]
imul ecx, edi
add ecx, 0x63
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x51eb851f
add edx, ebx
mov dword [ebp], edx
mov ecx, dword [esp + 0x10]
add ecx, 9
shl ecx, 4
lea ebp, [ecx + esi]
mov ecx, dword [ecx + esi]
imul ecx, edi
add ecx, 0x63
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, ebx
mov dword [ebp], edx
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x10]
neg ecx
neg edx
push ecx
push edx
shl eax, 4
lea ecx, [eax + esi + 0x84]
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x50]
shl edx, 4
push 0
lea eax, [edx + esi + 0x84]
push eax
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x10]
mov edx, eax
dec eax
test edx, edx
mov dword [esp + 0x10], eax
jne 0x460356
mov eax, dword [esi + 0x6c4]
test eax, eax
je 0x460595
mov ecx, dword [esi + 0x30]
call fcn.0045cb70
mov ecx, dword [esi + 0x6d0]
inc ecx
cmp eax, ecx
jg 0x460567
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.0045b0c0
test eax, eax
je 0x460595
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.0045b0c0
test eax, eax
je 0x460582
mov ecx, dword [esi + 0x30]
call fcn.0045cb60
cmp eax, 1
je 0x460595
mov edx, dword [esi + 0x50]
push 0
push 1
push 0x113
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4605a7
mov eax, dword [esi + 0x50]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 8