// File: 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:
subq $0x68, %rsp
movl %edi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
cmpl $0x2, 0x60(%rsp)
jle 0x109393
movq 0x58(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
leaq 0x2f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x86da0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x86a00
jmp 0x10930b
leaq 0x30(%rsp), %rdi
callq 0x108da0
movq %rax, (%rsp)
jmp 0x10931b
leaq 0x30(%rsp), %rdi
callq 0x86f68
jmp 0x109327
leaq 0x2f(%rsp), %rdi
callq 0x867b0
movq (%rsp), %rax
movq %rax, 0x50(%rsp)
cmpq $0x0, 0x50(%rsp)
je 0x109391
movq 0x50(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movl %eax, 0x64(%rsp)
jmp 0x109607
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x20(%rsp)
movl %eax, 0x1c(%rsp)
jmp 0x109382
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x20(%rsp)
movl %eax, 0x1c(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x86f68
jmp 0x109380
jmp 0x109382
leaq 0x2f(%rsp), %rdi
callq 0x867b0
jmp 0x109610
jmp 0x109393
movq 0x5bc46(%rip), %rdi     # 0x164fe0
movq 0x5bbcf(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bc33(%rip), %rdi     # 0x164fe0
leaq 0x2a48a(%rip), %rsi     # 0x13383e
callq 0x86700
movq %rax, %rdi
movq 0x5bbad(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bc11(%rip), %rdi     # 0x164fe0
movq 0x5bb9a(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bbfe(%rip), %rdi     # 0x164fe0
leaq 0x2a47d(%rip), %rsi     # 0x133866
callq 0x86700
movq %rax, %rdi
movq 0x5bb78(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bbdc(%rip), %rdi     # 0x164fe0
leaq 0x2a478(%rip), %rsi     # 0x133883
callq 0x86700
movq %rax, %rdi
movq 0x5bb56(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bbba(%rip), %rdi     # 0x164fe0
leaq 0x2a49a(%rip), %rsi     # 0x1338c7
callq 0x86700
movq %rax, %rdi
movq 0x5bb34(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bb98(%rip), %rdi     # 0x164fe0
leaq 0x2a4b4(%rip), %rsi     # 0x133903
callq 0x86700
movq %rax, %rdi
movq 0x5bb12(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bb76(%rip), %rdi     # 0x164fe0
leaq 0x2a4d6(%rip), %rsi     # 0x133947
callq 0x86700
movq %rax, %rdi
movq 0x5baf0(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bb54(%rip), %rdi     # 0x164fe0
leaq 0x2a4f4(%rip), %rsi     # 0x133987
callq 0x86700
movq %rax, %rdi
movq 0x5bace(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bb32(%rip), %rdi     # 0x164fe0
leaq 0x2a501(%rip), %rsi     # 0x1339b6
callq 0x86700
movq %rax, %rdi
movq 0x5baac(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bb10(%rip), %rdi     # 0x164fe0
leaq 0x2a50d(%rip), %rsi     # 0x1339e4
callq 0x86700
movq %rax, %rdi
movq 0x5ba8a(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5baee(%rip), %rdi     # 0x164fe0
leaq 0x2a526(%rip), %rsi     # 0x133a1f
callq 0x86700
movq %rax, %rdi
movq 0x5ba68(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5bacc(%rip), %rdi     # 0x164fe0
leaq 0x2a56a(%rip), %rsi     # 0x133a85
callq 0x86700
movq %rax, %rdi
movq 0x5ba46(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5baaa(%rip), %rdi     # 0x164fe0
leaq 0x2a59d(%rip), %rsi     # 0x133ada
callq 0x86700
movq %rax, %rdi
movq 0x5ba24(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5ba88(%rip), %rdi     # 0x164fe0
leaq 0x2a5c9(%rip), %rsi     # 0x133b28
callq 0x86700
movq %rax, %rdi
movq 0x5ba02(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5ba66(%rip), %rdi     # 0x164fe0
leaq 0x2a5e6(%rip), %rsi     # 0x133b67
callq 0x86700
movq %rax, %rdi
movq 0x5b9e0(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5ba44(%rip), %rdi     # 0x164fe0
leaq 0x2a637(%rip), %rsi     # 0x133bda
callq 0x86700
movq %rax, %rdi
movq 0x5b9be(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5ba22(%rip), %rdi     # 0x164fe0
movq 0x5b9ab(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5ba0f(%rip), %rdi     # 0x164fe0
leaq 0x2a647(%rip), %rsi     # 0x133c1f
callq 0x86700
movq %rax, %rdi
movq 0x5b989(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x5b9ed(%rip), %rdi     # 0x164fe0
movq 0x5b976(%rip), %rsi     # 0x164f70
callq 0x86770
movl $0x0, 0x64(%rsp)
movl 0x64(%rsp), %eax
addq $0x68, %rsp
retq
movq 0x20(%rsp), %rdi
callq 0x86d80
movq %rax, %rdi
callq 0x91290
nopw %cs:(%rax,%rax)