// File: /workspace/github_cpp_makefile_star2_O3/tomfunkhouser[P]gaps/apps/scninfo/scninfo.cpp
// Function: main
int main(int argc, char **argv)
{
  // Parse program arguments
  if (!ParseArgs(argc, argv)) exit(-1);

  // Read scene
  R3Scene *scene = ReadScene(input_scene_name);
  if (!scene) exit(-1);

  // Read categories
  if (input_categories_name) {
    if (!ReadCategories(scene, input_categories_name)) exit(-1);
  }

  // Print scene
  if (!PrintScene(scene)) exit(-1);

  // Return success 
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1098, %rsp           # imm = 0x1098
movq 0x11c4c4(%rip), %r12    # 0x1417c8
cmpl $0x2, %edi
jl 0x254be
movq %rsi, %rbp
movl %edi, %r13d
leaq 0x8(%rbp), %rbx
leal -0x1(%r13), %r15d
movq 0x8(%rbp), %r14
cmpb $0x2d, (%r14)
jne 0x25441
movq %r14, %rdi
leaq 0xb3ced(%rip), %rsi     # 0xd9020
callq 0x21cb0
testl %eax, %eax
je 0x25456
movq %r14, %rdi
leaq 0xb3cdd(%rip), %rsi     # 0xd9027
callq 0x21cb0
testl %eax, %eax
je 0x2545f
movq %r14, %rdi
leaq 0xb3cd0(%rip), %rsi     # 0xd9031
callq 0x21cb0
testl %eax, %eax
je 0x25468
movq %r14, %rdi
leaq 0xb3cc5(%rip), %rsi     # 0xd903d
callq 0x21cb0
testl %eax, %eax
je 0x25471
movq %r14, %rdi
leaq 0xb3cb6(%rip), %rsi     # 0xd9045
callq 0x21cb0
testl %eax, %eax
je 0x2547a
movq %r14, %rdi
leaq 0xb3ca6(%rip), %rsi     # 0xd904c
callq 0x21cb0
testl %eax, %eax
je 0x25483
movq %r14, %rdi
leaq 0xb3c99(%rip), %rsi     # 0xd9056
callq 0x21cb0
testl %eax, %eax
je 0x2548c
movq %r14, %rdi
leaq 0xb3c8d(%rip), %rsi     # 0xd9061
callq 0x21cb0
testl %eax, %eax
je 0x25495
movq %r14, %rdi
leaq 0xb3c89(%rip), %rsi     # 0xd9074
callq 0x21cb0
testl %eax, %eax
je 0x2549e
movq %r14, %rdi
leaq 0xb3c84(%rip), %rsi     # 0xd9086
callq 0x21cb0
testl %eax, %eax
je 0x254a7
movq %r14, %rdi
leaq 0xb3c85(%rip), %rsi     # 0xd909e
callq 0x21cb0
testl %eax, %eax
jne 0x25d3b
addl $-0x2, %r13d
movq 0x10(%rbp), %rax
addq $0x10, %rbp
movq %rax, 0x11c397(%rip)    # 0x1417d0
movl %r13d, %r15d
movq %rbp, %rbx
jmp 0x254ae
testq %r12, %r12
jne 0x25d3b
movq %r14, 0x11c377(%rip)    # 0x1417c8
movq %r14, %r12
jmp 0x254ae
movb $0x1, 0x11c37b(%rip)    # 0x1417d8
jmp 0x254ae
movb $0x1, 0x11c376(%rip)    # 0x1417dc
jmp 0x254ae
movb $0x1, 0x11c371(%rip)    # 0x1417e0
jmp 0x254ae
movb $0x1, 0x11c36c(%rip)    # 0x1417e4
jmp 0x254ae
movb $0x1, 0x11c367(%rip)    # 0x1417e8
jmp 0x254ae
movb $0x1, 0x11c362(%rip)    # 0x1417ec
jmp 0x254ae
movb $0x1, 0x11c35d(%rip)    # 0x1417f0
jmp 0x254ae
movb $0x1, 0x11c358(%rip)    # 0x1417f4
jmp 0x254ae
movb $0x1, 0x11c353(%rip)    # 0x1417f8
jmp 0x254ae
movb $0x1, 0x11c34e(%rip)    # 0x1417fc
movq %rbx, %rbp
movl %r15d, %r13d
cmpl $0x1, %r15d
jg 0x25313
testq %r12, %r12
je 0x25d56
movl $0x160, %edi            # imm = 0x160
callq 0x21870
movq %rax, %rbx
movq %rax, %rdi
callq 0x26c98
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x27f88
testl %eax, %eax
je 0x25d66
cmpb $0x1, 0x11c2fc(%rip)    # 0x1417f4
jne 0x25502
movq %rbx, %rdi
callq 0x2745e
cmpb $0x1, 0x11c2f3(%rip)    # 0x1417fc
jne 0x25513
movq %rbx, %rdi
callq 0x276b4
cmpb $0x1, 0x11c2de(%rip)    # 0x1417f8
jne 0x25524
movq %rbx, %rdi
callq 0x2755c
movq 0x11c2a5(%rip), %rsi    # 0x1417d0
testq %rsi, %rsi
je 0x25540
movq %rbx, %rdi
callq 0x34dc2
testl %eax, %eax
je 0x25d7b
movq (%rbx), %rdi
callq 0x3aa4c
movq %rax, %r15
movq (%rbx), %rsi
leaq 0x78(%rsp), %r14
movq %r14, %rdi
callq 0x3ac0a
leaq 0xb407f(%rip), %rdi     # 0xd95e1
callq 0x21e50
movl 0x14(%rbx), %esi
leaq 0xb3b7f(%rip), %rdi     # 0xd90f0
xorl %eax, %eax
callq 0x21080
movl 0x24(%rbx), %esi
leaq 0xb3b7e(%rip), %rdi     # 0xd9100
xorl %eax, %eax
callq 0x21080
movl 0x34(%rbx), %esi
leaq 0xb3e70(%rip), %rdi     # 0xd9403
xorl %eax, %eax
callq 0x21080
movl 0x44(%rbx), %esi
leaq 0xb3b6d(%rip), %rdi     # 0xd9111
xorl %eax, %eax
callq 0x21080
movl 0x54(%rbx), %esi
leaq 0xb3b6c(%rip), %rdi     # 0xd9121
xorl %eax, %eax
callq 0x21080
movl 0x64(%rbx), %esi
leaq 0xb3b6e(%rip), %rdi     # 0xd9134
xorl %eax, %eax
callq 0x21080
movsd 0x78(%rbx), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x80(%rbx), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x88(%rbx), %xmm0
movsd %xmm0, 0x28(%rsp)
movq %rbx, 0x18(%rsp)
movq 0x18(%rsp), %rbx
addq $0xc0, %rbx
leaq 0x90(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x75010
movsd (%r12), %xmm0
movsd %xmm0, 0x40(%rsp)
leaq 0x60(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x75010
movsd 0x8(%r12), %xmm0
movsd %xmm0, 0x38(%rsp)
leaq 0x48(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movq 0x18(%rsp), %rbx
callq 0x75010
movsd 0x10(%r12), %xmm5
movsd 0xa8(%rbx), %xmm6
movsd 0xb0(%rbx), %xmm7
movsd 0xb8(%rbx), %xmm0
movsd 0xe0(%rbx), %xmm1
movsd %xmm1, 0x8(%rsp)
movsd %xmm0, (%rsp)
leaq 0xb3ac1(%rip), %rdi     # 0xd9150
movsd 0x20(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movsd 0x28(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movsd 0x38(%rsp), %xmm4
movb $0x8, %al
callq 0x21080
movsd 0x8(%r15), %xmm0
movsd 0x10(%r15), %xmm1
movsd 0x18(%r15), %xmm2
movsd 0x20(%r15), %xmm3
movsd 0x28(%r15), %xmm4
movsd 0x30(%r15), %xmm5
leaq 0xb3b64(%rip), %rdi     # 0xd9243
movb $0x6, %al
callq 0x21080
movsd (%r14), %xmm0
movsd 0x8(%r14), %xmm1
movsd 0x10(%r14), %xmm2
leaq 0xb3b2c(%rip), %rdi     # 0xd922a
movb $0x3, %al
callq 0x21080
movl $0xa, %edi
callq 0x21ca0
cmpb $0x0, 0x11c0c2(%rip)    # 0x1417d8
jne 0x2572a
testb $0x1, 0x11c0bd(%rip)    # 0x1417dc
jne 0x2572a
testb $0x1, 0x11c0b8(%rip)    # 0x1417e0
je 0x25740
leaq 0xb3eba(%rip), %rdi     # 0xd95eb
callq 0x21e50
movq (%rbx), %rdi
xorl %esi, %esi
callq 0x25d9d
cmpb $0x1, 0x11c09d(%rip)    # 0x1417e4
jne 0x2580f
leaq 0xb3ea1(%rip), %rdi     # 0xd95f5
callq 0x21e50
cmpl $0x0, 0x24(%rbx)
jle 0x2580f
leaq 0x90(%rsp), %r14
leaq 0xb3cbd(%rip), %r15     # 0xd942f
leaq 0xb3cc2(%rip), %r12     # 0xd943b
leaq 0xb3ccf(%rip), %r13     # 0xd944f
xorl %ebp, %ebp
movq 0x18(%rbx), %rax
movq (%rax,%rbp,8), %rbx
movl $0x1000, %edx           # imm = 0x1000
movq %r14, %rdi
xorl %esi, %esi
callq 0x21450
movq %r14, %rdi
callq 0x21350
movw $0x2020, 0x90(%rsp,%rax) # imm = 0x2020
movb $0x0, 0x92(%rsp,%rax)
movq %r15, %rdi
movq %r14, %rsi
movl %ebp, %edx
xorl %eax, %eax
callq 0x21080
movsd 0x28(%rbx), %xmm0
movq %r12, %rdi
movq %r14, %rsi
movb $0x1, %al
callq 0x21080
movsd 0x30(%rbx), %xmm0
movsd 0x38(%rbx), %xmm1
movsd 0x40(%rbx), %xmm2
movq 0x18(%rsp), %rbx
movq %r13, %rdi
movq %r14, %rsi
movb $0x3, %al
callq 0x21080
movl $0xa, %edi
callq 0x21ca0
incq %rbp
movslq 0x24(%rbx), %rax
cmpq %rax, %rbp
jl 0x25782
cmpb $0x1, 0x11bfd2(%rip)    # 0x1417e8
jne 0x25a64
leaq 0xb3ddd(%rip), %rdi     # 0xd9600
callq 0x21e50
cmpl $0x0, 0x44(%rbx)
jle 0x25a64
leaq 0x90(%rsp), %r14
leaq 0xb3c24(%rip), %r15     # 0xd9465
leaq 0xb3b97(%rip), %r13     # 0xd93df
xorl %ebp, %ebp
movq 0x38(%rbx), %rax
movq (%rax,%rbp,8), %r12
movl $0x1000, %edx           # imm = 0x1000
movq %r14, %rdi
xorl %esi, %esi
callq 0x21450
movq %r14, %rdi
callq 0x21350
movw $0x2020, 0x90(%rsp,%rax) # imm = 0x2020
movb $0x0, 0x92(%rsp,%rax)
movq 0x18(%r12), %rbx
movq %r15, %rdi
movq %r14, %rsi
movl %ebp, %edx
xorl %eax, %eax
callq 0x21080
testq %rbx, %rbx
je 0x258a4
movq %r13, %rdi
movq %r14, %rsi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x21080
movsd 0x20(%r12), %xmm0
movsd 0x28(%r12), %xmm1
xorpd %xmm3, %xmm3
ucomisd %xmm3, %xmm0
movsd 0x30(%r12), %xmm2
jne 0x258d5
jp 0x258d5
ucomisd %xmm3, %xmm1
jne 0x258d5
jp 0x258d5
ucomisd %xmm3, %xmm2
jne 0x258d5
jnp 0x258ea
leaq 0xb3b94(%rip), %rdi     # 0xd9470
movq %r14, %rsi
movb $0x3, %al
callq 0x21080
xorpd %xmm3, %xmm3
movsd 0x38(%r12), %xmm0
movsd 0x40(%r12), %xmm1
ucomisd %xmm3, %xmm0
movsd 0x48(%r12), %xmm2
movq 0x18(%rsp), %rbx
jne 0x2591c
jp 0x2591c
ucomisd %xmm3, %xmm1
jne 0x2591c
jp 0x2591c
ucomisd %xmm3, %xmm2
jne 0x2591c
jnp 0x25931
leaq 0xb3b65(%rip), %rdi     # 0xd9488
movq %r14, %rsi
movb $0x3, %al
callq 0x21080
xorpd %xmm3, %xmm3
movsd 0x50(%r12), %xmm0
movsd 0x58(%r12), %xmm1
ucomisd %xmm3, %xmm0
movsd 0x60(%r12), %xmm2
jne 0x2595e
jp 0x2595e
ucomisd %xmm3, %xmm1
jne 0x2595e
jp 0x2595e
ucomisd %xmm3, %xmm2
jne 0x2595e
jnp 0x25973
leaq 0xb3b3b(%rip), %rdi     # 0xd94a0
movq %r14, %rsi
movb $0x3, %al
callq 0x21080
xorpd %xmm3, %xmm3
movsd 0x68(%r12), %xmm0
movsd 0x70(%r12), %xmm1
ucomisd %xmm3, %xmm0
movsd 0x78(%r12), %xmm2
jne 0x259a0
jp 0x259a0
ucomisd %xmm3, %xmm1
jne 0x259a0
jp 0x259a0
ucomisd %xmm3, %xmm2
jne 0x259a0
jnp 0x259b5
leaq 0xb3b12(%rip), %rdi     # 0xd94b9
movq %r14, %rsi
movb $0x3, %al
callq 0x21080
xorpd %xmm3, %xmm3
movsd 0x80(%r12), %xmm0
movsd 0x88(%r12), %xmm1
ucomisd %xmm3, %xmm0
movsd 0x90(%r12), %xmm2
jne 0x259eb
jp 0x259eb
ucomisd %xmm3, %xmm1
jne 0x259eb
jp 0x259eb
ucomisd %xmm3, %xmm2
jne 0x259eb
jnp 0x25a00
leaq 0xb3ae4(%rip), %rdi     # 0xd94d6
movq %r14, %rsi
movb $0x3, %al
callq 0x21080
xorpd %xmm3, %xmm3
movsd 0x98(%r12), %xmm0
ucomisd %xmm3, %xmm0
jne 0x25a12
jnp 0x25a23
leaq 0xb3ad6(%rip), %rdi     # 0xd94ef
movq %r14, %rsi
movb $0x1, %al
callq 0x21080
movsd 0xa0(%r12), %xmm0
ucomisd 0xb35d3(%rip), %xmm0    # 0xd9008
jne 0x25a39
jnp 0x25a4a
leaq 0xb3ac3(%rip), %rdi     # 0xd9503
movq %r14, %rsi
movb $0x1, %al
callq 0x21080
movl $0xa, %edi
callq 0x21ca0
incq %rbp
movslq 0x44(%rbx), %rax
cmpq %rax, %rbp
jl 0x2584a
cmpb $0x1, 0x11bd81(%rip)    # 0x1417ec
jne 0x25baa
leaq 0xb3b92(%rip), %rdi     # 0xd960a
callq 0x21e50
cmpl $0x0, 0x54(%rbx)
jle 0x25baa
leaq 0x90(%rsp), %r14
xorl %r15d, %r15d
movq 0x48(%rbx), %rax
movq (%rax,%r15,8), %r12
movl $0x1000, %edx           # imm = 0x1000
movq %r14, %rdi
xorl %esi, %esi
callq 0x21450
movq %r14, %rbp
movq %r14, %rdi
callq 0x21350
movw $0x2020, 0x90(%rsp,%rax) # imm = 0x2020
movb $0x0, 0x92(%rsp,%rax)
movq 0x20(%r12), %rax
movl $0x0, %edx
movl $0x0, %ebx
movl $0x0, %ecx
testq %rax, %rax
je 0x25ae7
movl (%rax), %ebx
movl 0x4(%rax), %edx
movl 0x8(%rax), %ecx
movl %edx, 0x28(%rsp)
movl %ecx, 0x20(%rsp)
movq 0x10(%r12), %r13
movq 0x18(%r12), %rax
movq %rax, 0x30(%rsp)
leaq 0xb3a1c(%rip), %rdi     # 0xd9521
movq %rbp, %rsi
movl %r15d, %edx
xorl %eax, %eax
callq 0x21080
testq %r13, %r13
je 0x25b2b
leaq 0xb38c1(%rip), %rdi     # 0xd93df
movq %rbp, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0x21080
movl 0x8(%r12), %edx
leaq 0xb368d(%rip), %rdi     # 0xd91c4
movq %rbp, %rsi
xorl %eax, %eax
callq 0x21080
leaq 0xb39e7(%rip), %rdi     # 0xd952f
movq %rbp, %rsi
movl %ebx, %edx
movl 0x28(%rsp), %ecx
xorl %eax, %eax
callq 0x21080
leaq 0xb39e8(%rip), %rdi     # 0xd9547
movq %rbp, %rsi
movl 0x20(%rsp), %edx
xorl %eax, %eax
callq 0x21080
movq 0x30(%rsp), %rdx
testq %rdx, %rdx
movq %rbp, %r14
je 0x25b8b
leaq 0xb386d(%rip), %rdi     # 0xd93ee
movq %r14, %rsi
xorl %eax, %eax
callq 0x21080
movl $0xa, %edi
callq 0x21ca0
incq %r15
movq 0x18(%rsp), %rbx
movslq 0x54(%rbx), %rax
cmpq %rax, %r15
jl 0x25a92
cmpb $0x1, 0x11bc3f(%rip)    # 0x1417f0
jne 0x25d27
leaq 0xb3a59(%rip), %rdi     # 0xd9617
callq 0x21e50
cmpl $0x0, 0x34(%rbx)
jle 0x25d27
leaq 0x90(%rsp), %r13
xorl %ebp, %ebp
movq 0x28(%rbx), %rax
movq (%rax,%rbp,8), %rbx
movl $0x1000, %edx           # imm = 0x1000
movq %r13, %rdi
xorl %esi, %esi
callq 0x21450
movq %r13, %rdi
callq 0x21350
movw $0x2020, 0x90(%rsp,%rax) # imm = 0x2020
movb $0x0, 0x92(%rsp,%rax)
movq 0x18(%rbx), %r12
testq %r12, %r12
je 0x25c18
movq 0x18(%r12), %rax
jmp 0x25c1a
xorl %eax, %eax
movq 0x10(%rbx), %r15
movq 0x20(%rbx), %r14
testq %r14, %r14
movq %rax, 0x20(%rsp)
je 0x25c32
movq 0x10(%r14), %rbx
jmp 0x25c34
xorl %ebx, %ebx
leaq 0xb3922(%rip), %rdi     # 0xd955d
leaq 0x90(%rsp), %r13
movq %r13, %rsi
movl %ebp, %edx
xorl %eax, %eax
callq 0x21080
testq %r15, %r15
je 0x25c68
leaq 0xb3784(%rip), %rdi     # 0xd93df
movq %r13, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x21080
testq %r14, %r14
je 0x25c82
movl 0x8(%r14), %edx
leaq 0xb38f4(%rip), %rdi     # 0xd956c
movq %r13, %rsi
xorl %eax, %eax
callq 0x21080
testq %rbx, %rbx
je 0x25c9b
leaq 0xb38f6(%rip), %rdi     # 0xd9584
movq %r13, %rsi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x21080
testq %r12, %r12
je 0x25cb6
movl 0x10(%r12), %edx
leaq 0xb38ef(%rip), %rdi     # 0xd959b
movq %r13, %rsi
xorl %eax, %eax
callq 0x21080
movq 0x20(%rsp), %rdx
testq %rdx, %rdx
movq 0x18(%rsp), %rbx
je 0x25cd6
leaq 0xb38e4(%rip), %rdi     # 0xd95b0
movq %r13, %rsi
xorl %eax, %eax
callq 0x21080
testq %r12, %r12
jne 0x25ce4
leaq 0x11f6de(%rip), %r12    # 0x1453c0
jmp 0x25ce8
addq $0x38, %r12
movsd (%r12), %xmm0
movsd 0x8(%r12), %xmm1
movsd 0x10(%r12), %xmm2
leaq 0xb38c1(%rip), %rdi     # 0xd95c4
movq %r13, %rsi
movb $0x3, %al
callq 0x21080
movl $0xa, %edi
callq 0x21ca0
incq %rbp
movslq 0x34(%rbx), %rax
cmpq %rax, %rbp
jl 0x25bd7
xorl %eax, %eax
addq $0x1098, %rsp           # imm = 0x1098
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb3368(%rip), %rdi     # 0xd90aa
movq %r14, %rsi
xorl %eax, %eax
callq 0x884fa
movl $0x1, %edi
callq 0x21aa0
leaq 0xb336a(%rip), %rdi     # 0xd90c7
xorl %eax, %eax
callq 0x884fa
jmp 0x25d7b
movq %rbx, %rdi
callq 0x26e66
movl $0x160, %esi            # imm = 0x160
movq %rbx, %rdi
callq 0x21890
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x21aa0
movq %rbx, %rdi
movq %rax, %rbx
movl $0x160, %esi            # imm = 0x160
callq 0x21890
movq %rbx, %rdi
callq 0x22060