// File: /workspace/github_c_makefile_star2_O1/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_do_button_image
NK_LIB nk_bool
nk_do_button_image(nk_flags *state,
    struct nk_command_buffer *out, struct nk_rect bounds,
    struct nk_image img, enum nk_button_behavior b,
    const struct nk_style_button *style, const struct nk_input *in)
{
    int ret;
    struct nk_rect content;

    NK_ASSERT(state);
    NK_ASSERT(style);
    NK_ASSERT(out);
    if (!out || !style || !state)
        return nk_false;

    ret = nk_do_button(state, out, bounds, style, in, b, &content);
    content.x += style->image_padding.x;
    content.y += style->image_padding.y;
    content.w -= 2 * style->image_padding.x;
    content.h -= 2 * style->image_padding.y;

    if (style->draw_begin) style->draw_begin(out, style->userdata);
    nk_draw_button_image(out, &bounds, &content, *state, style, &img);
    if (style->draw_end) style->draw_end(out, style->userdata);
    return ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %r8, 0x8(%rsp)
movq %rcx, %rbx
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %r15
movaps %xmm0, 0x20(%rsp)
movaps %xmm1, 0x30(%rsp)
movlhps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
movups %xmm0, 0x48(%rsp)
testq %rdi, %rdi
jne 0x40596
movq 0x47a81(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x31812(%rip), %rsi     # 0x71d8c
leaq 0x31829(%rip), %rdx     # 0x71daa
movl $0x5ed7, %ecx           # imm = 0x5ED7
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
testq %rbx, %rbx
jne 0x405c9
movq 0x47a4e(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x317df(%rip), %rsi     # 0x71d8c
leaq 0x317f6(%rip), %rdx     # 0x71daa
movl $0x5ed8, %ecx           # imm = 0x5ED8
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
testq %r14, %r14
jne 0x405fc
movq 0x47a1b(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x317ac(%rip), %rsi     # 0x71d8c
leaq 0x317c3(%rip), %rdx     # 0x71daa
movl $0x5ed9, %ecx           # imm = 0x5ED9
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
xorl %r13d, %r13d
testq %r15, %r15
je 0x40702
testq %r14, %r14
je 0x40702
testq %rbx, %rbx
je 0x40702
leaq 0x10(%rsp), %r12
movq %r15, %rdi
movq %r14, %rsi
movaps 0x20(%rsp), %xmm0
movaps 0x30(%rsp), %xmm1
movq %rbx, %rdx
movq 0x8(%rsp), %rcx
movl %ebp, %r8d
movq %r12, %r9
callq 0x4761a
movl %eax, %r13d
movsd 0xa8(%rbx), %xmm0
movsd (%r12), %xmm1
movsd 0x8(%r12), %xmm2
addps %xmm0, %xmm1
movlps %xmm1, (%r12)
addps %xmm0, %xmm0
subps %xmm0, %xmm2
movlps %xmm2, 0x8(%r12)
movq 0xc8(%rbx), %rax
testq %rax, %rax
je 0x40686
movq 0xc0(%rbx), %rsi
movq %r14, %rdi
callq *%rax
movl (%r15), %edx
leaq 0x48(%rsp), %rsi
movq %r14, %rdi
movq %rbx, %rcx
callq 0x47779
movss 0x7c(%rbx), %xmm0
movss 0x2e212(%rip), %xmm1    # 0x6e8b8
mulss %xmm0, %xmm1
cvttss2si %xmm1, %eax
movzbl %al, %eax
imull $0x10101, %eax, %eax    # imm = 0x10101
orl $0xff000000, %eax       # imm = 0xFF000000
ucomiss 0x2e1f1(%rip), %xmm0    # 0x6e8b4
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmovnel %eax, %edx
cmovpl %eax, %edx
movsd 0x10(%rsp), %xmm0
movsd 0x18(%rsp), %xmm1
movq %r14, %rdi
leaq 0x90(%rsp), %rsi
callq 0x134d0
movq 0xd0(%rbx), %rax
testq %rax, %rax
je 0x40702
movq 0xc0(%rbx), %rsi
movq %r14, %rdi
callq *%rax
movl %r13d, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq