// File: /workspace/github_cpp_makefile_star2_O2/zeeev[P]DASVC/bamtools/src/toolkit/bamtools_resolve.cpp
// Function: BamTools::ResolveTool::StatsFileReader::ParseOptionLine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, BamTools::ResolveTool::ResolveSettings*)
bool ResolveTool::StatsFileReader::ParseOptionLine(const string& line,
                                                   ResolveTool::ResolveSettings* settings)
{
    // split line into option, value
    vector<string> fields = Utilities::Split(line, EQUAL_CHAR);
    if ( fields.size() != NUM_OPTIONS_FIELDS )
        return false;
    const string& option = fields.at(0);
    stringstream value(fields.at(1));

    // -----------------------------------
    // handle option based on keyword

    // ConfidenceInterval
    if ( option == OPTION_CONFIDENCEINTERVAL ) {
        value >> settings->ConfidenceInterval;
        settings->HasConfidenceInterval = true;
        return true;
    }

    // ForceMarkReadGroups
    if ( option == OPTION_FORCEMARKREADGROUPS ) {
        value >> settings->HasForceMarkReadGroups;
        return true;
    }

    // MinimumMapQuality
    if ( option == OPTION_MINIMUMMAPQUALITY ) {
        value >> settings->MinimumMapQuality;
        settings->HasMinimumMapQuality = true;
        return true;
    }

    // UnusedModelThreshold
    if ( option == OPTION_UNUSEDMODELTHRESHOLD ) {
        value >> settings->UnusedModelThreshold;
        settings->HasUnusedModelThreshold = true;
        return true;
    }

    // otherwise unknown option
    cerr << "bamtools resolve ERROR - unrecognized option: " << option << " in stats file" << endl;
    return false;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdx, %rbx
movq %rsp, %r14
pushq $0x3d
popq %rdx
movq %r14, %rdi
callq 0x67d08
movq 0x8(%r14), %rax
subq (%r14), %rax
cmpq $0x40, %rax
jne 0x4ee06
movq %rsp, %rdi
xorl %esi, %esi
callq 0x51b40
movq %rax, %r14
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x51b40
leaq 0x18(%rsp), %rdi
pushq $0x18
popq %rdx
movq %rax, %rsi
callq 0x359e0
leaq 0x46df0(%rip), %rsi     # 0x95bd0
movq %r14, %rdi
callq 0x3a2a9
testb %al, %al
je 0x4ee0a
leaq 0x90(%rbx), %rsi
leaq 0x18(%rsp), %rdi
callq 0x353d0
movb $0x1, 0x7(%rbx)
movb $0x1, %bpl
jmp 0x4ee31
xorl %ebp, %ebp
jmp 0x4ee3b
leaq 0x46e1f(%rip), %rsi     # 0x95c30
movq %r14, %rdi
callq 0x3a2a9
testb %al, %al
je 0x4ee51
addq $0x8, %rbx
movb $0x1, %bpl
leaq 0x18(%rsp), %rdi
movq %rbx, %rsi
callq 0x354f0
leaq 0x18(%rsp), %rdi
callq 0x35490
movq %rsp, %rdi
callq 0x3abf0
movl %ebp, %eax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x46d98(%rip), %rsi     # 0x95bf0
movq %r14, %rdi
callq 0x3a2a9
testb %al, %al
je 0x4ee7b
leaq 0x98(%rbx), %rsi
leaq 0x18(%rsp), %rdi
callq 0x358c0
movb $0x1, 0x9(%rbx)
jmp 0x4ee01
leaq 0x46d8e(%rip), %rsi     # 0x95c10
movq %r14, %rdi
callq 0x3a2a9
testb %al, %al
je 0x4eea8
leaq 0xa0(%rbx), %rsi
leaq 0x18(%rsp), %rdi
callq 0x353d0
movb $0x1, 0xa(%rbx)
jmp 0x4ee01
movq 0x46131(%rip), %rdi     # 0x94fe0
leaq 0x2452a(%rip), %rsi     # 0x733e0
callq 0x355b0
movq %rax, %rdi
movq %r14, %rsi
callq 0x35510
leaq 0x24542(%rip), %rsi     # 0x7340f
movq %rax, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
xorl %ebp, %ebp
jmp 0x4ee31
jmp 0x4eee6
movq %rax, %rbx
jmp 0x4eef8
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x35490
movq %rsp, %rdi
callq 0x3abf0
movq %rbx, %rdi
callq 0x35b50
movq %rax, %rdi
callq 0x3a198