// File: /workspace/github_cpp_makefile_star2_O1/Ciaxur[P]yagb-emu/include/imgui/imgui_tables.cpp
// Function: ImGui::SetColumnOffset(int, float)
void ImGui::SetColumnOffset(int column_index, float offset)
{
    ImGuiContext& g = *GImGui;
    ImGuiWindow* window = g.CurrentWindow;
    ImGuiOldColumns* columns = window->DC.CurrentColumns;
    IM_ASSERT(columns != NULL);

    if (column_index < 0)
        column_index = columns->Current;
    IM_ASSERT(column_index < columns->Columns.Size);

    const bool preserve_width = !(columns->Flags & ImGuiOldColumnFlags_NoPreserveWidths) && (column_index < columns->Count - 1);
    const float width = preserve_width ? GetColumnWidthEx(columns, column_index, columns->IsBeingResized) : 0.0f;

    if (!(columns->Flags & ImGuiOldColumnFlags_NoForceWithinWindow))
        offset = ImMin(offset, columns->OffMaxX - g.Style.ColumnsMinSpacing * (columns->Count - column_index));
    columns->Columns[column_index].OffsetNorm = GetColumnNormFromOffset(columns, offset - columns->OffMinX);

    if (preserve_width)
        SetColumnOffset(column_index + 1, offset + ImMax(g.Style.ColumnsMinSpacing, width));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
leaq 0x6d956(%rip), %rax     # 0xfdcd0
movq (%rax), %rcx
movq 0x1ae0(%rcx), %rdx
movq 0x1b0(%rdx), %rdx
testq %rdx, %rdx
je 0x90535
testl %edi, %edi
jns 0x9039b
movl 0xc(%rdx), %edi
movl 0x60(%rdx), %r10d
cmpl %r10d, %edi
jge 0x90554
movl 0x4(%rdx), %r8d
testb $0x4, %r8b
jne 0x903bf
movl 0x10(%rdx), %esi
decl %esi
cmpl %esi, %edi
setl %sil
jmp 0x903c1
xorl %esi, %esi
xorps %xmm1, %xmm1
testb %sil, %sil
je 0x90487
movl %edi, %r9d
testl %edi, %edi
jns 0x903d8
movl 0xc(%rdx), %r9d
leal 0x1(%r9), %r11d
cmpl $-0x1, %r9d
setge %bl
cmpl %r11d, %r10d
setg %r10b
andb %bl, %r10b
cmpb $0x0, 0x9(%rdx)
je 0x90437
testb %r10b, %r10b
je 0x90516
testl %r9d, %r9d
js 0x90516
movq 0x68(%rdx), %rbx
movl %r11d, %r10d
leaq (%r10,%r10,8), %r11
leaq (%r11,%r11,2), %r11
addq %r10, %r11
leaq (%rbx,%r11), %r10
addq $0x4, %r10
movl %r9d, %r9d
leaq (%r9,%r9,8), %r11
leaq (%r11,%r11,2), %r11
addq %r9, %r11
leaq (%rbx,%r11), %r9
addq $0x4, %r9
jmp 0x9046f
testb %r10b, %r10b
je 0x90516
testl %r9d, %r9d
js 0x90516
movq 0x68(%rdx), %rbx
movl %r11d, %r11d
leaq (%r11,%r11,8), %r10
leaq (%r10,%r10,2), %r10
addq %r11, %r10
addq %rbx, %r10
movl %r9d, %r11d
leaq (%r11,%r11,8), %r9
leaq (%r9,%r9,2), %r9
addq %r11, %r9
addq %rbx, %r9
movss (%r10), %xmm2
subss (%r9), %xmm2
movss 0x18(%rdx), %xmm1
subss 0x14(%rdx), %xmm1
mulss %xmm2, %xmm1
testb $0x8, %r8b
jne 0x904b1
movss 0x18(%rdx), %xmm2
movl 0x10(%rdx), %r8d
subl %edi, %r8d
xorps %xmm3, %xmm3
cvtsi2ss %r8d, %xmm3
mulss 0x15cc(%rcx), %xmm3
subss %xmm3, %xmm2
minss %xmm2, %xmm0
testl %edi, %edi
js 0x90516
movss 0x14(%rdx), %xmm2
movss 0x18(%rdx), %xmm3
movaps %xmm0, %xmm4
subss %xmm2, %xmm4
subss %xmm2, %xmm3
divss %xmm3, %xmm4
movq 0x68(%rdx), %rdx
movl %edi, %r8d
leaq (%r8,%r8,8), %r9
leaq (%r9,%r9,2), %r9
addq %r8, %r9
movss %xmm4, (%rdx,%r9)
testb %sil, %sil
je 0x9050f
incl %edi
movss 0x15cc(%rcx), %xmm2
movaps %xmm1, %xmm3
cmpless %xmm2, %xmm3
andps %xmm3, %xmm2
andnps %xmm1, %xmm3
orps %xmm2, %xmm3
addss %xmm3, %xmm0
jmp 0x9037a
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0x2b15b(%rip), %rdi     # 0xbb678
leaq 0x2b167(%rip), %rsi     # 0xbb68b
leaq 0x428e7(%rip), %rcx     # 0xd2e12
movl $0x65c, %edx            # imm = 0x65C
callq 0xc140
leaq 0x42098(%rip), %rdi     # 0xd25d4
leaq 0x40977(%rip), %rsi     # 0xd0eba
leaq 0x4209c(%rip), %rcx     # 0xd25e6
movl $0xe14, %edx            # imm = 0xE14
callq 0xc140
leaq 0x42032(%rip), %rdi     # 0xd258d
leaq 0x40958(%rip), %rsi     # 0xd0eba
leaq 0x4207d(%rip), %rcx     # 0xd25e6
movl $0xe18, %edx            # imm = 0xE18
callq 0xc140