// File: BenLangmead[P]bowtie/ebwt_search.cpp
// Function: resetOptions()
static void resetOptions() {
	mates1.clear();
	mates2.clear();
	mates12.clear();
	ebwtFile		= "";
	adjustedEbwtFileBase	= "";
	verbose			= 0;
	startVerbose		= 0;
	quiet			= false;
	sanityCheck		= 0;		// enable expensive sanity checks
	format			= FASTQ;	// default read format is FASTQ
	origString		= "";		// reference text, or filename(s)
	seed			= 0;		// srandom() seed
	timing			= 0;		// whether to report basic timing data
	allHits			= false;	// for multihits, report just one
	rangeMode		= false;	// report BWT ranges instead of ref locs
	showVersion		= 0;		// just print version and quit?
	ipause			= 0;		// pause before maching?
	qUpto			= 0xffffffff;	// max # of queries to read
	trim5			= 0;		// amount to trim from 5' end
	trim3			= 0;		// amount to trim from 3' end
	reportOpps		= 0;		// whether to report # of other mappings
	offRate			= -1;		// keep default offRate
	isaRate			= -1;		// keep default isaRate
	mismatches		= 0;		// allow 0 mismatches by default
	solexaQuals		= false;	// quality strings are solexa quals, not phred, and subtract 64 (not 33)
	phred64Quals		= false;	// quality chars are phred, but must subtract 64 (not 33)
	integerQuals		= false;	// quality strings are space-separated strings of integers, not ASCII
	maqLike			= 1;		// do maq-like searching
	seedLen			= 28;		// seed length (changed in Maq 0.6.4 from 24)
	seedMms			= 2;		// # mismatches allowed in seed (maq's -n)
	qualThresh		= 70;		// max qual-weighted hamming dist (maq's -e)
	maxBtsBetter		= 125;		// max # backtracks allowed in half-and-half mode
	maxBts			= 800;		// max # backtracks allowed in half-and-half mode
	nthreads		= 1;		// number of pthreads operating concurrently
    reorder			= false;	// reorder SAM output
	thread_ceiling		= 0;		// max # threads user asked for
	thread_stealing_dir	= "";		// keep track of pids in this directory
	thread_stealing		= false;	// true iff thread stealing is in use
	FNAME_SIZE		= 200;
	outType			= OUTPUT_FULL;  // style of output
	noRefNames		= false;	// true -> print reference indexes; not names
	dumpAlBase		= "";		// basename of same-format files to dump aligned reads to
	dumpUnalBase		= "";		// basename of same-format files to dump unaligned reads to
	dumpMaxBase		= "";		// basename of same-format files to dump reads with more than -m valid alignments to
	khits			= 1;		// number of hits per read; >1 is much slower
	mhits			= 0xffffffff;	// don't report any hits if there are > mhits
	better			= false;	// true -> guarantee alignments from best possible stratum
	strata			= false;	// true -> don't stop at stratum boundaries
	partitionSz		= 0;		// output a partitioning key in first field
	readsPerBatch		= 16;		// # reads to read from input file at once
	outBatchSz		= 16;		// # alignments to wrote to output file at once
	noMaqRound		= false;	// true -> don't round quals to nearest 10 like maq
	fileParallel		= false;	// separate threads read separate input files in parallel
	useShmem		= false;	// use shared memory to hold the index
	useMm			= false;	// use memory-mapped files to hold the index
	mmSweep			= false;	// sweep through memory-mapped files immediately after mapping
	stateful		= false;	// use stateful aligners
	prefetchWidth		= 1;		// number of reads to process in parallel w/ --stateful
	minInsert		= 0;		// minimum insert size (Maq = 0, SOAP = 400)
	maxInsert		= 250;		// maximum insert size (Maq = 250, SOAP = 600)
	mate1fw			= true;		// -1 mate aligns in fw orientation on fw strand
	mate2fw			= false;	// -2 mate aligns in rc orientation on fw strand
	mateFwSet		= false;	// true -> user set mate1fw/mate2fw with --ff/--fr/--rf
	mixedThresh		= 4;		// threshold for when to switch to paired-end mixed mode (see aligner.h)
	mixedAttemptLim		= 100;		// number of attempts to make in "mixed mode" before giving up on orientation
	dontReconcileMates	= true;		// suppress pairwise all-versus-all way of resolving mates
	cacheLimit		= 5;		// ranges w/ size > limit will be cached
	cacheSize		= 0;		// # words per range cache
	offBase			= 0;		// offsets are 0-based by default, but configurable
	tryHard			= false;	// set very high maxBts, mixedAttemptLim
	skipReads		= 0;		// # reads/read pairs to skip
	nofw			= false;	// don't align fw orientation of read
	norc			= false;	// don't align rc orientation of read
	strandFix		= true;		// attempt to fix strand bias
	stats			= false;	// print performance stats
	chunkPoolMegabytes	= 64;		// max MB to dedicate to best-first search frames per thread
	chunkSz			= 256;		// size of single chunk disbursed by ChunkPool (in KB)
	chunkVerbose		= false;	// have chunk allocator output status messages?
	useV1			= true;
	reportSe		= false;
	fastaContLen		= 0;
	fastaContFreq		= 0;
	hadoopOut		= false;	// print Hadoop status and summary messages
	fullRef			= false;	// print entire reference name instead of just up to 1st space
	samNoQnameTrunc         = false;	// don't truncate at first whitespace?
	samNoHead		= false;	// don't print any header lines in SAM output
	samNoSQ			= false;	// don't print @SQ header lines
	rgs			= "";		// SAM outputs for @RG header line
	suppressOuts.clear();			// output fields to suppress
	sampleMax		= false;
	defaultMapq		= 255;
	printCost		= false;	// true -> print cost and stratum
	showSeed		= false;	// true -> print per-read pseudo-random seed
	qualities.clear();
	qualities1.clear();
	qualities2.clear();
	wrapper.clear();
	gAllowMateContainment	= false;	// true -> alignments where one mate lies inside the other are valid
	noUnal			= false;	// true -> do not report unaligned reads
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq 0x984f5(%rip), %rdi     # 0xab140
callq 0x27dc0
leaq 0x98509(%rip), %rdi     # 0xab160
callq 0x27dc0
leaq 0x9851d(%rip), %rdi     # 0xab180
callq 0x27dc0
leaq 0x986c9(%rip), %rdi     # 0xab338
leaq 0x7bc25(%rip), %rsi     # 0x8e89b
callq 0xa840
leaq 0x9851e(%rip), %rdi     # 0xab1a0
leaq 0x7bc12(%rip), %rsi     # 0x8e89b
callq 0xa840
movb $0x0, 0x9870b(%rip)     # 0xab3a0
movb $0x0, 0x986ec(%rip)     # 0xab388
movb $0x0, 0x9851d(%rip)     # 0xab1c0
movl $0x0, 0x986fb(%rip)     # 0xab3a8
movl $0x3, 0x986ed(%rip)     # 0xab3a4
leaq 0x9850a(%rip), %rdi     # 0xab1c8
leaq 0x7bbd6(%rip), %rsi     # 0x8e89b
callq 0xa840
movl $0x0, 0x986dc(%rip)     # 0xab3b0
movl $0x0, 0x986be(%rip)     # 0xab39c
movb $0x0, 0x986cf(%rip)     # 0xab3b4
movb $0x0, 0x986c9(%rip)     # 0xab3b5
movl $0x0, 0x986a2(%rip)     # 0xab398
movl $0x0, 0x986ac(%rip)     # 0xab3ac
movl $0xffffffff, 0x986ae(%rip) # imm = 0xFFFFFFFF
movl $0x0, 0x986a8(%rip)     # 0xab3bc
movl $0x0, 0x986a2(%rip)     # 0xab3c0
movl $0x0, 0x9869c(%rip)     # 0xab3c4
movl $0xffffffff, 0x98696(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x98690(%rip) # imm = 0xFFFFFFFF
movl $0x0, 0x9868a(%rip)     # 0xab3d0
movb $0x0, 0x98687(%rip)     # 0xab3d4
movb $0x0, 0x98681(%rip)     # 0xab3d5
movb $0x0, 0x9867b(%rip)     # 0xab3d6
movl $0x1, 0x98673(%rip)     # 0xab3d8
movl $0x1c, 0x9866d(%rip)    # 0xab3dc
movl $0x2, 0x98667(%rip)     # 0xab3e0
movl $0x46, 0x98661(%rip)    # 0xab3e4
movl $0x7d, 0x9865b(%rip)    # 0xab3e8
movl $0x320, 0x98655(%rip)   # imm = 0x320
movl $0x1, 0x9864f(%rip)     # 0xab3f0
movb $0x0, 0x9864c(%rip)     # 0xab3f4
movl $0x0, 0x98646(%rip)     # 0xab3f8
leaq 0x9842f(%rip), %rdi     # 0xab1e8
leaq 0x7badb(%rip), %rsi     # 0x8e89b
callq 0xa840
movb $0x0, 0x98630(%rip)     # 0xab3fc
movl $0xc8, 0x9858a(%rip)    # 0xab360
movl $0x1, 0x98620(%rip)     # 0xab400
movb $0x0, 0x9861d(%rip)     # 0xab404
leaq 0x9841a(%rip), %rdi     # 0xab208
leaq 0x7baa6(%rip), %rsi     # 0x8e89b
callq 0xa840
leaq 0x98427(%rip), %rdi     # 0xab228
leaq 0x7ba93(%rip), %rsi     # 0x8e89b
callq 0xa840
leaq 0x98434(%rip), %rdi     # 0xab248
leaq 0x7ba80(%rip), %rsi     # 0x8e89b
callq 0xa840
movl $0x1, 0x985de(%rip)     # 0xab408
movl $0xffffffff, 0x985d8(%rip) # imm = 0xFFFFFFFF
movb $0x0, 0x985d5(%rip)     # 0xab410
movb $0x0, 0x985cf(%rip)     # 0xab411
movl $0x0, 0x985c8(%rip)     # 0xab414
movl $0x10, 0x985c2(%rip)    # 0xab418
movq $0x10, 0x985bf(%rip) # 0xab420
movb $0x0, 0x985c0(%rip)     # 0xab428
movb $0x0, 0x985ba(%rip)     # 0xab429
movb $0x0, 0x985b4(%rip)     # 0xab42a
movb $0x0, 0x985ae(%rip)     # 0xab42b
movb $0x0, 0x985a8(%rip)     # 0xab42c
movb $0x0, 0x985a2(%rip)     # 0xab42d
movl $0x1, 0x9859b(%rip)     # 0xab430
movl $0x0, 0x98595(%rip)     # 0xab434
movl $0xfa, 0x9858f(%rip)    # 0xab438
movb $0x1, 0x9858c(%rip)     # 0xab43c
movb $0x0, 0x98586(%rip)     # 0xab43d
movb $0x0, 0x98580(%rip)     # 0xab43e
movl $0x4, 0x98578(%rip)     # 0xab440
movl $0x64, 0x98572(%rip)    # 0xab444
movb $0x1, 0x9856f(%rip)     # 0xab448
movl $0x5, 0x98569(%rip)     # 0xab44c
movl $0x0, 0x98563(%rip)     # 0xab450
movl $0x0, 0x9855d(%rip)     # 0xab454
movb $0x0, 0x9855a(%rip)     # 0xab458
movl $0x0, 0x98554(%rip)     # 0xab45c
movb $0x0, 0x98551(%rip)     # 0xab460
movb $0x0, 0x9854b(%rip)     # 0xab461
movb $0x1, 0x98545(%rip)     # 0xab462
movb $0x0, 0x9853f(%rip)     # 0xab463
movl $0x40, 0x98536(%rip)    # 0xab464
movl $0x100, 0x98530(%rip)   # imm = 0x100
movb $0x0, 0x9852d(%rip)     # 0xab46c
movb $0x1, 0x98527(%rip)     # 0xab46d
movb $0x0, 0x98521(%rip)     # 0xab46e
movq $0x0, 0x98518(%rip) # 0xab470
movq $0x0, 0x98515(%rip) # 0xab478
movb $0x0, 0x98516(%rip)     # 0xab480
movb $0x0, 0x98510(%rip)     # 0xab481
movb $0x0, 0x9850a(%rip)     # 0xab482
movb $0x0, 0x98504(%rip)     # 0xab483
movb $0x0, 0x984fe(%rip)     # 0xab484
leaq 0x982db(%rip), %rdi     # 0xab268
leaq 0x7b907(%rip), %rsi     # 0x8e89b
callq 0xa840
leaq 0x982e8(%rip), %rdi     # 0xab288
callq 0x27de0
movb $0x0, 0x984d9(%rip)     # 0xab485
movl $0xff, 0x984d2(%rip)    # 0xab488
movb $0x0, 0x984cf(%rip)     # 0xab48c
movb $0x0, 0x982e4(%rip)     # 0xab2a8
leaq 0x982e5(%rip), %rdi     # 0xab2b0
callq 0x27dc0
leaq 0x982f9(%rip), %rdi     # 0xab2d0
callq 0x27dc0
leaq 0x9830d(%rip), %rdi     # 0xab2f0
callq 0x27dc0
leaq 0x98321(%rip), %rdi     # 0xab310
callq 0xa7e0
movb $0x0, 0x98335(%rip)     # 0xab330
movb $0x0, 0x9832f(%rip)     # 0xab331
popq %rbp
retq
nopw %cs:(%rax,%rax)