// File: /workspace/github_cpp_makefile_star2_O2/zeeev[P]DASVC/bamtools/src/toolkit/bamtools_index.cpp
// Function: BamTools::IndexTool::IndexTool()
IndexTool::IndexTool(void)
    : AbstractTool()
    , m_settings(new IndexSettings)
    , m_impl(0)
{
    // set program details
    Options::SetProgramInfo("bamtools index", "creates index for BAM file", "[-in <filename>] [-bti]");
    
    // set up options 
    OptionGroup* IO_Opts = Options::CreateOptionGroup("Input & Output");
    Options::AddValueOption("-in", "BAM filename", "the input BAM file", "", m_settings->HasInputBamFilename, m_settings->InputBamFilename, IO_Opts, Options::StandardIn());
    Options::AddOption("-bti", "create (non-standard) BamTools index file (*.bti). Default behavior is to create standard BAM index (*.bai)", m_settings->IsUsingBamtoolsIndex, IO_Opts);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x90, %rsp
movq %rdi, %rbx
leaq 0x488ba(%rip), %rax     # 0x949b8
movq %rax, (%rdi)
pushq $0x28
popq %rdi
callq 0x355d0
movq %rax, %r14
movq %rax, %rdi
callq 0x4c456
movq %r14, 0x8(%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x267a9(%rip), %rsi     # 0x728cd
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x35280
leaq 0x267a2(%rip), %rsi     # 0x728dc
leaq 0x30(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x35280
leaq 0x267a7(%rip), %rsi     # 0x728f7
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 0x25383(%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 0x25365(%rip), %rsi     # 0x7152a
leaq 0x10(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x35280
leaq 0x25353(%rip), %rsi     # 0x7152e
leaq 0x30(%rsp), %rdi
leaq 0xc(%rsp), %rdx
callq 0x35280
leaq 0x29593(%rip), %rsi     # 0x75784
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x35280
leaq 0x2a5f0(%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 0x2669c(%rip), %rsi     # 0x7290f
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x35280
leaq 0x2668b(%rip), %rsi     # 0x72914
leaq 0x30(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x35280
movq 0x8(%rbx), %rdx
incq %rdx
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r14, %rcx
callq 0x652e4
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 0x30(%rsp), %rdi
callq 0x35730
jmp 0x4c311
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x35730
jmp 0x4c360
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x35730
jmp 0x4c370
movq %rax, %rbx
movq %r14, %rdi
callq 0x35570
jmp 0x4c360
jmp 0x4c35d
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x35730
jmp 0x4c360
jmp 0x4c35d
movq %rax, %rbx
jmp 0x4c34f
movq %rax, %rbx
jmp 0x4c345
movq %rax, %rbx
jmp 0x4c33b
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 0x4c360
jmp 0x4c35d
movq %rax, %rbx
movq %rbx, %rdi
callq 0x35b50
movq %rax, %rbx
jmp 0x4c37a
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x35730
leaq 0x10(%rsp), %rdi
callq 0x35730
jmp 0x4c360
movq %rax, %rdi
callq 0x3a198