// File: /workspace/github_cpp_makefile_star2_O1/BartMassey[P]ancient-raytracer/render.cc
// Function: main
int main( int argc, char **argv ) {
  char *imgtype = (char *)"-ppm";
  int x, y;

  object *scene = generate();
  if( argc == 4 && argv[1][1] == '-' ) {
    imgtype = argv[1];
    argv++;
    argc--;
  }
  if( argc == 3 && (x = atoi( argv[1] )) && (y = atoi( argv[2] )) ) {
    render( scene, imgtype, x, y );
    // all done
    return 0;
  }
  fprintf( stderr, "usage: render [-oldppm|-ppm] x y\n" );
  return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x258, %rsp            # imm = 0x258
movq %rsi, %r15
movl %edi, %ebp
callq 0x7650
movq %rax, %r14
leaq 0x686d(%rip), %rax      # 0x9040
cmpl $0x4, %ebp
jne 0x27f4
movq 0x8(%r15), %r12
movl $0x4, %ebp
cmpb $0x2d, 0x1(%r12)
jne 0x27f4
addq $0x8, %r15
movl $0x3, %ebp
jmp 0x27f7
movq %rax, %r12
cmpl $0x3, %ebp
jne 0x2c85
movq 0x8(%r15), %rdi
callq 0x2160
movl %eax, 0xc(%rsp)
testl %eax, %eax
je 0x2c85
movq 0x10(%r15), %rdi
callq 0x2160
movl %eax, 0x8(%rsp)
testl %eax, %eax
je 0x2c85
leaq 0xa127(%rip), %rax      # 0xc958
leaq 0x210(%rsp), %rbx
movq %rax, (%rbx)
leaq 0xa005(%rip), %r15      # 0xc848
movq %r15, 0x8(%rbx)
movl $0x3, %ebp
movl %ebp, 0x10(%rbx)
movabsq $-0x3f78c31cbef8c31d, %rax # imm = 0xC0873CE341073CE3
movq %rax, 0x14(%rbx)
xorl %eax, %eax
movl %eax, 0x1c(%rbx)
movq %r15, 0x28(%rbx)
movl %ebp, 0x30(%rbx)
movabsq $0x3fa000003fa00000, %rcx # imm = 0x3FA000003FA00000
movq %rcx, 0x34(%rbx)
movl $0x3f933333, 0x3c(%rbx) # imm = 0x3F933333
leaq 0xb4(%rsp), %rcx
movq %r15, -0xc(%rcx)
movl %ebp, -0x4(%rcx)
movq $0x40873ce3, (%rcx)     # imm = 0x40873CE3
movl %eax, 0x8(%rcx)
leaq 0x178(%rsp), %rdi
movss 0x675d(%rip), %xmm0     # 0x9004
movl $0x4, %esi
callq 0x48f8
leaq 0x158(%rsp), %rax
movq %r15, (%rax)
movl %ebp, 0x8(%rax)
movabsq $0x3e4ccccd3e4ccccd, %rcx # imm = 0x3E4CCCCD3E4CCCCD
movq %rcx, 0xc(%rax)
movl $0x3e4ccccd, 0x14(%rax) # imm = 0x3E4CCCCD
leaq 0xa8(%rsp), %rcx
leaq 0x110(%rsp), %r15
movq %rcx, (%r15)
movq %rbx, 0x8(%r15)
movq %r14, 0x10(%r15)
movq %rax, 0x18(%r15)
movl $0xa, 0x20(%r15)
movq (%r14), %rax
movq %r14, %rdi
movq %r15, %rsi
callq *(%rax)
movq (%r14), %rax
movq %r14, %rdi
callq *0x30(%rax)
movq %rax, %r14
testq %rax, %rax
jne 0x28fb
leaq 0x6902(%rip), %rsi      # 0x9220
movq %r12, %rdi
callq 0x2140
testl %eax, %eax
leaq 0x9f19(%rip), %rbp      # 0xc848
je 0x2970
leaq 0x6708(%rip), %rsi      # 0x9040
movq %r12, %rdi
callq 0x2140
testl %eax, %eax
jne 0x2cb0
movl $0x28, %edi
callq 0x20f0
leaq 0x68cf(%rip), %rsi      # 0x9228
movq %rax, 0x10(%rsp)
movq %rax, %rdi
movl 0xc(%rsp), %edx
movl 0x8(%rsp), %ecx
callq 0x688c
jmp 0x2996
movl $0x28, %edi
callq 0x20f0
leaq 0x68a7(%rip), %rsi      # 0x9228
movq %rax, 0x10(%rsp)
movq %rax, %rdi
movl 0xc(%rsp), %edx
movl 0x8(%rsp), %ecx
callq 0x6ac8
cmpl $0x0, 0x8(%rsp)
jle 0x2c5a
movl 0x8(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, 0x78(%rsp)
xorps %xmm0, %xmm0
cvtsi2sdl 0xc(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
leaq 0x178(%rsp), %r14
leaq 0x30(%rsp), %r13
leaq 0xa150(%rip), %r15      # 0xcb28
addq $0x10, %r15
movq %rax, 0x28(%rsp)
decl %eax
movl %eax, 0x1c(%rsp)
cmpl $0x0, 0xc(%rsp)
jle 0x2c37
xorps %xmm0, %xmm0
cvtsi2sdl 0x1c(%rsp), %xmm0
mulsd 0x660d(%rip), %xmm0     # 0x9010
divsd 0x78(%rsp), %xmm0
addsd 0x6607(%rip), %xmm0     # 0x9018
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x24(%rsp)
movl 0x8(%rsp), %eax
subl 0x28(%rsp), %eax
movl %eax, 0x20(%rsp)
xorl %r12d, %r12d
xorps %xmm0, %xmm0
cvtsi2sd %r12d, %xmm0
mulsd 0x65d6(%rip), %xmm0     # 0x9010
divsd 0x80(%rsp), %xmm0
addsd 0x65cd(%rip), %xmm0     # 0x9018
cvtsd2ss %xmm0, %xmm0
movq %rbp, 0x88(%rsp)
movl $0x3, 0x90(%rsp)
movss 0x24(%rsp), %xmm1
movss %xmm1, 0x94(%rsp)
movss %xmm0, 0x98(%rsp)
movl $0x41200000, 0x9c(%rsp) # imm = 0x41200000
leaq 0x94(%rsp), %rcx
movl 0x8(%rcx), %eax
movl %eax, 0x38(%rsp)
movq (%rcx), %rax
movq %rax, 0x30(%rsp)
movl $0x3f800000, 0x3c(%rsp) # imm = 0x3F800000
xorl %ebp, %ebp
movq 0x178(%rsp), %rax
movq %r14, %rdi
movl %ebp, %esi
movq %r13, %rdx
callq *0x20(%rax)
movss %xmm0, 0x94(%rsp,%rbp,4)
incq %rbp
cmpq $0x3, %rbp
jne 0x2aa6
movq %r15, 0x30(%rsp)
leaq 0x9d71(%rip), %rbp      # 0xc848
movq %rbp, 0x38(%rsp)
movslq 0xb0(%rsp), %rdx
movl %edx, 0x40(%rsp)
testq %rdx, %rdx
jle 0x2b03
shlq $0x2, %rdx
leaq 0x44(%rsp), %rdi
leaq 0xb4(%rsp), %rsi
callq 0x20a0
movq %rbp, 0x58(%rsp)
movl $0x3, 0x60(%rsp)
leaq 0x94(%rsp), %rdx
movl 0x8(%rdx), %eax
leaq 0x64(%rsp), %rcx
movl %eax, 0x8(%rcx)
movq (%rdx), %rax
movq %rax, (%rcx)
xorps %xmm0, %xmm0
movl $0xd, %eax
movss 0x30(%rsp,%rax,4), %xmm1
mulss %xmm1, %xmm1
addss %xmm1, %xmm0
incq %rax
cmpq $0x10, %rax
jne 0x2b31
ucomiss 0x64bd(%rip), %xmm0     # 0x900c
jb 0x2b57
sqrtss %xmm0, %xmm0
jmp 0x2b5c
callq 0x21c0
xorps %xmm1, %xmm1
cvtss2sd %xmm0, %xmm1
ucomisd 0x64b5(%rip), %xmm1     # 0x9020
jbe 0x2c91
movss 0x648f(%rip), %xmm1     # 0x9008
divss %xmm0, %xmm1
movq 0x58(%rsp), %rax
leaq 0x58(%rsp), %rdi
movaps %xmm1, %xmm0
callq *0x70(%rax)
movq %r15, 0xc8(%rsp)
movq %rbp, 0xd0(%rsp)
movslq 0x40(%rsp), %rdx
movl %edx, 0xd8(%rsp)
testq %rdx, %rdx
jle 0x2bc4
shlq $0x2, %rdx
leaq 0xdc(%rsp), %rdi
leaq 0x44(%rsp), %rsi
callq 0x20a0
movq %rbp, 0xf0(%rsp)
movslq 0x60(%rsp), %rdx
movl %edx, 0xf8(%rsp)
testq %rdx, %rdx
jle 0x2bf3
shlq $0x2, %rdx
leaq 0xfc(%rsp), %rdi
leaq 0x64(%rsp), %rsi
callq 0x20a0
leaq 0x138(%rsp), %rbx
movq %rbx, %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x110(%rsp), %rdx
xorl %ecx, %ecx
callq 0x233c
movq 0x10(%rsp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
movl 0x20(%rsp), %edx
movq %rbx, %rcx
callq *(%rax)
incl %r12d
cmpl 0xc(%rsp), %r12d
jne 0x2a2a
movl 0x8(%rsp), %esi
movq 0x28(%rsp), %rbx
subl %ebx, %esi
movq 0x10(%rsp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
cmpl $0x1, %ebx
movl 0x1c(%rsp), %eax
jg 0x29dc
movq 0x10(%rsp), %rbx
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x20(%rax)
xorl %eax, %eax
addq $0x258, %rsp            # imm = 0x258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2200
movl $0x1, %eax
jmp 0x2c73
leaq 0x650b(%rip), %rdi      # 0x91a3
leaq 0x63cf(%rip), %rsi      # 0x906e
leaq 0x6506(%rip), %rcx      # 0x91ac
movl $0xc9, %edx
callq 0x2080
leaq 0x660c(%rip), %rdi      # 0x92c3
leaq 0x6575(%rip), %rsi      # 0x9233
leaq 0x6578(%rip), %rcx      # 0x923d
movl $0x51, %edx
callq 0x2080
jmp 0x2cd1
movq %rax, %rbx
movl $0x28, %esi
movq 0x10(%rsp), %rdi
callq 0x2100
jmp 0x2cee
jmp 0x2ceb
jmp 0x2ceb
jmp 0x2ceb
movq %rax, %rbx
movq %rbx, %rdi
callq 0x21a0