Function at 0x314063e4
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov ebx, eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
add esi, 0xfffffffc
test eax, eax
jne 0x3140640d
mov edx, ebx
mov eax, dword [esi]
call fcn.313fedf0
jmp 0x31406415
mov edx, dword [esi]
xchg edx, eax
call fcn.3140d700
mov edx, dword [ebx + 0x10]
sub edx, eax
mov dword [ebx + 8], edx
cmp byte [ebx + 0x18], 0
je 0x314065dc
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
cmp word [eax + 0x42], 1
jne 0x314065dc
mov eax, dword [esi]
cmp dword [eax + 0x220], 0
je 0x314064d7
mov eax, dword [esi]
mov eax, dword [eax + 0x204]
call fcn.312e1c94
push eax
call sub.user32.dll_GetCursorPos
test eax, eax
je 0x314064af
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
cmp word [eax + 0x48], 0
je 0x314064af
mov eax, dword [esi]
mov eax, dword [eax + 0x204]
call fcn.312e1c94
mov edx, dword [esi]
mov edx, dword [edx + 0x220]
xor ecx, ecx
call fcn.313fd4c8
mov edi, eax
lea edx, [ebp - 0x1c]
mov eax, dword [esi]
call fcn.3140eb64
add edi, dword [ebp - 0x18]
mov dword [ebx + 0xc], edi
jmp 0x314064e7
lea edx, [ebp - 0x1c]
mov eax, dword [esi]
call fcn.3140eb64
mov edi, dword [ebp - 0x18]
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx eax, word [eax + 0x48]
add edi, eax
mov dword [ebx + 0xc], edi
jmp 0x314064e7
lea edx, [ebp - 0x1c]
mov eax, dword [esi]
call fcn.3140eb64
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xc], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x204]
call fcn.312e1c94
push eax
call sub.user32.dll_GetCursorPos
test eax, eax
je 0x314065ca
mov eax, dword [esi]
mov edi, dword [eax + 0x204]
mov eax, dword [edi + 0x70]
cmp dword [eax + 8], 0
jne 0x31406533
cmp dword [eax + 0xc], 0
jne 0x31406533
mov eax, edi
call fcn.312e1c94
mov edx, dword [esi]
mov edx, dword [edx + 0x220]
xor ecx, ecx
call fcn.313fd4c8
dec eax
add dword [ebx + 0xc], eax
mov eax, dword [esi]
cmp dword [eax + 0x220], 0
je 0x314065ca
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movzx edi, word [eax + 0x2c]
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
cmp di, word [eax + 0x2e]
je 0x3140659c
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx edi, word [eax + 0x2c]
add edi, dword [ebx + 0xc]
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx eax, word [eax + 0x2e]
sub edi, eax
mov dword [ebx + 0xc], edi
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
cmp word [eax + 0x34], 1
jne 0x314065ca
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx eax, word [eax + 0x32]
add dword [ebx + 0xc], eax
mov eax, dword [esi]
call fcn.313fed18
add eax, dword [ebx + 0xc]
mov dword [ebx + 0x14], eax
jmp 0x31406785
mov eax, dword [esi]
mov eax, dword [eax + 0x204]
call fcn.312e1c94
mov edx, dword [esi]
mov edx, dword [edx + 0x220]
mov cl, 1
call fcn.313fd51c
mov edi, eax
mov eax, dword [esi]
mov dl, 1
call fcn.313fee9c
push eax
mov eax, dword [esi]
call fcn.313fed18
pop edx
sub edx, eax
add edi, edx
sar edi, 1
jns 0x31406617
adc edi, 0
lea edx, [ebp - 0x1c]
mov eax, dword [esi]
call fcn.3140eb64
add edi, dword [ebp - 0x18]
mov dword [ebx + 0xc], edi
mov eax, dword [esi]
cmp dword [eax + 0x220], 0
je 0x31406660
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
cmp word [eax + 0x34], 1
jne 0x31406660
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx eax, word [eax + 0x32]
add dword [ebx + 0xc], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x204]
call fcn.312e1c94
push eax
call sub.user32.dll_GetCursorPos
test eax, eax
je 0x3140671b
mov eax, dword [esi]
cmp dword [eax + 0x220], 0
sete al
and eax, 0x7f
add eax, eax
mov edx, 2
sub edx, eax
sub dword [ebx + 0xc], edx
mov eax, dword [esi]
cmp dword [eax + 0x220], 0
je 0x3140671b
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movzx edi, word [eax + 0x2c]
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
cmp di, word [eax + 0x2e]
je 0x3140671b
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx edi, word [eax + 0x2c]
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx eax, word [eax + 0x2e]
sub edi, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x90]
movsx eax, word [eax + 0x32]
sub edi, eax
sar edi, 1
jns 0x31406712
adc edi, 0
add edi, dword [ebx + 0xc]
sub edi, 2
mov dword [ebx + 0xc], edi
mov eax, dword [esi]
cmp dword [eax + 0x220], 0
je 0x3140675d
mov eax, dword [esi]
mov eax, dword [eax + 0x204]
cmp byte [eax + 0x29a], 2
jne 0x3140675d
mov eax, dword [esi]
mov eax, dword [eax + 0x204]
call fcn.312e1c94
mov edx, dword [esi]
mov edx, dword [edx + 0x220]
xor ecx, ecx
call fcn.313fd4c8
sar eax, 1
jns 0x3140675a
adc eax, 0
add dword [ebx + 0xc], eax
mov eax, dword [esi]
call fcn.313fd7b4
test al, al
je 0x31406778
mov eax, dword [esi]
call fcn.313fed18
cmp eax, 0x10
jge 0x31406778
add dword [ebx + 0xc], 2
mov eax, dword [esi]
call fcn.313fed18
add eax, dword [ebx + 0xc]
mov dword [ebx + 0x14], eax
cmp dword [ebp - 0xc], 0xffffffff
jle 0x3140681d
mov eax, dword [esi]
cmp byte [eax + 0x1fc], 0
je 0x314067a4
cmp byte [ebp + 0xc], 0
je 0x314067a4
xor eax, eax
jmp 0x314067a6
mov al, 1
and eax, 0x7f
cmp dword [ebx], 0
je 0x314067b8
cmp dword [ebx + 0x20], 0
jne 0x314067b8
xor edx, edx
jmp 0x314067ba
mov dl, 1
and edx, 0x7f
imul edx
inc eax
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
call fcn.31416e50
mov eax, dword [eax + 0x94]
imul edx, dword [ebp - 0xc], 0xd
lea eax, [eax + edx*4]
push eax
lea eax, [ebp - 0x30]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0x38]
xor ecx, ecx
xor edx, edx
call fcn.3141480c
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x38]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
call fcn.3123aa68
lea edx, [ebp - 0x38]
cmp dword [ebx + 0x20], 0
sete cl
and ecx, 0x7f
imul ecx, dword [ebx]
mov eax, dword [esi]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0x38]
call fcn.3141b580
mov eax, dword [ebp - 8]
inc dword [eax]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8