// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonglmath/src/mat.c
// Function: moonglmath_mat_inv
int mat_inv(mat_t dst, mat_t m, size_t n)
    {
    size_t i, j;
    double d;
    if(n==2)
        d = det2(m);
    else if(n==3)
        d = det3(m);
    else //if(n==4)
        d = det4(m);
    if(d == 0.0)
        return 0;
    mat_adj(dst, m, n);
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            dst[i][j] /= d;
    return 1;
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
cmpq $0x2, 0x18(%rsp)
jne 0x1490b
movq 0x20(%rsp), %rax
movsd (%rax), %xmm0
movq 0x20(%rsp), %rax
movsd 0x28(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x20(%rax), %xmm1
movq 0x20(%rsp), %rax
mulsd 0x8(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
jmp 0x14f30
cmpq $0x3, 0x18(%rsp)
jne 0x14a3e
movq 0x20(%rsp), %rax
movsd (%rax), %xmm1
movq 0x20(%rsp), %rax
movsd 0x28(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x50(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x48(%rax), %xmm0
movq 0x20(%rsp), %rax
mulsd 0x30(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm3, %xmm2
addsd %xmm0, %xmm2
movq 0x20(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq 0x20(%rsp), %rax
movsd 0x20(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x50(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm4
movq 0x20(%rsp), %rax
mulsd 0x30(%rax), %xmm4
movq %xmm4, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm4
mulsd %xmm5, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x20(%rsp), %rax
movsd 0x10(%rax), %xmm0
movq 0x20(%rsp), %rax
movsd 0x20(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x48(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm3
movq 0x20(%rsp), %rax
mulsd 0x28(%rax), %xmm3
movq %xmm3, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm3
mulsd %xmm4, %xmm2
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
jmp 0x14f2e
movq 0x20(%rsp), %rax
movsd (%rax), %xmm0
movq 0x20(%rsp), %rax
movsd 0x28(%rax), %xmm1
movq 0x20(%rsp), %rax
movsd 0x50(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x78(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x70(%rax), %xmm2
movq 0x20(%rsp), %rax
mulsd 0x58(%rax), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm4, %xmm3
addsd %xmm2, %xmm3
movq 0x20(%rsp), %rax
movsd 0x30(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x48(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x78(%rax), %xmm6
movq 0x20(%rsp), %rax
movsd 0x68(%rax), %xmm5
movq 0x20(%rsp), %rax
mulsd 0x58(%rax), %xmm5
movq %xmm5, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm5
mulsd %xmm6, %xmm4
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movq 0x20(%rsp), %rax
movsd 0x38(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x48(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x70(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x68(%rax), %xmm4
movq 0x20(%rsp), %rax
mulsd 0x50(%rax), %xmm4
movq %xmm4, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm4
mulsd %xmm5, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm2
addsd %xmm1, %xmm2
movq 0x20(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x20(%rsp), %rax
movsd 0x20(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x50(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x78(%rax), %xmm6
movq 0x20(%rsp), %rax
movsd 0x70(%rax), %xmm3
movq 0x20(%rsp), %rax
mulsd 0x58(%rax), %xmm3
movq %xmm3, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm3
mulsd %xmm6, %xmm5
addsd %xmm3, %xmm5
movq 0x20(%rsp), %rax
movsd 0x30(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm6
movq 0x20(%rsp), %rax
movsd 0x78(%rax), %xmm8
movq 0x20(%rsp), %rax
movsd 0x60(%rax), %xmm7
movq 0x20(%rsp), %rax
mulsd 0x58(%rax), %xmm7
movq %xmm7, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm7
mulsd %xmm8, %xmm6
addsd %xmm7, %xmm6
mulsd %xmm6, %xmm3
movq %xmm3, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm3
mulsd %xmm5, %xmm4
addsd %xmm3, %xmm4
movq 0x20(%rsp), %rax
movsd 0x38(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x70(%rax), %xmm7
movq 0x20(%rsp), %rax
movsd 0x60(%rax), %xmm6
movq 0x20(%rsp), %rax
mulsd 0x50(%rax), %xmm6
movq %xmm6, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm6
mulsd %xmm7, %xmm5
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x20(%rsp), %rax
movsd 0x10(%rax), %xmm1
movq 0x20(%rsp), %rax
movsd 0x20(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x48(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x78(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x68(%rax), %xmm2
movq 0x20(%rsp), %rax
mulsd 0x58(%rax), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm5, %xmm4
addsd %xmm2, %xmm4
movq 0x20(%rsp), %rax
movsd 0x28(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x78(%rax), %xmm7
movq 0x20(%rsp), %rax
movsd 0x60(%rax), %xmm6
movq 0x20(%rsp), %rax
mulsd 0x58(%rax), %xmm6
movq %xmm6, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm6
mulsd %xmm7, %xmm5
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm4, %xmm3
addsd %xmm2, %xmm3
movq 0x20(%rsp), %rax
movsd 0x38(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x68(%rax), %xmm6
movq 0x20(%rsp), %rax
movsd 0x60(%rax), %xmm5
movq 0x20(%rsp), %rax
mulsd 0x48(%rax), %xmm5
movq %xmm5, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm5
mulsd %xmm6, %xmm4
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm2
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x20(%rsp), %rax
movsd 0x18(%rax), %xmm0
movq 0x20(%rsp), %rax
movsd 0x20(%rax), %xmm3
movq 0x20(%rsp), %rax
movsd 0x48(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x70(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x68(%rax), %xmm2
movq 0x20(%rsp), %rax
mulsd 0x50(%rax), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm5, %xmm4
addsd %xmm2, %xmm4
movq 0x20(%rsp), %rax
movsd 0x28(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm5
movq 0x20(%rsp), %rax
movsd 0x70(%rax), %xmm7
movq 0x20(%rsp), %rax
movsd 0x60(%rax), %xmm6
movq 0x20(%rsp), %rax
mulsd 0x50(%rax), %xmm6
movq %xmm6, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm6
mulsd %xmm7, %xmm5
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm4, %xmm3
addsd %xmm2, %xmm3
movq 0x20(%rsp), %rax
movsd 0x30(%rax), %xmm2
movq 0x20(%rsp), %rax
movsd 0x40(%rax), %xmm4
movq 0x20(%rsp), %rax
movsd 0x68(%rax), %xmm6
movq 0x20(%rsp), %rax
movsd 0x60(%rax), %xmm5
movq 0x20(%rsp), %rax
mulsd 0x48(%rax), %xmm5
movq %xmm5, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm5
mulsd %xmm6, %xmm4
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm2
addsd %xmm3, %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
jmp 0x14f30
movsd (%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x14f4d
jp 0x14f4d
movl $0x0, 0x34(%rsp)
jmp 0x14fde
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq 0x84a0
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x18(%rsp), %rax
jae 0x14fd6
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x18(%rsp), %rax
jae 0x14fc4
movsd (%rsp), %xmm1
movq 0x28(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x14f7f
jmp 0x14fc6
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x14f6a
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw (%rax,%rax)