// File: /workspace/github_cpp_makefile_star2_O3/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rdi, %rbx
leaq 0x5de1d(%rip), %rax     # 0x8e700
movq %rax, (%rdi)
movl $0x60, %edi
callq 0x275c0
movw $0x0, (%rax)
xorl %ecx, %ecx
movb %cl, 0x2(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rax)
movq %rcx, 0x18(%rax)
leaq 0x30(%rax), %rdx
movq %rdx, 0x20(%rax)
movq %rcx, 0x28(%rax)
movb %cl, 0x30(%rax)
leaq 0x50(%rax), %rdx
movq %rdx, 0x40(%rax)
movq %rcx, 0x48(%rax)
movb %cl, 0x50(%rax)
movq %rax, 0x8(%rbx)
movq %rcx, 0x10(%rbx)
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x41083(%rip), %rsi     # 0x719bf
leaq 0x4108a(%rip), %rdx     # 0x719cd
leaq 0x38(%rsp), %rdi
callq 0x2f1a0
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x41071(%rip), %rsi     # 0x719ce
leaq 0x41094(%rip), %rdx     # 0x719f8
leaq 0x18(%rsp), %rdi
callq 0x2f1a0
leaq 0x68(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x4107b(%rip), %rsi     # 0x719f9
leaq 0x410bd(%rip), %rdx     # 0x71a42
leaq 0x58(%rsp), %rdi
callq 0x2f1a0
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x64164
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x309b2
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x309c1
callq 0x27560
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x309d0
callq 0x27560
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x40b32(%rip), %rsi     # 0x71511
leaq 0x40b39(%rip), %rdx     # 0x7151f
callq 0x2f1a0
leaq 0x38(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x30a07
callq 0x27560
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x40b0a(%rip), %rsi     # 0x71520
leaq 0x40b06(%rip), %rdx     # 0x71523
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x40af3(%rip), %rsi     # 0x71524
leaq 0x40af8(%rip), %rdx     # 0x71530
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40ae5(%rip), %rsi     # 0x71531
leaq 0x40af3(%rip), %rdx     # 0x71546
callq 0x2f1a0
leaq 0x88(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x45dac(%rip), %rdx     # 0x76817
leaq 0x78(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r15
callq 0x641a2
leaq 0x8(%r15), %r9
movq %rax, 0x8(%rsp)
movq %r14, (%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x58(%rsp), %rdx
leaq 0x78(%rsp), %rcx
movq %r15, %r8
callq 0x2e4fe
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x30ab9
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
leaq 0x28(%rsp), %r15
je 0x30acd
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x30adc
callq 0x27560
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x30aeb
callq 0x27560
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x40a4d(%rip), %rsi     # 0x71547
leaq 0x40a4b(%rip), %rdx     # 0x7154c
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x40af1(%rip), %rsi     # 0x71606
leaq 0x40af2(%rip), %rdx     # 0x7160e
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40a1d(%rip), %rsi     # 0x7154d
leaq 0x40a40(%rip), %rdx     # 0x71577
callq 0x2f1a0
leaq 0x78(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x45ccc(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x1(%r9), %r8
addq $0x20, %r9
movq %r14, (%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x58(%rsp), %rdx
leaq 0x78(%rsp), %rcx
callq 0x2e8c0
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x30b8b
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x30b9a
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x30ba9
callq 0x27560
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x30bb8
callq 0x27560
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x40a14(%rip), %rsi     # 0x715db
leaq 0x40a14(%rip), %rdx     # 0x715e2
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x40a01(%rip), %rsi     # 0x715e3
leaq 0x40a00(%rip), %rdx     # 0x715e9
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x422ad(%rip), %rsi     # 0x72eaa
leaq 0x4234a(%rip), %rdx     # 0x72f4e
callq 0x2f1a0
leaq 0x78(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x45bff(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x2(%r9), %r8
addq $0x40, %r9
movq %r14, (%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x58(%rsp), %rdx
leaq 0x78(%rsp), %rcx
callq 0x2e8c0
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x30c58
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x30c67
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x30c76
callq 0x27560
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x30c85
callq 0x27560
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x30ccb
jmp 0x30cb7
jmp 0x30cbc
jmp 0x30cc1
jmp 0x30cc6
jmp 0x30ccb
jmp 0x30cb7
jmp 0x30cbc
jmp 0x30cc1
jmp 0x30cc6
jmp 0x30cb7
jmp 0x30cbc
jmp 0x30cc1
jmp 0x30cc6
jmp 0x30cc1
jmp 0x30cc6
movq %rax, %rbx
jmp 0x30cdd
movq %rax, %rbx
jmp 0x30cec
movq %rax, %rbx
jmp 0x30d00
movq %rax, %rbx
jmp 0x30d0f
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x30cdd
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x30cec
callq 0x27560
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x30d00
callq 0x27560
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x30d0f
callq 0x27560
movq %rbx, %rdi
callq 0x27b10
nop