// File: 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 $0x130, %rsp            # imm = 0x130
movlpd %xmm0, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movss %xmm1, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movss 0x10(%rax), %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x20(%rbp), %xmm0
movss 0x55d96(%rip), %xmm1    # 0x1727e4
mulss %xmm1, %xmm0
movss -0x1c(%rbp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x20(%rbp), %xmm0
movss 0x5556b(%rip), %xmm1    # 0x171fd8
mulss %xmm1, %xmm0
movss -0x1c(%rbp), %xmm2
movaps %xmm0, %xmm1
mulss %xmm2, %xmm1
leaq -0x34(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0xbf4c0
movq -0xd8(%rbp), %rsi
leaq -0x8(%rbp), %rdi
callq 0x111670
movlpd %xmm0, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xe7de0
leaq -0x48(%rbp), %rdi
callq 0xe7de0
leaq -0x50(%rbp), %rdi
callq 0xe7de0
movl -0x18(%rbp), %eax
movl %eax, -0xcc(%rbp)
subl $-0x1, %eax
je 0x11ccdf
jmp 0x11cad1
movl -0xcc(%rbp), %eax
subl $0x2, %eax
jb 0x11cbe5
jmp 0x11cae2
movl -0xcc(%rbp), %eax
addl $-0x2, %eax
subl $0x2, %eax
jb 0x11cb06
jmp 0x11caf2
movl -0xcc(%rbp), %eax
subl $0x4, %eax
je 0x11ccdf
jmp 0x11ccfe
cmpl $0x2, -0x18(%rbp)
jne 0x11cb23
movss -0x24(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x24(%rbp)
leaq -0x60(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
xorps %xmm0, %xmm0
movss 0x55c73(%rip), %xmm1    # 0x1727ac
callq 0xbf4c0
movq -0xf8(%rbp), %rdi
movss -0x24(%rbp), %xmm0
callq 0x1116c0
movlpd %xmm0, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0x70(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
movss 0x66ed5(%rip), %xmm0    # 0x183a44
movss 0x66ec5(%rip), %xmm1    # 0x183a3c
movss %xmm1, -0xe4(%rbp)
callq 0xbf4c0
movq -0xf0(%rbp), %rdi
movss -0x24(%rbp), %xmm0
callq 0x1116c0
movss -0xe4(%rbp), %xmm1
movlpd %xmm0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0x80(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
movss 0x66e83(%rip), %xmm0    # 0x183a40
callq 0xbf4c0
movq -0xe0(%rbp), %rdi
movss -0x24(%rbp), %xmm0
callq 0x1116c0
movlpd %xmm0, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0x11ccfe
cmpl $0x0, -0x18(%rbp)
jne 0x11cc02
movss -0x24(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x24(%rbp)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x118(%rbp)
movss 0x55b94(%rip), %xmm0    # 0x1727ac
xorps %xmm1, %xmm1
callq 0xbf4c0
movq -0x118(%rbp), %rdi
movss -0x24(%rbp), %xmm0
callq 0x1116c0
movlpd %xmm0, -0x88(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x110(%rbp)
movss 0x66de2(%rip), %xmm0    # 0x183a3c
movss %xmm0, -0x104(%rbp)
movss 0x66dd6(%rip), %xmm1    # 0x183a40
callq 0xbf4c0
movq -0x110(%rbp), %rdi
movss -0x24(%rbp), %xmm0
callq 0x1116c0
movaps %xmm0, %xmm1
movss -0x104(%rbp), %xmm0
movlpd %xmm1, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x100(%rbp)
movss 0x66d90(%rip), %xmm1    # 0x183a44
callq 0xbf4c0
movq -0x100(%rbp), %rdi
movss -0x24(%rbp), %xmm0
callq 0x1116c0
movlpd %xmm0, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0x11ccfe
leaq 0x58424(%rip), %rdi     # 0x17510a
leaq 0x6d489(%rip), %rsi     # 0x18a176
movl $0xda5, %edx            # imm = 0xDA5
leaq 0x6e15f(%rip), %rcx     # 0x18ae58
callq 0xd180
movq -0x10(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x2c(%rbp), %rdi
movq %rdi, -0x128(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x111670
movq -0x128(%rbp), %rdi
movlpd %xmm0, -0xb8(%rbp)
leaq -0x48(%rbp), %rsi
callq 0x111670
movq -0x128(%rbp), %rdi
movlpd %xmm0, -0xc0(%rbp)
leaq -0x50(%rbp), %rsi
callq 0x111670
movq -0x120(%rbp), %rdi
movlpd %xmm0, -0xc8(%rbp)
movl -0x14(%rbp), %r8d
leaq -0xb8(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
leaq -0xc8(%rbp), %rcx
callq 0x113420
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
nopw %cs:(%rax,%rax)