// File: icemiliang[P]vot/src/vot/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 0x593d0
movl %eax, %edx
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
movl %edx, (%rcx)
testb $0x1, 0xa0(%rax)
je 0x5887b
movq -0x48(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %esi
movl (%rdi), %edx
callq 0x59410
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 0x5889d
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jl 0x58892
movq -0x48(%rbp), %rcx
movq -0x18(%rbp), %rax
movl (%rax), %eax
cmpl (%rcx), %eax
jl 0x5889b
movb $0x0, -0x1(%rbp)
jmp 0x589d9
jmp 0x5889d
movq -0x48(%rbp), %rdi
movq -0x28(%rbp), %rax
movsd (%rax), %xmm0
subsd 0x80(%rdi), %xmm0
mulsd 0x38(%rdi), %xmm0
callq 0x593d0
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, -0x38(%rbp)
testb $0x1, 0xa1(%rax)
je 0x58910
movq -0x48(%rbp), %rdi
movl -0x38(%rbp), %esi
movl 0x4(%rdi), %edx
callq 0x59410
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 0x5892d
cmpl $0x0, -0x38(%rbp)
jl 0x58922
movq -0x48(%rbp), %rcx
movl -0x38(%rbp), %eax
cmpl 0x4(%rcx), %eax
jl 0x5892b
movb $0x0, -0x1(%rbp)
jmp 0x589d9
jmp 0x5892d
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
subsd 0x90(%rdi), %xmm0
mulsd 0x40(%rdi), %xmm0
callq 0x593d0
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, -0x3c(%rbp)
testb $0x1, 0xa2(%rax)
je 0x589a0
movq -0x48(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl 0x8(%rdi), %edx
callq 0x59410
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 0x589ba
cmpl $0x0, -0x3c(%rbp)
jl 0x589b2
movq -0x48(%rbp), %rcx
movl -0x3c(%rbp), %eax
cmpl 0x8(%rcx), %eax
jl 0x589b8
movb $0x0, -0x1(%rbp)
jmp 0x589d9
jmp 0x589ba
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