// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/eis-bwtseq-siop.h
// Function: BWTSeqTransformedPosPairOcc
static inline GtUwordPair
BWTSeqTransformedPosPairOcc(const BWTSeq *bwtSeq, Symbol tSym,
                            GtUword posA, GtUword posB)
{
  gt_assert(bwtSeq);
  /* two counts must be treated specially:
   * 1. for the symbols mapped to the same value as the terminator
   * 2. for queries of the terminator itself */
  if (tSym < bwtSeq->bwtTerminatorFallback)
    return EISSymTransformedPosPairRank(bwtSeq->seqIdx, tSym, posA, posB,
                                        bwtSeq->hint);
  else if (tSym > bwtSeq->bwtTerminatorFallback
           && tSym != bwtSeq->alphabetSize - 1)
    return EISSymTransformedPosPairRank(bwtSeq->seqIdx, tSym, posA, posB,
                                        bwtSeq->hint);
  else if (tSym == bwtSeq->bwtTerminatorFallback)
    return EISSymTransformedPosPairRank(bwtSeq->seqIdx, tSym, posA, posB,
                                        bwtSeq->hint);
/*       - ((pos > BWTSeqTerminatorPos(bwtSeq))?1:0); */
  else /* tSym == not flattened terminator == alphabetSize - 1 */
  {
    GtUwordPair occ;
    gt_assert(tSym == bwtSeq->alphabetSize - 1);
    occ.a = (posA > BWTSeqTerminatorPos(bwtSeq))?1:0;
    occ.b = (posB > BWTSeqTerminatorPos(bwtSeq))?1:0;
    return occ;
  }
}

// Assembly:
subq $0x48, %rsp
movb %sil, %al
movq %rdi, 0x30(%rsp)
movb %al, 0x2f(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x2264ea
movq 0x415ae7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2efb50(%rip), %rsi    # 0x516013
leaq 0x34f10c(%rip), %rdx    # 0x5755d6
leaq 0x34f4d9(%rip), %rcx    # 0x5759aa
leaq 0x34e48f(%rip), %r8     # 0x574967
movl $0x4b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2264ec
movzbl 0x2f(%rsp), %eax
movq 0x30(%rsp), %rcx
movzbl 0x24(%rcx), %ecx
cmpl %ecx, %eax
jge 0x226534
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movb 0x2f(%rsp), %al
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq 0x30(%rsp), %rsi
movq 0x18(%rsi), %r8
movzbl %al, %esi
callq 0x228280
movq %rax, 0x38(%rsp)
movq %rdx, 0x40(%rsp)
jmp 0x22668e
movzbl 0x2f(%rsp), %eax
movq 0x30(%rsp), %rcx
movzbl 0x24(%rcx), %ecx
cmpl %ecx, %eax
jle 0x226593
movzbl 0x2f(%rsp), %eax
movq 0x30(%rsp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
je 0x226593
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movb 0x2f(%rsp), %al
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq 0x30(%rsp), %rsi
movq 0x18(%rsi), %r8
movzbl %al, %esi
callq 0x228280
movq %rax, 0x38(%rsp)
movq %rdx, 0x40(%rsp)
jmp 0x22668e
movzbl 0x2f(%rsp), %eax
movq 0x30(%rsp), %rcx
movzbl 0x24(%rcx), %ecx
cmpl %ecx, %eax
jne 0x2265db
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movb 0x2f(%rsp), %al
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq 0x30(%rsp), %rsi
movq 0x18(%rsi), %r8
movzbl %al, %esi
callq 0x228280
movq %rax, 0x38(%rsp)
movq %rdx, 0x40(%rsp)
jmp 0x22668e
jmp 0x2265dd
movzbl 0x2f(%rsp), %eax
movq 0x30(%rsp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
je 0x22662c
movq 0x4159a5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2efa0e(%rip), %rsi    # 0x516013
leaq 0x34f3ba(%rip), %rdx    # 0x5759c6
leaq 0x34f397(%rip), %rcx    # 0x5759aa
leaq 0x34e34d(%rip), %r8     # 0x574967
movl $0x5d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x22662e
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
callq 0x227e20
movq 0x8(%rsp), %rdx
movq %rax, %rsi
xorl %eax, %eax
movl $0x1, %ecx
cmpq %rsi, %rdx
cmoval %ecx, %eax
cltq
movq %rax, 0x38(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
callq 0x227e20
movq 0x10(%rsp), %rdx
movq %rax, %rsi
xorl %eax, %eax
movl $0x1, %ecx
cmpq %rsi, %rdx
cmoval %ecx, %eax
cltq
movq %rax, 0x40(%rsp)
movq 0x38(%rsp), %rax
movq 0x40(%rsp), %rdx
addq $0x48, %rsp
retq
nopl (%rax)