// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonglmath/src/mat.c
// Function: ToString_
static int ToString_(lua_State *L, mat_t m, size_t nr, size_t nc)
/* With snprintf because lua_pushfstring does not support the %g conversion specifier */
    {
#define SZ 512
#define space (SZ-p)
    char str[SZ];
    int p=0;
    size_t i;
    p += snprintf(str, space, "{");
    for(i=0; i < nr; i++)
        {
        switch(nc)
            {
            case 2: p+=snprintf(str+p, space, "{ "FMT", "FMT" }, ", 
                            m[i][0], m[i][1]); break;
            case 3: p+=snprintf(str+p, space, "{ "FMT", "FMT", "FMT" }, ",
                            m[i][0], m[i][1], m[i][2]); break;
            case 4: p+=snprintf(str+p, space, "{ "FMT", "FMT", "FMT", "FMT" }, ", 
                            m[i][0], m[i][1], m[i][2], m[i][3]); break;
            default:
                return luaL_error(L, UNEXPECTED_ERROR);
            }
        if(space<0)
            { 
            /* truncate */
            p = SZ - 5; 
            p+=snprintf(str+p, space, " ...");
            lua_pushlstring(L, str, p);
            return 1;
            }
        }
    p-=2; /* strip the last separator */
    p+=snprintf(str+p, space, "}");
    lua_pushlstring(L, str, p);
    return 1;
#undef space
#undef SZ
    }

// Assembly:
subq $0x248, %rsp            # imm = 0x248
movq %rdi, 0x238(%rsp)
movq %rsi, 0x230(%rsp)
movq %rdx, 0x228(%rsp)
movq %rcx, 0x220(%rsp)
movl $0x0, 0x1c(%rsp)
leaq 0x20(%rsp), %rdi
movl $0x200, %eax            # imm = 0x200
subl 0x1c(%rsp), %eax
movslq %eax, %rsi
leaq 0xbe69(%rip), %rdx      # 0x235e0
movb $0x0, %al
callq 0x8420
addl 0x1c(%rsp), %eax
movl %eax, 0x1c(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x228(%rsp), %rax
jae 0x179fb
movq 0x220(%rsp), %rax
movq %rax, 0x8(%rsp)
subq $0x2, %rax
je 0x177d8
jmp 0x177b7
movq 0x8(%rsp), %rax
subq $0x3, %rax
je 0x1783d
jmp 0x177c4
movq 0x8(%rsp), %rax
subq $0x4, %rax
je 0x178bb
jmp 0x1794f
leaq 0x20(%rsp), %rdi
movslq 0x1c(%rsp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl 0x1c(%rsp), %eax
movslq %eax, %rsi
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm1
leaq 0xbdb9(%rip), %rdx      # 0x235e2
movb $0x2, %al
callq 0x8420
addl 0x1c(%rsp), %eax
movl %eax, 0x1c(%rsp)
jmp 0x1797d
leaq 0x20(%rsp), %rdi
movslq 0x1c(%rsp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl 0x1c(%rsp), %eax
movslq %eax, %rsi
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm1
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd 0x10(%rax), %xmm2
leaq 0xbd48(%rip), %rdx      # 0x235ef
movb $0x3, %al
callq 0x8420
addl 0x1c(%rsp), %eax
movl %eax, 0x1c(%rsp)
jmp 0x1797d
leaq 0x20(%rsp), %rdi
movslq 0x1c(%rsp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl 0x1c(%rsp), %eax
movslq %eax, %rsi
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm1
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd 0x10(%rax), %xmm2
movq 0x230(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd 0x18(%rax), %xmm3
leaq 0xbcc2(%rip), %rdx      # 0x23600
movb $0x4, %al
callq 0x8420
addl 0x1c(%rsp), %eax
movl %eax, 0x1c(%rsp)
jmp 0x1797d
movq 0x238(%rsp), %rdi
leaq 0xb716(%rip), %rsi      # 0x23074
leaq 0xbc75(%rip), %rdx      # 0x235da
movl $0xf0, %ecx
movb $0x0, %al
callq 0x8b30
movl %eax, 0x244(%rsp)
jmp 0x17a57
movl $0x200, %eax            # imm = 0x200
subl 0x1c(%rsp), %eax
cmpl $0x0, %eax
jge 0x179e6
movl $0x1fb, 0x1c(%rsp)      # imm = 0x1FB
leaq 0x20(%rsp), %rdi
movslq 0x1c(%rsp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl 0x1c(%rsp), %eax
movslq %eax, %rsi
leaq 0xb6e1(%rip), %rdx      # 0x23094
movb $0x0, %al
callq 0x8420
addl 0x1c(%rsp), %eax
movl %eax, 0x1c(%rsp)
movq 0x238(%rsp), %rdi
leaq 0x20(%rsp), %rsi
movslq 0x1c(%rsp), %rdx
callq 0x8a00
movl $0x1, 0x244(%rsp)
jmp 0x17a57
jmp 0x179e8
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1778f
movl 0x1c(%rsp), %eax
subl $0x2, %eax
movl %eax, 0x1c(%rsp)
leaq 0x20(%rsp), %rdi
movslq 0x1c(%rsp), %rax
addq %rax, %rdi
movl $0x200, %eax            # imm = 0x200
subl 0x1c(%rsp), %eax
movslq %eax, %rsi
leaq 0xbbef(%rip), %rdx      # 0x23615
movb $0x0, %al
callq 0x8420
addl 0x1c(%rsp), %eax
movl %eax, 0x1c(%rsp)
movq 0x238(%rsp), %rdi
leaq 0x20(%rsp), %rsi
movslq 0x1c(%rsp), %rdx
callq 0x8a00
movl $0x1, 0x244(%rsp)
movl 0x244(%rsp), %eax
addq $0x248, %rsp            # imm = 0x248
retq
nopw %cs:(%rax,%rax)