// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/seq.cpp
// Function: Seq_sp::complementaryNucleotide(char)
char complementaryNucleotide (char wildNucleotide)
{
  char r = ' ';
  switch (toLower (wildNucleotide))
  {
    case 'a': r = 't'; break;
    case 'c': r = 'g'; break;
    case 'g': r = 'c'; break;
    case 't': r = 'a'; break;
    case 'm': r = 'k'; break;
    case 'r': r = 'y'; break;
    case 'w': r = 'w'; break;
    case 's': r = 's'; break;
    case 'y': r = 'r'; break;
    case 'k': r = 'm'; break;
    case 'v': r = 'b'; break;
    case 'h': r = 'd'; break;
    case 'd': r = 'h'; break;
    case 'b': r = 'v'; break;
    case 'n': r = 'n'; break;
    default: 
    	throw runtime_error ("Bad wild nucleotide " + to_string (wildNucleotide));
  }
  if (isupper (wildNucleotide))
    r = toUpper (r);
  ASSERT (charInSet (r, extDnaAlphabet));

  return r;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x110, %rsp            # imm = 0x110
movl %edi, %ebx
callq 0x2a336
addb $-0x61, %al
movsbl %bl, %ebp
cmpb $0x19, %al
jae 0x4905c
movzbl %al, %eax
movl $0x16e34cf, %ecx        # imm = 0x16E34CF
btl %eax, %ecx
jae 0x4905c
leaq 0x19f4b(%rip), %rcx     # 0x62f46
movb (%rax,%rcx), %bl
movl %ebp, %edi
callq 0xc490
testl %eax, %eax
je 0x49013
movsbl %bl, %edi
callq 0x2a32e
movl %eax, %ebx
callq 0xc070
andl $0x0, (%rax)
movq 0x40bde(%rip), %rsi     # 0x89c00
leaq 0x30(%rsp), %r14
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
callq 0xdbbe
movsbl %bl, %edi
movq %r14, %rsi
callq 0x2a35c
movl %eax, %ebp
movq %r14, %rdi
callq 0xcbe8
testb %bpl, %bpl
je 0x490b1
movl %ebx, %eax
addq $0x110, %rsp            # imm = 0x110
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0xc310
movq %rax, %r14
leaq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0xe2d5
leaq 0x19cdc(%rip), %rsi     # 0x62d56
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xe819
movb $0x1, %bpl
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0xc990
xorl %ebp, %ebp
movq 0x3ff4e(%rip), %rsi     # 0x88ff0
movq 0x3febf(%rip), %rdx     # 0x88f68
movq %r14, %rdi
callq 0xca40
callq 0xc6d0
testl %eax, %eax
jne 0x49185
leaq 0x19f4d(%rip), %rsi     # 0x63012
leaq 0xb0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xdbbe
leaq 0x90(%rsp), %rdi
movl $0x41a, %esi            # imm = 0x41A
callq 0xe2d5
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0xe26e
leaq 0x150c4(%rip), %rdx     # 0x5e1d1
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xe24f
leaq 0x1a15e(%rip), %rsi     # 0x63287
leaq 0x50(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xdbbe
leaq 0x1578d(%rip), %rdx     # 0x5e8cc
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xe24f
leaq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0xe26e
leaq 0x1a146(%rip), %rdx     # 0x632b2
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xe24f
leaq 0x30(%rsp), %rdi
callq 0x101d0
pushq $0x1
popq %rdi
callq 0xc6f0
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xcbe8
jmp 0x4919f
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xcbe8
jmp 0x491ae
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xcbe8
jmp 0x491bd
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xcbe8
jmp 0x491cc
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0xcbe8
jmp 0x491de
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xcbe8
jmp 0x491f0
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xcbe8
jmp 0x49202
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xcbe8
jmp 0x49247
movq %rax, %rbx
jmp 0x49247
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xcbe8
jmp 0x4922b
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x10(%rsp), %rdi
callq 0xcbe8
testb %bpl, %bpl
jne 0x4923f
jmp 0x49247
movq %rax, %rbx
movq %r14, %rdi
callq 0xc470
movq %rbx, %rdi
callq 0xcaa0