// File: /workspace/github_c_makefile_star2_O3/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_draw_list_fill_rect_multi_color
NK_API void
nk_draw_list_fill_rect_multi_color(struct nk_draw_list *list, struct nk_rect rect,
    struct nk_color left, struct nk_color top, struct nk_color right,
    struct nk_color bottom)
{
    void *vtx;
    struct nk_colorf col_left, col_top;
    struct nk_colorf col_right, col_bottom;
    nk_draw_index *idx;
    nk_draw_index index;

    nk_color_fv(&col_left.r, left);
    nk_color_fv(&col_right.r, right);
    nk_color_fv(&col_top.r, top);
    nk_color_fv(&col_bottom.r, bottom);

    NK_ASSERT(list);
    if (!list) return;

    nk_draw_list_push_image(list, list->config.tex_null.texture);
    index = (nk_draw_index)list->vertex_count;
    vtx = nk_draw_list_alloc_vertices(list, 4);
    idx = nk_draw_list_alloc_elements(list, 6);
    if (!vtx || !idx) return;

    idx[0] = (nk_draw_index)(index+0); idx[1] = (nk_draw_index)(index+1);
    idx[2] = (nk_draw_index)(index+2); idx[3] = (nk_draw_index)(index+0);
    idx[4] = (nk_draw_index)(index+2); idx[5] = (nk_draw_index)(index+3);

    vtx = nk_draw_vertex(vtx, &list->config, nk_vec2(rect.x, rect.y), list->config.tex_null.uv, col_left);
    vtx = nk_draw_vertex(vtx, &list->config, nk_vec2(rect.x + rect.w, rect.y), list->config.tex_null.uv, col_top);
    vtx = nk_draw_vertex(vtx, &list->config, nk_vec2(rect.x + rect.w, rect.y + rect.h), list->config.tex_null.uv, col_right);
    vtx = nk_draw_vertex(vtx, &list->config, nk_vec2(rect.x, rect.y + rect.h), list->config.tex_null.uv, col_bottom);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
testq %rdi, %rdi
je 0x2b34b
movl %ecx, %r12d
movl %edx, %r15d
movl %esi, %r13d
movq %rdi, %rbx
movl %r8d, 0x10(%rsp)
movaps %xmm0, 0x20(%rsp)
movaps %xmm1, (%rsp)
movq 0x88(%rdi), %rsi
callq 0x2a798
movl 0xcc(%rbx), %r14d
movl $0x4, %esi
movq %rbx, %rdi
callq 0x29cac
movq %rax, %rbp
movl $0x6, %esi
movq %rbx, %rdi
callq 0x29d2b
testq %rbp, %rbp
setne %cl
testq %rax, %rax
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x2b388
movl %r13d, %edx
shrl $0x10, %edx
movd %r13d, %xmm0
shrl $0x18, %r13d
pxor %xmm4, %xmm4
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
punpcklwd %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3]
cvtdq2ps %xmm0, %xmm2
movaps 0x42460(%rip), %xmm0    # 0x6d5c0
mulps %xmm0, %xmm2
movl $0xff, %ecx
andl %ecx, %edx
cvtsi2ss %edx, %xmm3
movss 0x4273a(%rip), %xmm1    # 0x6d8b0
mulss %xmm1, %xmm3
cvtsi2ss %r13d, %xmm5
mulss %xmm1, %xmm5
unpcklps %xmm5, %xmm3            # xmm3 = xmm3[0],xmm5[0],xmm3[1],xmm5[1]
movl %r12d, %edx
shrl $0x10, %edx
movd %r12d, %xmm5
shrl $0x18, %r12d
punpcklbw %xmm4, %xmm5    # xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]
punpcklwd %xmm4, %xmm5    # xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3]
andl %ecx, %edx
cvtsi2ss %edx, %xmm6
cvtdq2ps %xmm5, %xmm7
xorps %xmm5, %xmm5
cvtsi2ss %r12d, %xmm5
mulps %xmm0, %xmm7
movaps %xmm7, 0x70(%rsp)
mulss %xmm1, %xmm6
mulss %xmm1, %xmm5
unpcklps %xmm5, %xmm6            # xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
movaps %xmm6, 0x60(%rsp)
movl %r15d, %edx
shrl $0x10, %edx
movd %r15d, %xmm5
shrl $0x18, %r15d
punpcklbw %xmm4, %xmm5    # xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]
punpcklwd %xmm4, %xmm5    # xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3]
cvtdq2ps %xmm5, %xmm5
mulps %xmm0, %xmm5
movaps %xmm5, 0x50(%rsp)
andl %ecx, %edx
xorps %xmm6, %xmm6
cvtsi2ss %edx, %xmm6
mulss %xmm1, %xmm6
xorps %xmm5, %xmm5
cvtsi2ss %r15d, %xmm5
mulss %xmm1, %xmm5
unpcklps %xmm5, %xmm6            # xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
movaps %xmm6, 0x30(%rsp)
movl 0x10(%rsp), %esi
movl %esi, %edx
shrl $0x10, %edx
movd %esi, %xmm5
shrl $0x18, %esi
punpcklbw %xmm4, %xmm5    # xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3],xmm5[4],xmm4[4],xmm5[5],xmm4[5],xmm5[6],xmm4[6],xmm5[7],xmm4[7]
punpcklwd %xmm4, %xmm5    # xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3]
andl %ecx, %edx
xorps %xmm6, %xmm6
cvtsi2ss %edx, %xmm6
cvtdq2ps %xmm5, %xmm5
xorps %xmm4, %xmm4
cvtsi2ss %esi, %xmm4
mulps %xmm0, %xmm5
movaps %xmm5, 0x10(%rsp)
mulss %xmm1, %xmm6
mulss %xmm1, %xmm4
unpcklps %xmm4, %xmm6            # xmm6 = xmm6[0],xmm4[0],xmm6[1],xmm4[1]
movaps %xmm6, 0x40(%rsp)
movw %r14w, (%rax)
leal 0x1(%r14), %ecx
movw %cx, 0x2(%rax)
leal 0x2(%r14), %ecx
movw %cx, 0x4(%rax)
movw %r14w, 0x6(%rax)
movw %cx, 0x8(%rax)
addl $0x3, %r14d
movw %r14w, 0xa(%rax)
movsd 0x90(%rbx), %xmm1
movq 0x98(%rbx), %rsi
movq 0xa0(%rbx), %rdx
movq %rbp, %rdi
movaps 0x20(%rsp), %xmm0
callq 0x29d6f
movsd 0x90(%rbx), %xmm1
movq 0x98(%rbx), %rsi
movq 0xa0(%rbx), %rdx
movaps (%rsp), %xmm2
movaps 0x20(%rsp), %xmm0
addps %xmm0, %xmm2
movaps %xmm2, (%rsp)
shufps $0x1, %xmm2, %xmm0      # xmm0 = xmm0[1,0],xmm2[0,0]
shufps $0xe2, %xmm2, %xmm0     # xmm0 = xmm0[2,0],xmm2[2,3]
movq %rax, %rdi
movaps 0x50(%rsp), %xmm2
movaps 0x30(%rsp), %xmm3
callq 0x29d6f
movsd 0x90(%rbx), %xmm1
movq 0x98(%rbx), %rsi
movq 0xa0(%rbx), %rdx
movq %rax, %rdi
movaps (%rsp), %xmm0
movaps 0x70(%rsp), %xmm2
movaps 0x60(%rsp), %xmm3
callq 0x29d6f
movaps (%rsp), %xmm0
movaps 0x20(%rsp), %xmm1
shufps $0x1, %xmm1, %xmm0      # xmm0 = xmm0[1,0],xmm1[0,0]
shufps $0xe2, %xmm1, %xmm0     # xmm0 = xmm0[2,0],xmm1[2,3]
movsd 0x90(%rbx), %xmm1
movq 0x98(%rbx), %rsi
movq 0xa0(%rbx), %rdx
movq %rax, %rdi
movaps 0x10(%rsp), %xmm2
movaps 0x40(%rsp), %xmm3
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x29d6f
movq 0x5bc9e(%rip), %rbx     # 0x86ff0
movq (%rbx), %rdi
leaq 0x45a40(%rip), %rsi     # 0x70d9c
leaq 0x45a57(%rip), %rdx     # 0x70dba
movl $0x28fb, %ecx           # imm = 0x28FB
xorl %eax, %eax
callq 0x12d80
movq (%rbx), %rdi
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x13780
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq