// File: Luthaf[P]zeopp/v_network.cc
// Function: voronoi_network::search_previous_rect(double, double, double, int&, int&, int&, int&, int&)
bool voronoi_network::search_previous_rect(double x,double y,double z,int &ijk,int &q,int &ci,int &cj,int &ck) {	
	int k=step_int(z*zsp);
	if(k<0||k>=nz) {
		ck=step_div(k,nz);
		z-=ck*bz;y-=ck*byz;x-=ck*bxz;k-=ck*nz;
	} else ck=0;

	int j=step_int(y*ysp);
	if(j<0||j>=ny) {
		cj=step_div(j,ny);
		y-=cj*by;x-=cj*bxy;j-=cj*ny;
	} else cj=0;

	ijk=step_int(x*xsp);
	if(ijk<0||ijk>=nx) {
		ci=step_div(ijk,nx);
		x-=ci*bx;ijk-=ci*nx;
	} else ci=0;

	ijk+=nx*(j+ny*k);double *pp(pts[ijk]);
	for(q=0;q<ptsc[ijk];q++,pp+=4)
		if(fabs(*pp-x)<net_tol&&fabs(pp[1]-y)<net_tol&&fabs(pp[2]-z)<net_tol) return true;
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movsd %xmm0, -0x18(%rbp)
movsd %xmm1, -0x20(%rbp)
movsd %xmm2, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movq %rcx, -0x40(%rbp)
movq %r8, -0x48(%rbp)
movq %r9, -0x50(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x68(%rbp)
movsd -0x28(%rbp), %xmm0
mulsd 0x50(%rdi), %xmm0
callq 0xe5370
movl %eax, -0x54(%rbp)
cmpl $0x0, -0x54(%rbp)
jl 0xe4f4f
movq -0x68(%rbp), %rcx
movl -0x54(%rbp), %eax
cmpl 0x38(%rcx), %eax
jl 0xe5020
movq -0x68(%rbp), %rdi
movl -0x54(%rbp), %esi
movl 0x38(%rdi), %edx
callq 0xe53b0
movl %eax, %edx
movq -0x68(%rbp), %rax
movq -0x50(%rbp), %rcx
movl %edx, (%rcx)
movq -0x50(%rbp), %rcx
cvtsi2sdl (%rcx), %xmm0
movsd 0x28(%rax), %xmm2
movsd -0x28(%rbp), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x28(%rbp)
movq -0x50(%rbp), %rcx
cvtsi2sdl (%rcx), %xmm0
movsd 0x20(%rax), %xmm2
movsd -0x20(%rbp), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movq -0x50(%rbp), %rcx
cvtsi2sdl (%rcx), %xmm0
movsd 0x18(%rax), %xmm2
movsd -0x18(%rbp), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movq -0x50(%rbp), %rcx
movl (%rcx), %ecx
imull 0x38(%rax), %ecx
movl -0x54(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x54(%rbp)
jmp 0xe502a
movq -0x50(%rbp), %rax
movl $0x0, (%rax)
movq -0x68(%rbp), %rdi
movsd -0x20(%rbp), %xmm0
mulsd 0x48(%rdi), %xmm0
callq 0xe5370
movl %eax, -0x58(%rbp)
cmpl $0x0, -0x58(%rbp)
jl 0xe5056
movq -0x68(%rbp), %rcx
movl -0x58(%rbp), %eax
cmpl 0x34(%rcx), %eax
jl 0xe50f1
movq -0x68(%rbp), %rdi
movl -0x58(%rbp), %esi
movl 0x34(%rdi), %edx
callq 0xe53b0
movl %eax, %edx
movq -0x68(%rbp), %rax
movq -0x48(%rbp), %rcx
movl %edx, (%rcx)
movq -0x48(%rbp), %rcx
cvtsi2sdl (%rcx), %xmm0
movsd 0x10(%rax), %xmm2
movsd -0x20(%rbp), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movq -0x48(%rbp), %rcx
cvtsi2sdl (%rcx), %xmm0
movsd 0x8(%rax), %xmm2
movsd -0x18(%rbp), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movq -0x48(%rbp), %rcx
movl (%rcx), %ecx
imull 0x34(%rax), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
jmp 0xe50fb
movq -0x48(%rbp), %rax
movl $0x0, (%rax)
movq -0x68(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
mulsd 0x40(%rdi), %xmm0
callq 0xe5370
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movq -0x30(%rbp), %rax
cmpl $0x0, (%rax)
jl 0xe512e
movq -0x68(%rbp), %rcx
movq -0x30(%rbp), %rax
movl (%rax), %eax
cmpl 0x30(%rcx), %eax
jl 0xe5197
movq -0x68(%rbp), %rdi
movq -0x30(%rbp), %rax
movl (%rax), %esi
movl 0x30(%rdi), %edx
callq 0xe53b0
movl %eax, %edx
movq -0x68(%rbp), %rax
movq -0x40(%rbp), %rcx
movl %edx, (%rcx)
movq -0x40(%rbp), %rcx
cvtsi2sdl (%rcx), %xmm0
movsd (%rax), %xmm2
movsd -0x18(%rbp), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movq -0x40(%rbp), %rcx
movl (%rcx), %edx
imull 0x30(%rax), %edx
movq -0x30(%rbp), %rax
movl (%rax), %ecx
subl %edx, %ecx
movl %ecx, (%rax)
jmp 0xe51a1
movq -0x40(%rbp), %rax
movl $0x0, (%rax)
movq -0x68(%rbp), %rax
movl 0x30(%rax), %edx
movl -0x58(%rbp), %ecx
movl 0x34(%rax), %esi
imull -0x54(%rbp), %esi
addl %esi, %ecx
imull %ecx, %edx
movq -0x30(%rbp), %rcx
addl (%rcx), %edx
movl %edx, (%rcx)
movq 0x60(%rax), %rax
movq -0x30(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x60(%rbp)
movq -0x38(%rbp), %rax
movl $0x0, (%rax)
movq -0x68(%rbp), %rcx
movq -0x38(%rbp), %rax
movl (%rax), %eax
movq 0x70(%rcx), %rcx
movq -0x30(%rbp), %rdx
movslq (%rdx), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0xe5295
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
movsd (%rcx), %xmm1
subsd -0x18(%rbp), %xmm1
movaps 0x10ce6e(%rip), %xmm0   # 0x1f2080
pand %xmm0, %xmm1
movsd 0x58(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xe5277
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
movsd 0x8(%rcx), %xmm1
subsd -0x20(%rbp), %xmm1
movaps 0x10ce46(%rip), %xmm0   # 0x1f2080
pand %xmm0, %xmm1
movsd 0x58(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xe5277
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rcx
movsd 0x10(%rcx), %xmm1
subsd -0x28(%rbp), %xmm1
movaps 0x10ce1e(%rip), %xmm0   # 0x1f2080
pand %xmm0, %xmm1
movsd 0x58(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xe5277
movb $0x1, -0x1(%rbp)
jmp 0xe5299
jmp 0xe5279
movq -0x38(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x60(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x60(%rbp)
jmp 0xe51dc
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop