// File: /workspace/github_cpp_makefile_star2_O2/zeeev[P]DASVC/bamtools/src/toolkit/bamtools_convert.cpp
// Function: BamTools::ConvertTool::ConvertTool()
ConvertTool::ConvertTool(void)
    : AbstractTool()
    , m_settings(new ConvertSettings)
    , m_impl(0)
{
    // set program details
    Options::SetProgramInfo("bamtools convert", "converts BAM to a number of other formats",
                            "-format <FORMAT> [-in <filename> -in <filename> ... | -list <filelist>] [-out <filename>] [-region <REGION>] [format-specific options]");
    
    // set up options 
    OptionGroup* IO_Opts = Options::CreateOptionGroup("Input & Output");
    Options::AddValueOption("-in",     "BAM filename", "the input BAM file(s)", "", m_settings->HasInput,   m_settings->InputFiles,     IO_Opts, Options::StandardIn());
    Options::AddValueOption("-list",   "filename", "the input BAM file list, one line per file", "", m_settings->HasInputFilelist,  m_settings->InputFilelist, IO_Opts);
    Options::AddValueOption("-out",    "BAM filename", "the output BAM file",   "", m_settings->HasOutput,  m_settings->OutputFilename, IO_Opts, Options::StandardOut());
    Options::AddValueOption("-format", "FORMAT", "the output file format - see README for recognized formats", "", m_settings->HasFormat, m_settings->Format, IO_Opts);
    Options::AddValueOption("-region", "REGION", "genomic region. Index file is recommended for better performance, and is used automatically if it exists. See \'bamtools help index\' for more details on creating one", "", m_settings->HasRegion, m_settings->Region, IO_Opts);
    
    OptionGroup* PileupOpts = Options::CreateOptionGroup("Pileup Options");
    Options::AddValueOption("-fasta", "FASTA filename", "FASTA reference file", "", m_settings->HasFastaFilename, m_settings->FastaFilename, PileupOpts);
    Options::AddOption("-mapqual", "print the mapping qualities", m_settings->IsPrintingPileupMapQualities, PileupOpts);
    
    OptionGroup* SamOpts = Options::CreateOptionGroup("SAM Options");
    Options::AddOption("-noheader", "omit the SAM header from output", m_settings->IsOmittingSamHeader, SamOpts);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xa0, %rsp
movq %rdi, %rbx
leaq 0x5b74e(%rip), %rax     # 0x945e0
movq %rax, (%rdi)
movl $0xc0, %edi
callq 0x355d0
movq %rax, %r14
movq %rax, %rdi
callq 0x3a2ea
movq %r14, 0x8(%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x3859f(%rip), %rsi     # 0x71459
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x35280
leaq 0x38597(%rip), %rsi     # 0x7146a
leaq 0x40(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x385ab(%rip), %rsi     # 0x71494
leaq 0x60(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x65e80
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x385ea(%rip), %rsi     # 0x7151b
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x35280
leaq 0x20(%rsp), %rdi
callq 0x65402
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x385cc(%rip), %rsi     # 0x7152a
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x385ba(%rip), %rsi     # 0x7152e
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x385b1(%rip), %rsi     # 0x7153b
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3d857(%rip), %rsi     # 0x767f7
leaq 0x80(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r15
callq 0x65ebe
leaq 0x8(%r15), %r9
movq %rax, 0x8(%rsp)
movq %r14, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x80(%rsp), %rcx
movq %r15, %r8
callq 0x3a3ce
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x38538(%rip), %rsi     # 0x71551
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x385e1(%rip), %rsi     # 0x71610
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x38512(%rip), %rsi     # 0x71557
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3d79c(%rip), %rsi     # 0x767f7
leaq 0x80(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r9
leaq 0x1(%r9), %r8
addq $0x20, %r9
movq %r14, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x80(%rsp), %rcx
callq 0x3a5fe
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x384b7(%rip), %rsi     # 0x71582
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x3844d(%rip), %rsi     # 0x7152e
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x38490(%rip), %rsi     # 0x71587
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3d6ea(%rip), %rsi     # 0x767f7
leaq 0x80(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r15
callq 0x65ec6
leaq 0x40(%r15), %r9
addq $0x2, %r15
movq %rax, 0x8(%rsp)
movq %r14, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x80(%rsp), %rcx
movq %r15, %r8
callq 0x3a7ac
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x38411(%rip), %rsi     # 0x7159b
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x38403(%rip), %rsi     # 0x715a3
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x383f4(%rip), %rsi     # 0x715aa
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3d62b(%rip), %rsi     # 0x767f7
leaq 0x80(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r9
leaq 0x3(%r9), %r8
addq $0x60, %r9
movq %r14, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x80(%rsp), %rcx
callq 0x3a5fe
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x383a9(%rip), %rsi     # 0x715e5
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x3839b(%rip), %rsi     # 0x715ed
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x39bba(%rip), %rsi     # 0x72e22
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3d579(%rip), %rsi     # 0x767f7
leaq 0x80(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r9
leaq 0x4(%r9), %r8
subq $-0x80, %r9
movq %r14, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x80(%rsp), %rcx
callq 0x3a5fe
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x38306(%rip), %rsi     # 0x715f4
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x35280
leaq 0x20(%rsp), %rdi
callq 0x65402
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x382e8(%rip), %rsi     # 0x71603
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x382d9(%rip), %rsi     # 0x7160a
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x382d2(%rip), %rsi     # 0x71619
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3d49a(%rip), %rsi     # 0x767f7
leaq 0x80(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r9
leaq 0x5(%r9), %r8
addq $0xa0, %r9
movq %r14, (%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x80(%rsp), %rcx
callq 0x3a5fe
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x3825e(%rip), %rsi     # 0x7162e
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x35280
leaq 0x38251(%rip), %rsi     # 0x71637
leaq 0x40(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %rdx
addq $0x7, %rdx
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movq %r14, %rcx
callq 0x652e4
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x38226(%rip), %rsi     # 0x71653
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x35280
leaq 0x20(%rsp), %rdi
callq 0x65402
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0x35730
leaq 0x38205(%rip), %rsi     # 0x7165f
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x35280
leaq 0x381f9(%rip), %rsi     # 0x71669
leaq 0x40(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %rdx
addq $0x6, %rdx
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movq %r14, %rcx
callq 0x652e4
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x35730
jmp 0x39595
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x35730
jmp 0x395b1
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
jmp 0x395d2
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
jmp 0x3960c
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
jmp 0x39641
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
jmp 0x396b7
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
jmp 0x3972d
movq %rax, %rbx
movq %r14, %rdi
callq 0x35570
jmp 0x3971d
jmp 0x3971a
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
jmp 0x3971a
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
movq %rax, %rbx
jmp 0x395e6
movq %rax, %rbx
jmp 0x395dc
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
jmp 0x3971a
movq %rax, %rbx
jmp 0x39620
movq %rax, %rbx
jmp 0x39616
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
movq %rax, %rbx
jmp 0x39655
movq %rax, %rbx
jmp 0x3964b
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
movq %rax, %rbx
jmp 0x3969c
movq %rax, %rbx
jmp 0x39692
movq %rax, %rbx
jmp 0x39688
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
movq %rax, %rbx
jmp 0x396cb
movq %rax, %rbx
jmp 0x396c1
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
movq %rax, %rbx
jmp 0x3970c
movq %rax, %rbx
jmp 0x39702
movq %rax, %rbx
jmp 0x396f8
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
jmp 0x3971a
movq %rax, %rbx
movq %rbx, %rdi
callq 0x35b50
movq %rax, %rbx
jmp 0x39737
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3971d
movq %rax, %rdi
callq 0x3a198
nop