// File: /workspace/github_c_makefile_star2_O0/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:
subq $0xe8, %rsp
movlpd %xmm0, 0xd8(%rsp)
movlpd %xmm1, 0xe0(%rsp)
movl %esi, 0xd4(%rsp)
movl %edx, 0xd0(%rsp)
movl %ecx, 0xcc(%rsp)
movl %r8d, 0xc8(%rsp)
movq %rdi, 0xc0(%rsp)
leaq 0xa8(%rsp), %rdi
movl 0xd4(%rsp), %esi
callq 0x13870
leaq 0x88(%rsp), %rdi
movl 0xcc(%rsp), %esi
callq 0x13870
leaq 0x98(%rsp), %rdi
movl 0xd0(%rsp), %esi
callq 0x13870
leaq 0x78(%rsp), %rdi
movl 0xc8(%rsp), %esi
callq 0x13870
cmpq $0x0, 0xc0(%rsp)
jne 0x39d39
movq 0x8b2e3(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x77689(%rip), %rsi     # 0xb13a0
leaq 0x776a0(%rip), %rdx     # 0xb13be
movl $0x28fb, %ecx           # imm = 0x28FB
movb $0x0, %al
callq 0x13ec0
movq 0x8b2bf(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x39d3b
cmpq $0x0, 0xc0(%rsp)
jne 0x39d4b
jmp 0x3a046
movq 0xc0(%rsp), %rdi
movq 0xc0(%rsp), %rax
movq 0x88(%rax), %rsi
callq 0x388c0
movq 0xc0(%rsp), %rax
movl 0xcc(%rax), %eax
movw %ax, 0x6e(%rsp)
movq 0xc0(%rsp), %rdi
movl $0x4, %esi
callq 0x37600
movq %rax, 0xb8(%rsp)
movq 0xc0(%rsp), %rdi
movl $0x6, %esi
callq 0x37730
movq %rax, 0x70(%rsp)
cmpq $0x0, 0xb8(%rsp)
je 0x39dbe
cmpq $0x0, 0x70(%rsp)
jne 0x39dc3
jmp 0x3a046
movw 0x6e(%rsp), %cx
movq 0x70(%rsp), %rax
movw %cx, (%rax)
movzwl 0x6e(%rsp), %eax
incl %eax
movw %ax, %cx
movq 0x70(%rsp), %rax
movw %cx, 0x2(%rax)
movzwl 0x6e(%rsp), %eax
addl $0x2, %eax
movw %ax, %cx
movq 0x70(%rsp), %rax
movw %cx, 0x4(%rax)
movw 0x6e(%rsp), %cx
movq 0x70(%rsp), %rax
movw %cx, 0x6(%rax)
movzwl 0x6e(%rsp), %eax
addl $0x2, %eax
movw %ax, %cx
movq 0x70(%rsp), %rax
movw %cx, 0x8(%rax)
movzwl 0x6e(%rsp), %eax
addl $0x3, %eax
movw %ax, %cx
movq 0x70(%rsp), %rax
movw %cx, 0xa(%rax)
movq 0xb8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xc0(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x10(%rsp)
movss 0xd8(%rsp), %xmm0
movss 0xdc(%rsp), %xmm1
callq 0x13460
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movlpd %xmm0, 0x64(%rsp)
movq 0xc0(%rsp), %rax
movsd 0x64(%rsp), %xmm0
movsd 0x90(%rax), %xmm1
movsd 0xa8(%rsp), %xmm2
movsd 0xb0(%rsp), %xmm3
callq 0x378c0
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0xc0(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x20(%rsp)
movss 0xe0(%rsp), %xmm2
movss 0xd8(%rsp), %xmm0
movss 0xdc(%rsp), %xmm1
addss %xmm2, %xmm0
callq 0x13460
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movlpd %xmm0, 0x5c(%rsp)
movq 0xc0(%rsp), %rax
movsd 0x5c(%rsp), %xmm0
movsd 0x90(%rax), %xmm1
movsd 0x98(%rsp), %xmm2
movsd 0xa0(%rsp), %xmm3
callq 0x378c0
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0xc0(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x30(%rsp)
movss 0xe0(%rsp), %xmm2
movss 0xd8(%rsp), %xmm0
movss 0xdc(%rsp), %xmm1
addss %xmm2, %xmm0
movss 0xe4(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
movlpd %xmm0, 0x54(%rsp)
movq 0xc0(%rsp), %rax
movsd 0x54(%rsp), %xmm0
movsd 0x90(%rax), %xmm1
movsd 0x88(%rsp), %xmm2
movsd 0x90(%rsp), %xmm3
callq 0x378c0
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xc0(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x40(%rsp)
movss 0xd8(%rsp), %xmm0
movss 0xdc(%rsp), %xmm1
movss 0xe4(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rsi
movlpd %xmm0, 0x4c(%rsp)
movq 0xc0(%rsp), %rax
movsd 0x4c(%rsp), %xmm0
movsd 0x90(%rax), %xmm1
movsd 0x78(%rsp), %xmm2
movsd 0x80(%rsp), %xmm3
callq 0x378c0
movq %rax, 0xb8(%rsp)
addq $0xe8, %rsp
retq
nop