// File: /workspace/github_c_makefile_star2_O0/AlexCharlton[P]Hyperscene/src/camera.c
// Function: computePlanes
static void computePlanes(HPScamera *camera){
    Plane *ps = camera->planes;
    HPMmat4 *m = (HPMmat4 *) camera->viewProjection;
    ps[LEFT].a   = m->_41 + m->_11; ps[LEFT].b   = m->_42 + m->_12;
    ps[LEFT].c   = m->_43 + m->_13; ps[LEFT].d   = m->_44 + m->_14;
    ps[RIGHT].a  = m->_41 - m->_11; ps[RIGHT].b  = m->_42 - m->_12;
    ps[RIGHT].c  = m->_43 - m->_13; ps[RIGHT].d  = m->_44 - m->_14;
    ps[BOTTOM].a = m->_41 + m->_21; ps[BOTTOM].b = m->_42 + m->_22;
    ps[BOTTOM].c = m->_43 + m->_23; ps[BOTTOM].d = m->_44 + m->_24;
    ps[TOP].a    = m->_41 - m->_21; ps[TOP].b    = m->_42 - m->_22;
    ps[TOP].c    = m->_43 - m->_23; ps[TOP].d    = m->_44 - m->_24;
    ps[NEAR].a   = m->_41 + m->_31; ps[NEAR].b   = m->_42 + m->_32;
    ps[NEAR].c   = m->_43 + m->_33; ps[NEAR].d   = m->_44 + m->_34;
    ps[FAR].a    = m->_41 - m->_31; ps[FAR].b    = m->_42 - m->_32;
    ps[FAR].c    = m->_43 - m->_33; ps[FAR].d    = m->_44 - m->_34;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x178, %rax            # imm = 0x178
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
addq $0xf8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
addss (%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x10(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x14(%rax)
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x20(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x18(%rax)
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x30(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x1c(%rax)
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
subss (%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, (%rax)
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x10(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x4(%rax)
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x20(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x8(%rax)
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x30(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x30(%rax)
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x14(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x34(%rax)
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x24(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x38(%rax)
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x34(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x3c(%rax)
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x20(%rax)
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x14(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x24(%rax)
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x24(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x28(%rax)
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x34(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x2c(%rax)
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x40(%rax)
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x18(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x44(%rax)
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x48(%rax)
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x38(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x4c(%rax)
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x50(%rax)
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x18(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x54(%rax)
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x58(%rax)
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm0
movq -0x18(%rbp), %rax
subss 0x38(%rax), %xmm0
movq -0x10(%rbp), %rax
movss %xmm0, 0x5c(%rax)
popq %rbp
retq
nopl (%rax,%rax)