// File: /workspace/github_cpp_makefile_star2_O1/koraa[P]sbcrack/cube/geom.cpp
// Function: glmatrixf::adjoint(glmatrixf const&)
void glmatrixf::adjoint(const glmatrixf &m)
{
    float a1 = m.v[0], a2 = m.v[1], a3 = m.v[2], a4 = m.v[3],
          b1 = m.v[4], b2 = m.v[5], b3 = m.v[6], b4 = m.v[7],
          c1 = m.v[8], c2 = m.v[9], c3 = m.v[10], c4 = m.v[11],
          d1 = m.v[12], d2 = m.v[13], d3 = m.v[14], d4 = m.v[15];

    v[0]  =  det3x3(b2, b3, b4, c2, c3, c4, d2, d3, d4);
    v[1]  = -det3x3(a2, a3, a4, c2, c3, c4, d2, d3, d4);
    v[2]  =  det3x3(a2, a3, a4, b2, b3, b4, d2, d3, d4);
    v[3]  = -det3x3(a2, a3, a4, b2, b3, b4, c2, c3, c4);

    v[4]  = -det3x3(b1, b3, b4, c1, c3, c4, d1, d3, d4);
    v[5]  =  det3x3(a1, a3, a4, c1, c3, c4, d1, d3, d4);
    v[6]  = -det3x3(a1, a3, a4, b1, b3, b4, d1, d3, d4);
    v[7]  =  det3x3(a1, a3, a4, b1, b3, b4, c1, c3, c4);

    v[8]  =  det3x3(b1, b2, b4, c1, c2, c4, d1, d2, d4);
    v[9]  = -det3x3(a1, a2, a4, c1, c2, c4, d1, d2, d4);
    v[10] =  det3x3(a1, a2, a4, b1, b2, b4, d1, d2, d4);
    v[11] = -det3x3(a1, a2, a4, b1, b2, b4, c1, c2, c4);

    v[12] = -det3x3(b1, b2, b3, c1, c2, c3, d1, d2, d3);
    v[13] =  det3x3(a1, a2, a3, c1, c2, c3, d1, d2, d3);
    v[14] = -det3x3(a1, a2, a3, b1, b2, b3, d1, d2, d3);
    v[15] =  det3x3(a1, a2, a3, b1, b2, b3, c1, c2, c3);
}

// Assembly:
subq $0xa8, %rsp
movss 0x8(%rsi), %xmm4
movss 0xc(%rsi), %xmm6
movss 0x14(%rsi), %xmm8
movss 0x18(%rsi), %xmm9
movaps %xmm9, 0x20(%rsp)
movss 0x1c(%rsi), %xmm13
movss 0x28(%rsi), %xmm3
movss 0x34(%rsi), %xmm12
movss 0x38(%rsi), %xmm7
movaps %xmm7, 0x30(%rsp)
movss 0x3c(%rsi), %xmm1
movss 0x2c(%rsi), %xmm0
movaps %xmm0, %xmm2
movaps %xmm0, %xmm11
movaps %xmm0, -0x80(%rsp)
movaps %xmm1, -0x30(%rsp)
unpcklps %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
mulss %xmm4, %xmm1
movaps %xmm4, %xmm0
movaps %xmm4, 0x40(%rsp)
movaps %xmm7, %xmm5
mulss %xmm6, %xmm5
movaps %xmm6, %xmm14
movaps %xmm6, -0x60(%rsp)
subss %xmm1, %xmm5
movaps %xmm9, %xmm10
movaps %xmm3, %xmm6
movaps %xmm3, -0x50(%rsp)
unpcklps %xmm3, %xmm10           # xmm10 = xmm10[0],xmm3[0],xmm10[1],xmm3[1]
mulps %xmm2, %xmm10
unpcklps %xmm7, %xmm6            # xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
movaps %xmm13, -0x40(%rsp)
movaps %xmm13, %xmm4
unpcklps %xmm11, %xmm4           # xmm4 = xmm4[0],xmm11[0],xmm4[1],xmm11[1]
mulps %xmm6, %xmm4
subps %xmm4, %xmm10
movaps %xmm10, %xmm4
shufps $0x55, %xmm10, %xmm4    # xmm4 = xmm4[1,1],xmm10[1,1]
movaps %xmm0, %xmm7
unpcklps %xmm9, %xmm7            # xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
mulps %xmm2, %xmm7
movaps %xmm14, %xmm2
unpcklps %xmm13, %xmm2           # xmm2 = xmm2[0],xmm13[0],xmm2[1],xmm13[1]
mulps %xmm6, %xmm2
movaps %xmm4, %xmm6
mulss %xmm8, %xmm6
movaps %xmm8, -0x10(%rsp)
movaps %xmm10, %xmm9
movaps %xmm12, 0x10(%rsp)
mulss %xmm12, %xmm9
addss %xmm6, %xmm9
movaps %xmm2, %xmm13
subps %xmm7, %xmm13
movaps %xmm13, %xmm6
movaps %xmm13, -0x20(%rsp)
shufps $0x55, %xmm13, %xmm6    # xmm6 = xmm6[1,1],xmm13[1,1]
movss 0x24(%rsi), %xmm1
mulss %xmm1, %xmm6
movaps %xmm1, -0x70(%rsp)
addss %xmm6, %xmm9
movss (%rsi), %xmm15
movss 0x4(%rsi), %xmm0
movss 0x10(%rsi), %xmm3
movss 0x20(%rsi), %xmm14
movss 0x30(%rsi), %xmm11
movss %xmm9, (%rdi)
subps %xmm2, %xmm7
movaps %xmm5, %xmm2
mulss %xmm1, %xmm2
movaps %xmm7, %xmm6
mulss %xmm12, %xmm6
addss %xmm2, %xmm6
movaps %xmm4, %xmm2
mulss %xmm0, %xmm2
addss %xmm2, %xmm6
xorps 0x112c(%rip), %xmm6     # 0x51b0
movss %xmm6, 0x4(%rdi)
movaps %xmm0, %xmm2
movaps %xmm0, %xmm1
movaps %xmm0, 0x60(%rsp)
unpcklps %xmm3, %xmm2            # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
movaps %xmm3, %xmm9
mulps %xmm10, %xmm2
movaps %xmm8, %xmm12
movaps %xmm14, 0x90(%rsp)
unpcklps %xmm14, %xmm12          # xmm12 = xmm12[0],xmm14[0],xmm12[1],xmm14[1]
mulps %xmm13, %xmm12
addps %xmm2, %xmm12
movaps %xmm5, %xmm6
mulss %xmm14, %xmm6
movaps %xmm7, %xmm3
mulss %xmm11, %xmm7
addss %xmm6, %xmm7
mulss %xmm15, %xmm4
movaps %xmm15, %xmm14
movaps %xmm15, (%rsp)
addss %xmm4, %xmm7
movss %xmm7, 0x14(%rdi)
movaps -0x30(%rsp), %xmm0
movaps %xmm0, %xmm4
mulss %xmm1, %xmm4
movaps 0x10(%rsp), %xmm15
movaps %xmm15, %xmm1
movaps -0x60(%rsp), %xmm7
mulss %xmm7, %xmm1
subss %xmm4, %xmm1
movaps %xmm15, %xmm4
movaps -0x40(%rsp), %xmm6
mulss %xmm6, %xmm4
movaps %xmm6, %xmm2
unpcklps %xmm0, %xmm6            # xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
movaps %xmm6, %xmm13
movaps -0x10(%rsp), %xmm8
mulss %xmm8, %xmm0
movaps %xmm4, %xmm6
subss %xmm0, %xmm6
subss %xmm4, %xmm0
mulss %xmm14, %xmm0
movaps %xmm1, 0x70(%rsp)
mulss %xmm9, %xmm1
addss %xmm0, %xmm1
movaps %xmm1, -0x30(%rsp)
movaps %xmm7, %xmm0
movaps -0x80(%rsp), %xmm14
unpcklps %xmm14, %xmm0           # xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
unpcklps 0x30(%rsp), %xmm14      # xmm14 = xmm14[0],mem[0],xmm14[1],mem[1]
movaps %xmm14, -0x80(%rsp)
movaps %xmm8, %xmm7
movaps -0x70(%rsp), %xmm4
unpcklps %xmm4, %xmm7            # xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]
movaps %xmm7, -0x40(%rsp)
mulps %xmm7, %xmm14
movaps %xmm4, %xmm7
unpcklps %xmm15, %xmm7           # xmm7 = xmm7[0],xmm15[0],xmm7[1],xmm15[1]
movaps %xmm2, %xmm1
unpcklps -0x50(%rsp), %xmm1      # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
movaps %xmm1, 0x80(%rsp)
movaps %xmm7, %xmm2
mulps %xmm1, %xmm2
subps %xmm2, %xmm14
movaps 0x40(%rsp), %xmm2
unpcklps %xmm4, %xmm2            # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
mulps %xmm13, %xmm2
movaps 0x20(%rsp), %xmm13
unpcklps %xmm15, %xmm13          # xmm13 = xmm13[0],xmm15[0],xmm13[1],xmm15[1]
mulps %xmm0, %xmm13
subps %xmm13, %xmm2
movaps %xmm5, %xmm0
mulss %xmm8, %xmm0
movaps %xmm15, %xmm13
mulss %xmm2, %xmm13
addss %xmm0, %xmm13
shufps $0x55, %xmm3, %xmm3     # xmm3 = xmm3[1,1,1,1]
movaps %xmm3, %xmm0
movaps 0x60(%rsp), %xmm15
mulss %xmm15, %xmm0
addss %xmm0, %xmm13
movss %xmm13, 0x8(%rdi)
movaps %xmm4, %xmm0
unpcklps %xmm11, %xmm0           # xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1]
movaps %xmm10, %xmm13
movlhps %xmm2, %xmm13           # xmm13 = xmm13[0],xmm2[0]
shufps $0xe2, %xmm2, %xmm13    # xmm13 = xmm13[2,0],xmm2[2,3]
mulps %xmm0, %xmm13
addps %xmm12, %xmm13
movaps 0xfa2(%rip), %xmm1      # 0x51b0
xorps %xmm1, %xmm13
movlps %xmm13, 0xc(%rdi)
mulss %xmm9, %xmm5
movaps %xmm9, %xmm12
movaps %xmm9, 0x50(%rsp)
movaps %xmm11, %xmm0
mulss %xmm2, %xmm0
addss %xmm5, %xmm0
movaps (%rsp), %xmm9
mulss %xmm9, %xmm3
addss %xmm3, %xmm0
xorps %xmm1, %xmm0
movss %xmm0, 0x18(%rdi)
movaps -0x20(%rsp), %xmm0
unpcklps %xmm6, %xmm0            # xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
movaps %xmm0, -0x20(%rsp)
unpcklps %xmm14, %xmm10          # xmm10 = xmm10[0],xmm14[0],xmm10[1],xmm14[1]
unpcklps %xmm11, %xmm9           # xmm9 = xmm9[0],xmm11[0],xmm9[1],xmm11[1]
mulps %xmm10, %xmm9
movaps 0x30(%rsp), %xmm4
mulss %xmm15, %xmm4
movaps -0x50(%rsp), %xmm5
mulss %xmm15, %xmm5
movaps %xmm5, -0x50(%rsp)
movaps 0x20(%rsp), %xmm8
movaps -0x60(%rsp), %xmm0
unpcklps %xmm8, %xmm0            # xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
movaps %xmm0, -0x60(%rsp)
mulss %xmm15, %xmm8
movaps -0x10(%rsp), %xmm3
unpcklps %xmm3, %xmm15           # xmm15 = xmm15[0],xmm3[0],xmm15[1],xmm3[1]
movaps -0x80(%rsp), %xmm10
mulps %xmm15, %xmm10
mulps %xmm0, %xmm7
subps %xmm7, %xmm10
movaps %xmm10, %xmm6
movaps %xmm10, -0x80(%rsp)
movaps 0x10(%rsp), %xmm7
movaps 0x40(%rsp), %xmm1
mulss %xmm1, %xmm7
subss %xmm4, %xmm7
movaps -0x70(%rsp), %xmm13
mulss %xmm1, %xmm13
movaps %xmm13, -0x70(%rsp)
mulss %xmm1, %xmm3
subss %xmm3, %xmm8
movaps %xmm8, %xmm10
movaps 0x90(%rsp), %xmm4
movaps 0x70(%rsp), %xmm0
mulss %xmm4, %xmm0
movaps %xmm12, %xmm1
unpcklps %xmm4, %xmm1            # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
movaps %xmm6, %xmm12
mulss %xmm11, %xmm12
movaps %xmm4, %xmm6
unpcklps %xmm11, %xmm6           # xmm6 = xmm6[0],xmm11[0],xmm6[1],xmm11[1]
movaps %xmm7, %xmm8
mulss %xmm4, %xmm8
movaps %xmm5, %xmm3
subss %xmm13, %xmm3
mulss %xmm11, %xmm3
movaps %xmm11, %xmm13
mulss %xmm10, %xmm11
mulss %xmm4, %xmm10
movaps %xmm4, %xmm5
movaps 0x50(%rsp), %xmm4
unpcklps %xmm4, %xmm5            # xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
mulps %xmm2, %xmm5
addps %xmm5, %xmm9
movaps -0x20(%rsp), %xmm5
mulps %xmm1, %xmm5
addps %xmm5, %xmm9
movlps %xmm9, 0x1c(%rdi)
addss %xmm0, %xmm12
shufps $0x55, %xmm2, %xmm2     # xmm2 = xmm2[1,1,1,1]
movaps (%rsp), %xmm5
mulss %xmm5, %xmm2
addss %xmm2, %xmm12
movaps 0xe3c(%rip), %xmm9      # 0x51b0
xorps %xmm9, %xmm12
movss %xmm12, 0x24(%rdi)
mulps 0x80(%rsp), %xmm15
movaps -0x60(%rsp), %xmm0
mulps -0x40(%rsp), %xmm0
subps %xmm0, %xmm15
mulss %xmm15, %xmm13
addss -0x30(%rsp), %xmm13
movss %xmm13, 0x28(%rdi)
movaps %xmm5, %xmm0
movaps %xmm4, %xmm2
unpcklps %xmm4, %xmm0            # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
mulps %xmm14, %xmm0
mulps %xmm15, %xmm6
addps %xmm0, %xmm6
movaps -0x80(%rsp), %xmm4
mulps %xmm4, %xmm1
subps %xmm6, %xmm1
movlps %xmm1, 0x2c(%rdi)
addss %xmm8, %xmm3
shufps $0x55, %xmm14, %xmm14   # xmm14 = xmm14[1,1,1,1]
mulss %xmm5, %xmm14
addss %xmm14, %xmm3
movss %xmm3, 0x34(%rdi)
mulss %xmm2, %xmm7
addss %xmm7, %xmm11
movaps %xmm4, %xmm1
shufps $0x55, %xmm4, %xmm1     # xmm1 = xmm1[1,1],xmm4[1,1]
mulss %xmm5, %xmm1
addss %xmm1, %xmm11
xorps %xmm9, %xmm11
movss %xmm11, 0x38(%rdi)
shufps $0x55, %xmm15, %xmm15   # xmm15 = xmm15[1,1,1,1]
mulss %xmm5, %xmm15
movaps -0x70(%rsp), %xmm0
subss -0x50(%rsp), %xmm0
mulss %xmm2, %xmm0
addss %xmm0, %xmm10
addss %xmm15, %xmm10
movss %xmm10, 0x3c(%rdi)
addq $0xa8, %rsp
retq
nop