// File: /workspace/github_cpp_makefile_star2_O2/Ciaxur[P]yagb-emu/include/imgui/imgui_tables.cpp
// Function: TableSettingsHandler_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void*, char const*)
static void TableSettingsHandler_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line)
{
    // "Column 0  UserID=0x42AD2D21 Width=100 Visible=1 Order=0 Sort=0v"
    ImGuiTableSettings* settings = (ImGuiTableSettings*)entry;
    float f = 0.0f;
    int column_n = 0, r = 0, n = 0;

    if (sscanf(line, "RefScale=%f", &f) == 1) { settings->RefScale = f; return; }

    if (sscanf(line, "Column %d%n", &column_n, &r) == 1)
    {
        if (column_n < 0 || column_n >= settings->ColumnsCount)
            return;
        line = ImStrSkipBlank(line + r);
        char c = 0;
        ImGuiTableColumnSettings* column = settings->GetColumnSettings() + column_n;
        column->Index = (ImGuiTableColumnIdx)column_n;
        if (sscanf(line, "UserID=0x%08X%n", (ImU32*)&n, &r)==1) { line = ImStrSkipBlank(line + r); column->UserID = (ImGuiID)n; }
        if (sscanf(line, "Width=%d%n", &n, &r) == 1)            { line = ImStrSkipBlank(line + r); column->WidthOrWeight = (float)n; column->IsStretch = 0; settings->SaveFlags |= ImGuiTableFlags_Resizable; }
        if (sscanf(line, "Weight=%f%n", &f, &r) == 1)           { line = ImStrSkipBlank(line + r); column->WidthOrWeight = f; column->IsStretch = 1; settings->SaveFlags |= ImGuiTableFlags_Resizable; }
        if (sscanf(line, "Visible=%d%n", &n, &r) == 1)          { line = ImStrSkipBlank(line + r); column->IsEnabled = (ImU8)n; settings->SaveFlags |= ImGuiTableFlags_Hideable; }
        if (sscanf(line, "Order=%d%n", &n, &r) == 1)            { line = ImStrSkipBlank(line + r); column->DisplayOrder = (ImGuiTableColumnIdx)n; settings->SaveFlags |= ImGuiTableFlags_Reorderable; }
        if (sscanf(line, "Sort=%d%c%n", &n, &c, &r) == 2)       { line = ImStrSkipBlank(line + r); column->SortOrder = (ImGuiTableColumnIdx)n; column->SortDirection = (c == '^') ? ImGuiSortDirection_Descending : ImGuiSortDirection_Ascending; settings->SaveFlags |= ImGuiTableFlags_Sortable; }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
leaq -0x34(%rbp), %rax
andl $0x0, (%rax)
andl $0x0, -0x30(%rbp)
movq %rcx, %r14
andl $0x0, -0x24(%rbp)
movq %rdx, %rbx
andl $0x0, -0x2c(%rbp)
leaq 0x413e4(%rip), %rsi     # 0xb7af9
movq %rcx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x76736
movss -0x34(%rbp), %xmm0
movss %xmm0, 0x8(%rbx)
jmp 0x7693a
leaq 0x413c8(%rip), %rsi     # 0xb7b05
leaq -0x30(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x7693a
movl -0x30(%rbp), %eax
testl %eax, %eax
js 0x7693a
movsbl 0xc(%rbx), %ecx
cmpl %ecx, %eax
jge 0x7693a
leaq -0x24(%rbp), %r15
movslq (%r15), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x34671
movq %rax, %r14
movb $0x0, -0x25(%rbp)
movslq -0x30(%rbp), %rax
imulq $0xc, %rax, %rcx
leaq (%rbx,%rcx), %r12
addq $0x10, %r12
movb %al, 0x8(%r12)
leaq 0x4136d(%rip), %rsi     # 0xb7b11
leaq -0x2c(%rbp), %rdx
movq %r14, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x767d4
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x34671
movq %rax, %r14
movl -0x2c(%rbp), %eax
movl %eax, 0x4(%r12)
leaq 0x41346(%rip), %rsi     # 0xb7b21
leaq -0x2c(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x76819
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x34671
cvtsi2ssl -0x2c(%rbp), %xmm0
movss %xmm0, (%r12)
andb $-0x9, 0xb(%r12)
movq %rax, %r14
orb $0x1, 0x4(%rbx)
leaq 0x4130c(%rip), %rsi     # 0xb7b2c
leaq -0x34(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x7685e
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x34671
movss -0x34(%rbp), %xmm0
movss %xmm0, (%r12)
orb $0x8, 0xb(%r12)
movq %rax, %r14
orb $0x1, 0x4(%rbx)
leaq 0x412d3(%rip), %rsi     # 0xb7b38
leaq -0x2c(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x768a9
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x34671
movq %rax, %r14
movb -0x2c(%rbp), %al
movb 0xb(%r12), %cl
shlb $0x2, %al
andb $0x4, %al
andb $-0x5, %cl
orb %al, %cl
movb %cl, 0xb(%r12)
orb $0x4, 0x4(%rbx)
leaq 0x41295(%rip), %rsi     # 0xb7b45
leaq -0x2c(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x768e5
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x34671
movq %rax, %r14
movb -0x2c(%rbp), %al
movb %al, 0x9(%r12)
orb $0x2, 0x4(%rbx)
leaq 0x41264(%rip), %rsi     # 0xb7b50
leaq -0x2c(%rbp), %rdx
leaq -0x25(%rbp), %rcx
leaq -0x24(%rbp), %r8
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x2, %eax
jne 0x7693a
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x34671
movb -0x2c(%rbp), %al
movb %al, 0xa(%r12)
cmpb $0x5e, -0x25(%rbp)
sete %al
movb 0xb(%r12), %cl
andb $-0x4, %cl
orb %al, %cl
incb %cl
movb %cl, 0xb(%r12)
orb $0x8, 0x4(%rbx)
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq