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';
    }
  }
  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    0xed9(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1180 <codon_table+0x70>
mov    -0x8(%rbp),%rdi
lea    0xec4(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1180 <codon_table+0x70>
mov    -0x8(%rbp),%rdi
lea    0xeaf(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1180 <codon_table+0x70>
mov    -0x8(%rbp),%rdi
lea    0xe9a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1189 <codon_table+0x79>
movb   $0x41,-0x9(%rbp)
jmp    18e8 <codon_table+0x7d8>
mov    -0x8(%rbp),%rdi
lea    0xe7c(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     121f <codon_table+0x10f>
mov    -0x8(%rbp),%rdi
lea    0xe67(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     121f <codon_table+0x10f>
mov    -0x8(%rbp),%rdi
lea    0xe52(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     121f <codon_table+0x10f>
mov    -0x8(%rbp),%rdi
lea    0xe3d(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     121f <codon_table+0x10f>
mov    -0x8(%rbp),%rdi
lea    0xe28(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     121f <codon_table+0x10f>
mov    -0x8(%rbp),%rdi
lea    0xe13(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1228 <codon_table+0x118>
movb   $0x52,-0x9(%rbp)
jmp    18e3 <codon_table+0x7d3>
mov    -0x8(%rbp),%rdi
lea    0xdf5(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     125a <codon_table+0x14a>
mov    -0x8(%rbp),%rdi
lea    0xde0(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1263 <codon_table+0x153>
movb   $0x4e,-0x9(%rbp)
jmp    18de <codon_table+0x7ce>
mov    -0x8(%rbp),%rdi
lea    0xdc2(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1295 <codon_table+0x185>
mov    -0x8(%rbp),%rdi
lea    0xdad(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    129e <codon_table+0x18e>
movb   $0x44,-0x9(%rbp)
jmp    18d9 <codon_table+0x7c9>
mov    -0x8(%rbp),%rdi
lea    0xd8f(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     12d0 <codon_table+0x1c0>
mov    -0x8(%rbp),%rdi
lea    0xd7a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    12d9 <codon_table+0x1c9>
movb   $0x43,-0x9(%rbp)
jmp    18d4 <codon_table+0x7c4>
mov    -0x8(%rbp),%rdi
lea    0xd5c(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     130b <codon_table+0x1fb>
mov    -0x8(%rbp),%rdi
lea    0xd47(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1314 <codon_table+0x204>
movb   $0x51,-0x9(%rbp)
jmp    18cf <codon_table+0x7bf>
mov    -0x8(%rbp),%rdi
lea    0xd29(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1346 <codon_table+0x236>
mov    -0x8(%rbp),%rdi
lea    0xd14(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    134f <codon_table+0x23f>
movb   $0x45,-0x9(%rbp)
jmp    18ca <codon_table+0x7ba>
mov    -0x8(%rbp),%rdi
lea    0xcf6(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     13b3 <codon_table+0x2a3>
mov    -0x8(%rbp),%rdi
lea    0xce1(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     13b3 <codon_table+0x2a3>
mov    -0x8(%rbp),%rdi
lea    0xccc(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     13b3 <codon_table+0x2a3>
mov    -0x8(%rbp),%rdi
lea    0xcb7(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    13bc <codon_table+0x2ac>
movb   $0x47,-0x9(%rbp)
jmp    18c5 <codon_table+0x7b5>
mov    -0x8(%rbp),%rdi
lea    0xc99(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     13ee <codon_table+0x2de>
mov    -0x8(%rbp),%rdi
lea    0xc84(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    13f7 <codon_table+0x2e7>
movb   $0x48,-0x9(%rbp)
jmp    18c0 <codon_table+0x7b0>
mov    -0x8(%rbp),%rdi
lea    0xc66(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1442 <codon_table+0x332>
mov    -0x8(%rbp),%rdi
lea    0xc51(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1442 <codon_table+0x332>
mov    -0x8(%rbp),%rdi
lea    0xc3c(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    144b <codon_table+0x33b>
movb   $0x49,-0x9(%rbp)
jmp    18bb <codon_table+0x7ab>
mov    -0x8(%rbp),%rdi
lea    0xc1e(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    146d <codon_table+0x35d>
movb   $0x4d,-0x9(%rbp)
jmp    18b6 <codon_table+0x7a6>
mov    -0x8(%rbp),%rdi
lea    0xc00(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1503 <codon_table+0x3f3>
mov    -0x8(%rbp),%rdi
lea    0xbeb(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1503 <codon_table+0x3f3>
mov    -0x8(%rbp),%rdi
lea    0xbd6(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1503 <codon_table+0x3f3>
mov    -0x8(%rbp),%rdi
lea    0xbc1(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1503 <codon_table+0x3f3>
mov    -0x8(%rbp),%rdi
lea    0xbac(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1503 <codon_table+0x3f3>
mov    -0x8(%rbp),%rdi
lea    0xb97(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    150c <codon_table+0x3fc>
movb   $0x4c,-0x9(%rbp)
jmp    18b1 <codon_table+0x7a1>
mov    -0x8(%rbp),%rdi
lea    0xb79(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     153e <codon_table+0x42e>
mov    -0x8(%rbp),%rdi
lea    0xb64(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1547 <codon_table+0x437>
movb   $0x4b,-0x9(%rbp)
jmp    18ac <codon_table+0x79c>
mov    -0x8(%rbp),%rdi
lea    0xb22(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1569 <codon_table+0x459>
movb   $0x4d,-0x9(%rbp)
jmp    18a7 <codon_table+0x797>
mov    -0x8(%rbp),%rdi
lea    0xb24(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     159b <codon_table+0x48b>
mov    -0x8(%rbp),%rdi
lea    0xb0f(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    15a4 <codon_table+0x494>
movb   $0x46,-0x9(%rbp)
jmp    18a2 <codon_table+0x792>
mov    -0x8(%rbp),%rdi
lea    0xaf1(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1608 <codon_table+0x4f8>
mov    -0x8(%rbp),%rdi
lea    0xadc(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1608 <codon_table+0x4f8>
mov    -0x8(%rbp),%rdi
lea    0xac7(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1608 <codon_table+0x4f8>
mov    -0x8(%rbp),%rdi
lea    0xab2(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1611 <codon_table+0x501>
movb   $0x50,-0x9(%rbp)
jmp    189d <codon_table+0x78d>
mov    -0x8(%rbp),%rdi
lea    0xa94(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     16a7 <codon_table+0x597>
mov    -0x8(%rbp),%rdi
lea    0xa7f(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     16a7 <codon_table+0x597>
mov    -0x8(%rbp),%rdi
lea    0xa6a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     16a7 <codon_table+0x597>
mov    -0x8(%rbp),%rdi
lea    0xa55(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     16a7 <codon_table+0x597>
mov    -0x8(%rbp),%rdi
lea    0xa40(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     16a7 <codon_table+0x597>
mov    -0x8(%rbp),%rdi
lea    0xa2b(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    16b0 <codon_table+0x5a0>
movb   $0x53,-0x9(%rbp)
jmp    1898 <codon_table+0x788>
mov    -0x8(%rbp),%rdi
lea    0xa0d(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1714 <codon_table+0x604>
mov    -0x8(%rbp),%rdi
lea    0x9f8(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1714 <codon_table+0x604>
mov    -0x8(%rbp),%rdi
lea    0x9e3(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1714 <codon_table+0x604>
mov    -0x8(%rbp),%rdi
lea    0x9ce(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    171d <codon_table+0x60d>
movb   $0x54,-0x9(%rbp)
jmp    1893 <codon_table+0x783>
mov    -0x8(%rbp),%rdi
lea    0x9b0(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    173f <codon_table+0x62f>
movb   $0x57,-0x9(%rbp)
jmp    188e <codon_table+0x77e>
mov    -0x8(%rbp),%rdi
lea    0x992(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1771 <codon_table+0x661>
mov    -0x8(%rbp),%rdi
lea    0x97d(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    177a <codon_table+0x66a>
movb   $0x59,-0x9(%rbp)
jmp    1889 <codon_table+0x779>
mov    -0x8(%rbp),%rdi
lea    0x95f(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     17de <codon_table+0x6ce>
mov    -0x8(%rbp),%rdi
lea    0x94a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     17de <codon_table+0x6ce>
mov    -0x8(%rbp),%rdi
lea    0x935(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     17de <codon_table+0x6ce>
mov    -0x8(%rbp),%rdi
lea    0x920(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    17e7 <codon_table+0x6d7>
movb   $0x56,-0x9(%rbp)
jmp    1884 <codon_table+0x774>
mov    -0x8(%rbp),%rdi
lea    0x902(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1832 <codon_table+0x722>
mov    -0x8(%rbp),%rdi
lea    0x8ed(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
je     1832 <codon_table+0x722>
mov    -0x8(%rbp),%rdi
lea    0x8d8(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    183b <codon_table+0x72b>
movb   $0x2a,-0x9(%rbp)
jmp    187f <codon_table+0x76f>
mov    -0x8(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x4e,%eax
je     186d <codon_table+0x75d>
mov    -0x8(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x4e,%eax
je     186d <codon_table+0x75d>
mov    -0x8(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4e,%eax
jne    1876 <codon_table+0x766>
movb   $0x58,-0x9(%rbp)
jmp    187a <codon_table+0x76a>
movb   $0x58,-0x9(%rbp)
jmp    187f <codon_table+0x76f>
jmp    1884 <codon_table+0x774>
jmp    1889 <codon_table+0x779>
jmp    188e <codon_table+0x77e>
jmp    1893 <codon_table+0x783>
jmp    1898 <codon_table+0x788>
jmp    189d <codon_table+0x78d>
jmp    18a2 <codon_table+0x792>
jmp    18a7 <codon_table+0x797>
jmp    18ac <codon_table+0x79c>
jmp    18b1 <codon_table+0x7a1>
jmp    18b6 <codon_table+0x7a6>
jmp    18bb <codon_table+0x7ab>
jmp    18c0 <codon_table+0x7b0>
jmp    18c5 <codon_table+0x7b5>
jmp    18ca <codon_table+0x7ba>
jmp    18cf <codon_table+0x7bf>
jmp    18d4 <codon_table+0x7c4>
jmp    18d9 <codon_table+0x7c9>
jmp    18de <codon_table+0x7ce>
jmp    18e3 <codon_table+0x7d3>
jmp    18e8 <codon_table+0x7d8>
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    0xee3(%rip),%rsi
call   1030 <strcmp@plt>
mov    $0x41,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xed0(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xebd(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xeaa(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe97(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x52,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe81(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe6e(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe5b(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe48(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe35(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe22(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x4e,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xe0c(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xdf9(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x44,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xde3(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xdd0(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x43,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xdba(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xda7(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x51,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd91(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd7e(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x45,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd68(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd55(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x47,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd3f(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd2c(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd19(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xd06(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x48,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xcf0(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xcdd(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x49,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xcc7(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xcb4(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xca1(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1701 <codon_table+0x5f1>
lea    0xc8e(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x4c,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xc78(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xc65(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xc52(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xc3f(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xc2c(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xc19(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x4b,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xc03(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xbf0(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x46,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xbda(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xbc7(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x50,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xbb1(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb9e(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb8b(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb78(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x53,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb62(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb4f(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb3c(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb29(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb16(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xb03(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x54,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xaed(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xada(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xac7(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xab4(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     170d <codon_table+0x5fd>
lea    0xaa1(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x59,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa8b(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa78(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x56,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa62(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa53(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa44(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa35(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
mov    $0x2a,%bpl
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa23(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1704 <codon_table+0x5f4>
lea    0xa14(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
mov    $0x2a,%eax
mov    $0x58,%ebp
cmove  %eax,%ebp
jmp    1704 <codon_table+0x5f4>
mov    $0x4d,%bpl
mov    %ebp,%eax
add    $0x8,%rsp
pop    %rbx
pop    %rbp
ret
mov    $0x57,%bpl
jmp    1704 <codon_table+0x5f4>

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"
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 i32 @strcmp(i8* %4, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%6 = icmp eq i32 %5, 0
br i1 %6, label %19, label %7
7: ; preds = %1
%8 = load i8*, i8** %2
%9 = call i32 @strcmp(i8* %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%10 = icmp eq i32 %9, 0
br i1 %10, label %19, label %11
11: ; preds = %7
%12 = load i8*, i8** %2
%13 = call i32 @strcmp(i8* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%14 = icmp eq i32 %13, 0
br i1 %14, label %19, label %15
15: ; preds = %11
%16 = load i8*, i8** %2
%17 = call i32 @strcmp(i8* %16, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%18 = icmp eq i32 %17, 0
br i1 %18, label %19, label %20
19: ; preds = %15, %11, %7, %1
store i8 65, i8* %3
br label %327
20: ; preds = %15
%21 = load i8*, i8** %2
%22 = call i32 @strcmp(i8* %21, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%23 = icmp eq i32 %22, 0
br i1 %23, label %44, label %24
24: ; preds = %20
%25 = load i8*, i8** %2
%26 = call i32 @strcmp(i8* %25, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%27 = icmp eq i32 %26, 0
br i1 %27, label %44, label %28
28: ; preds = %24
%29 = load i8*, i8** %2
%30 = call i32 @strcmp(i8* %29, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%31 = icmp eq i32 %30, 0
br i1 %31, label %44, label %32
32: ; preds = %28
%33 = load i8*, i8** %2
%34 = call i32 @strcmp(i8* %33, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%35 = icmp eq i32 %34, 0
br i1 %35, label %44, label %36
36: ; preds = %32
%37 = load i8*, i8** %2
%38 = call i32 @strcmp(i8* %37, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%39 = icmp eq i32 %38, 0
br i1 %39, label %44, label %40
40: ; preds = %36
%41 = load i8*, i8** %2
%42 = call i32 @strcmp(i8* %41, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%43 = icmp eq i32 %42, 0
br i1 %43, label %44, label %45
44: ; preds = %40, %36, %32, %28, %24, %20
store i8 82, i8* %3
br label %326
45: ; preds = %40
%46 = load i8*, i8** %2
%47 = call i32 @strcmp(i8* %46, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0))
%48 = icmp eq i32 %47, 0
br i1 %48, label %53, label %49
49: ; preds = %45
%50 = load i8*, i8** %2
%51 = call i32 @strcmp(i8* %50, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%52 = icmp eq i32 %51, 0
br i1 %52, label %53, label %54
53: ; preds = %49, %45
store i8 78, i8* %3
br label %325
54: ; preds = %49
%55 = load i8*, i8** %2
%56 = call i32 @strcmp(i8* %55, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
%57 = icmp eq i32 %56, 0
br i1 %57, label %62, label %58
58: ; preds = %54
%59 = load i8*, i8** %2
%60 = call i32 @strcmp(i8* %59, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%61 = icmp eq i32 %60, 0
br i1 %61, label %62, label %63
62: ; preds = %58, %54
store i8 68, i8* %3
br label %324
63: ; preds = %58
%64 = load i8*, i8** %2
%65 = call i32 @strcmp(i8* %64, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i64 0, i64 0))
%66 = icmp eq i32 %65, 0
br i1 %66, label %71, label %67
67: ; preds = %63
%68 = load i8*, i8** %2
%69 = call i32 @strcmp(i8* %68, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%70 = icmp eq i32 %69, 0
br i1 %70, label %71, label %72
71: ; preds = %67, %63
store i8 67, i8* %3
br label %323
72: ; preds = %67
%73 = load i8*, i8** %2
%74 = call i32 @strcmp(i8* %73, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%75 = icmp eq i32 %74, 0
br i1 %75, label %80, label %76
76: ; preds = %72
%77 = load i8*, i8** %2
%78 = call i32 @strcmp(i8* %77, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%79 = icmp eq i32 %78, 0
br i1 %79, label %80, label %81
80: ; preds = %76, %72
store i8 81, i8* %3
br label %322
81: ; preds = %76
%82 = load i8*, i8** %2
%83 = call i32 @strcmp(i8* %82, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%84 = icmp eq i32 %83, 0
br i1 %84, label %89, label %85
85: ; preds = %81
%86 = load i8*, i8** %2
%87 = call i32 @strcmp(i8* %86, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%88 = icmp eq i32 %87, 0
br i1 %88, label %89, label %90
89: ; preds = %85, %81
store i8 69, i8* %3
br label %321
90: ; preds = %85
%91 = load i8*, i8** %2
%92 = call i32 @strcmp(i8* %91, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%93 = icmp eq i32 %92, 0
br i1 %93, label %106, label %94
94: ; preds = %90
%95 = load i8*, i8** %2
%96 = call i32 @strcmp(i8* %95, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0))
%97 = icmp eq i32 %96, 0
br i1 %97, label %106, label %98
98: ; preds = %94
%99 = load i8*, i8** %2
%100 = call i32 @strcmp(i8* %99, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0))
%101 = icmp eq i32 %100, 0
br i1 %101, label %106, label %102
102: ; preds = %98
%103 = load i8*, i8** %2
%104 = call i32 @strcmp(i8* %103, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0))
%105 = icmp eq i32 %104, 0
br i1 %105, label %106, label %107
106: ; preds = %102, %98, %94, %90
store i8 71, i8* %3
br label %320
107: ; preds = %102
%108 = load i8*, i8** %2
%109 = call i32 @strcmp(i8* %108, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0))
%110 = icmp eq i32 %109, 0
br i1 %110, label %115, label %111
111: ; preds = %107
%112 = load i8*, i8** %2
%113 = call i32 @strcmp(i8* %112, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0))
%114 = icmp eq i32 %113, 0
br i1 %114, label %115, label %116
115: ; preds = %111, %107
store i8 72, i8* %3
br label %319
116: ; preds = %111
%117 = load i8*, i8** %2
%118 = call i32 @strcmp(i8* %117, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0))
%119 = icmp eq i32 %118, 0
br i1 %119, label %128, label %120
120: ; preds = %116
%121 = load i8*, i8** %2
%122 = call i32 @strcmp(i8* %121, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0))
%123 = icmp eq i32 %122, 0
br i1 %123, label %128, label %124
124: ; preds = %120
%125 = load i8*, i8** %2
%126 = call i32 @strcmp(i8* %125, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0))
%127 = icmp eq i32 %126, 0
br i1 %127, label %128, label %129
128: ; preds = %124, %120, %116
store i8 73, i8* %3
br label %318
129: ; preds = %124
%130 = load i8*, i8** %2
%131 = call i32 @strcmp(i8* %130, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%132 = icmp eq i32 %131, 0
br i1 %132, label %133, label %134
133: ; preds = %129
store i8 77, i8* %3
br label %317
134: ; preds = %129
%135 = load i8*, i8** %2
%136 = call i32 @strcmp(i8* %135, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%137 = icmp eq i32 %136, 0
br i1 %137, label %158, label %138
138: ; preds = %134
%139 = load i8*, i8** %2
%140 = call i32 @strcmp(i8* %139, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
%141 = icmp eq i32 %140, 0
br i1 %141, label %158, label %142
142: ; preds = %138
%143 = load i8*, i8** %2
%144 = call i32 @strcmp(i8* %143, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
%145 = icmp eq i32 %144, 0
br i1 %145, label %158, label %146
146: ; preds = %142
%147 = load i8*, i8** %2
%148 = call i32 @strcmp(i8* %147, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0))
%149 = icmp eq i32 %148, 0
br i1 %149, label %158, label %150
150: ; preds = %146
%151 = load i8*, i8** %2
%152 = call i32 @strcmp(i8* %151, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0))
%153 = icmp eq i32 %152, 0
br i1 %153, label %158, label %154
154: ; preds = %150
%155 = load i8*, i8** %2
%156 = call i32 @strcmp(i8* %155, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0))
%157 = icmp eq i32 %156, 0
br i1 %157, label %158, label %159
158: ; preds = %154, %150, %146, %142, %138, %134
store i8 76, i8* %3
br label %316
159: ; preds = %154
%160 = load i8*, i8** %2
%161 = call i32 @strcmp(i8* %160, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
%162 = icmp eq i32 %161, 0
br i1 %162, label %167, label %163
163: ; preds = %159
%164 = load i8*, i8** %2
%165 = call i32 @strcmp(i8* %164, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
%166 = icmp eq i32 %165, 0
br i1 %166, label %167, label %168
167: ; preds = %163, %159
store i8 75, i8* %3
br label %315
168: ; preds = %163
%169 = load i8*, i8** %2
%170 = call i32 @strcmp(i8* %169, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%171 = icmp eq i32 %170, 0
br i1 %171, label %172, label %173
172: ; preds = %168
store i8 77, i8* %3
br label %314
173: ; preds = %168
%174 = load i8*, i8** %2
%175 = call i32 @strcmp(i8* %174, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%176 = icmp eq i32 %175, 0
br i1 %176, label %181, label %177
177: ; preds = %173
%178 = load i8*, i8** %2
%179 = call i32 @strcmp(i8* %178, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i64 0, i64 0))
%180 = icmp eq i32 %179, 0
br i1 %180, label %181, label %182
181: ; preds = %177, %173
store i8 70, i8* %3
br label %313
182: ; preds = %177
%183 = load i8*, i8** %2
%184 = call i32 @strcmp(i8* %183, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0))
%185 = icmp eq i32 %184, 0
br i1 %185, label %198, label %186
186: ; preds = %182
%187 = load i8*, i8** %2
%188 = call i32 @strcmp(i8* %187, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.41, i64 0, i64 0))
%189 = icmp eq i32 %188, 0
br i1 %189, label %198, label %190
190: ; preds = %186
%191 = load i8*, i8** %2
%192 = call i32 @strcmp(i8* %191, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i64 0, i64 0))
%193 = icmp eq i32 %192, 0
br i1 %193, label %198, label %194
194: ; preds = %190
%195 = load i8*, i8** %2
%196 = call i32 @strcmp(i8* %195, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0))
%197 = icmp eq i32 %196, 0
br i1 %197, label %198, label %199
198: ; preds = %194, %190, %186, %182
store i8 80, i8* %3
br label %312
199: ; preds = %194
%200 = load i8*, i8** %2
%201 = call i32 @strcmp(i8* %200, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0))
%202 = icmp eq i32 %201, 0
br i1 %202, label %223, label %203
203: ; preds = %199
%204 = load i8*, i8** %2
%205 = call i32 @strcmp(i8* %204, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i64 0, i64 0))
%206 = icmp eq i32 %205, 0
br i1 %206, label %223, label %207
207: ; preds = %203
%208 = load i8*, i8** %2
%209 = call i32 @strcmp(i8* %208, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0))
%210 = icmp eq i32 %209, 0
br i1 %210, label %223, label %211
211: ; preds = %207
%212 = load i8*, i8** %2
%213 = call i32 @strcmp(i8* %212, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0))
%214 = icmp eq i32 %213, 0
br i1 %214, label %223, label %215
215: ; preds = %211
%216 = load i8*, i8** %2
%217 = call i32 @strcmp(i8* %216, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.48, i64 0, i64 0))
%218 = icmp eq i32 %217, 0
br i1 %218, label %223, label %219
219: ; preds = %215
%220 = load i8*, i8** %2
%221 = call i32 @strcmp(i8* %220, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0))
%222 = icmp eq i32 %221, 0
br i1 %222, label %223, label %224
223: ; preds = %219, %215, %211, %207, %203, %199
store i8 83, i8* %3
br label %311
224: ; preds = %219
%225 = load i8*, i8** %2
%226 = call i32 @strcmp(i8* %225, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0))
%227 = icmp eq i32 %226, 0
br i1 %227, label %240, label %228
228: ; preds = %224
%229 = load i8*, i8** %2
%230 = call i32 @strcmp(i8* %229, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0))
%231 = icmp eq i32 %230, 0
br i1 %231, label %240, label %232
232: ; preds = %228
%233 = load i8*, i8** %2
%234 = call i32 @strcmp(i8* %233, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%235 = icmp eq i32 %234, 0
br i1 %235, label %240, label %236
236: ; preds = %232
%237 = load i8*, i8** %2
%238 = call i32 @strcmp(i8* %237, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.53, i64 0, i64 0))
%239 = icmp eq i32 %238, 0
br i1 %239, label %240, label %241
240: ; preds = %236, %232, %228, %224
store i8 84, i8* %3
br label %310
241: ; preds = %236
%242 = load i8*, i8** %2
%243 = call i32 @strcmp(i8* %242, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.54, i64 0, i64 0))
%244 = icmp eq i32 %243, 0
br i1 %244, label %245, label %246
245: ; preds = %241
store i8 87, i8* %3
br label %309
246: ; preds = %241
%247 = load i8*, i8** %2
%248 = call i32 @strcmp(i8* %247, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
%249 = icmp eq i32 %248, 0
br i1 %249, label %254, label %250
250: ; preds = %246
%251 = load i8*, i8** %2
%252 = call i32 @strcmp(i8* %251, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.56, i64 0, i64 0))
%253 = icmp eq i32 %252, 0
br i1 %253, label %254, label %255
254: ; preds = %250, %246
store i8 89, i8* %3
br label %308
255: ; preds = %250
%256 = load i8*, i8** %2
%257 = call i32 @strcmp(i8* %256, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0))
%258 = icmp eq i32 %257, 0
br i1 %258, label %271, label %259
259: ; preds = %255
%260 = load i8*, i8** %2
%261 = call i32 @strcmp(i8* %260, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.58, i64 0, i64 0))
%262 = icmp eq i32 %261, 0
br i1 %262, label %271, label %263
263: ; preds = %259
%264 = load i8*, i8** %2
%265 = call i32 @strcmp(i8* %264, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0))
%266 = icmp eq i32 %265, 0
br i1 %266, label %271, label %267
267: ; preds = %263
%268 = load i8*, i8** %2
%269 = call i32 @strcmp(i8* %268, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0))
%270 = icmp eq i32 %269, 0
br i1 %270, label %271, label %272
271: ; preds = %267, %263, %259, %255
store i8 86, i8* %3
br label %307
272: ; preds = %267
%273 = load i8*, i8** %2
%274 = call i32 @strcmp(i8* %273, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0))
%275 = icmp eq i32 %274, 0
br i1 %275, label %284, label %276
276: ; preds = %272
%277 = load i8*, i8** %2
%278 = call i32 @strcmp(i8* %277, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.62, i64 0, i64 0))
%279 = icmp eq i32 %278, 0
br i1 %279, label %284, label %280
280: ; preds = %276
%281 = load i8*, i8** %2
%282 = call i32 @strcmp(i8* %281, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.63, i64 0, i64 0))
%283 = icmp eq i32 %282, 0
br i1 %283, label %284, label %285
284: ; preds = %280, %276, %272
store i8 42, i8* %3
br label %306
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 %305
304: ; preds = %297
store i8 88, i8* %3
br label %305
305: ; preds = %304, %303
br label %306
306: ; preds = %305, %284
br label %307
307: ; preds = %306, %271
br label %308
308: ; preds = %307, %254
br label %309
309: ; preds = %308, %245
br label %310
310: ; preds = %309, %240
br label %311
311: ; preds = %310, %223
br label %312
312: ; preds = %311, %198
br label %313
313: ; preds = %312, %181
br label %314
314: ; preds = %313, %172
br label %315
315: ; preds = %314, %167
br label %316
316: ; preds = %315, %158
br label %317
317: ; preds = %316, %133
br label %318
318: ; preds = %317, %128
br label %319
319: ; preds = %318, %115
br label %320
320: ; preds = %319, %106
br label %321
321: ; preds = %320, %89
br label %322
322: ; preds = %321, %80
br label %323
323: ; preds = %322, %71
br label %324
324: ; preds = %323, %62
br label %325
325: ; preds = %324, %53
br label %326
326: ; preds = %325, %44
br label %327
327: ; preds = %326, %19
%328 = load i8, i8* %3
ret i8 %328
}

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"
define signext i8 @codon_table(i8* %0) {
%2 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%3 = icmp eq i32 %2, 0
br i1 %3, label %194, label %4
4: ; preds = %1
%5 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%6 = icmp eq i32 %5, 0
br i1 %6, label %194, label %7
7: ; preds = %4
%8 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%9 = icmp eq i32 %8, 0
br i1 %9, label %194, label %10
10: ; preds = %7
%11 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%12 = icmp eq i32 %11, 0
br i1 %12, label %194, label %13
13: ; preds = %10
%14 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%15 = icmp eq i32 %14, 0
br i1 %15, label %194, label %16
16: ; preds = %13
%17 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%18 = icmp eq i32 %17, 0
br i1 %18, label %194, label %19
19: ; preds = %16
%20 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%21 = icmp eq i32 %20, 0
br i1 %21, label %194, label %22
22: ; preds = %19
%23 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%24 = icmp eq i32 %23, 0
br i1 %24, label %194, label %25
25: ; preds = %22
%26 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%27 = icmp eq i32 %26, 0
br i1 %27, label %194, label %28
28: ; preds = %25
%29 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%30 = icmp eq i32 %29, 0
br i1 %30, label %194, label %31
31: ; preds = %28
%32 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0))
%33 = icmp eq i32 %32, 0
br i1 %33, label %194, label %34
34: ; preds = %31
%35 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%36 = icmp eq i32 %35, 0
br i1 %36, label %194, label %37
37: ; preds = %34
%38 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
%39 = icmp eq i32 %38, 0
br i1 %39, label %194, label %40
40: ; preds = %37
%41 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%42 = icmp eq i32 %41, 0
br i1 %42, label %194, label %43
43: ; preds = %40
%44 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i64 0, i64 0))
%45 = icmp eq i32 %44, 0
br i1 %45, label %194, label %46
46: ; preds = %43
%47 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%48 = icmp eq i32 %47, 0
br i1 %48, label %194, label %49
49: ; preds = %46
%50 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%51 = icmp eq i32 %50, 0
br i1 %51, label %194, label %52
52: ; preds = %49
%53 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%54 = icmp eq i32 %53, 0
br i1 %54, label %194, label %55
55: ; preds = %52
%56 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%57 = icmp eq i32 %56, 0
br i1 %57, label %194, label %58
58: ; preds = %55
%59 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%60 = icmp eq i32 %59, 0
br i1 %60, label %194, label %61
61: ; preds = %58
%62 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%63 = icmp eq i32 %62, 0
br i1 %63, label %194, label %64
64: ; preds = %61
%65 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0))
%66 = icmp eq i32 %65, 0
br i1 %66, label %194, label %67
67: ; preds = %64
%68 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0))
%69 = icmp eq i32 %68, 0
br i1 %69, label %194, label %70
70: ; preds = %67
%71 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0))
%72 = icmp eq i32 %71, 0
br i1 %72, label %194, label %73
73: ; preds = %70
%74 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0))
%75 = icmp eq i32 %74, 0
br i1 %75, label %194, label %76
76: ; preds = %73
%77 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0))
%78 = icmp eq i32 %77, 0
br i1 %78, label %194, label %79
79: ; preds = %76
%80 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0))
%81 = icmp eq i32 %80, 0
br i1 %81, label %194, label %82
82: ; preds = %79
%83 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0))
%84 = icmp eq i32 %83, 0
br i1 %84, label %194, label %85
85: ; preds = %82
%86 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0))
%87 = icmp eq i32 %86, 0
br i1 %87, label %194, label %88
88: ; preds = %85
%89 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%90 = icmp eq i32 %89, 0
br i1 %90, label %194, label %91
91: ; preds = %88
%92 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%93 = icmp eq i32 %92, 0
br i1 %93, label %194, label %94
94: ; preds = %91
%95 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
%96 = icmp eq i32 %95, 0
br i1 %96, label %194, label %97
97: ; preds = %94
%98 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
%99 = icmp eq i32 %98, 0
br i1 %99, label %194, label %100
100: ; preds = %97
%101 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0))
%102 = icmp eq i32 %101, 0
br i1 %102, label %194, label %103
103: ; preds = %100
%104 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0))
%105 = icmp eq i32 %104, 0
br i1 %105, label %194, label %106
106: ; preds = %103
%107 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0))
%108 = icmp eq i32 %107, 0
br i1 %108, label %194, label %109
109: ; preds = %106
%110 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
%111 = icmp eq i32 %110, 0
br i1 %111, label %194, label %112
112: ; preds = %109
%113 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
%114 = icmp eq i32 %113, 0
br i1 %114, label %194, label %115
115: ; preds = %112
%116 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%117 = icmp eq i32 %116, 0
br i1 %117, label %194, label %118
118: ; preds = %115
%119 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i64 0, i64 0))
%120 = icmp eq i32 %119, 0
br i1 %120, label %194, label %121
121: ; preds = %118
%122 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0))
%123 = icmp eq i32 %122, 0
br i1 %123, label %194, label %124
124: ; preds = %121
%125 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.41, i64 0, i64 0))
%126 = icmp eq i32 %125, 0
br i1 %126, label %194, label %127
127: ; preds = %124
%128 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i64 0, i64 0))
%129 = icmp eq i32 %128, 0
br i1 %129, label %194, label %130
130: ; preds = %127
%131 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0))
%132 = icmp eq i32 %131, 0
br i1 %132, label %194, label %133
133: ; preds = %130
%134 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0))
%135 = icmp eq i32 %134, 0
br i1 %135, label %194, label %136
136: ; preds = %133
%137 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i64 0, i64 0))
%138 = icmp eq i32 %137, 0
br i1 %138, label %194, label %139
139: ; preds = %136
%140 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0))
%141 = icmp eq i32 %140, 0
br i1 %141, label %194, label %142
142: ; preds = %139
%143 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0))
%144 = icmp eq i32 %143, 0
br i1 %144, label %194, label %145
145: ; preds = %142
%146 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.48, i64 0, i64 0))
%147 = icmp eq i32 %146, 0
br i1 %147, label %194, label %148
148: ; preds = %145
%149 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0))
%150 = icmp eq i32 %149, 0
br i1 %150, label %194, label %151
151: ; preds = %148
%152 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0))
%153 = icmp eq i32 %152, 0
br i1 %153, label %194, label %154
154: ; preds = %151
%155 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0))
%156 = icmp eq i32 %155, 0
br i1 %156, label %194, label %157
157: ; preds = %154
%158 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%159 = icmp eq i32 %158, 0
br i1 %159, label %194, label %160
160: ; preds = %157
%161 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.53, i64 0, i64 0))
%162 = icmp eq i32 %161, 0
br i1 %162, label %194, label %163
163: ; preds = %160
%164 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.54, i64 0, i64 0))
%165 = icmp eq i32 %164, 0
br i1 %165, label %194, label %166
166: ; preds = %163
%167 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
%168 = icmp eq i32 %167, 0
br i1 %168, label %194, label %169
169: ; preds = %166
%170 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.56, i64 0, i64 0))
%171 = icmp eq i32 %170, 0
br i1 %171, label %194, label %172
172: ; preds = %169
%173 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0))
%174 = icmp eq i32 %173, 0
br i1 %174, label %194, label %175
175: ; preds = %172
%176 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.58, i64 0, i64 0))
%177 = icmp eq i32 %176, 0
br i1 %177, label %194, label %178
178: ; preds = %175
%179 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0))
%180 = icmp eq i32 %179, 0
br i1 %180, label %194, label %181
181: ; preds = %178
%182 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0))
%183 = icmp eq i32 %182, 0
br i1 %183, label %194, label %184
184: ; preds = %181
%185 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0))
%186 = icmp eq i32 %185, 0
br i1 %186, label %194, label %187
187: ; preds = %184
%188 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.62, i64 0, i64 0))
%189 = icmp eq i32 %188, 0
br i1 %189, label %194, label %190
190: ; preds = %187
%191 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.63, i64 0, i64 0))
%192 = icmp eq i32 %191, 0
%193 = select i1 %192, i8 42, i8 88
br label %194
194: ; preds = %190, %184, %187, %172, %175, %178, %181, %166, %169, %163, %151, %154, %157, %160, %133, %136, %139, %142, %145, %148, %121, %124, %127, %130, %115, %118, %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
%195 = phi i8 [ 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 ], [ 70, %118 ], [ 70, %115 ], [ 80, %130 ], [ 80, %127 ], [ 80, %124 ], [ 80, %121 ], [ 83, %148 ], [ 83, %145 ], [ 83, %142 ], [ 83, %139 ], [ 83, %136 ], [ 83, %133 ], [ 84, %160 ], [ 84, %157 ], [ 84, %154 ], [ 84, %151 ], [ 87, %163 ], [ 89, %169 ], [ 89, %166 ], [ 86, %181 ], [ 86, %178 ], [ 86, %175 ], [ 86, %172 ], [ 42, %187 ], [ 42, %184 ], [ %193, %190 ]
ret i8 %195
}