// File: /workspace/github_cpp_makefile_star2_O1/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 0x47ce6
movl %eax, %r15d
addl $-0x2, %r15d
cmpl %r15d, %r12d
movl (%rbx), %ecx
movl 0x6c(%rbx), %r8d
movq 0x1c8(%rbx), %rax
movq (%rax), %r9
leaq 0x2b8ca(%rip), %rax     # 0xbb2d8
leaq 0x27508(%rip), %rdx     # 0xb6f1d
cmovgeq %rdx, %rax
movq %rax, (%rsp)
leaq 0x427ad(%rip), %rdx     # 0xd21d1
leaq -0x280(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %eax, %eax
callq 0x427cb
cmpl %r15d, %r12d
jge 0x8fa50
movl $0x1, %edi
callq 0x44635
xorl %edi, %edi
movq %rax, %rsi
callq 0x4481b
leaq 0x2b100(%rip), %rsi     # 0xbab57
leaq -0x280(%rbp), %rdx
movq %rbx, %rdi
xorl %eax, %eax
callq 0xa21c9
movl %eax, %r14d
cmpl %r15d, %r12d
jge 0x8fa7a
movl $0x1, %edi
callq 0x44964
xorl %edi, %edi
callq 0x46d03
testb %al, %al
je 0x8fab6
callq 0x4708b
leaq 0xec(%rbx), %rsi
leaq 0xf4(%rbx), %rdx
movss 0x27544(%rip), %xmm1    # 0xb6fe4
xorps %xmm0, %xmm0
movq %rax, %rdi
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
movl $0xf, %r8d
callq 0x79c80
callq 0x52ba2
testb %al, %al
je 0x8fb0b
cmpb $-0x1, 0x234(%rbx)
je 0x8fb0b
callq 0x4708b
movq %rax, %r15
callq 0x52c8e
leaq -0x40(%rbp), %r13
movlps %xmm0, (%r13)
callq 0x52caa
leaq -0x80(%rbp), %rdx
movlps %xmm0, (%rdx)
movss 0x274f2(%rip), %xmm1    # 0xb6fe4
xorps %xmm0, %xmm0
movq %r15, %rdi
movq %r13, %rsi
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
movl $0xf, %r8d
callq 0x79c80
testb %r14b, %r14b
je 0x9005c
leaq 0x426db(%rip), %rdi     # 0xd21f6
callq 0x93134
movl %eax, %r14d
movss 0xec(%rbx), %xmm2
movss 0xf0(%rbx), %xmm3
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
xorps %xmm1, %xmm1
cvtss2sd %xmm3, %xmm1
movss 0xf4(%rbx), %xmm4
subss %xmm2, %xmm4
xorps %xmm2, %xmm2
cvtss2sd %xmm4, %xmm2
movss 0xf8(%rbx), %xmm4
subss %xmm3, %xmm4
xorps %xmm3, %xmm3
cvtss2sd %xmm4, %xmm3
movl $0xe000, %eax           # imm = 0xE000
andl 0x4(%rbx), %eax
addl $0xffffe000, %eax       # imm = 0xFFFFE000
cmpl $0x7fff, %eax           # imm = 0x7FFF
ja 0x8fb8e
shrl $0xb, %eax
leaq 0x43313(%rip), %rcx     # 0xd2e98
movslq (%rax,%rcx), %rsi
addq %rcx, %rsi
jmp 0x8fb95
leaq 0x27988(%rip), %rsi     # 0xb751d
leaq 0x42669(%rip), %rdi     # 0xd2205
movb $0x4, %al
callq 0x92645
xorps %xmm0, %xmm0
cvtss2sd 0xd8(%rbx), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0xdc(%rbx), %xmm1
movss 0xd4(%rbx), %xmm3
xorps %xmm2, %xmm2
cvtss2sd %xmm3, %xmm2
xorps %xmm5, %xmm5
xorps %xmm4, %xmm4
movss %xmm4, -0x30(%rbp)
ucomiss %xmm3, %xmm5
leaq 0x426aa(%rip), %rsi     # 0xd2287
leaq 0x27339(%rip), %rax     # 0xb6f1d
cmovneq %rax, %rsi
cmovpq %rax, %rsi
leaq 0x4264d(%rip), %rdi     # 0xd2240
movb $0x3, %al
callq 0x92645
xorps %xmm0, %xmm0
cvtss2sd 0xbc(%rbx), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0xc4(%rbx), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0xc8(%rbx), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0xb8(%rbx), %xmm3
leaq 0x42662(%rip), %rdi     # 0xd228f
movb $0x4, %al
callq 0x92645
movsbl 0x234(%rbx), %esi
movsbl 0x235(%rbx), %edx
leaq 0x42687(%rip), %rdi     # 0xd22d0
xorl %eax, %eax
callq 0x92645
movsbl 0x237(%rbx), %esi
movsbl 0x23a(%rbx), %edx
movsbl 0x239(%rbx), %ecx
leaq 0x42693(%rip), %rdi     # 0xd22ff
xorl %eax, %eax
callq 0x92645
movslq 0x6c(%rbx), %rax
testq %rax, %rax
jle 0x8fcb2
movq 0x10(%rbx), %rcx
movq 0x18(%rbx), %rdx
xorps %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
cmpq %rdx, %rcx
jae 0x9006e
testb $0x4, (%rcx)
je 0x8fca9
movss -0x30(%rbp), %xmm0
addss 0x18(%rcx), %xmm0
movss %xmm0, -0x30(%rbp)
addq $0x68, %rcx
decq %rax
jne 0x8fc8c
movb %r14b, -0x29(%rbp)
cmpl $0x0, 0x6c(%rbx)
jle 0x90035
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %rbx, -0x60(%rbp)
movq 0x10(%rbx), %r13
leaq (%r14,%r13), %rax
cmpq 0x18(%rbx), %rax
jae 0x9006e
movq %rbx, %rdi
movl %r15d, %esi
callq 0x8d202
movq %rax, -0x78(%rbp)
movss 0x8(%r13,%r14), %xmm9
movss 0x10c(%rbx), %xmm1
movaps %xmm9, %xmm0
subss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
movss 0xc(%r13,%r14), %xmm10
movaps %xmm10, %xmm2
subss %xmm1, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
movsd %xmm0, -0x68(%rbp)
movsbq 0x242(%rbx), %rax
cmpq %rax, %r15
leaq 0x271e5(%rip), %r9      # 0xb6f1d
leaq 0x42772(%rip), %rax     # 0xd24b1
cmovlq %rax, %r9
movss 0x18(%r13,%r14), %xmm2
xorps %xmm5, %xmm5
cvtss2sd %xmm2, %xmm5
ucomiss 0x27aec(%rip), %xmm2    # 0xb7844
divss -0x30(%rbp), %xmm2
mulss 0x27b1f(%rip), %xmm2    # 0xb7884
ja 0x8fd6c
xorps %xmm6, %xmm6
jmp 0x8fd70
cvtss2sd %xmm2, %xmm6
movsbl 0x52(%r13,%r14), %eax
movl %eax, -0x54(%rbp)
movzbl 0x5a(%r13,%r14), %eax
movl %eax, -0x50(%rbp)
movzbl 0x5c(%r13,%r14), %eax
movl %eax, -0x4c(%rbp)
movzbl 0x5d(%r13,%r14), %eax
movl %eax, -0x48(%rbp)
movzbl 0x5e(%r13,%r14), %eax
movl %eax, -0x44(%rbp)
movzbl 0x5f(%r13,%r14), %r10d
movzbl 0x58(%r13,%r14), %r11d
xorps %xmm2, %xmm2
cvtss2sd 0x4(%r13,%r14), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0x10(%r13,%r14), %xmm3
cvtss2sd 0x14(%r13,%r14), %xmm4
movzbl 0x59(%r13,%r14), %r12d
cvtss2sd %xmm9, %xmm7
cvtss2sd %xmm10, %xmm8
subss %xmm9, %xmm10
xorps %xmm9, %xmm9
cvtss2sd %xmm10, %xmm9
movss 0x20(%r13,%r14), %xmm12
xorps %xmm10, %xmm10
cvtss2sd %xmm12, %xmm10
movss 0x28(%r13,%r14), %xmm13
cvtss2sd %xmm13, %xmm11
subss %xmm12, %xmm13
xorps %xmm12, %xmm12
cvtss2sd %xmm13, %xmm12
movss 0x40(%r13,%r14), %xmm13
movss 0x34(%r13,%r14), %xmm0
subss %xmm0, %xmm13
cvtss2sd %xmm13, %xmm13
movss 0x44(%r13,%r14), %xmm14
subss %xmm0, %xmm14
cvtss2sd %xmm14, %xmm14
movss 0x48(%r13,%r14), %xmm15
subss %xmm0, %xmm15
cvtss2sd %xmm15, %xmm15
movss 0x4c(%r13,%r14), %xmm1
movb 0x64(%r13,%r14), %al
andb $0x3, %al
cmpb $0x2, %al
leaq 0x270c0(%rip), %rsi     # 0xb6f1d
movq %rsi, %rbx
leaq 0x4265b(%rip), %rcx     # 0xd24c2
cmoveq %rcx, %rbx
subss %xmm0, %xmm1
cmpb $0x1, %al
leaq 0x42643(%rip), %rax     # 0xd24bb
cmoveq %rax, %rbx
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movl (%r13,%r14), %r8d
testb $0x4, %r8b
leaq 0x42636(%rip), %rcx     # 0xd24c9
cmoveq %rsi, %rcx
testb $0x8, %r8b
leaq 0x42635(%rip), %rax     # 0xd24d7
cmoveq %rsi, %rax
testb $0x10, %r8b
leaq 0x42632(%rip), %rdx     # 0xd24e3
cmoveq %rsi, %rdx
movsbl 0x56(%r13,%r14), %esi
movl 0x30(%r13,%r14), %edi
movsd %xmm0, 0x80(%rsp)
movl %r8d, 0xa0(%rsp)
movl %edi, 0x98(%rsp)
movl %esi, 0x88(%rsp)
movl %r12d, 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 -0x44(%rbp), %esi
movl %esi, 0x20(%rsp)
movl -0x48(%rbp), %esi
movl %esi, 0x18(%rsp)
movl -0x4c(%rbp), %esi
movl %esi, 0x10(%rsp)
movl -0x50(%rbp), %esi
movl %esi, 0x8(%rsp)
movq %r9, (%rsp)
movq %rdx, 0xb8(%rsp)
movq %rax, 0xb0(%rsp)
movq %rcx, 0xa8(%rsp)
movq %rbx, 0x90(%rsp)
movl $0x200, %esi            # imm = 0x200
leaq -0x280(%rbp), %rbx
movq %rbx, %rdi
leaq 0x423be(%rip), %rdx     # 0xd233a
movl -0x54(%rbp), %r8d
movl %r15d, %ecx
movq -0x78(%rbp), %r9
movsd -0x70(%rbp), %xmm0
movsd -0x68(%rbp), %xmm1
movb $0x8, %al
callq 0x427cb
callq 0x94f6e
movq $0x0, -0x40(%rbp)
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq -0x40(%rbp), %rcx
callq 0x962c5
xorl %edi, %edi
callq 0x46d03
testb %al, %al
movq -0x60(%rbp), %rbx
je 0x90021
movss 0x8(%r13,%r14), %xmm0
movss 0xc(%r13,%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 0x4708b
xorps %xmm0, %xmm0
movq %rax, %rdi
leaq -0x40(%rbp), %rsi
leaq -0x38(%rbp), %rdx
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
movl $0xf, %r8d
movss 0x26fc8(%rip), %xmm1    # 0xb6fe4
callq 0x79c80
incq %r15
movslq 0x6c(%rbx), %rax
addq $0x68, %r14
cmpq %rax, %r15
jl 0x8fcca
movq %rbx, %rdi
callq 0x8ee91
testq %rax, %rax
je 0x9004a
movq %rax, %rdi
callq 0x9008d
cmpb $0x0, -0x29(%rbp)
je 0x90057
movb $0x1, 0x251(%rbx)
callq 0xa2f4e
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2c643(%rip), %rdi     # 0xbc6b8
leaq 0x2b5c3(%rip), %rsi     # 0xbb63f
leaq 0x2c64e(%rip), %rcx     # 0xbc6d1
movl $0x20e, %edx            # imm = 0x20E
callq 0xc140