Function at 0x402274
Capabilities:
Check for unmoving mouse cursor

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 8]
add eax, 0xfffffffe
cmp eax, 6
ja case.default.0x402287
jmp dword [eax*4 + 0x40267c]
mov edx, dword [esi + 0x18]
inc edx
mov eax, edx
mov dword [esi + 0x18], edx
cmp eax, 0x28
jle case.default.0x402287
call fcn.004103e0
cdq
mov ecx, 0x28
idiv ecx
test edx, edx
je case.default.0x402287
push 0
call fcn.004048d0
add esp, 4
cmp eax, 2
jge case.default.0x402287
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
mov edi, dword [esi + 0x18]
inc edi
mov eax, edi
mov dword [esi + 0x18], edi
cdq
idiv dword [esi + 0x8c]
mov eax, dword [esi + 0x88]
mov ecx, dword [eax + edx*4]
mov edx, dword [esi + 0x7c]
add edx, 3
mov dword [esi + 0x14], ecx
mov eax, edx
mov dword [esi + 0x7c], edx
cmp eax, 0x1e
jle 0x40230d
mov dword [esi + 0x7c], 0x1e
mov ecx, esi
call fcn.00402110
mov edx, dword [esi + 0x90]
mov ebx, dword [esi + 0x40]
mov edi, eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 0x7c]
add eax, ebx
add eax, edx
cmp edi, eax
jge 0x40239c
mov edx, dword [esi]
push 3
mov ecx, esi
call dword [edx + 0x28]
mov eax, dword [esi + 0x90]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x40]
sub edi, ecx
sub edi, eax
mov dword [esi + 0x7c], edi
jmp 0x40239c
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x8c]
inc edi
mov eax, edi
mov dword [esi + 0x18], edi
cmp eax, ecx
jl 0x402370
mov edx, dword [esi]
push 4
mov ecx, esi
call dword [edx + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
cdq
idiv ecx
mov eax, dword [esi + 0x88]
mov ecx, dword [eax + edx*4]
xor eax, eax
mov dword [esi + 0x14], ecx
pop edi
pop esi
pop ebx
add esp, 8
ret
mov ecx, esi
call fcn.00402250
test eax, eax
jne 0x4023b4
mov edx, dword [esi]
push 2
mov ecx, esi
call dword [edx + 0x28]
xor ecx, ecx
xor eax, eax
mov cx, word [esi + 0x7c]
mov ax, word [esi + 0x78]
shl ecx, 0x10
or eax, ecx
pop edi
pop esi
pop ebx
add esp, 8
ret
mov ebx, dword [esi + 0x18]
mov edx, dword [esi]
inc ebx
push 0
mov ecx, esi
mov dword [esi + 0x18], ebx
call dword [edx + 0x4c]
test eax, eax
jne case.default.0x402287
mov eax, dword [esi + 0x18]
cdq
idiv dword [esi + 0x8c]
mov eax, dword [esi + 0x88]
mov ecx, dword [eax + edx*4]
xor eax, eax
mov dword [esi + 0x14], ecx
pop edi
pop esi
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0x44]
test eax, eax
jge 0x40242e
mov ecx, esi
call fcn.00409a50
mov edi, eax
sub edi, 0x4b
call fcn.004103e0
cdq
idiv edi
mov edi, dword [esi]
push 0x69
push 0x4b
push 0xffffffffffffff97
mov ecx, esi
push edx
call dword [edi + 0xc]
push 8
mov ecx, esi
mov dword [esi + 0x90], 0x41a050
call dword [edi + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
push 1
mov ecx, esi
call fcn.004021a0
mov edx, dword [esi + 0x3c]
mov edi, dword [esi + 0x78]
add edx, edi
cmp edx, eax
jge 0x40245e
call fcn.00404e60
test eax, eax
je 0x40245e
mov eax, dword [esi]
push 6
mov ecx, esi
call dword [eax + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
mov ecx, esi
call fcn.00409a50
cdq
idiv dword [esi + 0x78]
mov ecx, dword [esi + 0x18]
mov edi, eax
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp ecx, eax
jl 0x4025ce
call fcn.004103e0
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
mov edi, eax
mov eax, ecx
cdq
sar edi, 1
idiv edi
test edx, edx
jne 0x4025ce
push 0xa
mov ecx, esi
call fcn.00402210
test eax, eax
jne 0x4025ce
call fcn.004103e0
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
sub eax, 0
je 0x4025b9
jmp 0x40259d
mov ecx, esi
call fcn.00409a50
cmp dword [esi + 0x3c], eax
jle 0x402514
mov ecx, esi
call fcn.00409a50
mov edi, eax
sub edi, 0x4b
call fcn.004103e0
cdq
idiv edi
mov edi, dword [esi]
push 0x69
push 0x4b
push 0xffffffffffffff97
mov ecx, esi
push edx
call dword [edi + 0xc]
push 8
mov ecx, esi
mov dword [esi + 0x90], 0x41a050
call dword [edi + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
push 2
mov ecx, esi
call fcn.004021a0
mov edx, dword [esi + 0x44]
mov edi, dword [esi + 0x78]
add edx, edi
cmp edx, eax
jle 0x402544
call fcn.00404e60
test eax, eax
je 0x402544
mov eax, dword [esi]
push 5
mov ecx, esi
call dword [eax + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
mov ecx, esi
call fcn.00409a50
cdq
idiv dword [esi + 0x78]
mov ecx, dword [esi + 0x18]
mov edi, eax
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp ecx, eax
jl 0x4025ce
call fcn.004103e0
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
mov edi, eax
mov eax, ecx
cdq
sar edi, 1
idiv edi
test edx, edx
jne 0x4025ce
push 0xa
mov ecx, esi
call fcn.00402210
test eax, eax
jne 0x4025ce
call fcn.004103e0
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
sub eax, 0
je 0x4025b9
dec eax
jne case.default.0x402287
mov edx, dword [esi]
push 0x3ec
mov ecx, esi
call dword [edx + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
mov eax, dword [esi]
push 0x3eb
mov ecx, esi
call dword [eax + 0x28]
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 8
ret
mov ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0x88]
inc ebx
mov eax, ebx
mov dword [esi + 0x18], ebx
cdq
idiv dword [esi + 0x8c]
xor eax, eax
mov ax, word [esi + 0x7c]
shl eax, 0x10
mov edx, dword [ecx + edx*4]
xor ecx, ecx
mov cx, word [esi + 0x78]
mov dword [esi + 0x14], edx
or eax, ecx
pop edi
pop esi
pop ebx
add esp, 8
ret
mov edx, dword [esi + 0x18]
mov ebx, dword [sym.imp.USER32.dll_GetCursorPos]
inc edx
mov eax, edx
mov dword [esi + 0x18], edx
cdq
idiv dword [esi + 0x8c]
mov eax, dword [esi + 0x88]
mov ecx, dword [eax + edx*4]
lea edx, [esp + 0xc]
push edx
mov dword [esi + 0x14], ecx
call ebx
mov edx, dword [esi + 0x98]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
lea ecx, [esi + 0x98]
cmp edi, edx
jne 0x40264b
cmp eax, dword [esi + 0x9c]
je case.default.0x402287
sub edi, edx
mov edx, dword [esi + 0x9c]
sub eax, edx
push ecx
mov esi, eax
call ebx
mov eax, esi
and edi, 0xffff
and eax, 0xffff
shl eax, 0x10
or eax, edi
pop edi
pop esi
pop ebx
add esp, 8
ret
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret