// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/structs.c
// Function: moonnuklear_pushcommand
int pushcommand(lua_State *L, nk_command_t *p)
    {
    lua_newtable(L);
    SetEnum(type, "type", pushcommandtype);
    switch(p->type)
        {
        case NK_COMMAND_NOP: return 1;
        case NK_COMMAND_SCISSOR: return command_scissor(L, p);
        case NK_COMMAND_LINE: return command_line(L, p);
        case NK_COMMAND_CURVE: return command_curve(L, p);
        case NK_COMMAND_RECT: return command_rect(L, p);
        case NK_COMMAND_RECT_FILLED: return command_rect_filled(L, p);
        case NK_COMMAND_RECT_MULTI_COLOR: return command_rect_multi_color(L, p);
        case NK_COMMAND_TRIANGLE: return command_triangle(L, p);
        case NK_COMMAND_TRIANGLE_FILLED: return command_triangle_filled(L, p);
        case NK_COMMAND_CIRCLE: return command_circle(L, p);
        case NK_COMMAND_CIRCLE_FILLED: return command_circle_filled(L, p);
        case NK_COMMAND_ARC: return command_arc(L, p);
        case NK_COMMAND_ARC_FILLED: return command_arc_filled(L, p);
        case NK_COMMAND_POLYGON: return command_polygon(L, p);
        case NK_COMMAND_POLYGON_FILLED: return command_polygon_filled(L, p);
        case NK_COMMAND_POLYLINE: return command_polyline(L, p);
        case NK_COMMAND_TEXT: return command_text(L, p);
        case NK_COMMAND_IMAGE: return command_image(L, p);
//      case NK_COMMAND_CUSTOM: return command_custom(L, p);
        default: break;
        }
    return unexpected(L);
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x18(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x138b0
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movl (%rax), %edx
movl $0x17, %esi
callq 0x13660
movq 0x18(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x1ea9b(%rip), %rdx     # 0xb53ce
callq 0x13b80
movq 0x10(%rsp), %rax
movl (%rax), %eax
movq %rax, 0x8(%rsp)
subq $0x11, %rax
ja 0x96af9
movq 0x8(%rsp), %rax
leaq 0x1b966(%rip), %rcx     # 0xb22c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x96b30
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x96c00
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x96cd0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x96e20
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x96f70
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x970a0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x97220
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x97320
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x973f0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x97520
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x97620
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x977a0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x978f0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x979f0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x97ac0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x97bc0
movl %eax, 0x24(%rsp)
jmp 0x96b1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x97d40
movl %eax, 0x24(%rsp)
jmp 0x96b1e
jmp 0x96afb
movq 0x18(%rsp), %rdi
leaq 0x10618(%rip), %rsi     # 0xa711f
leaq 0x1b9fa(%rip), %rdx     # 0xb2508
movl $0x32b, %ecx            # imm = 0x32B
movb $0x0, %al
callq 0x14bf0
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)