// File: /workspace/github_cpp_makefile_star2_O2/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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edi, %ebx
leaq 0x6c5fa(%rip), %rax     # 0xe3ce0
movq (%rax), %r13
movq 0x1ae0(%r13), %rax
movq 0x1b0(%rax), %r12
testq %r12, %r12
je 0x77857
testl %ebx, %ebx
jns 0x77709
movl 0xc(%r12), %ebx
cmpl 0x60(%r12), %ebx
jge 0x77876
leaq 0x60(%r12), %r14
movl 0x4(%r12), %eax
xorps %xmm1, %xmm1
testb $0x4, %al
jne 0x77776
movl 0x10(%r12), %ecx
decl %ecx
cmpl %ecx, %ebx
jge 0x77776
movss %xmm0, -0x30(%rbp)
movl %ebx, %r15d
testl %ebx, %ebx
jns 0x77741
movl 0xc(%r12), %r15d
movb 0x9(%r12), %al
movb %al, -0x2c(%rbp)
leal 0x1(%r15), %esi
movq %r14, %rdi
callq 0x4bb92
cmpb $0x0, -0x2c(%rbp)
je 0x7777b
movss 0x4(%rax), %xmm0
movss %xmm0, -0x2c(%rbp)
movq %r14, %rdi
movl %r15d, %esi
callq 0x4bb92
addq $0x4, %rax
jmp 0x7778f
xorl %r15d, %r15d
jmp 0x777b7
movss (%rax), %xmm0
movss %xmm0, -0x2c(%rbp)
movq %r14, %rdi
movl %r15d, %esi
callq 0x4bb92
movss -0x2c(%rbp), %xmm0
subss (%rax), %xmm0
movss 0x18(%r12), %xmm1
subss 0x14(%r12), %xmm1
mulss %xmm0, %xmm1
movl 0x4(%r12), %eax
movb $0x1, %r15b
movss -0x30(%rbp), %xmm0
movaps %xmm1, -0x40(%rbp)
movss 0x18(%r12), %xmm3
testb $0x8, %al
jne 0x777e5
movl 0x10(%r12), %eax
subl %ebx, %eax
cvtsi2ss %eax, %xmm1
mulss 0x15cc(%r13), %xmm1
movaps %xmm3, %xmm2
subss %xmm1, %xmm2
minss %xmm2, %xmm0
movss %xmm0, -0x30(%rbp)
movss 0x14(%r12), %xmm1
subss %xmm1, %xmm0
subss %xmm1, %xmm3
divss %xmm3, %xmm0
movss %xmm0, -0x2c(%rbp)
movq %r14, %rdi
movl %ebx, %esi
callq 0x4bb92
movss -0x2c(%rbp), %xmm0
movss %xmm0, (%rax)
testb %r15b, %r15b
je 0x77848
incl %ebx
movss 0x15cc(%r13), %xmm0
movaps -0x40(%rbp), %xmm2
movaps %xmm2, %xmm1
cmpless %xmm0, %xmm1
andps %xmm1, %xmm0
andnps %xmm2, %xmm1
orps %xmm0, %xmm1
movss -0x30(%rbp), %xmm0
addss %xmm1, %xmm0
jmp 0x776df
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3ffc2(%rip), %rdi     # 0xb7820
leaq 0x3e8a1(%rip), %rsi     # 0xb6106
leaq 0x3ffc6(%rip), %rcx     # 0xb7832
movl $0xe14, %edx            # imm = 0xE14
callq 0xc140
leaq 0x3ff5c(%rip), %rdi     # 0xb77d9
leaq 0x3e882(%rip), %rsi     # 0xb6106
leaq 0x3ffa7(%rip), %rcx     # 0xb7832
movl $0xe18, %edx            # imm = 0xE18
callq 0xc140