// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rcr.c
// Function: rcr_transencode
static GtBitsequence rcr_transencode(GtUchar ref, GtUchar base,
                                     GtAlphabet *alpha)
{
  GtUchar code_a = gt_alphabet_encode(alpha, 'A'),
          code_c = gt_alphabet_encode(alpha, 'C'),
          code_g = gt_alphabet_encode(alpha, 'G'),
          code_t = gt_alphabet_encode(alpha, 'T');

  if (base == (GtUchar) GT_WILDCARD)
    return (GtBitsequence) 3;

  if (ref == code_a) {
    if (base == code_c)
      return (GtBitsequence) 0;
    if (base == code_g)
      return (GtBitsequence) 1;
    if (base == code_t)
      return (GtBitsequence) 2;
   }
  if (ref == code_c) {
    if (base == code_a)
      return (GtBitsequence) 0;
    if (base == code_g)
      return (GtBitsequence) 1;
    if (base == code_t)
      return (GtBitsequence) 2;
  }
 if (ref == code_g) {
    if (base == code_a)
      return (GtBitsequence) 0;
    if (base == code_c)
      return (GtBitsequence) 1;
    if (base == code_t)
      return (GtBitsequence) 2;
  }
  if (ref == code_t) {
    if (base == code_a)
      return (GtBitsequence) 0;
    if (base == code_c)
      return (GtBitsequence) 1;
    if (base == code_g)
      return (GtBitsequence) 2;
  }
  if (ref == (GtUchar) GT_WILDCARD) {
    if (base == code_a)
      return (GtBitsequence) 0;
    if (base == code_c)
      return (GtBitsequence) 1;
    if (base == code_g)
      return (GtBitsequence) 2;
    if (base == code_t)
      return (GtBitsequence) 3;
  }
  return (GtBitsequence) GT_UNDEF_UWORD;
}

// Assembly:
subq $0x28, %rsp
movb %sil, %al
movb %dil, %cl
movb %cl, 0x1f(%rsp)
movb %al, 0x1e(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movl $0x41, %esi
callq 0x7f6f0
movb %al, 0xf(%rsp)
movq 0x10(%rsp), %rdi
movl $0x43, %esi
callq 0x7f6f0
movb %al, 0xe(%rsp)
movq 0x10(%rsp), %rdi
movl $0x47, %esi
callq 0x7f6f0
movb %al, 0xd(%rsp)
movq 0x10(%rsp), %rdi
movl $0x54, %esi
callq 0x7f6f0
movb %al, 0xc(%rsp)
movzbl 0x1e(%rsp), %eax
cmpl $0xfe, %eax
jne 0x1c227d
movq $0x3, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1f(%rsp), %eax
movzbl 0xf(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c22e1
movzbl 0x1e(%rsp), %eax
movzbl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c22a7
movq $0x0, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xd(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c22c3
movq $0x1, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xc(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c22df
movq $0x2, 0x20(%rsp)
jmp 0x1c2485
jmp 0x1c22e1
movzbl 0x1f(%rsp), %eax
movzbl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c2345
movzbl 0x1e(%rsp), %eax
movzbl 0xf(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c230b
movq $0x0, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xd(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c2327
movq $0x1, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xc(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c2343
movq $0x2, 0x20(%rsp)
jmp 0x1c2485
jmp 0x1c2345
movzbl 0x1f(%rsp), %eax
movzbl 0xd(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c23a9
movzbl 0x1e(%rsp), %eax
movzbl 0xf(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c236f
movq $0x0, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c238b
movq $0x1, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xc(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c23a7
movq $0x2, 0x20(%rsp)
jmp 0x1c2485
jmp 0x1c23a9
movzbl 0x1f(%rsp), %eax
movzbl 0xc(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c240a
movzbl 0x1e(%rsp), %eax
movzbl 0xf(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c23d3
movq $0x0, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c23ef
movq $0x1, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xd(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c2408
movq $0x2, 0x20(%rsp)
jmp 0x1c2485
jmp 0x1c240a
movzbl 0x1f(%rsp), %eax
cmpl $0xfe, %eax
jne 0x1c247c
movzbl 0x1e(%rsp), %eax
movzbl 0xf(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c242f
movq $0x0, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c2448
movq $0x1, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xd(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c2461
movq $0x2, 0x20(%rsp)
jmp 0x1c2485
movzbl 0x1e(%rsp), %eax
movzbl 0xc(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1c247a
movq $0x3, 0x20(%rsp)
jmp 0x1c2485
jmp 0x1c247c
movq $-0x1, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nop