// File: /workspace/github_c_makefile_star2_O2/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 %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %rsi
leaq 0xabf3(%rip), %rdi      # 0xd100
xorl %eax, %eax
callq 0x2100
leaq 0xac01(%rip), %rdi      # 0xd11c
callq 0x2090
leaq 0xac3f(%rip), %rdi      # 0xd166
pushq $0x1
popq %r14
movq %r14, %rsi
xorl %eax, %eax
callq 0x2100
leaq 0xac5d(%rip), %rdi      # 0xd199
movq %r14, %rsi
xorl %eax, %eax
callq 0x2100
leaq 0xac8c(%rip), %rdi      # 0xd1d9
callq 0x2090
leaq 0xacbc(%rip), %rdi      # 0xd215
callq 0x2090
leaq 0xacc3(%rip), %rdi      # 0xd228
callq 0x2090
leaq 0xacd0(%rip), %rdi      # 0xd241
callq 0x2090
leaq 0xacfb(%rip), %rdi      # 0xd278
callq 0x2090
leaq 0xad1e(%rip), %rdi      # 0xd2a7
callq 0x2090
leaq 0xad2c(%rip), %rdi      # 0xd2c1
callq 0x2090
leaq 0xad5f(%rip), %rdi      # 0xd300
callq 0x2090
leaq 0xad90(%rip), %rdi      # 0xd33d
callq 0x2090
leaq 0xadd2(%rip), %rdi      # 0xd38b
callq 0x2090
leaq 0xadf4(%rip), %rdi      # 0xd3b9
callq 0x2090
leaq 0xae08(%rip), %rdi      # 0xd3d9
movl $0x100, %esi            # imm = 0x100
xorl %eax, %eax
callq 0x2100
leaq 0xae29(%rip), %rdi      # 0xd40d
callq 0x2090
leaq 0xae5f(%rip), %rdi      # 0xd44f
callq 0x2090
movl 0x90(%rbx), %esi
leaq 0xae66(%rip), %rdi      # 0xd468
xorl %eax, %eax
callq 0x2100
leaq 0xae82(%rip), %rdi      # 0xd492
callq 0x2090
leaq 0xaea8(%rip), %rdi      # 0xd4c4
callq 0x2090
leaq 0xaeba(%rip), %rdi      # 0xd4e2
callq 0x2090
leaq 0xaee2(%rip), %rdi      # 0xd516
callq 0x2090
leaq 0xaeef(%rip), %rdi      # 0xd52f
callq 0x2090
leaq 0xaef7(%rip), %rdi      # 0xd543
callq 0x2090
leaq 0xaf1f(%rip), %rdi      # 0xd577
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x2090