// File: /workspace/github_cpp_makefile_star2_O3/Ciaxur[P]yagb-emu/include/imgui/imgui_demo.cpp
// Function: ShowPlaceholderObject(char const*, int)
static void ShowPlaceholderObject(const char* prefix, int uid)
{
    // Use object uid as identifier. Most commonly you could also use the object pointer as a base ID.
    ImGui::PushID(uid);

    // Text and Tree nodes are less high than framed widgets, using AlignTextToFramePadding() we add vertical spacing to make the tree lines equal high.
    ImGui::TableNextRow();
    ImGui::TableSetColumnIndex(0);
    ImGui::AlignTextToFramePadding();
    bool node_open = ImGui::TreeNode("Object", "%s_%u", prefix, uid);
    ImGui::TableSetColumnIndex(1);
    ImGui::Text("my sailor is rich");

    if (node_open)
    {
        static float placeholder_members[8] = { 0.0f, 0.0f, 1.0f, 3.1416f, 100.0f, 999.0f };
        for (int i = 0; i < 8; i++)
        {
            ImGui::PushID(i); // Use field index as identifier.
            if (i < 2)
            {
                ShowPlaceholderObject("Child", 424242);
            }
            else
            {
                // Here we use a TreeNode to highlight on hover (we could use e.g. Selectable as well)
                ImGui::TableNextRow();
                ImGui::TableSetColumnIndex(0);
                ImGui::AlignTextToFramePadding();
                ImGuiTreeNodeFlags flags = ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_Bullet;
                ImGui::TreeNodeEx("Field", flags, "Field_%d", i);

                ImGui::TableSetColumnIndex(1);
                ImGui::SetNextItemWidth(-FLT_MIN);
                if (i >= 5)
                    ImGui::InputFloat("##value", &placeholder_members[i], 1.0f);
                else
                    ImGui::DragFloat("##value", &placeholder_members[i], 0.01f);
                ImGui::NextColumn();
            }
            ImGui::PopID();
        }
        ImGui::TreePop();
    }
    ImGui::PopID();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %ebx
movq %rdi, %r14
movl %esi, %edi
callq 0x54e5e
xorps %xmm0, %xmm0
xorl %edi, %edi
callq 0x8b850
xorl %edi, %edi
callq 0x8bb7c
callq 0x9353d
leaq 0x531ca(%rip), %rdi     # 0xc5934
leaq 0x531ca(%rip), %rsi     # 0xc593b
movq %r14, %rdx
movl %ebx, %ecx
xorl %eax, %eax
callq 0xa075e
movl %eax, %ebx
movl $0x1, %edi
callq 0x8bb7c
leaq 0x531b1(%rip), %rdi     # 0xc5941
xorl %eax, %eax
callq 0x90323
testb %bl, %bl
je 0x72886
leaq 0x8934a(%rip), %rbx     # 0xfbaf0
leaq 0x531ac(%rip), %r12     # 0xc5959
leaq 0x531ae(%rip), %r13     # 0xc5962
leaq 0x5ff45(%rip), %r14     # 0xd2700
xorl %r15d, %r15d
movl %r15d, %edi
callq 0x54e5e
cmpq $0x1, %r15
ja 0x727e2
leaq 0x4ea40(%rip), %rdi     # 0xc1213
movl $0x67932, %esi          # imm = 0x67932
callq 0x72733
jmp 0x7286b
xorps %xmm0, %xmm0
xorl %edi, %edi
callq 0x8b850
xorl %edi, %edi
callq 0x8bb7c
callq 0x9353d
leaq 0x53154(%rip), %rdi     # 0xc5953
movl $0x308, %esi            # imm = 0x308
movq %r12, %rdx
movl %r15d, %ecx
xorl %eax, %eax
callq 0xa12e6
movl $0x1, %edi
callq 0x8bb7c
movss 0x48709(%rip), %xmm0    # 0xbaf2c
callq 0x42f61
xorps %xmm1, %xmm1
cmpq $0x5, %r15
jb 0x7284b
movq %r13, %rdi
movq %rbx, %rsi
movss 0x427a5(%rip), %xmm0    # 0xb4fe4
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x9b318
jmp 0x72866
xorps %xmm2, %xmm2
movq %r13, %rdi
movq %rbx, %rsi
movss 0x48688(%rip), %xmm0    # 0xbaee4
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x964af
callq 0x8f1a8
callq 0x55082
incq %r15
addq $0x4, %rbx
cmpq $0x8, %r15
jne 0x727be
callq 0xa1609
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x55082
nop