// File: /workspace/github_cpp_makefile_star2_O3/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
movq %rcx, %r14
movq %rdx, %rbx
xorl %eax, %eax
leaq -0x34(%rbp), %rdx
movl %eax, (%rdx)
movl %eax, -0x30(%rbp)
movl %eax, -0x24(%rbp)
movl %eax, -0x2c(%rbp)
leaq 0x4340b(%rip), %rsi     # 0xd087d
movq %rcx, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x8d490
movss -0x34(%rbp), %xmm0
movss %xmm0, 0x8(%rbx)
jmp 0x8d691
leaq 0x433f2(%rip), %rsi     # 0xd0889
leaq -0x30(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x8d691
movl -0x30(%rbp), %eax
testl %eax, %eax
js 0x8d691
movsbl 0xc(%rbx), %ecx
cmpl %ecx, %eax
jge 0x8d691
leaq -0x24(%rbp), %r15
movslq (%r15), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x41f07
movq %rax, %r14
movb $0x0, -0x25(%rbp)
movslq -0x30(%rbp), %rax
leaq (%rax,%rax,2), %rcx
leaq 0x10(%rbx,%rcx,4), %r12
movb %al, 0x8(%r12)
leaq 0x4339a(%rip), %rsi     # 0xd0895
leaq -0x2c(%rbp), %rdx
movq %r14, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x8d52b
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x41f07
movq %rax, %r14
movl -0x2c(%rbp), %eax
movl %eax, 0x4(%r12)
leaq 0x43373(%rip), %rsi     # 0xd08a5
leaq -0x2c(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x8d570
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x41f07
cvtsi2ssl -0x2c(%rbp), %xmm0
movss %xmm0, (%r12)
andb $-0x9, 0xb(%r12)
movq %rax, %r14
orb $0x1, 0x4(%rbx)
leaq 0x43339(%rip), %rsi     # 0xd08b0
leaq -0x34(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x8d5b5
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x41f07
movss -0x34(%rbp), %xmm0
movss %xmm0, (%r12)
orb $0x8, 0xb(%r12)
movq %rax, %r14
orb $0x1, 0x4(%rbx)
leaq 0x43300(%rip), %rsi     # 0xd08bc
leaq -0x2c(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x8d600
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x41f07
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 0x432c2(%rip), %rsi     # 0xd08c9
leaq -0x2c(%rbp), %rdx
leaq -0x24(%rbp), %rcx
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x1, %eax
jne 0x8d63c
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x41f07
movq %rax, %r14
movb -0x2c(%rbp), %al
movb %al, 0x9(%r12)
orb $0x2, 0x4(%rbx)
leaq 0x43291(%rip), %rsi     # 0xd08d4
leaq -0x2c(%rbp), %rdx
leaq -0x25(%rbp), %rcx
leaq -0x24(%rbp), %r8
movq %r14, %rdi
xorl %eax, %eax
callq 0xc0c0
cmpl $0x2, %eax
jne 0x8d691
movslq -0x24(%rbp), %rax
addq %rax, %r14
movq %r14, %rdi
callq 0x41f07
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