// File: Luthaf[P]zeopp/voro++/src/container.cc
// Function: voro::container_base::put_remap(int&, double&, double&, double&)
inline bool container_base::put_remap(int &ijk,double &x,double &y,double &z) {
	int l;

	ijk=step_int((x-ax)*xsp);
	if(xperiodic) {l=step_mod(ijk,nx);x+=boxx*(l-ijk);ijk=l;}
	else if(ijk<0||ijk>=nx) return false;

	int j=step_int((y-ay)*ysp);
	if(yperiodic) {l=step_mod(j,ny);y+=boxy*(l-j);j=l;}
	else if(j<0||j>=ny) return false;

	int k=step_int((z-az)*zsp);
	if(zperiodic) {l=step_mod(k,nz);z+=boxz*(l-k);k=l;}
	else if(k<0||k>=nz) return false;

	ijk+=nx*j+nxy*k;
	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x48(%rbp)
movq -0x20(%rbp), %rax
movsd (%rax), %xmm0
subsd 0x70(%rdi), %xmm0
mulsd 0x30(%rdi), %xmm0
callq 0x1f4a0
movl %eax, %edx
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
movl %edx, (%rcx)
testb $0x1, 0xa8(%rax)
je 0x1ea1b
movq -0x48(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %esi
movl (%rdi), %edx
callq 0x1f4e0
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, -0x34(%rbp)
movsd 0x18(%rax), %xmm0
movl -0x34(%rbp), %eax
movq -0x18(%rbp), %rcx
subl (%rcx), %eax
cvtsi2sd %eax, %xmm2
movq -0x20(%rbp), %rax
movsd (%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
movl -0x34(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
jmp 0x1ea3d
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jl 0x1ea32
movq -0x48(%rbp), %rcx
movq -0x18(%rbp), %rax
movl (%rax), %eax
cmpl (%rcx), %eax
jl 0x1ea3b
movb $0x0, -0x1(%rbp)
jmp 0x1eb79
jmp 0x1ea3d
movq -0x48(%rbp), %rdi
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
subsd 0x80(%rdi), %xmm0
mulsd 0x38(%rdi), %xmm0
callq 0x1f4a0
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, -0x38(%rbp)
testb $0x1, 0xa9(%rax)
je 0x1eab0
movq -0x48(%rbp), %rdi
movl -0x38(%rbp), %esi
movl 0x4(%rdi), %edx
callq 0x1f4e0
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, -0x34(%rbp)
movsd 0x20(%rax), %xmm0
movl -0x34(%rbp), %eax
subl -0x38(%rbp), %eax
cvtsi2sd %eax, %xmm2
movq -0x28(%rbp), %rax
movsd (%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
movl -0x34(%rbp), %eax
movl %eax, -0x38(%rbp)
jmp 0x1eacd
cmpl $0x0, -0x38(%rbp)
jl 0x1eac2
movq -0x48(%rbp), %rcx
movl -0x38(%rbp), %eax
cmpl 0x4(%rcx), %eax
jl 0x1eacb
movb $0x0, -0x1(%rbp)
jmp 0x1eb79
jmp 0x1eacd
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
subsd 0x90(%rdi), %xmm0
mulsd 0x40(%rdi), %xmm0
callq 0x1f4a0
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, -0x3c(%rbp)
testb $0x1, 0xaa(%rax)
je 0x1eb40
movq -0x48(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl 0x8(%rdi), %edx
callq 0x1f4e0
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, -0x34(%rbp)
movsd 0x28(%rax), %xmm0
movl -0x34(%rbp), %eax
subl -0x3c(%rbp), %eax
cvtsi2sd %eax, %xmm2
movq -0x30(%rbp), %rax
movsd (%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax)
movl -0x34(%rbp), %eax
movl %eax, -0x3c(%rbp)
jmp 0x1eb5a
cmpl $0x0, -0x3c(%rbp)
jl 0x1eb52
movq -0x48(%rbp), %rcx
movl -0x3c(%rbp), %eax
cmpl 0x8(%rcx), %eax
jl 0x1eb58
movb $0x0, -0x1(%rbp)
jmp 0x1eb79
jmp 0x1eb5a
movq -0x48(%rbp), %rax
movl (%rax), %ecx
imull -0x38(%rbp), %ecx
movl 0xc(%rax), %eax
imull -0x3c(%rbp), %eax
addl %eax, %ecx
movq -0x18(%rbp), %rax
addl (%rax), %ecx
movl %ecx, (%rax)
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop