// File: /workspace/github_c_makefile_star2_O3/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 0x6a61(%rip), %rdi      # 0xf2c0
movl $0x1e8, %edx            # imm = 0x1E8
movq %rbx, %rsi
callq 0x4220
xorl %eax, %eax
movq %rax, 0x6cc3(%rip)      # 0xf538
movq %rax, 0x6cdc(%rip)      # 0xf558
movups 0x6b35(%rip), %xmm0     # 0xf3b8
movups 0x6b3a(%rip), %xmm2     # 0xf3c4
movups 0x6b43(%rip), %xmm3     # 0xf3d4
movups 0x6b4c(%rip), %xmm1     # 0xf3e4
movaps %xmm2, %xmm5
shufps $0x1, %xmm0, %xmm5      # xmm5 = xmm5[1,0],xmm0[0,0]
movlhps %xmm3, %xmm0            # xmm0 = xmm0[0],xmm3[0]
movss 0x6b4a(%rip), %xmm4     # 0xf3f4
movaps %xmm4, %xmm6
shufps $0xd4, %xmm3, %xmm6     # xmm6 = xmm6[0,1],xmm3[1,3]
shufps $0x28, %xmm6, %xmm0     # xmm0 = xmm0[0,2],xmm6[2,0]
movaps %xmm2, %xmm6
movlhps %xmm1, %xmm6            # xmm6 = xmm6[0],xmm1[0]
addps %xmm0, %xmm6
movups %xmm6, 0x6b83(%rip)     # 0xf448
movaps %xmm2, %xmm0
unpcklps %xmm3, %xmm0            # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movaps %xmm4, %xmm6
movlhps %xmm1, %xmm6            # xmm6 = xmm6[0],xmm1[0]
shufps $0x24, %xmm6, %xmm0     # xmm0 = xmm0[0,1],xmm6[2,0]
movaps %xmm1, %xmm6
shufps $0x55, %xmm3, %xmm6     # xmm6 = xmm6[1,1],xmm3[1,1]
shufps $0x22, %xmm6, %xmm5     # xmm5 = xmm5[2,0],xmm6[2,0]
movaps %xmm0, %xmm6
subps %xmm5, %xmm6
movups %xmm6, 0x6b4b(%rip)     # 0xf438
leaq 0x6b44(%rip), %rsi      # 0xf438
movups 0x6ac1(%rip), %xmm5     # 0xf3bc
movss 0x6ac9(%rip), %xmm6     # 0xf3cc
movaps %xmm6, %xmm7
movlhps %xmm5, %xmm6            # xmm6 = xmm6[0],xmm5[0]
unpcklps %xmm3, %xmm5            # xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
movss 0x6ac8(%rip), %xmm3     # 0xf3dc
movlhps %xmm3, %xmm4            # xmm4 = xmm4[0],xmm3[0]
shufps $0x24, %xmm4, %xmm5     # xmm5 = xmm5[0,1],xmm4[2,0]
movlhps %xmm2, %xmm7            # xmm7 = xmm7[0],xmm2[0]
movss 0x6ac6(%rip), %xmm2     # 0xf3ec
movaps %xmm2, %xmm4
movlhps %xmm1, %xmm4            # xmm4 = xmm4[0],xmm1[0]
shufps $0x22, %xmm4, %xmm7     # xmm7 = xmm7[2,0],xmm4[2,0]
addps %xmm5, %xmm7
movups %xmm7, 0x6b2e(%rip)     # 0xf468
movlhps %xmm3, %xmm2            # xmm2 = xmm2[0],xmm3[0]
shufps $0x22, %xmm2, %xmm6     # xmm6 = xmm6[2,0],xmm2[2,0]
movaps %xmm0, %xmm1
subps %xmm6, %xmm1
movups %xmm1, 0x6b0a(%rip)     # 0xf458
movss 0x6a7a(%rip), %xmm1     # 0xf3d0
movhps 0x6a63(%rip), %xmm1     # xmm1 = xmm1[0,1],mem[0,1]
movss 0x6a7b(%rip), %xmm2     # 0xf3e0
movss 0x6a83(%rip), %xmm3     # 0xf3f0
movlhps %xmm2, %xmm3            # xmm3 = xmm3[0],xmm2[0]
shufps $0x22, %xmm3, %xmm1     # xmm1 = xmm1[2,0],xmm3[2,0]
movaps %xmm0, %xmm2
addps %xmm1, %xmm2
movups %xmm2, 0x6af7(%rip)     # 0xf478
subps %xmm1, %xmm0
movups %xmm0, 0x6afd(%rip)     # 0xf488
movq 0x692e(%rip), %rax      # 0xf2c0
movq 0x28(%rax), %rcx
movq 0x30(%rax), %rdi
leaq 0x27a(%rip), %rdx       # 0x8c1b
callq *0x28(%rcx)
movss 0x6acc(%rip), %xmm1     # 0xf478
movss 0x6ac8(%rip), %xmm0     # 0xf47c
cvttss2si %xmm0, %eax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
xorps %xmm3, %xmm3
cvtsi2ss %ecx, %xmm3
movss 0x6ab2(%rip), %xmm2     # 0xf480
movaps %xmm1, %xmm4
unpcklps %xmm2, %xmm4            # xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
cvttps2dq %xmm4, %xmm4
movdqa %xmm4, %xmm5
psrad $0x1f, %xmm5
pxor %xmm5, %xmm4
psubd %xmm5, %xmm4
cvtdq2ps %xmm4, %xmm5
ucomiss %xmm3, %xmm5
movaps %xmm5, %xmm4
shufps $0x55, %xmm5, %xmm4     # xmm4 = xmm4[1,1],xmm5[1,1]
movq %rbx, (%rsp)
jbe 0x8a17
ucomiss %xmm4, %xmm5
jbe 0x8a17
xorps %xmm0, %xmm0
ucomiss %xmm0, %xmm1
leaq 0xa15(%rip), %rcx       # 0x9423
leaq 0xa1f(%rip), %rax       # 0x9434
jmp 0x8a46
ucomiss %xmm4, %xmm3
jbe 0x8a32
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
leaq 0xa29(%rip), %rcx       # 0x9452
leaq 0xa35(%rip), %rax       # 0x9465
jmp 0x8a46
xorps %xmm0, %xmm0
ucomiss %xmm0, %xmm2
leaq 0xa46(%rip), %rcx       # 0x9485
leaq 0xa52(%rip), %rax       # 0x9498
cmovaq %rcx, %rax
movq %rax, 0x6a4f(%rip)      # 0xf4a0
movq 0x6868(%rip), %rdi      # 0xf2c0
callq 0x4320
movq 0x6acc(%rip), %rdi      # 0xf530
movq 0x6acd(%rip), %rsi      # 0xf538
leaq 0xa46(%rip), %rcx       # 0x94b8
movl $0x8, %edx
callq 0x4090
cmpq $0x0, 0x6ab4(%rip)      # 0xf538
je 0x8b32
movq 0x6a9f(%rip), %r14      # 0xf530
leaq 0xa3c(%rip), %r15       # 0x94d4
xorl %r12d, %r12d
xorl %ebx, %ebx
movq (%r14), %rax
movq 0x70(%rax), %r13
movq 0x88(%rax), %rdi
callq *0x8(%r13)
movq 0x6a82(%rip), %rbp      # 0xf538
movq %rbp, %rax
subq %r12, %rax
cmpq $0x2, %rax
jb 0x8ae1
subl %r12d, %ebp
movl $0x1, %esi
movq (%r14,%rsi,8), %rcx
cmpq %r13, 0x70(%rcx)
jne 0x8aed
incq %rsi
cmpq %rsi, %rax
jne 0x8aca
movq %rax, %rsi
jmp 0x8aef
movl $0x1, %esi
movl $0x1, %ebp
jmp 0x8aef
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 0x9539
addq $0x8, %r14
decl %r12d
jne 0x8b09
xorl %eax, %eax
callq *0x18(%r13)
addl %ebp, %ebx
movq %rbx, %r12
cmpq %rbx, 0x6a0c(%rip)      # 0xf538
ja 0x8a9d
movq 0x6a17(%rip), %rdi      # 0xf550
movq 0x6a18(%rip), %rsi      # 0xf558
leaq 0xa2c(%rip), %rcx       # 0x9573
movl $0x8, %edx
callq 0x4090
cmpq $0x0, 0x69ff(%rip)      # 0xf558
movq (%rsp), %rbx
je 0x8bea
movq 0x69e6(%rip), %r12      # 0xf550
xorl %ebp, %ebp
xorl %r15d, %r15d
movq (%r12), %r14
movq 0x70(%r14), %r13
movq 0x88(%r14), %rdi
callq *0x8(%r13)
movq %r14, %rdi
callq 0x9539
movq 0x69c7(%rip), %rax      # 0xf558
subq %rbp, %rax
movl $0x1, %r14d
cmpq $0x2, %rax
jb 0x8bd5
addq $0x8, %r12
movl $0x1, %r14d
movq %r12, %rax
movq %rax, %r12
movq (%rax), %rdi
cmpq %r13, 0x70(%rdi)
jne 0x8bd5
callq 0x9539
incq %r14
movq 0x6990(%rip), %rcx      # 0xf558
subq %rbp, %rcx
leaq 0x8(%r12), %rax
cmpq %r14, %rcx
ja 0x8bad
addl %r14d, %r15d
xorl %eax, %eax
callq *0x18(%r13)
movq %r15, %rbp
cmpq %r15, 0x6970(%rip)      # 0xf558
ja 0x8b6f
leaq 0x66cf(%rip), %r14      # 0xf2c0
movq 0x66c8(%rip), %rdi      # 0xf2c0
callq 0x4380
movl $0x1e8, %edx            # imm = 0x1E8
movq %rbx, %rdi
movq %r14, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4220