// File: 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
subq $0x40, %rsp
movl %edi, -0x4(%rbp)
movss %xmm0, -0x8(%rbp)
leaq 0xdd9e9(%rip), %rax     # 0x212f40
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x1ae0(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x1b0(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x135585
jmp 0x1355a4
leaq 0x5839f(%rip), %rdi     # 0x18d92b
leaq 0x56a0f(%rip), %rsi     # 0x18bfa2
movl $0xe14, %edx            # imm = 0xE14
leaq 0x5839e(%rip), %rcx     # 0x18d93d
callq 0xd180
cmpl $0x0, -0x4(%rbp)
jge 0x1355b4
movq -0x20(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq -0x20(%rbp), %rcx
cmpl 0x60(%rcx), %eax
jge 0x1355c2
jmp 0x1355e1
leaq 0x5831b(%rip), %rdi     # 0x18d8e4
leaq 0x569d2(%rip), %rsi     # 0x18bfa2
movl $0xe18, %edx            # imm = 0xE18
leaq 0x58361(%rip), %rcx     # 0x18d93d
callq 0xd180
movq -0x20(%rbp), %rax
movl 0x4(%rax), %ecx
andl $0x4, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x29(%rbp)
jne 0x13560a
movl -0x4(%rbp), %eax
movq -0x20(%rbp), %rcx
movl 0x10(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
andb $0x1, %al
movb %al, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
je 0x135637
movq -0x20(%rbp), %rdi
movl -0x4(%rbp), %esi
movq -0x20(%rbp), %rax
movb 0x9(%rax), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x135720
movss %xmm0, -0x30(%rbp)
jmp 0x135641
xorps %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
jmp 0x135641
movss -0x30(%rbp), %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x20(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x1356a1
movss -0x8(%rbp), %xmm0
movq -0x20(%rbp), %rax
movss 0x18(%rax), %xmm2
movq -0x10(%rbp), %rax
movss 0x15cc(%rax), %xmm1
movq -0x20(%rbp), %rax
movl 0x10(%rax), %eax
subl -0x4(%rbp), %eax
cvtsi2ss %eax, %xmm3
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
callq 0x12a6b0
movss %xmm0, -0x8(%rbp)
movq -0x20(%rbp), %rdi
movss -0x8(%rbp), %xmm0
movq -0x20(%rbp), %rax
subss 0x14(%rax), %xmm0
callq 0x135340
movss %xmm0, -0x34(%rbp)
movq -0x20(%rbp), %rdi
addq $0x60, %rdi
movl -0x4(%rbp), %esi
callq 0xec8a0
movss -0x34(%rbp), %xmm0
movss %xmm0, (%rax)
testb $0x1, -0x21(%rbp)
je 0x135719
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x10(%rbp), %rax
movss 0x15cc(%rax), %xmm0
movss -0x28(%rbp), %xmm1
callq 0x12a620
movl -0x3c(%rbp), %edi
movaps %xmm0, %xmm1
movss -0x38(%rbp), %xmm0
addss %xmm1, %xmm0
callq 0x135540
addq $0x40, %rsp
popq %rbp
retq
nop