Function at 0x407960
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov ecx, dword [edi + 8]
sub esp, 8
push ebx
push esi
lea ebx, [edi + 0x5a48]
push ebx
mov eax, 1
call fcn.004037d0
cmp eax, 1
jne 0x4079c2
mov eax, dword [0x4b3cd8]
test eax, eax
je 0x407e1a
cmp eax, 3
je 0x407e1a
call fcn.004303c0
push 0
push 1
mov ecx, edi
call fcn.004084f0
test eax, eax
je 0x407e1a
mov eax, 1
call fcn.004304b0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
push ebx
mov eax, 2
call fcn.004037d0
cmp eax, 1
jne 0x4079f3
push 0
push 2
mov ecx, edi
call fcn.004084f0
test eax, eax
je 0x407e1a
call fcn.004308f0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
push ebx
mov eax, 4
call fcn.004037d0
cmp eax, 1
jne 0x407a21
push 0
push 4
mov ecx, edi
call fcn.004084f0
push 4
call fcn.004314a0
add esp, 4
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
push ebx
mov eax, 8
call fcn.004037d0
cmp eax, 1
jne 0x407a4f
push 0
push 8
mov ecx, edi
call fcn.004084f0
push 8
call fcn.004314a0
add esp, 4
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
push ebx
mov eax, 0x10
call fcn.004037d0
cmp eax, 1
je 0x407e1a
mov ecx, dword [edi + 8]
push ebx
mov eax, 0x20
call fcn.004037d0
cmp eax, 1
je 0x407e1a
mov ecx, dword [edi + 8]
push ebx
mov eax, 0x40
call fcn.004037d0
cmp eax, 1
je 0x407e1a
mov ecx, dword [edi + 8]
push ebx
mov eax, 0x80
call fcn.004037d0
cmp eax, 1
jne 0x407ab3
push edi
call fcn.004082b0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov eax, 1
mov dword [esp + 0xc], 0
cmp dword [esi + 0x6c], eax
je 0x407ae9
cmp dword [esi + 0x70], eax
je 0x407ae9
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407ae9
lea eax, [esi + 0x64]
push eax
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0xc9
mov ecx, esi
call fcn.00403a80
test eax, eax
mov eax, 1
jne 0x407b02
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x407b11
mov ecx, dword [esi + 0x64]
mov dword [ebx], ecx
mov edx, dword [esi + 0x68]
mov dword [ebx + 4], edx
mov ecx, 1
cmp eax, ecx
jne 0x407b27
mov ecx, edi
call fcn.004082f0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov dword [esp + 0xc], 0
cmp dword [esi + 0x6c], ecx
je 0x407b58
cmp dword [esi + 0x70], ecx
je 0x407b58
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407b58
lea eax, [esi + 0x64]
push eax
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0xd1
mov ecx, esi
call fcn.00403a80
test eax, eax
mov eax, 1
jne 0x407b71
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x407b80
mov ecx, dword [esi + 0x64]
mov dword [ebx], ecx
mov edx, dword [esi + 0x68]
mov dword [ebx + 4], edx
mov ecx, 1
cmp eax, ecx
jne 0x407b96
mov ecx, edi
call fcn.00408310
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov dword [esp + 0xc], 0
cmp dword [esi + 0x6c], ecx
je 0x407bc7
cmp dword [esi + 0x70], ecx
je 0x407bc7
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407bc7
lea eax, [esi + 0x64]
push eax
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0xc7
mov ecx, esi
call fcn.00403a80
test eax, eax
mov eax, 1
jne 0x407be0
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x407bef
mov ecx, dword [esi + 0x64]
mov dword [ebx], ecx
mov edx, dword [esi + 0x68]
mov dword [ebx + 4], edx
mov ecx, 1
cmp eax, ecx
jne 0x407c05
mov ecx, edi
call fcn.00408330
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov dword [esp + 0xc], 0
cmp dword [esi + 0x6c], ecx
je 0x407c36
cmp dword [esi + 0x70], ecx
je 0x407c36
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407c36
lea eax, [esi + 0x64]
push eax
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0xcf
mov ecx, esi
call fcn.00403a80
test eax, eax
mov eax, 1
jne 0x407c4f
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x407c5e
mov ecx, dword [esi + 0x64]
mov dword [ebx], ecx
mov edx, dword [esi + 0x68]
mov dword [ebx + 4], edx
mov ecx, 1
cmp eax, ecx
jne 0x407c74
mov ecx, edi
call fcn.00408350
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov dword [esp + 0xc], 0
cmp dword [esi + 0x6c], ecx
je 0x407ca5
cmp dword [esi + 0x70], ecx
je 0x407ca5
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407ca5
lea eax, [esi + 0x64]
push eax
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0x2c
mov ecx, esi
call fcn.00403a80
test eax, eax
mov eax, 1
jne 0x407cbb
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x407cca
mov ecx, dword [esi + 0x64]
mov dword [ebx], ecx
mov edx, dword [esi + 0x68]
mov dword [ebx + 4], edx
mov ecx, 1
cmp eax, ecx
jne 0x407cdf
push edi
call fcn.00408370
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
mov dword [esp + 0xc], 0
cmp dword [esi + 0x6c], ecx
je 0x407d10
cmp dword [esi + 0x70], ecx
je 0x407d10
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407d10
lea eax, [esi + 0x64]
push eax
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0x2d
mov ecx, esi
call fcn.00403a80
test eax, eax
mov eax, 1
jne 0x407d26
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x407d35
mov ecx, dword [esi + 0x64]
mov dword [ebx], ecx
mov edx, dword [esi + 0x68]
mov dword [ebx + 4], edx
cmp eax, 1
jne 0x407d46
push edi
call fcn.004083f0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
cmp dword [esi + 0x6c], 1
mov dword [esp + 0xc], 0
je 0x407d76
cmp dword [esi + 0x70], 1
je 0x407d76
lea ebx, [esi + 0x64]
push ebx
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407d76
mov eax, dword [esi + 0x48]
push ebx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0x2e
mov ecx, esi
call fcn.00403a80
mov ecx, 1
test eax, eax
jne 0x407d8c
mov ecx, dword [esp + 0xc]
lea eax, [edi + 0x5a48]
test eax, eax
je 0x407da1
mov edx, dword [esi + 0x64]
mov dword [eax], edx
mov edx, dword [esi + 0x68]
mov dword [eax + 4], edx
cmp ecx, 1
jne 0x407db3
mov ecx, edi
call fcn.00408470
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
cmp dword [esi + 0x6c], 1
mov dword [esp + 0xc], 0
je 0x407de3
cmp dword [esi + 0x70], 1
je 0x407de3
lea ebx, [esi + 0x64]
push ebx
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x407de3
mov eax, dword [esi + 0x48]
push ebx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0x2f
mov ecx, esi
call fcn.00403a80
mov ecx, 1
test eax, eax
jne 0x407df9
mov ecx, dword [esp + 0xc]
lea eax, [edi + 0x5a48]
test eax, eax
je 0x407e0e
mov edx, dword [esi + 0x64]
mov dword [eax], edx
mov edx, dword [esi + 0x68]
mov dword [eax + 4], edx
cmp ecx, 1
jne 0x407e1a
mov ecx, edi
call fcn.004084b0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret