// File: /workspace/github_cpp_makefile_star2_O3/Ciaxur[P]yagb-emu/include/imgui/imgui_demo.cpp
// Function: ShowExampleMenuFile()
static void ShowExampleMenuFile()
{
    ImGui::MenuItem("(demo menu)", NULL, false, false);
    if (ImGui::MenuItem("New")) {}
    if (ImGui::MenuItem("Open", "Ctrl+O")) {}
    if (ImGui::BeginMenu("Open Recent"))
    {
        ImGui::MenuItem("fish_hat.c");
        ImGui::MenuItem("fish_hat.inl");
        ImGui::MenuItem("fish_hat.h");
        if (ImGui::BeginMenu("More.."))
        {
            ImGui::MenuItem("Hello");
            ImGui::MenuItem("Sailor");
            if (ImGui::BeginMenu("Recurse.."))
            {
                ShowExampleMenuFile();
                ImGui::EndMenu();
            }
            ImGui::EndMenu();
        }
        ImGui::EndMenu();
    }
    if (ImGui::MenuItem("Save", "Ctrl+S")) {}
    if (ImGui::MenuItem("Save As..")) {}

    ImGui::Separator();
    if (ImGui::BeginMenu("Options"))
    {
        static bool enabled = true;
        ImGui::MenuItem("Enabled", "", &enabled);
        ImGui::BeginChild("child", ImVec2(0, 60), true);
        for (int i = 0; i < 10; i++)
            ImGui::Text("Scrolling Text %d", i);
        ImGui::EndChild();
        static float f = 0.5f;
        static int n = 0;
        ImGui::SliderFloat("Value", &f, 0.0f, 1.0f);
        ImGui::InputFloat("Input", &f, 0.1f);
        ImGui::Combo("Combo", &n, "Yes\0No\0Maybe\0\0");
        ImGui::EndMenu();
    }

    if (ImGui::BeginMenu("Colors"))
    {
        float sz = ImGui::GetTextLineHeight();
        for (int i = 0; i < ImGuiCol_COUNT; i++)
        {
            const char* name = ImGui::GetStyleColorName((ImGuiCol)i);
            ImVec2 p = ImGui::GetCursorScreenPos();
            ImGui::GetWindowDrawList()->AddRectFilled(p, ImVec2(p.x + sz, p.y + sz), ImGui::GetColorU32((ImGuiCol)i));
            ImGui::Dummy(ImVec2(sz, sz));
            ImGui::SameLine();
            ImGui::MenuItem(name);
        }
        ImGui::EndMenu();
    }

    // Here we demonstrate appending again to the "Options" menu (which we already created above)
    // Of course in this demo it is a little bit silly that this function calls BeginMenu("Options") twice.
    // In a real code-base using it would make senses to use this feature from very different code locations.
    if (ImGui::BeginMenu("Options")) // <-- Append!
    {
        static bool b = true;
        ImGui::Checkbox("SomeOption", &b);
        ImGui::EndMenu();
    }

    if (ImGui::BeginMenu("Disabled", false)) // Disabled
    {
        IM_ASSERT(0);
    }
    if (ImGui::MenuItem("Checked", NULL, true)) {}
    if (ImGui::MenuItem("Quit", "Alt+F4")) {}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
leaq 0x5f88a(%rip), %rdi     # 0xc520b
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xa37af
leaq 0x5f884(%rip), %rdi     # 0xc5217
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f873(%rip), %rdi     # 0xc521b
leaq 0x5f871(%rip), %rsi     # 0xc5220
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f865(%rip), %rdi     # 0xc5227
movl $0x1, %esi
callq 0xa2f0f
testb %al, %al
je 0x65a7b
leaq 0x5f858(%rip), %rdi     # 0xc5233
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f84e(%rip), %rdi     # 0xc523e
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f846(%rip), %rdi     # 0xc524b
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f83c(%rip), %rdi     # 0xc5256
movl $0x1, %esi
callq 0xa2f0f
testb %al, %al
je 0x65a76
leaq 0x5af54(%rip), %rdi     # 0xc0983
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x58747(%rip), %rdi     # 0xbe18b
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f804(%rip), %rdi     # 0xc525d
movl $0x1, %esi
callq 0xa2f0f
testb %al, %al
je 0x65a71
callq 0x65969
callq 0xa3748
callq 0xa3748
callq 0xa3748
leaq 0x5728b(%rip), %rdi     # 0xbcd0d
leaq 0x5f7de(%rip), %rsi     # 0xc5267
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f7d2(%rip), %rdi     # 0xc526e
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
callq 0x93890
leaq 0x4f9d0(%rip), %rdi     # 0xb5486
movl $0x1, %esi
callq 0xa2f0f
testb %al, %al
je 0x65ba0
leaq 0x5e8fa(%rip), %rdi     # 0xc43c9
leaq 0x4f447(%rip), %rsi     # 0xb4f1d
leaq 0x96003(%rip), %rdx     # 0xfbae0
movl $0x1, %ecx
callq 0xa3a91
movabsq $0x4270000000000000, %rax # imm = 0x4270000000000000
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x5a645(%rip), %rdi     # 0xc0144
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x5207d
leaq 0x5f766(%rip), %rbx     # 0xc5278
xorl %r14d, %r14d
movq %rbx, %rdi
movl %r14d, %esi
xorl %eax, %eax
callq 0x90323
incl %r14d
cmpl $0xa, %r14d
jne 0x65b15
callq 0x52109
leaq 0x5bc3f(%rip), %rdi     # 0xc1776
leaq 0x95fa6(%rip), %rbx     # 0xfbae4
leaq 0x6cbbb(%rip), %r14     # 0xd2700
movss 0x4f497(%rip), %xmm1    # 0xb4fe4
xorps %xmm0, %xmm0
movq %rbx, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x973a7
leaq 0x58914(%rip), %rdi     # 0xbe478
movss 0x4fd1c(%rip), %xmm0    # 0xb5888
xorps %xmm1, %xmm1
movq %rbx, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x9b318
leaq 0x5a367(%rip), %rdi     # 0xbfeea
leaq 0x971a2(%rip), %rsi     # 0xfcd2c
leaq 0x556f3(%rip), %rdx     # 0xbb284
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x94b84
callq 0xa3748
leaq 0x570c9(%rip), %rdi     # 0xbcc70
movl $0x1, %esi
callq 0xa2f0f
testb %al, %al
je 0x65c79
xorl %ebx, %ebx
callq 0x562cd
movss %xmm0, -0x2c(%rbp)
leaq -0x38(%rbp), %r14
leaq -0x40(%rbp), %r15
movl %ebx, %edi
callq 0x44404
movq %rax, %r12
callq 0x559ee
movlps %xmm0, -0x38(%rbp)
callq 0x54730
movq %rax, %r13
movss -0x38(%rbp), %xmm0
movss -0x2c(%rbp), %xmm2
addss %xmm2, %xmm0
movss -0x34(%rbp), %xmm1
addss %xmm2, %xmm1
movss %xmm0, -0x40(%rbp)
movss %xmm1, -0x3c(%rbp)
movl %ebx, %edi
movss 0x4f3d1(%rip), %xmm0    # 0xb4fe4
callq 0x43bca
xorps %xmm0, %xmm0
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
movl %eax, %ecx
movl $0xf, %r8d
callq 0x785e6
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0x40(%rbp)
movss %xmm0, -0x3c(%rbp)
movq %r15, %rdi
callq 0x93437
xorps %xmm0, %xmm0
movss 0x4f37d(%rip), %xmm1    # 0xb4fd0
callq 0x5591d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
incl %ebx
cmpl $0x35, %ebx
jne 0x65bcd
callq 0xa3748
leaq 0x4f806(%rip), %rdi     # 0xb5486
movl $0x1, %esi
callq 0xa2f0f
testb %al, %al
je 0x65ca6
leaq 0x5f5f5(%rip), %rdi     # 0xc528a
leaq 0x95e4c(%rip), %rsi     # 0xfbae8
callq 0x9286b
callq 0xa3748
leaq 0x508cf(%rip), %rdi     # 0xb657c
xorl %esi, %esi
callq 0xa2f0f
testb %al, %al
jne 0x65cf9
leaq 0x5f5f1(%rip), %rdi     # 0xc52b0
xorl %esi, %esi
movl $0x1, %edx
movl $0x1, %ecx
callq 0xa37af
leaq 0x5f5e1(%rip), %rdi     # 0xc52b8
leaq 0x5f5df(%rip), %rsi     # 0xc52bd
xorl %edx, %edx
movl $0x1, %ecx
callq 0xa37af
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x523ec(%rip), %rdi     # 0xb80ec
leaq 0x55980(%rip), %rsi     # 0xbb687
leaq 0x5f587(%rip), %rcx     # 0xc5295
movl $0x17ed, %edx           # imm = 0x17ED
callq 0xc140