Function at 0x402330
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, 8
ja case.default.0x402347
jmp dword [eax*4 + 0x402900]
mov edx, dword [esi + 0x18]
inc edx
mov eax, edx
mov dword [esi + 0x18], edx
cmp eax, 0x28
jle case.default.0x402347
call fcn.0040fa33
cdq
mov ecx, 0x28
idiv ecx
test edx, edx
je case.default.0x402347
push 0
call fcn.004048a0
add esp, 4
cmp eax, 2
jge case.default.0x402347
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
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]
mov eax, 0x1e
mov dword [esi + 0x14], ecx
add edx, eax
mov ecx, edx
mov dword [esi + 0x7c], edx
cmp ecx, eax
jle 0x4023cc
mov dword [esi + 0x7c], eax
mov ecx, esi
call fcn.004021b0
mov edx, dword [esi + 0x90]
mov ebx, dword [esi + 0x7c]
mov edi, eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 0x40]
add eax, ebx
add eax, edx
cmp edi, eax
jge 0x40280c
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 0x40280c
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x8c]
inc edi
mov eax, edi
mov dword [esi + 0x18], edi
cmp eax, ecx
jl 0x40245d
call fcn.0040fa33
cdq
mov ecx, 0xa
idiv ecx
sub edx, 0
je 0x40276f
dec edx
je 0x40275a
dec edx
je 0x402745
mov edx, dword [esi]
push 0x3e9
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
cdq
idiv ecx
mov ecx, dword [esi + 0x88]
pop edi
xor eax, eax
mov edx, dword [ecx + edx*4]
mov dword [esi + 0x14], edx
pop esi
pop ebx
add esp, 8
ret
mov ecx, esi
call fcn.004022a0
test eax, eax
jne 0x40248e
mov eax, dword [esi]
push 2
mov ecx, esi
call dword [eax + 0x28]
jmp 0x40280c
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.0x402347
mov eax, dword [esi + 0x18]
cdq
idiv dword [esi + 0x8c]
mov eax, dword [esi + 0x88]
pop edi
mov ecx, dword [eax + edx*4]
xor eax, eax
mov dword [esi + 0x14], ecx
pop esi
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0x44]
mov ecx, esi
test eax, eax
jl 0x4028c3
call fcn.004022a0
test eax, eax
jne 0x4024f6
push 0xfffffffffffffff6
mov ecx, esi
call fcn.00402260
test eax, eax
jne 0x4024f6
mov eax, dword [esi]
push 2
mov ecx, esi
call dword [eax + 0x28]
jmp 0x40280c
push 1
mov ecx, esi
call fcn.004021f0
mov edx, dword [esi + 0x78]
mov edi, dword [esi + 0x3c]
add edx, edi
cmp edx, eax
jge 0x402526
call fcn.00404e80
test eax, eax
je 0x402526
mov eax, dword [esi]
push 9
mov ecx, esi
call dword [eax + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
call fcn.00404e70
push eax
call fcn.00404dd0
add esp, 4
test eax, eax
jne 0x402578
push eax
call fcn.00404e70
push eax
mov ecx, esi
call fcn.004022c0
cmp dword [esi + 0x3c], eax
jl 0x402803
push 0
call fcn.00404e70
push eax
mov ecx, esi
call fcn.004022c0
mov edx, dword [esi + 0x78]
mov edi, dword [esi + 0x3c]
add edx, edi
cmp edx, eax
jge 0x402578
mov eax, dword [esi]
push 9
mov ecx, esi
call dword [eax + 0x28]
jmp 0x40280c
mov ecx, esi
call fcn.0040a9e0
cdq
idiv dword [esi + 0x78]
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [esi + 0x18]
sar edi, 2
cmp eax, edi
jl 0x4025c0
call fcn.0040fa33
cdq
idiv edi
test edx, edx
jne 0x4025c0
push 0xa
mov ecx, esi
call fcn.00402260
test eax, eax
jne 0x4025c0
mov edx, dword [esi]
push 9
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
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]
pop edi
mov ecx, dword [eax + edx*4]
xor eax, eax
mov ax, word [esi + 0x7c]
xor edx, edx
mov dx, word [esi + 0x78]
mov dword [esi + 0x14], ecx
shl eax, 0x10
pop esi
or eax, edx
pop ebx
add esp, 8
ret
mov ecx, esi
call fcn.0040a9e0
mov ecx, dword [esi + 0x3c]
cmp ecx, eax
mov ecx, esi
jg 0x4028c3
call fcn.004022a0
test eax, eax
jne 0x40262c
push 0xfffffffffffffff6
mov ecx, esi
call fcn.00402260
test eax, eax
jne 0x40262c
mov eax, dword [esi]
push 2
mov ecx, esi
call dword [eax + 0x28]
jmp 0x40280c
push 2
mov ecx, esi
call fcn.004021f0
mov edx, dword [esi + 0x44]
mov edi, dword [esi + 0x78]
add edx, edi
cmp edx, eax
jle 0x40265c
call fcn.00404e80
test eax, eax
je 0x40265c
mov eax, dword [esi]
push 0xa
mov ecx, esi
call dword [eax + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
call fcn.00404e70
push eax
call fcn.00404dd0
add esp, 4
test eax, eax
jne 0x4026af
push 1
call fcn.00404e70
push eax
mov ecx, esi
call fcn.004022c0
cmp dword [esi + 0x44], eax
jg 0x402803
push 1
call fcn.00404e70
push eax
mov ecx, esi
call fcn.004022c0
mov edx, dword [esi + 0x44]
mov edi, dword [esi + 0x78]
add edx, edi
cmp edx, eax
jle 0x4026af
mov eax, dword [esi]
push 0xa
mov ecx, esi
call dword [eax + 0x28]
jmp 0x40280c
mov ecx, esi
call fcn.0040a9e0
cdq
idiv dword [esi + 0x78]
mov ecx, esi
mov edi, eax
call fcn.00402dc0
test eax, eax
je 0x4026dc
mov edx, dword [esi]
push 0x3fc
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
mov eax, edi
mov ecx, dword [esi + 0x18]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp ecx, eax
jl 0x402784
call fcn.0040fa33
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 0x402784
push 0xa
mov ecx, esi
call fcn.00402260
test eax, eax
jne 0x402784
call fcn.0040fa33
cdq
mov ecx, 0xa
idiv ecx
sub edx, 0
je 0x40276f
dec edx
je 0x40275a
dec edx
je 0x402745
mov edx, dword [esi]
push 0x3e9
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
mov eax, dword [esi]
push 0x3f5
mov ecx, esi
call dword [eax + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
mov edx, dword [esi]
push 0x3fd
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
mov eax, dword [esi]
push 0x3fe
mov ecx, esi
call dword [eax + 0x28]
pop edi
pop esi
xor eax, eax
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]
mov edx, dword [ecx + edx*4]
mov dword [esi + 0x14], edx
jmp 0x40280c
mov ecx, esi
call fcn.004022a0
test eax, eax
jne 0x4027ce
mov edx, dword [esi]
push 2
mov ecx, esi
call dword [edx + 0x28]
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 0x7c]
mov cx, word [esi + 0x78]
shl eax, 0x10
pop edi
pop esi
or eax, ecx
pop ebx
add esp, 8
ret
mov ecx, dword [esi + 0x18]
inc ecx
mov eax, ecx
mov dword [esi + 0x18], ecx
cdq
idiv dword [esi + 0x8c]
test edx, edx
jne 0x4024b0
mov edx, dword [esi]
push 6
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret
mov ecx, esi
call fcn.004022a0
test eax, eax
jne 0x402824
mov edx, dword [esi]
push 2
mov ecx, esi
call dword [edx + 0x28]
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 0x7c]
mov cx, word [esi + 0x78]
shl eax, 0x10
pop edi
pop esi
or eax, ecx
pop ebx
add esp, 8
ret
mov ecx, dword [esi + 0x18]
inc ecx
mov eax, ecx
mov dword [esi + 0x18], ecx
cdq
idiv dword [esi + 0x8c]
test edx, edx
jne 0x4024b0
mov edx, dword [esi]
push 5
mov ecx, esi
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
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 0x40289b
push ebp
mov ebp, dword [esi + 0x9c]
cmp eax, ebp
pop ebp
je case.default.0x402347
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
call fcn.0040a9e0
mov edi, eax
sub edi, 0x4b
call fcn.0040fa33
cdq
idiv edi
mov eax, dword [esi]
push 0x69
push 0x4b
push 0xffffffffffffff97
mov ecx, esi
push edx
call dword [eax + 0xc]
mov edx, dword [esi]
push 8
mov ecx, esi
mov dword [esi + 0x90], 0x41904c
call dword [edx + 0x28]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 8
ret