// File: /workspace/github_cpp_makefile_star2_O2/zeeev[P]DASVC/bamtools/src/toolkit/bamtools_coverage.cpp
// Function: BamTools::CoverageTool::CoverageTool()
CoverageTool::CoverageTool(void) 
    : AbstractTool()
    , m_settings(new CoverageSettings)
    , m_impl(0)
{ 
    // set program details
    Options::SetProgramInfo("bamtools coverage", "prints coverage data for a single BAM file", "[-in <filename>] [-out <filename>]");
    
    // set up options 
    OptionGroup* IO_Opts = Options::CreateOptionGroup("Input & Output");
    Options::AddValueOption("-in",  "BAM filename", "the input BAM file", "", m_settings->HasInputFile,  m_settings->InputBamFilename, IO_Opts, Options::StandardIn());
    Options::AddValueOption("-out", "filename",     "the output file",    "", m_settings->HasOutputFile, m_settings->OutputFilename,   IO_Opts, Options::StandardOut());
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x90, %rsp
movq %rdi, %rbx
leaq 0x57efa(%rip), %rax     # 0x94750
movq %rax, (%rdi)
pushq $0x48
popq %rdi
callq 0x355d0
movq %rax, %r14
movq %rax, %rdi
callq 0x3cc8e
movq %r14, 0x8(%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x351db(%rip), %rsi     # 0x71a57
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x35280
leaq 0x351d7(%rip), %rsi     # 0x71a69
leaq 0x30(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x35280
leaq 0x351ec(%rip), %rsi     # 0x71a94
leaq 0x50(%rsp), %rdi
leaq 0xc(%rsp), %rdx
callq 0x35280
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x65e80
leaq 0x50(%rsp), %rdi
callq 0x35730
leaq 0x30(%rsp), %rdi
callq 0x35730
leaq 0x10(%rsp), %rdi
callq 0x35730
leaq 0x34c2b(%rip), %rsi     # 0x7151b
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x35280
leaq 0x10(%rsp), %rdi
callq 0x65402
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x35730
leaq 0x34c0d(%rip), %rsi     # 0x7152a
leaq 0x10(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x35280
leaq 0x34bfb(%rip), %rsi     # 0x7152e
leaq 0x30(%rsp), %rdi
leaq 0xc(%rsp), %rdx
callq 0x35280
leaq 0x38e3b(%rip), %rsi     # 0x75784
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x35280
leaq 0x39e98(%rip), %rsi     # 0x767f7
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r15
callq 0x65ebe
leaq 0x8(%r15), %r9
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x70(%rsp), %rcx
movq %r15, %r8
pushq %rax
pushq %r14
callq 0x3a7ac
popq %rax
popq %rcx
leaq 0x70(%rsp), %rdi
callq 0x35730
leaq 0x50(%rsp), %rdi
callq 0x35730
leaq 0x30(%rsp), %rdi
callq 0x35730
leaq 0x10(%rsp), %rdi
callq 0x35730
leaq 0x34bb7(%rip), %rsi     # 0x71582
leaq 0x10(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x35280
leaq 0x34c2f(%rip), %rsi     # 0x71610
leaq 0x30(%rsp), %rdi
leaq 0xc(%rsp), %rdx
callq 0x35280
leaq 0x350c0(%rip), %rsi     # 0x71ab7
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x35280
leaq 0x39dea(%rip), %rsi     # 0x767f7
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %rbx
callq 0x65ec6
leaq 0x28(%rbx), %r9
incq %rbx
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x70(%rsp), %rcx
movq %rbx, %r8
pushq %rax
pushq %r14
callq 0x3a7ac
popq %rax
popq %rcx
leaq 0x70(%rsp), %rdi
callq 0x35730
leaq 0x50(%rsp), %rdi
callq 0x35730
leaq 0x30(%rsp), %rdi
callq 0x35730
leaq 0x10(%rsp), %rdi
callq 0x35730
addq $0x90, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x35730
jmp 0x3cb37
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x35730
jmp 0x3cb47
movq %rax, %rbx
movq %r14, %rdi
callq 0x35570
jmp 0x3cb37
movq %rax, %rbx
jmp 0x3cae6
movq %rax, %rbx
jmp 0x3cadc
movq %rax, %rbx
jmp 0x3cad2
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x35730
leaq 0x50(%rsp), %rdi
callq 0x35730
leaq 0x30(%rsp), %rdi
callq 0x35730
leaq 0x10(%rsp), %rdi
callq 0x35730
jmp 0x3cb37
jmp 0x3cb34
jmp 0x3cb34
movq %rax, %rbx
jmp 0x3cb26
movq %rax, %rbx
jmp 0x3cb1c
movq %rax, %rbx
jmp 0x3cb12
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x35730
leaq 0x50(%rsp), %rdi
callq 0x35730
leaq 0x30(%rsp), %rdi
callq 0x35730
leaq 0x10(%rsp), %rdi
callq 0x35730
jmp 0x3cb37
jmp 0x3cb34
movq %rax, %rbx
movq %rbx, %rdi
callq 0x35b50
movq %rax, %rbx
jmp 0x3cb51
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x35730
leaq 0x10(%rsp), %rdi
callq 0x35730
jmp 0x3cb37
movq %rax, %rdi
callq 0x3a198
nop