// File: /workspace/github_cpp_makefile_star2_O3/BenLangmead[P]bowtie/ebwt_build.cpp
// Function: printUsage(std::ostream&)
static void printUsage(ostream& out) {
#ifdef BOWTIE_64BIT_INDEX
	string tool_name = "bowtie2-build-l";
#else
	string tool_name = "bowtie2-build-s";
#endif
	if(wrapper == "basic-0") {
		tool_name = "bowtie-build";
	}

	out << "Usage: "<< tool_name <<" [options]* <reference_in> <ebwt_outfile_base>" << endl
	    << "    reference_in            comma-separated list of files with ref sequences" << endl
	    << "    ebwt_outfile_base       write Ebwt data to files with this dir/basename" << endl
	    << "Options:" << endl
	    << "    -f                      reference files are Fasta (default)" << endl
	    << "    -c                      reference sequences given on cmd line (as <seq_in>)" << endl;
	if(wrapper == "basic-0") {
		out << "    --large-index           force generated index to be 'large', even if ref" << endl
		    << "                            has fewer than 4 billion nucleotides" << endl;
	}
	out << "    -a/--noauto             disable automatic -p/--bmax/--dcv memory-fitting" << endl
	    << "    -p/--packed             use packed strings internally; slower, uses less mem" << endl
	    << "    --bmax <int>            max bucket sz for blockwise suffix-array builder" << endl
	    //<< "    --bmaxmultsqrt <int>    max bucket sz as multiple of sqrt(ref len)" << endl
	    << "    --bmaxdivn <int>        max bucket sz as divisor of ref len (default: 4)" << endl
	    << "    --dcv <int>             diff-cover period for blockwise (default: 1024)" << endl
	    << "    --nodc                  disable diff-cover (algorithm becomes quadratic)" << endl
	    << "    -r/--noref              don't build .3/.4.ebwt (packed reference) portion" << endl
	    << "    -3/--justref            just build .3/.4.ebwt (packed reference) portion" << endl
	    << "    -o/--offrate <int>      SA is sampled every 2^offRate BWT chars (default: 5)" << endl
	    << "    -t/--ftabchars <int>    # of chars consumed in initial lookup (default: 10)" << endl
	    << "    --threads <int>         # of threads" << endl
	    << "    --ntoa                  convert Ns in reference to As" << endl
	    //<< "    --big --little          endianness (default: little, this host: "
	    //<< (currentlyBigEndian()? "big":"little") << ")" << endl
	    << "    --seed <int>            seed for random number generator" << endl
	    //<< "    --new-reverse           concatenate then reverse stretches, not vice versa" << endl
	    << "    -q/--quiet              verbose output (for debugging)" << endl
	    << "    -h/--help               print detailed description of tool and its options" << endl
	    << "    --usage                 print this usage message" << endl
	    << "    --version               print version information and quit" << endl;
	if(wrapper.empty()) {
		cerr << endl
		     << "*** Warning ***" << endl
		     << "'" << tool_name << "' was run directly.  It is recommended "
		     << "that you run the wrapper script 'bowtie-build' instead."
		     << endl << endl;
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x247f2(%rip), %rsi     # 0x2f2af
leaq 0x247fa(%rip), %rdx     # 0x2f2be
movq %rsp, %rdi
callq 0x10400
leaq 0x3325d(%rip), %rdi     # 0x3dd30
leaq 0x247e5(%rip), %rsi     # 0x2f2bf
callq 0x5100
testl %eax, %eax
jne 0xaafe
movq %rsp, %rdi
movq 0x8(%rdi), %rdx
leaq 0x247d6(%rip), %rcx     # 0x2f2c7
movl $0xc, %r8d
xorl %esi, %esi
callq 0x5560
leaq 0x247cf(%rip), %rsi     # 0x2f2d4
movl $0x7, %edx
movq %rbx, %rdi
callq 0x53f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq %rax, %r14
leaq 0x247af(%rip), %rsi     # 0x2f2dc
movl $0x2e, %edx
movq %rax, %rdi
callq 0x53f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %r14
leaq 0x247a0(%rip), %rsi     # 0x2f30b
movl $0x4c, %edx
movq %rax, %rdi
callq 0x53f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %r14
leaq 0x247af(%rip), %rsi     # 0x2f358
movl $0x4b, %edx
movq %rax, %rdi
callq 0x53f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %r14
leaq 0x247bd(%rip), %rsi     # 0x2f3a4
movl $0x8, %edx
movq %rax, %rdi
callq 0x53f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %r14
leaq 0x24788(%rip), %rsi     # 0x2f3ad
movl $0x3f, %edx
movq %rax, %rdi
callq 0x53f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %r14
leaq 0x2478a(%rip), %rsi     # 0x2f3ed
movl $0x4f, %edx
movq %rax, %rdi
callq 0x53f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
leaq 0x33092(%rip), %rdi     # 0x3dd30
leaq 0x2461a(%rip), %rsi     # 0x2f2bf
callq 0x5100
testl %eax, %eax
jne 0xad27
leaq 0x24788(%rip), %rsi     # 0x2f43d
movl $0x4c, %edx
movq %rbx, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %r14
leaq 0x24797(%rip), %rsi     # 0x2f48a
movl $0x40, %edx
movq %rax, %rdi
callq 0x53f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
leaq 0x2479d(%rip), %rsi     # 0x2f4cb
movl $0x4c, %edx
movq %rbx, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247ac(%rip), %rsi     # 0x2f518
movl $0x50, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247bf(%rip), %rsi     # 0x2f569
movl $0x4c, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247ce(%rip), %rsi     # 0x2f5b6
movl $0x4c, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247dd(%rip), %rsi     # 0x2f603
movl $0x4b, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247eb(%rip), %rsi     # 0x2f64f
movl $0x4c, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247fa(%rip), %rsi     # 0x2f69c
movl $0x4d, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x2480a(%rip), %rsi     # 0x2f6ea
movl $0x4c, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x24819(%rip), %rsi     # 0x2f737
movl $0x50, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x2482c(%rip), %rsi     # 0x2f788
movl $0x4f, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x2483e(%rip), %rsi     # 0x2f7d8
movl $0x28, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x24829(%rip), %rsi     # 0x2f801
movl $0x39, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x24825(%rip), %rsi     # 0x2f83b
movl $0x3c, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x24824(%rip), %rsi     # 0x2f878
movl $0x3a, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x24821(%rip), %rsi     # 0x2f8b3
movl $0x4e, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x24832(%rip), %rsi     # 0x2f902
movl $0x34, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x24829(%rip), %rsi     # 0x2f937
movl $0x3e, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
cmpq $0x0, 0x32bee(%rip)     # 0x3dd38
jne 0xb261
movq 0x2fe99(%rip), %rdi     # 0x3aff0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq 0x2fe7e(%rip), %rdi     # 0x3aff0
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247ed(%rip), %rsi     # 0x2f976
movl $0xf, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
leaq 0x247bf(%rip), %rsi     # 0x2f986
movl $0x1, %edx
movq %rax, %rdi
callq 0x53f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq %rax, %rbx
leaq 0x24799(%rip), %rsi     # 0x2f988
movl $0x27, %edx
movq %rax, %rdi
callq 0x53f0
leaq 0x247ad(%rip), %rsi     # 0x2f9b0
movl $0x37, %edx
movq %rbx, %rdi
callq 0x53f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5330
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xb277
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5370
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xb29a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5370
movq %rbx, %rdi
callq 0x5680