// File: Ciaxur[P]yagb-emu/include/imgui/imgui_demo.cpp
// Function: ShowExampleAppLayout(bool*)
static void ShowExampleAppLayout(bool* p_open)
{
    ImGui::SetNextWindowSize(ImVec2(500, 440), ImGuiCond_FirstUseEver);
    if (ImGui::Begin("Example: Simple layout", p_open, ImGuiWindowFlags_MenuBar))
    {
        if (ImGui::BeginMenuBar())
        {
            if (ImGui::BeginMenu("File"))
            {
                if (ImGui::MenuItem("Close")) *p_open = false;
                ImGui::EndMenu();
            }
            ImGui::EndMenuBar();
        }

        // Left
        static int selected = 0;
        {
            ImGui::BeginChild("left pane", ImVec2(150, 0), true);
            for (int i = 0; i < 100; i++)
            {
                char label[128];
                sprintf(label, "MyObject %d", i);
                if (ImGui::Selectable(label, selected == i))
                    selected = i;
            }
            ImGui::EndChild();
        }
        ImGui::SameLine();

        // Right
        {
            ImGui::BeginGroup();
            ImGui::BeginChild("item view", ImVec2(0, -ImGui::GetFrameHeightWithSpacing())); // Leave room for 1 line below us
            ImGui::Text("MyObject: %d", selected);
            ImGui::Separator();
            if (ImGui::BeginTabBar("##Tabs", ImGuiTabBarFlags_None))
            {
                if (ImGui::BeginTabItem("Description"))
                {
                    ImGui::TextWrapped("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ");
                    ImGui::EndTabItem();
                }
                if (ImGui::BeginTabItem("Details"))
                {
                    ImGui::Text("ID: 0123456789");
                    ImGui::EndTabItem();
                }
                ImGui::EndTabBar();
            }
            ImGui::EndChild();
            if (ImGui::Button("Revert")) {}
            ImGui::SameLine();
            if (ImGui::Button("Save")) {}
            ImGui::EndGroup();
        }
    }
    ImGui::End();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
leaq -0x10(%rbp), %rdi
movss 0x87065(%rip), %xmm0    # 0x178570
movss 0x87061(%rip), %xmm1    # 0x178574
callq 0xbf4c0
leaq -0x10(%rbp), %rdi
movl $0x4, %esi
callq 0xd00c0
movq -0x8(%rbp), %rsi
leaq 0x91876(%rip), %rdi     # 0x182da7
movl $0x400, %edx            # imm = 0x400
callq 0xd0170
testb $0x1, %al
jne 0xf1544
jmp 0xf17a8
callq 0x1540f0
testb $0x1, %al
jne 0xf154f
jmp 0xf1594
leaq 0x84362(%rip), %rdi     # 0x1758b8
movl $0x1, %esi
callq 0x154790
testb $0x1, %al
jne 0xf1566
jmp 0xf158f
leaq 0x8c3f0(%rip), %rdi     # 0x17d95d
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x155360
testb $0x1, %al
jne 0xf1583
jmp 0xf158a
movq -0x8(%rbp), %rax
movb $0x0, (%rax)
callq 0x1552c0
callq 0x154310
leaq -0x18(%rbp), %rdi
movss 0x86fd8(%rip), %xmm0    # 0x178578
xorps %xmm1, %xmm1
callq 0xbf4c0
leaq 0x9180f(%rip), %rdi     # 0x182dbe
leaq -0x18(%rbp), %rsi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0xd5cc0
movl $0x0, -0x1c(%rbp)
cmpl $0x64, -0x1c(%rbp)
jge 0xf165a
leaq -0xa0(%rbp), %rdi
movl -0x1c(%rbp), %edx
leaq 0x917e7(%rip), %rsi     # 0x182dc8
movb $0x0, %al
callq 0xd990
leaq -0xa0(%rbp), %rax
movq %rax, -0xc8(%rbp)
movl 0x122e20(%rip), %eax    # 0x21441c
cmpl -0x1c(%rbp), %eax
sete %al
movb %al, -0xc9(%rbp)
leaq -0xa8(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0xbf4c0
movb -0xc9(%rbp), %al
movq -0xc8(%rbp), %rdi
movzbl %al, %esi
andl $0x1, %esi
xorl %edx, %edx
leaq -0xa8(%rbp), %rcx
callq 0x13f2b0
testb $0x1, %al
jne 0xf1641
jmp 0xf164a
movl -0x1c(%rbp), %eax
movl %eax, 0x122dd2(%rip)    # 0x21441c
jmp 0xf164c
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xf15c6
callq 0xd5d90
xorps %xmm0, %xmm0
movss 0x80916(%rip), %xmm1    # 0x171f80
callq 0xdc1c0
callq 0xdd220
callq 0xdd090
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
leaq -0xb0(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0xbf4c0
leaq 0x91738(%rip), %rdi     # 0x182dd4
leaq -0xb0(%rbp), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0xd5cc0
movl 0x122d6a(%rip), %esi    # 0x21441c
leaq 0x91725(%rip), %rdi     # 0x182dde
movb $0x0, %al
callq 0x139160
callq 0x13dec0
leaq 0x9171f(%rip), %rdi     # 0x182deb
xorl %esi, %esi
callq 0x1558c0
testb $0x1, %al
jne 0xf16d9
jmp 0xf1734
leaq 0x8fe9a(%rip), %rdi     # 0x18157a
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1573a0
testb $0x1, %al
jne 0xf16f1
jmp 0xf1704
leaq 0x916fa(%rip), %rdi     # 0x182df2
movb $0x0, %al
callq 0x139570
callq 0x158140
leaq 0x91764(%rip), %rdi     # 0x182e6f
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x1573a0
testb $0x1, %al
jne 0xf171c
jmp 0xf172f
leaq 0x91754(%rip), %rdi     # 0x182e77
movb $0x0, %al
callq 0x139160
callq 0x158140
callq 0x155dd0
callq 0xd5d90
leaq -0xb8(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0xbf4c0
leaq 0x88b35(%rip), %rdi     # 0x17a287
leaq -0xb8(%rbp), %rsi
callq 0x13a930
testb $0x1, %al
jne 0xf1764
jmp 0xf1766
jmp 0xf1766
xorps %xmm0, %xmm0
movss 0x8080f(%rip), %xmm1    # 0x171f80
callq 0xdc1c0
leaq -0xc0(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0xbf4c0
leaq 0x88af3(%rip), %rdi     # 0x17a282
leaq -0xc0(%rbp), %rsi
callq 0x13a930
testb $0x1, %al
jne 0xf17a1
jmp 0xf17a3
jmp 0xf17a3
callq 0xdbe80
callq 0xd3b60
addq $0xd0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)