// File: istellartech[P]OpenTsiolkovsky/src/../lib/csv.h
// Function: void io::detail::parse_line<io::trim_chars<(char)32, (char)9>, io::no_quote_escape<(char)44>>(char*, char**, std::vector<int, std::allocator<int>> const&)
void parse_line(
                        char*line,
                        char**sorted_col,
                        const std::vector<int>&col_order
                ){
                        for(std::size_t i=0; i<col_order.size(); ++i){
                                if(line == nullptr)
                                        throw ::io::error::too_few_columns();
                                char*col_begin, *col_end;
                                chop_next_column<quote_policy>(line, col_begin, col_end);

                                if(col_order[i] != -1){
                                        trim_policy::trim(col_begin, col_end);
                                        quote_policy::unescape(col_begin, col_end);
                                                               
                                        sorted_col[col_order[i]] = col_begin;
                                }
                        }
                        if(line != nullptr)
                                throw ::io::error::too_many_columns();
                }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
callq 0x40c10
movq %rax, %rcx
movq -0x48(%rbp), %rax
cmpq %rcx, %rax
jae 0x42f19
cmpq $0x0, -0x8(%rbp)
jne 0x42e9a
movl $0x210, %edi            # imm = 0x210
movq %rdi, -0x60(%rbp)
callq 0x6250
movq -0x60(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x50(%rbp)
movq %rdi, %rax
movq %rax, -0x58(%rbp)
xorl %esi, %esi
callq 0x62a0
movq -0x50(%rbp), %rdi
callq 0x43110
jmp 0x42e69
movq -0x58(%rbp), %rdi
leaq 0x35d34(%rip), %rsi     # 0x78ba8
leaq 0x2f5(%rip), %rdx       # 0x43170
callq 0x6760
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x6350
jmp 0x42f8f
leaq -0x8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x421b0
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x43190
cmpl $-0x1, (%rax)
je 0x42f06
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x42270
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x42340
movq -0x38(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x43190
movq -0x70(%rbp), %rdx
movq %rax, %rcx
movq -0x68(%rbp), %rax
movslq (%rcx), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x42f08
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x42e0f
cmpq $0x0, -0x8(%rbp)
je 0x42f86
movl $0x210, %edi            # imm = 0x210
movq %rdi, -0x88(%rbp)
callq 0x6250
movq -0x88(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x78(%rbp)
movq %rdi, %rax
movq %rax, -0x80(%rbp)
xorl %esi, %esi
callq 0x62a0
movq -0x78(%rbp), %rdi
callq 0x431b0
jmp 0x42f58
movq -0x80(%rbp), %rdi
leaq 0x35c8d(%rip), %rsi     # 0x78bf0
leaq 0x2a6(%rip), %rdx       # 0x43210
callq 0x6760
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x6350
jmp 0x42f8f
addq $0x90, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x67a0
nopl (%rax,%rax)