// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/encseq.c
// Function: containsspecialViabitaccess
static bool containsspecialViabitaccess(const GtEncseq *encseq,
                                        GtReadmode readmode,
                                        GT_UNUSED GtEncseqReader *esr,
                                        GtUword startpos,
                                        GtUword len)
{
  GtUword pos;

  gt_assert(encseq != NULL);
  if (GT_ISDIRREVERSE(readmode)) {
    gt_assert(startpos < encseq->totallength);
    startpos = GT_REVERSEPOS(encseq->totallength, startpos);
  }
  if (encseq->specialbits == NULL)
    return false;
  if (!GT_ISDIRREVERSE(readmode)) {
    gt_assert(startpos + len <= encseq->totallength);
    for (pos = startpos; pos < startpos + len; pos++) {
      if (GT_ISIBITSET(encseq->specialbits, pos))
        return true;
    }
  }
  else {
    gt_assert (startpos + 1 >= len);
    for (pos = startpos; /* Nothing */; pos--) {
      if (GT_ISIBITSET(encseq->specialbits, pos))
        return true;
      if (pos == startpos + 1 - len)
        break;
    }
  }
  return false;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movl %esi, 0x24(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
movq %r8, 0x8(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x13a2ac
movq 0x79d5d(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x23de1(%rip), %rsi     # 0x15e066
leaq 0x4bb08(%rip), %rdx     # 0x185d94
leaq 0x502c8(%rip), %rcx     # 0x18a55b
leaq 0x4b3c4(%rip), %r8      # 0x18565e
movl $0xb4e, %r9d            # imm = 0xB4E
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x13a2ae
cmpl $0x1, 0x24(%rsp)
je 0x13a2bc
cmpl $0x3, 0x24(%rsp)
jne 0x13a31f
jmp 0x13a2be
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x30(%rcx), %rax
jb 0x13a306
movq 0x79d03(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x23d87(%rip), %rsi     # 0x15e066
leaq 0x4f4cf(%rip), %rdx     # 0x1897b5
leaq 0x5026e(%rip), %rcx     # 0x18a55b
leaq 0x4b36a(%rip), %r8      # 0x18565e
movl $0xb50, %r9d            # imm = 0xB50
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x13a308
movq 0x28(%rsp), %rax
movq 0x30(%rax), %rax
subq $0x1, %rax
subq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x2b0(%rax)
jne 0x13a338
movb $0x0, 0x37(%rsp)
jmp 0x13a4d8
cmpl $0x1, 0x24(%rsp)
je 0x13a413
cmpl $0x3, 0x24(%rsp)
je 0x13a413
jmp 0x13a350
movq 0x10(%rsp), %rax
addq 0x8(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x30(%rcx), %rax
jbe 0x13a39d
movq 0x79c6c(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x23cf0(%rip), %rsi     # 0x15e066
leaq 0x50610(%rip), %rdx     # 0x18a98d
leaq 0x501d7(%rip), %rcx     # 0x18a55b
leaq 0x4b2d3(%rip), %r8      # 0x18565e
movl $0xb56, %r9d            # imm = 0xB56
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x13a39f
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
addq 0x8(%rsp), %rcx
cmpq %rcx, %rax
jae 0x13a40e
movq 0x28(%rsp), %rax
movq 0x2b0(%rax), %rax
movq (%rsp), %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rax
movq (%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
je 0x13a3fe
movb $0x1, 0x37(%rsp)
jmp 0x13a4d8
jmp 0x13a400
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x13a3a8
jmp 0x13a4d3
jmp 0x13a415
movq 0x10(%rsp), %rax
addq $0x1, %rax
cmpq 0x8(%rsp), %rax
jae 0x13a45d
movq 0x79bac(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x23c30(%rip), %rsi     # 0x15e066
leaq 0x50401(%rip), %rdx     # 0x18a83e
leaq 0x50117(%rip), %rcx     # 0x18a55b
leaq 0x4b213(%rip), %r8      # 0x18565e
movl $0xb5d, %r9d            # imm = 0xB5D
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x13a45f
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq 0x28(%rsp), %rax
movq 0x2b0(%rax), %rax
movq (%rsp), %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rax
movq (%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
je 0x13a4a8
movb $0x1, 0x37(%rsp)
jmp 0x13a4d8
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
addq $0x1, %rcx
subq 0x8(%rsp), %rcx
cmpq %rcx, %rax
jne 0x13a4c1
jmp 0x13a4d1
jmp 0x13a4c3
movq (%rsp), %rax
addq $-0x1, %rax
movq %rax, (%rsp)
jmp 0x13a468
jmp 0x13a4d3
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)