// File: /workspace/github_cpp_makefile_star2_O1/WolfgangLechner[P]StructureAnalysis/molecular_system.cpp
// Function: CMolecularSystem::fillNeighborCells()
void CMolecularSystem::fillNeighborCells()
{
  int x,y,z;
  int noc;
  noc = this->parameter->noc;
  for (int ci = 0;ci<noc*noc*noc;ci++)
  {
    this->convertIndex(ci,x, y, z);
    neighborcells[ci].neighbors[0] = convertIndexToCell(x-1,y-1,z-1);
    neighborcells[ci].neighbors[1] = convertIndexToCell(x  ,y-1,z-1);
    neighborcells[ci].neighbors[2] = convertIndexToCell(x+1,y-1,z-1);

    neighborcells[ci].neighbors[3] = convertIndexToCell(x-1,y  ,z-1);
    neighborcells[ci].neighbors[4] = convertIndexToCell(x  ,y  ,z-1);
    neighborcells[ci].neighbors[5] = convertIndexToCell(x+1,y  ,z-1);

    neighborcells[ci].neighbors[6] = convertIndexToCell(x-1,y+1,z-1);
    neighborcells[ci].neighbors[7] = convertIndexToCell(x  ,y+1,z-1);
    neighborcells[ci].neighbors[8] = convertIndexToCell(x+1,y+1,z-1);

    neighborcells[ci].neighbors[9]  = convertIndexToCell(x-1,y-1,z);
    neighborcells[ci].neighbors[10] = convertIndexToCell(x  ,y-1,z);
    neighborcells[ci].neighbors[11] = convertIndexToCell(x+1,y-1,z);

    neighborcells[ci].neighbors[12] = convertIndexToCell(x-1,y  ,z);
    neighborcells[ci].neighbors[13] = convertIndexToCell(x+1,y  ,z);
    neighborcells[ci].neighbors[14] = convertIndexToCell(x-1,y+1,z);
    neighborcells[ci].neighbors[15] = convertIndexToCell(x  ,y+1,z);
    neighborcells[ci].neighbors[16] = convertIndexToCell(x+1,y+1,z);

    neighborcells[ci].neighbors[17] = convertIndexToCell(x-1,y-1,z+1);
    neighborcells[ci].neighbors[18] = convertIndexToCell(x  ,y-1,z+1);
    neighborcells[ci].neighbors[19] = convertIndexToCell(x+1,y-1,z+1);

    neighborcells[ci].neighbors[20] = convertIndexToCell(x-1,y  ,z+1);
    neighborcells[ci].neighbors[21] = convertIndexToCell(x  ,y  ,z+1);
    neighborcells[ci].neighbors[22] = convertIndexToCell(x+1,y  ,z+1);

    neighborcells[ci].neighbors[23] = convertIndexToCell(x-1,y+1,z+1);
    neighborcells[ci].neighbors[24] = convertIndexToCell(x  ,y+1,z+1);
    neighborcells[ci].neighbors[25] = convertIndexToCell(x+1,y+1,z+1);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq 0xb4e8c0(%rdi), %rbx
movl 0x3214(%rbx), %ecx
movl %ecx, %eax
imull %ecx, %eax
imull %ecx, %eax
testl %eax, %eax
jle 0x47db
movq 0x18(%rdi), %r14
movl %eax, %r15d
addq $0x64, %r14
xorl %ecx, %ecx
movl 0x3214(%rbx), %r11d
movl %ecx, %eax
cltd
idivl %r11d
movl %edx, %esi
cltd
movl %r11d, %edi
imull %r11d, %edi
idivl %r11d
movl %edx, %r8d
movl %ecx, %eax
xorl %edx, %edx
divl %edi
movl %eax, %edi
leal (%rsi,%r11), %eax
decl %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r8,%r11), %eax
decl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%rdi,%r11), %eax
decl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x64(%r14)
movl 0x3214(%rbx), %r12d
leal (%r12,%rsi), %eax
cltd
idivl %r12d
movl %edx, %r9d
leal (%r12,%r8), %eax
decl %eax
cltd
leal (%r12,%rdi), %r10d
decl %r10d
idivl %r12d
movl %edx, %r11d
movl %r10d, %eax
cltd
idivl %r12d
imull %r12d, %edx
addl %r11d, %edx
imull %r12d, %edx
addl %r9d, %edx
movl %edx, -0x60(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
incl %eax
cltd
leal (%r11,%r8), %r9d
decl %r9d
idivl %r11d
movl %edx, %r10d
movl %r9d, %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%rdi), %eax
decl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r9d, %edx
imull %r11d, %edx
addl %r10d, %edx
movl %edx, -0x5c(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
decl %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
decl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x58(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
decl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x54(%r14)
movl 0x3214(%rbx), %r12d
leal (%r12,%rsi), %eax
incl %eax
cltd
idivl %r12d
movl %edx, %r9d
leal (%r12,%r8), %eax
cltd
leal (%r12,%rdi), %r10d
decl %r10d
idivl %r12d
movl %edx, %r11d
movl %r10d, %eax
cltd
idivl %r12d
imull %r12d, %edx
addl %r11d, %edx
imull %r12d, %edx
addl %r9d, %edx
movl %edx, -0x50(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
decl %eax
cltd
leal (%r11,%r8), %r9d
incl %r9d
idivl %r11d
movl %edx, %r10d
movl %r9d, %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%rdi), %eax
decl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r9d, %edx
imull %r11d, %edx
addl %r10d, %edx
movl %edx, -0x4c(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
decl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x48(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
decl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x44(%r14)
movl 0x3214(%rbx), %r12d
leal (%r12,%rsi), %eax
decl %eax
cltd
idivl %r12d
movl %edx, %r9d
leal (%r12,%r8), %eax
decl %eax
cltd
leal (%r12,%rdi), %r10d
idivl %r12d
movl %edx, %r11d
movl %r10d, %eax
cltd
idivl %r12d
imull %r12d, %edx
addl %r11d, %edx
imull %r12d, %edx
addl %r9d, %edx
movl %edx, -0x40(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
cltd
leal (%r11,%r8), %r9d
decl %r9d
idivl %r11d
movl %edx, %r10d
movl %r9d, %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%rdi), %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r9d, %edx
imull %r11d, %edx
addl %r10d, %edx
movl %edx, -0x3c(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
decl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x38(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
decl %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x34(%r14)
movl 0x3214(%rbx), %r12d
leal (%r12,%rsi), %eax
incl %eax
cltd
idivl %r12d
movl %edx, %r9d
leal (%r12,%r8), %eax
cltd
leal (%r12,%rdi), %r10d
idivl %r12d
movl %edx, %r11d
movl %r10d, %eax
cltd
idivl %r12d
imull %r12d, %edx
addl %r11d, %edx
imull %r12d, %edx
addl %r9d, %edx
movl %edx, -0x30(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
decl %eax
cltd
leal (%r11,%r8), %r9d
incl %r9d
idivl %r11d
movl %edx, %r10d
movl %r9d, %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%rdi), %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r9d, %edx
imull %r11d, %edx
addl %r10d, %edx
movl %edx, -0x2c(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x28(%r14)
movl 0x3214(%rbx), %r12d
leal (%r12,%rsi), %eax
incl %eax
cltd
idivl %r12d
movl %edx, %r9d
leal (%r12,%r8), %eax
incl %eax
cltd
movl %edi, %r10d
addl %r12d, %r10d
idivl %r12d
movl %edx, %r11d
movl %r10d, %eax
cltd
idivl %r12d
imull %r12d, %edx
addl %r11d, %edx
imull %r12d, %edx
addl %r9d, %edx
movl %edx, -0x24(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
decl %eax
cltd
leal (%r11,%r8), %r9d
decl %r9d
idivl %r11d
movl %edx, %r10d
movl %r9d, %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%rdi), %eax
incl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r9d, %edx
imull %r11d, %edx
addl %r10d, %edx
movl %edx, -0x20(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
decl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
incl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x1c(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
decl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
incl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x18(%r14)
movl 0x3214(%rbx), %r12d
leal (%r12,%rsi), %eax
decl %eax
cltd
idivl %r12d
movl %edx, %r9d
leal (%r12,%r8), %eax
cltd
leal (%r12,%rdi), %r10d
incl %r10d
idivl %r12d
movl %edx, %r11d
movl %r10d, %eax
cltd
idivl %r12d
imull %r12d, %edx
addl %r11d, %edx
imull %r12d, %edx
addl %r9d, %edx
movl %edx, -0x14(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
cltd
leal (%r11,%r8), %r9d
idivl %r11d
movl %edx, %r10d
movl %r9d, %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%rdi), %eax
incl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r9d, %edx
imull %r11d, %edx
addl %r10d, %edx
movl %edx, -0x10(%r14)
movl 0x3214(%rbx), %r11d
leal (%r11,%rsi), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r9d
movl %r8d, %eax
addl %r11d, %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
incl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0xc(%r14)
movl 0x3214(%rbx), %r12d
leal (%r12,%rsi), %eax
decl %eax
cltd
idivl %r12d
movl %edx, %r9d
leal (%r12,%r8), %eax
incl %eax
cltd
leal (%r12,%rdi), %r10d
incl %r10d
idivl %r12d
movl %edx, %r11d
movl %r10d, %eax
cltd
idivl %r12d
imull %r12d, %edx
addl %r11d, %edx
imull %r12d, %edx
addl %r9d, %edx
movl %edx, -0x8(%r14)
movl 0x3214(%rbx), %r11d
movl %esi, %eax
addl %r11d, %eax
cltd
idivl %r11d
movl %edx, %r9d
leal (%r11,%r8), %eax
incl %eax
cltd
idivl %r11d
movl %edx, %r10d
leal (%r11,%rdi), %eax
incl %eax
cltd
idivl %r11d
imull %r11d, %edx
addl %r10d, %edx
imull %r11d, %edx
addl %r9d, %edx
movl %edx, -0x4(%r14)
movl 0x3214(%rbx), %r9d
leal (%r9,%rsi), %eax
incl %eax
cltd
idivl %r9d
movl %edx, %esi
leal (%r9,%r8), %eax
incl %eax
cltd
idivl %r9d
movl %edx, %r8d
leal (%r9,%rdi), %eax
incl %eax
cltd
idivl %r9d
imull %r9d, %edx
addl %r8d, %edx
imull %r9d, %edx
addl %esi, %edx
movl %edx, (%r14)
incq %rcx
addq $0x68, %r14
cmpq %rcx, %r15
jne 0x4179
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq