// File: /workspace/github_c_makefile_star2_O1/felipelouza[P]egap/gap.c
// Function: usage
void usage(char *name, g_data *g){
  printf("\nUsage: %s [options] PATH\n\n",name);
  puts("Merges BWTs (and optionally LCPs) using the HM or Gap (default) algorithm");
  printf("each LCP value is represented using %zu byte(s).\n\n",sizeof(lcpInt));

  printf("The input bwt's and lcp's must be in PATH.bwt and PATH.%zu.lcp\n", sizeof(lcpInt));
  puts("and the bwt's lengths stored as 8 byte uint's in PATH."LEN_EXT"\n"); 

  puts("Available options:");
  puts("\t-h    this help message");
  puts("\t-o    basename for output files (def. input basename)");
  puts("\t-r    merge lcp values (overwrite input LCPs)");
  puts("\t-l    compute lcp values");
  puts("\t-d D  create document array using D bytes per entry, ext: ."DA_EXT);
  puts("\t-S S  create suffix array using S bytes per entry, ext: ."SA_EXT);
  puts("\t-q    (only for fastq) create QS permuted according to the BWT, ext: ."QS_EXT);
  puts("\t-x    compute lcp without external mergesort");
  puts("\t-a    assume alphabet is small");   
  printf("\t-g G  max # BWTs merged simultaneously (def %llu)\n", MAX_NUMBER_OF_BWTS);   
  puts("\t-A a  preferred gap algorithm to use (see doc or leave it alone)");   
  puts("\t-m    use H&M algorithm");
  printf("\t-s S  minimum solid block size (def %d)\n",g->solid_limit);
  puts("\t-p P  use P parallel threads for merging (def 0)");
  puts("\t-E    run in external memory");
  puts("\t-T    mmap input BWT arrays (overwrite input BWTs)");
  puts("\t-Z    mmap merge arrays");
  puts("\t-B    mmap B array");
  puts("\t-D k  compute order-k deBruijn graph info (def No)");
  puts("\t-v    verbose output (more v's for more verbose)\n");
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
movq %rdi, %rsi
leaq 0xb816(%rip), %rdi      # 0xe100
xorl %eax, %eax
callq 0x2100
leaq 0xb824(%rip), %rdi      # 0xe11c
callq 0x2090
leaq 0xb862(%rip), %rdi      # 0xe166
movl $0x1, %esi
xorl %eax, %eax
callq 0x2100
leaq 0xb882(%rip), %rdi      # 0xe199
movl $0x1, %esi
xorl %eax, %eax
callq 0x2100
leaq 0xb8af(%rip), %rdi      # 0xe1d9
callq 0x2090
leaq 0xb8df(%rip), %rdi      # 0xe215
callq 0x2090
leaq 0xb8e6(%rip), %rdi      # 0xe228
callq 0x2090
leaq 0xb8f3(%rip), %rdi      # 0xe241
callq 0x2090
leaq 0xb91e(%rip), %rdi      # 0xe278
callq 0x2090
leaq 0xb941(%rip), %rdi      # 0xe2a7
callq 0x2090
leaq 0xb94f(%rip), %rdi      # 0xe2c1
callq 0x2090
leaq 0xb982(%rip), %rdi      # 0xe300
callq 0x2090
leaq 0xb9b3(%rip), %rdi      # 0xe33d
callq 0x2090
leaq 0xb9f5(%rip), %rdi      # 0xe38b
callq 0x2090
leaq 0xba17(%rip), %rdi      # 0xe3b9
callq 0x2090
leaq 0xba2b(%rip), %rdi      # 0xe3d9
movl $0x100, %esi            # imm = 0x100
xorl %eax, %eax
callq 0x2100
leaq 0xba4c(%rip), %rdi      # 0xe40d
callq 0x2090
leaq 0xba82(%rip), %rdi      # 0xe44f
callq 0x2090
movl 0x90(%rbx), %esi
leaq 0xba89(%rip), %rdi      # 0xe468
xorl %eax, %eax
callq 0x2100
leaq 0xbaa5(%rip), %rdi      # 0xe492
callq 0x2090
leaq 0xbacb(%rip), %rdi      # 0xe4c4
callq 0x2090
leaq 0xbadd(%rip), %rdi      # 0xe4e2
callq 0x2090
leaq 0xbb05(%rip), %rdi      # 0xe516
callq 0x2090
leaq 0xbb12(%rip), %rdi      # 0xe52f
callq 0x2090
leaq 0xbb1a(%rip), %rdi      # 0xe543
callq 0x2090
leaq 0xbb42(%rip), %rdi      # 0xe577
popq %rbx
jmp 0x2090