char translate(char first_base, char second_base, char third_base,
               char *dna_number) {
  switch (first_base) {
  case 'A':
    switch (second_base) {
    case 'A':
      switch (third_base) {
      case 'A':
        *dna_number = 0;
        return ('K');
      case 'T':
        *dna_number = 1;
        return ('N');
      case 'U':
        *dna_number = 2;
        return ('N');
      case 'G':
        *dna_number = 3;
        return ('K');
      case 'C':
        *dna_number = 4;
        return ('N');
      default:
        error("No regular aminoacid !");
      }
    case 'T':
      switch (third_base) {
      case 'A':
        *dna_number = 5;
        return ('I');
      case 'T':
        *dna_number = 6;
        return ('I');
      case 'G':
        *dna_number = 7;
        return ('M');
      case 'C':
        *dna_number = 8;
        return ('I');
      default:
        error("No regular aminoacid !");
      }
    case 'U':
      switch (third_base) {
      case 'A':
        *dna_number = 9;
        return ('I');
      case 'U':
        *dna_number = 10;
        return ('I');
      case 'G':
        *dna_number = 11;
        return ('M');
      case 'C':
        *dna_number = 12;
        return ('I');
      default:
        error("No regular aminoacid !");
      }
    case 'G':
      switch (third_base) {
      case 'A':
        *dna_number = 13;
        return ('R');
      case 'T':
        *dna_number = 14;
        return ('S');
      case 'U':
        *dna_number = 15;
        return ('S');
      case 'G':
        *dna_number = 16;
        return ('R');
      case 'C':
        *dna_number = 17;
        return ('S');
      default:
        error("No regular aminoacid !");
      }
    case 'C':
      switch (third_base) {
      case 'A':
        *dna_number = 18;
        return ('T');
      case 'T':
        *dna_number = 19;
        return ('T');
      case 'U':
        *dna_number = 20;
        return ('T');
      case 'G':
        *dna_number = 21;
        return ('T');
      case 'C':
        *dna_number = 22;
        return ('T');
      default:
        error("No regular aminoacid !");
      }
    default:
      error("No regular aminoacid !");
    }
  case 'T':
    switch (second_base) {
    case 'A':
      switch (third_base) {
      case 'A':
        *dna_number = 23;
        return ('X');
      case 'T':
        *dna_number = 24;
        return ('Y');
      case 'G':
        *dna_number = 25;
        return ('X');
      case 'C':
        *dna_number = 26;
        return ('Y');
      default:
        error("No regular aminoacid !");
      }
    case 'T':
      switch (third_base) {
      case 'A':
        *dna_number = 27;
        return ('L');
      case 'T':
        *dna_number = 28;
        return ('F');
      case 'G':
        *dna_number = 29;
        return ('L');
      case 'C':
        *dna_number = 30;
        return ('F');
      default:
        error("No regular aminoacid !");
      }
    case 'G':
      switch (third_base) {
      case 'A':
        *dna_number = 31;
        return ('X');
      case 'T':
        *dna_number = 32;
        return ('C');
      case 'G':
        *dna_number = 33;
        return ('W');
      case 'C':
        *dna_number = 34;
        return ('C');
      default:
        error("No regular aminoacid !");
      }
    case 'C':
      switch (third_base) {
      case 'A':
        *dna_number = 35;
        return ('S');
      case 'T':
        *dna_number = 36;
        return ('S');
      case 'G':
        *dna_number = 37;
        return ('S');
      case 'C':
        *dna_number = 38;
        return ('S');
      default:
        error("No regular aminoacid !");
      }
    default:
      error("no regular Aminoacid !");
    }
  case 'U':
    switch (second_base) {
    case 'A':
      switch (third_base) {
      case 'A':
        *dna_number = 39;
        return ('X');
      case 'U':
        *dna_number = 40;
        return ('Y');
      case 'G':
        *dna_number = 41;
        return ('X');
      case 'C':
        *dna_number = 42;
        return ('Y');
      default:
        error("No regular aminoacid !");
      }
    case 'U':
      switch (third_base) {
      case 'A':
        *dna_number = 43;
        return ('L');
      case 'U':
        *dna_number = 44;
        return ('F');
      case 'G':
        *dna_number = 45;
        return ('L');
      case 'C':
        *dna_number = 46;
        return ('F');
      default:
        error("No regular aminoacid !");
      }
    case 'G':
      switch (third_base) {
      case 'A':
        *dna_number = 47;
        return ('X');
      case 'U':
        *dna_number = 48;
        return ('C');
      case 'G':
        *dna_number = 49;
        return ('W');
      case 'C':
        *dna_number = 50;
        return ('C');
      default:
        error("No regular aminoacid !");
      }
    case 'C':
      switch (third_base) {
      case 'A':
        *dna_number = 51;
        return ('S');
      case 'U':
        *dna_number = 52;
        return ('S');
      case 'G':
        *dna_number = 53;
        return ('S');
      case 'C':
        *dna_number = 54;
        return ('S');
      default:
        error("No regular aminoacid !");
      }
    default:
      error("no regular Aminoacid !");
    }
  case 'G':
    switch (second_base) {
    case 'A':
      switch (third_base) {
      case 'A':
        *dna_number = 55;
        return ('E');
      case 'T':
        *dna_number = 56;
        return ('D');
      case 'U':
        *dna_number = 57;
        return ('D');
      case 'G':
        *dna_number = 58;
        return ('E');
      case 'C':
        *dna_number = 59;
        return ('D');
      default:
        error("No regular aminoacid !");
      }
    case 'T':
      switch (third_base) {
      case 'A':
        *dna_number = 60;
        return ('V');
      case 'T':
        *dna_number = 61;
        return ('V');
      case 'G':
        *dna_number = 62;
        return ('V');
      case 'C':
        *dna_number = 63;
        return ('V');
      default:
        error("No regular aminoacid !");
      }
    case 'U':
      switch (third_base) {
      case 'A':
        *dna_number = 64;
        return ('V');
      case 'U':
        *dna_number = 65;
        return ('V');
      case 'G':
        *dna_number = 66;
        return ('V');
      case 'C':
        *dna_number = 67;
        return ('V');
      default:
        error("No regular aminoacid !");
      }
    case 'G':
      switch (third_base) {
      case 'A':
        *dna_number = 68;
        return ('G');
      case 'T':
        *dna_number = 69;
        return ('G');
      case 'U':
        *dna_number = 70;
        return ('G');
      case 'G':
        *dna_number = 71;
        return ('G');
      case 'C':
        *dna_number = 72;
        return ('G');
      default:
        error("No regular aminoacid !");
      }
    case 'C':
      switch (third_base) {
      case 'A':
        *dna_number = 73;
        return ('A');
      case 'T':
        *dna_number = 74;
        return ('A');
      case 'U':
        *dna_number = 75;
        return ('A');
      case 'G':
        *dna_number = 76;
        return ('A');
      case 'C':
        *dna_number = 77;
        return ('A');
      default:
        error("No regular aminoacid !");
      }
    default:
      error("No regular aminoacid !");
    }
  case 'C':
    switch (second_base) {
    case 'A':
      switch (third_base) {
      case 'A':
        *dna_number = 78;
        return ('Q');
      case 'T':
        *dna_number = 79;
        return ('H');
      case 'U':
        *dna_number = 80;
        return ('H');
      case 'G':
        *dna_number = 81;
        return ('Q');
      case 'C':
        *dna_number = 82;
        return ('H');
      default:
        error("No regular aminoacid !");
      }
    case 'T':
      switch (third_base) {
      case 'A':
        *dna_number = 83;
        return ('L');
      case 'T':
        *dna_number = 84;
        return ('L');
      case 'G':
        *dna_number = 85;
        return ('L');
      case 'C':
        *dna_number = 86;
        return ('L');
      default:
        error("No regular aminoacid !");
      }
    case 'U':
      switch (third_base) {
      case 'A':
        *dna_number = 87;
        return ('L');
      case 'U':
        *dna_number = 88;
        return ('L');
      case 'G':
        *dna_number = 89;
        return ('L');
      case 'C':
        *dna_number = 90;
        return ('L');
      default:
        error("No regular aminoacid !");
      }
    case 'G':
      switch (third_base) {
      case 'A':
        *dna_number = 91;
        return ('R');
      case 'T':
        *dna_number = 92;
        return ('R');
      case 'U':
        *dna_number = 93;
        return ('R');
      case 'G':
        *dna_number = 94;
        return ('R');
      case 'C':
        *dna_number = 95;
        return ('R');
      default:
        error("No regular aminoacid !");
      }
    case 'C':
      switch (third_base) {
      case 'A':
        *dna_number = 96;
        return ('P');
      case 'T':
        *dna_number = 97;
        return ('P');
      case 'U':
        *dna_number = 98;
        return ('P');
      case 'G':
        *dna_number = 99;
        return ('P');
      case 'C':
        *dna_number = 100;
        return ('P');
      default:
        error("No regular aminoacid !");
      }
    default:
      error("No regular aminoacid !");
    }
  default:
    error("No regular aminoacid !");
  }
  abort();
}


x86 assembly (clang, -O0):
<translate>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
mov    %dl,%al
mov    %sil,%dl
mov    %dil,%sil
mov    %sil,-0x2(%rbp)
mov    %dl,-0x3(%rbp)
mov    %al,-0x4(%rbp)
mov    %rcx,-0x10(%rbp)
movsbl -0x2(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x14,%eax
ja     1ec1 <translate+0xda1>
mov    -0x18(%rbp),%rax
lea    0xe9e(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x3(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x14,%eax
ja     1436 <translate+0x316>
mov    -0x20(%rbp),%rax
lea    0xec8(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x14,%eax
ja     120f <translate+0xef>
mov    -0x28(%rbp),%rax
lea    0xef2(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x0,(%rax)
movb   $0x4b,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x1,(%rax)
movb   $0x4e,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x2,(%rax)
movb   $0x4e,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x3,(%rax)
movb   $0x4b,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x4,(%rax)
movb   $0x4e,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x174e(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1222 <translate+0x102>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x30(%rbp)
sub    $0x13,%eax
ja     128c <translate+0x16c>
mov    -0x30(%rbp),%rax
lea    0xeb9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x5,(%rax)
movb   $0x49,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x6,(%rax)
movb   $0x49,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x7,(%rax)
movb   $0x4d,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x8,(%rax)
movb   $0x49,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x16d1(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    129f <translate+0x17f>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x38(%rbp)
sub    $0x14,%eax
ja     1309 <translate+0x1e9>
mov    -0x38(%rbp),%rax
lea    0xe8c(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x9,(%rax)
movb   $0x49,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0xa,(%rax)
movb   $0x49,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0xb,(%rax)
movb   $0x4d,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0xc,(%rax)
movb   $0x49,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x1654(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    131c <translate+0x1fc>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x40(%rbp)
sub    $0x14,%eax
ja     1396 <translate+0x276>
mov    -0x40(%rbp),%rax
lea    0xe63(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0xd,(%rax)
movb   $0x52,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0xe,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0xf,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x10,(%rax)
movb   $0x52,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x11,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x15c7(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    13a9 <translate+0x289>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x48(%rbp)
sub    $0x14,%eax
ja     1423 <translate+0x303>
mov    -0x48(%rbp),%rax
lea    0xe2a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x12,(%rax)
movb   $0x54,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x13,(%rax)
movb   $0x54,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x14,(%rax)
movb   $0x54,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x15,(%rax)
movb   $0x54,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x16,(%rax)
movb   $0x54,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x153a(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1436 <translate+0x316>
lea    0x1527(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1449 <translate+0x329>
movsbl -0x3(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x50(%rbp)
sub    $0x13,%eax
ja     1667 <translate+0x547>
mov    -0x50(%rbp),%rax
lea    0xdde(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x58(%rbp)
sub    $0x13,%eax
ja     14dd <translate+0x3bd>
mov    -0x58(%rbp),%rax
lea    0xe04(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x17,(%rax)
movb   $0x58,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x18,(%rax)
movb   $0x59,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x19,(%rax)
movb   $0x58,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x1a,(%rax)
movb   $0x59,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x1480(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    14f0 <translate+0x3d0>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x60(%rbp)
sub    $0x13,%eax
ja     155a <translate+0x43a>
mov    -0x60(%rbp),%rax
lea    0xdd7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x1b,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x1c,(%rax)
movb   $0x46,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x1d,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x1e,(%rax)
movb   $0x46,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x1403(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    156d <translate+0x44d>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x68(%rbp)
sub    $0x13,%eax
ja     15d7 <translate+0x4b7>
mov    -0x68(%rbp),%rax
lea    0xdaa(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x1f,(%rax)
movb   $0x58,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x20,(%rax)
movb   $0x43,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x21,(%rax)
movb   $0x57,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x22,(%rax)
movb   $0x43,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x1386(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    15ea <translate+0x4ca>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x70(%rbp)
sub    $0x13,%eax
ja     1654 <translate+0x534>
mov    -0x70(%rbp),%rax
lea    0xd7d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x23,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x24,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x25,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x26,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x1309(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1667 <translate+0x547>
lea    0x130d(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    167a <translate+0x55a>
movsbl -0x3(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x78(%rbp)
sub    $0x14,%eax
ja     18aa <translate+0x78a>
mov    -0x78(%rbp),%rax
lea    0xd3d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x80(%rbp)
sub    $0x14,%eax
ja     170e <translate+0x5ee>
mov    -0x80(%rbp),%rax
lea    0xd67(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x27,(%rax)
movb   $0x58,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x28,(%rax)
movb   $0x59,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x29,(%rax)
movb   $0x58,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x2a,(%rax)
movb   $0x59,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x124f(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1721 <translate+0x601>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x88(%rbp)
sub    $0x14,%eax
ja     1791 <translate+0x671>
mov    -0x88(%rbp),%rax
lea    0xd38(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x2b,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x2c,(%rax)
movb   $0x46,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x2d,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x2e,(%rax)
movb   $0x46,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x11cc(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    17a4 <translate+0x684>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x90(%rbp)
sub    $0x14,%eax
ja     1814 <translate+0x6f4>
mov    -0x90(%rbp),%rax
lea    0xd09(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x2f,(%rax)
movb   $0x58,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x30,(%rax)
movb   $0x43,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x31,(%rax)
movb   $0x57,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x32,(%rax)
movb   $0x43,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x1149(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1827 <translate+0x707>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0x98(%rbp)
sub    $0x14,%eax
ja     1897 <translate+0x777>
mov    -0x98(%rbp),%rax
lea    0xcda(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x33,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x34,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x35,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x36,(%rax)
movb   $0x53,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0x10c6(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    18aa <translate+0x78a>
lea    0x10ca(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    18bd <translate+0x79d>
movsbl -0x3(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xa0(%rbp)
sub    $0x14,%eax
ja     1bac <translate+0xa8c>
mov    -0xa0(%rbp),%rax
lea    0xc98(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xa8(%rbp)
sub    $0x14,%eax
ja     196d <translate+0x84d>
mov    -0xa8(%rbp),%rax
lea    0xcbc(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x37,(%rax)
movb   $0x45,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x38,(%rax)
movb   $0x44,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x39,(%rax)
movb   $0x44,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x3a,(%rax)
movb   $0x45,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x3b,(%rax)
movb   $0x44,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xff0(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1980 <translate+0x860>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xb0(%rbp)
sub    $0x13,%eax
ja     19f0 <translate+0x8d0>
mov    -0xb0(%rbp),%rax
lea    0xc7d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x3c,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x3d,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x3e,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x3f,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xf6d(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1a03 <translate+0x8e3>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xb8(%rbp)
sub    $0x14,%eax
ja     1a73 <translate+0x953>
mov    -0xb8(%rbp),%rax
lea    0xc4a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x40,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x41,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x42,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x43,(%rax)
movb   $0x56,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xeea(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1a86 <translate+0x966>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xc0(%rbp)
sub    $0x14,%eax
ja     1b06 <translate+0x9e6>
mov    -0xc0(%rbp),%rax
lea    0xc1b(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x44,(%rax)
movb   $0x47,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x45,(%rax)
movb   $0x47,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x46,(%rax)
movb   $0x47,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x47,(%rax)
movb   $0x47,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x48,(%rax)
movb   $0x47,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xe57(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1b19 <translate+0x9f9>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xc8(%rbp)
sub    $0x14,%eax
ja     1b99 <translate+0xa79>
mov    -0xc8(%rbp),%rax
lea    0xbdc(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x49,(%rax)
movb   $0x41,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x4a,(%rax)
movb   $0x41,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x4b,(%rax)
movb   $0x41,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x4c,(%rax)
movb   $0x41,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x4d,(%rax)
movb   $0x41,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xdc4(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1bac <translate+0xa8c>
lea    0xdb1(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1bbf <translate+0xa9f>
movsbl -0x3(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xd0(%rbp)
sub    $0x14,%eax
ja     1eae <translate+0xd8e>
mov    -0xd0(%rbp),%rax
lea    0xb8a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xd8(%rbp)
sub    $0x14,%eax
ja     1c6f <translate+0xb4f>
mov    -0xd8(%rbp),%rax
lea    0xbae(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x4e,(%rax)
movb   $0x51,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x4f,(%rax)
movb   $0x48,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x50,(%rax)
movb   $0x48,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x51,(%rax)
movb   $0x51,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x52,(%rax)
movb   $0x48,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xcee(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1c82 <translate+0xb62>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xe0(%rbp)
sub    $0x13,%eax
ja     1cf2 <translate+0xbd2>
mov    -0xe0(%rbp),%rax
lea    0xb6f(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x53,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x54,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x55,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x56,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xc6b(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1d05 <translate+0xbe5>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xe8(%rbp)
sub    $0x14,%eax
ja     1d75 <translate+0xc55>
mov    -0xe8(%rbp),%rax
lea    0xb3c(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x57,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x58,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x59,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x5a,(%rax)
movb   $0x4c,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xbe8(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1d88 <translate+0xc68>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xf0(%rbp)
sub    $0x14,%eax
ja     1e08 <translate+0xce8>
mov    -0xf0(%rbp),%rax
lea    0xb0d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x5b,(%rax)
movb   $0x52,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x5c,(%rax)
movb   $0x52,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x5d,(%rax)
movb   $0x52,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x5e,(%rax)
movb   $0x52,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x5f,(%rax)
movb   $0x52,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xb55(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1e1b <translate+0xcfb>
movsbl -0x4(%rbp),%eax
add    $0xffffffbf,%eax
mov    %eax,%ecx
mov    %rcx,-0xf8(%rbp)
sub    $0x14,%eax
ja     1e9b <translate+0xd7b>
mov    -0xf8(%rbp),%rax
lea    0xace(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0x60,(%rax)
movb   $0x50,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x61,(%rax)
movb   $0x50,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x62,(%rax)
movb   $0x50,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x63,(%rax)
movb   $0x50,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
mov    -0x10(%rbp),%rax
movb   $0x64,(%rax)
movb   $0x50,-0x1(%rbp)
jmp    1ed4 <translate+0xdb4>
lea    0xac2(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1eae <translate+0xd8e>
lea    0xaaf(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
jmp    1ec1 <translate+0xda1>
lea    0xa9c(%rip),%rdi
mov    $0x0,%al
call   1040 <error@plt>
call   1030 <abort@plt>
movsbl -0x1(%rbp),%eax
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<translate>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
add    $0xffffffbf,%edi
cmp    $0x14,%edi
ja     1952 <translate+0x832>
mov    %rcx,%r14
mov    %edx,%r15d
lea    0xec0(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
movsbl %sil,%ebx
lea    -0x41(%rbx),%eax
cmp    $0x14,%eax
ja     18e8 <translate+0x7c8>
lea    0xef4(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     1907 <translate+0x7e7>
mov    $0x4b,%al
xor    %ecx,%ecx
lea    0xf24(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x4e,%al
mov    $0x4,%cl
jmp    1928 <translate+0x808>
movsbl %sil,%ebx
jmp    134d <translate+0x22d>
movsbl %sil,%ebx
jmp    16a2 <translate+0x582>
movsbl %sil,%ebx
jmp    1433 <translate+0x313>
movsbl %sil,%ebx
lea    -0x41(%rbx),%eax
cmp    $0x13,%eax
ja     133f <translate+0x21f>
lea    0x1080(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x13,%edx
ja     1639 <translate+0x519>
mov    $0x58,%al
mov    $0x17,%cl
lea    0x10ac(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x59,%al
mov    $0x1a,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
add    $0xffffffbf,%ebp
cmp    $0x13,%ebp
ja     1331 <translate+0x211>
mov    $0x53,%al
mov    $0x23,%cl
lea    0x116f(%rip),%rdx
movslq (%rdx,%rbp,4),%rsi
add    %rdx,%rsi
jmp    *%rsi
mov    $0x26,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x13,%edx
ja     158c <translate+0x46c>
mov    $0x58,%al
mov    $0x1f,%cl
lea    0x10f4(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x43,%al
mov    $0x22,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x13,%edx
ja     15b1 <translate+0x491>
mov    $0x4c,%al
mov    $0x1b,%cl
lea    0x1077(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x46,%al
mov    $0x1e,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
add    $0xffffffbf,%ebp
cmp    $0x14,%ebp
ja     18da <translate+0x7ba>
mov    $0x54,%al
mov    $0x12,%cl
lea    0xf56(%rip),%rdx
movslq (%rdx,%rbp,4),%rsi
add    %rdx,%rsi
jmp    *%rsi
mov    $0x16,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     18b7 <translate+0x797>
mov    $0x52,%al
mov    $0xd,%cl
lea    0xed7(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x53,%al
mov    $0x11,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x13,%edx
ja     1871 <translate+0x751>
mov    $0x49,%al
mov    $0x5,%cl
lea    0xe06(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x8,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     184e <translate+0x72e>
mov    $0x49,%al
mov    $0x9,%cl
lea    0xe2b(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0xc,%cl
jmp    1928 <translate+0x808>
lea    0x162c(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    0x1635(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    -0x41(%rbx),%eax
cmp    $0x14,%eax
ja     1425 <translate+0x305>
lea    0x1078(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     15f5 <translate+0x4d5>
mov    $0x58,%al
mov    $0x27,%cl
lea    0x10a8(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x59,%al
mov    $0x2a,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
add    $0xffffffbf,%ebp
cmp    $0x14,%ebp
ja     1417 <translate+0x2f7>
mov    $0x53,%al
mov    $0x33,%cl
lea    0x117b(%rip),%rdx
movslq (%rdx,%rbp,4),%rsi
add    %rdx,%rsi
jmp    *%rsi
mov    $0x36,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     1536 <translate+0x416>
mov    $0x58,%al
mov    $0x2f,%cl
lea    0x10fc(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x43,%al
mov    $0x32,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     155b <translate+0x43b>
mov    $0x4c,%al
mov    $0x2b,%cl
lea    0x107b(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x46,%al
mov    $0x2e,%cl
jmp    1928 <translate+0x808>
lea    0x1546(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    0x154f(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    -0x41(%rbx),%eax
cmp    $0x14,%eax
ja     1694 <translate+0x574>
lea    0x1136(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     1894 <translate+0x774>
mov    $0x45,%al
mov    $0x37,%cl
lea    0x1166(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x44,%al
mov    $0x3b,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
add    $0xffffffbf,%ebp
cmp    $0x14,%ebp
ja     1686 <translate+0x566>
mov    $0x41,%al
mov    $0x49,%cl
lea    0x1285(%rip),%rdx
movslq (%rdx,%rbp,4),%rsi
add    %rdx,%rsi
jmp    *%rsi
mov    $0x4d,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     165c <translate+0x53c>
mov    $0x47,%al
mov    $0x44,%cl
lea    0x1206(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x48,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x13,%edx
ja     1618 <translate+0x4f8>
mov    $0x56,%al
mov    $0x3c,%cl
lea    0x1137(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x3f,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebp
lea    -0x41(%rbp),%edx
cmp    $0x14,%edx
ja     15d4 <translate+0x4b4>
mov    $0x56,%al
mov    $0x40,%cl
lea    0x115c(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x43,%cl
jmp    1928 <translate+0x808>
mov    $0x35,%cl
jmp    1928 <translate+0x808>
mov    $0x34,%cl
jmp    1928 <translate+0x808>
lea    0x1427(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    139a <translate+0x27a>
mov    $0x57,%al
mov    $0x31,%cl
jmp    1928 <translate+0x808>
mov    $0x43,%al
mov    $0x30,%cl
jmp    1928 <translate+0x808>
lea    0x1402(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    13c1 <translate+0x2a1>
mov    $0x2d,%cl
jmp    1928 <translate+0x808>
mov    $0x46,%al
mov    $0x2c,%cl
jmp    1928 <translate+0x808>
mov    $0x25,%cl
jmp    1928 <translate+0x808>
mov    $0x24,%cl
jmp    1928 <translate+0x808>
lea    0x13d1(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    1202 <translate+0xe2>
mov    $0x57,%al
mov    $0x21,%cl
jmp    1928 <translate+0x808>
mov    $0x43,%al
mov    $0x20,%cl
jmp    1928 <translate+0x808>
lea    0x13ac(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    122d <translate+0x10d>
mov    $0x1d,%cl
jmp    1928 <translate+0x808>
mov    $0x46,%al
mov    $0x1c,%cl
jmp    1928 <translate+0x808>
lea    0x1389(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    14ab <translate+0x38b>
mov    $0x42,%cl
jmp    1928 <translate+0x808>
mov    $0x41,%cl
jmp    1928 <translate+0x808>
lea    0x1368(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    13ee <translate+0x2ce>
mov    $0x29,%cl
jmp    1928 <translate+0x808>
mov    $0x59,%al
mov    $0x28,%cl
jmp    1928 <translate+0x808>
lea    0x1345(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    1501 <translate+0x3e1>
mov    $0x3e,%cl
jmp    1928 <translate+0x808>
mov    $0x3d,%cl
jmp    1928 <translate+0x808>
lea    0x1324(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    125a <translate+0x13a>
mov    $0x19,%cl
jmp    1928 <translate+0x808>
mov    $0x59,%al
mov    $0x18,%cl
jmp    1928 <translate+0x808>
lea    0x1301(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    1480 <translate+0x360>
mov    $0x47,%cl
mov    $0x47,%al
jmp    1928 <translate+0x808>
mov    $0x45,%cl
jmp    1928 <translate+0x808>
mov    $0x46,%cl
jmp    1928 <translate+0x808>
lea    0x12d7(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    0x12c9(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
add    $0xffffffbf,%ebx
cmp    $0x14,%ebx
ja     1944 <translate+0x824>
lea    0x10bb(%rip),%rax
movslq (%rax,%rbx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
movsbl %r15b,%ebx
lea    -0x41(%rbx),%edx
cmp    $0x14,%edx
ja     1820 <translate+0x700>
mov    $0x51,%al
mov    $0x4e,%cl
lea    0x10eb(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x48,%al
mov    $0x52,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebx
add    $0xffffffbf,%ebx
cmp    $0x14,%ebx
ja     1936 <translate+0x816>
mov    $0x50,%al
mov    $0x60,%cl
lea    0x120a(%rip),%rdx
movslq (%rdx,%rbx,4),%rsi
add    %rdx,%rsi
jmp    *%rsi
mov    $0x64,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebx
lea    -0x41(%rbx),%edx
cmp    $0x14,%edx
ja     17e3 <translate+0x6c3>
mov    $0x52,%al
mov    $0x5b,%cl
lea    0x118b(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x5f,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebx
lea    -0x41(%rbx),%edx
cmp    $0x13,%edx
ja     17c5 <translate+0x6a5>
mov    $0x4c,%al
mov    $0x53,%cl
lea    0x10c0(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x56,%cl
jmp    1928 <translate+0x808>
movsbl %r15b,%ebx
lea    -0x41(%rbx),%edx
cmp    $0x14,%edx
ja     178f <translate+0x66f>
mov    $0x4c,%al
mov    $0x57,%cl
lea    0x10e9(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0x5a,%cl
jmp    1928 <translate+0x808>
lea    0x11ce(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    171a <translate+0x5fa>
mov    $0x59,%cl
jmp    1928 <translate+0x808>
mov    $0x58,%cl
jmp    1928 <translate+0x808>
mov    $0x63,%cl
jmp    1928 <translate+0x808>
mov    $0x61,%cl
jmp    1928 <translate+0x808>
mov    $0x62,%cl
jmp    1928 <translate+0x808>
lea    0x1198(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    176c <translate+0x64c>
mov    $0x55,%cl
jmp    1928 <translate+0x808>
mov    $0x54,%cl
jmp    1928 <translate+0x808>
lea    0x117a(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    16ef <translate+0x5cf>
mov    $0x5e,%cl
jmp    1928 <translate+0x808>
mov    $0x5c,%cl
jmp    1928 <translate+0x808>
mov    $0x5d,%cl
jmp    1928 <translate+0x808>
mov    $0x4c,%cl
jmp    1928 <translate+0x808>
mov    $0x4a,%cl
jmp    1928 <translate+0x808>
mov    $0x4b,%cl
jmp    1928 <translate+0x808>
lea    0x113d(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    1745 <translate+0x625>
mov    $0x51,%cl
mov    $0x51,%al
jmp    1928 <translate+0x808>
mov    $0x48,%al
mov    $0x4f,%cl
jmp    1928 <translate+0x808>
mov    $0x48,%al
mov    $0x50,%cl
jmp    1928 <translate+0x808>
lea    0x110f(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    12b2 <translate+0x192>
mov    $0x4d,%al
mov    $0xb,%cl
jmp    1928 <translate+0x808>
mov    $0xa,%cl
jmp    1928 <translate+0x808>
lea    0x10ec(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    130a <translate+0x1ea>
mov    $0x4d,%al
mov    $0x7,%cl
jmp    1928 <translate+0x808>
mov    $0x6,%cl
jmp    1928 <translate+0x808>
lea    0x10c9(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    14d6 <translate+0x3b6>
mov    $0x3a,%cl
jmp    1928 <translate+0x808>
mov    $0x44,%al
mov    $0x38,%cl
jmp    1928 <translate+0x808>
mov    $0x44,%al
mov    $0x39,%cl
jmp    1928 <translate+0x808>
lea    0x10a6(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    1287 <translate+0x167>
mov    $0x10,%cl
jmp    1928 <translate+0x808>
mov    $0x53,%al
mov    $0xe,%cl
jmp    1928 <translate+0x808>
mov    $0x53,%al
mov    $0xf,%cl
jmp    1928 <translate+0x808>
lea    0x1083(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    0x1075(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    11b5 <translate+0x95>
mov    $0x15,%cl
jmp    1928 <translate+0x808>
mov    $0x13,%cl
jmp    1928 <translate+0x808>
mov    $0x14,%cl
jmp    1928 <translate+0x808>
lea    0x1056(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
jmp    12df <translate+0x1bf>
mov    $0x3,%cl
jmp    1928 <translate+0x808>
mov    $0x4e,%al
mov    $0x1,%cl
jmp    1928 <translate+0x808>
mov    $0x4e,%al
mov    $0x2,%cl
mov    %cl,(%r14)
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret
lea    0x1027(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    0x1019(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
lea    0x100b(%rip),%rdi
xor    %eax,%eax
call   1040 <error@plt>
call   1030 <abort@plt>

LLVM IR (-O0):
@.str = [23 x i8] c"No regular aminoacid !\00"
@.str.1 = [23 x i8] c"no regular Aminoacid !\00"
define signext i8 @translate(i8 signext %0, i8 signext %1, i8 signext %2, i8* %3) {
%5 = alloca i8
%6 = alloca i8
%7 = alloca i8
%8 = alloca i8
%9 = alloca i8*
store i8 %0, i8* %6
store i8 %1, i8* %7
store i8 %2, i8* %8
store i8* %3, i8** %9
%10 = load i8, i8* %6
%11 = sext i8 %10 to i32
switch i32 %11, label %382 [
i32 65, label %12
i32 84, label %94
i32 85, label %156
i32 71, label %218
i32 67, label %300
]
12: ; preds = %4
%13 = load i8, i8* %7
%14 = sext i8 %13 to i32
switch i32 %14, label %91 [
i32 65, label %15
i32 84, label %31
i32 85, label %45
i32 71, label %59
i32 67, label %75
]
15: ; preds = %12
%16 = load i8, i8* %8
%17 = sext i8 %16 to i32
switch i32 %17, label %28 [
i32 65, label %18
i32 84, label %20
i32 85, label %22
i32 71, label %24
i32 67, label %26
]
18: ; preds = %15
%19 = load i8*, i8** %9
store i8 0, i8* %19
store i8 75, i8* %5
br label %385
20: ; preds = %15
%21 = load i8*, i8** %9
store i8 1, i8* %21
store i8 78, i8* %5
br label %385
22: ; preds = %15
%23 = load i8*, i8** %9
store i8 2, i8* %23
store i8 78, i8* %5
br label %385
24: ; preds = %15
%25 = load i8*, i8** %9
store i8 3, i8* %25
store i8 75, i8* %5
br label %385
26: ; preds = %15
%27 = load i8*, i8** %9
store i8 4, i8* %27
store i8 78, i8* %5
br label %385
28: ; preds = %15
%29 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %30
30: ; preds = %28
br label %31
31: ; preds = %12, %30
%32 = load i8, i8* %8
%33 = sext i8 %32 to i32
switch i32 %33, label %42 [
i32 65, label %34
i32 84, label %36
i32 71, label %38
i32 67, label %40
]
34: ; preds = %31
%35 = load i8*, i8** %9
store i8 5, i8* %35
store i8 73, i8* %5
br label %385
36: ; preds = %31
%37 = load i8*, i8** %9
store i8 6, i8* %37
store i8 73, i8* %5
br label %385
38: ; preds = %31
%39 = load i8*, i8** %9
store i8 7, i8* %39
store i8 77, i8* %5
br label %385
40: ; preds = %31
%41 = load i8*, i8** %9
store i8 8, i8* %41
store i8 73, i8* %5
br label %385
42: ; preds = %31
%43 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %44
44: ; preds = %42
br label %45
45: ; preds = %12, %44
%46 = load i8, i8* %8
%47 = sext i8 %46 to i32
switch i32 %47, label %56 [
i32 65, label %48
i32 85, label %50
i32 71, label %52
i32 67, label %54
]
48: ; preds = %45
%49 = load i8*, i8** %9
store i8 9, i8* %49
store i8 73, i8* %5
br label %385
50: ; preds = %45
%51 = load i8*, i8** %9
store i8 10, i8* %51
store i8 73, i8* %5
br label %385
52: ; preds = %45
%53 = load i8*, i8** %9
store i8 11, i8* %53
store i8 77, i8* %5
br label %385
54: ; preds = %45
%55 = load i8*, i8** %9
store i8 12, i8* %55
store i8 73, i8* %5
br label %385
56: ; preds = %45
%57 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %58
58: ; preds = %56
br label %59
59: ; preds = %12, %58
%60 = load i8, i8* %8
%61 = sext i8 %60 to i32
switch i32 %61, label %72 [
i32 65, label %62
i32 84, label %64
i32 85, label %66
i32 71, label %68
i32 67, label %70
]
62: ; preds = %59
%63 = load i8*, i8** %9
store i8 13, i8* %63
store i8 82, i8* %5
br label %385
64: ; preds = %59
%65 = load i8*, i8** %9
store i8 14, i8* %65
store i8 83, i8* %5
br label %385
66: ; preds = %59
%67 = load i8*, i8** %9
store i8 15, i8* %67
store i8 83, i8* %5
br label %385
68: ; preds = %59
%69 = load i8*, i8** %9
store i8 16, i8* %69
store i8 82, i8* %5
br label %385
70: ; preds = %59
%71 = load i8*, i8** %9
store i8 17, i8* %71
store i8 83, i8* %5
br label %385
72: ; preds = %59
%73 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %74
74: ; preds = %72
br label %75
75: ; preds = %12, %74
%76 = load i8, i8* %8
%77 = sext i8 %76 to i32
switch i32 %77, label %88 [
i32 65, label %78
i32 84, label %80
i32 85, label %82
i32 71, label %84
i32 67, label %86
]
78: ; preds = %75
%79 = load i8*, i8** %9
store i8 18, i8* %79
store i8 84, i8* %5
br label %385
80: ; preds = %75
%81 = load i8*, i8** %9
store i8 19, i8* %81
store i8 84, i8* %5
br label %385
82: ; preds = %75
%83 = load i8*, i8** %9
store i8 20, i8* %83
store i8 84, i8* %5
br label %385
84: ; preds = %75
%85 = load i8*, i8** %9
store i8 21, i8* %85
store i8 84, i8* %5
br label %385
86: ; preds = %75
%87 = load i8*, i8** %9
store i8 22, i8* %87
store i8 84, i8* %5
br label %385
88: ; preds = %75
%89 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %90
90: ; preds = %88
br label %91
91: ; preds = %12, %90
%92 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %93
93: ; preds = %91
br label %94
94: ; preds = %4, %93
%95 = load i8, i8* %7
%96 = sext i8 %95 to i32
switch i32 %96, label %153 [
i32 65, label %97
i32 84, label %111
i32 71, label %125
i32 67, label %139
]
97: ; preds = %94
%98 = load i8, i8* %8
%99 = sext i8 %98 to i32
switch i32 %99, label %108 [
i32 65, label %100
i32 84, label %102
i32 71, label %104
i32 67, label %106
]
100: ; preds = %97
%101 = load i8*, i8** %9
store i8 23, i8* %101
store i8 88, i8* %5
br label %385
102: ; preds = %97
%103 = load i8*, i8** %9
store i8 24, i8* %103
store i8 89, i8* %5
br label %385
104: ; preds = %97
%105 = load i8*, i8** %9
store i8 25, i8* %105
store i8 88, i8* %5
br label %385
106: ; preds = %97
%107 = load i8*, i8** %9
store i8 26, i8* %107
store i8 89, i8* %5
br label %385
108: ; preds = %97
%109 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %110
110: ; preds = %108
br label %111
111: ; preds = %94, %110
%112 = load i8, i8* %8
%113 = sext i8 %112 to i32
switch i32 %113, label %122 [
i32 65, label %114
i32 84, label %116
i32 71, label %118
i32 67, label %120
]
114: ; preds = %111
%115 = load i8*, i8** %9
store i8 27, i8* %115
store i8 76, i8* %5
br label %385
116: ; preds = %111
%117 = load i8*, i8** %9
store i8 28, i8* %117
store i8 70, i8* %5
br label %385
118: ; preds = %111
%119 = load i8*, i8** %9
store i8 29, i8* %119
store i8 76, i8* %5
br label %385
120: ; preds = %111
%121 = load i8*, i8** %9
store i8 30, i8* %121
store i8 70, i8* %5
br label %385
122: ; preds = %111
%123 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %124
124: ; preds = %122
br label %125
125: ; preds = %94, %124
%126 = load i8, i8* %8
%127 = sext i8 %126 to i32
switch i32 %127, label %136 [
i32 65, label %128
i32 84, label %130
i32 71, label %132
i32 67, label %134
]
128: ; preds = %125
%129 = load i8*, i8** %9
store i8 31, i8* %129
store i8 88, i8* %5
br label %385
130: ; preds = %125
%131 = load i8*, i8** %9
store i8 32, i8* %131
store i8 67, i8* %5
br label %385
132: ; preds = %125
%133 = load i8*, i8** %9
store i8 33, i8* %133
store i8 87, i8* %5
br label %385
134: ; preds = %125
%135 = load i8*, i8** %9
store i8 34, i8* %135
store i8 67, i8* %5
br label %385
136: ; preds = %125
%137 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %138
138: ; preds = %136
br label %139
139: ; preds = %94, %138
%140 = load i8, i8* %8
%141 = sext i8 %140 to i32
switch i32 %141, label %150 [
i32 65, label %142
i32 84, label %144
i32 71, label %146
i32 67, label %148
]
142: ; preds = %139
%143 = load i8*, i8** %9
store i8 35, i8* %143
store i8 83, i8* %5
br label %385
144: ; preds = %139
%145 = load i8*, i8** %9
store i8 36, i8* %145
store i8 83, i8* %5
br label %385
146: ; preds = %139
%147 = load i8*, i8** %9
store i8 37, i8* %147
store i8 83, i8* %5
br label %385
148: ; preds = %139
%149 = load i8*, i8** %9
store i8 38, i8* %149
store i8 83, i8* %5
br label %385
150: ; preds = %139
%151 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %152
152: ; preds = %150
br label %153
153: ; preds = %94, %152
%154 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.1, i64 0, i64 0))
br label %155
155: ; preds = %153
br label %156
156: ; preds = %4, %155
%157 = load i8, i8* %7
%158 = sext i8 %157 to i32
switch i32 %158, label %215 [
i32 65, label %159
i32 85, label %173
i32 71, label %187
i32 67, label %201
]
159: ; preds = %156
%160 = load i8, i8* %8
%161 = sext i8 %160 to i32
switch i32 %161, label %170 [
i32 65, label %162
i32 85, label %164
i32 71, label %166
i32 67, label %168
]
162: ; preds = %159
%163 = load i8*, i8** %9
store i8 39, i8* %163
store i8 88, i8* %5
br label %385
164: ; preds = %159
%165 = load i8*, i8** %9
store i8 40, i8* %165
store i8 89, i8* %5
br label %385
166: ; preds = %159
%167 = load i8*, i8** %9
store i8 41, i8* %167
store i8 88, i8* %5
br label %385
168: ; preds = %159
%169 = load i8*, i8** %9
store i8 42, i8* %169
store i8 89, i8* %5
br label %385
170: ; preds = %159
%171 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %172
172: ; preds = %170
br label %173
173: ; preds = %156, %172
%174 = load i8, i8* %8
%175 = sext i8 %174 to i32
switch i32 %175, label %184 [
i32 65, label %176
i32 85, label %178
i32 71, label %180
i32 67, label %182
]
176: ; preds = %173
%177 = load i8*, i8** %9
store i8 43, i8* %177
store i8 76, i8* %5
br label %385
178: ; preds = %173
%179 = load i8*, i8** %9
store i8 44, i8* %179
store i8 70, i8* %5
br label %385
180: ; preds = %173
%181 = load i8*, i8** %9
store i8 45, i8* %181
store i8 76, i8* %5
br label %385
182: ; preds = %173
%183 = load i8*, i8** %9
store i8 46, i8* %183
store i8 70, i8* %5
br label %385
184: ; preds = %173
%185 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %186
186: ; preds = %184
br label %187
187: ; preds = %156, %186
%188 = load i8, i8* %8
%189 = sext i8 %188 to i32
switch i32 %189, label %198 [
i32 65, label %190
i32 85, label %192
i32 71, label %194
i32 67, label %196
]
190: ; preds = %187
%191 = load i8*, i8** %9
store i8 47, i8* %191
store i8 88, i8* %5
br label %385
192: ; preds = %187
%193 = load i8*, i8** %9
store i8 48, i8* %193
store i8 67, i8* %5
br label %385
194: ; preds = %187
%195 = load i8*, i8** %9
store i8 49, i8* %195
store i8 87, i8* %5
br label %385
196: ; preds = %187
%197 = load i8*, i8** %9
store i8 50, i8* %197
store i8 67, i8* %5
br label %385
198: ; preds = %187
%199 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %200
200: ; preds = %198
br label %201
201: ; preds = %156, %200
%202 = load i8, i8* %8
%203 = sext i8 %202 to i32
switch i32 %203, label %212 [
i32 65, label %204
i32 85, label %206
i32 71, label %208
i32 67, label %210
]
204: ; preds = %201
%205 = load i8*, i8** %9
store i8 51, i8* %205
store i8 83, i8* %5
br label %385
206: ; preds = %201
%207 = load i8*, i8** %9
store i8 52, i8* %207
store i8 83, i8* %5
br label %385
208: ; preds = %201
%209 = load i8*, i8** %9
store i8 53, i8* %209
store i8 83, i8* %5
br label %385
210: ; preds = %201
%211 = load i8*, i8** %9
store i8 54, i8* %211
store i8 83, i8* %5
br label %385
212: ; preds = %201
%213 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %214
214: ; preds = %212
br label %215
215: ; preds = %156, %214
%216 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.1, i64 0, i64 0))
br label %217
217: ; preds = %215
br label %218
218: ; preds = %4, %217
%219 = load i8, i8* %7
%220 = sext i8 %219 to i32
switch i32 %220, label %297 [
i32 65, label %221
i32 84, label %237
i32 85, label %251
i32 71, label %265
i32 67, label %281
]
221: ; preds = %218
%222 = load i8, i8* %8
%223 = sext i8 %222 to i32
switch i32 %223, label %234 [
i32 65, label %224
i32 84, label %226
i32 85, label %228
i32 71, label %230
i32 67, label %232
]
224: ; preds = %221
%225 = load i8*, i8** %9
store i8 55, i8* %225
store i8 69, i8* %5
br label %385
226: ; preds = %221
%227 = load i8*, i8** %9
store i8 56, i8* %227
store i8 68, i8* %5
br label %385
228: ; preds = %221
%229 = load i8*, i8** %9
store i8 57, i8* %229
store i8 68, i8* %5
br label %385
230: ; preds = %221
%231 = load i8*, i8** %9
store i8 58, i8* %231
store i8 69, i8* %5
br label %385
232: ; preds = %221
%233 = load i8*, i8** %9
store i8 59, i8* %233
store i8 68, i8* %5
br label %385
234: ; preds = %221
%235 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %236
236: ; preds = %234
br label %237
237: ; preds = %218, %236
%238 = load i8, i8* %8
%239 = sext i8 %238 to i32
switch i32 %239, label %248 [
i32 65, label %240
i32 84, label %242
i32 71, label %244
i32 67, label %246
]
240: ; preds = %237
%241 = load i8*, i8** %9
store i8 60, i8* %241
store i8 86, i8* %5
br label %385
242: ; preds = %237
%243 = load i8*, i8** %9
store i8 61, i8* %243
store i8 86, i8* %5
br label %385
244: ; preds = %237
%245 = load i8*, i8** %9
store i8 62, i8* %245
store i8 86, i8* %5
br label %385
246: ; preds = %237
%247 = load i8*, i8** %9
store i8 63, i8* %247
store i8 86, i8* %5
br label %385
248: ; preds = %237
%249 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %250
250: ; preds = %248
br label %251
251: ; preds = %218, %250
%252 = load i8, i8* %8
%253 = sext i8 %252 to i32
switch i32 %253, label %262 [
i32 65, label %254
i32 85, label %256
i32 71, label %258
i32 67, label %260
]
254: ; preds = %251
%255 = load i8*, i8** %9
store i8 64, i8* %255
store i8 86, i8* %5
br label %385
256: ; preds = %251
%257 = load i8*, i8** %9
store i8 65, i8* %257
store i8 86, i8* %5
br label %385
258: ; preds = %251
%259 = load i8*, i8** %9
store i8 66, i8* %259
store i8 86, i8* %5
br label %385
260: ; preds = %251
%261 = load i8*, i8** %9
store i8 67, i8* %261
store i8 86, i8* %5
br label %385
262: ; preds = %251
%263 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %264
264: ; preds = %262
br label %265
265: ; preds = %218, %264
%266 = load i8, i8* %8
%267 = sext i8 %266 to i32
switch i32 %267, label %278 [
i32 65, label %268
i32 84, label %270
i32 85, label %272
i32 71, label %274
i32 67, label %276
]
268: ; preds = %265
%269 = load i8*, i8** %9
store i8 68, i8* %269
store i8 71, i8* %5
br label %385
270: ; preds = %265
%271 = load i8*, i8** %9
store i8 69, i8* %271
store i8 71, i8* %5
br label %385
272: ; preds = %265
%273 = load i8*, i8** %9
store i8 70, i8* %273
store i8 71, i8* %5
br label %385
274: ; preds = %265
%275 = load i8*, i8** %9
store i8 71, i8* %275
store i8 71, i8* %5
br label %385
276: ; preds = %265
%277 = load i8*, i8** %9
store i8 72, i8* %277
store i8 71, i8* %5
br label %385
278: ; preds = %265
%279 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %280
280: ; preds = %278
br label %281
281: ; preds = %218, %280
%282 = load i8, i8* %8
%283 = sext i8 %282 to i32
switch i32 %283, label %294 [
i32 65, label %284
i32 84, label %286
i32 85, label %288
i32 71, label %290
i32 67, label %292
]
284: ; preds = %281
%285 = load i8*, i8** %9
store i8 73, i8* %285
store i8 65, i8* %5
br label %385
286: ; preds = %281
%287 = load i8*, i8** %9
store i8 74, i8* %287
store i8 65, i8* %5
br label %385
288: ; preds = %281
%289 = load i8*, i8** %9
store i8 75, i8* %289
store i8 65, i8* %5
br label %385
290: ; preds = %281
%291 = load i8*, i8** %9
store i8 76, i8* %291
store i8 65, i8* %5
br label %385
292: ; preds = %281
%293 = load i8*, i8** %9
store i8 77, i8* %293
store i8 65, i8* %5
br label %385
294: ; preds = %281
%295 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %296
296: ; preds = %294
br label %297
297: ; preds = %218, %296
%298 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %299
299: ; preds = %297
br label %300
300: ; preds = %4, %299
%301 = load i8, i8* %7
%302 = sext i8 %301 to i32
switch i32 %302, label %379 [
i32 65, label %303
i32 84, label %319
i32 85, label %333
i32 71, label %347
i32 67, label %363
]
303: ; preds = %300
%304 = load i8, i8* %8
%305 = sext i8 %304 to i32
switch i32 %305, label %316 [
i32 65, label %306
i32 84, label %308
i32 85, label %310
i32 71, label %312
i32 67, label %314
]
306: ; preds = %303
%307 = load i8*, i8** %9
store i8 78, i8* %307
store i8 81, i8* %5
br label %385
308: ; preds = %303
%309 = load i8*, i8** %9
store i8 79, i8* %309
store i8 72, i8* %5
br label %385
310: ; preds = %303
%311 = load i8*, i8** %9
store i8 80, i8* %311
store i8 72, i8* %5
br label %385
312: ; preds = %303
%313 = load i8*, i8** %9
store i8 81, i8* %313
store i8 81, i8* %5
br label %385
314: ; preds = %303
%315 = load i8*, i8** %9
store i8 82, i8* %315
store i8 72, i8* %5
br label %385
316: ; preds = %303
%317 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %318
318: ; preds = %316
br label %319
319: ; preds = %300, %318
%320 = load i8, i8* %8
%321 = sext i8 %320 to i32
switch i32 %321, label %330 [
i32 65, label %322
i32 84, label %324
i32 71, label %326
i32 67, label %328
]
322: ; preds = %319
%323 = load i8*, i8** %9
store i8 83, i8* %323
store i8 76, i8* %5
br label %385
324: ; preds = %319
%325 = load i8*, i8** %9
store i8 84, i8* %325
store i8 76, i8* %5
br label %385
326: ; preds = %319
%327 = load i8*, i8** %9
store i8 85, i8* %327
store i8 76, i8* %5
br label %385
328: ; preds = %319
%329 = load i8*, i8** %9
store i8 86, i8* %329
store i8 76, i8* %5
br label %385
330: ; preds = %319
%331 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %332
332: ; preds = %330
br label %333
333: ; preds = %300, %332
%334 = load i8, i8* %8
%335 = sext i8 %334 to i32
switch i32 %335, label %344 [
i32 65, label %336
i32 85, label %338
i32 71, label %340
i32 67, label %342
]
336: ; preds = %333
%337 = load i8*, i8** %9
store i8 87, i8* %337
store i8 76, i8* %5
br label %385
338: ; preds = %333
%339 = load i8*, i8** %9
store i8 88, i8* %339
store i8 76, i8* %5
br label %385
340: ; preds = %333
%341 = load i8*, i8** %9
store i8 89, i8* %341
store i8 76, i8* %5
br label %385
342: ; preds = %333
%343 = load i8*, i8** %9
store i8 90, i8* %343
store i8 76, i8* %5
br label %385
344: ; preds = %333
%345 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %346
346: ; preds = %344
br label %347
347: ; preds = %300, %346
%348 = load i8, i8* %8
%349 = sext i8 %348 to i32
switch i32 %349, label %360 [
i32 65, label %350
i32 84, label %352
i32 85, label %354
i32 71, label %356
i32 67, label %358
]
350: ; preds = %347
%351 = load i8*, i8** %9
store i8 91, i8* %351
store i8 82, i8* %5
br label %385
352: ; preds = %347
%353 = load i8*, i8** %9
store i8 92, i8* %353
store i8 82, i8* %5
br label %385
354: ; preds = %347
%355 = load i8*, i8** %9
store i8 93, i8* %355
store i8 82, i8* %5
br label %385
356: ; preds = %347
%357 = load i8*, i8** %9
store i8 94, i8* %357
store i8 82, i8* %5
br label %385
358: ; preds = %347
%359 = load i8*, i8** %9
store i8 95, i8* %359
store i8 82, i8* %5
br label %385
360: ; preds = %347
%361 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %362
362: ; preds = %360
br label %363
363: ; preds = %300, %362
%364 = load i8, i8* %8
%365 = sext i8 %364 to i32
switch i32 %365, label %376 [
i32 65, label %366
i32 84, label %368
i32 85, label %370
i32 71, label %372
i32 67, label %374
]
366: ; preds = %363
%367 = load i8*, i8** %9
store i8 96, i8* %367
store i8 80, i8* %5
br label %385
368: ; preds = %363
%369 = load i8*, i8** %9
store i8 97, i8* %369
store i8 80, i8* %5
br label %385
370: ; preds = %363
%371 = load i8*, i8** %9
store i8 98, i8* %371
store i8 80, i8* %5
br label %385
372: ; preds = %363
%373 = load i8*, i8** %9
store i8 99, i8* %373
store i8 80, i8* %5
br label %385
374: ; preds = %363
%375 = load i8*, i8** %9
store i8 100, i8* %375
store i8 80, i8* %5
br label %385
376: ; preds = %363
%377 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %378
378: ; preds = %376
br label %379
379: ; preds = %300, %378
%380 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %381
381: ; preds = %379
br label %382
382: ; preds = %4, %381
%383 = call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %384
384: ; preds = %382
unreachable
385: ; preds = %374, %372, %370, %368, %366, %358, %356, %354, %352, %350, %342, %340, %338, %336, %328, %326, %324, %322, %314, %312, %310, %308, %306, %292, %290, %288, %286, %284, %276, %274, %272, %270, %268, %260, %258, %256, %254, %246, %244, %242, %240, %232, %230, %228, %226, %224, %210, %208, %206, %204, %196, %194, %192, %190, %182, %180, %178, %176, %168, %166, %164, %162, %148, %146, %144, %142, %134, %132, %130, %128, %120, %118, %116, %114, %106, %104, %102, %100, %86, %84, %82, %80, %78, %70, %68, %66, %64, %62, %54, %52, %50, %48, %40, %38, %36, %34, %26, %24, %22, %20, %18
%386 = load i8, i8* %5
ret i8 %386
}

LLVM IR (-O2):
@.str = [23 x i8] c"No regular aminoacid !\00"
@.str.1 = [23 x i8] c"no regular Aminoacid !\00"
define signext i8 @translate(i8 signext %0, i8 signext %1, i8 signext %2, i8* writeonly %3) {
%5 = sext i8 %0 to i32
switch i32 %5, label %240 [
i32 65, label %14
i32 84, label %6
i32 85, label %8
i32 71, label %10
i32 67, label %12
]
6: ; preds = %4
%7 = sext i8 %1 to i32
br label %64
8: ; preds = %4
%9 = sext i8 %1 to i32
br label %102
10: ; preds = %4
%11 = sext i8 %1 to i32
br label %140
12: ; preds = %4
%13 = sext i8 %1 to i32
br label %190
14: ; preds = %4
%15 = sext i8 %1 to i32
switch i32 %15, label %62 [
i32 65, label %24
i32 84, label %16
i32 85, label %18
i32 71, label %20
i32 67, label %22
]
16: ; preds = %14
%17 = sext i8 %2 to i32
br label %32
18: ; preds = %14
%19 = sext i8 %2 to i32
br label %39
20: ; preds = %14
%21 = sext i8 %2 to i32
br label %46
22: ; preds = %14
%23 = sext i8 %2 to i32
br label %54
24: ; preds = %14
%25 = sext i8 %2 to i32
switch i32 %25, label %30 [
i32 65, label %242
i32 84, label %26
i32 85, label %27
i32 71, label %28
i32 67, label %29
]
26: ; preds = %24
br label %242
27: ; preds = %24
br label %242
28: ; preds = %24
br label %242
29: ; preds = %24
br label %242
30: ; preds = %24
%31 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %32
32: ; preds = %16, %30
%33 = phi i32 [ %17, %16 ], [ %25, %30 ]
switch i32 %33, label %37 [
i32 65, label %242
i32 84, label %34
i32 71, label %35
i32 67, label %36
]
34: ; preds = %32
br label %242
35: ; preds = %32
br label %242
36: ; preds = %32
br label %242
37: ; preds = %32
%38 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %39
39: ; preds = %18, %37
%40 = phi i32 [ %19, %18 ], [ %33, %37 ]
switch i32 %40, label %44 [
i32 65, label %242
i32 85, label %41
i32 71, label %42
i32 67, label %43
]
41: ; preds = %39
br label %242
42: ; preds = %39
br label %242
43: ; preds = %39
br label %242
44: ; preds = %39
%45 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %46
46: ; preds = %20, %44
%47 = phi i32 [ %21, %20 ], [ %40, %44 ]
switch i32 %47, label %52 [
i32 65, label %242
i32 84, label %48
i32 85, label %49
i32 71, label %50
i32 67, label %51
]
48: ; preds = %46
br label %242
49: ; preds = %46
br label %242
50: ; preds = %46
br label %242
51: ; preds = %46
br label %242
52: ; preds = %46
%53 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %54
54: ; preds = %22, %52
%55 = phi i32 [ %23, %22 ], [ %47, %52 ]
switch i32 %55, label %60 [
i32 65, label %242
i32 84, label %56
i32 85, label %57
i32 71, label %58
i32 67, label %59
]
56: ; preds = %54
br label %242
57: ; preds = %54
br label %242
58: ; preds = %54
br label %242
59: ; preds = %54
br label %242
60: ; preds = %54
%61 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %62
62: ; preds = %14, %60
%63 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %64
64: ; preds = %6, %62
%65 = phi i32 [ %7, %6 ], [ %15, %62 ]
switch i32 %65, label %100 [
i32 65, label %72
i32 84, label %66
i32 71, label %68
i32 67, label %70
]
66: ; preds = %64
%67 = sext i8 %2 to i32
br label %79
68: ; preds = %64
%69 = sext i8 %2 to i32
br label %86
70: ; preds = %64
%71 = sext i8 %2 to i32
br label %93
72: ; preds = %64
%73 = sext i8 %2 to i32
switch i32 %73, label %77 [
i32 65, label %242
i32 84, label %74
i32 71, label %75
i32 67, label %76
]
74: ; preds = %72
br label %242
75: ; preds = %72
br label %242
76: ; preds = %72
br label %242
77: ; preds = %72
%78 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %79
79: ; preds = %66, %77
%80 = phi i32 [ %67, %66 ], [ %73, %77 ]
switch i32 %80, label %84 [
i32 65, label %242
i32 84, label %81
i32 71, label %82
i32 67, label %83
]
81: ; preds = %79
br label %242
82: ; preds = %79
br label %242
83: ; preds = %79
br label %242
84: ; preds = %79
%85 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %86
86: ; preds = %68, %84
%87 = phi i32 [ %69, %68 ], [ %80, %84 ]
switch i32 %87, label %91 [
i32 65, label %242
i32 84, label %88
i32 71, label %89
i32 67, label %90
]
88: ; preds = %86
br label %242
89: ; preds = %86
br label %242
90: ; preds = %86
br label %242
91: ; preds = %86
%92 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %93
93: ; preds = %70, %91
%94 = phi i32 [ %71, %70 ], [ %87, %91 ]
switch i32 %94, label %98 [
i32 65, label %242
i32 84, label %95
i32 71, label %96
i32 67, label %97
]
95: ; preds = %93
br label %242
96: ; preds = %93
br label %242
97: ; preds = %93
br label %242
98: ; preds = %93
%99 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %100
100: ; preds = %64, %98
%101 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.1, i64 0, i64 0))
br label %102
102: ; preds = %8, %100
%103 = phi i32 [ %9, %8 ], [ %65, %100 ]
switch i32 %103, label %138 [
i32 65, label %110
i32 85, label %104
i32 71, label %106
i32 67, label %108
]
104: ; preds = %102
%105 = sext i8 %2 to i32
br label %117
106: ; preds = %102
%107 = sext i8 %2 to i32
br label %124
108: ; preds = %102
%109 = sext i8 %2 to i32
br label %131
110: ; preds = %102
%111 = sext i8 %2 to i32
switch i32 %111, label %115 [
i32 65, label %242
i32 85, label %112
i32 71, label %113
i32 67, label %114
]
112: ; preds = %110
br label %242
113: ; preds = %110
br label %242
114: ; preds = %110
br label %242
115: ; preds = %110
%116 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %117
117: ; preds = %104, %115
%118 = phi i32 [ %105, %104 ], [ %111, %115 ]
switch i32 %118, label %122 [
i32 65, label %242
i32 85, label %119
i32 71, label %120
i32 67, label %121
]
119: ; preds = %117
br label %242
120: ; preds = %117
br label %242
121: ; preds = %117
br label %242
122: ; preds = %117
%123 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %124
124: ; preds = %106, %122
%125 = phi i32 [ %107, %106 ], [ %118, %122 ]
switch i32 %125, label %129 [
i32 65, label %242
i32 85, label %126
i32 71, label %127
i32 67, label %128
]
126: ; preds = %124
br label %242
127: ; preds = %124
br label %242
128: ; preds = %124
br label %242
129: ; preds = %124
%130 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %131
131: ; preds = %108, %129
%132 = phi i32 [ %109, %108 ], [ %125, %129 ]
switch i32 %132, label %136 [
i32 65, label %242
i32 85, label %133
i32 71, label %134
i32 67, label %135
]
133: ; preds = %131
br label %242
134: ; preds = %131
br label %242
135: ; preds = %131
br label %242
136: ; preds = %131
%137 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %138
138: ; preds = %102, %136
%139 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.1, i64 0, i64 0))
br label %140
140: ; preds = %10, %138
%141 = phi i32 [ %11, %10 ], [ %103, %138 ]
switch i32 %141, label %188 [
i32 65, label %150
i32 84, label %142
i32 85, label %144
i32 71, label %146
i32 67, label %148
]
142: ; preds = %140
%143 = sext i8 %2 to i32
br label %158
144: ; preds = %140
%145 = sext i8 %2 to i32
br label %165
146: ; preds = %140
%147 = sext i8 %2 to i32
br label %172
148: ; preds = %140
%149 = sext i8 %2 to i32
br label %180
150: ; preds = %140
%151 = sext i8 %2 to i32
switch i32 %151, label %156 [
i32 65, label %242
i32 84, label %152
i32 85, label %153
i32 71, label %154
i32 67, label %155
]
152: ; preds = %150
br label %242
153: ; preds = %150
br label %242
154: ; preds = %150
br label %242
155: ; preds = %150
br label %242
156: ; preds = %150
%157 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %158
158: ; preds = %142, %156
%159 = phi i32 [ %143, %142 ], [ %151, %156 ]
switch i32 %159, label %163 [
i32 65, label %242
i32 84, label %160
i32 71, label %161
i32 67, label %162
]
160: ; preds = %158
br label %242
161: ; preds = %158
br label %242
162: ; preds = %158
br label %242
163: ; preds = %158
%164 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %165
165: ; preds = %144, %163
%166 = phi i32 [ %145, %144 ], [ %159, %163 ]
switch i32 %166, label %170 [
i32 65, label %242
i32 85, label %167
i32 71, label %168
i32 67, label %169
]
167: ; preds = %165
br label %242
168: ; preds = %165
br label %242
169: ; preds = %165
br label %242
170: ; preds = %165
%171 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %172
172: ; preds = %146, %170
%173 = phi i32 [ %147, %146 ], [ %166, %170 ]
switch i32 %173, label %178 [
i32 65, label %242
i32 84, label %174
i32 85, label %175
i32 71, label %176
i32 67, label %177
]
174: ; preds = %172
br label %242
175: ; preds = %172
br label %242
176: ; preds = %172
br label %242
177: ; preds = %172
br label %242
178: ; preds = %172
%179 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %180
180: ; preds = %148, %178
%181 = phi i32 [ %149, %148 ], [ %173, %178 ]
switch i32 %181, label %186 [
i32 65, label %242
i32 84, label %182
i32 85, label %183
i32 71, label %184
i32 67, label %185
]
182: ; preds = %180
br label %242
183: ; preds = %180
br label %242
184: ; preds = %180
br label %242
185: ; preds = %180
br label %242
186: ; preds = %180
%187 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %188
188: ; preds = %140, %186
%189 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %190
190: ; preds = %12, %188
%191 = phi i32 [ %13, %12 ], [ %141, %188 ]
switch i32 %191, label %238 [
i32 65, label %200
i32 84, label %192
i32 85, label %194
i32 71, label %196
i32 67, label %198
]
192: ; preds = %190
%193 = sext i8 %2 to i32
br label %208
194: ; preds = %190
%195 = sext i8 %2 to i32
br label %215
196: ; preds = %190
%197 = sext i8 %2 to i32
br label %222
198: ; preds = %190
%199 = sext i8 %2 to i32
br label %230
200: ; preds = %190
%201 = sext i8 %2 to i32
switch i32 %201, label %206 [
i32 65, label %242
i32 84, label %202
i32 85, label %203
i32 71, label %204
i32 67, label %205
]
202: ; preds = %200
br label %242
203: ; preds = %200
br label %242
204: ; preds = %200
br label %242
205: ; preds = %200
br label %242
206: ; preds = %200
%207 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %208
208: ; preds = %192, %206
%209 = phi i32 [ %193, %192 ], [ %201, %206 ]
switch i32 %209, label %213 [
i32 65, label %242
i32 84, label %210
i32 71, label %211
i32 67, label %212
]
210: ; preds = %208
br label %242
211: ; preds = %208
br label %242
212: ; preds = %208
br label %242
213: ; preds = %208
%214 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %215
215: ; preds = %194, %213
%216 = phi i32 [ %195, %194 ], [ %209, %213 ]
switch i32 %216, label %220 [
i32 65, label %242
i32 85, label %217
i32 71, label %218
i32 67, label %219
]
217: ; preds = %215
br label %242
218: ; preds = %215
br label %242
219: ; preds = %215
br label %242
220: ; preds = %215
%221 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %222
222: ; preds = %196, %220
%223 = phi i32 [ %197, %196 ], [ %216, %220 ]
switch i32 %223, label %228 [
i32 65, label %242
i32 84, label %224
i32 85, label %225
i32 71, label %226
i32 67, label %227
]
224: ; preds = %222
br label %242
225: ; preds = %222
br label %242
226: ; preds = %222
br label %242
227: ; preds = %222
br label %242
228: ; preds = %222
%229 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %230
230: ; preds = %198, %228
%231 = phi i32 [ %199, %198 ], [ %223, %228 ]
switch i32 %231, label %236 [
i32 65, label %242
i32 84, label %232
i32 85, label %233
i32 71, label %234
i32 67, label %235
]
232: ; preds = %230
br label %242
233: ; preds = %230
br label %242
234: ; preds = %230
br label %242
235: ; preds = %230
br label %242
236: ; preds = %230
%237 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %238
238: ; preds = %190, %236
%239 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
br label %240
240: ; preds = %4, %238
%241 = tail call i32 (i8*, ...) bitcast (i32 (...)* @error to i32 (i8*, ...)*)(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0))
tail call void @abort()
unreachable
242: ; preds = %230, %222, %215, %208, %200, %180, %172, %165, %158, %150, %131, %124, %117, %110, %93, %86, %79, %72, %54, %46, %39, %32, %24, %235, %234, %233, %232, %227, %226, %225, %224, %219, %218, %217, %212, %211, %210, %205, %204, %203, %202, %185, %184, %183, %182, %177, %176, %175, %174, %169, %168, %167, %162, %161, %160, %155, %154, %153, %152, %135, %134, %133, %128, %127, %126, %121, %120, %119, %114, %113, %112, %97, %96, %95, %90, %89, %88, %83, %82, %81, %76, %75, %74, %59, %58, %57, %56, %51, %50, %49, %48, %43, %42, %41, %36, %35, %34, %29, %28, %27, %26
%243 = phi i8 [ 100, %235 ], [ 99, %234 ], [ 98, %233 ], [ 97, %232 ], [ 95, %227 ], [ 94, %226 ], [ 93, %225 ], [ 92, %224 ], [ 90, %219 ], [ 89, %218 ], [ 88, %217 ], [ 86, %212 ], [ 85, %211 ], [ 84, %210 ], [ 82, %205 ], [ 81, %204 ], [ 80, %203 ], [ 79, %202 ], [ 77, %185 ], [ 76, %184 ], [ 75, %183 ], [ 74, %182 ], [ 72, %177 ], [ 71, %176 ], [ 70, %175 ], [ 69, %174 ], [ 67, %169 ], [ 66, %168 ], [ 65, %167 ], [ 63, %162 ], [ 62, %161 ], [ 61, %160 ], [ 59, %155 ], [ 58, %154 ], [ 57, %153 ], [ 56, %152 ], [ 54, %135 ], [ 53, %134 ], [ 52, %133 ], [ 50, %128 ], [ 49, %127 ], [ 48, %126 ], [ 46, %121 ], [ 45, %120 ], [ 44, %119 ], [ 42, %114 ], [ 41, %113 ], [ 40, %112 ], [ 38, %97 ], [ 37, %96 ], [ 36, %95 ], [ 34, %90 ], [ 33, %89 ], [ 32, %88 ], [ 30, %83 ], [ 29, %82 ], [ 28, %81 ], [ 26, %76 ], [ 25, %75 ], [ 24, %74 ], [ 22, %59 ], [ 21, %58 ], [ 20, %57 ], [ 19, %56 ], [ 17, %51 ], [ 16, %50 ], [ 15, %49 ], [ 14, %48 ], [ 12, %43 ], [ 11, %42 ], [ 10, %41 ], [ 8, %36 ], [ 7, %35 ], [ 6, %34 ], [ 4, %29 ], [ 3, %28 ], [ 2, %27 ], [ 1, %26 ], [ 0, %24 ], [ 5, %32 ], [ 9, %39 ], [ 13, %46 ], [ 18, %54 ], [ 23, %72 ], [ 27, %79 ], [ 31, %86 ], [ 35, %93 ], [ 39, %110 ], [ 43, %117 ], [ 47, %124 ], [ 51, %131 ], [ 55, %150 ], [ 60, %158 ], [ 64, %165 ], [ 68, %172 ], [ 73, %180 ], [ 78, %200 ], [ 83, %208 ], [ 87, %215 ], [ 91, %222 ], [ 96, %230 ]
%244 = phi i8 [ 80, %235 ], [ 80, %234 ], [ 80, %233 ], [ 80, %232 ], [ 82, %227 ], [ 82, %226 ], [ 82, %225 ], [ 82, %224 ], [ 76, %219 ], [ 76, %218 ], [ 76, %217 ], [ 76, %212 ], [ 76, %211 ], [ 76, %210 ], [ 72, %205 ], [ 81, %204 ], [ 72, %203 ], [ 72, %202 ], [ 65, %185 ], [ 65, %184 ], [ 65, %183 ], [ 65, %182 ], [ 71, %177 ], [ 71, %176 ], [ 71, %175 ], [ 71, %174 ], [ 86, %169 ], [ 86, %168 ], [ 86, %167 ], [ 86, %162 ], [ 86, %161 ], [ 86, %160 ], [ 68, %155 ], [ 69, %154 ], [ 68, %153 ], [ 68, %152 ], [ 83, %135 ], [ 83, %134 ], [ 83, %133 ], [ 67, %128 ], [ 87, %127 ], [ 67, %126 ], [ 70, %121 ], [ 76, %120 ], [ 70, %119 ], [ 89, %114 ], [ 88, %113 ], [ 89, %112 ], [ 83, %97 ], [ 83, %96 ], [ 83, %95 ], [ 67, %90 ], [ 87, %89 ], [ 67, %88 ], [ 70, %83 ], [ 76, %82 ], [ 70, %81 ], [ 89, %76 ], [ 88, %75 ], [ 89, %74 ], [ 84, %59 ], [ 84, %58 ], [ 84, %57 ], [ 84, %56 ], [ 83, %51 ], [ 82, %50 ], [ 83, %49 ], [ 83, %48 ], [ 73, %43 ], [ 77, %42 ], [ 73, %41 ], [ 73, %36 ], [ 77, %35 ], [ 73, %34 ], [ 78, %29 ], [ 75, %28 ], [ 78, %27 ], [ 78, %26 ], [ 75, %24 ], [ 73, %32 ], [ 73, %39 ], [ 82, %46 ], [ 84, %54 ], [ 88, %72 ], [ 76, %79 ], [ 88, %86 ], [ 83, %93 ], [ 88, %110 ], [ 76, %117 ], [ 88, %124 ], [ 83, %131 ], [ 69, %150 ], [ 86, %158 ], [ 86, %165 ], [ 71, %172 ], [ 65, %180 ], [ 81, %200 ], [ 76, %208 ], [ 76, %215 ], [ 82, %222 ], [ 80, %230 ]
store i8 %243, i8* %3
ret i8 %244
}