// File: /workspace/github_cpp_makefile_star2_O3/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
leaq 0x6d646(%rip), %rax     # 0xfbcd0
movq (%rax), %rax
movq 0x1ae0(%rax), %rcx
movq 0x1b0(%rcx), %rcx
testq %rcx, %rcx
je 0x8e856
movl 0x60(%rcx), %edx
testl %edi, %edi
jns 0x8e6ae
movl 0xc(%rcx), %edi
cmpl %edx, %edi
jge 0x8e837
movl 0x4(%rcx), %esi
xorps %xmm1, %xmm1
testb $0x4, %sil
jne 0x8e739
movl 0x10(%rcx), %r8d
decl %r8d
cmpl %r8d, %edi
jge 0x8e739
movl %edi, %r8d
testl %edi, %edi
jns 0x8e6d9
movl 0xc(%rcx), %r8d
leal 0x1(%r8), %r9d
cmpl $-0x1, %r8d
setge %r11b
cmpl %r9d, %edx
setg %r10b
andb %r11b, %r10b
cmpb $0x0, 0x9(%rcx)
je 0x8e73e
testb %r10b, %r10b
je 0x8e818
testl %r8d, %r8d
js 0x8e818
movq 0x68(%rcx), %r10
movl %r9d, %r9d
leaq (%r9,%r9,8), %r11
leaq (%r11,%r11,2), %r11
addq %r9, %r11
leaq (%r10,%r11), %r9
addq $0x4, %r9
movl %r8d, %r8d
leaq (%r8,%r8,8), %r11
leaq (%r11,%r11,2), %r11
addq %r8, %r11
leaq (%r10,%r11), %r8
addq $0x4, %r8
jmp 0x8e776
xorl %r8d, %r8d
jmp 0x8e791
testb %r10b, %r10b
je 0x8e818
testl %r8d, %r8d
js 0x8e818
movq 0x68(%rcx), %r10
movl %r9d, %r11d
leaq (%r11,%r11,8), %r9
leaq (%r9,%r9,2), %r9
addq %r11, %r9
addq %r10, %r9
movl %r8d, %r11d
leaq (%r11,%r11,8), %r8
leaq (%r8,%r8,2), %r8
addq %r11, %r8
addq %r10, %r8
movss (%r9), %xmm2
subss (%r8), %xmm2
movss 0x18(%rcx), %xmm1
subss 0x14(%rcx), %xmm1
mulss %xmm2, %xmm1
movb $0x1, %r8b
testb $0x8, %sil
jne 0x8e7b8
movss 0x18(%rcx), %xmm2
movl 0x10(%rcx), %esi
subl %edi, %esi
xorps %xmm3, %xmm3
cvtsi2ss %esi, %xmm3
mulss 0x15cc(%rax), %xmm3
subss %xmm3, %xmm2
minss %xmm2, %xmm0
testl %edi, %edi
js 0x8e818
movss 0x14(%rcx), %xmm2
movss 0x18(%rcx), %xmm3
movaps %xmm0, %xmm4
subss %xmm2, %xmm4
subss %xmm2, %xmm3
divss %xmm3, %xmm4
movq 0x68(%rcx), %rsi
movl %edi, %r9d
leaq (%r9,%r9,8), %r10
leaq (%r10,%r10,2), %r10
addq %r9, %r10
movss %xmm4, (%rsi,%r10)
testb %r8b, %r8b
je 0x8e816
incl %edi
movss 0x15cc(%rax), %xmm2
movaps %xmm1, %xmm3
cmpless %xmm2, %xmm3
andps %xmm3, %xmm2
andnps %xmm1, %xmm3
orps %xmm2, %xmm3
addss %xmm3, %xmm0
jmp 0x8e6a7
popq %rbp
retq
leaq 0x2ae59(%rip), %rdi     # 0xb9678
leaq 0x2ae65(%rip), %rsi     # 0xb968b
leaq 0x424b7(%rip), %rcx     # 0xd0ce4
movl $0x65c, %edx            # imm = 0x65C
callq 0xc140
leaq 0x41d1f(%rip), %rdi     # 0xd055d
leaq 0x40645(%rip), %rsi     # 0xcee8a
leaq 0x41d6a(%rip), %rcx     # 0xd05b6
movl $0xe18, %edx            # imm = 0xE18
callq 0xc140
leaq 0x41d47(%rip), %rdi     # 0xd05a4
leaq 0x40626(%rip), %rsi     # 0xcee8a
leaq 0x41d4b(%rip), %rcx     # 0xd05b6
movl $0xe14, %edx            # imm = 0xE14
callq 0xc140