// File: /workspace/github_c_makefile_star2_O0/lh3[P]miniprot/main.c
// Function: print_usage
static void print_usage(FILE *fp, const mp_idxopt_t *io, const mp_mapopt_t *mo, int n_threads)
{
	fprintf(fp, "Usage: miniprot [options] <ref.fa> <query.faa> [...]\n");
	fprintf(fp, "Options:\n");
	fprintf(fp, "  Indexing:\n");
	fprintf(fp, "    -k INT       k-mer size [%d]\n", io->kmer);
	fprintf(fp, "    -M INT       modimisers bit (sample rate = 1/2**M) [%d]\n", io->mod_bit);
	fprintf(fp, "    -L INT       min ORF length to index [%d]\n", io->min_aa_len);
	fprintf(fp, "    -T INT       NCBI translation table (1 through 33) [%d]\n", io->trans_code);
	fprintf(fp, "    -b INT       bits per block [%d]\n", io->bbit);
	fprintf(fp, "    -d FILE      save index to FILE []\n");
	fprintf(fp, "  Mapping:\n");
	fprintf(fp, "    -S           no splicing (applying -G1k -J1k -e1k)\n");
	fprintf(fp, "    -c NUM       max k-mer occurrence [%d]\n", mo->max_occ);
	fprintf(fp, "    -G NUM       max intron size; override -I [200k]\n");
	fprintf(fp, "    -I           set max intron size to 3.6*sqrt(refLen)\n");
	fprintf(fp, "    -w FLOAT     weight of log gap penalty [%g]\n", mo->chn_coef_log);
	fprintf(fp, "    -n NUM       minimum number of syncmers in a chain [%d]\n", mo->min_chn_cnt);
	fprintf(fp, "    -m NUM       min chaining score [%d]\n", mo->min_chn_sc);
	fprintf(fp, "    -l INT       k-mer size for the second round of chaining [%d]\n", mo->kmer2);
	fprintf(fp, "    -e NUM       max extension for 2nd round of chaining and alignment [%d]\n", mo->max_ext);
	fprintf(fp, "    -p FLOAT     min secondary-to-primary score ratio [%g]\n", mo->pri_ratio);
	fprintf(fp, "    -N NUM       consider at most INT secondary alignments [%d]\n", mo->best_n);
	fprintf(fp, "  Alignment:\n");
//	fprintf(fp, "    -A           no alignment\n");
	fprintf(fp, "    -O INT       gap open penalty [%d]\n", mo->go);
	fprintf(fp, "    -E INT       gap extension (a k-long gap costs O+k*E) [%d]\n", mo->ge);
	fprintf(fp, "    -J INT       intron open penalty [%d]\n", mo->io);
	fprintf(fp, "    -F INT       penalty for frameshifts or in-frame stop codons [%d]\n", mo->fs);
	fprintf(fp, "    -C FLOAT     weight of splice penalty; 0 to ignore splice signals [%g]\n", mo->sp_scale);
	fprintf(fp, "    -B INT       bonus score for alignment reaching query ends [%d]\n", mo->end_bonus);
	fprintf(fp, "    -j INT       splice model: 2=vertebrate/insect, 1=general, 0=none (see manual) [%d]\n", mo->sp_model);
	fprintf(fp, "    --spsc=FILE  splice score file in format \"ctg offset +|- D|A score\" []\n");
	fprintf(fp, "    --spsc0=INT  splice score for sites not in --spsc [%d]\n", mo->sp_null_bonus);
	fprintf(fp, "  Input/output:\n");
	fprintf(fp, "    -t INT       number of threads [%d]\n", n_threads);
	fprintf(fp, "    --gff        output in the GFF3 format\n");
	fprintf(fp, "    --gtf        basic GTF output without detailed alignment\n");
	fprintf(fp, "    --aln        output residue alignment\n");
	fprintf(fp, "    --trans      output translated protein sequences (skipping frameshift)\n");
	fprintf(fp, "    -P STR       prefix for IDs in GFF3 [%s]\n", mo->gff_prefix);
	fprintf(fp, "    -u           print unmapped query proteins in PAF\n");
	fprintf(fp, "    --outn=NUM   output up to min{NUM,-N} alignments per query [%d]\n", mo->out_n);
	fprintf(fp, "    --outs=FLOAT output if score at least FLOAT*bestScore [%g]\n", mo->out_sim);
	fprintf(fp, "    --outc=FLOAT output if at least FLOAT fraction of query is aligned [%g]\n", mo->out_cov);
	fprintf(fp, "    -K NUM       query batch size [2M]\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x1cc1a(%rip), %rsi     # 0x202ac
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cc3e(%rip), %rsi     # 0x202e2
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cc36(%rip), %rsi     # 0x202ec
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x8(%rax), %edx
leaq 0x1cc2a(%rip), %rsi     # 0x202f9
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0xc(%rax), %edx
leaq 0x1cc33(%rip), %rsi     # 0x2031b
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x4(%rax), %edx
leaq 0x1cc57(%rip), %rsi     # 0x20358
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x10(%rax), %edx
leaq 0x1cc6d(%rip), %rsi     # 0x20387
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %edx
leaq 0x1cc92(%rip), %rsi     # 0x203c4
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cca6(%rip), %rsi     # 0x203ea
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1ccbc(%rip), %rsi     # 0x20412
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1ccb6(%rip), %rsi     # 0x2041e
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x10(%rax), %edx
leaq 0x1ccd5(%rip), %rsi     # 0x20456
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1ccef(%rip), %rsi     # 0x20482
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cd13(%rip), %rsi     # 0x204b8
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movss 0x40(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1cd2e(%rip), %rsi     # 0x204f2
movb $0x1, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x30(%rax), %edx
leaq 0x1cd46(%rip), %rsi     # 0x20523
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x3c(%rax), %edx
leaq 0x1cd6a(%rip), %rsi     # 0x20560
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x60(%rax), %edx
leaq 0x1cd7b(%rip), %rsi     # 0x2058a
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x28(%rax), %edx
leaq 0x1cda5(%rip), %rsi     # 0x205cd
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movss 0x4c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1cdd3(%rip), %rsi     # 0x2061a
movb $0x1, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x58(%rax), %edx
leaq 0x1cdf6(%rip), %rsi     # 0x20656
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1ce25(%rip), %rsi     # 0x20697
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x64(%rax), %edx
leaq 0x1ce1a(%rip), %rsi     # 0x206a5
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x68(%rax), %edx
leaq 0x1ce29(%rip), %rsi     # 0x206cd
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x6c(%rax), %edx
leaq 0x1ce50(%rip), %rsi     # 0x2070d
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x70(%rax), %edx
leaq 0x1ce62(%rip), %rsi     # 0x20738
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movss 0x88(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1ce87(%rip), %rsi     # 0x2077f
movb $0x1, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x90(%rax), %edx
leaq 0x1ceb7(%rip), %rsi     # 0x207cb
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x7c(%rax), %edx
leaq 0x1cee3(%rip), %rsi     # 0x20810
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cf2a(%rip), %rsi     # 0x20869
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x80(%rax), %edx
leaq 0x1cf5a(%rip), %rsi     # 0x208b5
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cf84(%rip), %rsi     # 0x208f1
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %edx
leaq 0x1cf80(%rip), %rsi     # 0x20902
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cf97(%rip), %rsi     # 0x2092b
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cfb1(%rip), %rsi     # 0x20957
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cfdd(%rip), %rsi     # 0x20995
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1cff6(%rip), %rsi     # 0x209c0
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0xa0(%rax), %rdx
leaq 0x1d025(%rip), %rsi     # 0x20a0c
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1d041(%rip), %rsi     # 0x20a3a
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x5c(%rax), %edx
leaq 0x1d05f(%rip), %rsi     # 0x20a71
movb $0x0, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movss 0x50(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1d085(%rip), %rsi     # 0x20ab6
movb $0x1, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movss 0x54(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1d0a6(%rip), %rsi     # 0x20af6
movb $0x1, %al
callq 0x21f0
movq -0x8(%rbp), %rdi
leaq 0x1d0e1(%rip), %rsi     # 0x20b43
movb $0x0, %al
callq 0x21f0
addq $0x20, %rsp
popq %rbp
retq
nop