// File: /workspace/github_cpp_makefile_star2_O2/Ciaxur[P]yagb-emu/include/imgui/imgui_tables.cpp
// Function: ImGui::DebugNodeTable(ImGuiTable*)
void ImGui::DebugNodeTable(ImGuiTable* table)
{
    char buf[512];
    char* p = buf;
    const char* buf_end = buf + IM_ARRAYSIZE(buf);
    const bool is_active = (table->LastFrameActive >= ImGui::GetFrameCount() - 2); // Note that fully clipped early out scrolling tables will appear as inactive here.
    ImFormatString(p, buf_end - p, "Table 0x%08X (%d columns, in '%s')%s", table->ID, table->ColumnsCount, table->OuterWindow->Name, is_active ? "" : " *Inactive*");
    if (!is_active) { PushStyleColor(ImGuiCol_Text, GetStyleColorVec4(ImGuiCol_TextDisabled)); }
    bool open = TreeNode(table, "%s", buf);
    if (!is_active) { PopStyleColor(); }
    if (IsItemHovered())
        GetForegroundDrawList()->AddRect(table->OuterRect.Min, table->OuterRect.Max, IM_COL32(255, 255, 0, 255));
    if (IsItemVisible() && table->HoveredColumnBody != -1)
        GetForegroundDrawList()->AddRect(GetItemRectMin(), GetItemRectMax(), IM_COL32(255, 255, 0, 255));
    if (!open)
        return;
    bool clear_settings = SmallButton("Clear settings");
    BulletText("OuterRect: Pos: (%.1f,%.1f) Size: (%.1f,%.1f) Sizing: '%s'", table->OuterRect.Min.x, table->OuterRect.Min.y, table->OuterRect.GetWidth(), table->OuterRect.GetHeight(), DebugNodeTableGetSizingPolicyDesc(table->Flags));
    BulletText("ColumnsGivenWidth: %.1f, ColumnsAutoFitWidth: %.1f, InnerWidth: %.1f%s", table->ColumnsGivenWidth, table->ColumnsAutoFitWidth, table->InnerWidth, table->InnerWidth == 0.0f ? " (auto)" : "");
    BulletText("CellPaddingX: %.1f, CellSpacingX: %.1f/%.1f, OuterPaddingX: %.1f", table->CellPaddingX, table->CellSpacingX1, table->CellSpacingX2, table->OuterPaddingX);
    BulletText("HoveredColumnBody: %d, HoveredColumnBorder: %d", table->HoveredColumnBody, table->HoveredColumnBorder);
    BulletText("ResizedColumn: %d, ReorderColumn: %d, HeldHeaderColumn: %d", table->ResizedColumn, table->ReorderColumn, table->HeldHeaderColumn);
    //BulletText("BgDrawChannels: %d/%d", 0, table->BgDrawChannelUnfrozen);
    float sum_weights = 0.0f;
    for (int n = 0; n < table->ColumnsCount; n++)
        if (table->Columns[n].Flags & ImGuiTableColumnFlags_WidthStretch)
            sum_weights += table->Columns[n].StretchWeight;
    for (int n = 0; n < table->ColumnsCount; n++)
    {
        ImGuiTableColumn* column = &table->Columns[n];
        const char* name = TableGetColumnName(table, n);
        ImFormatString(buf, IM_ARRAYSIZE(buf),
            "Column %d order %d '%s': offset %+.2f to %+.2f%s\n"
            "Enabled: %d, VisibleX/Y: %d/%d, RequestOutput: %d, SkipItems: %d, DrawChannels: %d,%d\n"
            "WidthGiven: %.1f, Request/Auto: %.1f/%.1f, StretchWeight: %.3f (%.1f%%)\n"
            "MinX: %.1f, MaxX: %.1f (%+.1f), ClipRect: %.1f to %.1f (+%.1f)\n"
            "ContentWidth: %.1f,%.1f, HeadersUsed/Ideal %.1f/%.1f\n"
            "Sort: %d%s, UserID: 0x%08X, Flags: 0x%04X: %s%s%s..",
            n, column->DisplayOrder, name, column->MinX - table->WorkRect.Min.x, column->MaxX - table->WorkRect.Min.x, (n < table->FreezeColumnsRequest) ? " (Frozen)" : "",
            column->IsEnabled, column->IsVisibleX, column->IsVisibleY, column->IsRequestOutput, column->IsSkipItems, column->DrawChannelFrozen, column->DrawChannelUnfrozen,
            column->WidthGiven, column->WidthRequest, column->WidthAuto, column->StretchWeight, column->StretchWeight > 0.0f ? (column->StretchWeight / sum_weights) * 100.0f : 0.0f,
            column->MinX, column->MaxX, column->MaxX - column->MinX, column->ClipRect.Min.x, column->ClipRect.Max.x, column->ClipRect.Max.x - column->ClipRect.Min.x,
            column->ContentMaxXFrozen - column->WorkMinX, column->ContentMaxXUnfrozen - column->WorkMinX, column->ContentMaxXHeadersUsed - column->WorkMinX, column->ContentMaxXHeadersIdeal - column->WorkMinX,
            column->SortOrder, (column->SortDirection == ImGuiSortDirection_Ascending) ? " (Asc)" : (column->SortDirection == ImGuiSortDirection_Descending) ? " (Des)" : "", column->UserID, column->Flags,
            (column->Flags & ImGuiTableColumnFlags_WidthStretch) ? "WidthStretch " : "",
            (column->Flags & ImGuiTableColumnFlags_WidthFixed) ? "WidthFixed " : "",
            (column->Flags & ImGuiTableColumnFlags_NoResize) ? "NoResize " : "");
        Bullet();
        Selectable(buf);
        if (IsItemHovered())
        {
            ImRect r(column->MinX, table->OuterRect.Min.y, column->MaxX, table->OuterRect.Max.y);
            GetForegroundDrawList()->AddRect(r.Min, r.Max, IM_COL32(255, 255, 0, 255));
        }
    }
    if (ImGuiTableSettings* settings = TableGetBoundSettings(table))
        DebugNodeTableSettings(settings);
    if (clear_settings)
        table->IsResetAllRequest = true;
    TreePop();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
movq %rdi, %rbx
movl 0x68(%rdi), %r12d
callq 0x37eec
movl %eax, %r15d
addl $-0x2, %r15d
cmpl %r15d, %r12d
movl (%rbx), %ecx
movl 0x6c(%rbx), %r8d
movq 0x1c8(%rbx), %rax
movq (%rax), %r9
leaq 0x294c6(%rip), %rax     # 0xa0308
leaq 0x250d8(%rip), %rdx     # 0x9bf21
cmovgeq %rdx, %rax
movq %rax, (%rsp)
leaq 0x405c5(%rip), %rdx     # 0xb741d
leaq -0x280(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %eax, %eax
callq 0x3468c
cmpl %r15d, %r12d
jge 0x76e82
pushq $0x1
popq %rdi
callq 0x35dab
xorl %edi, %edi
movq %rax, %rsi
callq 0x35e60
leaq 0x28cfe(%rip), %rsi     # 0x9fb87
leaq -0x280(%rbp), %rdx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x88935
movl %eax, %r14d
cmpl %r15d, %r12d
jge 0x76eaa
pushq $0x1
popq %rdi
callq 0x35eb4
xorl %edi, %edi
callq 0x374fd
testb %al, %al
je 0x76ee4
callq 0x3782e
leaq 0xec(%rbx), %rsi
leaq 0xf4(%rbx), %rdx
pushq $0xf
popq %r8
movss 0x25124(%rip), %xmm1    # 0x9bff8
xorps %xmm0, %xmm0
movq %rax, %rdi
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
callq 0x63f6c
callq 0x406b8
testb %al, %al
je 0x76f37
cmpb $-0x1, 0x234(%rbx)
je 0x76f37
callq 0x3782e
movq %rax, %r15
callq 0x4076d
leaq -0x40(%rbp), %r12
movlps %xmm0, (%r12)
callq 0x40789
leaq -0x80(%rbp), %rdx
movlps %xmm0, (%rdx)
pushq $0xf
popq %r8
movss 0x250d4(%rip), %xmm1    # 0x9bff8
xorps %xmm0, %xmm0
movq %r15, %rdi
movq %r12, %rsi
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
callq 0x63f6c
testb %r14b, %r14b
je 0x77419
leaq 0x404fb(%rip), %rdi     # 0xb7442
callq 0x7a657
movb %al, -0x29(%rbp)
movss 0xec(%rbx), %xmm2
movss 0xf0(%rbx), %xmm3
cvtss2sd %xmm2, %xmm0
cvtss2sd %xmm3, %xmm1
movss 0xf4(%rbx), %xmm4
subss %xmm2, %xmm4
cvtss2sd %xmm4, %xmm2
movss 0xf8(%rbx), %xmm4
subss %xmm3, %xmm4
cvtss2sd %xmm4, %xmm3
movl $0xe000, %eax           # imm = 0xE000
andl 0x4(%rbx), %eax
addl $0xffffe000, %eax       # imm = 0xFFFFE000
cmpl $0x7fff, %eax           # imm = 0x7FFF
ja 0x76fae
shrl $0xb, %eax
leaq 0x4112f(%rip), %rcx     # 0xb80d4
movslq (%rax,%rcx), %rsi
addq %rcx, %rsi
jmp 0x76fb5
leaq 0x2557c(%rip), %rsi     # 0x9c531
leaq 0x40495(%rip), %rdi     # 0xb7451
movb $0x4, %al
callq 0x79bb3
cvtss2sd 0xd8(%rbx), %xmm0
cvtss2sd 0xdc(%rbx), %xmm1
movss 0xd4(%rbx), %xmm3
cvtss2sd %xmm3, %xmm2
xorps %xmm5, %xmm5
xorps %xmm4, %xmm4
movss %xmm4, -0x30(%rbp)
ucomiss %xmm3, %xmm5
leaq 0x404df(%rip), %rsi     # 0xb74d3
leaq 0x24f26(%rip), %rax     # 0x9bf21
cmovneq %rax, %rsi
cmovpq %rax, %rsi
leaq 0x40482(%rip), %rdi     # 0xb748c
movb $0x3, %al
callq 0x79bb3
cvtss2sd 0xbc(%rbx), %xmm0
cvtss2sd 0xc4(%rbx), %xmm1
cvtss2sd 0xc8(%rbx), %xmm2
cvtss2sd 0xb8(%rbx), %xmm3
leaq 0x404a3(%rip), %rdi     # 0xb74db
movb $0x4, %al
callq 0x79bb3
movsbl 0x234(%rbx), %esi
movsbl 0x235(%rbx), %edx
leaq 0x404c8(%rip), %rdi     # 0xb751c
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x79bb3
movsbl 0x237(%rbx), %esi
movsbl 0x23a(%rbx), %edx
movsbl 0x239(%rbx), %ecx
leaq 0x404d1(%rip), %rdi     # 0xb754b
xorl %eax, %eax
callq 0x79bb3
leaq 0x10(%rbx), %r15
movl 0x6c(%rbx), %eax
cmpl %eax, %r14d
jge 0x770bc
movq %r15, %rdi
movl %r14d, %esi
callq 0x4c4c6
testb $0x4, (%rax)
je 0x770b7
movq %r15, %rdi
movl %r14d, %esi
callq 0x4c4c6
movss -0x30(%rbp), %xmm0
addss 0x18(%rax), %xmm0
movss %xmm0, -0x30(%rbp)
incl %r14d
jmp 0x77085
xorl %r12d, %r12d
movq %rbx, -0x60(%rbp)
movq %r15, -0x58(%rbp)
cmpl %eax, %r12d
jge 0x773f2
movq %r15, %rdi
movl %r12d, %esi
callq 0x4c4c6
movq %rax, %r14
movq %rbx, %rdi
movl %r12d, %esi
callq 0x74ab7
movq %rax, -0x78(%rbp)
movss 0x8(%r14), %xmm9
movss 0x10c(%rbx), %xmm1
movaps %xmm9, %xmm0
subss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
movss 0xc(%r14), %xmm10
movaps %xmm10, %xmm2
subss %xmm1, %xmm2
cvtss2sd %xmm2, %xmm0
movsd %xmm0, -0x68(%rbp)
movsbl 0x242(%rbx), %eax
cmpl %eax, %r12d
leaq 0x24ded(%rip), %rsi     # 0x9bf21
leaq 0x405c2(%rip), %rax     # 0xb76fd
cmovlq %rax, %rsi
movss 0x18(%r14), %xmm2
cvtss2sd %xmm2, %xmm5
ucomiss 0x25774(%rip), %xmm2    # 0x9c8c4
divss -0x30(%rbp), %xmm2
mulss 0x25753(%rip), %xmm2    # 0x9c8b0
movl %r12d, -0x50(%rbp)
ja 0x77168
xorps %xmm6, %xmm6
jmp 0x7716c
cvtss2sd %xmm2, %xmm6
movsbl 0x52(%r14), %eax
movl %eax, -0x4c(%rbp)
movzbl 0x5a(%r14), %eax
movl %eax, -0x48(%rbp)
movzbl 0x5c(%r14), %eax
movl %eax, -0x44(%rbp)
movzbl 0x5d(%r14), %edi
movzbl 0x5e(%r14), %r9d
movzbl 0x5f(%r14), %r10d
movzbl 0x58(%r14), %r11d
cvtss2sd 0x4(%r14), %xmm2
cvtss2sd 0x10(%r14), %xmm3
cvtss2sd 0x14(%r14), %xmm4
movzbl 0x59(%r14), %edx
cvtss2sd %xmm9, %xmm7
cvtss2sd %xmm10, %xmm8
subss %xmm9, %xmm10
cvtss2sd %xmm10, %xmm9
movss 0x20(%r14), %xmm12
cvtss2sd %xmm12, %xmm10
movss 0x28(%r14), %xmm13
cvtss2sd %xmm13, %xmm11
subss %xmm12, %xmm13
cvtss2sd %xmm13, %xmm12
movss 0x40(%r14), %xmm13
movss 0x34(%r14), %xmm0
subss %xmm0, %xmm13
cvtss2sd %xmm13, %xmm13
movss 0x44(%r14), %xmm14
subss %xmm0, %xmm14
cvtss2sd %xmm14, %xmm14
movss 0x48(%r14), %xmm15
subss %xmm0, %xmm15
cvtss2sd %xmm15, %xmm15
movss 0x4c(%r14), %xmm1
movb 0x64(%r14), %al
andb $0x3, %al
cmpb $0x2, %al
leaq 0x24cf3(%rip), %rcx     # 0x9bf21
movq %rcx, %r15
leaq 0x404d6(%rip), %r8      # 0xb770e
cmoveq %r8, %r15
subss %xmm0, %xmm1
cmpb $0x1, %al
leaq 0x404be(%rip), %rax     # 0xb7707
cmoveq %rax, %r15
cvtss2sd %xmm1, %xmm0
movl (%r14), %r13d
testb $0x4, %r13b
leaq 0x404b6(%rip), %rbx     # 0xb7715
cmoveq %rcx, %rbx
testb $0x8, %r13b
leaq 0x404b5(%rip), %r12     # 0xb7723
cmoveq %rcx, %r12
testb $0x10, %r13b
leaq 0x404b2(%rip), %rax     # 0xb772f
cmoveq %rcx, %rax
movsbl 0x56(%r14), %ecx
movl 0x30(%r14), %r8d
movsd %xmm0, 0x80(%rsp)
movl %r13d, 0xa0(%rsp)
movl %r8d, 0x98(%rsp)
movl %ecx, 0x88(%rsp)
movl %edx, 0x38(%rsp)
movsd %xmm15, 0x78(%rsp)
movsd %xmm14, 0x70(%rsp)
movsd %xmm13, 0x68(%rsp)
movsd %xmm12, 0x60(%rsp)
movsd %xmm11, 0x58(%rsp)
movsd %xmm10, 0x50(%rsp)
movsd %xmm9, 0x48(%rsp)
movsd %xmm8, 0x40(%rsp)
movl %r11d, 0x30(%rsp)
movl %r10d, 0x28(%rsp)
movl %r9d, 0x20(%rsp)
movl %edi, 0x18(%rsp)
movl -0x44(%rbp), %ecx
movl %ecx, 0x10(%rsp)
movl -0x48(%rbp), %ecx
movl %ecx, 0x8(%rsp)
movq %rsi, (%rsp)
movq %rax, 0xb8(%rsp)
movq %r12, 0xb0(%rsp)
movq %rbx, 0xa8(%rsp)
movq %r15, 0x90(%rsp)
movl $0x200, %esi            # imm = 0x200
leaq -0x280(%rbp), %rbx
movq %rbx, %rdi
leaq 0x40245(%rip), %rdx     # 0xb7586
movl -0x4c(%rbp), %r8d
movl -0x50(%rbp), %r12d
movl %r12d, %ecx
movq -0x78(%rbp), %r9
movsd -0x70(%rbp), %xmm0
movsd -0x68(%rbp), %xmm1
movb $0x8, %al
callq 0x3468c
callq 0x7c516
andq $0x0, -0x40(%rbp)
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq -0x40(%rbp), %rcx
callq 0x7d81c
xorl %edi, %edi
callq 0x374fd
testb %al, %al
movq -0x60(%rbp), %rbx
je 0x773e3
movss 0x8(%r14), %xmm0
movss 0xc(%r14), %xmm1
movss 0xf0(%rbx), %xmm2
movss 0xf8(%rbx), %xmm3
movss %xmm0, -0x40(%rbp)
movss %xmm2, -0x3c(%rbp)
movss %xmm1, -0x38(%rbp)
movss %xmm3, -0x34(%rbp)
callq 0x3782e
xorps %xmm0, %xmm0
movq %rax, %rdi
leaq -0x40(%rbp), %rsi
leaq -0x38(%rbp), %rdx
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
pushq $0xf
popq %r8
movss 0x24c1a(%rip), %xmm1    # 0x9bff8
callq 0x63f6c
incl %r12d
movl 0x6c(%rbx), %eax
movq -0x58(%rbp), %r15
jmp 0x770c7
movq %rbx, %rdi
callq 0x7653d
testq %rax, %rax
je 0x77407
movq %rax, %rdi
callq 0x7742b
cmpb $0x0, -0x29(%rbp)
je 0x77414
movb $0x1, 0x251(%rbx)
callq 0x89637
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq