// File: /workspace/github_c_makefile_star2_O3/xiongxu[P]bam2bedGraph2/samtools-0.1.19/misc/bamcheck.c
// Function: error
void error(const char *format, ...)
{
    if ( !format )
    {
        printf("Version: %s\n", BAMCHECK_VERSION);
        printf("About: The program collects statistics from BAM files. The output can be visualized using plot-bamcheck.\n");
        printf("Usage: bamcheck [OPTIONS] file.bam\n");
        printf("       bamcheck [OPTIONS] file.bam chr:from-to\n");
        printf("Options:\n");
        printf("    -c, --coverage <int>,<int>,<int>    Coverage distribution min,max,step [1,1000,1]\n");
        printf("    -d, --remove-dups                   Exlude from statistics reads marked as duplicates\n");
        printf("    -f, --required-flag <int>           Required flag, 0 for unset [0]\n");
        printf("    -F, --filtering-flag <int>          Filtering flag, 0 for unset [0]\n");
        printf("        --GC-depth <float,float>        Bin size for GC-depth graph and the maximum reference length [2e4,4.2e9]\n");
        printf("    -h, --help                          This help message\n");
        printf("    -i, --insert-size <int>             Maximum insert size [8000]\n");
        printf("    -I, --id <string>                   Include only listed read group or sample name\n");
        printf("    -l, --read-length <int>             Include in the statistics only reads with the given read length []\n");
        printf("    -m, --most-inserts <float>          Report only the main part of inserts [0.99]\n");
        printf("    -q, --trim-quality <int>            The BWA trimming parameter [0]\n");
        printf("    -r, --ref-seq <file>                Reference sequence (required for GC-depth calculation).\n");
        printf("    -t, --target-regions <file>         Do stats in these regions only. Tab-delimited file chr,from,to, 1-based, inclusive.\n");
        printf("    -s, --sam                           Input is SAM\n");
        printf("\n");
    }
    else
    {
        va_list ap;
        va_start(ap, format);
        vfprintf(stderr, format, ap);
        va_end(ap);
    }
    exit(-1);
}

// Assembly:
subq $0xd8, %rsp
movq %rsi, 0x28(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x38(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x48(%rsp)
testb %al, %al
je 0x4981
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
testq %rdi, %rdi
je 0x49ca
movq %rdi, %r10
leaq 0x20(%rsp), %rax
movq %rsp, %rdx
movq %rax, 0x10(%rdx)
leaq 0xe0(%rsp), %rax
movq %rax, 0x8(%rdx)
movabsq $0x3000000008, %rax     # imm = 0x3000000008
movq %rax, (%rdx)
movq 0x1e643(%rip), %rax     # 0x22ff8
movq (%rax), %rdi
movq %r10, %rsi
callq 0x34e0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x3520
leaq 0x16425(%rip), %rdi     # 0x1adf6
leaq 0x15cff(%rip), %rsi     # 0x1a6d7
xorl %eax, %eax
callq 0x3210
leaq 0x1658b(%rip), %rdi     # 0x1af71
callq 0x3100
leaq 0x165e8(%rip), %rdi     # 0x1afda
callq 0x3100
leaq 0x165ff(%rip), %rdi     # 0x1affd
callq 0x3100
leaq 0x16622(%rip), %rdi     # 0x1b02c
callq 0x3100
leaq 0x1661f(%rip), %rdi     # 0x1b035
callq 0x3100
leaq 0x16669(%rip), %rdi     # 0x1b08b
callq 0x3100
leaq 0x166b7(%rip), %rdi     # 0x1b0e5
callq 0x3100
leaq 0x166f2(%rip), %rdi     # 0x1b12c
callq 0x3100
leaq 0x1672e(%rip), %rdi     # 0x1b174
callq 0x3100
leaq 0x16793(%rip), %rdi     # 0x1b1e5
callq 0x3100
leaq 0x167c1(%rip), %rdi     # 0x1b21f
callq 0x3100
leaq 0x167f8(%rip), %rdi     # 0x1b262
callq 0x3100
leaq 0x16842(%rip), %rdi     # 0x1b2b8
callq 0x3100
leaq 0x168a1(%rip), %rdi     # 0x1b323
callq 0x3100
leaq 0x168e9(%rip), %rdi     # 0x1b377
callq 0x3100
leaq 0x16924(%rip), %rdi     # 0x1b3be
callq 0x3100
leaq 0x16978(%rip), %rdi     # 0x1b41e
callq 0x3100
leaq 0x169e8(%rip), %rdi     # 0x1b49a
callq 0x3100
movl $0xa, %edi
callq 0x3070
jmp 0x49c0