// File: /workspace/github_c_makefile_star2_O1/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_draw_symbol
NK_LIB void
nk_draw_symbol(struct nk_command_buffer *out, enum nk_symbol_type type,
    struct nk_rect content, struct nk_color background, struct nk_color foreground,
    float border_width, const struct nk_user_font *font)
{
    switch (type) {
    case NK_SYMBOL_X:
    case NK_SYMBOL_UNDERSCORE:
    case NK_SYMBOL_PLUS:
    case NK_SYMBOL_MINUS: {
        /* single character text symbol */
        const char *X = (type == NK_SYMBOL_X) ? "x":
            (type == NK_SYMBOL_UNDERSCORE) ? "_":
            (type == NK_SYMBOL_PLUS) ? "+": "-";
        struct nk_text text;
        text.padding = nk_vec2(0,0);
        text.background = background;
        text.text = foreground;
        nk_widget_text(out, content, X, 1, &text, NK_TEXT_CENTERED, font);
    } break;
    case NK_SYMBOL_CIRCLE_SOLID:
    case NK_SYMBOL_CIRCLE_OUTLINE:
    case NK_SYMBOL_RECT_SOLID:
    case NK_SYMBOL_RECT_OUTLINE: {
        /* simple empty/filled shapes */
        if (type == NK_SYMBOL_RECT_SOLID || type == NK_SYMBOL_RECT_OUTLINE) {
            nk_fill_rect(out, content,  0, foreground);
            if (type == NK_SYMBOL_RECT_OUTLINE)
                nk_fill_rect(out, nk_shrink_rect(content, border_width), 0, background);
        } else {
            nk_fill_circle(out, content, foreground);
            if (type == NK_SYMBOL_CIRCLE_OUTLINE)
                nk_fill_circle(out, nk_shrink_rect(content, 1), background);
        }
    } break;
    case NK_SYMBOL_TRIANGLE_UP:
    case NK_SYMBOL_TRIANGLE_DOWN:
    case NK_SYMBOL_TRIANGLE_LEFT:
    case NK_SYMBOL_TRIANGLE_RIGHT: {
        enum nk_heading heading;
        struct nk_vec2 points[3];
        heading = (type == NK_SYMBOL_TRIANGLE_RIGHT) ? NK_RIGHT :
            (type == NK_SYMBOL_TRIANGLE_LEFT) ? NK_LEFT:
            (type == NK_SYMBOL_TRIANGLE_UP) ? NK_UP: NK_DOWN;
        nk_triangle_from_direction(points, content, 0, 0, heading);
        nk_fill_triangle(out, points[0].x, points[0].y, points[1].x, points[1].y,
            points[2].x, points[2].y, foreground);
    } break;
    default:
    case NK_SYMBOL_NONE:
    case NK_SYMBOL_MAX: break;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movl %esi, %r15d
leal -0x1(%r15), %eax
cmpl $0xb, %eax
ja 0x52fce
movq %r8, %r9
movl %ecx, %ebp
movl %edx, %r14d
movq %rdi, %rbx
leaq 0x1bc7f(%rip), %rcx     # 0x6ead4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leal -0x5(%r15), %eax
cmpl $0x1, %eax
movaps %xmm1, 0x10(%rsp)
movaps %xmm0, (%rsp)
ja 0x52eef
movaps %xmm2, %xmm3
xorps %xmm2, %xmm2
movq %rbx, %rdi
movl %ebp, %esi
movaps %xmm3, 0x20(%rsp)
callq 0x12de0
movaps 0x20(%rsp), %xmm3
movaps (%rsp), %xmm1
movaps 0x10(%rsp), %xmm2
cmpl $0x6, %r15d
jne 0x52fce
movaps %xmm3, %xmm0
shufps $0x0, %xmm3, %xmm0      # xmm0 = xmm0[0,0],xmm3[0,0]
addps %xmm1, %xmm0
addss %xmm3, %xmm3
shufps $0x0, %xmm3, %xmm3      # xmm3 = xmm3[0,0,0,0]
movaps %xmm3, %xmm1
maxps %xmm2, %xmm1
subps %xmm3, %xmm1
xorps %xmm2, %xmm2
movq %rbx, %rdi
movl %r14d, %esi
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x12de0
cmpl $0x9, %r15d
je 0x52f51
movl $0x1, %esi
cmpl $0xa, %r15d
je 0x52f56
xorl %esi, %esi
cmpl $0x7, %r15d
setne %sil
addl %esi, %esi
jmp 0x52f56
movq %rbx, %rdi
movl %ebp, %esi
callq 0x13dd0
movaps (%rsp), %xmm0
movaps 0x10(%rsp), %xmm2
cmpl $0x4, %r15d
jne 0x52fce
addps 0x1b6cd(%rip), %xmm0    # 0x6e5e0
movaps 0x1b7c6(%rip), %xmm1    # 0x6e6e0
maxps %xmm2, %xmm1
addps 0x1b93c(%rip), %xmm1    # 0x6e860
movq %rbx, %rdi
movl %r14d, %esi
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x13dd0
cmpl $0xb, %r15d
leaq 0x1fa7d(%rip), %rax     # 0x729c1
leaq 0x1fa78(%rip), %rsi     # 0x729c3
cmoveq %rax, %rsi
jmp 0x52fa8
movl $0x3, %esi
leaq 0x30(%rsp), %r14
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movq %r14, %rdi
callq 0x14120
movss (%r14), %xmm0
movss 0x4(%r14), %xmm1
movss 0x8(%r14), %xmm2
movss 0xc(%r14), %xmm3
movss 0x10(%r14), %xmm4
movss 0x14(%r14), %xmm5
movq %rbx, %rdi
movl %ebp, %esi
callq 0x138e0
jmp 0x52fce
leaq 0x1f5c8(%rip), %rsi     # 0x72567
jmp 0x52fa8
leaq 0x1f04c(%rip), %rsi     # 0x71ff4
leaq 0x30(%rsp), %rcx
movq $0x0, (%rcx)
movl %r14d, 0x8(%rcx)
movl %ebp, 0xc(%rcx)
movq %rbx, %rdi
movl $0x1, %edx
movl $0x12, %r8d
callq 0x45d79
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq