// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonglmath/src/mat.c
// Function: moonglmath_mat_Det
int mat_Det(lua_State *L)
    {
    size_t nr, nc;
    mat_t m;
    checkmat(L, 1, m, &nr, &nc);
    if(nr != nc)
        return luaL_argerror(L, 1, "not a square matrix");
    if(nr==2)
        lua_pushnumber(L, det2(m));
    else if(nr==3)
        lua_pushnumber(L, det3(m));
    else //if(nr==4)
        lua_pushnumber(L, det4(m));
    return 1;
    }

// Assembly:
subq $0xa8, %rsp
movq %rdi, 0x98(%rsp)
movq 0x98(%rsp), %rdi
movq %rsp, %rdx
movl $0x1, %esi
leaq 0x90(%rsp), %rcx
leaq 0x88(%rsp), %r8
callq 0x8560
movq 0x90(%rsp), %rax
cmpq 0x88(%rsp), %rax
je 0x1550b
movq 0x98(%rsp), %rdi
movl $0x1, %esi
leaq 0xe07b(%rip), %rdx      # 0x23575
callq 0x81b0
movl %eax, 0xa4(%rsp)
jmp 0x15a65
cmpq $0x2, 0x90(%rsp)
jne 0x1555e
movq 0x98(%rsp), %rdi
movsd (%rsp), %xmm0
movsd 0x28(%rsp), %xmm2
movsd 0x20(%rsp), %xmm1
mulsd 0x8(%rsp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x8840
jmp 0x15a5a
cmpq $0x3, 0x90(%rsp)
jne 0x15660
movq 0x98(%rsp), %rdi
movsd (%rsp), %xmm1
movsd 0x28(%rsp), %xmm2
movsd 0x50(%rsp), %xmm3
movsd 0x48(%rsp), %xmm0
mulsd 0x30(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm3, %xmm2
addsd %xmm0, %xmm2
movsd 0x8(%rsp), %xmm0
movsd 0x20(%rsp), %xmm3
movsd 0x50(%rsp), %xmm5
movsd 0x40(%rsp), %xmm4
mulsd 0x30(%rsp), %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
movsd 0x10(%rsp), %xmm0
movsd 0x20(%rsp), %xmm2
movsd 0x48(%rsp), %xmm4
movsd 0x40(%rsp), %xmm3
mulsd 0x28(%rsp), %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
callq 0x8840
jmp 0x15a58
movq 0x98(%rsp), %rdi
movsd (%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
movsd 0x50(%rsp), %xmm3
movsd 0x78(%rsp), %xmm4
movsd 0x70(%rsp), %xmm2
mulsd 0x58(%rsp), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm4, %xmm3
addsd %xmm2, %xmm3
movsd 0x30(%rsp), %xmm2
movsd 0x48(%rsp), %xmm4
movsd 0x78(%rsp), %xmm6
movsd 0x68(%rsp), %xmm5
mulsd 0x58(%rsp), %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
movsd 0x38(%rsp), %xmm2
movsd 0x48(%rsp), %xmm3
movsd 0x70(%rsp), %xmm5
movsd 0x68(%rsp), %xmm4
mulsd 0x50(%rsp), %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
movsd 0x8(%rsp), %xmm1
movsd 0x20(%rsp), %xmm4
movsd 0x50(%rsp), %xmm5
movsd 0x78(%rsp), %xmm6
movsd 0x70(%rsp), %xmm3
mulsd 0x58(%rsp), %xmm3
movq %xmm3, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm3
mulsd %xmm6, %xmm5
addsd %xmm3, %xmm5
movsd 0x30(%rsp), %xmm3
movsd 0x40(%rsp), %xmm6
movsd 0x78(%rsp), %xmm8
movsd 0x60(%rsp), %xmm7
mulsd 0x58(%rsp), %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
movsd 0x38(%rsp), %xmm3
movsd 0x40(%rsp), %xmm5
movsd 0x70(%rsp), %xmm7
movsd 0x60(%rsp), %xmm6
mulsd 0x50(%rsp), %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
movsd 0x10(%rsp), %xmm1
movsd 0x20(%rsp), %xmm3
movsd 0x48(%rsp), %xmm4
movsd 0x78(%rsp), %xmm5
movsd 0x68(%rsp), %xmm2
mulsd 0x58(%rsp), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm5, %xmm4
addsd %xmm2, %xmm4
movsd 0x28(%rsp), %xmm2
movsd 0x40(%rsp), %xmm5
movsd 0x78(%rsp), %xmm7
movsd 0x60(%rsp), %xmm6
mulsd 0x58(%rsp), %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
movsd 0x38(%rsp), %xmm2
movsd 0x40(%rsp), %xmm4
movsd 0x68(%rsp), %xmm6
movsd 0x60(%rsp), %xmm5
mulsd 0x48(%rsp), %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
movsd 0x18(%rsp), %xmm0
movsd 0x20(%rsp), %xmm3
movsd 0x48(%rsp), %xmm4
movsd 0x70(%rsp), %xmm5
movsd 0x68(%rsp), %xmm2
mulsd 0x50(%rsp), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm5, %xmm4
addsd %xmm2, %xmm4
movsd 0x28(%rsp), %xmm2
movsd 0x40(%rsp), %xmm5
movsd 0x70(%rsp), %xmm7
movsd 0x60(%rsp), %xmm6
mulsd 0x50(%rsp), %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
movsd 0x30(%rsp), %xmm2
movsd 0x40(%rsp), %xmm4
movsd 0x68(%rsp), %xmm6
movsd 0x60(%rsp), %xmm5
mulsd 0x48(%rsp), %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
callq 0x8840
jmp 0x15a5a
movl $0x1, 0xa4(%rsp)
movl 0xa4(%rsp), %eax
addq $0xa8, %rsp
retq
nopw %cs:(%rax,%rax)