// File: /workspace/github_c_makefile_star2_O1/AlexCharlton[P]Hyperscene/src/camera.c
// Function: hpsRenderCamera
void hpsRenderCamera(HPScamera *camera){
    currentCamera = *camera; // Set current camera to this one
    HPScamera *c = &currentCamera;
    clearQueues();
    computePlanes(c);
    c->scene->partitionInterface->doVisible(c->scene->partitionStruct,
                                            c->planes, &addToQueue);
    setCameraSort(c);
    hpsPreRenderExtensions(c->scene);
    renderQueues(c);
    hpsPostRenderExtensions(c->scene);
    *camera = currentCamera; // Copy currentCamera back into camera
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x62e0(%rip), %rdi      # 0xf2c0
movl $0x1e8, %edx            # imm = 0x1E8
movq %rbx, %rsi
callq 0x4220
xorl %eax, %eax
movq %rax, 0x6542(%rip)      # 0xf538
movq %rax, 0x655b(%rip)      # 0xf558
movss 0x63bf(%rip), %xmm0     # 0xf3c4
movss 0x63ab(%rip), %xmm4     # 0xf3b8
movaps %xmm0, %xmm1
addss %xmm4, %xmm1
movss %xmm1, 0x642c(%rip)     # 0xf448
movss 0x63b0(%rip), %xmm1     # 0xf3d4
movss 0x639c(%rip), %xmm5     # 0xf3c8
movaps %xmm1, %xmm2
addss %xmm5, %xmm2
movss %xmm2, 0x6411(%rip)     # 0xf44c
movss 0x63a1(%rip), %xmm2     # 0xf3e4
movss 0x638d(%rip), %xmm6     # 0xf3d8
movaps %xmm2, %xmm3
addss %xmm6, %xmm3
movss %xmm3, 0x63f6(%rip)     # 0xf450
movss 0x6392(%rip), %xmm3     # 0xf3f4
movss 0x637e(%rip), %xmm7     # 0xf3e8
movaps %xmm3, %xmm8
addss %xmm7, %xmm8
movss %xmm8, 0x63d8(%rip)     # 0xf454
movaps %xmm0, %xmm8
subss %xmm4, %xmm8
movss %xmm8, 0x63aa(%rip)     # 0xf438
leaq 0x63a3(%rip), %rsi      # 0xf438
movaps %xmm1, %xmm4
subss %xmm5, %xmm4
movss %xmm4, 0x6398(%rip)     # 0xf43c
movaps %xmm2, %xmm4
subss %xmm6, %xmm4
movss %xmm4, 0x638d(%rip)     # 0xf440
movaps %xmm3, %xmm4
subss %xmm7, %xmm4
movss %xmm4, 0x6382(%rip)     # 0xf444
movss 0x62f2(%rip), %xmm4     # 0xf3bc
movaps %xmm0, %xmm5
addss %xmm4, %xmm5
movss %xmm5, 0x638f(%rip)     # 0xf468
movss 0x62eb(%rip), %xmm5     # 0xf3cc
movaps %xmm1, %xmm6
addss %xmm5, %xmm6
movss %xmm6, 0x637c(%rip)     # 0xf46c
movss 0x62e4(%rip), %xmm6     # 0xf3dc
movaps %xmm2, %xmm7
addss %xmm6, %xmm7
movss %xmm7, 0x6369(%rip)     # 0xf470
movss 0x62dd(%rip), %xmm7     # 0xf3ec
movaps %xmm3, %xmm8
addss %xmm7, %xmm8
movss %xmm8, 0x6353(%rip)     # 0xf474
movaps %xmm0, %xmm8
subss %xmm4, %xmm8
movss %xmm8, 0x6325(%rip)     # 0xf458
movaps %xmm1, %xmm4
subss %xmm5, %xmm4
movss %xmm4, 0x631a(%rip)     # 0xf45c
movaps %xmm2, %xmm4
subss %xmm6, %xmm4
movss %xmm4, 0x630f(%rip)     # 0xf460
movaps %xmm3, %xmm4
subss %xmm7, %xmm4
movss %xmm4, 0x6304(%rip)     # 0xf464
movss 0x6258(%rip), %xmm4     # 0xf3c0
movaps %xmm0, %xmm5
addss %xmm4, %xmm5
movss %xmm5, 0x6301(%rip)     # 0xf478
movss 0x6251(%rip), %xmm5     # 0xf3d0
movaps %xmm1, %xmm6
addss %xmm5, %xmm6
movss %xmm6, 0x62ee(%rip)     # 0xf47c
movss 0x624a(%rip), %xmm6     # 0xf3e0
movaps %xmm2, %xmm7
addss %xmm6, %xmm7
movss %xmm7, 0x62db(%rip)     # 0xf480
movss 0x6243(%rip), %xmm7     # 0xf3f0
movaps %xmm3, %xmm8
addss %xmm7, %xmm8
movss %xmm8, 0x62c5(%rip)     # 0xf484
subss %xmm4, %xmm0
movss %xmm0, 0x62bd(%rip)     # 0xf488
subss %xmm5, %xmm1
movss %xmm1, 0x62b5(%rip)     # 0xf48c
subss %xmm6, %xmm2
movss %xmm2, 0x62ad(%rip)     # 0xf490
subss %xmm7, %xmm3
movss %xmm3, 0x62a5(%rip)     # 0xf494
movq 0x60ca(%rip), %rax      # 0xf2c0
movq 0x28(%rax), %rcx
movq 0x30(%rax), %rdi
leaq 0x259(%rip), %rdx       # 0x945e
callq *0x28(%rcx)
movss 0x6268(%rip), %xmm0     # 0xf478
cvttss2si %xmm0, %eax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
xorps %xmm3, %xmm3
cvtsi2ss %ecx, %xmm3
movss 0x6252(%rip), %xmm1     # 0xf47c
cvttss2si %xmm1, %eax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
xorps %xmm4, %xmm4
cvtsi2ss %ecx, %xmm4
movss 0x623c(%rip), %xmm2     # 0xf480
cvttss2si %xmm2, %eax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
xorps %xmm5, %xmm5
cvtsi2ss %ecx, %xmm5
ucomiss %xmm4, %xmm3
movq %rbx, (%rsp)
jbe 0x927a
ucomiss %xmm5, %xmm3
jbe 0x927a
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
leaq 0x9f2(%rip), %rcx       # 0x9c63
leaq 0x9fc(%rip), %rax       # 0x9c74
jmp 0x92a6
xorps %xmm0, %xmm0
ucomiss %xmm5, %xmm4
jbe 0x9295
ucomiss %xmm0, %xmm1
leaq 0xa06(%rip), %rcx       # 0x9c92
leaq 0xa12(%rip), %rax       # 0x9ca5
jmp 0x92a6
ucomiss %xmm0, %xmm2
leaq 0xa26(%rip), %rcx       # 0x9cc5
leaq 0xa32(%rip), %rax       # 0x9cd8
cmovaq %rcx, %rax
movq %rax, 0x61ef(%rip)      # 0xf4a0
movq 0x6008(%rip), %rdi      # 0xf2c0
callq 0x4320
movq 0x626c(%rip), %rdi      # 0xf530
movq 0x626d(%rip), %rsi      # 0xf538
leaq 0xa26(%rip), %rcx       # 0x9cf8
movl $0x8, %edx
callq 0x4090
cmpq $0x0, 0x6254(%rip)      # 0xf538
je 0x9392
movq 0x623f(%rip), %r14      # 0xf530
leaq 0xa1c(%rip), %r15       # 0x9d14
xorl %r12d, %r12d
xorl %ebx, %ebx
movq (%r14), %rax
movq 0x70(%rax), %r13
movq 0x88(%rax), %rdi
callq *0x8(%r13)
movq 0x6222(%rip), %rbp      # 0xf538
movq %rbp, %rax
subq %r12, %rax
cmpq $0x2, %rax
jb 0x9341
subl %r12d, %ebp
movl $0x1, %esi
movq (%r14,%rsi,8), %rcx
cmpq %r13, 0x70(%rcx)
jne 0x934d
incq %rsi
cmpq %rsi, %rax
jne 0x932a
movq %rax, %rsi
jmp 0x934f
movl $0x1, %esi
movl $0x1, %ebp
jmp 0x934f
movl %esi, %ebp
movl $0x8, %edx
movq %r14, %rdi
movq %r15, %rcx
callq 0x4090
cmpl $0x1, %ebp
movl %ebp, %r12d
adcl $0x0, %r12d
movq (%r14), %rdi
callq 0x9d79
addq $0x8, %r14
decl %r12d
jne 0x9369
xorl %eax, %eax
callq *0x18(%r13)
addl %ebp, %ebx
movq %rbx, %r12
cmpq %rbx, 0x61ac(%rip)      # 0xf538
ja 0x92fd
movq 0x61b7(%rip), %rdi      # 0xf550
movq 0x61b8(%rip), %rsi      # 0xf558
leaq 0xa0c(%rip), %rcx       # 0x9db3
movl $0x8, %edx
callq 0x4090
cmpq $0x0, 0x619f(%rip)      # 0xf558
je 0x942c
movq 0x618e(%rip), %r15      # 0xf550
xorl %r12d, %r12d
xorl %ebp, %ebp
movq (%r15), %r14
movq 0x70(%r14), %r13
movq 0x88(%r14), %rdi
callq *0x8(%r13)
movq %r14, %rdi
callq 0x9d79
movl $0x1, %r14d
movslq %r14d, %rax
movq 0x6167(%rip), %rcx      # 0xf558
subq %r12, %rcx
cmpq %rax, %rcx
jbe 0x9417
movq 0x8(%r15), %rdi
movq 0x70(%rdi), %rbx
cmpq %r13, %rbx
jne 0x940e
callq 0x9d79
incl %r14d
addq $0x8, %r15
cmpq %r13, %rbx
je 0x93e7
addl %r14d, %ebp
xorl %eax, %eax
callq *0x18(%r13)
movslq %ebp, %r12
cmpq %r12, 0x612e(%rip)      # 0xf558
ja 0x93c7
leaq 0x5e8d(%rip), %r14      # 0xf2c0
movq 0x5e86(%rip), %rdi      # 0xf2c0
callq 0x4380
movl $0x1e8, %edx            # imm = 0x1E8
movq (%rsp), %rdi
movq %r14, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4220