// File: /workspace/github_cpp_makefile_star2_O2/zeeev[P]DASVC/bamtools/src/toolkit/bamtools.cpp
// Function: Help(int, char**)
int Help(int argc, char* argv[]) {
  
    // check for 'bamtools help COMMAND' to print tool-specific help message
    if (argc > 2) {
        
	// determine desired sub-tool
        AbstractTool* tool = CreateTool( argv[2] );

        // if tool known, print its help screen
        if ( tool ) return tool->Help();
    }

    // print general BamTools help message
    cerr << endl;
    cerr << "usage: bamtools [--help] COMMAND [ARGS]" << endl;
    cerr << endl;
    cerr << "Available bamtools commands:" << endl;
    cerr << "\tconvert         Converts between BAM and a number of other formats" << endl;
    cerr << "\tcount           Prints number of alignments in BAM file(s)" << endl;
    cerr << "\tcoverage        Prints coverage statistics from the input BAM file" << endl;    
    cerr << "\tfilter          Filters BAM file(s) by user-specified criteria" << endl;
    cerr << "\theader          Prints BAM header information" << endl;
    cerr << "\tindex           Generates index for BAM file" << endl;
    cerr << "\tmerge           Merge multiple BAM files into single file" << endl;
    cerr << "\trandom          Select random alignments from existing BAM file(s), intended more as a testing tool." << endl;
    cerr << "\tresolve         Resolves paired-end reads (marking the IsProperPair flag as needed)" << endl;
    cerr << "\trevert          Removes duplicate marks and restores original base qualities" << endl;
    cerr << "\tsort            Sorts the BAM file according to some criteria" << endl;
    cerr << "\tsplit           Splits a BAM file on user-specified property, creating a new BAM output file for each value found" << endl;
    cerr << "\tstats           Prints some basic statistics from input BAM file(s)" << endl;
    cerr << endl;
    cerr << "See 'bamtools help COMMAND' for more information on a specific command." << endl;
    cerr << endl;
    return EXIT_SUCCESS;
}

// Assembly:
pushq %rbx
subq $0x30, %rsp
cmpl $0x3, %edi
jl 0x639c7
movq 0x10(%rsi), %rsi
leaq 0x10(%rsp), %rbx
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x35280
movq %rbx, %rdi
callq 0x63720
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x35730
testq %rbx, %rbx
je 0x639c7
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
jmp 0x63b60
movq 0x31612(%rip), %rbx     # 0x94fe0
movq %rbx, %rdi
callq 0x35300
leaq 0x11cb1(%rip), %rsi     # 0x7568e
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
movq %rbx, %rdi
callq 0x35300
leaq 0x11cba(%rip), %rsi     # 0x756b6
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11cc0(%rip), %rsi     # 0x756d3
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11ced(%rip), %rsi     # 0x75717
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11d12(%rip), %rsi     # 0x75753
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11d3f(%rip), %rsi     # 0x75797
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11d68(%rip), %rsi     # 0x757d7
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11d80(%rip), %rsi     # 0x75806
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11d97(%rip), %rsi     # 0x75834
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11dbb(%rip), %rsi     # 0x7586f
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11e0a(%rip), %rsi     # 0x758d5
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11e48(%rip), %rsi     # 0x7592a
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11e7f(%rip), %rsi     # 0x75978
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11ea7(%rip), %rsi     # 0x759b7
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
leaq 0x11f03(%rip), %rsi     # 0x75a2a
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
movq %rbx, %rdi
callq 0x35300
leaq 0x11f29(%rip), %rsi     # 0x75a6f
movq %rbx, %rdi
callq 0x355b0
movq %rax, %rdi
callq 0x35300
movq %rbx, %rdi
callq 0x35300
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x35730
movq %rbx, %rdi
callq 0x35b50
movq %rax, %rdi
callq 0x3a198