// File: /workspace/github_cpp_makefile_star2_O2/zeeev[P]DASVC/bamtools/src/toolkit/bamtools_count.cpp
// Function: BamTools::CountTool::CountTool()
CountTool::CountTool(void) 
    : AbstractTool()
    , m_settings(new CountSettings)
    , m_impl(0)
{ 
    // set program details
    Options::SetProgramInfo("bamtools count", "prints number of alignments in BAM file(s)",
                            "[-in <filename> -in <filename> ... | -list <filelist>] [-region <REGION>]");
    
    // 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("-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);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xa0, %rsp
movq %rdi, %rbx
leaq 0x58678(%rip), %rax     # 0x94708
movq %rax, (%rdi)
pushq $0x60
popq %rdi
callq 0x355d0
movq %rax, %r14
movq %rax, %rdi
callq 0x3c572
movq %r14, 0x8(%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x358a5(%rip), %rsi     # 0x7195b
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x35280
leaq 0x3589b(%rip), %rsi     # 0x7196a
leaq 0x40(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x358b0(%rip), %rsi     # 0x71995
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 0x353ee(%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 0x353d0(%rip), %rsi     # 0x7152a
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x353be(%rip), %rsi     # 0x7152e
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x353b5(%rip), %rsi     # 0x7153b
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3a65b(%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 0x3533c(%rip), %rsi     # 0x71551
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x353e5(%rip), %rsi     # 0x71610
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x35316(%rip), %rsi     # 0x71557
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3a5a0(%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 0x3531e(%rip), %rsi     # 0x715e5
leaq 0x20(%rsp), %rdi
leaq 0x1d(%rsp), %rdx
callq 0x35280
leaq 0x35310(%rip), %rsi     # 0x715ed
leaq 0x40(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x35280
leaq 0x36b2f(%rip), %rsi     # 0x72e22
leaq 0x60(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x35280
leaq 0x3a4ee(%rip), %rsi     # 0x767f7
leaq 0x80(%rsp), %rdi
leaq 0x1e(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %r9
leaq 0x2(%r9), %r8
addq $0x40, %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
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
jmp 0x3c3e9
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x35730
jmp 0x3c418
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3c47e
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
jmp 0x3c48e
movq %rax, %rbx
movq %r14, %rdi
callq 0x35570
jmp 0x3c47e
jmp 0x3c47b
movq %rax, %rbx
jmp 0x3c3fd
movq %rax, %rbx
jmp 0x3c3f3
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3c47e
jmp 0x3c47b
movq %rax, %rbx
jmp 0x3c42c
movq %rax, %rbx
jmp 0x3c422
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x35730
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3c47e
jmp 0x3c47b
movq %rax, %rbx
jmp 0x3c46d
movq %rax, %rbx
jmp 0x3c463
movq %rax, %rbx
jmp 0x3c459
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 0x3c47e
jmp 0x3c47b
movq %rax, %rbx
movq %rbx, %rdi
callq 0x35b50
movq %rax, %rbx
jmp 0x3c498
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x35730
leaq 0x20(%rsp), %rdi
callq 0x35730
jmp 0x3c47e
movq %rax, %rdi
callq 0x3a198