// File: /workspace/github_c_makefile_star2_O0/jsh58[P]Genrich/Genrich.c
// Function: checkHashDc
bool checkHashDc(Read* r, HashAln** table,
    uint32_t hashSize, File dups, bool dupsVerb,
    bool gzOut) {
  for (int k = 0; k < r->alnLen; k++) {
    Aln* a = r->aln + k;
    uint32_t pos = (a->strand ? a->pos[0] : a->pos[1]);
    for (int j = 0; j < r->alnLenR2; j++) {
      Aln* b = r->alnR2 + j;
      uint32_t pos1 = (b->strand ? b->pos[0] : b->pos[1]);
      uint32_t idx = jenkins_hash_aln(a->chrom, b->chrom,
        pos, pos1, a->strand, b->strand, DISCORD, hashSize);
      HashAln* h = checkHash(a->chrom, b->chrom, pos, pos1,
        a->strand, b->strand, DISCORD, table, idx);
      if (h) {
        if (dupsVerb)
          logDup(dups, gzOut, r->name, a->chrom, b->chrom,
            pos, pos1, a->strand, b->strand, h->name,
            DISCORD);
        return true;
      }
      // check the reverse also
      idx = jenkins_hash_aln(b->chrom, a->chrom,
        pos1, pos, b->strand, a->strand, DISCORD, hashSize);
      h = checkHash(b->chrom, a->chrom, pos1, pos,
        b->strand, a->strand, DISCORD, table, idx);
      if (h) {
        if (dupsVerb)
          logDup(dups, gzOut, r->name, b->chrom, a->chrom,
            pos1, pos, b->strand, a->strand, h->name,
            DISCORD);
        return true;
      }
    }
  }
  return false;
}

// Assembly:
pushq %rbx
subq $0x90, %rsp
movl %r8d, 0x34(%rsp)
movq %rcx, %r8
movl 0x34(%rsp), %ecx
movb %r9b, %al
movq %r8, 0x80(%rsp)
movq %rdi, 0x78(%rsp)
movq %rsi, 0x70(%rsp)
movl %edx, 0x6c(%rsp)
andb $0x1, %cl
movb %cl, 0x6b(%rsp)
andb $0x1, %al
movb %al, 0x6a(%rsp)
movl $0x0, 0x64(%rsp)
movl 0x64(%rsp), %eax
movq 0x78(%rsp), %rcx
movzbl 0x10(%rcx), %ecx
cmpl %ecx, %eax
jge 0x11071
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x64(%rsp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x10d29
movq 0x58(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x30(%rsp)
jmp 0x10d35
movq 0x58(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, 0x30(%rsp)
movl 0x30(%rsp), %eax
movl %eax, 0x54(%rsp)
movl $0x0, 0x50(%rsp)
movl 0x50(%rsp), %eax
movq 0x78(%rsp), %rcx
movzbl 0x20(%rcx), %ecx
cmpl %ecx, %eax
jge 0x1105f
movq 0x78(%rsp), %rax
movq 0x18(%rax), %rax
movslq 0x50(%rsp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x10d8c
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x2c(%rsp)
jmp 0x10d98
movq 0x48(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, 0x2c(%rsp)
movl 0x2c(%rsp), %eax
movl %eax, 0x44(%rsp)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rsi
movl 0x54(%rsp), %edx
movl 0x44(%rsp), %ecx
movq 0x58(%rsp), %rax
movb 0x10(%rax), %r8b
movq 0x48(%rsp), %rax
movb 0x10(%rax), %r9b
movl 0x6c(%rsp), %eax
andb $0x1, %r8b
andb $0x1, %r9b
movzbl %r8b, %r8d
movzbl %r9b, %r9d
movl $0x2, (%rsp)
movl %eax, 0x8(%rsp)
callq 0xf450
movl %eax, 0x40(%rsp)
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rsi
movl 0x54(%rsp), %edx
movl 0x44(%rsp), %ecx
movq 0x58(%rsp), %rax
movb 0x10(%rax), %r8b
movq 0x48(%rsp), %rax
movb 0x10(%rax), %r9b
movq 0x70(%rsp), %r10
movl 0x40(%rsp), %eax
andb $0x1, %r8b
andb $0x1, %r9b
movzbl %r8b, %r8d
movzbl %r9b, %r9d
movl $0x2, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
callq 0xf850
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0x10ef8
testb $0x1, 0x6b(%rsp)
je 0x10eeb
movb 0x6a(%rsp), %sil
movq 0x78(%rsp), %rax
movq (%rax), %rdx
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x48(%rsp), %rax
movq 0x20(%rax), %r8
movl 0x54(%rsp), %r9d
movl 0x44(%rsp), %ebx
movq 0x58(%rsp), %rax
movb 0x10(%rax), %r11b
movq 0x48(%rsp), %rax
movb 0x10(%rax), %r10b
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x80(%rsp), %rdi
andb $0x1, %sil
andb $0x1, %r11b
andb $0x1, %r10b
movzbl %sil, %esi
movl %ebx, (%rsp)
movzbl %r11b, %r11d
movl %r11d, 0x8(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movl $0x2, 0x20(%rsp)
callq 0xfb40
movb $0x1, 0x8f(%rsp)
jmp 0x11079
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rsi
movl 0x44(%rsp), %edx
movl 0x54(%rsp), %ecx
movq 0x48(%rsp), %rax
movb 0x10(%rax), %r8b
movq 0x58(%rsp), %rax
movb 0x10(%rax), %r9b
movl 0x6c(%rsp), %eax
andb $0x1, %r8b
andb $0x1, %r9b
movzbl %r8b, %r8d
movzbl %r9b, %r9d
movl $0x2, (%rsp)
movl %eax, 0x8(%rsp)
callq 0xf450
movl %eax, 0x40(%rsp)
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x58(%rsp), %rax
movq 0x20(%rax), %rsi
movl 0x44(%rsp), %edx
movl 0x54(%rsp), %ecx
movq 0x48(%rsp), %rax
movb 0x10(%rax), %r8b
movq 0x58(%rsp), %rax
movb 0x10(%rax), %r9b
movq 0x70(%rsp), %r10
movl 0x40(%rsp), %eax
andb $0x1, %r8b
andb $0x1, %r9b
movzbl %r8b, %r8d
movzbl %r9b, %r9d
movl $0x2, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
callq 0xf850
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0x1104d
testb $0x1, 0x6b(%rsp)
je 0x11043
movb 0x6a(%rsp), %sil
movq 0x78(%rsp), %rax
movq (%rax), %rdx
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x58(%rsp), %rax
movq 0x20(%rax), %r8
movl 0x44(%rsp), %r9d
movl 0x54(%rsp), %ebx
movq 0x48(%rsp), %rax
movb 0x10(%rax), %r11b
movq 0x58(%rsp), %rax
movb 0x10(%rax), %r10b
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x80(%rsp), %rdi
andb $0x1, %sil
andb $0x1, %r11b
andb $0x1, %r10b
movzbl %sil, %esi
movl %ebx, (%rsp)
movzbl %r11b, %r11d
movl %r11d, 0x8(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movl $0x2, 0x20(%rsp)
callq 0xfb40
movb $0x1, 0x8f(%rsp)
jmp 0x11079
jmp 0x1104f
movl 0x50(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x50(%rsp)
jmp 0x10d45
jmp 0x11061
movl 0x64(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x64(%rsp)
jmp 0x10ce2
movb $0x0, 0x8f(%rsp)
movb 0x8f(%rsp), %al
andb $0x1, %al
addq $0x90, %rsp
popq %rbx
retq
nopl (%rax,%rax)