// File: /workspace/github_cpp_makefile_star2_O3/karel-brinda[P]ococo/src/params.cpp
// Function: ococo::params_t::print_help()
void ococo::params_t::print_help() {
    print_version();

    std::cerr
        <<
        // clang-format off

        // "---------------------------------------------------------------------------------"
           "Usage:   ococo -i <SAM/BAM file> [other options]\n\n"
        // "---------------------------------------------------------------------------------"
           //"Generic options:\n"
           //"  -h, --help            print this message and exit\n\n"
        // "---------------------------------------------------------------------------------"
           "Input options:\n"
           "  -i, --input FILE      input SAM/BAM file (- for standard input)\n"
           "  -f, --fasta-ref FILE  initial FASTA reference (otherwise seq of N's is used)\n"
           "  -s, --stats-in FILE   input statistics\n\n"
        // "---------------------------------------------------------------------------------"
           "Output options:\n"
           "  -F, --fasta-cons FILE FASTA file with consensus\n"
           "  -S, --stats-out FILE  output statistics\n"
           "  -V, --vcf-cons FILE   VCF file with updates of consensus (- for standard output)\n"
           "  -P, --pileup FILE     truncated pileup (- for standard output)\n"
           //"  --log FILE            auxiliary log file\n"
           "  --verbose             verbose mode (report every update of a counter)\n\n"
        // "---------------------------------------------------------------------------------"
           "Parameters for consensus calling:\n"
           "  -x, --counters STR    counter configuration: [ococo16]\n"
           "                           - ococo16 (3b/counter, 16b/position)\n"
           "                           - ococo32 (7b/counter, 32b/position)\n"
           "                           - ococo64 (15b/counter, 64b/position)\n"
           "  -m, --mode STR        mode: [batch]\n"
           "                           - real-time (updates reported immediately)\n"
           "                           - batch (updates reported after end of algn stream)\n"
           "  -t, --strategy STR    strategy for updates: [majority]\n"
           "                           - majority (update to majority base)\n"
           "                           - stochastic (update to stochastically drawn base)\n"
           "                           - no-updates (no updates, only counters updated)\n"
           //"  -a [ --allow-amb ]                    Allow updates to ambiguous "
           //"nucleotides.\n"
           "  -q, --min-MQ INT      skip alignments with mapping quality smaller than INT [" << default_q << "]\n"
           "  -Q, --min-BQ INT      skip bases with base quality smaller than INT [" << default_Q <<"]\n"
           "  -w, --ref-weight INT  initial counter value for nucleotides from ref ["<< default_w <<"]\n"
           "  -c, --min-cov INT     minimum coverage required for update [" << default_c <<"]\n"
           "  -M, --maj-thres FLOAT majority threshold [" << default_M << "]\n\n"
        // "---------------------------------------------------------------------------------"
           "Examples:\n"
           "   ococo -i test.bam -f test.fa -m real-time -V -\n"
           "   ococo -x ococo64 -i test.bam -f test.fa -P - -V variants.vcf\n\n"
        // "---------------------------------------------------------------------------------"
           "Note:\n"
           "   For more details, see the manual page 'man ./ococo.1'.\n"
        // "---------------------------------------------------------------------------------"
        // clang-format on
        << std::endl;
}

// Assembly:
pushq %rbx
callq 0xc48c
movq 0x549e7(%rip), %rbx     # 0x61fe8
leaq 0x427e2(%rip), %rsi     # 0x4fdea
movl $0x57e, %edx            # imm = 0x57E
movq %rbx, %rdi
callq 0x45d0
movq %rbx, %rdi
movl $0x1, %esi
callq 0x4960
movq %rax, %rbx
leaq 0x42d3d(%rip), %rsi     # 0x50369
movl $0x49, %edx
movq %rax, %rdi
callq 0x45d0
movq %rbx, %rdi
movl $0xd, %esi
callq 0x4960
movq %rax, %rbx
leaq 0x42d63(%rip), %rsi     # 0x503b3
movl $0x4a, %edx
movq %rax, %rdi
callq 0x45d0
movq %rbx, %rdi
xorl %esi, %esi
callq 0x4960
movq %rax, %rbx
leaq 0x42d8d(%rip), %rsi     # 0x503fe
movl $0x40, %edx
movq %rax, %rdi
callq 0x45d0
movq %rbx, %rdi
movl $0x2, %esi
callq 0x4960
movq %rax, %rbx
leaq 0x42daa(%rip), %rsi     # 0x5043f
movl $0x2e, %edx
movq %rax, %rdi
callq 0x45d0
movsd 0x42696(%rip), %xmm0    # 0x4fd40
movq %rbx, %rdi
callq 0x48a0
movq %rax, %rbx
leaq 0x42db2(%rip), %rsi     # 0x5046e
movl $0xc0, %edx
movq %rax, %rdi
callq 0x45d0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4510
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4050
movq %rax, %rdi
popq %rbx
jmp 0x4380