// File: Ahhgust[P]STRaitRazor/str8.cpp
// Function: usage(char*)
void
usage(char *arg0) {

  cerr << "Correct usage for version cstr8 v" << VERSION_NUM << endl << arg0 << " -c configFile [OPTIONS] fastqfile1 [fastqfile2 ... ]" << endl << "OR" << endl << arg0 << " -c configFile [OPTIONS] < fastqfile1" << endl;
  cerr << endl << "IE, This program takes in standard input, or a bunch of (uncompressed) fastq files\nAnd remember, options are specified *before* the configfile and fastqs (ie, the arguments)" << endl << endl;
  cerr << "Possible arguments:" << endl << endl << 
    "\t-h (help; causes this to be printed)" << endl <<
    "\t-d (heaDer; prints a header (column identifiers) to the tsv" << endl <<
    "\t-n (no reverse complement-- this turns off the default behavior of reverse-complementing matches on the negative strand)" << endl <<
    "\t-v (verbose ; prints out additional diagnostic information)" << endl <<
    "\t-i (Include anchors ; includes the Anchor sequences in the reported haplotypes)" << endl << endl <<

    "\t-a integer (default 1; the maximum Hamming distance used with anchor search. can only be 0, 1 or 2)" << endl <<
    "\t-m integer (default 0; the maximum Hamming distance used with motif search. can only be 0 or 1)" << endl <<
    "\t-c configFile (REQUIRED; the locus config file used to define the STRs)" << endl << 
    "\t-p integer (The number of processors/cpus used)" << endl <<
    "\t-q (Uses quality scores. Optional arguments: -q E (uses number of errors expected, per Edgar, sum of error probs) or the default (-q X which is the expected probability of error, taken as product of probabilities that the base is correct )" << endl <<
    "\t-t filter (This filters on Type, e.g. AUTOSOMES; ie, it restricts the output to STRs that have the same type as specified in column 2 of the config file)" << endl <<
    "\t-o filename (This writes the output to filename, as opposed to standard out)" << endl <<
    "\t-f integer (Min match; this causes haplotypes with less than f occurences to be omitted from the final output file" << endl << endl;
  exit(EXIT_FAILURE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x1580d(%rip), %rdi     # 0x1bff0
leaq 0xda3b(%rip), %rsi      # 0x14225
callq 0x3290
movq %rax, %rdi
movss 0xd856(%rip), %xmm0     # 0x14050
callq 0x31e0
movq %rax, %rdi
movq 0x157af(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
movq -0x8(%rbp), %rsi
callq 0x3290
movq %rax, %rdi
leaq 0xda23(%rip), %rsi      # 0x14247
callq 0x3290
movq %rax, %rdi
movq 0x15785(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xda3b(%rip), %rsi      # 0x1427d
callq 0x3290
movq %rax, %rdi
movq 0x15767(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
movq -0x8(%rbp), %rsi
callq 0x3290
movq %rax, %rdi
leaq 0xda14(%rip), %rsi      # 0x14280
callq 0x3290
movq %rax, %rdi
movq 0x1573d(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq 0x15769(%rip), %rdi     # 0x1bff0
movq 0x1572a(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xda09(%rip), %rsi      # 0x142a6
callq 0x3290
movq %rax, %rdi
movq 0x1570c(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
movq 0x156fd(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq 0x15729(%rip), %rdi     # 0x1bff0
leaq 0xda86(%rip), %rsi      # 0x14354
callq 0x3290
movq %rax, %rdi
movq 0x156db(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
movq 0x156cc(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xda6d(%rip), %rsi      # 0x14368
callq 0x3290
movq %rax, %rdi
movq 0x156ae(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xda75(%rip), %rsi      # 0x1438e
callq 0x3290
movq %rax, %rdi
movq 0x15690(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xda94(%rip), %rsi      # 0x143cb
callq 0x3290
movq %rax, %rdi
movq 0x15672(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdaf0(%rip), %rsi      # 0x14445
callq 0x3290
movq %rax, %rdi
movq 0x15654(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdb0f(%rip), %rsi      # 0x14482
callq 0x3290
movq %rax, %rdi
movq 0x15636(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
movq 0x15627(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdb33(%rip), %rsi      # 0x144d3
callq 0x3290
movq %rax, %rdi
movq 0x15609(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdb7a(%rip), %rsi      # 0x14538
callq 0x3290
movq %rax, %rdi
movq 0x155eb(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdbbd(%rip), %rsi      # 0x14599
callq 0x3290
movq %rax, %rdi
movq 0x155cd(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdbe8(%rip), %rsi      # 0x145e2
callq 0x3290
movq %rax, %rdi
movq 0x155af(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdbfb(%rip), %rsi      # 0x14613
callq 0x3290
movq %rax, %rdi
movq 0x15591(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdcce(%rip), %rsi      # 0x14704
callq 0x3290
movq %rax, %rdi
movq 0x15573(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdd4b(%rip), %rsi      # 0x1479f
callq 0x3290
movq %rax, %rdi
movq 0x15555(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
leaq 0xdd7b(%rip), %rsi      # 0x147ed
callq 0x3290
movq %rax, %rdi
movq 0x15537(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movq %rax, %rdi
movq 0x15528(%rip), %rsi     # 0x1bfb8
callq 0x32e0
movl $0x1, %edi
callq 0x3330
nop