#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 */
char *malloc(int);
char *rna2prot(char *rnaBuff, int rnaLen) {
  char *prot = malloc(sizeof(char) * (rnaLen + 1));
  int i = 0;
  int j = 0;
  while (rnaBuff[i]) {
    if (rnaBuff[i] == 'U') {
      if (rnaBuff[i + 1] == 'U' && rnaBuff[i + 2] == 'U')
        prot[j] = 'F';
      else if (rnaBuff[i + 1] == 'U' && rnaBuff[i + 2] == 'C')
        prot[j] = 'F';
      else if (rnaBuff[i + 1] == 'U' && rnaBuff[i + 2] == 'A')
        prot[j] = 'L';
      else if (rnaBuff[i + 1] == 'U' && rnaBuff[i + 2] == 'G')
        prot[j] = 'L';
      else if (rnaBuff[i + 1] == 'C')
        prot[j] = 'S';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'U')
        prot[j] = 'Y';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'C')
        prot[j] = 'Y';
      else if (rnaBuff[i + 1] == 'A') {
        j++;
        break;
      } else if (rnaBuff[i + 1] == 'G' && rnaBuff[i + 2] == 'A') {
        j++;
        break;
      } else if (rnaBuff[i + 1] == 'G' && rnaBuff[i + 2] == 'G')
        prot[j] = 'W';
      else
        prot[j] = 'C';
    } else if (rnaBuff[i] == 'C') {
      if (rnaBuff[i + 1] == 'U')
        prot[j] = 'L';
      else if (rnaBuff[i + 1] == 'C')
        prot[j] = 'P';
      else if (rnaBuff[i + 1] == 'G')
        prot[j] = 'R';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'U')
        prot[j] = 'H';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'C')
        prot[j] = 'H';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'A')
        prot[j] = 'Q';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'G')
        prot[j] = 'Q';
    } else if (rnaBuff[i] == 'A') {
      if (rnaBuff[i + 1] == 'U' && rnaBuff[i + 2] == 'G')
        prot[j] = 'M';
      else if (rnaBuff[i + 1] == 'U')
        prot[j] = 'I';
      else if (rnaBuff[i + 1] == 'C')
        prot[j] = 'T';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'U')
        prot[j] = 'N';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'C')
        prot[j] = 'N';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'A')
        prot[j] = 'K';
      else if (rnaBuff[i + 1] == 'A' && rnaBuff[i + 2] == 'G')
        prot[j] = 'K';
      else if (rnaBuff[i + 1] == 'G' && rnaBuff[i + 2] == 'U')
        prot[j] = 'S';
      else if (rnaBuff[i + 1] == 'G' && rnaBuff[i + 2] == 'C')
        prot[j] = 'S';
      else if (rnaBuff[i + 1] == 'G' && rnaBuff[i + 2] == 'A')
        prot[j] = 'R';
      else if (rnaBuff[i + 1] == 'G' && rnaBuff[i + 2] == 'G')
        prot[j] = 'R';
    } else if (rnaBuff[i] == 'G') {
      if (rnaBuff[i + 1] == 'U')
        prot[j] = 'V';
      else if (rnaBuff[i + 1] == 'C')
        prot[j] = 'A';
      else if (rnaBuff[i + 1] == 'G')
        prot[j] = 'G';
      else if (rnaBuff[i + 2] == 'U')
        prot[j] = 'D';
      else if (rnaBuff[i + 2] == 'C')
        prot[j] = 'D';
      else if (rnaBuff[i + 2] == 'A')
        prot[j] = 'E';
      else if (rnaBuff[i + 2] == 'G')
        prot[j] = 'E';
    }
    j++;
    i += 3;
  }
  prot[j] = '\0';
  return prot;
}


x86 assembly (clang, -O0):
<rna2prot>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
shl    $0x0,%rax
mov    %eax,%edi
call   1030 <malloc@plt>
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x20(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x1c(%rbp),%rcx
cmpb   $0x0,(%rax,%rcx,1)
je     1a79 <rna2prot+0x969>
mov    -0x8(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    1421 <rna2prot+0x311>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    11b0 <rna2prot+0xa0>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    11b0 <rna2prot+0xa0>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x46,(%rax,%rcx,1)
jmp    141c <rna2prot+0x30c>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    11f5 <rna2prot+0xe5>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    11f5 <rna2prot+0xe5>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x46,(%rax,%rcx,1)
jmp    1417 <rna2prot+0x307>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    123a <rna2prot+0x12a>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    123a <rna2prot+0x12a>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4c,(%rax,%rcx,1)
jmp    1412 <rna2prot+0x302>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    127f <rna2prot+0x16f>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    127f <rna2prot+0x16f>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4c,(%rax,%rcx,1)
jmp    140d <rna2prot+0x2fd>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    12aa <rna2prot+0x19a>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x53,(%rax,%rcx,1)
jmp    1408 <rna2prot+0x2f8>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    12ef <rna2prot+0x1df>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    12ef <rna2prot+0x1df>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x59,(%rax,%rcx,1)
jmp    1403 <rna2prot+0x2f3>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1334 <rna2prot+0x224>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    1334 <rna2prot+0x224>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x59,(%rax,%rcx,1)
jmp    13fe <rna2prot+0x2ee>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    135c <rna2prot+0x24c>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1a79 <rna2prot+0x969>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    139e <rna2prot+0x28e>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    139e <rna2prot+0x28e>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1a79 <rna2prot+0x969>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    13e3 <rna2prot+0x2d3>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    13e3 <rna2prot+0x2d3>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x57,(%rax,%rcx,1)
jmp    13ef <rna2prot+0x2df>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x43,(%rax,%rcx,1)
jmp    13f4 <rna2prot+0x2e4>
jmp    13f9 <rna2prot+0x2e9>
jmp    13fe <rna2prot+0x2ee>
jmp    1403 <rna2prot+0x2f3>
jmp    1408 <rna2prot+0x2f8>
jmp    140d <rna2prot+0x2fd>
jmp    1412 <rna2prot+0x302>
jmp    1417 <rna2prot+0x307>
jmp    141c <rna2prot+0x30c>
jmp    1a62 <rna2prot+0x952>
mov    -0x8(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    15e9 <rna2prot+0x4d9>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    1461 <rna2prot+0x351>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4c,(%rax,%rcx,1)
jmp    15e4 <rna2prot+0x4d4>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    148c <rna2prot+0x37c>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x50,(%rax,%rcx,1)
jmp    15df <rna2prot+0x4cf>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    14b7 <rna2prot+0x3a7>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x52,(%rax,%rcx,1)
jmp    15da <rna2prot+0x4ca>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    14fc <rna2prot+0x3ec>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    14fc <rna2prot+0x3ec>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x48,(%rax,%rcx,1)
jmp    15d5 <rna2prot+0x4c5>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1541 <rna2prot+0x431>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    1541 <rna2prot+0x431>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x48,(%rax,%rcx,1)
jmp    15d0 <rna2prot+0x4c0>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1586 <rna2prot+0x476>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1586 <rna2prot+0x476>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x51,(%rax,%rcx,1)
jmp    15cb <rna2prot+0x4bb>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    15c6 <rna2prot+0x4b6>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    15c6 <rna2prot+0x4b6>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x51,(%rax,%rcx,1)
jmp    15cb <rna2prot+0x4bb>
jmp    15d0 <rna2prot+0x4c0>
jmp    15d5 <rna2prot+0x4c5>
jmp    15da <rna2prot+0x4ca>
jmp    15df <rna2prot+0x4cf>
jmp    15e4 <rna2prot+0x4d4>
jmp    1a5d <rna2prot+0x94d>
mov    -0x8(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    18f3 <rna2prot+0x7e3>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    1643 <rna2prot+0x533>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    1643 <rna2prot+0x533>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4d,(%rax,%rcx,1)
jmp    18ee <rna2prot+0x7de>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    166e <rna2prot+0x55e>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x49,(%rax,%rcx,1)
jmp    18e9 <rna2prot+0x7d9>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    1699 <rna2prot+0x589>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x54,(%rax,%rcx,1)
jmp    18e4 <rna2prot+0x7d4>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    16de <rna2prot+0x5ce>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    16de <rna2prot+0x5ce>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4e,(%rax,%rcx,1)
jmp    18df <rna2prot+0x7cf>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1723 <rna2prot+0x613>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    1723 <rna2prot+0x613>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4e,(%rax,%rcx,1)
jmp    18da <rna2prot+0x7ca>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1768 <rna2prot+0x658>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1768 <rna2prot+0x658>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4b,(%rax,%rcx,1)
jmp    18d5 <rna2prot+0x7c5>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    17ad <rna2prot+0x69d>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    17ad <rna2prot+0x69d>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x4b,(%rax,%rcx,1)
jmp    18d0 <rna2prot+0x7c0>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    17f2 <rna2prot+0x6e2>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    17f2 <rna2prot+0x6e2>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x53,(%rax,%rcx,1)
jmp    18cb <rna2prot+0x7bb>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    1837 <rna2prot+0x727>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    1837 <rna2prot+0x727>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x53,(%rax,%rcx,1)
jmp    18c6 <rna2prot+0x7b6>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    187c <rna2prot+0x76c>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    187c <rna2prot+0x76c>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x52,(%rax,%rcx,1)
jmp    18c1 <rna2prot+0x7b1>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    18bc <rna2prot+0x7ac>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    18bc <rna2prot+0x7ac>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x52,(%rax,%rcx,1)
jmp    18c1 <rna2prot+0x7b1>
jmp    18c6 <rna2prot+0x7b6>
jmp    18cb <rna2prot+0x7bb>
jmp    18d0 <rna2prot+0x7c0>
jmp    18d5 <rna2prot+0x7c5>
jmp    18da <rna2prot+0x7ca>
jmp    18df <rna2prot+0x7cf>
jmp    18e4 <rna2prot+0x7d4>
jmp    18e9 <rna2prot+0x7d9>
jmp    18ee <rna2prot+0x7de>
jmp    1a58 <rna2prot+0x948>
mov    -0x8(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    1a53 <rna2prot+0x943>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    1933 <rna2prot+0x823>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x56,(%rax,%rcx,1)
jmp    1a4e <rna2prot+0x93e>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    195e <rna2prot+0x84e>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x41,(%rax,%rcx,1)
jmp    1a49 <rna2prot+0x939>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    1989 <rna2prot+0x879>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x47,(%rax,%rcx,1)
jmp    1a44 <rna2prot+0x934>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    19b4 <rna2prot+0x8a4>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x44,(%rax,%rcx,1)
jmp    1a3f <rna2prot+0x92f>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    19df <rna2prot+0x8cf>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x44,(%rax,%rcx,1)
jmp    1a3a <rna2prot+0x92a>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    1a0a <rna2prot+0x8fa>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x45,(%rax,%rcx,1)
jmp    1a35 <rna2prot+0x925>
mov    -0x8(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    1a30 <rna2prot+0x920>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x45,(%rax,%rcx,1)
jmp    1a35 <rna2prot+0x925>
jmp    1a3a <rna2prot+0x92a>
jmp    1a3f <rna2prot+0x92f>
jmp    1a44 <rna2prot+0x934>
jmp    1a49 <rna2prot+0x939>
jmp    1a4e <rna2prot+0x93e>
jmp    1a53 <rna2prot+0x943>
jmp    1a58 <rna2prot+0x948>
jmp    1a5d <rna2prot+0x94d>
jmp    1a62 <rna2prot+0x952>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x1c(%rbp)
jmp    1144 <rna2prot+0x34>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0x0,(%rax,%rcx,1)
mov    -0x18(%rbp),%rax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<rna2prot>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
mov    %rdi,%rbx
lea    0x1(%rsi),%edi
call   1030 <malloc@plt>
add    $0x2,%rbx
xor    %ecx,%ecx
lea    0xed0(%rip),%rdi
lea    0xf71(%rip),%r14
lea    0x1012(%rip),%r8
lea    0xfb7(%rip),%r9
lea    0x1058(%rip),%r12
lea    0x10a5(%rip),%r10
lea    0xefa(%rip),%r11
lea    0x10eb(%rip),%rsi
lea    0x1138(%rip),%r15
jmp    1188 <rna2prot+0x78>
test   %dl,%dl
je     1354 <rna2prot+0x244>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rcx
add    $0x3,%rbx
movzbl -0x2(%rbx),%edx
lea    -0x41(%rdx),%ebp
cmp    $0x14,%bpl
ja     116a <rna2prot+0x5a>
movzbl %bpl,%edx
movslq (%rdi,%rdx,4),%rdx
add    %rdi,%rdx
jmp    *%rdx
movzbl -0x1(%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     1180 <rna2prot+0x70>
movzbl %dl,%edx
movslq (%r14,%rdx,4),%rdx
add    %r14,%rdx
jmp    *%rdx
movzbl (%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     1180 <rna2prot+0x70>
movzbl %dl,%edx
movslq (%r8,%rdx,4),%rdx
add    %r8,%rdx
jmp    *%rdx
movb   $0x4e,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movzbl -0x1(%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     1180 <rna2prot+0x70>
movzbl %dl,%edx
movslq (%r12,%rdx,4),%rdx
add    %r12,%rdx
jmp    *%rdx
movzbl (%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     1180 <rna2prot+0x70>
movzbl %dl,%edx
movslq (%r10,%rdx,4),%rdx
add    %r10,%rdx
jmp    *%rdx
movb   $0x48,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movzbl -0x1(%rbx),%edx
cmp    $0x43,%dl
je     1261 <rna2prot+0x151>
cmp    $0x47,%dl
je     126a <rna2prot+0x15a>
cmp    $0x55,%dl
jne    1273 <rna2prot+0x163>
movb   $0x56,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movzbl -0x1(%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     12d1 <rna2prot+0x1c1>
movzbl %dl,%edx
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
movzbl (%rbx),%edx
cmp    $0x43,%dl
je     1258 <rna2prot+0x148>
cmp    $0x55,%dl
jne    1350 <rna2prot+0x240>
movb   $0x59,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x41,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x47,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movzbl (%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     1180 <rna2prot+0x70>
movzbl %dl,%edx
movslq (%r11,%rdx,4),%rdx
add    %r11,%rdx
jmp    *%rdx
movb   $0x44,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movzbl (%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     1180 <rna2prot+0x70>
movzbl %dl,%edx
movslq (%r9,%rdx,4),%rdx
add    %r9,%rdx
jmp    *%rdx
movb   $0x53,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x52,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movzbl (%rbx),%edx
cmp    $0x47,%dl
je     1335 <rna2prot+0x225>
cmp    $0x41,%dl
je     1350 <rna2prot+0x240>
movb   $0x43,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x54,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
cmpb   $0x47,(%rbx)
jne    132c <rna2prot+0x21c>
movb   $0x4d,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x50,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movzbl (%rbx),%edx
add    $0xbf,%dl
cmp    $0x14,%dl
ja     12d1 <rna2prot+0x1c1>
movzbl %dl,%edx
movslq (%r15,%rdx,4),%rdx
add    %r15,%rdx
jmp    *%rdx
movb   $0x46,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x4c,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x45,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x49,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x57,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x4b,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
movb   $0x51,(%rax,%rcx,1)
jmp    1180 <rna2prot+0x70>
add    $0x1,%rcx
movslq %ecx,%rcx
movb   $0x0,(%rax,%rcx,1)
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define i8* @rna2prot(i8* %0, i32 %1) {
%3 = alloca i8*
%4 = alloca i32
%5 = alloca i8*
%6 = alloca i32
%7 = alloca i32
store i8* %0, i8** %3
store i32 %1, i32* %4
%8 = load i32, i32* %4
%9 = add nsw i32 %8, 1
%10 = sext i32 %9 to i64
%11 = mul i64 1, %10
%12 = trunc i64 %11 to i32
%13 = call i8* @malloc(i32 %12)
store i8* %13, i8** %5
store i32 0, i32* %6
store i32 0, i32* %7
br label %14
14: ; preds = %771, %2
%15 = load i8*, i8** %3
%16 = load i32, i32* %6
%17 = sext i32 %16 to i64
%18 = getelementptr inbounds i8, i8* %15, i64 %17
%19 = load i8, i8* %18
%20 = icmp ne i8 %19, 0
br i1 %20, label %21, label %776
21: ; preds = %14
%22 = load i8*, i8** %3
%23 = load i32, i32* %6
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds i8, i8* %22, i64 %24
%26 = load i8, i8* %25
%27 = sext i8 %26 to i32
%28 = icmp eq i32 %27, 85
br i1 %28, label %29, label %252
29: ; preds = %21
%30 = load i8*, i8** %3
%31 = load i32, i32* %6
%32 = add nsw i32 %31, 1
%33 = sext i32 %32 to i64
%34 = getelementptr inbounds i8, i8* %30, i64 %33
%35 = load i8, i8* %34
%36 = sext i8 %35 to i32
%37 = icmp eq i32 %36, 85
br i1 %37, label %38, label %52
38: ; preds = %29
%39 = load i8*, i8** %3
%40 = load i32, i32* %6
%41 = add nsw i32 %40, 2
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds i8, i8* %39, i64 %42
%44 = load i8, i8* %43
%45 = sext i8 %44 to i32
%46 = icmp eq i32 %45, 85
br i1 %46, label %47, label %52
47: ; preds = %38
%48 = load i8*, i8** %5
%49 = load i32, i32* %7
%50 = sext i32 %49 to i64
%51 = getelementptr inbounds i8, i8* %48, i64 %50
store i8 70, i8* %51
br label %251
52: ; preds = %38, %29
%53 = load i8*, i8** %3
%54 = load i32, i32* %6
%55 = add nsw i32 %54, 1
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds i8, i8* %53, i64 %56
%58 = load i8, i8* %57
%59 = sext i8 %58 to i32
%60 = icmp eq i32 %59, 85
br i1 %60, label %61, label %75
61: ; preds = %52
%62 = load i8*, i8** %3
%63 = load i32, i32* %6
%64 = add nsw i32 %63, 2
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds i8, i8* %62, i64 %65
%67 = load i8, i8* %66
%68 = sext i8 %67 to i32
%69 = icmp eq i32 %68, 67
br i1 %69, label %70, label %75
70: ; preds = %61
%71 = load i8*, i8** %5
%72 = load i32, i32* %7
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds i8, i8* %71, i64 %73
store i8 70, i8* %74
br label %250
75: ; preds = %61, %52
%76 = load i8*, i8** %3
%77 = load i32, i32* %6
%78 = add nsw i32 %77, 1
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds i8, i8* %76, i64 %79
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = icmp eq i32 %82, 85
br i1 %83, label %84, label %98
84: ; preds = %75
%85 = load i8*, i8** %3
%86 = load i32, i32* %6
%87 = add nsw i32 %86, 2
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds i8, i8* %85, i64 %88
%90 = load i8, i8* %89
%91 = sext i8 %90 to i32
%92 = icmp eq i32 %91, 65
br i1 %92, label %93, label %98
93: ; preds = %84
%94 = load i8*, i8** %5
%95 = load i32, i32* %7
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds i8, i8* %94, i64 %96
store i8 76, i8* %97
br label %249
98: ; preds = %84, %75
%99 = load i8*, i8** %3
%100 = load i32, i32* %6
%101 = add nsw i32 %100, 1
%102 = sext i32 %101 to i64
%103 = getelementptr inbounds i8, i8* %99, i64 %102
%104 = load i8, i8* %103
%105 = sext i8 %104 to i32
%106 = icmp eq i32 %105, 85
br i1 %106, label %107, label %121
107: ; preds = %98
%108 = load i8*, i8** %3
%109 = load i32, i32* %6
%110 = add nsw i32 %109, 2
%111 = sext i32 %110 to i64
%112 = getelementptr inbounds i8, i8* %108, i64 %111
%113 = load i8, i8* %112
%114 = sext i8 %113 to i32
%115 = icmp eq i32 %114, 71
br i1 %115, label %116, label %121
116: ; preds = %107
%117 = load i8*, i8** %5
%118 = load i32, i32* %7
%119 = sext i32 %118 to i64
%120 = getelementptr inbounds i8, i8* %117, i64 %119
store i8 76, i8* %120
br label %248
121: ; preds = %107, %98
%122 = load i8*, i8** %3
%123 = load i32, i32* %6
%124 = add nsw i32 %123, 1
%125 = sext i32 %124 to i64
%126 = getelementptr inbounds i8, i8* %122, i64 %125
%127 = load i8, i8* %126
%128 = sext i8 %127 to i32
%129 = icmp eq i32 %128, 67
br i1 %129, label %130, label %135
130: ; preds = %121
%131 = load i8*, i8** %5
%132 = load i32, i32* %7
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds i8, i8* %131, i64 %133
store i8 83, i8* %134
br label %247
135: ; preds = %121
%136 = load i8*, i8** %3
%137 = load i32, i32* %6
%138 = add nsw i32 %137, 1
%139 = sext i32 %138 to i64
%140 = getelementptr inbounds i8, i8* %136, i64 %139
%141 = load i8, i8* %140
%142 = sext i8 %141 to i32
%143 = icmp eq i32 %142, 65
br i1 %143, label %144, label %158
144: ; preds = %135
%145 = load i8*, i8** %3
%146 = load i32, i32* %6
%147 = add nsw i32 %146, 2
%148 = sext i32 %147 to i64
%149 = getelementptr inbounds i8, i8* %145, i64 %148
%150 = load i8, i8* %149
%151 = sext i8 %150 to i32
%152 = icmp eq i32 %151, 85
br i1 %152, label %153, label %158
153: ; preds = %144
%154 = load i8*, i8** %5
%155 = load i32, i32* %7
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds i8, i8* %154, i64 %156
store i8 89, i8* %157
br label %246
158: ; preds = %144, %135
%159 = load i8*, i8** %3
%160 = load i32, i32* %6
%161 = add nsw i32 %160, 1
%162 = sext i32 %161 to i64
%163 = getelementptr inbounds i8, i8* %159, i64 %162
%164 = load i8, i8* %163
%165 = sext i8 %164 to i32
%166 = icmp eq i32 %165, 65
br i1 %166, label %167, label %181
167: ; preds = %158
%168 = load i8*, i8** %3
%169 = load i32, i32* %6
%170 = add nsw i32 %169, 2
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds i8, i8* %168, i64 %171
%173 = load i8, i8* %172
%174 = sext i8 %173 to i32
%175 = icmp eq i32 %174, 67
br i1 %175, label %176, label %181
176: ; preds = %167
%177 = load i8*, i8** %5
%178 = load i32, i32* %7
%179 = sext i32 %178 to i64
%180 = getelementptr inbounds i8, i8* %177, i64 %179
store i8 89, i8* %180
br label %245
181: ; preds = %167, %158
%182 = load i8*, i8** %3
%183 = load i32, i32* %6
%184 = add nsw i32 %183, 1
%185 = sext i32 %184 to i64
%186 = getelementptr inbounds i8, i8* %182, i64 %185
%187 = load i8, i8* %186
%188 = sext i8 %187 to i32
%189 = icmp eq i32 %188, 65
br i1 %189, label %190, label %193
190: ; preds = %181
%191 = load i32, i32* %7
%192 = add nsw i32 %191, 1
store i32 %192, i32* %7
br label %776
193: ; preds = %181
%194 = load i8*, i8** %3
%195 = load i32, i32* %6
%196 = add nsw i32 %195, 1
%197 = sext i32 %196 to i64
%198 = getelementptr inbounds i8, i8* %194, i64 %197
%199 = load i8, i8* %198
%200 = sext i8 %199 to i32
%201 = icmp eq i32 %200, 71
br i1 %201, label %202, label %214
202: ; preds = %193
%203 = load i8*, i8** %3
%204 = load i32, i32* %6
%205 = add nsw i32 %204, 2
%206 = sext i32 %205 to i64
%207 = getelementptr inbounds i8, i8* %203, i64 %206
%208 = load i8, i8* %207
%209 = sext i8 %208 to i32
%210 = icmp eq i32 %209, 65
br i1 %210, label %211, label %214
211: ; preds = %202
%212 = load i32, i32* %7
%213 = add nsw i32 %212, 1
store i32 %213, i32* %7
br label %776
214: ; preds = %202, %193
%215 = load i8*, i8** %3
%216 = load i32, i32* %6
%217 = add nsw i32 %216, 1
%218 = sext i32 %217 to i64
%219 = getelementptr inbounds i8, i8* %215, i64 %218
%220 = load i8, i8* %219
%221 = sext i8 %220 to i32
%222 = icmp eq i32 %221, 71
br i1 %222, label %223, label %237
223: ; preds = %214
%224 = load i8*, i8** %3
%225 = load i32, i32* %6
%226 = add nsw i32 %225, 2
%227 = sext i32 %226 to i64
%228 = getelementptr inbounds i8, i8* %224, i64 %227
%229 = load i8, i8* %228
%230 = sext i8 %229 to i32
%231 = icmp eq i32 %230, 71
br i1 %231, label %232, label %237
232: ; preds = %223
%233 = load i8*, i8** %5
%234 = load i32, i32* %7
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds i8, i8* %233, i64 %235
store i8 87, i8* %236
br label %242
237: ; preds = %223, %214
%238 = load i8*, i8** %5
%239 = load i32, i32* %7
%240 = sext i32 %239 to i64
%241 = getelementptr inbounds i8, i8* %238, i64 %240
store i8 67, i8* %241
br label %242
242: ; preds = %237, %232
br label %243
243: ; preds = %242
br label %244
244: ; preds = %243
br label %245
245: ; preds = %244, %176
br label %246
246: ; preds = %245, %153
br label %247
247: ; preds = %246, %130
br label %248
248: ; preds = %247, %116
br label %249
249: ; preds = %248, %93
br label %250
250: ; preds = %249, %70
br label %251
251: ; preds = %250, %47
br label %771
252: ; preds = %21
%253 = load i8*, i8** %3
%254 = load i32, i32* %6
%255 = sext i32 %254 to i64
%256 = getelementptr inbounds i8, i8* %253, i64 %255
%257 = load i8, i8* %256
%258 = sext i8 %257 to i32
%259 = icmp eq i32 %258, 67
br i1 %259, label %260, label %401
260: ; preds = %252
%261 = load i8*, i8** %3
%262 = load i32, i32* %6
%263 = add nsw i32 %262, 1
%264 = sext i32 %263 to i64
%265 = getelementptr inbounds i8, i8* %261, i64 %264
%266 = load i8, i8* %265
%267 = sext i8 %266 to i32
%268 = icmp eq i32 %267, 85
br i1 %268, label %269, label %274
269: ; preds = %260
%270 = load i8*, i8** %5
%271 = load i32, i32* %7
%272 = sext i32 %271 to i64
%273 = getelementptr inbounds i8, i8* %270, i64 %272
store i8 76, i8* %273
br label %400
274: ; preds = %260
%275 = load i8*, i8** %3
%276 = load i32, i32* %6
%277 = add nsw i32 %276, 1
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds i8, i8* %275, i64 %278
%280 = load i8, i8* %279
%281 = sext i8 %280 to i32
%282 = icmp eq i32 %281, 67
br i1 %282, label %283, label %288
283: ; preds = %274
%284 = load i8*, i8** %5
%285 = load i32, i32* %7
%286 = sext i32 %285 to i64
%287 = getelementptr inbounds i8, i8* %284, i64 %286
store i8 80, i8* %287
br label %399
288: ; preds = %274
%289 = load i8*, i8** %3
%290 = load i32, i32* %6
%291 = add nsw i32 %290, 1
%292 = sext i32 %291 to i64
%293 = getelementptr inbounds i8, i8* %289, i64 %292
%294 = load i8, i8* %293
%295 = sext i8 %294 to i32
%296 = icmp eq i32 %295, 71
br i1 %296, label %297, label %302
297: ; preds = %288
%298 = load i8*, i8** %5
%299 = load i32, i32* %7
%300 = sext i32 %299 to i64
%301 = getelementptr inbounds i8, i8* %298, i64 %300
store i8 82, i8* %301
br label %398
302: ; preds = %288
%303 = load i8*, i8** %3
%304 = load i32, i32* %6
%305 = add nsw i32 %304, 1
%306 = sext i32 %305 to i64
%307 = getelementptr inbounds i8, i8* %303, i64 %306
%308 = load i8, i8* %307
%309 = sext i8 %308 to i32
%310 = icmp eq i32 %309, 65
br i1 %310, label %311, label %325
311: ; preds = %302
%312 = load i8*, i8** %3
%313 = load i32, i32* %6
%314 = add nsw i32 %313, 2
%315 = sext i32 %314 to i64
%316 = getelementptr inbounds i8, i8* %312, i64 %315
%317 = load i8, i8* %316
%318 = sext i8 %317 to i32
%319 = icmp eq i32 %318, 85
br i1 %319, label %320, label %325
320: ; preds = %311
%321 = load i8*, i8** %5
%322 = load i32, i32* %7
%323 = sext i32 %322 to i64
%324 = getelementptr inbounds i8, i8* %321, i64 %323
store i8 72, i8* %324
br label %397
325: ; preds = %311, %302
%326 = load i8*, i8** %3
%327 = load i32, i32* %6
%328 = add nsw i32 %327, 1
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds i8, i8* %326, i64 %329
%331 = load i8, i8* %330
%332 = sext i8 %331 to i32
%333 = icmp eq i32 %332, 65
br i1 %333, label %334, label %348
334: ; preds = %325
%335 = load i8*, i8** %3
%336 = load i32, i32* %6
%337 = add nsw i32 %336, 2
%338 = sext i32 %337 to i64
%339 = getelementptr inbounds i8, i8* %335, i64 %338
%340 = load i8, i8* %339
%341 = sext i8 %340 to i32
%342 = icmp eq i32 %341, 67
br i1 %342, label %343, label %348
343: ; preds = %334
%344 = load i8*, i8** %5
%345 = load i32, i32* %7
%346 = sext i32 %345 to i64
%347 = getelementptr inbounds i8, i8* %344, i64 %346
store i8 72, i8* %347
br label %396
348: ; preds = %334, %325
%349 = load i8*, i8** %3
%350 = load i32, i32* %6
%351 = add nsw i32 %350, 1
%352 = sext i32 %351 to i64
%353 = getelementptr inbounds i8, i8* %349, i64 %352
%354 = load i8, i8* %353
%355 = sext i8 %354 to i32
%356 = icmp eq i32 %355, 65
br i1 %356, label %357, label %371
357: ; preds = %348
%358 = load i8*, i8** %3
%359 = load i32, i32* %6
%360 = add nsw i32 %359, 2
%361 = sext i32 %360 to i64
%362 = getelementptr inbounds i8, i8* %358, i64 %361
%363 = load i8, i8* %362
%364 = sext i8 %363 to i32
%365 = icmp eq i32 %364, 65
br i1 %365, label %366, label %371
366: ; preds = %357
%367 = load i8*, i8** %5
%368 = load i32, i32* %7
%369 = sext i32 %368 to i64
%370 = getelementptr inbounds i8, i8* %367, i64 %369
store i8 81, i8* %370
br label %395
371: ; preds = %357, %348
%372 = load i8*, i8** %3
%373 = load i32, i32* %6
%374 = add nsw i32 %373, 1
%375 = sext i32 %374 to i64
%376 = getelementptr inbounds i8, i8* %372, i64 %375
%377 = load i8, i8* %376
%378 = sext i8 %377 to i32
%379 = icmp eq i32 %378, 65
br i1 %379, label %380, label %394
380: ; preds = %371
%381 = load i8*, i8** %3
%382 = load i32, i32* %6
%383 = add nsw i32 %382, 2
%384 = sext i32 %383 to i64
%385 = getelementptr inbounds i8, i8* %381, i64 %384
%386 = load i8, i8* %385
%387 = sext i8 %386 to i32
%388 = icmp eq i32 %387, 71
br i1 %388, label %389, label %394
389: ; preds = %380
%390 = load i8*, i8** %5
%391 = load i32, i32* %7
%392 = sext i32 %391 to i64
%393 = getelementptr inbounds i8, i8* %390, i64 %392
store i8 81, i8* %393
br label %394
394: ; preds = %389, %380, %371
br label %395
395: ; preds = %394, %366
br label %396
396: ; preds = %395, %343
br label %397
397: ; preds = %396, %320
br label %398
398: ; preds = %397, %297
br label %399
399: ; preds = %398, %283
br label %400
400: ; preds = %399, %269
br label %770
401: ; preds = %252
%402 = load i8*, i8** %3
%403 = load i32, i32* %6
%404 = sext i32 %403 to i64
%405 = getelementptr inbounds i8, i8* %402, i64 %404
%406 = load i8, i8* %405
%407 = sext i8 %406 to i32
%408 = icmp eq i32 %407, 65
br i1 %408, label %409, label %655
409: ; preds = %401
%410 = load i8*, i8** %3
%411 = load i32, i32* %6
%412 = add nsw i32 %411, 1
%413 = sext i32 %412 to i64
%414 = getelementptr inbounds i8, i8* %410, i64 %413
%415 = load i8, i8* %414
%416 = sext i8 %415 to i32
%417 = icmp eq i32 %416, 85
br i1 %417, label %418, label %432
418: ; preds = %409
%419 = load i8*, i8** %3
%420 = load i32, i32* %6
%421 = add nsw i32 %420, 2
%422 = sext i32 %421 to i64
%423 = getelementptr inbounds i8, i8* %419, i64 %422
%424 = load i8, i8* %423
%425 = sext i8 %424 to i32
%426 = icmp eq i32 %425, 71
br i1 %426, label %427, label %432
427: ; preds = %418
%428 = load i8*, i8** %5
%429 = load i32, i32* %7
%430 = sext i32 %429 to i64
%431 = getelementptr inbounds i8, i8* %428, i64 %430
store i8 77, i8* %431
br label %654
432: ; preds = %418, %409
%433 = load i8*, i8** %3
%434 = load i32, i32* %6
%435 = add nsw i32 %434, 1
%436 = sext i32 %435 to i64
%437 = getelementptr inbounds i8, i8* %433, i64 %436
%438 = load i8, i8* %437
%439 = sext i8 %438 to i32
%440 = icmp eq i32 %439, 85
br i1 %440, label %441, label %446
441: ; preds = %432
%442 = load i8*, i8** %5
%443 = load i32, i32* %7
%444 = sext i32 %443 to i64
%445 = getelementptr inbounds i8, i8* %442, i64 %444
store i8 73, i8* %445
br label %653
446: ; preds = %432
%447 = load i8*, i8** %3
%448 = load i32, i32* %6
%449 = add nsw i32 %448, 1
%450 = sext i32 %449 to i64
%451 = getelementptr inbounds i8, i8* %447, i64 %450
%452 = load i8, i8* %451
%453 = sext i8 %452 to i32
%454 = icmp eq i32 %453, 67
br i1 %454, label %455, label %460
455: ; preds = %446
%456 = load i8*, i8** %5
%457 = load i32, i32* %7
%458 = sext i32 %457 to i64
%459 = getelementptr inbounds i8, i8* %456, i64 %458
store i8 84, i8* %459
br label %652
460: ; preds = %446
%461 = load i8*, i8** %3
%462 = load i32, i32* %6
%463 = add nsw i32 %462, 1
%464 = sext i32 %463 to i64
%465 = getelementptr inbounds i8, i8* %461, i64 %464
%466 = load i8, i8* %465
%467 = sext i8 %466 to i32
%468 = icmp eq i32 %467, 65
br i1 %468, label %469, label %483
469: ; preds = %460
%470 = load i8*, i8** %3
%471 = load i32, i32* %6
%472 = add nsw i32 %471, 2
%473 = sext i32 %472 to i64
%474 = getelementptr inbounds i8, i8* %470, i64 %473
%475 = load i8, i8* %474
%476 = sext i8 %475 to i32
%477 = icmp eq i32 %476, 85
br i1 %477, label %478, label %483
478: ; preds = %469
%479 = load i8*, i8** %5
%480 = load i32, i32* %7
%481 = sext i32 %480 to i64
%482 = getelementptr inbounds i8, i8* %479, i64 %481
store i8 78, i8* %482
br label %651
483: ; preds = %469, %460
%484 = load i8*, i8** %3
%485 = load i32, i32* %6
%486 = add nsw i32 %485, 1
%487 = sext i32 %486 to i64
%488 = getelementptr inbounds i8, i8* %484, i64 %487
%489 = load i8, i8* %488
%490 = sext i8 %489 to i32
%491 = icmp eq i32 %490, 65
br i1 %491, label %492, label %506
492: ; preds = %483
%493 = load i8*, i8** %3
%494 = load i32, i32* %6
%495 = add nsw i32 %494, 2
%496 = sext i32 %495 to i64
%497 = getelementptr inbounds i8, i8* %493, i64 %496
%498 = load i8, i8* %497
%499 = sext i8 %498 to i32
%500 = icmp eq i32 %499, 67
br i1 %500, label %501, label %506
501: ; preds = %492
%502 = load i8*, i8** %5
%503 = load i32, i32* %7
%504 = sext i32 %503 to i64
%505 = getelementptr inbounds i8, i8* %502, i64 %504
store i8 78, i8* %505
br label %650
506: ; preds = %492, %483
%507 = load i8*, i8** %3
%508 = load i32, i32* %6
%509 = add nsw i32 %508, 1
%510 = sext i32 %509 to i64
%511 = getelementptr inbounds i8, i8* %507, i64 %510
%512 = load i8, i8* %511
%513 = sext i8 %512 to i32
%514 = icmp eq i32 %513, 65
br i1 %514, label %515, label %529
515: ; preds = %506
%516 = load i8*, i8** %3
%517 = load i32, i32* %6
%518 = add nsw i32 %517, 2
%519 = sext i32 %518 to i64
%520 = getelementptr inbounds i8, i8* %516, i64 %519
%521 = load i8, i8* %520
%522 = sext i8 %521 to i32
%523 = icmp eq i32 %522, 65
br i1 %523, label %524, label %529
524: ; preds = %515
%525 = load i8*, i8** %5
%526 = load i32, i32* %7
%527 = sext i32 %526 to i64
%528 = getelementptr inbounds i8, i8* %525, i64 %527
store i8 75, i8* %528
br label %649
529: ; preds = %515, %506
%530 = load i8*, i8** %3
%531 = load i32, i32* %6
%532 = add nsw i32 %531, 1
%533 = sext i32 %532 to i64
%534 = getelementptr inbounds i8, i8* %530, i64 %533
%535 = load i8, i8* %534
%536 = sext i8 %535 to i32
%537 = icmp eq i32 %536, 65
br i1 %537, label %538, label %552
538: ; preds = %529
%539 = load i8*, i8** %3
%540 = load i32, i32* %6
%541 = add nsw i32 %540, 2
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds i8, i8* %539, i64 %542
%544 = load i8, i8* %543
%545 = sext i8 %544 to i32
%546 = icmp eq i32 %545, 71
br i1 %546, label %547, label %552
547: ; preds = %538
%548 = load i8*, i8** %5
%549 = load i32, i32* %7
%550 = sext i32 %549 to i64
%551 = getelementptr inbounds i8, i8* %548, i64 %550
store i8 75, i8* %551
br label %648
552: ; preds = %538, %529
%553 = load i8*, i8** %3
%554 = load i32, i32* %6
%555 = add nsw i32 %554, 1
%556 = sext i32 %555 to i64
%557 = getelementptr inbounds i8, i8* %553, i64 %556
%558 = load i8, i8* %557
%559 = sext i8 %558 to i32
%560 = icmp eq i32 %559, 71
br i1 %560, label %561, label %575
561: ; preds = %552
%562 = load i8*, i8** %3
%563 = load i32, i32* %6
%564 = add nsw i32 %563, 2
%565 = sext i32 %564 to i64
%566 = getelementptr inbounds i8, i8* %562, i64 %565
%567 = load i8, i8* %566
%568 = sext i8 %567 to i32
%569 = icmp eq i32 %568, 85
br i1 %569, label %570, label %575
570: ; preds = %561
%571 = load i8*, i8** %5
%572 = load i32, i32* %7
%573 = sext i32 %572 to i64
%574 = getelementptr inbounds i8, i8* %571, i64 %573
store i8 83, i8* %574
br label %647
575: ; preds = %561, %552
%576 = load i8*, i8** %3
%577 = load i32, i32* %6
%578 = add nsw i32 %577, 1
%579 = sext i32 %578 to i64
%580 = getelementptr inbounds i8, i8* %576, i64 %579
%581 = load i8, i8* %580
%582 = sext i8 %581 to i32
%583 = icmp eq i32 %582, 71
br i1 %583, label %584, label %598
584: ; preds = %575
%585 = load i8*, i8** %3
%586 = load i32, i32* %6
%587 = add nsw i32 %586, 2
%588 = sext i32 %587 to i64
%589 = getelementptr inbounds i8, i8* %585, i64 %588
%590 = load i8, i8* %589
%591 = sext i8 %590 to i32
%592 = icmp eq i32 %591, 67
br i1 %592, label %593, label %598
593: ; preds = %584
%594 = load i8*, i8** %5
%595 = load i32, i32* %7
%596 = sext i32 %595 to i64
%597 = getelementptr inbounds i8, i8* %594, i64 %596
store i8 83, i8* %597
br label %646
598: ; preds = %584, %575
%599 = load i8*, i8** %3
%600 = load i32, i32* %6
%601 = add nsw i32 %600, 1
%602 = sext i32 %601 to i64
%603 = getelementptr inbounds i8, i8* %599, i64 %602
%604 = load i8, i8* %603
%605 = sext i8 %604 to i32
%606 = icmp eq i32 %605, 71
br i1 %606, label %607, label %621
607: ; preds = %598
%608 = load i8*, i8** %3
%609 = load i32, i32* %6
%610 = add nsw i32 %609, 2
%611 = sext i32 %610 to i64
%612 = getelementptr inbounds i8, i8* %608, i64 %611
%613 = load i8, i8* %612
%614 = sext i8 %613 to i32
%615 = icmp eq i32 %614, 65
br i1 %615, label %616, label %621
616: ; preds = %607
%617 = load i8*, i8** %5
%618 = load i32, i32* %7
%619 = sext i32 %618 to i64
%620 = getelementptr inbounds i8, i8* %617, i64 %619
store i8 82, i8* %620
br label %645
621: ; preds = %607, %598
%622 = load i8*, i8** %3
%623 = load i32, i32* %6
%624 = add nsw i32 %623, 1
%625 = sext i32 %624 to i64
%626 = getelementptr inbounds i8, i8* %622, i64 %625
%627 = load i8, i8* %626
%628 = sext i8 %627 to i32
%629 = icmp eq i32 %628, 71
br i1 %629, label %630, label %644
630: ; preds = %621
%631 = load i8*, i8** %3
%632 = load i32, i32* %6
%633 = add nsw i32 %632, 2
%634 = sext i32 %633 to i64
%635 = getelementptr inbounds i8, i8* %631, i64 %634
%636 = load i8, i8* %635
%637 = sext i8 %636 to i32
%638 = icmp eq i32 %637, 71
br i1 %638, label %639, label %644
639: ; preds = %630
%640 = load i8*, i8** %5
%641 = load i32, i32* %7
%642 = sext i32 %641 to i64
%643 = getelementptr inbounds i8, i8* %640, i64 %642
store i8 82, i8* %643
br label %644
644: ; preds = %639, %630, %621
br label %645
645: ; preds = %644, %616
br label %646
646: ; preds = %645, %593
br label %647
647: ; preds = %646, %570
br label %648
648: ; preds = %647, %547
br label %649
649: ; preds = %648, %524
br label %650
650: ; preds = %649, %501
br label %651
651: ; preds = %650, %478
br label %652
652: ; preds = %651, %455
br label %653
653: ; preds = %652, %441
br label %654
654: ; preds = %653, %427
br label %769
655: ; preds = %401
%656 = load i8*, i8** %3
%657 = load i32, i32* %6
%658 = sext i32 %657 to i64
%659 = getelementptr inbounds i8, i8* %656, i64 %658
%660 = load i8, i8* %659
%661 = sext i8 %660 to i32
%662 = icmp eq i32 %661, 71
br i1 %662, label %663, label %768
663: ; preds = %655
%664 = load i8*, i8** %3
%665 = load i32, i32* %6
%666 = add nsw i32 %665, 1
%667 = sext i32 %666 to i64
%668 = getelementptr inbounds i8, i8* %664, i64 %667
%669 = load i8, i8* %668
%670 = sext i8 %669 to i32
%671 = icmp eq i32 %670, 85
br i1 %671, label %672, label %677
672: ; preds = %663
%673 = load i8*, i8** %5
%674 = load i32, i32* %7
%675 = sext i32 %674 to i64
%676 = getelementptr inbounds i8, i8* %673, i64 %675
store i8 86, i8* %676
br label %767
677: ; preds = %663
%678 = load i8*, i8** %3
%679 = load i32, i32* %6
%680 = add nsw i32 %679, 1
%681 = sext i32 %680 to i64
%682 = getelementptr inbounds i8, i8* %678, i64 %681
%683 = load i8, i8* %682
%684 = sext i8 %683 to i32
%685 = icmp eq i32 %684, 67
br i1 %685, label %686, label %691
686: ; preds = %677
%687 = load i8*, i8** %5
%688 = load i32, i32* %7
%689 = sext i32 %688 to i64
%690 = getelementptr inbounds i8, i8* %687, i64 %689
store i8 65, i8* %690
br label %766
691: ; preds = %677
%692 = load i8*, i8** %3
%693 = load i32, i32* %6
%694 = add nsw i32 %693, 1
%695 = sext i32 %694 to i64
%696 = getelementptr inbounds i8, i8* %692, i64 %695
%697 = load i8, i8* %696
%698 = sext i8 %697 to i32
%699 = icmp eq i32 %698, 71
br i1 %699, label %700, label %705
700: ; preds = %691
%701 = load i8*, i8** %5
%702 = load i32, i32* %7
%703 = sext i32 %702 to i64
%704 = getelementptr inbounds i8, i8* %701, i64 %703
store i8 71, i8* %704
br label %765
705: ; preds = %691
%706 = load i8*, i8** %3
%707 = load i32, i32* %6
%708 = add nsw i32 %707, 2
%709 = sext i32 %708 to i64
%710 = getelementptr inbounds i8, i8* %706, i64 %709
%711 = load i8, i8* %710
%712 = sext i8 %711 to i32
%713 = icmp eq i32 %712, 85
br i1 %713, label %714, label %719
714: ; preds = %705
%715 = load i8*, i8** %5
%716 = load i32, i32* %7
%717 = sext i32 %716 to i64
%718 = getelementptr inbounds i8, i8* %715, i64 %717
store i8 68, i8* %718
br label %764
719: ; preds = %705
%720 = load i8*, i8** %3
%721 = load i32, i32* %6
%722 = add nsw i32 %721, 2
%723 = sext i32 %722 to i64
%724 = getelementptr inbounds i8, i8* %720, i64 %723
%725 = load i8, i8* %724
%726 = sext i8 %725 to i32
%727 = icmp eq i32 %726, 67
br i1 %727, label %728, label %733
728: ; preds = %719
%729 = load i8*, i8** %5
%730 = load i32, i32* %7
%731 = sext i32 %730 to i64
%732 = getelementptr inbounds i8, i8* %729, i64 %731
store i8 68, i8* %732
br label %763
733: ; preds = %719
%734 = load i8*, i8** %3
%735 = load i32, i32* %6
%736 = add nsw i32 %735, 2
%737 = sext i32 %736 to i64
%738 = getelementptr inbounds i8, i8* %734, i64 %737
%739 = load i8, i8* %738
%740 = sext i8 %739 to i32
%741 = icmp eq i32 %740, 65
br i1 %741, label %742, label %747
742: ; preds = %733
%743 = load i8*, i8** %5
%744 = load i32, i32* %7
%745 = sext i32 %744 to i64
%746 = getelementptr inbounds i8, i8* %743, i64 %745
store i8 69, i8* %746
br label %762
747: ; preds = %733
%748 = load i8*, i8** %3
%749 = load i32, i32* %6
%750 = add nsw i32 %749, 2
%751 = sext i32 %750 to i64
%752 = getelementptr inbounds i8, i8* %748, i64 %751
%753 = load i8, i8* %752
%754 = sext i8 %753 to i32
%755 = icmp eq i32 %754, 71
br i1 %755, label %756, label %761
756: ; preds = %747
%757 = load i8*, i8** %5
%758 = load i32, i32* %7
%759 = sext i32 %758 to i64
%760 = getelementptr inbounds i8, i8* %757, i64 %759
store i8 69, i8* %760
br label %761
761: ; preds = %756, %747
br label %762
762: ; preds = %761, %742
br label %763
763: ; preds = %762, %728
br label %764
764: ; preds = %763, %714
br label %765
765: ; preds = %764, %700
br label %766
766: ; preds = %765, %686
br label %767
767: ; preds = %766, %672
br label %768
768: ; preds = %767, %655
br label %769
769: ; preds = %768, %654
br label %770
770: ; preds = %769, %400
br label %771
771: ; preds = %770, %251
%772 = load i32, i32* %7
%773 = add nsw i32 %772, 1
store i32 %773, i32* %7
%774 = load i32, i32* %6
%775 = add nsw i32 %774, 3
store i32 %775, i32* %6
br label %14
776: ; preds = %211, %190, %14
%777 = load i8*, i8** %5
%778 = load i32, i32* %7
%779 = sext i32 %778 to i64
%780 = getelementptr inbounds i8, i8* %777, i64 %779
store i8 0, i8* %780
%781 = load i8*, i8** %5
ret i8* %781
}

LLVM IR (-O2):
define i8* @rna2prot(i8* %0, i32 %1) {
%3 = add nsw i32 %1, 1
%4 = tail call i8* @malloc(i32 %3)
br label %5
5: ; preds = %130, %2
%6 = phi i64 [ %131, %130 ], [ 0, %2 ]
%7 = phi i64 [ %132, %130 ], [ 0, %2 ]
%8 = getelementptr inbounds i8, i8* %0, i64 %7
%9 = load i8, i8* %8
switch i8 %9, label %130 [
i8 0, label %133
i8 85, label %10
i8 67, label %48
i8 65, label %70
i8 71, label %108
]
10: ; preds = %5
%11 = add nuw nsw i64 %7, 1
%12 = getelementptr inbounds i8, i8* %0, i64 %11
%13 = load i8, i8* %12
switch i8 %13, label %46 [
i8 85, label %14
i8 67, label %26
i8 65, label %28
i8 71, label %38
]
14: ; preds = %10
%15 = add nuw nsw i64 %7, 2
%16 = getelementptr inbounds i8, i8* %0, i64 %15
%17 = load i8, i8* %16
switch i8 %17, label %46 [
i8 85, label %18
i8 67, label %20
i8 65, label %22
i8 71, label %24
]
18: ; preds = %14
%19 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 70, i8* %19
br label %130
20: ; preds = %14
%21 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 70, i8* %21
br label %130
22: ; preds = %14
%23 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 76, i8* %23
br label %130
24: ; preds = %14
%25 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 76, i8* %25
br label %130
26: ; preds = %10
%27 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 83, i8* %27
br label %130
28: ; preds = %10
%29 = add nuw nsw i64 %7, 2
%30 = getelementptr inbounds i8, i8* %0, i64 %29
%31 = load i8, i8* %30
switch i8 %31, label %36 [
i8 85, label %32
i8 67, label %34
]
32: ; preds = %28
%33 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 89, i8* %33
br label %130
34: ; preds = %28
%35 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 89, i8* %35
br label %130
36: ; preds = %28
%37 = add i64 %6, 1
br label %133
38: ; preds = %10
%39 = add nuw nsw i64 %7, 2
%40 = getelementptr inbounds i8, i8* %0, i64 %39
%41 = load i8, i8* %40
switch i8 %41, label %46 [
i8 65, label %42
i8 71, label %44
]
42: ; preds = %38
%43 = add i64 %6, 1
br label %133
44: ; preds = %38
%45 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 87, i8* %45
br label %130
46: ; preds = %38, %14, %10
%47 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 67, i8* %47
br label %130
48: ; preds = %5
%49 = add nuw nsw i64 %7, 1
%50 = getelementptr inbounds i8, i8* %0, i64 %49
%51 = load i8, i8* %50
switch i8 %51, label %130 [
i8 85, label %52
i8 67, label %54
i8 71, label %56
i8 65, label %58
]
52: ; preds = %48
%53 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 76, i8* %53
br label %130
54: ; preds = %48
%55 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 80, i8* %55
br label %130
56: ; preds = %48
%57 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 82, i8* %57
br label %130
58: ; preds = %48
%59 = add nuw nsw i64 %7, 2
%60 = getelementptr inbounds i8, i8* %0, i64 %59
%61 = load i8, i8* %60
switch i8 %61, label %130 [
i8 85, label %62
i8 67, label %64
i8 65, label %66
i8 71, label %68
]
62: ; preds = %58
%63 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 72, i8* %63
br label %130
64: ; preds = %58
%65 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 72, i8* %65
br label %130
66: ; preds = %58
%67 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 81, i8* %67
br label %130
68: ; preds = %58
%69 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 81, i8* %69
br label %130
70: ; preds = %5
%71 = add nuw nsw i64 %7, 1
%72 = getelementptr inbounds i8, i8* %0, i64 %71
%73 = load i8, i8* %72
switch i8 %73, label %130 [
i8 85, label %74
i8 65, label %84
i8 67, label %82
i8 71, label %96
]
74: ; preds = %70
%75 = add nuw nsw i64 %7, 2
%76 = getelementptr inbounds i8, i8* %0, i64 %75
%77 = load i8, i8* %76
%78 = icmp eq i8 %77, 71
%79 = getelementptr inbounds i8, i8* %4, i64 %6
br i1 %78, label %80, label %81
80: ; preds = %74
store i8 77, i8* %79
br label %130
81: ; preds = %74
store i8 73, i8* %79
br label %130
82: ; preds = %70
%83 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 84, i8* %83
br label %130
84: ; preds = %70
%85 = add nuw nsw i64 %7, 2
%86 = getelementptr inbounds i8, i8* %0, i64 %85
%87 = load i8, i8* %86
switch i8 %87, label %130 [
i8 85, label %88
i8 67, label %90
i8 65, label %92
i8 71, label %94
]
88: ; preds = %84
%89 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 78, i8* %89
br label %130
90: ; preds = %84
%91 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 78, i8* %91
br label %130
92: ; preds = %84
%93 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 75, i8* %93
br label %130
94: ; preds = %84
%95 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 75, i8* %95
br label %130
96: ; preds = %70
%97 = add nuw nsw i64 %7, 2
%98 = getelementptr inbounds i8, i8* %0, i64 %97
%99 = load i8, i8* %98
switch i8 %99, label %130 [
i8 85, label %100
i8 67, label %102
i8 65, label %104
i8 71, label %106
]
100: ; preds = %96
%101 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 83, i8* %101
br label %130
102: ; preds = %96
%103 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 83, i8* %103
br label %130
104: ; preds = %96
%105 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 82, i8* %105
br label %130
106: ; preds = %96
%107 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 82, i8* %107
br label %130
108: ; preds = %5
%109 = add nuw nsw i64 %7, 1
%110 = getelementptr inbounds i8, i8* %0, i64 %109
%111 = load i8, i8* %110
switch i8 %111, label %118 [
i8 85, label %112
i8 67, label %114
i8 71, label %116
]
112: ; preds = %108
%113 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 86, i8* %113
br label %130
114: ; preds = %108
%115 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 65, i8* %115
br label %130
116: ; preds = %108
%117 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 71, i8* %117
br label %130
118: ; preds = %108
%119 = add nuw nsw i64 %7, 2
%120 = getelementptr inbounds i8, i8* %0, i64 %119
%121 = load i8, i8* %120
switch i8 %121, label %130 [
i8 85, label %122
i8 67, label %124
i8 65, label %126
i8 71, label %128
]
122: ; preds = %118
%123 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 68, i8* %123
br label %130
124: ; preds = %118
%125 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 68, i8* %125
br label %130
126: ; preds = %118
%127 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 69, i8* %127
br label %130
128: ; preds = %118
%129 = getelementptr inbounds i8, i8* %4, i64 %6
store i8 69, i8* %129
br label %130
130: ; preds = %96, %84, %58, %70, %48, %118, %5, %54, %62, %66, %68, %64, %56, %52, %114, %122, %126, %128, %124, %116, %112, %80, %82, %90, %94, %102, %106, %104, %100, %92, %88, %81, %18, %22, %26, %34, %46, %44, %32, %24, %20
%131 = add nuw i64 %6, 1
%132 = add nuw i64 %7, 3
br label %5
133: ; preds = %5, %42, %36
%134 = phi i64 [ %37, %36 ], [ %43, %42 ], [ %6, %5 ]
%135 = shl i64 %134, 32
%136 = ashr exact i64 %135, 32
%137 = getelementptr inbounds i8, i8* %4, i64 %136
store i8 0, i8* %137
ret i8* %4
}