// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/encseq.c
// Function: checktbe
static bool checktbe(bool fwd, GtTwobitencoding tbe1, GtTwobitencoding tbe2,
                     unsigned int unitsnotspecial)
{
  GtTwobitencoding mask;

  if (unitsnotspecial == 0) {
    return true;
  }
  if (unitsnotspecial == (unsigned int) GT_UNITSIN2BITENC) {
    if (tbe1 == tbe2) {
      return true;
    }
    else {
      char buf1[GT_INTWORDSIZE+1], buf2[GT_INTWORDSIZE+1];

      gt_bitsequence_tostring(buf1, tbe1);
      gt_bitsequence_tostring(buf2, tbe2);
      fprintf(stderr, "%s: unitsnotspecial = %u: \n%s (tbe1)\n%s (tbe2)\n",
                      fwd ? "fwd" : "rev", unitsnotspecial, buf1, buf2);
      return false;
    }
  }
  if (fwd) {
    mask = GT_ENCSEQ_MASKPREFIX(unitsnotspecial);
  }
  else {
    mask = GT_ENCSEQ_MASKSUFFIX(unitsnotspecial);
  }
  gt_assert(mask > 0);
  if ((tbe1 & mask) == (tbe2 & mask))
    return true;
  else {
    char buf1[GT_INTWORDSIZE+1],
         buf2[GT_INTWORDSIZE+1],
         bufmask[GT_INTWORDSIZE+1];

    gt_bitsequence_tostring(bufmask, mask);
    gt_bitsequence_tostring(buf1, tbe1);
    gt_bitsequence_tostring(buf2, tbe2);
    fprintf(stderr, "%s: unitsnotspecial = %u: \n%s (mask)\n"
                   "%s (tbe1)\n%s (tbe2)\n",
            fwd ? "fwd" : "rev", unitsnotspecial, bufmask, buf1, buf2);
    return false;
  }
}

// Assembly:
subq $0x1c8, %rsp            # imm = 0x1C8
movb %dil, %al
andb $0x1, %al
movb %al, 0x1c6(%rsp)
movq %rsi, 0x1b8(%rsp)
movq %rdx, 0x1b0(%rsp)
movl %ecx, 0x1ac(%rsp)
cmpl $0x0, 0x1ac(%rsp)
jne 0x132fe1
movb $0x1, 0x1c7(%rsp)
jmp 0x1331f2
cmpl $0x20, 0x1ac(%rsp)
jne 0x133090
movq 0x1b8(%rsp), %rax
cmpq 0x1b0(%rsp), %rax
jne 0x13300e
movb $0x1, 0x1c7(%rsp)
jmp 0x1331f2
leaq 0x150(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0x133490
leaq 0x100(%rsp), %rdi
movq 0x1b0(%rsp), %rsi
callq 0x133490
movq 0x80f99(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
movb 0x1c6(%rsp), %cl
leaq 0x425a6(%rip), %rdx     # 0x1755f6
leaq 0x569c1(%rip), %rax     # 0x189a18
testb $0x1, %cl
cmovneq %rax, %rdx
movl 0x1ac(%rsp), %ecx
leaq 0x150(%rsp), %r8
leaq 0x100(%rsp), %r9
leaq 0x5696c(%rip), %rsi     # 0x1899e8
movb $0x0, %al
callq 0xb890
movb $0x0, 0x1c7(%rsp)
jmp 0x1331f2
testb $0x1, 0x1c6(%rsp)
je 0x1330c6
movl $0x20, %eax
subl 0x1ac(%rsp), %eax
shll %eax
movl %eax, %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
subq $0x1, %rax
xorq $-0x1, %rax
movq %rax, 0x1a0(%rsp)
jmp 0x1330e7
movl 0x1ac(%rsp), %eax
shll %eax
movl %eax, %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
subq $0x1, %rax
movq %rax, 0x1a0(%rsp)
jmp 0x1330e9
cmpq $0x0, 0x1a0(%rsp)
ja 0x13312c
movq 0x80edd(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x2af61(%rip), %rsi     # 0x15e066
leaq 0x56910(%rip), %rdx     # 0x189a1c
leaq 0x56912(%rip), %rcx     # 0x189a25
leaq 0x52544(%rip), %r8      # 0x18565e
movl $0x1b90, %r9d           # imm = 0x1B90
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x13312e
movq 0x1b8(%rsp), %rax
andq 0x1a0(%rsp), %rax
movq 0x1b0(%rsp), %rcx
andq 0x1a0(%rsp), %rcx
cmpq %rcx, %rax
jne 0x133160
movb $0x1, 0x1c7(%rsp)
jmp 0x1331f2
leaq 0x10(%rsp), %rdi
movq 0x1a0(%rsp), %rsi
callq 0x133490
leaq 0xb0(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0x133490
leaq 0x60(%rsp), %rdi
movq 0x1b0(%rsp), %rsi
callq 0x133490
movq 0x80e38(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
movb 0x1c6(%rsp), %cl
leaq 0x42445(%rip), %rdx     # 0x1755f6
leaq 0x56860(%rip), %rax     # 0x189a18
testb $0x1, %cl
cmovneq %rax, %rdx
movl 0x1ac(%rsp), %ecx
leaq 0x10(%rsp), %r8
leaq 0xb0(%rsp), %r9
leaq 0x60(%rsp), %rax
leaq 0x5684f(%rip), %rsi     # 0x189a2e
movq %rax, (%rsp)
movb $0x0, %al
callq 0xb890
movb $0x0, 0x1c7(%rsp)
movb 0x1c7(%rsp), %al
andb $0x1, %al
addq $0x1c8, %rsp            # imm = 0x1C8
retq
nopw %cs:(%rax,%rax)