// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/encseq.c
// Function: revgetnexttwobitencodingstopposSW
static GtUword revgetnexttwobitencodingstopposSW(GtEncseqReader *esr,
                                      KindofSWtable kindsw)
{
  if (gt_encseq_has_specialranges(esr->encseq)) {
    GtEncseqAccessType sat = (kindsw == SWtable_ssptab)
                                ? esr->encseq->satsep
                                : esr->encseq->sat;
    switch (sat) {
      case GT_ACCESS_TYPE_UCHARTABLES:
        return revgetnexttwobitencodingstopposSW_uchar(esr, kindsw);
      case GT_ACCESS_TYPE_USHORTTABLES:
        return revgetnexttwobitencodingstopposSW_uint16(esr, kindsw);
      case GT_ACCESS_TYPE_UINT32TABLES:
        return revgetnexttwobitencodingstopposSW_uint32(esr, kindsw);
      default:
       fprintf(stderr, "%s(%d) undefined\n", __func__, (int) sat);
       exit(GT_EXIT_PROGRAMMING_ERROR);
    }
  }
  else {
    return 0;
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movl %esi, %ebx
movq %rdi, %r14
movq (%rdi), %rax
cmpb $0x0, 0x3a8(%rax)
jne 0xb4905
testb $0x1, 0x28(%rax)
jne 0xb4905
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
xorl %ecx, %ecx
cmpl $0x1, %ebx
sete %cl
movl (%rax,%rcx,4), %ecx
cmpl $0x6, %ecx
je 0xb49c9
cmpl $0x5, %ecx
je 0xb4974
cmpl $0x4, %ecx
jne 0xb4a29
movl 0x8(%r14), %eax
orl $0x2, %eax
cmpl $0x3, %eax
jne 0xb4a50
xorl %eax, %eax
testl %ebx, %ebx
setne %al
movq 0x28(%r14,%rax,8), %r15
cmpb $0x1, 0x3a(%r15)
jne 0xb48fd
movq 0x10(%r14), %rcx
movq 0x20(%r15), %rax
cmpq %rax, %rcx
jae 0xb48ff
cmpq 0x18(%r15), %rcx
jae 0xb4a1e
cmpb $0x1, 0x39(%r15)
jne 0xb48fd
movq %r14, %rdi
movl %ebx, %esi
callq 0xb3bb8
jmp 0xb4943
movl 0x8(%r14), %eax
orl $0x2, %eax
cmpl $0x3, %eax
jne 0xb4a71
xorl %eax, %eax
testl %ebx, %ebx
setne %al
movq 0x28(%r14,%rax,8), %r15
cmpb $0x1, 0x3a(%r15)
jne 0xb48fd
movq 0x10(%r14), %rcx
movq 0x20(%r15), %rax
cmpq %rax, %rcx
jae 0xb48ff
cmpq 0x18(%r15), %rcx
jae 0xb4a1e
cmpb $0x1, 0x39(%r15)
jne 0xb48fd
movq %r14, %rdi
movl %ebx, %esi
callq 0xb3da7
jmp 0xb4990
movl 0x8(%r14), %eax
orl $0x2, %eax
cmpl $0x3, %eax
jne 0xb4a92
xorl %eax, %eax
testl %ebx, %ebx
setne %al
movq 0x28(%r14,%rax,8), %r15
cmpb $0x1, 0x3a(%r15)
jne 0xb48fd
movq 0x10(%r14), %rcx
movq 0x20(%r15), %rax
cmpq %rax, %rcx
jae 0xb48ff
cmpq 0x18(%r15), %rcx
jae 0xb4a1e
cmpb $0x1, 0x39(%r15)
jne 0xb48fd
movq %r14, %rdi
movl %ebx, %esi
callq 0xb3f96
jmp 0xb49e5
incq %rcx
movq %rcx, %rax
jmp 0xb48ff
movq 0x79588(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x37b0d(%rip), %rsi     # 0xec547
leaq 0x3b04a(%rip), %rdx     # 0xefa8b
xorl %eax, %eax
callq 0xb8c0
pushq $0x2
popq %rdi
callq 0xb7b0
movq 0x79561(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x15605(%rip), %rsi     # 0xca066
leaq 0x3afb2(%rip), %rdx     # 0xefa1a
leaq 0x3b03e(%rip), %rcx     # 0xefaad
jmp 0xb4ab1
movq 0x79540(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x155e4(%rip), %rsi     # 0xca066
leaq 0x3af91(%rip), %rdx     # 0xefa1a
leaq 0x3b045(%rip), %rcx     # 0xefad5
jmp 0xb4ab1
movq 0x7951f(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x155c3(%rip), %rsi     # 0xca066
leaq 0x3af70(%rip), %rdx     # 0xefa1a
leaq 0x3b04d(%rip), %rcx     # 0xefafe
leaq 0x3a73b(%rip), %r8      # 0xef1f3
movl $0x3dd, %r9d            # imm = 0x3DD
xorl %eax, %eax
callq 0xb8c0
callq 0xb300