// File: /workspace/github_c_makefile_star2_O0/jsh58[P]Genrich/Genrich.c
// Function: logCounts
void logCounts(uint64_t count, uint64_t unmapped,
    uint64_t supp, uint64_t skipped, Chrom* chrom,
    int chromLen, int minMapQ, uint64_t lowMapQ,
    uint64_t paired, uint64_t secPair, uint64_t orphan,
    uint64_t single, uint64_t secSingle, uint64_t singlePr,
    uint64_t pairedPr, double totalLen, bool singleOpt,
    bool extendOpt, int extend, bool avgExtOpt, bool bam,
    bool atacOpt, int atacLen, bool dupsOpt,
    uint64_t countPr, uint64_t dupsPr, uint64_t countDc,
    uint64_t dupsDc, uint64_t countSn, uint64_t dupsSn,
    uint64_t errCount) {
  if (errCount > MAX_ALNS)
    fprintf(stderr, "(another %ld warning messages suppressed)\n",
      errCount - MAX_ALNS);
  double avgLen = pairedPr ? totalLen / pairedPr : 0.0;
  fprintf(stderr, "  %s records analyzed: %11ld\n",
    bam ? "BAM" : "SAM", count);
  if (unmapped)
    fprintf(stderr, "    Unmapped:           %11ld\n", unmapped);
  if (supp)
    fprintf(stderr, "    Supp./dups/lowQual: %11ld\n", supp);
  if (skipped) {
    fprintf(stderr, "    To skipped refs:    %11ld\n", skipped);
    fprintf(stderr, "      (");
    bool first = true;
    for (int i = 0; i < chromLen; i++) {
      Chrom* c = chrom + i;
      if (c->skip || ! c->save) {
        fprintf(stderr, "%s%s", first ? "" : ",", c->name);
        first = false;
      }
    }
    fprintf(stderr, ")\n");
  }
  if (lowMapQ)
    fprintf(stderr, "    MAPQ < %-2d:          %11ld\n", minMapQ, lowMapQ);
  fprintf(stderr, "    Paired alignments:  %11ld\n", paired);
  if (secPair)
    fprintf(stderr, "      secondary alns:   %11ld\n", secPair);
  if (orphan)
    fprintf(stderr, "      \"orphan\" alns:    %11ld\t** Warning! **\n",
      orphan);
  fprintf(stderr, "    Unpaired alignments:%11ld\n", single);
  if (secSingle)
    fprintf(stderr, "      secondary alns:   %11ld\n", secSingle);
  if (dupsOpt) {
    fprintf(stderr, "  PCR duplicates --\n");
    fprintf(stderr, "    Paired aln sets:    %11ld\n", countPr);
    fprintf(stderr, "      duplicates:       %11ld (%.1f%%)\n",
      dupsPr, countPr ? 100.0f * dupsPr / countPr : 0.0f);
    if (singleOpt) {
      fprintf(stderr, "    Discordant aln sets:%11ld\n", countDc);
      fprintf(stderr, "      duplicates:       %11ld (%.1f%%)\n",
        dupsDc, countDc ? 100.0f * dupsDc / countDc : 0.0f);
      fprintf(stderr, "    Singleton aln sets: %11ld\n", countSn);
      fprintf(stderr, "      duplicates:       %11ld (%.1f%%)\n",
        dupsSn, countSn ? 100.0f * dupsSn / countSn : 0.0f);
    }
  }
  fprintf(stderr, "  Fragments analyzed:   %11ld\n", singlePr + pairedPr);
  fprintf(stderr, "    Full fragments:     %11ld\n", pairedPr);
  if (pairedPr && ! atacOpt)
    fprintf(stderr, "      (avg. length: %.1fbp)\n", avgLen);
  if (singleOpt) {
    fprintf(stderr, "    Half fragments:     %11ld\n", singlePr);
    if (singlePr) {
      fprintf(stderr, "      (from unpaired alns");
      if (extendOpt)
        fprintf(stderr, ", extended to %dbp", extend);
      else if (avgExtOpt && pairedPr)
        fprintf(stderr, ", extended to %dbp", (int) (avgLen + 0.5));
      fprintf(stderr, ")\n");
    }
  }
  if (atacOpt) {
    fprintf(stderr, "    ATAC-seq cut sites: %11ld\n",
      2 * pairedPr + singlePr);
    fprintf(stderr, "      (expanded to length %dbp)\n", atacLen);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xe0, %rsp
movq %r8, %r10
movq %rcx, %r11
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq 0x1c8(%rsp), %rax
movq 0x1c0(%rsp), %rax
movq 0x1b8(%rsp), %rax
movq 0x1b0(%rsp), %rax
movq 0x1a8(%rsp), %rax
movq 0x1a0(%rsp), %rax
movq 0x198(%rsp), %rax
movb 0x190(%rsp), %al
movl 0x188(%rsp), %ecx
movb 0x180(%rsp), %cl
movb 0x178(%rsp), %dl
movb 0x170(%rsp), %sil
movl 0x168(%rsp), %edi
movb 0x160(%rsp), %dil
movb 0x158(%rsp), %r8b
movq 0x150(%rsp), %r12
movq 0x148(%rsp), %r12
movq 0x140(%rsp), %r12
movq 0x138(%rsp), %r12
movq 0x130(%rsp), %r12
movq 0x128(%rsp), %r12
movq 0x120(%rsp), %r12
movq 0x118(%rsp), %r12
movl 0x110(%rsp), %ebp
movq %r15, 0xd8(%rsp)
movq %r14, 0xd0(%rsp)
movq %rbx, 0xc8(%rsp)
movq %r11, 0xc0(%rsp)
movq %r10, 0xb8(%rsp)
movl %r9d, 0xb4(%rsp)
movsd %xmm0, 0xa8(%rsp)
andb $0x1, %r8b
movb %r8b, 0xa7(%rsp)
andb $0x1, %dil
movb %dil, 0xa6(%rsp)
andb $0x1, %sil
movb %sil, 0xa5(%rsp)
andb $0x1, %dl
movb %dl, 0xa4(%rsp)
andb $0x1, %cl
movb %cl, 0xa3(%rsp)
andb $0x1, %al
movb %al, 0xa2(%rsp)
cmpq $0x80, 0x1c8(%rsp)
jbe 0x19ef7
movq 0x9121(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x1c8(%rsp), %rdx
subq $0x80, %rdx
leaq 0x5eba(%rip), %rsi      # 0x1fdaa
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0x150(%rsp)
je 0x19f45
movsd 0xa8(%rsp), %xmm0
movaps 0x42ce(%rip), %xmm2     # 0x1e1e0
movq 0x150(%rsp), %xmm1
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x42c9(%rip), %xmm2     # 0x1e1f0
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x80(%rsp)
jmp 0x19f53
xorps %xmm0, %xmm0
movsd %xmm0, 0x80(%rsp)
jmp 0x19f53
movsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x98(%rsp)
movq 0x908c(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movb 0xa4(%rsp), %cl
leaq 0x5e7a(%rip), %rdx      # 0x1fdf7
leaq 0x5e6f(%rip), %rax      # 0x1fdf3
testb $0x1, %cl
cmovneq %rax, %rdx
movq 0xd8(%rsp), %rcx
leaq 0x5e3b(%rip), %rsi      # 0x1fdd5
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0xd0(%rsp)
je 0x19fcc
movq 0x9045(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0xd0(%rsp), %rdx
leaq 0x5e36(%rip), %rsi      # 0x1fdfb
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0xc8(%rsp)
je 0x19ff7
movq 0x901a(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0xc8(%rsp), %rdx
leaq 0x5e2a(%rip), %rsi      # 0x1fe1a
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0xc0(%rsp)
je 0x1a117
movq 0x8feb(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0xc0(%rsp), %rdx
leaq 0x5e1a(%rip), %rsi      # 0x1fe39
movb $0x0, %al
callq 0x21c0
movq 0x8fcb(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
leaq 0x5e21(%rip), %rsi      # 0x1fe58
movb $0x0, %al
callq 0x21c0
movb $0x1, 0x97(%rsp)
movl $0x0, 0x90(%rsp)
movl 0x90(%rsp), %eax
cmpl 0xb4(%rsp), %eax
jge 0x1a0ff
movq 0xb8(%rsp), %rax
movslq 0x90(%rsp), %rcx
imulq $0x68, %rcx, %rcx
addq %rcx, %rax
movq %rax, 0x88(%rsp)
movq 0x88(%rsp), %rax
testb $0x1, 0xc(%rax)
jne 0x1a0a0
movq 0x88(%rsp), %rax
testb $0x1, 0xd(%rax)
jne 0x1a0e7
movq 0x8f51(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movb 0x97(%rsp), %cl
leaq 0x5dad(%rip), %rdx      # 0x1fe65
leaq 0x5cb3(%rip), %rax      # 0x1fd72
testb $0x1, %cl
cmovneq %rax, %rdx
movq 0x88(%rsp), %rax
movq (%rax), %rcx
leaq 0x5d88(%rip), %rsi      # 0x1fe60
movb $0x0, %al
callq 0x21c0
movb $0x0, 0x97(%rsp)
jmp 0x1a0e9
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x1a051
movq 0x8ef2(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
leaq 0x5e5c(%rip), %rsi      # 0x1ff6c
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0x118(%rsp)
je 0x1a149
movq 0x8ecf(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movl 0x110(%rsp), %edx
movq 0x118(%rsp), %rcx
leaq 0x5d25(%rip), %rsi      # 0x1fe67
movb $0x0, %al
callq 0x21c0
movq 0x8ea8(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x120(%rsp), %rdx
leaq 0x5d26(%rip), %rsi      # 0x1fe88
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0x128(%rsp)
je 0x1a194
movq 0x8e7d(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x128(%rsp), %rdx
leaq 0x5d1a(%rip), %rsi      # 0x1fea7
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0x130(%rsp)
je 0x1a1bf
movq 0x8e52(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x130(%rsp), %rdx
leaq 0x5d0e(%rip), %rsi      # 0x1fec6
movb $0x0, %al
callq 0x21c0
movq 0x8e32(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x138(%rsp), %rdx
leaq 0x5d1c(%rip), %rsi      # 0x1fef4
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0x140(%rsp)
je 0x1a20a
movq 0x8e07(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x140(%rsp), %rdx
leaq 0x5ca4(%rip), %rsi      # 0x1fea7
movb $0x0, %al
callq 0x21c0
testb $0x1, 0xa2(%rsp)
je 0x1a5be
movq 0x8dd9(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
leaq 0x5cea(%rip), %rsi      # 0x1ff13
movb $0x0, %al
callq 0x21c0
movq 0x8dc1(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x198(%rsp), %rdx
leaq 0x5cdf(%rip), %rsi      # 0x1ff28
movb $0x0, %al
callq 0x21c0
movq 0x8da1(%rip), %rax      # 0x22ff8
movq (%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x1a0(%rsp), %rax
movq %rax, 0x78(%rsp)
cmpq $0x0, 0x198(%rsp)
je 0x1a32d
movq 0x1a0(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x68(%rsp)
testq %rax, %rax
movss %xmm0, 0x6c(%rsp)
js 0x1a2bc
movss 0x68(%rsp), %xmm0
movss %xmm0, 0x6c(%rsp)
movss 0x6c(%rsp), %xmm0
movss 0x3eee(%rip), %xmm1     # 0x1e1b8
mulss %xmm1, %xmm0
movss %xmm0, 0x5c(%rsp)
movq 0x198(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x60(%rsp)
testq %rax, %rax
movss %xmm0, 0x64(%rsp)
js 0x1a315
movss 0x60(%rsp), %xmm0
movss %xmm0, 0x64(%rsp)
movss 0x5c(%rsp), %xmm0
movss 0x64(%rsp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x58(%rsp)
jmp 0x1a338
xorps %xmm0, %xmm0
movss %xmm0, 0x58(%rsp)
jmp 0x1a338
movq 0x78(%rsp), %rdx
movq 0x70(%rsp), %rdi
movss 0x58(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x5bf4(%rip), %rsi      # 0x1ff47
movb $0x1, %al
callq 0x21c0
testb $0x1, 0xa7(%rsp)
je 0x1a5bc
movq 0x8c89(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x1a8(%rsp), %rdx
leaq 0x5bee(%rip), %rsi      # 0x1ff6f
movb $0x0, %al
callq 0x21c0
movq 0x8c69(%rip), %rax      # 0x22ff8
movq (%rax), %rax
movq %rax, 0x48(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x50(%rsp)
cmpq $0x0, 0x1a8(%rsp)
je 0x1a465
movq 0x1b0(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x40(%rsp)
testq %rax, %rax
movss %xmm0, 0x44(%rsp)
js 0x1a3f4
movss 0x40(%rsp), %xmm0
movss %xmm0, 0x44(%rsp)
movss 0x44(%rsp), %xmm0
movss 0x3db6(%rip), %xmm1     # 0x1e1b8
mulss %xmm1, %xmm0
movss %xmm0, 0x34(%rsp)
movq 0x1a8(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x38(%rsp)
testq %rax, %rax
movss %xmm0, 0x3c(%rsp)
js 0x1a44d
movss 0x38(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x34(%rsp), %xmm0
movss 0x3c(%rsp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x30(%rsp)
jmp 0x1a470
xorps %xmm0, %xmm0
movss %xmm0, 0x30(%rsp)
jmp 0x1a470
movq 0x50(%rsp), %rdx
movq 0x48(%rsp), %rdi
movss 0x30(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x5abc(%rip), %rsi      # 0x1ff47
movb $0x1, %al
callq 0x21c0
movq 0x8b5f(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x1b8(%rsp), %rdx
leaq 0x5ae3(%rip), %rsi      # 0x1ff8e
movb $0x0, %al
callq 0x21c0
movq 0x8b3f(%rip), %rax      # 0x22ff8
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x1c0(%rsp), %rax
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x1b8(%rsp)
je 0x1a58f
movq 0x1c0(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x18(%rsp)
testq %rax, %rax
movss %xmm0, 0x1c(%rsp)
js 0x1a51e
movss 0x18(%rsp), %xmm0
movss %xmm0, 0x1c(%rsp)
movss 0x1c(%rsp), %xmm0
movss 0x3c8c(%rip), %xmm1     # 0x1e1b8
mulss %xmm1, %xmm0
movss %xmm0, 0xc(%rsp)
movq 0x1b8(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x10(%rsp)
testq %rax, %rax
movss %xmm0, 0x14(%rsp)
js 0x1a577
movss 0x10(%rsp), %xmm0
movss %xmm0, 0x14(%rsp)
movss 0xc(%rsp), %xmm0
movss 0x14(%rsp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x8(%rsp)
jmp 0x1a59a
xorps %xmm0, %xmm0
movss %xmm0, 0x8(%rsp)
jmp 0x1a59a
movq 0x28(%rsp), %rdx
movq 0x20(%rsp), %rdi
movss 0x8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x5992(%rip), %rsi      # 0x1ff47
movb $0x1, %al
callq 0x21c0
jmp 0x1a5be
movq 0x8a33(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x148(%rsp), %rdx
addq 0x150(%rsp), %rdx
leaq 0x59ce(%rip), %rsi      # 0x1ffad
movb $0x0, %al
callq 0x21c0
movq 0x8a0b(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x150(%rsp), %rdx
leaq 0x59cd(%rip), %rsi      # 0x1ffcc
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0x150(%rsp)
je 0x1a63c
testb $0x1, 0xa3(%rsp)
jne 0x1a63c
movq 0x89d6(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movsd 0x98(%rsp), %xmm0
leaq 0x59b6(%rip), %rsi      # 0x1ffeb
movb $0x1, %al
callq 0x21c0
testb $0x1, 0xa7(%rsp)
je 0x1a71a
movq 0x89a7(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x148(%rsp), %rdx
leaq 0x59a5(%rip), %rsi      # 0x20008
movb $0x0, %al
callq 0x21c0
cmpq $0x0, 0x148(%rsp)
je 0x1a718
movq 0x8978(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
leaq 0x599d(%rip), %rsi      # 0x20027
movb $0x0, %al
callq 0x21c0
testb $0x1, 0xa6(%rsp)
je 0x1a6bc
movq 0x8956(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movl 0x168(%rsp), %edx
leaq 0x598e(%rip), %rsi      # 0x20041
movb $0x0, %al
callq 0x21c0
jmp 0x1a700
testb $0x1, 0xa5(%rsp)
je 0x1a6fe
cmpq $0x0, 0x150(%rsp)
je 0x1a6fe
movq 0x8920(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movsd 0x3a85(%rip), %xmm0     # 0x1e168
addsd 0x98(%rsp), %xmm0
cvttsd2si %xmm0, %edx
leaq 0x594a(%rip), %rsi      # 0x20041
movb $0x0, %al
callq 0x21c0
jmp 0x1a700
movq 0x88f1(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
leaq 0x585b(%rip), %rsi      # 0x1ff6c
movb $0x0, %al
callq 0x21c0
jmp 0x1a71a
testb $0x1, 0xa3(%rsp)
je 0x1a76e
movq 0x88cd(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq 0x150(%rsp), %rdx
shlq %rdx
addq 0x148(%rsp), %rdx
leaq 0x590c(%rip), %rsi      # 0x20054
movb $0x0, %al
callq 0x21c0
movq 0x88a2(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movl 0x188(%rsp), %edx
leaq 0x590c(%rip), %rsi      # 0x20073
movb $0x0, %al
callq 0x21c0
addq $0xe0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop