// File: /workspace/github_cpp_makefile_star2_O1/tomfunkhouser[P]gaps/pkgs/R3Surfels/R3SurfelScene.cpp
// Function: gaps::R3SurfelScene::~R3SurfelScene()
R3SurfelScene::
~R3SurfelScene(void)
{
  // Delete everything
  while (NFeatures() > 0) delete Feature(NFeatures()-1);
  while (NLabelAssignments() > 0) delete LabelAssignment(NLabelAssignments()-1);
  while (NObjectRelationships() > 0) delete ObjectRelationship(NObjectRelationships()-1);
  while (NLabelRelationships() > 0) delete LabelRelationship(NLabelRelationships()-1);
  while (NObjectProperties() > 0) delete ObjectProperty(NObjectProperties()-1);
  while (NLabelProperties() > 0) delete LabelProperty(NLabelProperties()-1);
  while (NLabels() > 0) delete Label(NLabels()-1);
  while (NObjects() > 0) delete Object(NObjects()-1);
  while (NScans() > 0) delete Scan(NScans()-1);
  while (NImages() > 0) delete Image(NImages()-1);
  
  // Delete tree
  if (tree) delete tree;
  
  // Delete filename
  if (filename) free(filename);

  // Delete rwaccess
  if (rwaccess) free(rwaccess);

  // Delete name
  if (name) free(name);

  // Delete comments
  for (int i = 0; i < comments.NEntries(); i++) free(comments[i]);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
leaq 0x116483(%rip), %rax    # 0x12edb0
movq %rax, (%rdi)
movl 0xac(%rdi), %eax
testl %eax, %eax
jle 0x18971
movq 0xa0(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x18953
movq (%rdi), %rax
callq *0x8(%rax)
movl 0xac(%rbx), %eax
jmp 0x18936
movq 0x70(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x18971
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x7c(%rbx), %eax
testl %eax, %eax
jg 0x1895b
jmp 0x18990
movq 0x50(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x18990
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x5c(%rbx), %eax
testl %eax, %eax
jg 0x1897a
jmp 0x189af
movq 0x60(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x189af
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x6c(%rbx), %eax
testl %eax, %eax
jg 0x18999
jmp 0x189ce
movq 0x30(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x189ce
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x3c(%rbx), %eax
testl %eax, %eax
jg 0x189b8
jmp 0x189ed
movq 0x40(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x189ed
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x4c(%rbx), %eax
testl %eax, %eax
jg 0x189d7
jmp 0x18a0c
movq 0x20(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x18a0c
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x2c(%rbx), %eax
testl %eax, %eax
jg 0x189f6
jmp 0x18a2b
movq 0x10(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x18a2b
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x1c(%rbx), %eax
testl %eax, %eax
jg 0x18a15
jmp 0x18a4d
movq 0x80(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x18a4d
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x8c(%rbx), %eax
testl %eax, %eax
jg 0x18a34
jmp 0x18a72
movq 0x90(%rbx), %rcx
movl %eax, %eax
movq -0x8(%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x18a72
movq (%rdi), %rax
callq *0x8(%rax)
movl 0x9c(%rbx), %eax
testl %eax, %eax
jg 0x18a59
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x18a8b
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x1c0(%rbx), %rdi
testq %rdi, %rdi
je 0x18a9c
callq 0x135e0
movq 0x1c8(%rbx), %rdi
testq %rdi, %rdi
je 0x18aad
callq 0x135e0
movq 0x1d0(%rbx), %rdi
testq %rdi, %rdi
je 0x18abe
callq 0x135e0
leaq 0x1d8(%rbx), %r14
cmpl $0x0, 0x1e4(%rbx)
jle 0x18af0
xorl %r15d, %r15d
movq 0x1d8(%rbx), %rax
movq (%rax,%r15,8), %rdi
callq 0x135e0
incq %r15
movslq 0x1e4(%rbx), %rax
cmpq %rax, %r15
jl 0x18ad1
movq %r14, %rdi
callq 0xaaf9e
leaq 0xb0(%rbx), %rdi
callq 0x70d14
leaq 0xa0(%rbx), %rdi
callq 0xaaf9e
leaq 0x90(%rbx), %rdi
callq 0xaaf9e
leaq 0x80(%rbx), %rdi
callq 0xaaf9e
leaq 0x70(%rbx), %rdi
callq 0xaaf9e
leaq 0x60(%rbx), %rdi
callq 0xaaf9e
leaq 0x50(%rbx), %rdi
callq 0xaaf9e
leaq 0x40(%rbx), %rdi
callq 0xaaf9e
leaq 0x30(%rbx), %rdi
callq 0xaaf9e
leaq 0x20(%rbx), %rdi
callq 0xaaf9e
addq $0x10, %rbx
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xaaf9e
nop