// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/eis-bwtseq-siop.h
// Function: BWTSeqTransformedOcc
static inline GtUword
BWTSeqTransformedOcc(const BWTSeq *bwtSeq, Symbol tsym, GtUword pos)
{
  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 EISSymTransformedRank(bwtSeq->seqIdx, tsym, pos, bwtSeq->hint);
  else if (tsym > bwtSeq->bwtTerminatorFallback
           && tsym != bwtSeq->alphabetSize - 1)
    return EISSymTransformedRank(bwtSeq->seqIdx, tsym, pos, bwtSeq->hint);
  else if (tsym == bwtSeq->bwtTerminatorFallback)
    return EISSymTransformedRank(bwtSeq->seqIdx, tsym, pos, bwtSeq->hint)
      - ((pos > BWTSeqTerminatorPos(bwtSeq))?1:0);
  else /* tsym == not flattened terminator == alphabetSize - 1 */
  {
    gt_assert(tsym == bwtSeq->alphabetSize - 1);
    return (pos > BWTSeqTerminatorPos(bwtSeq))?1:0;
  }
}

// Assembly:
subq $0x38, %rsp
movb %sil, %al
movq %rdi, 0x28(%rsp)
movb %al, 0x27(%rsp)
movq %rdx, 0x18(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x220f65
movq 0x41b06c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2f50d5(%rip), %rsi    # 0x516013
leaq 0x354691(%rip), %rdx    # 0x5755d6
leaq 0x353b9d(%rip), %rcx    # 0x574ae9
leaq 0x353a14(%rip), %r8     # 0x574967
movl $0x34, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x220f67
movzbl 0x27(%rsp), %eax
movq 0x28(%rsp), %rcx
movzbl 0x24(%rcx), %ecx
cmpl %ecx, %eax
jge 0x220fa5
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movb 0x27(%rsp), %al
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq 0x18(%rcx), %rcx
movzbl %al, %esi
callq 0x221190
movq %rax, 0x30(%rsp)
jmp 0x2210f2
movzbl 0x27(%rsp), %eax
movq 0x28(%rsp), %rcx
movzbl 0x24(%rcx), %ecx
cmpl %ecx, %eax
jle 0x220ffa
movzbl 0x27(%rsp), %eax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
je 0x220ffa
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movb 0x27(%rsp), %al
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq 0x18(%rcx), %rcx
movzbl %al, %esi
callq 0x221190
movq %rax, 0x30(%rsp)
jmp 0x2210f2
movzbl 0x27(%rsp), %eax
movq 0x28(%rsp), %rcx
movzbl 0x24(%rcx), %ecx
cmpl %ecx, %eax
jne 0x221071
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movb 0x27(%rsp), %al
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq 0x18(%rcx), %rcx
movzbl %al, %esi
callq 0x221190
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
callq 0x220dc0
movq 0x8(%rsp), %rsi
movq %rax, %rdi
movq 0x10(%rsp), %rax
xorl %ecx, %ecx
movl $0x1, %edx
cmpq %rdi, %rsi
cmoval %edx, %ecx
movslq %ecx, %rcx
subq %rcx, %rax
movq %rax, 0x30(%rsp)
jmp 0x2210f2
jmp 0x221073
movzbl 0x27(%rsp), %eax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
je 0x2210c2
movq 0x41af0f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2f4f78(%rip), %rsi    # 0x516013
leaq 0x353a5c(%rip), %rdx    # 0x574afe
leaq 0x353a40(%rip), %rcx    # 0x574ae9
leaq 0x3538b7(%rip), %r8     # 0x574967
movl $0x42, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2210c4
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
callq 0x220dc0
movq (%rsp), %rdx
movq %rax, %rsi
xorl %eax, %eax
movl $0x1, %ecx
cmpq %rsi, %rdx
cmoval %ecx, %eax
cltq
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)