Function at 0x45d440
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 0x45d9d2
push 0xffffffffffffffff
call fcn.00454bc0
test eax, eax
jne 0x45d9d2
mov ecx, dword [esi + 0x30]
call fcn.004549b0
test eax, eax
jne 0x45d670
mov ecx, dword [esi + 0x30]
call fcn.00454480
mov edi, eax
lea ecx, [esp + 0x24]
dec edi
neg edi
sbb edi, edi
inc edi
call fcn.004537a0
mov eax, dword [esi + 0x700]
mov ebx, 1
cmp eax, ebx
jne 0x45d4e7
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.00454890
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [esi + 0x58]
fadd qword [0x4d8970]
call fcn.004c836c
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
mov dword [esp + 0x28], eax
call fcn.004548f0
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [esi + 0x58]
fadd qword [0x4d8970]
call fcn.004c836c
mov dword [esp + 0x28], eax
jmp 0x45d4f5
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 0x45d520
cmp edi, ebp
mov dword [esp + 0x4c], ebx
jne 0x45d524
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.00453dd0
test eax, eax
jne 0x45d569
push ebp
push ebp
mov ecx, esi
call fcn.0045d120
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret 8
cmp dword [esi + 0x6c8], ebp
je 0x45d5d4
mov ecx, dword [esi + 0x30]
cmp ecx, ebp
je 0x45d5d4
call fcn.00454480
cmp eax, ebx
jne 0x45d5d4
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x6c4], ebx
mov dword [esi + 0x6d0], ebp
call fcn.00456670
cmp eax, ebp
je 0x45d5d4
mov ecx, dword [esi + 0x6d0]
mov edx, dword [eax + 0x14]
cmp ecx, edx
jge 0x45d5bc
cmp ecx, ebp
jl 0x45d5bc
mov edx, dword [eax + 0x10]
mov ecx, dword [edx + ecx*4]
cmp ecx, ebp
je 0x45d5bc
xor eax, eax
mov ax, word [ecx + 2]
jmp 0x45d5c1
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 0x45d669
mov edi, dword [esi + 0x30]
cmp edi, ebp
je 0x45d660
push 0xffffffffffffffff
mov ecx, edi
call fcn.00454890
test eax, eax
je 0x45d660
push 0xffffffffffffffff
mov ecx, edi
call fcn.004548f0
push 0xffffffffffffffff
mov ecx, edi
mov ebx, eax
call fcn.00454890
cmp eax, ebx
push 0xffffffffffffffff
mov ecx, edi
jle 0x45d638
call fcn.00454750
mov dword [esp + 0x14], eax
push 0xffffffffffffffff
fild dword [esp + 0x18]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.00454890
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdivr qword [esp + 0x1c]
jmp 0x45d666
call fcn.004547c0
mov dword [esp + 0x14], eax
push 0xffffffffffffffff
fild dword [esp + 0x18]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.004548f0
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdivr qword [esp + 0x1c]
jmp 0x45d666
fld qword [0x4d8778]
fstp qword [esi + 0x58]
mov ecx, esi
call fcn.0045deb0
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
cmp eax, 0x64
mov dword [esp + 0x10], ebp
ja 0x45d69a
lea ecx, [esi + 0x84]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x30]
push edx
push eax
call fcn.004541b0
mov edi, eax
jmp 0x45d6c7
mov ecx, dword [esi + 0x30]
push ebp
push ebp
push eax
call fcn.004541b0
cmp ebx, ebp
mov edi, eax
je 0x45d6c7
mov ecx, dword [esi + 0x30]
call fcn.00456660
cmp eax, dword [esi + 0x6d0]
jne 0x45d6c7
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 0x45d713
mov ecx, dword [esi + 0x30]
push ebp
call fcn.00454350
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.00454bc0
test eax, eax
je 0x45d757
mov ecx, dword [esi + 0x30]
push ebp
call fcn.00454350
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 ebx, ebp
je 0x45d96e
mov ecx, dword [esi + 0x30]
call fcn.00456660
cmp eax, dword [esi + 0x6d0]
jne 0x45d96e
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x45d96e
mov ebx, dword [sym.imp.user32.dll_OffsetRect]
dec eax
mov dword [esp + 0x10], eax
mov edi, dword [esi + 0x30]
cmp edi, ebp
je 0x45d80a
push 0xffffffffffffffff
mov ecx, edi
call fcn.00454890
test eax, eax
je 0x45d80a
push 0xffffffffffffffff
mov ecx, edi
call fcn.004548f0
push 0xffffffffffffffff
mov ecx, edi
mov ebp, eax
call fcn.00454890
cmp eax, ebp
push 0xffffffffffffffff
mov ecx, edi
jle 0x45d7e2
call fcn.00454750
mov dword [esp + 0x60], eax
push 0xffffffffffffffff
fild dword [esp + 0x64]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.00454890
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivr qword [esp + 0x1c]
jmp 0x45d810
call fcn.004547c0
mov dword [esp + 0x60], eax
push 0xffffffffffffffff
fild dword [esp + 0x64]
mov ecx, edi
fstp qword [esp + 0x20]
call fcn.004548f0
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivr qword [esp + 0x1c]
jmp 0x45d810
fld qword [0x4d8778]
fld qword [esi + 0x58]
fdiv st(1)
fmul qword [0x4d8b48]
fadd qword [0x4d8970]
call fcn.004c836c
mov edi, dword [esp + 0x10]
mov ecx, eax
shl edi, 4
mov eax, 0x68db8bad
mov edx, dword [edi + esi + 0x84]
lea edi, [edi + esi + 0x84]
imul edx, ecx
fstp st(0)
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x68db8bad
mov dword [edi], edx
mov edx, dword [esp + 0x10]
shl edx, 4
lea edi, [edx + esi + 0x88]
mov edx, ecx
imul edx, dword [edi]
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ecx, 0x2710
mov dword [edi], edx
mov edx, dword [esp + 0x10]
jle 0x45d8c5
shl edx, 4
mov eax, 0x68db8bad
lea edi, [edx + esi + 0x8c]
mov edx, dword [edx + esi + 0x8c]
inc edx
imul edx, ecx
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [edi], edx
mov edx, dword [esp + 0x10]
add edx, 9
shl edx, 4
lea edi, [edx + esi]
mov edx, dword [edx + esi]
inc edx
imul edx, ecx
jmp 0x45d90b
shl edx, 4
mov eax, 0x68db8bad
lea edi, [edx + esi + 0x8c]
mov edx, dword [edx + esi + 0x8c]
imul edx, ecx
add edx, 0x270f
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [edi], edx
mov edx, dword [esp + 0x10]
add edx, 9
shl edx, 4
lea edi, [edx + esi]
mov edx, dword [edx + esi]
imul edx, ecx
add edx, 0x270f
mov eax, 0x68db8bad
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [edi], edx
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x10]
neg ecx
shl eax, 4
push ecx
neg edx
lea ecx, [eax + esi + 0x84]
push edx
push ecx
call ebx
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x50]
shl edx, 4
xor ebp, ebp
lea eax, [edx + esi + 0x84]
push ebp
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 0x45d78a
mov ebx, dword [esp + 0x64]
cmp dword [esi + 0x6c4], ebp
je 0x45d9c4
mov ecx, dword [esi + 0x30]
call fcn.00456660
mov ecx, dword [esi + 0x6d0]
inc ecx
cmp eax, ecx
jg 0x45d997
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.00454bc0
test eax, eax
je 0x45d9c4
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.00454bc0
test eax, eax
je 0x45d9b2
mov ecx, dword [esi + 0x30]
call fcn.00456650
cmp eax, 1
je 0x45d9c4
mov edx, dword [esi + 0x50]
push ebp
push 1
push 0x113
push edx
call dword [sym.imp.user32.dll_SendMessageA]
cmp ebx, ebp
je 0x45d9d2
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