#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, char *);
scalar_t__ strcmp(char *, char *);
char codon_table(char *temp) {
  char pep;
  if (strcmp(temp, "GCT") == 0 || strcmp(temp, "GCC") == 0 ||
      strcmp(temp, "GCA") == 0 || strcmp(temp, "GCG") == 0) {
    pep = 'A';
  } else if (strcmp(temp, "CGT") == 0 || strcmp(temp, "CGC") == 0 ||
             strcmp(temp, "CGA") == 0 || strcmp(temp, "CGG") == 0 ||
             strcmp(temp, "AGA") == 0 || strcmp(temp, "AGG") == 0) {
    pep = 'R';
  } else if (strcmp(temp, "AAT") == 0 || strcmp(temp, "AAC") == 0) {
    pep = 'N';
  } else if (strcmp(temp, "GAT") == 0 || strcmp(temp, "GAC") == 0) {
    pep = 'D';
  } else if (strcmp(temp, "TGT") == 0 || strcmp(temp, "TGC") == 0) {
    pep = 'C';
  } else if (strcmp(temp, "CAA") == 0 || strcmp(temp, "CAG") == 0) {
    pep = 'Q';
  } else if (strcmp(temp, "GAA") == 0 || strcmp(temp, "GAG") == 0) {
    pep = 'E';
  } else if (strcmp(temp, "GGT") == 0 || strcmp(temp, "GGC") == 0 ||
             strcmp(temp, "GGA") == 0 || strcmp(temp, "GGG") == 0) {
    pep = 'G';
  } else if (strcmp(temp, "CAT") == 0 || strcmp(temp, "CAC") == 0) {
    pep = 'H';
  } else if (strcmp(temp, "ATT") == 0 || strcmp(temp, "ATC") == 0 ||
             strcmp(temp, "ATA") == 0) {
    pep = 'I';
  } else if (strcmp(temp, "ATG") == 0) {
    pep = 'M';
  } else if (strcmp(temp, "TTA") == 0 || strcmp(temp, "TTG") == 0 ||
             strcmp(temp, "CTT") == 0 || strcmp(temp, "CTC") == 0 ||
             strcmp(temp, "CTA") == 0 || strcmp(temp, "CTG") == 0) {
    pep = 'L';
  } else if (strcmp(temp, "AAA") == 0 || strcmp(temp, "AAG") == 0) {
    pep = 'K';
  } else if (strcmp(temp, "ATG") == 0) {
    pep = 'M';
  } else if (strcmp(temp, "TTT") == 0 || strcmp(temp, "TTC") == 0) {
    pep = 'F';
  } else if (strcmp(temp, "CCT") == 0 || strcmp(temp, "CCC") == 0 ||
             strcmp(temp, "CCA") == 0 || strcmp(temp, "CCG") == 0) {
    pep = 'P';
  } else if (strcmp(temp, "TCT") == 0 || strcmp(temp, "TCC") == 0 ||
             strcmp(temp, "TCA") == 0 || strcmp(temp, "TCG") == 0 ||
             strcmp(temp, "AGT") == 0 || strcmp(temp, "AGC") == 0) {
    pep = 'S';
  } else if (strcmp(temp, "ACT") == 0 || strcmp(temp, "ACC") == 0 ||
             strcmp(temp, "ACA") == 0 || strcmp(temp, "ACG") == 0) {
    pep = 'T';
  } else if (strcmp(temp, "TGG") == 0) {
    pep = 'W';
  } else if (strcmp(temp, "TAT") == 0 || strcmp(temp, "TAC") == 0) {
    pep = 'Y';
  } else if (strcmp(temp, "GTT") == 0 || strcmp(temp, "GTC") == 0 ||
             strcmp(temp, "GTA") == 0 || strcmp(temp, "GTG") == 0) {
    pep = 'V';
  } else if (strcmp(temp, "TAG") == 0 || strcmp(temp, "TGA") == 0 ||
             strcmp(temp, "TAA") == 0) {
    pep = '*';
  } else {
    if (temp[0] == 'N' || temp[1] == 'N' || temp[2] == 'N') {
      pep = 'X';
    } else {
      pep = 'X';
      printf("nonsense character %s in fasta file\n", temp);
    }
  }
  return pep;
}


x86 assembly (clang, -O0):
<codon_table>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xec9(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1194 <codon_table+0x74>
mov    -0x8(%rbp),%rdi
lea    0xeb3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1194 <codon_table+0x74>
mov    -0x8(%rbp),%rdi
lea    0xe9d(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1194 <codon_table+0x74>
mov    -0x8(%rbp),%rdi
lea    0xe87(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    119d <codon_table+0x7d>
movb   $0x41,-0x9(%rbp)
jmp    1949 <codon_table+0x829>
mov    -0x8(%rbp),%rdi
lea    0xe68(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1239 <codon_table+0x119>
mov    -0x8(%rbp),%rdi
lea    0xe52(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1239 <codon_table+0x119>
mov    -0x8(%rbp),%rdi
lea    0xe3c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1239 <codon_table+0x119>
mov    -0x8(%rbp),%rdi
lea    0xe26(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1239 <codon_table+0x119>
mov    -0x8(%rbp),%rdi
lea    0xe10(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1239 <codon_table+0x119>
mov    -0x8(%rbp),%rdi
lea    0xdfa(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1242 <codon_table+0x122>
movb   $0x52,-0x9(%rbp)
jmp    1944 <codon_table+0x824>
mov    -0x8(%rbp),%rdi
lea    0xddb(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1276 <codon_table+0x156>
mov    -0x8(%rbp),%rdi
lea    0xdc5(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    127f <codon_table+0x15f>
movb   $0x4e,-0x9(%rbp)
jmp    193f <codon_table+0x81f>
mov    -0x8(%rbp),%rdi
lea    0xda6(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     12b3 <codon_table+0x193>
mov    -0x8(%rbp),%rdi
lea    0xd90(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    12bc <codon_table+0x19c>
movb   $0x44,-0x9(%rbp)
jmp    193a <codon_table+0x81a>
mov    -0x8(%rbp),%rdi
lea    0xd71(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     12f0 <codon_table+0x1d0>
mov    -0x8(%rbp),%rdi
lea    0xd5b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    12f9 <codon_table+0x1d9>
movb   $0x43,-0x9(%rbp)
jmp    1935 <codon_table+0x815>
mov    -0x8(%rbp),%rdi
lea    0xd3c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     132d <codon_table+0x20d>
mov    -0x8(%rbp),%rdi
lea    0xd26(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1336 <codon_table+0x216>
movb   $0x51,-0x9(%rbp)
jmp    1930 <codon_table+0x810>
mov    -0x8(%rbp),%rdi
lea    0xd07(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     136a <codon_table+0x24a>
mov    -0x8(%rbp),%rdi
lea    0xcf1(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1373 <codon_table+0x253>
movb   $0x45,-0x9(%rbp)
jmp    192b <codon_table+0x80b>
mov    -0x8(%rbp),%rdi
lea    0xcd2(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     13db <codon_table+0x2bb>
mov    -0x8(%rbp),%rdi
lea    0xcbc(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     13db <codon_table+0x2bb>
mov    -0x8(%rbp),%rdi
lea    0xca6(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     13db <codon_table+0x2bb>
mov    -0x8(%rbp),%rdi
lea    0xc90(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    13e4 <codon_table+0x2c4>
movb   $0x47,-0x9(%rbp)
jmp    1926 <codon_table+0x806>
mov    -0x8(%rbp),%rdi
lea    0xc71(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1418 <codon_table+0x2f8>
mov    -0x8(%rbp),%rdi
lea    0xc5b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1421 <codon_table+0x301>
movb   $0x48,-0x9(%rbp)
jmp    1921 <codon_table+0x801>
mov    -0x8(%rbp),%rdi
lea    0xc3c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     146f <codon_table+0x34f>
mov    -0x8(%rbp),%rdi
lea    0xc26(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     146f <codon_table+0x34f>
mov    -0x8(%rbp),%rdi
lea    0xc10(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1478 <codon_table+0x358>
movb   $0x49,-0x9(%rbp)
jmp    191c <codon_table+0x7fc>
mov    -0x8(%rbp),%rdi
lea    0xbf1(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    149b <codon_table+0x37b>
movb   $0x4d,-0x9(%rbp)
jmp    1917 <codon_table+0x7f7>
mov    -0x8(%rbp),%rdi
lea    0xbd2(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1537 <codon_table+0x417>
mov    -0x8(%rbp),%rdi
lea    0xbbc(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1537 <codon_table+0x417>
mov    -0x8(%rbp),%rdi
lea    0xba6(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1537 <codon_table+0x417>
mov    -0x8(%rbp),%rdi
lea    0xb90(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1537 <codon_table+0x417>
mov    -0x8(%rbp),%rdi
lea    0xb7a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1537 <codon_table+0x417>
mov    -0x8(%rbp),%rdi
lea    0xb64(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1540 <codon_table+0x420>
movb   $0x4c,-0x9(%rbp)
jmp    1912 <codon_table+0x7f2>
mov    -0x8(%rbp),%rdi
lea    0xb45(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1574 <codon_table+0x454>
mov    -0x8(%rbp),%rdi
lea    0xb2f(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    157d <codon_table+0x45d>
movb   $0x4b,-0x9(%rbp)
jmp    190d <codon_table+0x7ed>
mov    -0x8(%rbp),%rdi
lea    0xaec(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    15a0 <codon_table+0x480>
movb   $0x4d,-0x9(%rbp)
jmp    1908 <codon_table+0x7e8>
mov    -0x8(%rbp),%rdi
lea    0xaed(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     15d4 <codon_table+0x4b4>
mov    -0x8(%rbp),%rdi
lea    0xad7(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    15dd <codon_table+0x4bd>
movb   $0x46,-0x9(%rbp)
jmp    1903 <codon_table+0x7e3>
mov    -0x8(%rbp),%rdi
lea    0xab8(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1645 <codon_table+0x525>
mov    -0x8(%rbp),%rdi
lea    0xaa2(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1645 <codon_table+0x525>
mov    -0x8(%rbp),%rdi
lea    0xa8c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1645 <codon_table+0x525>
mov    -0x8(%rbp),%rdi
lea    0xa76(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    164e <codon_table+0x52e>
movb   $0x50,-0x9(%rbp)
jmp    18fe <codon_table+0x7de>
mov    -0x8(%rbp),%rdi
lea    0xa57(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     16ea <codon_table+0x5ca>
mov    -0x8(%rbp),%rdi
lea    0xa41(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     16ea <codon_table+0x5ca>
mov    -0x8(%rbp),%rdi
lea    0xa2b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     16ea <codon_table+0x5ca>
mov    -0x8(%rbp),%rdi
lea    0xa15(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     16ea <codon_table+0x5ca>
mov    -0x8(%rbp),%rdi
lea    0x9ff(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     16ea <codon_table+0x5ca>
mov    -0x8(%rbp),%rdi
lea    0x9e9(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    16f3 <codon_table+0x5d3>
movb   $0x53,-0x9(%rbp)
jmp    18f9 <codon_table+0x7d9>
mov    -0x8(%rbp),%rdi
lea    0x9ca(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     175b <codon_table+0x63b>
mov    -0x8(%rbp),%rdi
lea    0x9b4(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     175b <codon_table+0x63b>
mov    -0x8(%rbp),%rdi
lea    0x99e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     175b <codon_table+0x63b>
mov    -0x8(%rbp),%rdi
lea    0x988(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1764 <codon_table+0x644>
movb   $0x54,-0x9(%rbp)
jmp    18f4 <codon_table+0x7d4>
mov    -0x8(%rbp),%rdi
lea    0x969(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1787 <codon_table+0x667>
movb   $0x57,-0x9(%rbp)
jmp    18ef <codon_table+0x7cf>
mov    -0x8(%rbp),%rdi
lea    0x94a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     17bb <codon_table+0x69b>
mov    -0x8(%rbp),%rdi
lea    0x934(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    17c4 <codon_table+0x6a4>
movb   $0x59,-0x9(%rbp)
jmp    18ea <codon_table+0x7ca>
mov    -0x8(%rbp),%rdi
lea    0x915(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     182c <codon_table+0x70c>
mov    -0x8(%rbp),%rdi
lea    0x8ff(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     182c <codon_table+0x70c>
mov    -0x8(%rbp),%rdi
lea    0x8e9(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     182c <codon_table+0x70c>
mov    -0x8(%rbp),%rdi
lea    0x8d3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    1835 <codon_table+0x715>
movb   $0x56,-0x9(%rbp)
jmp    18e5 <codon_table+0x7c5>
mov    -0x8(%rbp),%rdi
lea    0x8b4(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1883 <codon_table+0x763>
mov    -0x8(%rbp),%rdi
lea    0x89e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1883 <codon_table+0x763>
mov    -0x8(%rbp),%rdi
lea    0x888(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
jne    188c <codon_table+0x76c>
movb   $0x2a,-0x9(%rbp)
jmp    18e0 <codon_table+0x7c0>
mov    -0x8(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x4e,%eax
je     18be <codon_table+0x79e>
mov    -0x8(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x4e,%eax
je     18be <codon_table+0x79e>
mov    -0x8(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4e,%eax
jne    18c7 <codon_table+0x7a7>
movb   $0x58,-0x9(%rbp)
jmp    18db <codon_table+0x7bb>
movb   $0x58,-0x9(%rbp)
mov    -0x8(%rbp),%rsi
lea    0x82a(%rip),%rdi
call   1030 <printf@plt>
jmp    18e0 <codon_table+0x7c0>
jmp    18e5 <codon_table+0x7c5>
jmp    18ea <codon_table+0x7ca>
jmp    18ef <codon_table+0x7cf>
jmp    18f4 <codon_table+0x7d4>
jmp    18f9 <codon_table+0x7d9>
jmp    18fe <codon_table+0x7de>
jmp    1903 <codon_table+0x7e3>
jmp    1908 <codon_table+0x7e8>
jmp    190d <codon_table+0x7ed>
jmp    1912 <codon_table+0x7f2>
jmp    1917 <codon_table+0x7f7>
jmp    191c <codon_table+0x7fc>
jmp    1921 <codon_table+0x801>
jmp    1926 <codon_table+0x806>
jmp    192b <codon_table+0x80b>
jmp    1930 <codon_table+0x810>
jmp    1935 <codon_table+0x815>
jmp    193a <codon_table+0x81a>
jmp    193f <codon_table+0x81f>
jmp    1944 <codon_table+0x824>
jmp    1949 <codon_table+0x829>
movsbl -0x9(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<codon_table>:
push   %rbp
push   %rbx
push   %rax
mov    %rdi,%rbx
lea    0xed3(%rip),%rsi
call   1040 <strcmp@plt>
mov    $0x41,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xebf(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xeab(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe97(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe83(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x52,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe6c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe58(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe44(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe30(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe1c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xe08(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x4e,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xdf1(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xddd(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x44,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xdc6(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xdb2(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x43,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd9b(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd87(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x51,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd70(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd5c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x45,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd45(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd31(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x47,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd1a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xd06(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xcf2(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xcde(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x48,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xcc7(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xcb3(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x49,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc9c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc88(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc74(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x4d,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc5d(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x4c,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc46(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc32(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc1e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xc0a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xbf6(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xbe2(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x4b,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xbcb(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb93(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x4d,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb9c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x46,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb85(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb71(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x50,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb5a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb46(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb32(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb1e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x53,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xb07(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xaf3(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xadf(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xacb(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xab7(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xaa3(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x54,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xa8c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xa78(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xa64(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xa50(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178b <codon_table+0x66b>
lea    0xa3c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x59,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xa25(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0xa11(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x56,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0x9fa(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0x9e6(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0x9d6(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0x9c6(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x2a,%bpl
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0x9b3(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
lea    0x9a3(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
je     178e <codon_table+0x66e>
mov    $0x58,%bpl
cmpb   $0x4e,(%rbx)
je     178e <codon_table+0x66e>
cmpb   $0x4e,0x1(%rbx)
je     178e <codon_table+0x66e>
cmpb   $0x4e,0x2(%rbx)
je     178e <codon_table+0x66e>
lea    0x97f(%rip),%rdi
mov    %rbx,%rsi
call   1030 <printf@plt>
jmp    178e <codon_table+0x66e>
mov    $0x57,%bpl
mov    %ebp,%eax
add    $0x8,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
@.str = [4 x i8] c"GCT\00"
@.str.1 = [4 x i8] c"GCC\00"
@.str.2 = [4 x i8] c"GCA\00"
@.str.3 = [4 x i8] c"GCG\00"
@.str.4 = [4 x i8] c"CGT\00"
@.str.5 = [4 x i8] c"CGC\00"
@.str.6 = [4 x i8] c"CGA\00"
@.str.7 = [4 x i8] c"CGG\00"
@.str.8 = [4 x i8] c"AGA\00"
@.str.9 = [4 x i8] c"AGG\00"
@.str.10 = [4 x i8] c"AAT\00"
@.str.11 = [4 x i8] c"AAC\00"
@.str.12 = [4 x i8] c"GAT\00"
@.str.13 = [4 x i8] c"GAC\00"
@.str.14 = [4 x i8] c"TGT\00"
@.str.15 = [4 x i8] c"TGC\00"
@.str.16 = [4 x i8] c"CAA\00"
@.str.17 = [4 x i8] c"CAG\00"
@.str.18 = [4 x i8] c"GAA\00"
@.str.19 = [4 x i8] c"GAG\00"
@.str.20 = [4 x i8] c"GGT\00"
@.str.21 = [4 x i8] c"GGC\00"
@.str.22 = [4 x i8] c"GGA\00"
@.str.23 = [4 x i8] c"GGG\00"
@.str.24 = [4 x i8] c"CAT\00"
@.str.25 = [4 x i8] c"CAC\00"
@.str.26 = [4 x i8] c"ATT\00"
@.str.27 = [4 x i8] c"ATC\00"
@.str.28 = [4 x i8] c"ATA\00"
@.str.29 = [4 x i8] c"ATG\00"
@.str.30 = [4 x i8] c"TTA\00"
@.str.31 = [4 x i8] c"TTG\00"
@.str.32 = [4 x i8] c"CTT\00"
@.str.33 = [4 x i8] c"CTC\00"
@.str.34 = [4 x i8] c"CTA\00"
@.str.35 = [4 x i8] c"CTG\00"
@.str.36 = [4 x i8] c"AAA\00"
@.str.37 = [4 x i8] c"AAG\00"
@.str.38 = [4 x i8] c"TTT\00"
@.str.39 = [4 x i8] c"TTC\00"
@.str.40 = [4 x i8] c"CCT\00"
@.str.41 = [4 x i8] c"CCC\00"
@.str.42 = [4 x i8] c"CCA\00"
@.str.43 = [4 x i8] c"CCG\00"
@.str.44 = [4 x i8] c"TCT\00"
@.str.45 = [4 x i8] c"TCC\00"
@.str.46 = [4 x i8] c"TCA\00"
@.str.47 = [4 x i8] c"TCG\00"
@.str.48 = [4 x i8] c"AGT\00"
@.str.49 = [4 x i8] c"AGC\00"
@.str.50 = [4 x i8] c"ACT\00"
@.str.51 = [4 x i8] c"ACC\00"
@.str.52 = [4 x i8] c"ACA\00"
@.str.53 = [4 x i8] c"ACG\00"
@.str.54 = [4 x i8] c"TGG\00"
@.str.55 = [4 x i8] c"TAT\00"
@.str.56 = [4 x i8] c"TAC\00"
@.str.57 = [4 x i8] c"GTT\00"
@.str.58 = [4 x i8] c"GTC\00"
@.str.59 = [4 x i8] c"GTA\00"
@.str.60 = [4 x i8] c"GTG\00"
@.str.61 = [4 x i8] c"TAG\00"
@.str.62 = [4 x i8] c"TGA\00"
@.str.63 = [4 x i8] c"TAA\00"
@.str.64 = [37 x i8] c"nonsense character %s in fasta file\0A\00"
define signext i8 @codon_table(i8* %0) {
%2 = alloca i8*
%3 = alloca i8
store i8* %0, i8** %2
%4 = load i8*, i8** %2
%5 = call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%6 = icmp eq i64 %5, 0
br i1 %6, label %19, label %7
7: ; preds = %1
%8 = load i8*, i8** %2
%9 = call i64 @strcmp(i8* %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%10 = icmp eq i64 %9, 0
br i1 %10, label %19, label %11
11: ; preds = %7
%12 = load i8*, i8** %2
%13 = call i64 @strcmp(i8* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%14 = icmp eq i64 %13, 0
br i1 %14, label %19, label %15
15: ; preds = %11
%16 = load i8*, i8** %2
%17 = call i64 @strcmp(i8* %16, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%18 = icmp eq i64 %17, 0
br i1 %18, label %19, label %20
19: ; preds = %15, %11, %7, %1
store i8 65, i8* %3
br label %329
20: ; preds = %15
%21 = load i8*, i8** %2
%22 = call i64 @strcmp(i8* %21, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%23 = icmp eq i64 %22, 0
br i1 %23, label %44, label %24
24: ; preds = %20
%25 = load i8*, i8** %2
%26 = call i64 @strcmp(i8* %25, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%27 = icmp eq i64 %26, 0
br i1 %27, label %44, label %28
28: ; preds = %24
%29 = load i8*, i8** %2
%30 = call i64 @strcmp(i8* %29, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%31 = icmp eq i64 %30, 0
br i1 %31, label %44, label %32
32: ; preds = %28
%33 = load i8*, i8** %2
%34 = call i64 @strcmp(i8* %33, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%35 = icmp eq i64 %34, 0
br i1 %35, label %44, label %36
36: ; preds = %32
%37 = load i8*, i8** %2
%38 = call i64 @strcmp(i8* %37, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%39 = icmp eq i64 %38, 0
br i1 %39, label %44, label %40
40: ; preds = %36
%41 = load i8*, i8** %2
%42 = call i64 @strcmp(i8* %41, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%43 = icmp eq i64 %42, 0
br i1 %43, label %44, label %45
44: ; preds = %40, %36, %32, %28, %24, %20
store i8 82, i8* %3
br label %328
45: ; preds = %40
%46 = load i8*, i8** %2
%47 = call i64 @strcmp(i8* %46, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0))
%48 = icmp eq i64 %47, 0
br i1 %48, label %53, label %49
49: ; preds = %45
%50 = load i8*, i8** %2
%51 = call i64 @strcmp(i8* %50, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%52 = icmp eq i64 %51, 0
br i1 %52, label %53, label %54
53: ; preds = %49, %45
store i8 78, i8* %3
br label %327
54: ; preds = %49
%55 = load i8*, i8** %2
%56 = call i64 @strcmp(i8* %55, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
%57 = icmp eq i64 %56, 0
br i1 %57, label %62, label %58
58: ; preds = %54
%59 = load i8*, i8** %2
%60 = call i64 @strcmp(i8* %59, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%61 = icmp eq i64 %60, 0
br i1 %61, label %62, label %63
62: ; preds = %58, %54
store i8 68, i8* %3
br label %326
63: ; preds = %58
%64 = load i8*, i8** %2
%65 = call i64 @strcmp(i8* %64, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i64 0, i64 0))
%66 = icmp eq i64 %65, 0
br i1 %66, label %71, label %67
67: ; preds = %63
%68 = load i8*, i8** %2
%69 = call i64 @strcmp(i8* %68, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%70 = icmp eq i64 %69, 0
br i1 %70, label %71, label %72
71: ; preds = %67, %63
store i8 67, i8* %3
br label %325
72: ; preds = %67
%73 = load i8*, i8** %2
%74 = call i64 @strcmp(i8* %73, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%75 = icmp eq i64 %74, 0
br i1 %75, label %80, label %76
76: ; preds = %72
%77 = load i8*, i8** %2
%78 = call i64 @strcmp(i8* %77, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%79 = icmp eq i64 %78, 0
br i1 %79, label %80, label %81
80: ; preds = %76, %72
store i8 81, i8* %3
br label %324
81: ; preds = %76
%82 = load i8*, i8** %2
%83 = call i64 @strcmp(i8* %82, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%84 = icmp eq i64 %83, 0
br i1 %84, label %89, label %85
85: ; preds = %81
%86 = load i8*, i8** %2
%87 = call i64 @strcmp(i8* %86, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%88 = icmp eq i64 %87, 0
br i1 %88, label %89, label %90
89: ; preds = %85, %81
store i8 69, i8* %3
br label %323
90: ; preds = %85
%91 = load i8*, i8** %2
%92 = call i64 @strcmp(i8* %91, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%93 = icmp eq i64 %92, 0
br i1 %93, label %106, label %94
94: ; preds = %90
%95 = load i8*, i8** %2
%96 = call i64 @strcmp(i8* %95, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0))
%97 = icmp eq i64 %96, 0
br i1 %97, label %106, label %98
98: ; preds = %94
%99 = load i8*, i8** %2
%100 = call i64 @strcmp(i8* %99, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0))
%101 = icmp eq i64 %100, 0
br i1 %101, label %106, label %102
102: ; preds = %98
%103 = load i8*, i8** %2
%104 = call i64 @strcmp(i8* %103, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0))
%105 = icmp eq i64 %104, 0
br i1 %105, label %106, label %107
106: ; preds = %102, %98, %94, %90
store i8 71, i8* %3
br label %322
107: ; preds = %102
%108 = load i8*, i8** %2
%109 = call i64 @strcmp(i8* %108, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0))
%110 = icmp eq i64 %109, 0
br i1 %110, label %115, label %111
111: ; preds = %107
%112 = load i8*, i8** %2
%113 = call i64 @strcmp(i8* %112, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0))
%114 = icmp eq i64 %113, 0
br i1 %114, label %115, label %116
115: ; preds = %111, %107
store i8 72, i8* %3
br label %321
116: ; preds = %111
%117 = load i8*, i8** %2
%118 = call i64 @strcmp(i8* %117, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0))
%119 = icmp eq i64 %118, 0
br i1 %119, label %128, label %120
120: ; preds = %116
%121 = load i8*, i8** %2
%122 = call i64 @strcmp(i8* %121, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0))
%123 = icmp eq i64 %122, 0
br i1 %123, label %128, label %124
124: ; preds = %120
%125 = load i8*, i8** %2
%126 = call i64 @strcmp(i8* %125, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0))
%127 = icmp eq i64 %126, 0
br i1 %127, label %128, label %129
128: ; preds = %124, %120, %116
store i8 73, i8* %3
br label %320
129: ; preds = %124
%130 = load i8*, i8** %2
%131 = call i64 @strcmp(i8* %130, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%132 = icmp eq i64 %131, 0
br i1 %132, label %133, label %134
133: ; preds = %129
store i8 77, i8* %3
br label %319
134: ; preds = %129
%135 = load i8*, i8** %2
%136 = call i64 @strcmp(i8* %135, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%137 = icmp eq i64 %136, 0
br i1 %137, label %158, label %138
138: ; preds = %134
%139 = load i8*, i8** %2
%140 = call i64 @strcmp(i8* %139, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
%141 = icmp eq i64 %140, 0
br i1 %141, label %158, label %142
142: ; preds = %138
%143 = load i8*, i8** %2
%144 = call i64 @strcmp(i8* %143, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
%145 = icmp eq i64 %144, 0
br i1 %145, label %158, label %146
146: ; preds = %142
%147 = load i8*, i8** %2
%148 = call i64 @strcmp(i8* %147, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0))
%149 = icmp eq i64 %148, 0
br i1 %149, label %158, label %150
150: ; preds = %146
%151 = load i8*, i8** %2
%152 = call i64 @strcmp(i8* %151, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0))
%153 = icmp eq i64 %152, 0
br i1 %153, label %158, label %154
154: ; preds = %150
%155 = load i8*, i8** %2
%156 = call i64 @strcmp(i8* %155, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0))
%157 = icmp eq i64 %156, 0
br i1 %157, label %158, label %159
158: ; preds = %154, %150, %146, %142, %138, %134
store i8 76, i8* %3
br label %318
159: ; preds = %154
%160 = load i8*, i8** %2
%161 = call i64 @strcmp(i8* %160, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
%162 = icmp eq i64 %161, 0
br i1 %162, label %167, label %163
163: ; preds = %159
%164 = load i8*, i8** %2
%165 = call i64 @strcmp(i8* %164, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
%166 = icmp eq i64 %165, 0
br i1 %166, label %167, label %168
167: ; preds = %163, %159
store i8 75, i8* %3
br label %317
168: ; preds = %163
%169 = load i8*, i8** %2
%170 = call i64 @strcmp(i8* %169, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%171 = icmp eq i64 %170, 0
br i1 %171, label %172, label %173
172: ; preds = %168
store i8 77, i8* %3
br label %316
173: ; preds = %168
%174 = load i8*, i8** %2
%175 = call i64 @strcmp(i8* %174, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%176 = icmp eq i64 %175, 0
br i1 %176, label %181, label %177
177: ; preds = %173
%178 = load i8*, i8** %2
%179 = call i64 @strcmp(i8* %178, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i64 0, i64 0))
%180 = icmp eq i64 %179, 0
br i1 %180, label %181, label %182
181: ; preds = %177, %173
store i8 70, i8* %3
br label %315
182: ; preds = %177
%183 = load i8*, i8** %2
%184 = call i64 @strcmp(i8* %183, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0))
%185 = icmp eq i64 %184, 0
br i1 %185, label %198, label %186
186: ; preds = %182
%187 = load i8*, i8** %2
%188 = call i64 @strcmp(i8* %187, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.41, i64 0, i64 0))
%189 = icmp eq i64 %188, 0
br i1 %189, label %198, label %190
190: ; preds = %186
%191 = load i8*, i8** %2
%192 = call i64 @strcmp(i8* %191, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i64 0, i64 0))
%193 = icmp eq i64 %192, 0
br i1 %193, label %198, label %194
194: ; preds = %190
%195 = load i8*, i8** %2
%196 = call i64 @strcmp(i8* %195, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0))
%197 = icmp eq i64 %196, 0
br i1 %197, label %198, label %199
198: ; preds = %194, %190, %186, %182
store i8 80, i8* %3
br label %314
199: ; preds = %194
%200 = load i8*, i8** %2
%201 = call i64 @strcmp(i8* %200, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0))
%202 = icmp eq i64 %201, 0
br i1 %202, label %223, label %203
203: ; preds = %199
%204 = load i8*, i8** %2
%205 = call i64 @strcmp(i8* %204, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i64 0, i64 0))
%206 = icmp eq i64 %205, 0
br i1 %206, label %223, label %207
207: ; preds = %203
%208 = load i8*, i8** %2
%209 = call i64 @strcmp(i8* %208, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0))
%210 = icmp eq i64 %209, 0
br i1 %210, label %223, label %211
211: ; preds = %207
%212 = load i8*, i8** %2
%213 = call i64 @strcmp(i8* %212, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0))
%214 = icmp eq i64 %213, 0
br i1 %214, label %223, label %215
215: ; preds = %211
%216 = load i8*, i8** %2
%217 = call i64 @strcmp(i8* %216, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.48, i64 0, i64 0))
%218 = icmp eq i64 %217, 0
br i1 %218, label %223, label %219
219: ; preds = %215
%220 = load i8*, i8** %2
%221 = call i64 @strcmp(i8* %220, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0))
%222 = icmp eq i64 %221, 0
br i1 %222, label %223, label %224
223: ; preds = %219, %215, %211, %207, %203, %199
store i8 83, i8* %3
br label %313
224: ; preds = %219
%225 = load i8*, i8** %2
%226 = call i64 @strcmp(i8* %225, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0))
%227 = icmp eq i64 %226, 0
br i1 %227, label %240, label %228
228: ; preds = %224
%229 = load i8*, i8** %2
%230 = call i64 @strcmp(i8* %229, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0))
%231 = icmp eq i64 %230, 0
br i1 %231, label %240, label %232
232: ; preds = %228
%233 = load i8*, i8** %2
%234 = call i64 @strcmp(i8* %233, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%235 = icmp eq i64 %234, 0
br i1 %235, label %240, label %236
236: ; preds = %232
%237 = load i8*, i8** %2
%238 = call i64 @strcmp(i8* %237, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.53, i64 0, i64 0))
%239 = icmp eq i64 %238, 0
br i1 %239, label %240, label %241
240: ; preds = %236, %232, %228, %224
store i8 84, i8* %3
br label %312
241: ; preds = %236
%242 = load i8*, i8** %2
%243 = call i64 @strcmp(i8* %242, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.54, i64 0, i64 0))
%244 = icmp eq i64 %243, 0
br i1 %244, label %245, label %246
245: ; preds = %241
store i8 87, i8* %3
br label %311
246: ; preds = %241
%247 = load i8*, i8** %2
%248 = call i64 @strcmp(i8* %247, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
%249 = icmp eq i64 %248, 0
br i1 %249, label %254, label %250
250: ; preds = %246
%251 = load i8*, i8** %2
%252 = call i64 @strcmp(i8* %251, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.56, i64 0, i64 0))
%253 = icmp eq i64 %252, 0
br i1 %253, label %254, label %255
254: ; preds = %250, %246
store i8 89, i8* %3
br label %310
255: ; preds = %250
%256 = load i8*, i8** %2
%257 = call i64 @strcmp(i8* %256, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0))
%258 = icmp eq i64 %257, 0
br i1 %258, label %271, label %259
259: ; preds = %255
%260 = load i8*, i8** %2
%261 = call i64 @strcmp(i8* %260, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.58, i64 0, i64 0))
%262 = icmp eq i64 %261, 0
br i1 %262, label %271, label %263
263: ; preds = %259
%264 = load i8*, i8** %2
%265 = call i64 @strcmp(i8* %264, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0))
%266 = icmp eq i64 %265, 0
br i1 %266, label %271, label %267
267: ; preds = %263
%268 = load i8*, i8** %2
%269 = call i64 @strcmp(i8* %268, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0))
%270 = icmp eq i64 %269, 0
br i1 %270, label %271, label %272
271: ; preds = %267, %263, %259, %255
store i8 86, i8* %3
br label %309
272: ; preds = %267
%273 = load i8*, i8** %2
%274 = call i64 @strcmp(i8* %273, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0))
%275 = icmp eq i64 %274, 0
br i1 %275, label %284, label %276
276: ; preds = %272
%277 = load i8*, i8** %2
%278 = call i64 @strcmp(i8* %277, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.62, i64 0, i64 0))
%279 = icmp eq i64 %278, 0
br i1 %279, label %284, label %280
280: ; preds = %276
%281 = load i8*, i8** %2
%282 = call i64 @strcmp(i8* %281, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.63, i64 0, i64 0))
%283 = icmp eq i64 %282, 0
br i1 %283, label %284, label %285
284: ; preds = %280, %276, %272
store i8 42, i8* %3
br label %308
285: ; preds = %280
%286 = load i8*, i8** %2
%287 = getelementptr inbounds i8, i8* %286, i64 0
%288 = load i8, i8* %287
%289 = sext i8 %288 to i32
%290 = icmp eq i32 %289, 78
br i1 %290, label %303, label %291
291: ; preds = %285
%292 = load i8*, i8** %2
%293 = getelementptr inbounds i8, i8* %292, i64 1
%294 = load i8, i8* %293
%295 = sext i8 %294 to i32
%296 = icmp eq i32 %295, 78
br i1 %296, label %303, label %297
297: ; preds = %291
%298 = load i8*, i8** %2
%299 = getelementptr inbounds i8, i8* %298, i64 2
%300 = load i8, i8* %299
%301 = sext i8 %300 to i32
%302 = icmp eq i32 %301, 78
br i1 %302, label %303, label %304
303: ; preds = %297, %291, %285
store i8 88, i8* %3
br label %307
304: ; preds = %297
store i8 88, i8* %3
%305 = load i8*, i8** %2
%306 = call i32 @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.64, i64 0, i64 0), i8* %305)
br label %307
307: ; preds = %304, %303
br label %308
308: ; preds = %307, %284
br label %309
309: ; preds = %308, %271
br label %310
310: ; preds = %309, %254
br label %311
311: ; preds = %310, %245
br label %312
312: ; preds = %311, %240
br label %313
313: ; preds = %312, %223
br label %314
314: ; preds = %313, %198
br label %315
315: ; preds = %314, %181
br label %316
316: ; preds = %315, %172
br label %317
317: ; preds = %316, %167
br label %318
318: ; preds = %317, %158
br label %319
319: ; preds = %318, %133
br label %320
320: ; preds = %319, %128
br label %321
321: ; preds = %320, %115
br label %322
322: ; preds = %321, %106
br label %323
323: ; preds = %322, %89
br label %324
324: ; preds = %323, %80
br label %325
325: ; preds = %324, %71
br label %326
326: ; preds = %325, %62
br label %327
327: ; preds = %326, %53
br label %328
328: ; preds = %327, %44
br label %329
329: ; preds = %328, %19
%330 = load i8, i8* %3
ret i8 %330
}

LLVM IR (-O2):
@.str = [4 x i8] c"GCT\00"
@.str.1 = [4 x i8] c"GCC\00"
@.str.2 = [4 x i8] c"GCA\00"
@.str.3 = [4 x i8] c"GCG\00"
@.str.4 = [4 x i8] c"CGT\00"
@.str.5 = [4 x i8] c"CGC\00"
@.str.6 = [4 x i8] c"CGA\00"
@.str.7 = [4 x i8] c"CGG\00"
@.str.8 = [4 x i8] c"AGA\00"
@.str.9 = [4 x i8] c"AGG\00"
@.str.10 = [4 x i8] c"AAT\00"
@.str.11 = [4 x i8] c"AAC\00"
@.str.12 = [4 x i8] c"GAT\00"
@.str.13 = [4 x i8] c"GAC\00"
@.str.14 = [4 x i8] c"TGT\00"
@.str.15 = [4 x i8] c"TGC\00"
@.str.16 = [4 x i8] c"CAA\00"
@.str.17 = [4 x i8] c"CAG\00"
@.str.18 = [4 x i8] c"GAA\00"
@.str.19 = [4 x i8] c"GAG\00"
@.str.20 = [4 x i8] c"GGT\00"
@.str.21 = [4 x i8] c"GGC\00"
@.str.22 = [4 x i8] c"GGA\00"
@.str.23 = [4 x i8] c"GGG\00"
@.str.24 = [4 x i8] c"CAT\00"
@.str.25 = [4 x i8] c"CAC\00"
@.str.26 = [4 x i8] c"ATT\00"
@.str.27 = [4 x i8] c"ATC\00"
@.str.28 = [4 x i8] c"ATA\00"
@.str.29 = [4 x i8] c"ATG\00"
@.str.30 = [4 x i8] c"TTA\00"
@.str.31 = [4 x i8] c"TTG\00"
@.str.32 = [4 x i8] c"CTT\00"
@.str.33 = [4 x i8] c"CTC\00"
@.str.34 = [4 x i8] c"CTA\00"
@.str.35 = [4 x i8] c"CTG\00"
@.str.36 = [4 x i8] c"AAA\00"
@.str.37 = [4 x i8] c"AAG\00"
@.str.38 = [4 x i8] c"TTT\00"
@.str.39 = [4 x i8] c"TTC\00"
@.str.40 = [4 x i8] c"CCT\00"
@.str.41 = [4 x i8] c"CCC\00"
@.str.42 = [4 x i8] c"CCA\00"
@.str.43 = [4 x i8] c"CCG\00"
@.str.44 = [4 x i8] c"TCT\00"
@.str.45 = [4 x i8] c"TCC\00"
@.str.46 = [4 x i8] c"TCA\00"
@.str.47 = [4 x i8] c"TCG\00"
@.str.48 = [4 x i8] c"AGT\00"
@.str.49 = [4 x i8] c"AGC\00"
@.str.50 = [4 x i8] c"ACT\00"
@.str.51 = [4 x i8] c"ACC\00"
@.str.52 = [4 x i8] c"ACA\00"
@.str.53 = [4 x i8] c"ACG\00"
@.str.54 = [4 x i8] c"TGG\00"
@.str.55 = [4 x i8] c"TAT\00"
@.str.56 = [4 x i8] c"TAC\00"
@.str.57 = [4 x i8] c"GTT\00"
@.str.58 = [4 x i8] c"GTC\00"
@.str.59 = [4 x i8] c"GTA\00"
@.str.60 = [4 x i8] c"GTG\00"
@.str.61 = [4 x i8] c"TAG\00"
@.str.62 = [4 x i8] c"TGA\00"
@.str.63 = [4 x i8] c"TAA\00"
@.str.64 = [37 x i8] c"nonsense character %s in fasta file\0A\00"
define signext i8 @codon_table(i8* %0) {
%2 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%3 = icmp eq i64 %2, 0
br i1 %3, label %209, label %4
4: ; preds = %1
%5 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%6 = icmp eq i64 %5, 0
br i1 %6, label %209, label %7
7: ; preds = %4
%8 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%9 = icmp eq i64 %8, 0
br i1 %9, label %209, label %10
10: ; preds = %7
%11 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%12 = icmp eq i64 %11, 0
br i1 %12, label %209, label %13
13: ; preds = %10
%14 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%15 = icmp eq i64 %14, 0
br i1 %15, label %209, label %16
16: ; preds = %13
%17 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%18 = icmp eq i64 %17, 0
br i1 %18, label %209, label %19
19: ; preds = %16
%20 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%21 = icmp eq i64 %20, 0
br i1 %21, label %209, label %22
22: ; preds = %19
%23 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%24 = icmp eq i64 %23, 0
br i1 %24, label %209, label %25
25: ; preds = %22
%26 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%27 = icmp eq i64 %26, 0
br i1 %27, label %209, label %28
28: ; preds = %25
%29 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%30 = icmp eq i64 %29, 0
br i1 %30, label %209, label %31
31: ; preds = %28
%32 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0))
%33 = icmp eq i64 %32, 0
br i1 %33, label %209, label %34
34: ; preds = %31
%35 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%36 = icmp eq i64 %35, 0
br i1 %36, label %209, label %37
37: ; preds = %34
%38 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
%39 = icmp eq i64 %38, 0
br i1 %39, label %209, label %40
40: ; preds = %37
%41 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%42 = icmp eq i64 %41, 0
br i1 %42, label %209, label %43
43: ; preds = %40
%44 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i64 0, i64 0))
%45 = icmp eq i64 %44, 0
br i1 %45, label %209, label %46
46: ; preds = %43
%47 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%48 = icmp eq i64 %47, 0
br i1 %48, label %209, label %49
49: ; preds = %46
%50 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%51 = icmp eq i64 %50, 0
br i1 %51, label %209, label %52
52: ; preds = %49
%53 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%54 = icmp eq i64 %53, 0
br i1 %54, label %209, label %55
55: ; preds = %52
%56 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%57 = icmp eq i64 %56, 0
br i1 %57, label %209, label %58
58: ; preds = %55
%59 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%60 = icmp eq i64 %59, 0
br i1 %60, label %209, label %61
61: ; preds = %58
%62 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%63 = icmp eq i64 %62, 0
br i1 %63, label %209, label %64
64: ; preds = %61
%65 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0))
%66 = icmp eq i64 %65, 0
br i1 %66, label %209, label %67
67: ; preds = %64
%68 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0))
%69 = icmp eq i64 %68, 0
br i1 %69, label %209, label %70
70: ; preds = %67
%71 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0))
%72 = icmp eq i64 %71, 0
br i1 %72, label %209, label %73
73: ; preds = %70
%74 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0))
%75 = icmp eq i64 %74, 0
br i1 %75, label %209, label %76
76: ; preds = %73
%77 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0))
%78 = icmp eq i64 %77, 0
br i1 %78, label %209, label %79
79: ; preds = %76
%80 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0))
%81 = icmp eq i64 %80, 0
br i1 %81, label %209, label %82
82: ; preds = %79
%83 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0))
%84 = icmp eq i64 %83, 0
br i1 %84, label %209, label %85
85: ; preds = %82
%86 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0))
%87 = icmp eq i64 %86, 0
br i1 %87, label %209, label %88
88: ; preds = %85
%89 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%90 = icmp eq i64 %89, 0
br i1 %90, label %209, label %91
91: ; preds = %88
%92 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%93 = icmp eq i64 %92, 0
br i1 %93, label %209, label %94
94: ; preds = %91
%95 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
%96 = icmp eq i64 %95, 0
br i1 %96, label %209, label %97
97: ; preds = %94
%98 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
%99 = icmp eq i64 %98, 0
br i1 %99, label %209, label %100
100: ; preds = %97
%101 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0))
%102 = icmp eq i64 %101, 0
br i1 %102, label %209, label %103
103: ; preds = %100
%104 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0))
%105 = icmp eq i64 %104, 0
br i1 %105, label %209, label %106
106: ; preds = %103
%107 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0))
%108 = icmp eq i64 %107, 0
br i1 %108, label %209, label %109
109: ; preds = %106
%110 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
%111 = icmp eq i64 %110, 0
br i1 %111, label %209, label %112
112: ; preds = %109
%113 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
%114 = icmp eq i64 %113, 0
br i1 %114, label %209, label %115
115: ; preds = %112
%116 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%117 = icmp eq i64 %116, 0
br i1 %117, label %209, label %118
118: ; preds = %115
%119 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%120 = icmp eq i64 %119, 0
br i1 %120, label %209, label %121
121: ; preds = %118
%122 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i64 0, i64 0))
%123 = icmp eq i64 %122, 0
br i1 %123, label %209, label %124
124: ; preds = %121
%125 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0))
%126 = icmp eq i64 %125, 0
br i1 %126, label %209, label %127
127: ; preds = %124
%128 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.41, i64 0, i64 0))
%129 = icmp eq i64 %128, 0
br i1 %129, label %209, label %130
130: ; preds = %127
%131 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i64 0, i64 0))
%132 = icmp eq i64 %131, 0
br i1 %132, label %209, label %133
133: ; preds = %130
%134 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0))
%135 = icmp eq i64 %134, 0
br i1 %135, label %209, label %136
136: ; preds = %133
%137 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0))
%138 = icmp eq i64 %137, 0
br i1 %138, label %209, label %139
139: ; preds = %136
%140 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i64 0, i64 0))
%141 = icmp eq i64 %140, 0
br i1 %141, label %209, label %142
142: ; preds = %139
%143 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0))
%144 = icmp eq i64 %143, 0
br i1 %144, label %209, label %145
145: ; preds = %142
%146 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0))
%147 = icmp eq i64 %146, 0
br i1 %147, label %209, label %148
148: ; preds = %145
%149 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.48, i64 0, i64 0))
%150 = icmp eq i64 %149, 0
br i1 %150, label %209, label %151
151: ; preds = %148
%152 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0))
%153 = icmp eq i64 %152, 0
br i1 %153, label %209, label %154
154: ; preds = %151
%155 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0))
%156 = icmp eq i64 %155, 0
br i1 %156, label %209, label %157
157: ; preds = %154
%158 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0))
%159 = icmp eq i64 %158, 0
br i1 %159, label %209, label %160
160: ; preds = %157
%161 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%162 = icmp eq i64 %161, 0
br i1 %162, label %209, label %163
163: ; preds = %160
%164 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.53, i64 0, i64 0))
%165 = icmp eq i64 %164, 0
br i1 %165, label %209, label %166
166: ; preds = %163
%167 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.54, i64 0, i64 0))
%168 = icmp eq i64 %167, 0
br i1 %168, label %209, label %169
169: ; preds = %166
%170 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
%171 = icmp eq i64 %170, 0
br i1 %171, label %209, label %172
172: ; preds = %169
%173 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.56, i64 0, i64 0))
%174 = icmp eq i64 %173, 0
br i1 %174, label %209, label %175
175: ; preds = %172
%176 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0))
%177 = icmp eq i64 %176, 0
br i1 %177, label %209, label %178
178: ; preds = %175
%179 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.58, i64 0, i64 0))
%180 = icmp eq i64 %179, 0
br i1 %180, label %209, label %181
181: ; preds = %178
%182 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0))
%183 = icmp eq i64 %182, 0
br i1 %183, label %209, label %184
184: ; preds = %181
%185 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0))
%186 = icmp eq i64 %185, 0
br i1 %186, label %209, label %187
187: ; preds = %184
%188 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0))
%189 = icmp eq i64 %188, 0
br i1 %189, label %209, label %190
190: ; preds = %187
%191 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.62, i64 0, i64 0))
%192 = icmp eq i64 %191, 0
br i1 %192, label %209, label %193
193: ; preds = %190
%194 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.63, i64 0, i64 0))
%195 = icmp eq i64 %194, 0
br i1 %195, label %209, label %196
196: ; preds = %193
%197 = load i8, i8* %0
%198 = icmp eq i8 %197, 78
br i1 %198, label %209, label %199
199: ; preds = %196
%200 = getelementptr inbounds i8, i8* %0, i64 1
%201 = load i8, i8* %200
%202 = icmp eq i8 %201, 78
br i1 %202, label %209, label %203
203: ; preds = %199
%204 = getelementptr inbounds i8, i8* %0, i64 2
%205 = load i8, i8* %204
%206 = icmp eq i8 %205, 78
br i1 %206, label %209, label %207
207: ; preds = %203
%208 = tail call i32 @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.64, i64 0, i64 0), i8* %0)
br label %209
209: ; preds = %196, %199, %203, %187, %190, %193, %175, %178, %181, %184, %169, %172, %166, %154, %157, %160, %163, %136, %139, %142, %145, %148, %151, %124, %127, %130, %133, %118, %121, %115, %109, %112, %91, %94, %97, %100, %103, %106, %88, %79, %82, %85, %73, %76, %61, %64, %67, %70, %55, %58, %49, %52, %43, %46, %37, %40, %31, %34, %13, %16, %19, %22, %25, %28, %1, %4, %7, %10, %207
%210 = phi i8 [ 88, %207 ], [ 65, %10 ], [ 65, %7 ], [ 65, %4 ], [ 65, %1 ], [ 82, %28 ], [ 82, %25 ], [ 82, %22 ], [ 82, %19 ], [ 82, %16 ], [ 82, %13 ], [ 78, %34 ], [ 78, %31 ], [ 68, %40 ], [ 68, %37 ], [ 67, %46 ], [ 67, %43 ], [ 81, %52 ], [ 81, %49 ], [ 69, %58 ], [ 69, %55 ], [ 71, %70 ], [ 71, %67 ], [ 71, %64 ], [ 71, %61 ], [ 72, %76 ], [ 72, %73 ], [ 73, %85 ], [ 73, %82 ], [ 73, %79 ], [ 77, %88 ], [ 76, %106 ], [ 76, %103 ], [ 76, %100 ], [ 76, %97 ], [ 76, %94 ], [ 76, %91 ], [ 75, %112 ], [ 75, %109 ], [ 77, %115 ], [ 70, %121 ], [ 70, %118 ], [ 80, %133 ], [ 80, %130 ], [ 80, %127 ], [ 80, %124 ], [ 83, %151 ], [ 83, %148 ], [ 83, %145 ], [ 83, %142 ], [ 83, %139 ], [ 83, %136 ], [ 84, %163 ], [ 84, %160 ], [ 84, %157 ], [ 84, %154 ], [ 87, %166 ], [ 89, %172 ], [ 89, %169 ], [ 86, %184 ], [ 86, %181 ], [ 86, %178 ], [ 86, %175 ], [ 42, %193 ], [ 42, %190 ], [ 42, %187 ], [ 88, %203 ], [ 88, %199 ], [ 88, %196 ]
ret i8 %210
}