// File: /workspace/github_cpp_makefile_star2_O2/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 0x59826(%rip), %rdi     # 0xac57d
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x8b583
leaq 0x59820(%rip), %rdi     # 0xac589
pushq $0x1
popq %rbx
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x5980f(%rip), %rdi     # 0xac58d
leaq 0x5980d(%rip), %rsi     # 0xac592
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x59804(%rip), %rdi     # 0xac599
movl %ebx, %esi
callq 0x8add5
testb %al, %al
je 0x52e36
leaq 0x597fa(%rip), %rdi     # 0xac5a5
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x597f3(%rip), %rdi     # 0xac5b0
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x597ee(%rip), %rdi     # 0xac5bd
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x597e7(%rip), %rdi     # 0xac5c8
movl %ebx, %esi
callq 0x8add5
testb %al, %al
je 0x52e31
leaq 0x54ec0(%rip), %rdi     # 0xa7cb3
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x526b6(%rip), %rdi     # 0xa54bb
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x597b8(%rip), %rdi     # 0xac5cf
movl %ebx, %esi
callq 0x8add5
testb %al, %al
je 0x52e2c
callq 0x52d3f
callq 0x8b51e
callq 0x8b51e
callq 0x8b51e
leaq 0x51200(%rip), %rdi     # 0xa403d
leaq 0x59795(%rip), %rsi     # 0xac5d9
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x5978c(%rip), %rdi     # 0xac5e0
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
callq 0x7cad7
leaq 0x4962f(%rip), %rdi     # 0x9c49a
movl %ebx, %esi
callq 0x8add5
testb %al, %al
je 0x52f4c
leaq 0x58878(%rip), %rdi     # 0xab6f9
leaq 0x49099(%rip), %rsi     # 0x9bf21
leaq 0x90c61(%rip), %rdx     # 0xe3af0
movl %ebx, %ecx
callq 0x8b857
movabsq $0x4270000000000000, %rax # imm = 0x4270000000000000
leaq -0x38(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x545c6(%rip), %rdi     # 0xa7474
movl %ebx, %edx
xorl %ecx, %ecx
callq 0x40abf
leaq 0x5972c(%rip), %rbx     # 0xac5ea
xorl %r14d, %r14d
cmpl $0xa, %r14d
je 0x52ed9
movq %rbx, %rdi
movl %r14d, %esi
xorl %eax, %eax
callq 0x795ac
incl %r14d
jmp 0x52ec1
callq 0x40b4b
leaq 0x55bc1(%rip), %rdi     # 0xa8aa6
leaq 0x90c08(%rip), %rbx     # 0xe3af4
leaq 0x66b7d(%rip), %r14     # 0xb9a70
movss 0x490fd(%rip), %xmm1    # 0x9bff8
xorps %xmm0, %xmm0
movq %rbx, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x52896(%rip), %rdi     # 0xa57a8
movss 0x4999a(%rip), %xmm0    # 0x9c8b4
xorps %xmm1, %xmm1
movq %rbx, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x83dc1
leaq 0x542e9(%rip), %rdi     # 0xa721a
leaq 0x91e04(%rip), %rsi     # 0xe4d3c
leaq 0x4f675(%rip), %rdx     # 0xa25b4
pushq $-0x1
popq %rcx
callq 0x7dd48
callq 0x8b51e
leaq 0x5104d(%rip), %rdi     # 0xa3fa0
pushq $0x1
popq %rsi
callq 0x8add5
testb %al, %al
je 0x53025
xorl %ebx, %ebx
callq 0x43e97
movss %xmm0, -0x2c(%rbp)
leaq -0x40(%rbp), %r15
pushq $0x1
popq %r13
cmpl $0x35, %ebx
je 0x53020
movl %ebx, %edi
callq 0x360ea
movq %rax, %r14
callq 0x438bd
movlps %xmm0, -0x38(%rbp)
callq 0x42af8
movq %rax, %r12
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 0x49032(%rip), %xmm0    # 0x9bff8
callq 0x35d33
xorps %xmm0, %xmm0
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
movq %r15, %rdx
movl %eax, %ecx
pushq $0xf
popq %r8
callq 0x64020
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0x40(%rbp)
movss %xmm0, -0x3c(%rbp)
movq %r15, %rdi
callq 0x7c685
xorps %xmm0, %xmm0
movss 0x48feb(%rip), %xmm1    # 0x9bff0
callq 0x437ec
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r13d, %ecx
callq 0x8b583
incl %ebx
jmp 0x52f77
callq 0x8b51e
leaq 0x4946e(%rip), %rdi     # 0x9c49a
pushq $0x1
popq %rsi
callq 0x8add5
testb %al, %al
je 0x53050
leaq 0x595bd(%rip), %rdi     # 0xac5fc
leaq 0x90ab2(%rip), %rsi     # 0xe3af8
callq 0x7bae6
callq 0x8b51e
leaq 0x4a555(%rip), %rdi     # 0x9d5ac
xorl %esi, %esi
callq 0x8add5
testb %al, %al
jne 0x5309d
leaq 0x595b9(%rip), %rdi     # 0xac622
pushq $0x1
popq %rbx
xorl %esi, %esi
movl %ebx, %edx
movl %ebx, %ecx
callq 0x8b583
leaq 0x595ac(%rip), %rdi     # 0xac62a
leaq 0x595aa(%rip), %rsi     # 0xac62f
xorl %edx, %edx
movl %ebx, %ecx
callq 0x8b583
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4c078(%rip), %rdi     # 0x9f11c
leaq 0x4f90c(%rip), %rsi     # 0xa29b7
leaq 0x59555(%rip), %rcx     # 0xac607
movl $0x17ed, %edx           # imm = 0x17ED
callq 0xc140