// File: /workspace/github_c_makefile_star2_O1/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 0x46b5
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 0x46fe
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 0x1d90f(%rip), %rax     # 0x21ff8
movq (%rax), %rdi
movq %r10, %rsi
callq 0x34e0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x3520
leaq 0x15641(%rip), %rdi     # 0x19d46
leaq 0x14f1b(%rip), %rsi     # 0x19627
xorl %eax, %eax
callq 0x3210
leaq 0x157a7(%rip), %rdi     # 0x19ec1
callq 0x3100
leaq 0x15804(%rip), %rdi     # 0x19f2a
callq 0x3100
leaq 0x1581b(%rip), %rdi     # 0x19f4d
callq 0x3100
leaq 0x1583e(%rip), %rdi     # 0x19f7c
callq 0x3100
leaq 0x1583b(%rip), %rdi     # 0x19f85
callq 0x3100
leaq 0x15885(%rip), %rdi     # 0x19fdb
callq 0x3100
leaq 0x158d3(%rip), %rdi     # 0x1a035
callq 0x3100
leaq 0x1590e(%rip), %rdi     # 0x1a07c
callq 0x3100
leaq 0x1594a(%rip), %rdi     # 0x1a0c4
callq 0x3100
leaq 0x159af(%rip), %rdi     # 0x1a135
callq 0x3100
leaq 0x159dd(%rip), %rdi     # 0x1a16f
callq 0x3100
leaq 0x15a14(%rip), %rdi     # 0x1a1b2
callq 0x3100
leaq 0x15a5e(%rip), %rdi     # 0x1a208
callq 0x3100
leaq 0x15abd(%rip), %rdi     # 0x1a273
callq 0x3100
leaq 0x15b05(%rip), %rdi     # 0x1a2c7
callq 0x3100
leaq 0x15b40(%rip), %rdi     # 0x1a30e
callq 0x3100
leaq 0x15b94(%rip), %rdi     # 0x1a36e
callq 0x3100
leaq 0x15c04(%rip), %rdi     # 0x1a3ea
callq 0x3100
movl $0xa, %edi
callq 0x3070
jmp 0x46f4