// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/encseq.c
// Function: containsspecialViaequallength
static bool containsspecialViaequallength(const GtEncseq *encseq,
                                          GtReadmode readmode,
                                          GT_UNUSED GtEncseqReader *esr,
                                          GtUword startpos,
                                          GtUword len)
{
  gt_assert(encseq != NULL);
  if (!GT_ISDIRREVERSE(readmode)) {
    gt_assert(startpos + len <= encseq->totallength);
    if (issinglepositioninspecialrangeViaequallength(encseq, startpos) ||
        issinglepositioninspecialrangeViaequallength(encseq, startpos+len-1) ||
        gt_encseq_seqnum_Viaequallength(encseq, startpos) !=
        gt_encseq_seqnum_Viaequallength(encseq, startpos + len - 1)) {
      return true;
    }
  }
  else {
    gt_assert(startpos < encseq->totallength);
    startpos = GT_REVERSEPOS(encseq->totallength, startpos);
    gt_assert (startpos + 1 >= len);
    if (issinglepositioninspecialrangeViaequallength(encseq, startpos) ||
        issinglepositioninspecialrangeViaequallength(encseq, startpos+1-len) ||
        gt_encseq_seqnum_Viaequallength(encseq, startpos) !=
        gt_encseq_seqnum_Viaequallength(encseq, startpos + 1 - len)) {
      return true;
    }
  }
  return false;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0xb68a0
movq %r8, %r14
movq %rcx, %r15
movq %rdi, %rbx
andl $-0x3, %esi
cmpl $0x1, %esi
jne 0xb683e
movq 0x30(%rbx), %r13
movq %r13, %r12
subq %r15, %r12
jbe 0xb68d1
subq %r14, %r12
jb 0xb692d
notq %r15
addq %r15, %r13
movq %rbx, %rdi
movq %r13, %rsi
callq 0xa228c
movb $0x1, %bpl
testb %al, %al
jne 0xb688f
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa228c
testb %al, %al
jne 0xb688f
movq %rbx, %rdi
movq %r13, %rsi
callq 0xa6720
movq %rax, %r14
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa6720
cmpq %rax, %r14
je 0xb688d
jmp 0xb688f
addq %r15, %r14
cmpq 0x30(%rbx), %r14
ja 0xb68ff
movq %rbx, %rdi
movq %r15, %rsi
callq 0xa228c
movb $0x1, %bpl
testb %al, %al
jne 0xb688f
decq %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa228c
testb %al, %al
jne 0xb688f
movq %rbx, %rdi
movq %r15, %rsi
callq 0xa6720
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa6720
cmpq %rax, %r15
jne 0xb688f
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x77711(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x137b5(%rip), %rsi     # 0xca066
leaq 0x35a18(%rip), %rdx     # 0xec2d0
leaq 0x39f4c(%rip), %rcx     # 0xf080b
leaq 0x352d4(%rip), %r8      # 0xebb9a
movl $0xa9e, %r9d            # imm = 0xA9E
jmp 0xb6959
movq 0x776e0(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x13784(%rip), %rsi     # 0xca066
leaq 0x392c4(%rip), %rdx     # 0xefbad
leaq 0x39f1b(%rip), %rcx     # 0xf080b
leaq 0x352a3(%rip), %r8      # 0xebb9a
movl $0xaa9, %r9d            # imm = 0xAA9
jmp 0xb6959
movq 0x776b2(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x13756(%rip), %rsi     # 0xca066
leaq 0x3a377(%rip), %rdx     # 0xf0c8e
leaq 0x39eed(%rip), %rcx     # 0xf080b
leaq 0x35275(%rip), %r8      # 0xebb9a
movl $0xaa0, %r9d            # imm = 0xAA0
jmp 0xb6959
movq 0x77684(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x13728(%rip), %rsi     # 0xca066
leaq 0x3a1fa(%rip), %rdx     # 0xf0b3f
leaq 0x39ebf(%rip), %rcx     # 0xf080b
leaq 0x35247(%rip), %r8      # 0xebb9a
movl $0xaab, %r9d            # imm = 0xAAB
xorl %eax, %eax
callq 0xb8c0
callq 0xb300