// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_draw_button
NK_LIB const struct nk_style_item*
nk_draw_button(struct nk_command_buffer *out,
    const struct nk_rect *bounds, nk_flags state,
    const struct nk_style_button *style)
{
    const struct nk_style_item *background;
    if (state & NK_WIDGET_STATE_HOVER)
        background = &style->hover;
    else if (state & NK_WIDGET_STATE_ACTIVED)
        background = &style->active;
    else background = &style->normal;

    switch (background->type) {
        case NK_STYLE_ITEM_IMAGE:
            nk_draw_image(out, *bounds, &background->data.image, nk_rgb_factor(nk_white, style->color_factor_background));
            break;
        case NK_STYLE_ITEM_NINE_SLICE:
            nk_draw_nine_slice(out, *bounds, &background->data.slice, nk_rgb_factor(nk_white, style->color_factor_background));
            break;
        case NK_STYLE_ITEM_COLOR:
            nk_fill_rect(out, *bounds, style->rounding, nk_rgb_factor(background->data.color, style->color_factor_background));
            nk_stroke_rect(out, *bounds, style->rounding, style->border, nk_rgb_factor(style->border_color, style->color_factor_background));
            break;
    }
    return background;
}

// Assembly:
subq $0xa8, %rsp
movq %rdi, 0xa0(%rsp)
movq %rsi, 0x98(%rsp)
movl %edx, 0x94(%rsp)
movq %rcx, 0x88(%rsp)
movl 0x94(%rsp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x69a5b
movq 0x88(%rsp), %rax
addq $0x28, %rax
movq %rax, 0x80(%rsp)
jmp 0x69a92
movl 0x94(%rsp), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x69a80
movq 0x88(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x80(%rsp)
jmp 0x69a90
movq 0x88(%rsp), %rax
movq %rax, 0x80(%rsp)
jmp 0x69a92
movq 0x80(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x6c(%rsp)
testl %eax, %eax
je 0x69ba1
jmp 0x69aaa
movl 0x6c(%rsp), %eax
subl $0x1, %eax
je 0x69ac3
jmp 0x69ab5
movl 0x6c(%rsp), %eax
subl $0x2, %eax
je 0x69b32
jmp 0x69c87
movq 0xa0(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x80(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x58(%rsp)
movq 0x88(%rsp), %rax
movss 0x7c(%rax), %xmm0
movl 0x477af(%rip), %edi     # 0xb12b0
callq 0x15100
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
movl %eax, %ecx
movq 0x60(%rsp), %rax
movl %ecx, 0x7c(%rsp)
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movl 0x7c(%rsp), %edx
callq 0x14690
jmp 0x69c87
movq 0xa0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x80(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x40(%rsp)
movq 0x88(%rsp), %rax
movss 0x7c(%rax), %xmm0
movl 0x47740(%rip), %edi     # 0xb12b0
callq 0x15100
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rsi
movl %eax, %ecx
movq 0x48(%rsp), %rax
movl %ecx, 0x78(%rsp)
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movl 0x78(%rsp), %edx
callq 0x152a0
jmp 0x69c87
movq 0xa0(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x88(%rsp), %rax
movss 0x7c(%rax), %xmm0
movss 0x9c(%rax), %xmm1
movss %xmm1, 0x14(%rsp)
movq 0x80(%rsp), %rax
movl 0x8(%rax), %edi
callq 0x15100
movq 0x8(%rsp), %rdi
movss 0x14(%rsp), %xmm2
movl %eax, %ecx
movq 0x18(%rsp), %rax
movl %ecx, 0x74(%rsp)
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movl 0x74(%rsp), %esi
callq 0x13f10
movq 0xa0(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x88(%rsp), %rax
movss 0x9c(%rax), %xmm0
movss %xmm0, 0x28(%rsp)
movss 0x98(%rax), %xmm0
movss %xmm0, 0x2c(%rsp)
movss 0x7c(%rax), %xmm0
movl 0x78(%rax), %edi
callq 0x15100
movq 0x20(%rsp), %rdi
movss 0x28(%rsp), %xmm2
movss 0x2c(%rsp), %xmm3
movl %eax, %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x70(%rsp)
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movl 0x70(%rsp), %esi
callq 0x13070
movq 0x80(%rsp), %rax
addq $0xa8, %rsp
retq
nopw (%rax,%rax)