// File: /workspace/github_c_makefile_star2_O2/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_draw_list_push_rect_uv
NK_INTERN void
nk_draw_list_push_rect_uv(struct nk_draw_list *list, struct nk_vec2 a,
    struct nk_vec2 c, struct nk_vec2 uva, struct nk_vec2 uvc,
    struct nk_color color)
{
    void *vtx;
    struct nk_vec2 uvb;
    struct nk_vec2 uvd;
    struct nk_vec2 b;
    struct nk_vec2 d;

    struct nk_colorf col;
    nk_draw_index *idx;
    nk_draw_index index;
    NK_ASSERT(list);
    if (!list) return;

    nk_color_fv(&col.r, color);
    uvb = nk_vec2(uvc.x, uva.y);
    uvd = nk_vec2(uva.x, uvc.y);
    b = nk_vec2(c.x, a.y);
    d = nk_vec2(a.x, c.y);

    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, a, uva, col);
    vtx = nk_draw_vertex(vtx, &list->config, b, uvb, col);
    vtx = nk_draw_vertex(vtx, &list->config, c, uvc, col);
    vtx = nk_draw_vertex(vtx, &list->config, d, uvd, col);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xb0, %rsp
movaps %xmm3, 0x30(%rsp)
movaps %xmm2, 0xa0(%rsp)
movaps %xmm1, 0x20(%rsp)
movaps %xmm0, 0x90(%rsp)
movq %rdi, %rbx
leaq 0x40(%rsp), %rdi
callq 0x12830
movl 0xcc(%rbx), %r15d
pushq $0x4
popq %rsi
movq %rbx, %rdi
callq 0x283af
movq %rax, %r14
pushq $0x6
popq %rsi
movq %rbx, %rdi
callq 0x2842e
testq %r14, %r14
setne %cl
testq %rax, %rax
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x29e0b
movaps 0x20(%rsp), %xmm2
movaps %xmm2, %xmm1
movaps 0x90(%rsp), %xmm0
shufps $0x1, %xmm0, %xmm1      # xmm1 = xmm1[1,0],xmm0[0,0]
shufps $0xe2, %xmm0, %xmm1     # xmm1 = xmm1[2,0],xmm0[2,3]
movaps %xmm1, 0x80(%rsp)
movaps %xmm0, %xmm1
shufps $0x1, %xmm2, %xmm1      # xmm1 = xmm1[1,0],xmm2[0,0]
shufps $0xe2, %xmm2, %xmm1     # xmm1 = xmm1[2,0],xmm2[2,3]
movaps %xmm1, 0x60(%rsp)
movaps 0x30(%rsp), %xmm3
movaps %xmm3, %xmm2
movaps 0xa0(%rsp), %xmm1
shufps $0x1, %xmm1, %xmm2      # xmm2 = xmm2[1,0],xmm1[0,0]
shufps $0xe2, %xmm1, %xmm2     # xmm2 = xmm2[2,0],xmm1[2,3]
movaps %xmm2, 0x70(%rsp)
movaps %xmm1, %xmm2
shufps $0x1, %xmm3, %xmm2      # xmm2 = xmm2[1,0],xmm3[0,0]
shufps $0xe2, %xmm3, %xmm2     # xmm2 = xmm2[2,0],xmm3[2,3]
movaps %xmm2, 0x50(%rsp)
movw %r15w, (%rax)
leal 0x1(%r15), %ecx
movw %cx, 0x2(%rax)
leal 0x2(%r15), %ecx
movw %cx, 0x4(%rax)
movw %r15w, 0x6(%rax)
movw %cx, 0x8(%rax)
addl $0x3, %r15d
movw %r15w, 0xa(%rax)
addq $0x70, %rbx
movsd 0x40(%rsp), %xmm2
movaps %xmm2, 0x10(%rsp)
movsd 0x48(%rsp), %xmm3
movaps %xmm3, (%rsp)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x28470
movq %rax, %rdi
movq %rbx, %rsi
movaps 0x60(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movaps 0x10(%rsp), %xmm2
movaps (%rsp), %xmm3
callq 0x28470
movq %rax, %rdi
movq %rbx, %rsi
movaps 0x20(%rsp), %xmm0
movaps 0x30(%rsp), %xmm1
movaps 0x10(%rsp), %xmm2
movaps (%rsp), %xmm3
callq 0x28470
movq %rax, %rdi
movq %rbx, %rsi
movaps 0x80(%rsp), %xmm0
movaps 0x70(%rsp), %xmm1
movaps 0x10(%rsp), %xmm2
movaps (%rsp), %xmm3
addq $0xb0, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x28470
addq $0xb0, %rsp
popq %rbx
popq %r14
popq %r15
retq