// File: donfreiday[P]gb/./imgui/imgui.cpp
// Function: ImGui::GetColumnOffset(int)
float ImGui::GetColumnOffset(int column_index)
{
    ImGuiState& g = *GImGui;
    ImGuiWindow* window = GetCurrentWindowRead();
    if (column_index < 0)
        column_index = window->DC.ColumnsCurrent;

    if (g.ActiveId)
    {
        const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index);
        if (g.ActiveId == column_id)
            return GetDraggedColumnOffset(column_index);
    }

    // Read from cache
    IM_ASSERT(column_index < window->DC.ColumnsOffsetsT.Size);
    const float t = window->DC.ColumnsOffsetsT[column_index];

    const float content_region_width = window->SizeContentsExplicit.x ? window->SizeContentsExplicit.x : window->Size.x;
    const float min_x = window->DC.ColumnsStartX;
    const float max_x = content_region_width - window->Scroll.x - ((window->Flags & ImGuiWindowFlags_NoScrollbar) ? 0 : g.Style.ScrollbarSize);// - window->WindowPadding().x;
    const float x = min_x + t * (max_x - min_x);
    return (float)(int)x;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x8(%rbp)
movq 0x5fe4e(%rip), %rax     # 0x794c0
movq %rax, -0x10(%rbp)
callq 0x2e290
movq %rax, -0x18(%rbp)
cmpl $0x0, -0x8(%rbp)
jge 0x19692
movq -0x18(%rbp), %rax
movl 0x19c(%rax), %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x1790(%rax)
je 0x196d2
movq -0x18(%rbp), %rax
movl 0x1b8(%rax), %eax
addl -0x8(%rbp), %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movl 0x1790(%rax), %eax
cmpl -0x1c(%rbp), %eax
jne 0x196d0
movl -0x8(%rbp), %edi
callq 0x2a0c0
movss %xmm0, -0x4(%rbp)
jmp 0x197f2
jmp 0x196d2
movl -0x8(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1c0(%rcx), %eax
jge 0x196e3
jmp 0x19702
leaq 0x42d4f(%rip), %rdi     # 0x5c439
leaq 0x41bd4(%rip), %rsi     # 0x5b2c5
movl $0x21e0, %edx           # imm = 0x21E0
leaq 0x42d6b(%rip), %rcx     # 0x5c468
callq 0x7160
movq -0x18(%rbp), %rdi
addq $0xa8, %rdi
addq $0x118, %rdi            # imm = 0x118
movl -0x8(%rbp), %esi
callq 0x30290
movss (%rax), %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x1973a
jp 0x1973a
jmp 0x1974a
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm0
movss %xmm0, -0x34(%rbp)
jmp 0x19758
movq -0x18(%rbp), %rax
movss 0x20(%rax), %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x34(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
movq -0x18(%rbp), %rax
movss 0x194(%rax), %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x24(%rbp), %xmm0
movq -0x18(%rbp), %rax
subss 0x4c(%rax), %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x1979f
xorps %xmm0, %xmm0
movss %xmm0, -0x3c(%rbp)
jmp 0x197b0
movq -0x10(%rbp), %rax
movss 0x1438(%rax), %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x38(%rbp), %xmm0
movss -0x3c(%rbp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x28(%rbp), %xmm1
movss -0x20(%rbp), %xmm0
movss -0x2c(%rbp), %xmm2
subss -0x28(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x30(%rbp)
cvttss2si -0x30(%rbp), %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x4(%rbp), %xmm0
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)