// File: Luthaf[P]zeopp/voro++/src/cell.cc
// Function: bool voro::voronoicell_base::nplane<voro::voronoicell>(voro::voronoicell&, double, double, double, double, int)
bool voronoicell_base::nplane(vc_class &vc,double x,double y,double z,double rsq,int p_id) {
	int i,j,lp=up,cp,qp,*dsp;
	int us=0,ls=0;
	unsigned int uw,lw;
	int *edp,*edd;stackp=ds;
	double u,l=0;up=0;

	// Initialize the safe testing routine
	px=x;py=y;pz=z;prsq=rsq;
	maskc+=4;
	if(maskc<4) reset_mask();

	uw=m_test(up,u);
	if(uw==2) {
		if(!search_downward(lw,lp,ls,us,l,u)) return false;
		if(lw==1) {up=lp;lp=-1;}
	} else if(uw==0) {
		if(!search_upward(uw,lp,ls,us,l,u)) return true;
		if(uw==1) lp=-1;
	} else {
		lp=-1;
	}

	// Set stack pointers
	stackp=ds;stackp2=ds2;stackp3=xse;

	// Store initial number of vertices
	int op=p;

	if(create_facet(vc,lp,ls,l,us,u,p_id)) return false;
	int k=0;int xtra=0;
	while(xse+k<stackp3) {
		lp=xse[k++];
		uw=m_test(lp,l);
		for(ls=0;ls<nu[lp];ls++) {
			up=ed[lp][ls];

			// Skip if this is a new vertex
			uw=m_test(up,u);
			if(up>=op) continue;

			if(uw==0) {
				if(u>-big_tol&&ed[up][nu[up]<<1]!=-1) {
					ed[up][nu[up]<<1]=-1;
					if(stackp3==stacke3) add_memory_xse();
					*(stackp3++)=up;
				}
			} else if(uw==1) {

				// This is a possible facet starting
				// from a vertex on the cutting plane
				if(create_facet(vc,-1,0,0,0,u,p_id)) return false;
			} else {

				// This is a new facet
				us=ed[lp][nu[lp]+ls];
				m_test(lp,l);
				if(create_facet(vc,lp,ls,l,us,u,p_id)) return false;
			}
		}
		xtra++;
	}

	// Reset back pointers on extra search stack
	for(dsp=xse;dsp<stackp3;dsp++) {
		j=*dsp;
		ed[j][nu[j]<<1]=j;
	}

	// Delete points: first, remove any duplicates
	dsp=ds;
	while(dsp<stackp) {
		j=*dsp;
		if(ed[j][nu[j]]!=-1) {
			ed[j][nu[j]]=-1;
			dsp++;
		} else *dsp=*(--stackp);
	}

	// Add the points in the auxiliary delete stack,
	// and reset their back pointers
	for(dsp=ds2;dsp<stackp2;dsp++) {
		j=*dsp;
		ed[j][nu[j]<<1]=j;
		if(ed[j][nu[j]]!=-1) {
			ed[j][nu[j]]=-1;
			if(stackp==stacke) add_memory_ds();
			*(stackp++)=j;
		}
	}

	// Scan connections and add in extras
	for(dsp=ds;dsp<stackp;dsp++) {
		cp=*dsp;
		for(edp=ed[cp];edp<ed[cp]+nu[cp];edp++) {
			qp=*edp;
			if(qp!=-1&&ed[qp][nu[qp]]!=-1) {
				if(stackp==stacke) {
					int dis=stackp-dsp;
					add_memory_ds();
					dsp=ds+dis;
				}
				*(stackp++)=qp;
				ed[qp][nu[qp]]=-1;
			}
		}
	}
	up=0;

	// Delete them from the array structure
	while(stackp>ds) {
		--p;
		while(ed[p][nu[p]]==-1) {
			j=nu[p];
			edp=ed[p];edd=(mep[j]+((j<<1)+1)*--mec[j]);
			while(edp<ed[p]+(j<<1)+1) *(edp++)=*(edd++);
			vc.n_set_aux2_copy(p,j);
			vc.n_copy_pointer(ed[p][(j<<1)],p);
			ed[ed[p][(j<<1)]]=ed[p];
			--p;
		}
		up=*(--stackp);
		if(up<p) {

			// Vertex management
			pts[(up<<2)]=pts[(p<<2)];
			pts[(up<<2)+1]=pts[(p<<2)+1];
			pts[(up<<2)+2]=pts[(p<<2)+2];

			// Memory management
			j=nu[up];
			edp=ed[up];edd=(mep[j]+((j<<1)+1)*--mec[j]);
			while(edp<ed[up]+(j<<1)+1) *(edp++)=*(edd++);
			vc.n_set_aux2_copy(up,j);
			vc.n_copy_pointer(ed[up][j<<1],up);
			vc.n_copy_pointer(up,p);
			ed[ed[up][j<<1]]=ed[up];

			// Edge management
			ed[up]=ed[p];
			nu[up]=nu[p];
			for(i=0;i<nu[up];i++) ed[ed[up][i]][ed[up][nu[up]+i]]=up;
			ed[up][nu[up]<<1]=up;
		} else up=p++;
	}

	// Check for any vertices of zero order
	if(*mec>0) voro_fatal_error("Zero order vertex formed",VOROPP_INTERNAL_ERROR);

	// Collapse any order 2 vertices and exit
	return collapse_order2(vc);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movsd %xmm0, -0x20(%rbp)
movsd %xmm1, -0x28(%rbp)
movsd %xmm2, -0x30(%rbp)
movsd %xmm3, -0x38(%rbp)
movl %edx, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
movl 0x20(%rax), %ecx
movl %ecx, -0x48(%rbp)
movl $0x0, -0x5c(%rbp)
movl $0x0, -0x60(%rbp)
movq 0x78(%rax), %rcx
movq %rcx, 0x80(%rax)
xorps %xmm0, %xmm0
movsd %xmm0, -0x88(%rbp)
movl $0x0, 0x20(%rax)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, 0xc8(%rax)
movsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xd0(%rax)
movsd -0x30(%rbp), %xmm0
movsd %xmm0, 0xd8(%rax)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, 0xe0(%rax)
movl 0xc0(%rax), %ecx
addl $0x4, %ecx
movl %ecx, 0xc0(%rax)
cmpl $0x4, 0xc0(%rax)
jae 0xec2e
movq -0xa0(%rbp), %rdi
callq 0xf800
movq -0xa0(%rbp), %rdi
movl 0x20(%rdi), %esi
leaq -0x80(%rbp), %rdx
callq 0xf860
movl %eax, -0x64(%rbp)
cmpl $0x2, -0x64(%rbp)
jne 0xec9e
movq -0xa0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x48(%rbp), %rdx
leaq -0x60(%rbp), %rcx
leaq -0x5c(%rbp), %r8
leaq -0x88(%rbp), %r9
leaq -0x80(%rbp), %rax
movq %rax, (%rsp)
callq 0xf8e0
testb $0x1, %al
jne 0xec82
movb $0x0, -0x1(%rbp)
jmp 0xf7ea
cmpl $0x1, -0x68(%rbp)
jne 0xec9c
movq -0xa0(%rbp), %rax
movl -0x48(%rbp), %ecx
movl %ecx, 0x20(%rax)
movl $0xffffffff, -0x48(%rbp) # imm = 0xFFFFFFFF
jmp 0xecf4
cmpl $0x0, -0x64(%rbp)
jne 0xeceb
movq -0xa0(%rbp), %rdi
leaq -0x64(%rbp), %rsi
leaq -0x48(%rbp), %rdx
leaq -0x60(%rbp), %rcx
leaq -0x5c(%rbp), %r8
leaq -0x88(%rbp), %r9
leaq -0x80(%rbp), %rax
movq %rax, (%rsp)
callq 0xfb30
testb $0x1, %al
jne 0xecdc
movb $0x1, -0x1(%rbp)
jmp 0xf7ea
cmpl $0x1, -0x64(%rbp)
jne 0xece9
movl $0xffffffff, -0x48(%rbp) # imm = 0xFFFFFFFF
jmp 0xecf2
movl $0xffffffff, -0x48(%rbp) # imm = 0xFFFFFFFF
jmp 0xecf4
movq -0xa0(%rbp), %rdi
movq 0x78(%rdi), %rax
movq %rax, 0x80(%rdi)
movq 0x90(%rdi), %rax
movq %rax, 0x98(%rdi)
movq 0xa8(%rdi), %rax
movq %rax, 0xb0(%rdi)
movl 0x1c(%rdi), %eax
movl %eax, -0x8c(%rbp)
movq -0x18(%rbp), %rsi
movl -0x48(%rbp), %edx
movl -0x60(%rbp), %ecx
movsd -0x88(%rbp), %xmm0
movl -0x5c(%rbp), %r8d
movsd -0x80(%rbp), %xmm1
movl -0x3c(%rbp), %r9d
callq 0xfdc0
testb $0x1, %al
jne 0xed55
jmp 0xed5e
movb $0x0, -0x1(%rbp)
jmp 0xf7ea
movl $0x0, -0x90(%rbp)
movl $0x0, -0x94(%rbp)
movq -0xa0(%rbp), %rcx
movq 0xa8(%rcx), %rax
movslq -0x90(%rbp), %rdx
shlq $0x2, %rdx
addq %rdx, %rax
cmpq 0xb0(%rcx), %rax
jae 0xefe6
movq -0xa0(%rbp), %rdi
movq 0xa8(%rdi), %rax
movl -0x90(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x90(%rbp)
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %esi
leaq -0x88(%rbp), %rdx
callq 0xf860
movl %eax, -0x64(%rbp)
movl $0x0, -0x60(%rbp)
movq -0xa0(%rbp), %rcx
movl -0x60(%rbp), %eax
movq 0x30(%rcx), %rcx
movslq -0x48(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0xefd2
movq -0xa0(%rbp), %rdi
movq 0x28(%rdi), %rax
movslq -0x48(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x60(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, 0x20(%rdi)
movl 0x20(%rdi), %esi
leaq -0x80(%rbp), %rdx
callq 0xf860
movl %eax, %ecx
movq -0xa0(%rbp), %rax
movl %ecx, -0x64(%rbp)
movl 0x20(%rax), %eax
cmpl -0x8c(%rbp), %eax
jl 0xee3c
jmp 0xefc4
cmpl $0x0, -0x64(%rbp)
jne 0xef0d
movq -0xa0(%rbp), %rax
movsd -0x80(%rbp), %xmm0
movsd 0x58(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xef08
movq -0xa0(%rbp), %rdx
movq 0x28(%rdx), %rax
movslq 0x20(%rdx), %rcx
movq (%rax,%rcx,8), %rax
movq 0x30(%rdx), %rcx
movslq 0x20(%rdx), %rdx
movl (%rcx,%rdx,4), %ecx
shll %ecx
movslq %ecx, %rcx
cmpl $-0x1, (%rax,%rcx,4)
je 0xef08
movq -0xa0(%rbp), %rcx
movq 0x28(%rcx), %rax
movslq 0x20(%rcx), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rdx
movslq 0x20(%rcx), %rsi
movl (%rdx,%rsi,4), %edx
shll %edx
movslq %edx, %rdx
movl $0xffffffff, (%rax,%rdx,4) # imm = 0xFFFFFFFF
movq 0xb0(%rcx), %rax
cmpq 0xb8(%rcx), %rax
jne 0xeee7
movq -0xa0(%rbp), %rdi
callq 0x6ec0
movq -0xa0(%rbp), %rdx
movl 0x20(%rdx), %ecx
movq 0xb0(%rdx), %rax
movq %rax, %rsi
addq $0x4, %rsi
movq %rsi, 0xb0(%rdx)
movl %ecx, (%rax)
jmp 0xefc2
cmpl $0x1, -0x64(%rbp)
jne 0xef4b
movq -0xa0(%rbp), %rdi
movq -0x18(%rbp), %rsi
movsd -0x80(%rbp), %xmm1
movl -0x3c(%rbp), %r9d
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
xorps %xmm0, %xmm0
movl %r8d, %ecx
callq 0xfdc0
testb $0x1, %al
jne 0xef40
jmp 0xef49
movb $0x0, -0x1(%rbp)
jmp 0xf7ea
jmp 0xefc0
movq -0xa0(%rbp), %rdi
movq 0x28(%rdi), %rax
movslq -0x48(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x30(%rdi), %rcx
movslq -0x48(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
addl -0x60(%rbp), %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x5c(%rbp)
movl -0x48(%rbp), %esi
leaq -0x88(%rbp), %rdx
callq 0xf860
movq -0xa0(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x48(%rbp), %edx
movl -0x60(%rbp), %ecx
movsd -0x88(%rbp), %xmm0
movl -0x5c(%rbp), %r8d
movsd -0x80(%rbp), %xmm1
movl -0x3c(%rbp), %r9d
callq 0xfdc0
testb $0x1, %al
jne 0xefb5
jmp 0xefbe
movb $0x0, -0x1(%rbp)
jmp 0xf7ea
jmp 0xefc0
jmp 0xefc2
jmp 0xefc4
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0xeddc
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0xed72
movq -0xa0(%rbp), %rax
movq 0xa8(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
cmpq 0xb0(%rcx), %rax
jae 0xf04c
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %edx
movq 0x28(%rcx), %rax
movslq -0x44(%rbp), %rsi
movq (%rax,%rsi,8), %rax
movq 0x30(%rcx), %rcx
movslq -0x44(%rbp), %rsi
movl (%rcx,%rsi,4), %ecx
shll %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x58(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x58(%rbp)
jmp 0xeff8
movq -0xa0(%rbp), %rax
movq 0x78(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
cmpq 0x80(%rcx), %rax
jae 0xf0ff
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x44(%rbp)
movq 0x28(%rcx), %rax
movslq -0x44(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rcx
movslq -0x44(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
cmpl $-0x1, (%rax,%rcx,4)
je 0xf0d5
movq -0xa0(%rbp), %rcx
movq 0x28(%rcx), %rax
movslq -0x44(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rcx
movslq -0x44(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movl $0xffffffff, (%rax,%rcx,4) # imm = 0xFFFFFFFF
movq -0x58(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x58(%rbp)
jmp 0xf0fa
movq -0xa0(%rbp), %rcx
movq 0x80(%rcx), %rax
movq %rax, %rdx
addq $-0x4, %rdx
movq %rdx, 0x80(%rcx)
movl -0x4(%rax), %ecx
movq -0x58(%rbp), %rax
movl %ecx, (%rax)
jmp 0xf05b
movq -0xa0(%rbp), %rax
movq 0x90(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
cmpq 0x98(%rcx), %rax
jae 0xf1ef
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %esi
movq 0x28(%rcx), %rax
movslq -0x44(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rdx
movslq -0x44(%rbp), %rdi
movl (%rdx,%rdi,4), %edx
shll %edx
movslq %edx, %rdx
movl %esi, (%rax,%rdx,4)
movq 0x28(%rcx), %rax
movslq -0x44(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rcx
movslq -0x44(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
cmpl $-0x1, (%rax,%rcx,4)
je 0xf1dc
movq -0xa0(%rbp), %rcx
movq 0x28(%rcx), %rax
movslq -0x44(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rdx
movslq -0x44(%rbp), %rsi
movslq (%rdx,%rsi,4), %rdx
movl $0xffffffff, (%rax,%rdx,4) # imm = 0xFFFFFFFF
movq 0x80(%rcx), %rax
cmpq 0x88(%rcx), %rax
jne 0xf1bb
movq -0xa0(%rbp), %rdi
callq 0x6ff0
movq -0xa0(%rbp), %rdx
movl -0x44(%rbp), %ecx
movq 0x80(%rdx), %rax
movq %rax, %rsi
addq $0x4, %rsi
movq %rsi, 0x80(%rdx)
movl %ecx, (%rax)
jmp 0xf1de
movq -0x58(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x58(%rbp)
jmp 0xf111
movq -0xa0(%rbp), %rax
movq 0x78(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0xa0(%rbp), %rcx
movq -0x58(%rbp), %rax
cmpq 0x80(%rcx), %rax
jae 0xf363
movq -0xa0(%rbp), %rax
movq -0x58(%rbp), %rcx
movl (%rcx), %ecx
movl %ecx, -0x4c(%rbp)
movq 0x28(%rax), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x70(%rbp)
movq -0xa0(%rbp), %rdx
movq -0x70(%rbp), %rax
movq 0x28(%rdx), %rcx
movslq -0x4c(%rbp), %rsi
movq (%rcx,%rsi,8), %rcx
movq 0x30(%rdx), %rdx
movslq -0x4c(%rbp), %rsi
movslq (%rdx,%rsi,4), %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0xf350
movq -0x70(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x50(%rbp)
cmpl $-0x1, -0x50(%rbp)
je 0xf33d
movq -0xa0(%rbp), %rcx
movq 0x28(%rcx), %rax
movslq -0x50(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rcx
movslq -0x50(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
cmpl $-0x1, (%rax,%rcx,4)
je 0xf33d
movq -0xa0(%rbp), %rcx
movq 0x80(%rcx), %rax
cmpq 0x88(%rcx), %rax
jne 0xf2fd
movq -0xa0(%rbp), %rdi
movq 0x80(%rdi), %rax
movq -0x58(%rbp), %rcx
subq %rcx, %rax
sarq $0x2, %rax
movl %eax, -0x98(%rbp)
callq 0x6ff0
movq -0xa0(%rbp), %rax
movq 0x78(%rax), %rax
movslq -0x98(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0xa0(%rbp), %rcx
movl -0x50(%rbp), %edx
movq 0x80(%rcx), %rax
movq %rax, %rsi
addq $0x4, %rsi
movq %rsi, 0x80(%rcx)
movl %edx, (%rax)
movq 0x28(%rcx), %rax
movslq -0x50(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rcx), %rcx
movslq -0x50(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movl $0xffffffff, (%rax,%rcx,4) # imm = 0xFFFFFFFF
jmp 0xf33f
movq -0x70(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x70(%rbp)
jmp 0xf236
jmp 0xf352
movq -0x58(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x58(%rbp)
jmp 0xf1fe
movq -0xa0(%rbp), %rax
movl $0x0, 0x20(%rax)
movq -0xa0(%rbp), %rcx
movq 0x80(%rcx), %rax
cmpq 0x78(%rcx), %rax
jbe 0xf7b4
movq -0xa0(%rbp), %rax
movl 0x1c(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x1c(%rax)
movq -0xa0(%rbp), %rdx
movq 0x28(%rdx), %rax
movslq 0x1c(%rdx), %rcx
movq (%rax,%rcx,8), %rax
movq 0x30(%rdx), %rcx
movslq 0x1c(%rdx), %rdx
movslq (%rcx,%rdx,4), %rcx
cmpl $-0x1, (%rax,%rcx,4)
jne 0xf4f1
movq -0xa0(%rbp), %rdx
movq 0x30(%rdx), %rax
movslq 0x1c(%rdx), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x44(%rbp)
movq 0x28(%rdx), %rax
movslq 0x1c(%rdx), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x70(%rbp)
movq 0x70(%rdx), %rax
movslq -0x44(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl -0x44(%rbp), %ecx
shll %ecx
addl $0x1, %ecx
movq 0x68(%rdx), %rsi
movslq -0x44(%rbp), %rdi
movl (%rsi,%rdi,4), %edx
addl $-0x1, %edx
movl %edx, (%rsi,%rdi,4)
imull %edx, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq -0xa0(%rbp), %rdx
movq -0x70(%rbp), %rax
movq 0x28(%rdx), %rcx
movslq 0x1c(%rdx), %rdx
movq (%rcx,%rdx,8), %rcx
movl -0x44(%rbp), %edx
shll %edx
movslq %edx, %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
addq $0x4, %rcx
cmpq %rcx, %rax
jae 0xf470
movq -0x78(%rbp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, -0x78(%rbp)
movl (%rax), %ecx
movq -0x70(%rbp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, -0x70(%rbp)
movl %ecx, (%rax)
jmp 0xf41d
movq -0xa0(%rbp), %rax
movq -0x18(%rbp), %rdi
movl 0x1c(%rax), %esi
movl -0x44(%rbp), %edx
callq 0x119a0
movq -0xa0(%rbp), %rax
movq -0x18(%rbp), %rdi
movq 0x28(%rax), %rcx
movslq 0x1c(%rax), %rdx
movq (%rcx,%rdx,8), %rcx
movl -0x44(%rbp), %edx
shll %edx
movslq %edx, %rdx
movl (%rcx,%rdx,4), %esi
movl 0x1c(%rax), %edx
callq 0x119b0
movq -0xa0(%rbp), %rax
movq 0x28(%rax), %rcx
movslq 0x1c(%rax), %rdx
movq (%rcx,%rdx,8), %rsi
movq 0x28(%rax), %rcx
movq 0x28(%rax), %rdx
movslq 0x1c(%rax), %rdi
movq (%rdx,%rdi,8), %rdx
movl -0x44(%rbp), %edi
shll %edi
movslq %edi, %rdi
movslq (%rdx,%rdi,4), %rdx
movq %rsi, (%rcx,%rdx,8)
movl 0x1c(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x1c(%rax)
jmp 0xf399
movq -0xa0(%rbp), %rcx
movq 0x80(%rcx), %rax
movq %rax, %rdx
addq $-0x4, %rdx
movq %rdx, 0x80(%rcx)
movl -0x4(%rax), %eax
movl %eax, 0x20(%rcx)
movl 0x20(%rcx), %eax
cmpl 0x1c(%rcx), %eax
jge 0xf79a
movq -0xa0(%rbp), %rdx
movq 0x40(%rdx), %rax
movl 0x1c(%rdx), %ecx
shll $0x2, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x40(%rdx), %rax
movl 0x20(%rdx), %ecx
shll $0x2, %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x40(%rdx), %rax
movl 0x1c(%rdx), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x40(%rdx), %rax
movl 0x20(%rdx), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x40(%rdx), %rax
movl 0x1c(%rdx), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x40(%rdx), %rax
movl 0x20(%rdx), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x30(%rdx), %rax
movslq 0x20(%rdx), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x44(%rbp)
movq 0x28(%rdx), %rax
movslq 0x20(%rdx), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x70(%rbp)
movq 0x70(%rdx), %rax
movslq -0x44(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl -0x44(%rbp), %ecx
shll %ecx
addl $0x1, %ecx
movq 0x68(%rdx), %rsi
movslq -0x44(%rbp), %rdi
movl (%rsi,%rdi,4), %edx
addl $-0x1, %edx
movl %edx, (%rsi,%rdi,4)
imull %edx, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq -0xa0(%rbp), %rdx
movq -0x70(%rbp), %rax
movq 0x28(%rdx), %rcx
movslq 0x20(%rdx), %rdx
movq (%rcx,%rdx,8), %rcx
movl -0x44(%rbp), %edx
shll %edx
movslq %edx, %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
addq $0x4, %rcx
cmpq %rcx, %rax
jae 0xf645
movq -0x78(%rbp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, -0x78(%rbp)
movl (%rax), %ecx
movq -0x70(%rbp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, -0x70(%rbp)
movl %ecx, (%rax)
jmp 0xf5f2
movq -0xa0(%rbp), %rax
movq -0x18(%rbp), %rdi
movl 0x20(%rax), %esi
movl -0x44(%rbp), %edx
callq 0x119a0
movq -0xa0(%rbp), %rax
movq -0x18(%rbp), %rdi
movq 0x28(%rax), %rcx
movslq 0x20(%rax), %rdx
movq (%rcx,%rdx,8), %rcx
movl -0x44(%rbp), %edx
shll %edx
movslq %edx, %rdx
movl (%rcx,%rdx,4), %esi
movl 0x20(%rax), %edx
callq 0x119b0
movq -0xa0(%rbp), %rax
movq -0x18(%rbp), %rdi
movl 0x20(%rax), %esi
movl 0x1c(%rax), %edx
callq 0x119b0
movq -0xa0(%rbp), %rcx
movq 0x28(%rcx), %rax
movslq 0x20(%rcx), %rdx
movq (%rax,%rdx,8), %rsi
movq 0x28(%rcx), %rax
movq 0x28(%rcx), %rdx
movslq 0x20(%rcx), %rdi
movq (%rdx,%rdi,8), %rdx
movl -0x44(%rbp), %edi
shll %edi
movslq %edi, %rdi
movslq (%rdx,%rdi,4), %rdx
movq %rsi, (%rax,%rdx,8)
movq 0x28(%rcx), %rax
movslq 0x1c(%rcx), %rdx
movq (%rax,%rdx,8), %rsi
movq 0x28(%rcx), %rax
movslq 0x20(%rcx), %rdx
movq %rsi, (%rax,%rdx,8)
movq 0x30(%rcx), %rax
movslq 0x1c(%rcx), %rdx
movl (%rax,%rdx,4), %edx
movq 0x30(%rcx), %rax
movslq 0x20(%rcx), %rcx
movl %edx, (%rax,%rcx,4)
movl $0x0, -0x40(%rbp)
movq -0xa0(%rbp), %rdx
movl -0x40(%rbp), %eax
movq 0x30(%rdx), %rcx
movslq 0x20(%rdx), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0xf76f
movq -0xa0(%rbp), %rdi
movl 0x20(%rdi), %edx
movq 0x28(%rdi), %rax
movq 0x28(%rdi), %rcx
movslq 0x20(%rdi), %rsi
movq (%rcx,%rsi,8), %rcx
movslq -0x40(%rbp), %rsi
movslq (%rcx,%rsi,4), %rcx
movq (%rax,%rcx,8), %rax
movq 0x28(%rdi), %rcx
movslq 0x20(%rdi), %rsi
movq (%rcx,%rsi,8), %rcx
movq 0x30(%rdi), %rsi
movslq 0x20(%rdi), %rdi
movl (%rsi,%rdi,4), %esi
addl -0x40(%rbp), %esi
movslq %esi, %rsi
movslq (%rcx,%rsi,4), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0xf703
movq -0xa0(%rbp), %rsi
movl 0x20(%rsi), %edx
movq 0x28(%rsi), %rax
movslq 0x20(%rsi), %rcx
movq (%rax,%rcx,8), %rax
movq 0x30(%rsi), %rcx
movslq 0x20(%rsi), %rsi
movl (%rcx,%rsi,4), %ecx
shll %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
jmp 0xf7af
movq -0xa0(%rbp), %rax
movl 0x1c(%rax), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x1c(%rax)
movl %ecx, 0x20(%rax)
jmp 0xf371
movq -0xa0(%rbp), %rax
movq 0x68(%rax), %rax
cmpl $0x0, (%rax)
jle 0xf7d5
leaq 0x480bf(%rip), %rdi     # 0x5788a
movl $0x3, %esi
callq 0x1b690
movq -0xa0(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x119c0
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax,%rax)