// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonfreetype/src/outline.c
// Function: moonfreetype_pushoutlinedata
int pushoutlinedata(lua_State *L, FT_Outline outline)
    {
    short i;
    lua_newtable(L);
#if 0
    lua_pushinteger(L, outline.n_contours); // #contours
    lua_setfield(L, -2, "n_contours");
    lua_pushinteger(L, outline.n_points); // #points
    lua_setfield(L, -2, "n_points");
#endif
    /* points */
    lua_newtable(L);
    for(i = 0; i < outline.n_points; i++)
        {
        pushvector(L, outline.points[i]);
        lua_seti(L, -2, i+1);
        }
    lua_setfield(L, -2, "points");
    /* tags */
    lua_newtable(L);
    for(i = 0; i < outline.n_points; i++)
        {
        lua_pushinteger(L, outline.tags[i]);
        lua_seti(L, -2, i+1);
        }
    lua_setfield(L, -2, "tags");
    lua_newtable(L);
    for(i = 0; i < outline.n_points; i++)
        {
        pushpointtype(L,  outline.tags[i]);
        lua_seti(L, -2, i+1);
        }
    lua_setfield(L, -2, "type");
    lua_newtable(L);
    for(i = 0; i < outline.n_points; i++)
        {
        pushscanmode(L,  outline.tags[i]);
        lua_seti(L, -2, i+1);
        }
    lua_setfield(L, -2, "scanmode");
    /* contours */
    lua_newtable(L);
    for(i = 0; i < outline.n_contours; i++)
        {
        pushindex(L, outline.contours[i]);
        lua_seti(L, -2, i+1);
        }
    lua_setfield(L, -2, "contours");
    pushflags(L, outline.flags); // outlineflags
    lua_setfield(L, -2, "flags");
    return 1;   
    }

// Assembly:
subq $0x18, %rsp
leaq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movw $0x0, 0xe(%rsp)
movq (%rsp), %rcx
movswl 0xe(%rsp), %eax
movswl 0x2(%rcx), %ecx
cmpl %ecx, %eax
jge 0x13646
movq (%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x8(%rax), %rax
movswq 0xe(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
callq 0x7bb0
movq 0x10(%rsp), %rdi
movswl 0xe(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
movw 0xe(%rsp), %ax
addw $0x1, %ax
movw %ax, 0xe(%rsp)
jmp 0x135e5
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x7cfa(%rip), %rdx      # 0x1b351
callq 0x74f0
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movw $0x0, 0xe(%rsp)
movq (%rsp), %rcx
movswl 0xe(%rsp), %eax
movswl 0x2(%rcx), %ecx
cmpl %ecx, %eax
jge 0x136c9
movq (%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x10(%rax), %rax
movswq 0xe(%rsp), %rcx
movsbq (%rax,%rcx), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movswl 0xe(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
movw 0xe(%rsp), %ax
addw $0x1, %ax
movw %ax, 0xe(%rsp)
jmp 0x13671
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x7c7e(%rip), %rdx      # 0x1b358
callq 0x74f0
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movw $0x0, 0xe(%rsp)
movq (%rsp), %rcx
movswl 0xe(%rsp), %eax
movswl 0x2(%rcx), %ecx
cmpl %ecx, %eax
jge 0x1374b
movq (%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x10(%rax), %rax
movswq 0xe(%rsp), %rcx
movsbl (%rax,%rcx), %esi
callq 0x138a0
movq 0x10(%rsp), %rdi
movswl 0xe(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
movw 0xe(%rsp), %ax
addw $0x1, %ax
movw %ax, 0xe(%rsp)
jmp 0x136f4
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x8217(%rip), %rdx      # 0x1b973
callq 0x74f0
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movw $0x0, 0xe(%rsp)
movq (%rsp), %rcx
movswl 0xe(%rsp), %eax
movswl 0x2(%rcx), %ecx
cmpl %ecx, %eax
jge 0x137cd
movq (%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x10(%rax), %rax
movswq 0xe(%rsp), %rcx
movsbl (%rax,%rcx), %esi
callq 0x13900
movq 0x10(%rsp), %rdi
movswl 0xe(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
movw 0xe(%rsp), %ax
addw $0x1, %ax
movw %ax, 0xe(%rsp)
jmp 0x13776
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x7b7f(%rip), %rdx      # 0x1b35d
callq 0x74f0
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x73d0
movw $0x0, 0xe(%rsp)
movq (%rsp), %rcx
movswl 0xe(%rsp), %eax
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x1384e
movq (%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x18(%rax), %rax
movswq 0xe(%rsp), %rcx
movswl (%rax,%rcx,2), %esi
callq 0x7ce0
movq 0x10(%rsp), %rdi
movswl 0xe(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x76b0
movw 0xe(%rsp), %ax
addw $0x1, %ax
movw %ax, 0xe(%rsp)
jmp 0x137f8
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x7b07(%rip), %rdx      # 0x1b366
callq 0x74f0
movq (%rsp), %rax
movq 0x10(%rsp), %rdi
movslq 0x20(%rax), %rsi
callq 0x7540
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x6fd4(%rip), %rdx      # 0x1a85b
callq 0x74f0
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)