// File: /workspace/github_c_makefile_star2_O0/AlexCharlton[P]Hyperscene/hypermath/src/hypermath.c
// Function: hpmInverse
void hpmInverse(const float *mat, float *result){
    HPMmat4 *m = (HPMmat4 *) mat;
    HPMmat4 inv;
    float det;
    int i;

    inv._11 = m->_22  * m->_33 * m->_44 - 
        m->_22  * m->_34 * m->_43 - 
        m->_32  * m->_23  * m->_44 + 
        m->_32  * m->_24  * m->_43 +
        m->_42 * m->_23  * m->_34 - 
        m->_42 * m->_24  * m->_33;

    inv._21 = -m->_21  * m->_33 * m->_44 + 
        m->_21  * m->_34 * m->_43 + 
        m->_31  * m->_23  * m->_44 - 
        m->_31  * m->_24  * m->_43 - 
        m->_41 * m->_23  * m->_34 + 
        m->_41 * m->_24  * m->_33;

    inv._31 = m->_21  * m->_32 * m->_44 - 
        m->_21  * m->_34 * m->_42 - 
        m->_31  * m->_22 * m->_44 + 
        m->_31  * m->_24 * m->_42 + 
        m->_41 * m->_22 * m->_34 - 
        m->_41 * m->_24 * m->_32;

    inv._41 = -m->_21  * m->_32 * m->_43 + 
        m->_21  * m->_33 * m->_42 +
        m->_31  * m->_22 * m->_43 - 
        m->_31  * m->_23 * m->_42 - 
        m->_41 * m->_22 * m->_33 + 
        m->_41 * m->_23 * m->_32;

    inv._12 = -m->_12  * m->_33 * m->_44 + 
        m->_12  * m->_34 * m->_43 + 
        m->_32  * m->_13 * m->_44 - 
        m->_32  * m->_14 * m->_43 - 
        m->_42 * m->_13 * m->_34 + 
        m->_42 * m->_14 * m->_33;

    inv._22 = m->_11  * m->_33 * m->_44 - 
        m->_11  * m->_34 * m->_43 - 
        m->_31  * m->_13 * m->_44 + 
        m->_31  * m->_14 * m->_43 + 
        m->_41 * m->_13 * m->_34 - 
        m->_41 * m->_14 * m->_33;

    inv._32 = -m->_11  * m->_32 * m->_44 + 
        m->_11  * m->_34 * m->_42 + 
        m->_31  * m->_12 * m->_44 - 
        m->_31  * m->_14 * m->_42 - 
        m->_41 * m->_12 * m->_34 + 
        m->_41 * m->_14 * m->_32;

    inv._42 = m->_11  * m->_32 * m->_43 - 
        m->_11  * m->_33 * m->_42 - 
        m->_31  * m->_12 * m->_43 + 
        m->_31  * m->_13 * m->_42 + 
        m->_41 * m->_12 * m->_33 - 
        m->_41 * m->_13 * m->_32;

    inv._13 = m->_12  * m->_23 * m->_44 - 
        m->_12  * m->_24 * m->_43 - 
        m->_22  * m->_13 * m->_44 + 
        m->_22  * m->_14 * m->_43 + 
        m->_42 * m->_13 * m->_24 - 
        m->_42 * m->_14 * m->_23;

    inv._23 = -m->_11  * m->_23 * m->_44 + 
        m->_11  * m->_24 * m->_43 + 
        m->_21  * m->_13 * m->_44 - 
        m->_21  * m->_14 * m->_43 - 
        m->_41 * m->_13 * m->_24 + 
        m->_41 * m->_14 * m->_23;

    inv._33 = m->_11  * m->_22 * m->_44 - 
        m->_11  * m->_24 * m->_42 - 
        m->_21  * m->_12 * m->_44 + 
        m->_21  * m->_14 * m->_42 + 
        m->_41 * m->_12 * m->_24 - 
        m->_41 * m->_14 * m->_22;

    inv._43 = -m->_11  * m->_22 * m->_43 + 
        m->_11  * m->_23 * m->_42 + 
        m->_21  * m->_12 * m->_43 - 
        m->_21  * m->_13 * m->_42 - 
        m->_41 * m->_12 * m->_23 + 
        m->_41 * m->_13 * m->_22;

    inv._14 = -m->_12 * m->_23 * m->_34 + 
        m->_12 * m->_24 * m->_33 + 
        m->_22 * m->_13 * m->_34 - 
        m->_22 * m->_14 * m->_33 - 
        m->_32 * m->_13 * m->_24 + 
        m->_32 * m->_14 * m->_23;

    inv._24 = m->_11 * m->_23 * m->_34 - 
        m->_11 * m->_24 * m->_33 - 
        m->_21 * m->_13 * m->_34 + 
        m->_21 * m->_14 * m->_33 + 
        m->_31 * m->_13 * m->_24 - 
        m->_31 * m->_14 * m->_23;

    inv._34 = -m->_11 * m->_22 * m->_34 + 
        m->_11 * m->_24 * m->_32 + 
        m->_21 * m->_12 * m->_34 - 
        m->_21 * m->_14 * m->_32 - 
        m->_31 * m->_12 * m->_24 + 
        m->_31 * m->_14 * m->_22;

    inv._44 = m->_11 * m->_22 * m->_33 - 
        m->_11 * m->_23 * m->_32 - 
        m->_21 * m->_12 * m->_33 + 
        m->_21 * m->_13 * m->_32 + 
        m->_31 * m->_12 * m->_23 - 
        m->_31 * m->_13 * m->_22;

    det = m->_11 * inv._11 + m->_12 * inv._21 + m->_13 * inv._31 + m->_14 * inv._41;
    det = 1.0 / det;

    float *in = (float *) &inv;

    if (det == 0){
        for (i = 0; i < 16; i++)
            result[i] = 0;
    } else {
        for (i = 0; i < 16; i++)
            result[i] = in[i] * det;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x38(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x2c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x58(%rbp)
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x38(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x2c(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x54(%rbp)
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x18(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x38(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x1c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x50(%rbp)
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x18(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x1c(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4c(%rbp)
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x38(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x2c(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x48(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x38(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x2c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x44(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x18(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x38(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x1c(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x18(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x1c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x3c(%rbp)
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x2c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x34(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x24(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x2c(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x34(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x24(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x34(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x1c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x34(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x1c(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x24(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x2c(%rbp)
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x34(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x24(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x28(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x34(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x24(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x24(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x34(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x18(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x34(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x30(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x14(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x24(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x18(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x28(%rax), %xmm2
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
movq -0x18(%rbp), %rax
mulss 0x10(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x24(%rax), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
mulss 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm2
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movss -0x58(%rbp), %xmm2
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm1
mulss -0x54(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss 0x20(%rax), %xmm1
movss -0x50(%rbp), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x18(%rbp), %rax
movss 0x30(%rax), %xmm0
movss -0x4c(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x5c(%rbp)
movss -0x5c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x6bf9(%rip), %xmm0     # 0xf010
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x5c(%rbp)
leaq -0x58(%rbp), %rax
movq %rax, -0x68(%rbp)
movss -0x5c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x8465
jp 0x8465
movl $0x0, -0x60(%rbp)
cmpl $0x10, -0x60(%rbp)
jge 0x8463
movq -0x10(%rbp), %rax
movslq -0x60(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x8442
jmp 0x849e
movl $0x0, -0x60(%rbp)
cmpl $0x10, -0x60(%rbp)
jge 0x849c
movq -0x68(%rbp), %rax
movslq -0x60(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
mulss -0x5c(%rbp), %xmm0
movq -0x10(%rbp), %rax
movslq -0x60(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x846c
jmp 0x849e
popq %rbp
retq