// File: /workspace/github_c_makefile_star2_O1/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 %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movl %r9d, 0x28(%rsp)
movq %r8, %r14
movq %rcx, %rbx
movq %rdx, %rbp
movq %rsi, %r15
movq %rdi, %r12
movq 0x188(%rsp), %rdx
movq 0x180(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x178(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x160(%rsp), %rax
movq %rax, 0x58(%rsp)
movb 0x150(%rsp), %al
movb %al, 0xe(%rsp)
movb 0x140(%rsp), %al
movb %al, 0xf(%rsp)
movb 0x138(%rsp), %r13b
movb 0x130(%rsp), %al
movb %al, 0xc(%rsp)
movb 0x120(%rsp), %al
movb %al, 0xd(%rsp)
movb 0x118(%rsp), %al
movb %al, 0xb(%rsp)
movq 0x158(%rsp), %rax
movq %rax, 0x90(%rsp)
movl 0x148(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x128(%rsp), %eax
movl %eax, 0x20(%rsp)
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x100(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x78(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0xd8(%rsp), %rax
movq %rax, 0x60(%rsp)
movl 0xd0(%rsp), %eax
movl %eax, 0x2c(%rsp)
cmpq $0x81, %rdx
movq %rcx, 0x40(%rsp)
jb 0x24a0
movq 0x17b7e(%rip), %rax     # 0x19ff8
movq (%rax), %rdi
addq $-0x80, %rdx
leaq 0x1177b(%rip), %rsi     # 0x13c03
xorl %eax, %eax
movsd %xmm0, 0x10(%rsp)
callq 0x21d0
movq 0x40(%rsp), %rcx
movsd 0x10(%rsp), %xmm0
testq %rcx, %rcx
jne 0x24ab
xorpd %xmm0, %xmm0
jmp 0x24d0
movq %rcx, %xmm2
punpckldq 0xfd98(%rip), %xmm2 # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]
subpd 0xfda0(%rip), %xmm2     # 0x12260
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x17b1b(%rip), %r8      # 0x19ff8
movq (%r8), %rdi
leaq 0x11765(%rip), %rax     # 0x13c4c
leaq 0x11762(%rip), %rdx     # 0x13c50
testb %r13b, %r13b
cmovneq %rax, %rdx
leaq 0x11732(%rip), %rsi     # 0x13c2e
movq %r12, %rcx
movq %r8, %r12
xorl %eax, %eax
callq 0x21d0
testq %r15, %r15
je 0x2523
movq (%r12), %rdi
leaq 0x1173b(%rip), %rsi     # 0x13c54
movq %r15, %rdx
xorl %eax, %eax
callq 0x21d0
testq %rbp, %rbp
je 0x253d
movq (%r12), %rdi
leaq 0x11740(%rip), %rsi     # 0x13c73
movq %rbp, %rdx
xorl %eax, %eax
callq 0x21d0
testq %rbx, %rbx
je 0x25f9
movq (%r12), %rdi
leaq 0x11741(%rip), %rsi     # 0x13c92
movq %rbx, %rdx
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rcx
leaq 0x1174b(%rip), %rdi     # 0x13cb1
pushq $0x7
popq %rsi
pushq $0x1
popq %rdx
callq 0x22b0
movl 0x28(%rsp), %eax
testl %eax, %eax
jle 0x25dc
movl %eax, %eax
imulq $0x68, %rax, %r12
movb $0x1, %bpl
xorl %r13d, %r13d
leaq 0x11732(%rip), %rbx     # 0x13cbe
leaq 0x11726(%rip), %r15     # 0x13cb9
cmpb $0x0, 0xc(%r14,%r13)
jne 0x25ae
cmpb $0x0, 0xd(%r14,%r13)
je 0x25ae
addq $0x68, %r13
cmpq %r13, %r12
jne 0x2593
jmp 0x25dc
movq 0x17a43(%rip), %rax     # 0x19ff8
movq (%rax), %rdi
testb $0x1, %bpl
movq %rbx, %rdx
leaq 0x11605(%rip), %rax     # 0x13bcb
cmovneq %rax, %rdx
movq (%r14,%r13), %rcx
xorl %ebp, %ebp
movq %r15, %rsi
xorl %eax, %eax
callq 0x21d0
jmp 0x25a3
movq 0x17a15(%rip), %r12     # 0x19ff8
movq (%r12), %rcx
leaq 0x117d7(%rip), %rdi     # 0x13dc5
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
callq 0x22b0
movq 0x60(%rsp), %rcx
testq %rcx, %rcx
je 0x2619
movq (%r12), %rdi
leaq 0x116b2(%rip), %rsi     # 0x13cc0
movl 0x2c(%rsp), %edx
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rdi
leaq 0x116bd(%rip), %rsi     # 0x13ce1
movq 0x68(%rsp), %rdx
xorl %eax, %eax
callq 0x21d0
movq 0x70(%rsp), %rdx
testq %rdx, %rdx
movb 0xf(%rsp), %bpl
movq 0x90(%rsp), %r14
je 0x2659
movq (%r12), %rdi
leaq 0x116ae(%rip), %rsi     # 0x13d00
xorl %eax, %eax
callq 0x21d0
movq 0x78(%rsp), %rdx
testq %rdx, %rdx
je 0x2675
movq (%r12), %rdi
leaq 0x116b1(%rip), %rsi     # 0x13d1f
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rdi
leaq 0x116cd(%rip), %rsi     # 0x13d4d
movq 0x80(%rsp), %rdx
xorl %eax, %eax
callq 0x21d0
movq 0x88(%rsp), %rdx
testq %rdx, %rdx
je 0x26ae
movq (%r12), %rdi
leaq 0x11659(%rip), %rsi     # 0x13d00
xorl %eax, %eax
callq 0x21d0
cmpb $0x0, 0xe(%rsp)
je 0x288c
movq (%r12), %rcx
leaq 0x116a8(%rip), %rdi     # 0x13d6c
pushq $0x14
popq %rsi
pushq $0x1
popq %rdx
callq 0x22b0
movq (%r12), %rdi
leaq 0x116a7(%rip), %rsi     # 0x13d81
movq %r14, %rdx
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rdi
xorpd %xmm0, %xmm0
testq %r14, %r14
movq 0x58(%rsp), %rdx
je 0x274b
testq %rdx, %rdx
js 0x2702
cvtsi2ss %rdx, %xmm0
jmp 0x2719
movq %rdx, %rax
shrq %rax
movl %edx, %ecx
andl $0x1, %ecx
orq %rax, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
mulss 0xfa5b(%rip), %xmm0     # 0x1217c
testq %r14, %r14
js 0x272d
cvtsi2ss %r14, %xmm1
jmp 0x2743
movq %r14, %rax
shrq %rax
andl $0x1, %r14d
orq %rax, %r14
cvtsi2ss %r14, %xmm1
addss %xmm1, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1164e(%rip), %rsi     # 0x13da0
movb $0x1, %al
callq 0x21d0
cmpb $0x0, 0xb(%rsp)
je 0x288c
movq (%r12), %rdi
leaq 0x11659(%rip), %rsi     # 0x13dc8
movq 0x30(%rsp), %r14
movq %r14, %rdx
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rdi
xorpd %xmm0, %xmm0
testq %r14, %r14
movq 0x48(%rsp), %rdx
je 0x27ea
testq %rdx, %rdx
js 0x279c
cvtsi2ss %rdx, %xmm0
jmp 0x27b8
movq %rdx, %rax
shrq %rax
movl %edx, %ecx
andl $0x1, %ecx
orq %rax, %rcx
movq 0x30(%rsp), %r14
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
mulss 0xf9bc(%rip), %xmm0     # 0x1217c
testq %r14, %r14
js 0x27cc
cvtsi2ss %r14, %xmm1
jmp 0x27e2
movq %r14, %rax
shrq %rax
andl $0x1, %r14d
orq %rax, %r14
cvtsi2ss %r14, %xmm1
addss %xmm1, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x115af(%rip), %rsi     # 0x13da0
movb $0x1, %al
callq 0x21d0
movq (%r12), %rdi
leaq 0x115e4(%rip), %rsi     # 0x13de7
movq 0x38(%rsp), %r14
movq %r14, %rdx
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rdi
testq %r14, %r14
movq 0x50(%rsp), %rdx
xorpd %xmm0, %xmm0
je 0x287e
testq %rdx, %rdx
js 0x2830
cvtsi2ss %rdx, %xmm0
jmp 0x284c
movq %rdx, %rax
shrq %rax
movl %edx, %ecx
andl $0x1, %ecx
orq %rax, %rcx
movq 0x38(%rsp), %r14
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
mulss 0xf928(%rip), %xmm0     # 0x1217c
testq %r14, %r14
js 0x2860
cvtsi2ss %r14, %xmm1
jmp 0x2876
movq %r14, %rax
shrq %rax
andl $0x1, %r14d
orq %rax, %r14
cvtsi2ss %r14, %xmm1
addss %xmm1, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1151b(%rip), %rsi     # 0x13da0
movb $0x1, %al
callq 0x21d0
movq 0x40(%rsp), %r14
testq %r14, %r14
sete %bl
movq (%r12), %rdi
movq 0x18(%rsp), %rax
leaq (%r14,%rax), %rdx
leaq 0x1155b(%rip), %rsi     # 0x13e06
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rdi
leaq 0x11568(%rip), %rsi     # 0x13e25
movq %r14, %r15
movq %r14, %rdx
xorl %eax, %eax
callq 0x21d0
orb %bpl, %bl
je 0x28f0
cmpb $0x0, 0xb(%rsp)
movq %r15, %rbx
jne 0x290a
testb %bpl, %bpl
jne 0x2957
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r12), %rdi
leaq 0x11549(%rip), %rsi     # 0x13e44
movsd 0x10(%rsp), %xmm0
movb $0x1, %al
callq 0x21d0
jmp 0x28cf
movq (%r12), %rdi
leaq 0x1154c(%rip), %rsi     # 0x13e61
movq 0x18(%rsp), %r14
movq %r14, %rdx
xorl %eax, %eax
callq 0x21d0
testq %r14, %r14
je 0x28d9
movq (%r12), %rcx
leaq 0x1154c(%rip), %rdi     # 0x13e80
pushq $0x19
popq %rsi
pushq $0x1
popq %rdx
callq 0x22b0
cmpb $0x0, 0xd(%rsp)
je 0x2999
movq (%r12), %rdi
leaq 0x11549(%rip), %rsi     # 0x13e9a
movl 0x20(%rsp), %edx
jmp 0x29c7
movq (%r12), %rdi
movq 0x18(%rsp), %rax
leaq (%rax,%rbx,2), %rdx
leaq 0x11542(%rip), %rsi     # 0x13ead
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rdi
leaq 0x1154f(%rip), %rsi     # 0x13ecc
movl 0x24(%rsp), %edx
xorl %eax, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x21d0
testq %rbx, %rbx
sete %al
movb 0xc(%rsp), %cl
xorb $0x1, %cl
orb %al, %cl
jne 0x29ce
movq (%r12), %rdi
movsd 0x10(%rsp), %xmm0
addsd 0xf6f4(%rip), %xmm0     # 0x120b0
cvttsd2si %xmm0, %edx
leaq 0x114d3(%rip), %rsi     # 0x13e9a
xorl %eax, %eax
callq 0x21d0
movq (%r12), %rcx
leaq 0x113ec(%rip), %rdi     # 0x13dc5
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
callq 0x22b0
jmp 0x28d9