// File: /workspace/github_c_makefile_star2_O0/felipelouza[P]egap/tools/main_gsacak.c
// Function: usage
void usage(char *name){
  printf("\n\tUsage: %s [options] FILE N\n\n",name);
  puts("Computes SA (and optionally LCP array) for the first N sequences of a");
  puts("collection using algorithm gSACA-K from Louza et al. DCC 16 paper. ");
  puts("Sequences from FILE are extracted according to FILE's");
  puts("extension; currently supported extensions are: .txt .fasta .fastq\n");
  puts("Available options:");
  puts("\t-h      this help message");
  puts("\t-m RAM  available memory in MB (def: no limit)");
  puts("\t-o OUT  base name for output files (def: FILE)");
  puts("\t-L      compute LCP array as well (use only with option -s)");
  puts("\t-c      check SA and LCP");
  puts("\t-s      output SA (ext: .sa) and possibly LCP (ext: .sa_lcp)");
  puts("\t-l      output suffix lengths (ext: .sl)");
  puts("\t-q      output QS sequences permuted according to the BWT (ext: .qs)");
  puts("\t-b      output BWT (ext: .bwt)");
  puts("\t-r      output RLE(BWT) (ext: .rle.bwt)");
  puts("\t-g D    output LCP in gap format D bytes per entry (ext: .D.lcp)");
  puts("\t-x      extract individual input files and stop");
  puts("\t-X      convert input to raw+len format (ext: .cat .len) and stop");
  // puts("\t-L    lengths of the input sequences in FILE.len (no separator)");
  puts("\t-R      compute data structures for the reversed string\n");
  puts("\t-v      verbose output (more v's for more verbose)\n");
  printf("sizeof(int): %zu bytes\n", sizeof(int_t));
  printf("Max text size: %zu\n", WORD);
  exit(EXIT_FAILURE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
leaq 0xed99(%rip), %rdi      # 0x11150
xorl %eax, %eax
movb %al, -0x9(%rbp)
callq 0x20f0
leaq 0xeda7(%rip), %rdi      # 0x1116f
callq 0x2070
leaq 0xede1(%rip), %rdi      # 0x111b5
callq 0x2070
leaq 0xee19(%rip), %rdi      # 0x111f9
callq 0x2070
leaq 0xee43(%rip), %rdi      # 0x1122f
callq 0x2070
leaq 0xee7a(%rip), %rdi      # 0x11272
callq 0x2070
leaq 0xee81(%rip), %rdi      # 0x11285
callq 0x2070
leaq 0xee90(%rip), %rdi      # 0x112a0
callq 0x2070
leaq 0xeeb4(%rip), %rdi      # 0x112d0
callq 0x2070
leaq 0xeed8(%rip), %rdi      # 0x11300
callq 0x2070
leaq 0xef09(%rip), %rdi      # 0x1133d
callq 0x2070
leaq 0xef17(%rip), %rdi      # 0x11357
callq 0x2070
leaq 0xef49(%rip), %rdi      # 0x11395
callq 0x2070
leaq 0xef67(%rip), %rdi      # 0x113bf
callq 0x2070
leaq 0xefa1(%rip), %rdi      # 0x11405
callq 0x2070
leaq 0xefb5(%rip), %rdi      # 0x11425
callq 0x2070
leaq 0xefd2(%rip), %rdi      # 0x1144e
callq 0x2070
leaq 0xf008(%rip), %rdi      # 0x11490
callq 0x2070
leaq 0xf02d(%rip), %rdi      # 0x114c1
callq 0x2070
leaq 0xf064(%rip), %rdi      # 0x11504
callq 0x2070
leaq 0xf092(%rip), %rdi      # 0x1153e
callq 0x2070
movb -0x9(%rbp), %al
leaq 0xf0b8(%rip), %rdi      # 0x11573
movl $0x8, %esi
callq 0x20f0
movsd 0xeb3b(%rip), %xmm0     # 0x11008
movsd 0xeb3b(%rip), %xmm1     # 0x11010
callq 0x20a0
movsd 0xeb36(%rip), %xmm1     # 0x11018
mulsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rsi
movq %rsi, %rcx
sarq $0x3f, %rcx
movsd 0xeb23(%rip), %xmm1     # 0x11020
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
andq %rcx, %rax
orq %rax, %rsi
leaq 0xf078(%rip), %rdi      # 0x1158b
movb $0x0, %al
callq 0x20f0
movl $0x1, %edi
callq 0x2270
nopw %cs:(%rax,%rax)