// File: Luthaf[P]zeopp/voro++/src/./container.hh
// Function: voro::container_base::region_index(int, int, int, int, int, int, double&, double&, double&, int&)
inline int region_index(int ci,int cj,int ck,int ei,int ej,int ek,double &qx,double &qy,double &qz,int &disp) {
			if(xperiodic) {if(ci+ei<nx) {ei+=nx;qx=-(bx-ax);} else if(ci+ei>=(nx<<1)) {ei-=nx;qx=bx-ax;} else qx=0;}
			if(yperiodic) {if(cj+ej<ny) {ej+=ny;qy=-(by-ay);} else if(cj+ej>=(ny<<1)) {ej-=ny;qy=by-ay;} else qy=0;}
			if(zperiodic) {if(ck+ek<nz) {ek+=nz;qz=-(bz-az);} else if(ck+ek>=(nz<<1)) {ek-=nz;qz=bz-az;} else qz=0;}
			return disp+ei+nx*(ej+ny*ek);
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq 0x30(%rbp), %rax
movq 0x28(%rbp), %rax
movq 0x20(%rbp), %rax
movq 0x18(%rbp), %rax
movl 0x10(%rbp), %eax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movl %r9d, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
testb $0x1, 0xa8(%rax)
je 0x23709
movq -0x28(%rbp), %rcx
movl -0xc(%rbp), %eax
addl -0x18(%rbp), %eax
cmpl (%rcx), %eax
jge 0x236c6
movq -0x28(%rbp), %rax
movl (%rax), %ecx
addl -0x18(%rbp), %ecx
movl %ecx, -0x18(%rbp)
movsd 0x78(%rax), %xmm0
subsd 0x70(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x18(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x23707
movq -0x28(%rbp), %rcx
movl -0xc(%rbp), %eax
addl -0x18(%rbp), %eax
movl (%rcx), %ecx
shll %ecx
cmpl %ecx, %eax
jl 0x236fa
movq -0x28(%rbp), %rax
movl (%rax), %edx
movl -0x18(%rbp), %ecx
subl %edx, %ecx
movl %ecx, -0x18(%rbp)
movsd 0x78(%rax), %xmm0
subsd 0x70(%rax), %xmm0
movq 0x18(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x23705
movq 0x18(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0x23707
jmp 0x23709
movq -0x28(%rbp), %rax
testb $0x1, 0xa9(%rax)
je 0x237b2
movq -0x28(%rbp), %rcx
movl -0x10(%rbp), %eax
addl -0x1c(%rbp), %eax
cmpl 0x4(%rcx), %eax
jge 0x23767
movq -0x28(%rbp), %rax
movl 0x4(%rax), %ecx
addl -0x1c(%rbp), %ecx
movl %ecx, -0x1c(%rbp)
movsd 0x88(%rax), %xmm0
subsd 0x80(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x20(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x237b0
movq -0x28(%rbp), %rcx
movl -0x10(%rbp), %eax
addl -0x1c(%rbp), %eax
movl 0x4(%rcx), %ecx
shll %ecx
cmpl %ecx, %eax
jl 0x237a3
movq -0x28(%rbp), %rax
movl 0x4(%rax), %edx
movl -0x1c(%rbp), %ecx
subl %edx, %ecx
movl %ecx, -0x1c(%rbp)
movsd 0x88(%rax), %xmm0
subsd 0x80(%rax), %xmm0
movq 0x20(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x237ae
movq 0x20(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0x237b0
jmp 0x237b2
movq -0x28(%rbp), %rax
testb $0x1, 0xaa(%rax)
je 0x2385b
movq -0x28(%rbp), %rcx
movl -0x14(%rbp), %eax
addl 0x10(%rbp), %eax
cmpl 0x8(%rcx), %eax
jge 0x23810
movq -0x28(%rbp), %rax
movl 0x8(%rax), %ecx
addl 0x10(%rbp), %ecx
movl %ecx, 0x10(%rbp)
movsd 0x98(%rax), %xmm0
subsd 0x90(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x23859
movq -0x28(%rbp), %rcx
movl -0x14(%rbp), %eax
addl 0x10(%rbp), %eax
movl 0x8(%rcx), %ecx
shll %ecx
cmpl %ecx, %eax
jl 0x2384c
movq -0x28(%rbp), %rax
movl 0x8(%rax), %edx
movl 0x10(%rbp), %ecx
subl %edx, %ecx
movl %ecx, 0x10(%rbp)
movsd 0x98(%rax), %xmm0
subsd 0x90(%rax), %xmm0
movq 0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x23857
movq 0x28(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0x23859
jmp 0x2385b
movq -0x28(%rbp), %rsi
movq 0x30(%rbp), %rax
movl (%rax), %eax
addl -0x18(%rbp), %eax
movl (%rsi), %ecx
movl -0x1c(%rbp), %edx
movl 0x4(%rsi), %esi
imull 0x10(%rbp), %esi
addl %esi, %edx
imull %edx, %ecx
addl %ecx, %eax
popq %rbp
retq
nopl (%rax)