// File: /workspace/github_cpp_makefile_star2_O3/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, %r12
movl 0x68(%rdi), %ebx
callq 0x471b7
movl %eax, %r14d
addl $-0x2, %r14d
cmpl %r14d, %ebx
movl (%r12), %ecx
movl 0x6c(%r12), %r8d
movq 0x1c8(%r12), %rax
movq (%rax), %r9
leaq 0x2b5fe(%rip), %rax     # 0xb92d8
leaq 0x2723c(%rip), %rdx     # 0xb4f1d
cmovgeq %rdx, %rax
movq %rax, (%rsp)
leaq 0x424b1(%rip), %rdx     # 0xd01a1
leaq -0x280(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %eax, %eax
callq 0x41f22
cmpl %r14d, %ebx
jge 0x8dd43
movl $0x1, %edi
callq 0x43c42
xorl %edi, %edi
movq %rax, %rsi
callq 0x43e1b
leaq 0x2ae34(%rip), %rsi     # 0xb8b57
leaq -0x280(%rbp), %rdx
movq %r12, %rdi
xorl %eax, %eax
callq 0xa086e
movl %eax, %r14d
movl $0x1, %edi
callq 0x43f55
jmp 0x8dd5e
leaq 0x2ae0d(%rip), %rsi     # 0xb8b57
leaq -0x280(%rbp), %rdx
movq %r12, %rdi
xorl %eax, %eax
callq 0xa086e
movl %eax, %r14d
xorl %edi, %edi
callq 0x461ed
testb %al, %al
je 0x8dd9c
callq 0x46567
leaq 0xec(%r12), %rsi
leaq 0xf4(%r12), %rdx
movss 0x2725e(%rip), %xmm1    # 0xb4fe4
xorps %xmm0, %xmm0
movq %rax, %rdi
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
movl $0xf, %r8d
callq 0x7851c
callq 0x51ba6
testb %al, %al
je 0x8ddf3
cmpb $-0x1, 0x234(%r12)
je 0x8ddf3
callq 0x46567
movq %rax, %r15
callq 0x51c92
leaq -0x40(%rbp), %r13
movlps %xmm0, (%r13)
callq 0x51cae
leaq -0x80(%rbp), %rdx
movlps %xmm0, (%rdx)
movss 0x2720a(%rip), %xmm1    # 0xb4fe4
xorps %xmm0, %xmm0
movq %r15, %rdi
movq %r13, %rsi
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
movl $0xf, %r8d
callq 0x7851c
testb %r14b, %r14b
je 0x8e361
leaq 0x423c3(%rip), %rdi     # 0xd01c6
callq 0x9142a
movb %al, -0x29(%rbp)
movss 0xec(%r12), %xmm2
movss 0xf0(%r12), %xmm3
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
xorps %xmm1, %xmm1
cvtss2sd %xmm3, %xmm1
movss 0xf4(%r12), %xmm4
subss %xmm2, %xmm4
xorps %xmm2, %xmm2
cvtss2sd %xmm4, %xmm2
movss 0xf8(%r12), %xmm4
subss %xmm3, %xmm4
xorps %xmm3, %xmm3
cvtss2sd %xmm4, %xmm3
movl $0xe000, %eax           # imm = 0xE000
andl 0x4(%r12), %eax
addl $0xffffe000, %eax       # imm = 0xFFFFE000
cmpl $0x7fff, %eax           # imm = 0x7FFF
ja 0x8de80
shrl $0xb, %eax
leaq 0x42ef5(%rip), %rcx     # 0xd0d6c
movslq (%rax,%rcx), %rsi
addq %rcx, %rsi
jmp 0x8de87
leaq 0x27696(%rip), %rsi     # 0xb551d
leaq 0x42347(%rip), %rdi     # 0xd01d5
movb $0x4, %al
callq 0x90944
xorps %xmm0, %xmm0
cvtss2sd 0xd8(%r12), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0xdc(%r12), %xmm1
movss 0xd4(%r12), %xmm3
xorps %xmm2, %xmm2
cvtss2sd %xmm3, %xmm2
xorps %xmm4, %xmm4
ucomiss %xmm3, %xmm4
leaq 0x4238a(%rip), %rsi     # 0xd0257
leaq 0x27049(%rip), %rax     # 0xb4f1d
cmovneq %rax, %rsi
cmovpq %rax, %rsi
leaq 0x4232d(%rip), %rdi     # 0xd0210
movb $0x3, %al
callq 0x90944
xorps %xmm0, %xmm0
cvtss2sd 0xbc(%r12), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0xc4(%r12), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0xc8(%r12), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0xb8(%r12), %xmm3
leaq 0x4233a(%rip), %rdi     # 0xd025f
movb $0x4, %al
callq 0x90944
movsbl 0x234(%r12), %esi
movsbl 0x235(%r12), %edx
leaq 0x4235b(%rip), %rdi     # 0xd02a0
xorl %eax, %eax
callq 0x90944
movsbl 0x237(%r12), %esi
movsbl 0x23a(%r12), %edx
movsbl 0x239(%r12), %ecx
leaq 0x42361(%rip), %rdi     # 0xd02cf
xorl %eax, %eax
callq 0x90944
movslq 0x6c(%r12), %rax
testq %rax, %rax
jle 0x8e338
movq 0x10(%r12), %rcx
movq 0x18(%r12), %rdx
movq %rax, %rsi
xorps %xmm0, %xmm0
cmpq %rdx, %rcx
jae 0x8e373
testb $0x4, (%rcx)
je 0x8dfa6
addss 0x18(%rcx), %xmm0
addq $0x68, %rcx
decq %rsi
jne 0x8df93
movss %xmm0, -0x44(%rbp)
testl %eax, %eax
jle 0x8e338
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %r12, -0x60(%rbp)
movq 0x10(%r12), %r13
leaq (%r14,%r13), %rax
cmpq 0x18(%r12), %rax
jae 0x8e373
movq %r12, %rdi
movl %r15d, %esi
callq 0x8b537
movq %rax, -0x78(%rbp)
movss 0x8(%r13,%r14), %xmm9
movss 0x10c(%r12), %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(%r12), %rax
cmpq %rax, %r15
leaq 0x26ee4(%rip), %r9      # 0xb4f1d
leaq 0x42441(%rip), %rax     # 0xd0481
cmovlq %rax, %r9
movss 0x18(%r13,%r14), %xmm2
cvtss2sd %xmm2, %xmm5
ucomiss 0x277ee(%rip), %xmm2    # 0xb5844
divss -0x44(%rbp), %xmm2
mulss 0x27821(%rip), %xmm2    # 0xb5884
ja 0x8e06a
xorps %xmm6, %xmm6
jmp 0x8e06e
cvtss2sd %xmm2, %xmm6
movsbl 0x52(%r13,%r14), %eax
movl %eax, -0x58(%rbp)
movzbl 0x5a(%r13,%r14), %eax
movl %eax, -0x54(%rbp)
movzbl 0x5c(%r13,%r14), %eax
movl %eax, -0x50(%rbp)
movzbl 0x5d(%r13,%r14), %eax
movl %eax, -0x4c(%rbp)
movzbl 0x5e(%r13,%r14), %eax
movl %eax, -0x48(%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 0x26dc2(%rip), %rsi     # 0xb4f1d
movq %rsi, %rbx
leaq 0x4232d(%rip), %rcx     # 0xd0492
cmoveq %rcx, %rbx
subss %xmm0, %xmm1
cmpb $0x1, %al
leaq 0x42315(%rip), %rax     # 0xd048b
cmoveq %rax, %rbx
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movl (%r13,%r14), %r8d
testb $0x4, %r8b
leaq 0x42308(%rip), %rcx     # 0xd0499
cmoveq %rsi, %rcx
testb $0x8, %r8b
leaq 0x42307(%rip), %rax     # 0xd04a7
cmoveq %rsi, %rax
testb $0x10, %r8b
leaq 0x42304(%rip), %rdx     # 0xd04b3
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 -0x48(%rbp), %esi
movl %esi, 0x20(%rsp)
movl -0x4c(%rbp), %esi
movl %esi, 0x18(%rsp)
movl -0x50(%rbp), %esi
movl %esi, 0x10(%rsp)
movl -0x54(%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 0x42090(%rip), %rdx     # 0xd030a
movl -0x58(%rbp), %r8d
movl %r15d, %ecx
movq -0x78(%rbp), %r9
movsd -0x70(%rbp), %xmm0
movsd -0x68(%rbp), %xmm1
movb $0x8, %al
callq 0x41f22
callq 0x932c5
movq $0x0, -0x40(%rbp)
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq -0x40(%rbp), %rcx
callq 0x94650
xorl %edi, %edi
callq 0x461ed
testb %al, %al
movq -0x60(%rbp), %r12
je 0x8e323
movss 0x8(%r13,%r14), %xmm0
movss 0xc(%r13,%r14), %xmm1
movss 0xf0(%r12), %xmm2
movss 0xf8(%r12), %xmm3
movss %xmm0, -0x40(%rbp)
movss %xmm2, -0x3c(%rbp)
movss %xmm1, -0x38(%rbp)
movss %xmm3, -0x34(%rbp)
callq 0x46567
xorps %xmm0, %xmm0
movq %rax, %rdi
leaq -0x40(%rbp), %rsi
leaq -0x38(%rbp), %rdx
movl $0xff00ffff, %ecx       # imm = 0xFF00FFFF
movl $0xf, %r8d
movss 0x26cc6(%rip), %xmm1    # 0xb4fe4
callq 0x7851c
incq %r15
movslq 0x6c(%r12), %rax
addq $0x68, %r14
cmpq %rax, %r15
jl 0x8dfc6
movq %r12, %rdi
callq 0x8d14d
testq %rax, %rax
je 0x8e34d
movq %rax, %rdi
callq 0x8e392
cmpb $0x0, -0x29(%rbp)
je 0x8e35c
movb $0x1, 0x251(%r12)
callq 0xa1609
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2c33e(%rip), %rdi     # 0xba6b8
leaq 0x2b2be(%rip), %rsi     # 0xb963f
leaq 0x2c349(%rip), %rcx     # 0xba6d1
movl $0x20e, %edx            # imm = 0x20E
callq 0xc140