// File: /workspace/github_cpp_makefile_star2_O2/Ciaxur[P]yagb-emu/include/imgui/imgui_tables.cpp
// Function: ImGui::TableUpdateColumnsWeightFromWidth(ImGuiTable*)
void ImGui::TableUpdateColumnsWeightFromWidth(ImGuiTable* table)
{
    IM_ASSERT(table->LeftMostStretchedColumn != -1 && table->RightMostStretchedColumn != -1);

    // Measure existing quantity
    float visible_weight = 0.0f;
    float visible_width = 0.0f;
    for (int column_n = 0; column_n < table->ColumnsCount; column_n++)
    {
        ImGuiTableColumn* column = &table->Columns[column_n];
        if (!column->IsEnabled || !(column->Flags & ImGuiTableColumnFlags_WidthStretch))
            continue;
        IM_ASSERT(column->StretchWeight > 0.0f);
        visible_weight += column->StretchWeight;
        visible_width += column->WidthRequest;
    }
    IM_ASSERT(visible_weight > 0.0f && visible_width > 0.0f);

    // Apply new weights
    for (int column_n = 0; column_n < table->ColumnsCount; column_n++)
    {
        ImGuiTableColumn* column = &table->Columns[column_n];
        if (!column->IsEnabled || !(column->Flags & ImGuiTableColumnFlags_WidthStretch))
            continue;
        column->StretchWeight = (column->WidthRequest / visible_width) * visible_weight;
        IM_ASSERT(column->StretchWeight > 0.0f);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
cmpb $-0x1, 0x23c(%rdi)
je 0x753bc
movq %rdi, %rbx
cmpb $-0x1, 0x23d(%rdi)
je 0x753bc
leaq 0x10(%rbx), %r14
xorl %r15d, %r15d
xorps %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
movss %xmm0, -0x20(%rbp)
movl 0x6c(%rbx), %eax
cmpl %eax, %r15d
jge 0x75311
movq %r14, %rdi
movl %r15d, %esi
callq 0x4c4c6
cmpb $0x1, 0x5a(%rax)
jne 0x7530c
testb $0x4, (%rax)
je 0x7530c
movss 0x18(%rax), %xmm0
ucomiss 0x275db(%rip), %xmm0    # 0x9c8c4
jbe 0x7537e
movss -0x20(%rbp), %xmm1
addss %xmm0, %xmm1
movss %xmm1, -0x20(%rbp)
movss -0x1c(%rbp), %xmm0
addss 0x10(%rax), %xmm0
movss %xmm0, -0x1c(%rbp)
incl %r15d
jmp 0x752bf
xorps %xmm0, %xmm0
movss -0x20(%rbp), %xmm1
ucomiss %xmm0, %xmm1
jbe 0x753db
movss -0x1c(%rbp), %xmm1
ucomiss %xmm0, %xmm1
jbe 0x753db
xorl %r15d, %r15d
cmpl %eax, %r15d
jge 0x75373
movq %r14, %rdi
movl %r15d, %esi
callq 0x4c4c6
cmpb $0x1, 0x5a(%rax)
jne 0x7536b
testb $0x4, (%rax)
je 0x7536b
movss 0x10(%rax), %xmm0
divss -0x1c(%rbp), %xmm0
mulss -0x20(%rbp), %xmm0
movss %xmm0, 0x18(%rax)
ucomiss 0x2755b(%rip), %xmm0    # 0x9c8c4
jbe 0x7539d
incl %r15d
movl 0x6c(%rbx), %eax
jmp 0x75333
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x41931(%rip), %rdi     # 0xb6cb6
leaq 0x40d7a(%rip), %rsi     # 0xb6106
leaq 0x418e7(%rip), %rcx     # 0xb6c7a
movl $0x81e, %edx            # imm = 0x81E
callq 0xc140
leaq 0x41912(%rip), %rdi     # 0xb6cb6
leaq 0x40d5b(%rip), %rsi     # 0xb6106
leaq 0x418c8(%rip), %rcx     # 0xb6c7a
movl $0x82b, %edx            # imm = 0x82B
callq 0xc140
leaq 0x41869(%rip), %rdi     # 0xb6c2c
leaq 0x40d3c(%rip), %rsi     # 0xb6106
leaq 0x418a9(%rip), %rcx     # 0xb6c7a
movl $0x814, %edx            # imm = 0x814
callq 0xc140
leaq 0x418f1(%rip), %rdi     # 0xb6cd3
leaq 0x40d1d(%rip), %rsi     # 0xb6106
leaq 0x4188a(%rip), %rcx     # 0xb6c7a
movl $0x822, %edx            # imm = 0x822
callq 0xc140