// File: /workspace/github_cpp_makefile_star2_O2/tomfunkhouser[P]gaps/pkgs/R3Shapes/R3Mesh.cpp
// Function: gaps::R3Mesh::CreateBox(gaps::R3Box const&)
void R3Mesh::
CreateBox(const R3Box& box)
{
  // Create box 
  R3MeshVertex *v1 = CreateVertex(box.Corner(RN_NNP_OCTANT));
  R3MeshVertex *v2 = CreateVertex(box.Corner(RN_PNP_OCTANT));
  R3MeshVertex *v3 = CreateVertex(box.Corner(RN_NPP_OCTANT));
  R3MeshVertex *v4 = CreateVertex(box.Corner(RN_PPP_OCTANT));
  R3MeshVertex *v5 = CreateVertex(box.Corner(RN_NPN_OCTANT));
  R3MeshVertex *v6 = CreateVertex(box.Corner(RN_PPN_OCTANT));
  R3MeshVertex *v7 = CreateVertex(box.Corner(RN_NNN_OCTANT));
  R3MeshVertex *v8 = CreateVertex(box.Corner(RN_PNN_OCTANT));
  CreateFace(v1, v2, v4);
  CreateFace(v1, v4, v3);
  CreateFace(v3, v4, v6);
  CreateFace(v3, v6, v5);
  CreateFace(v5, v6, v8);
  CreateFace(v5, v8, v7);
  CreateFace(v7, v8, v2);
  CreateFace(v7, v2, v1);
  CreateFace(v2, v8, v6);
  CreateFace(v2, v6, v4);
  CreateFace(v7, v1, v3);
  CreateFace(v7, v3, v5);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x28(%rsp), %r15
pushq $0x1
popq %rdx
movq %r15, %rdi
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, 0x20(%rsp)
leaq 0x28(%rsp), %r15
pushq $0x5
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r12
movq %rax, 0x40(%rsp)
leaq 0x28(%rsp), %r15
pushq $0x3
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, 0x18(%rsp)
leaq 0x28(%rsp), %r13
pushq $0x7
popq %rdx
movq %r13, %rdi
movq %r14, %rsi
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, 0x8(%rsp)
leaq 0x28(%rsp), %r13
pushq $0x2
popq %rdx
movq %r13, %rdi
movq %r14, %rsi
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, 0x10(%rsp)
leaq 0x28(%rsp), %r13
pushq $0x6
popq %rdx
movq %r13, %rdi
movq %r14, %rsi
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rbp
leaq 0x28(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r13
leaq 0x28(%rsp), %r15
pushq $0x4
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x24db6
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
movq 0x20(%rsp), %r15
movq %r15, %rsi
movq %r12, %rdx
movq 0x8(%rsp), %r12
movq %r12, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq 0x18(%rsp), %r15
movq %r15, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rbp, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
movq %rbp, %rdx
movq 0x10(%rsp), %r15
movq %r15, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
movq %rbp, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
movq %r14, %rdx
movq 0x40(%rsp), %r12
movq %r12, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq 0x20(%rsp), %r15
movq %r15, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
movq %rbp, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r12, %rsi
movq %rbp, %rdx
movq 0x8(%rsp), %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
movq %r15, %rdx
movq 0x18(%rsp), %r14
movq %r14, %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movq %r13, %rsi
movq %r14, %rdx
movq 0x10(%rsp), %rcx
xorl %r8d, %r8d
callq *0x48(%rax)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop