// File: /workspace/github_c_makefile_star2_O3/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 $0x48, %rsp
movq %r8, %rbp
movq %rcx, %rbx
movl %edx, %r13d
movq %rsi, %r14
movq %rdi, %r15
movaps %xmm0, 0x10(%rsp)
movaps %xmm1, 0x20(%rsp)
movlhps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
movups %xmm0, 0x38(%rsp)
testq %rdi, %rdi
jne 0x3fcf1
movq 0x47326(%rip), %r12     # 0x86ff0
movq (%r12), %rdi
leaq 0x310c7(%rip), %rsi     # 0x70d9c
leaq 0x310de(%rip), %rdx     # 0x70dba
movl $0x5ed7, %ecx           # imm = 0x5ED7
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
testq %rbx, %rbx
jne 0x3fd24
movq 0x472f3(%rip), %r12     # 0x86ff0
movq (%r12), %rdi
leaq 0x31094(%rip), %rsi     # 0x70d9c
leaq 0x310ab(%rip), %rdx     # 0x70dba
movl $0x5ed8, %ecx           # imm = 0x5ED8
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
testq %r14, %r14
je 0x3fe27
movq %rbp, %rcx
testq %rbx, %rbx
sete %al
testq %r15, %r15
sete %dl
xorl %ebp, %ebp
orb %al, %dl
jne 0x3fe55
movq %rsp, %r12
movq %r15, %rdi
movq %r14, %rsi
movaps 0x10(%rsp), %xmm0
movaps 0x20(%rsp), %xmm1
movq %rbx, %rdx
movl %r13d, %r8d
movq %r12, %r9
callq 0x46a33
movl %eax, %ebp
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 0x3fdaa
movq 0xc0(%rbx), %rsi
movq %r14, %rdi
callq *%rax
movl (%r15), %edx
leaq 0x38(%rsp), %rsi
movq %r14, %rdi
movq %rbx, %rcx
callq 0x46b8f
movss 0x7c(%rbx), %xmm0
movss 0x2dade(%rip), %xmm1    # 0x6d8a8
mulss %xmm0, %xmm1
cvttss2si %xmm1, %eax
movzbl %al, %eax
imull $0x10101, %eax, %eax    # imm = 0x10101
orl $0xff000000, %eax       # imm = 0xFF000000
ucomiss 0x2dabd(%rip), %xmm0    # 0x6d8a4
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmovnel %eax, %edx
cmovpl %eax, %edx
movsd (%rsp), %xmm0
movsd 0x8(%rsp), %xmm1
movq %r14, %rdi
leaq 0x80(%rsp), %rsi
callq 0x134d0
movq 0xd0(%rbx), %rax
testq %rax, %rax
je 0x3fe55
movq 0xc0(%rbx), %rsi
movq %r14, %rdi
callq *%rax
jmp 0x3fe55
movq 0x471c2(%rip), %rbx     # 0x86ff0
movq (%rbx), %rdi
leaq 0x30f64(%rip), %rsi     # 0x70d9c
leaq 0x30f7b(%rip), %rdx     # 0x70dba
xorl %ebp, %ebp
movl $0x5ed9, %ecx           # imm = 0x5ED9
xorl %eax, %eax
callq 0x12d80
movq (%rbx), %rdi
callq 0x13780
movl %ebp, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq