// File: donfreiday[P]gb/./imgui/imgui.cpp
// Function: ImGui::NextColumn()
void ImGui::NextColumn()
{
    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return;

    ImGuiState& g = *GImGui;
    if (window->DC.ColumnsCount > 1)
    {
        ImGui::PopItemWidth();
        PopClipRect();

        window->DC.ColumnsCellMaxY = ImMax(window->DC.ColumnsCellMaxY, window->DC.CursorPos.y);
        if (++window->DC.ColumnsCurrent < window->DC.ColumnsCount)
        {
            window->DC.ColumnsOffsetX = ImGui::GetColumnOffset(window->DC.ColumnsCurrent) - window->DC.ColumnsStartX + g.Style.ItemSpacing.x;
            window->DrawList->ChannelsSetCurrent(window->DC.ColumnsCurrent);
        }
        else
        {
            window->DC.ColumnsCurrent = 0;
            window->DC.ColumnsOffsetX = 0.0f;
            window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY;
            window->DrawList->ChannelsSetCurrent(0);
        }
        window->DC.CursorPos.x = (float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX);
        window->DC.CursorPos.y = window->DC.ColumnsCellMinY;
        window->DC.CurrentLineHeight = 0.0f;
        window->DC.CurrentLineTextBaseOffset = 0.0f;

        PushColumnClipRect();
        ImGui::PushItemWidth(ImGui::GetColumnWidth() * 0.65f);  // FIXME
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x2e220
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x74(%rax)
je 0x29e60
jmp 0x29ff4
movq 0x4f659(%rip), %rax     # 0x794c0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x1, 0x1a0(%rax)
jle 0x29ff4
callq 0xb0f0
callq 0x18470
movq -0x8(%rbp), %rax
movss 0x1b0(%rax), %xmm0
movq -0x8(%rbp), %rax
movss 0xac(%rax), %xmm1
callq 0xb7c0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b0(%rax)
movq -0x8(%rbp), %rcx
movl 0x19c(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x19c(%rcx)
movq -0x8(%rbp), %rcx
cmpl 0x1a0(%rcx), %eax
jge 0x29f1d
movq -0x8(%rbp), %rax
movl 0x19c(%rax), %edi
callq 0x19660
movq -0x8(%rbp), %rax
subss 0x194(%rax), %xmm0
movq -0x10(%rbp), %rax
addss 0x1414(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x198(%rax)
movq -0x8(%rbp), %rax
movq 0x270(%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x19c(%rax), %esi
callq 0x3d750
jmp 0x29f64
movq -0x8(%rbp), %rax
movl $0x0, 0x19c(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x198(%rax)
movq -0x8(%rbp), %rax
movss 0x1b0(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1ac(%rax)
movq -0x8(%rbp), %rax
movq 0x270(%rax), %rdi
xorl %esi, %esi
callq 0x3d750
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x8(%rbp), %rax
addss 0x194(%rax), %xmm0
movq -0x8(%rbp), %rax
addss 0x198(%rax), %xmm0
cvttss2si %xmm0, %eax
cvtsi2ss %eax, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xa8(%rax)
movq -0x8(%rbp), %rax
movss 0x1ac(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xac(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0xc8(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0xcc(%rax)
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x27800
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2a000
movss 0x31065(%rip), %xmm1    # 0x5b050
mulss %xmm1, %xmm0
callq 0xafc0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)