// File: /workspace/github_cpp_makefile_star2_O3/tomfunkhouser[P]gaps/apps/sflinfo/sflinfo.cpp
// Function: main
static int 
ParseArgs(int argc, char **argv)
{
  // Check number of program arguments
  if (argc < 3) {
    printf("Usage: sflinfo scenefile databasefile [options]\n");
    return 0;
  }

  // File names are first three arguments
  input_scene_name = argv[1];
  input_database_name = argv[2];

  // Parse arguments
  argc -= 3; argv += 3;
  while (argc > 0) {
    if (!strcmp(*argv, "-v")) { print_labels = 1; print_objects = 1; }
    else if (!strcmp(*argv, "-comments")) { print_comments = 1; }
    else if (!strcmp(*argv, "-features")) { print_features = 1; }
    else if (!strcmp(*argv, "-objects")) { print_objects = 1; }
    else if (!strcmp(*argv, "-labels")) { print_labels = 1; }
    else if (!strcmp(*argv, "-label_list")) { print_label_list = 1; }
    else if (!strcmp(*argv, "-properties")) { print_object_properties = print_label_properties = 1; }
    else if (!strcmp(*argv, "-object_properties")) { print_object_properties = 1; }
    else if (!strcmp(*argv, "-label_properties")) { print_label_properties = 1; }
    else if (!strcmp(*argv, "-object_relationships")) { print_object_relationships = 1; }
    else if (!strcmp(*argv, "-label_relationships")) { print_label_relationships = 1; }
    else if (!strcmp(*argv, "-assignments")) { print_label_assignments = 1; }
    else if (!strcmp(*argv, "-assignment_counts")) { print_label_assignment_counts = 1; }
    else if (!strcmp(*argv, "-tree")) { print_tree = 1; }
    else if (!strcmp(*argv, "-nodes")) { print_nodes = 1; }
    else if (!strcmp(*argv, "-database")) { print_database = 1; }
    else if (!strcmp(*argv, "-blocks")) { print_blocks = 1; }
    else if (!strcmp(*argv, "-surfels")) { print_surfels = 1; }
    else if (!strcmp(*argv, "-scans")) { print_scans = 1; }
    else if (!strcmp(*argv, "-images")) { print_images = 1; }
    else if (!strcmp(*argv, "-query")) { argc--; argv++; query_name = *argv; }
    else if (!strcmp(*argv, "-accuracy")) { argc--; argv++; accuracy_arff_name = *argv; }
    else { RNFail("Invalid program argument: %s", *argv); exit(1); }
    argv++; argc--;
  }

  // Return OK status 
  return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
cmpl $0x3, %edi
jl 0x1601a
movq %rsi, %r15
movq 0x8(%rsi), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsi), %rax
movq %rax, 0x8(%rsp)
je 0x15fab
movl %edi, %r12d
addq $0x18, %r15
addl $-0x3, %r12d
leaq 0xc9390(%rip), %r13     # 0xdf030
leaq 0xc9393(%rip), %rbp     # 0xdf03a
leaq 0xc9396(%rip), %rbx     # 0xdf044
movq (%r15), %r14
cmpb $0x2d, (%r14)
jne 0x15cc9
cmpb $0x76, 0x1(%r14)
jne 0x15cc9
cmpb $0x0, 0x2(%r14)
je 0x15ed0
movq %r14, %rdi
movq %r13, %rsi
callq 0x13720
testl %eax, %eax
je 0x15eac
movq %r14, %rdi
movq %rbp, %rsi
callq 0x13720
testl %eax, %eax
je 0x15eb8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x13720
testl %eax, %eax
je 0x15ec4
movq %r14, %rdi
leaq 0xc9341(%rip), %rsi     # 0xdf04d
callq 0x13720
testl %eax, %eax
je 0x15ee3
movq %r14, %rdi
leaq 0xc9332(%rip), %rsi     # 0xdf055
callq 0x13720
testl %eax, %eax
je 0x15eef
movq %r14, %rdi
leaq 0xc9327(%rip), %rsi     # 0xdf061
callq 0x13720
testl %eax, %eax
je 0x15efb
movq %r14, %rdi
leaq 0xc931c(%rip), %rsi     # 0xdf06d
callq 0x13720
testl %eax, %eax
je 0x15f0e
movq %r14, %rdi
leaq 0xc9318(%rip), %rsi     # 0xdf080
callq 0x13720
testl %eax, %eax
je 0x15f17
movq %r14, %rdi
leaq 0xc9313(%rip), %rsi     # 0xdf092
callq 0x13720
testl %eax, %eax
je 0x15f20
movq %r14, %rdi
leaq 0xc9312(%rip), %rsi     # 0xdf0a8
callq 0x13720
testl %eax, %eax
je 0x15f29
movq %r14, %rdi
leaq 0xc9310(%rip), %rsi     # 0xdf0bd
callq 0x13720
testl %eax, %eax
je 0x15f32
movq %r14, %rdi
leaq 0xc9306(%rip), %rsi     # 0xdf0ca
callq 0x13720
testl %eax, %eax
je 0x15f3b
movq %r14, %rdi
leaq 0xc9302(%rip), %rsi     # 0xdf0dd
callq 0x13720
testl %eax, %eax
je 0x15f44
movq %r14, %rdi
leaq 0xc92f1(%rip), %rsi     # 0xdf0e3
callq 0x13720
testl %eax, %eax
je 0x15f4d
movq %r14, %rdi
leaq 0xc92e1(%rip), %rsi     # 0xdf0ea
callq 0x13720
testl %eax, %eax
je 0x15f56
movq %r14, %rdi
leaq 0xc92d4(%rip), %rsi     # 0xdf0f4
callq 0x13720
testl %eax, %eax
je 0x15f5f
movq %r14, %rdi
leaq 0xc92c5(%rip), %rsi     # 0xdf0fc
callq 0x13720
testl %eax, %eax
je 0x15f68
movq %r14, %rdi
leaq 0xc92b7(%rip), %rsi     # 0xdf105
callq 0x13720
testl %eax, %eax
je 0x15f71
movq %r14, %rdi
leaq 0xc92a7(%rip), %rsi     # 0xdf10c
callq 0x13720
testl %eax, %eax
je 0x15f7a
movq %r14, %rdi
leaq 0xc9298(%rip), %rsi     # 0xdf114
callq 0x13720
testl %eax, %eax
je 0x15f83
movq %r14, %rdi
leaq 0xc9288(%rip), %rsi     # 0xdf11b
callq 0x13720
testl %eax, %eax
jne 0x1603b
decl %r12d
addq $0x8, %r15
jmp 0x15f95
movb $0x1, 0x120ddd(%rip)    # 0x136c90
jmp 0x15f95
movb $0x1, 0x120dd5(%rip)    # 0x136c94
jmp 0x15f95
movb $0x1, 0x120dc1(%rip)    # 0x136c8c
jmp 0x15f95
movb $0x1, %al
movb %al, 0x120db0(%rip)     # 0x136c88
movb %al, 0x120dae(%rip)     # 0x136c8c
jmp 0x15f95
movb $0x1, 0x120d9e(%rip)    # 0x136c88
jmp 0x15f95
movb $0x1, 0x120da2(%rip)    # 0x136c98
jmp 0x15f95
movb $0x1, %al
movb %al, 0x120d99(%rip)     # 0x136c9c
movb %al, 0x120d97(%rip)     # 0x136ca0
jmp 0x15f95
movb $0x1, 0x120d8b(%rip)    # 0x136ca0
jmp 0x15f95
movb $0x1, 0x120d7e(%rip)    # 0x136c9c
jmp 0x15f95
movb $0x1, 0x120d7d(%rip)    # 0x136ca4
jmp 0x15f95
movb $0x1, 0x120d78(%rip)    # 0x136ca8
jmp 0x15f95
movb $0x1, 0x120d73(%rip)    # 0x136cac
jmp 0x15f95
movb $0x1, 0x120d6e(%rip)    # 0x136cb0
jmp 0x15f95
movb $0x1, 0x120d69(%rip)    # 0x136cb4
jmp 0x15f95
movb $0x1, 0x120d64(%rip)    # 0x136cb8
jmp 0x15f95
movb $0x1, 0x120d5f(%rip)    # 0x136cbc
jmp 0x15f95
movb $0x1, 0x120d5a(%rip)    # 0x136cc0
jmp 0x15f95
movb $0x1, 0x120d55(%rip)    # 0x136cc4
jmp 0x15f95
movb $0x1, 0x120d50(%rip)    # 0x136cc8
jmp 0x15f95
movb $0x1, 0x120d4b(%rip)    # 0x136ccc
jmp 0x15f95
decl %r12d
movq 0x8(%r15), %rax
addq $0x8, %r15
movq %rax, 0x120d3b(%rip)    # 0x136cd0
addq $0x8, %r15
leal -0x1(%r12), %eax
cmpl $0x1, %r12d
movl %eax, %r12d
jg 0x15cae
movl $0x1f0, %edi            # imm = 0x1F0
callq 0x134e0
movq %rax, %rbx
movq %rax, %rdi
xorl %esi, %esi
callq 0x26244
movq (%rbx), %rax
leaq 0xd53c7(%rip), %rcx     # 0xeb393
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rcx, %r8
callq *0xe8(%rax)
testl %eax, %eax
je 0x16028
movq %rbx, %rdi
callq 0x1606e
movq (%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
callq *0xf8(%rax)
testl %eax, %eax
je 0x16031
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc9b29(%rip), %rdi     # 0xdfb4a
callq 0x137c0
jmp 0x16031
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x135f0
leaq 0xc90e3(%rip), %rdi     # 0xdf125
movq %r14, %rsi
xorl %eax, %eax
callq 0xaec56
movl $0x1, %edi
callq 0x135f0
movq %rax, %r14
movl $0x1f0, %esi            # imm = 0x1F0
movq %rbx, %rdi
callq 0x134f0
movq %r14, %rdi
callq 0x138b0