// File: /workspace/github_cpp_makefile_star2_O1/Ciaxur[P]yagb-emu/include/imgui/imgui_draw.cpp
// Function: ImGui::RenderArrow(ImDrawList*, ImVec2, unsigned int, int, float)
void ImGui::RenderArrow(ImDrawList* draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale)
{
    const float h = draw_list->_Data->FontSize * 1.00f;
    float r = h * 0.40f * scale;
    ImVec2 center = pos + ImVec2(h * 0.50f, h * 0.50f * scale);

    ImVec2 a, b, c;
    switch (dir)
    {
    case ImGuiDir_Up:
    case ImGuiDir_Down:
        if (dir == ImGuiDir_Up) r = -r;
        a = ImVec2(+0.000f, +0.750f) * r;
        b = ImVec2(-0.866f, -0.750f) * r;
        c = ImVec2(+0.866f, -0.750f) * r;
        break;
    case ImGuiDir_Left:
    case ImGuiDir_Right:
        if (dir == ImGuiDir_Left) r = -r;
        a = ImVec2(+0.750f, +0.000f) * r;
        b = ImVec2(-0.750f, +0.866f) * r;
        c = ImVec2(-0.750f, -0.866f) * r;
        break;
    case ImGuiDir_None:
    case ImGuiDir_COUNT:
        IM_ASSERT(0);
        break;
    }
    draw_list->AddTriangleFilled(center + a, center + b, center + c, col);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %esi, %r8d
movq 0x38(%rdi), %rax
movss 0x10(%rax), %xmm2
incl %edx
cmpl $0x5, %edx
ja 0x839ea
movss 0x395ba(%rip), %xmm3    # 0xbcefc
mulss %xmm2, %xmm3
mulss %xmm1, %xmm3
leaq 0x450bb(%rip), %rax     # 0xc8a0c
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
xorps 0x3365f(%rip), %xmm3    # 0xb6fc0
movss 0x33f3b(%rip), %xmm4    # 0xb78a4
mulss %xmm3, %xmm4
xorps %xmm5, %xmm5
mulss %xmm3, %xmm5
unpcklps %xmm5, %xmm4            # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
movss 0x4501d(%rip), %xmm6    # 0xc899c
mulss %xmm3, %xmm6
movss 0x45015(%rip), %xmm7    # 0xc89a0
mulss %xmm3, %xmm7
movaps %xmm6, %xmm5
unpcklps %xmm7, %xmm5            # xmm5 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]
mulss 0x45007(%rip), %xmm3    # 0xc89a4
unpcklps %xmm3, %xmm6            # xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]
movaps %xmm6, %xmm3
jmp 0x839f3
xorps 0x33614(%rip), %xmm3    # 0xb6fc0
xorps %xmm4, %xmm4
mulss %xmm3, %xmm4
movss 0x33ee9(%rip), %xmm5    # 0xb78a4
mulss %xmm3, %xmm5
unpcklps %xmm5, %xmm4            # xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
movss 0x44fda(%rip), %xmm5    # 0xc89a4
mulss %xmm3, %xmm5
movss 0x44fc6(%rip), %xmm6    # 0xc899c
mulss %xmm3, %xmm6
unpcklps %xmm6, %xmm5            # xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
mulss 0x44fbb(%rip), %xmm3    # 0xc89a0
unpcklps %xmm6, %xmm3            # xmm3 = xmm3[0],xmm6[0],xmm3[1],xmm6[1]
jmp 0x839f3
xorps %xmm3, %xmm3
xorps %xmm5, %xmm5
xorps %xmm4, %xmm4
movaps %xmm0, %xmm6
mulss 0x33606(%rip), %xmm2    # 0xb7004
shufps $0x55, %xmm0, %xmm6     # xmm6 = xmm6[1,1],xmm0[1,1]
mulss %xmm2, %xmm1
addss %xmm6, %xmm1
addss %xmm0, %xmm2
movaps %xmm2, %xmm0
addss %xmm4, %xmm0
shufps $0x55, %xmm4, %xmm4     # xmm4 = xmm4[1,1,1,1]
addss %xmm1, %xmm4
unpcklps %xmm4, %xmm0            # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
leaq -0x18(%rbp), %rsi
movlps %xmm0, (%rsi)
movaps %xmm2, %xmm0
addss %xmm5, %xmm0
shufps $0x55, %xmm5, %xmm5     # xmm5 = xmm5[1,1,1,1]
addss %xmm1, %xmm5
unpcklps %xmm5, %xmm0            # xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
leaq -0x10(%rbp), %rdx
movlps %xmm0, (%rdx)
addss %xmm3, %xmm2
shufps $0x55, %xmm3, %xmm3     # xmm3 = xmm3[1,1,1,1]
addss %xmm1, %xmm3
unpcklps %xmm3, %xmm2            # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
leaq -0x8(%rbp), %rcx
movlps %xmm2, (%rcx)
callq 0x7a706
addq $0x20, %rsp
popq %rbp
retq
leaq 0x36684(%rip), %rdi     # 0xba0ec
leaq 0x4b767(%rip), %rsi     # 0xcf1d6
leaq 0x4c33b(%rip), %rcx     # 0xcfdb1
movl $0xda5, %edx            # imm = 0xDA5
callq 0xc140