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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ EXIT_FAILURE;
scalar_t__ calloc(int, int);
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char);
int /*<<< orphan*/ perror(char *);
int /*<<< orphan*/ stderr;
int /*<<< orphan*/ strncpy(char *, char *, int);
char *encodeLetter(char c) {
  char *out = (char *)calloc(16, sizeof(char));
  if (out == NULL) {
    perror("ERROR calloc in encodeLetter\n");
    exit(EXIT_FAILURE);
  }
  if (c == ' ' || c == '\n' || c == '\t') {
    strncpy(out, "\t", 16);
  } else if (c == '1') {
    strncpy(out, ". - - - -_", 16);
  } else if (c == '2') {
    strncpy(out, ". . - - -_", 16);
  } else if (c == '3') {
    strncpy(out, ". . . - -_", 16);
  } else if (c == '4') {
    strncpy(out, ". . . . -_", 16);
  } else if (c == '5') {
    strncpy(out, ". . . . ._", 16);
  } else if (c == '6') {
    strncpy(out, "- . . . ._", 16);
  } else if (c == '7') {
    strncpy(out, "- - . . ._", 16);
  } else if (c == '8') {
    strncpy(out, "- - - . ._", 16);
  } else if (c == '9') {
    strncpy(out, "- - - - ._", 16);
  } else if (c == '0') {
    strncpy(out, "- - - - -_", 16);
  } else if (c == 's') {
    strncpy(out, ". . ._", 16);
  } else if (c == 't') {
    strncpy(out, "-_", 16);
  } else if (c == 'u') {
    strncpy(out, ". . -_", 16);
  } else if (c == 'v') {
    strncpy(out, ". . . -_", 16);
  } else if (c == 'w') {
    strncpy(out, ". - -_", 16);
  } else if (c == 'x') {
    strncpy(out, "- . . -_", 16);
  } else if (c == 'y') {
    strncpy(out, "- . - -_", 16);
  } else if (c == 'z') {
    strncpy(out, "- - . ._", 16);
  } else if (c == 'a' || c == 'A') {
    strncpy(out, ". -_", 16);
  } else if (c == 'b' || c == 'B') {
    strncpy(out, "- . . ._", 16);
  } else if (c == 'c' || c == 'C') {
    strncpy(out, "- . - ._", 16);
  } else if (c == 'd' || c == 'D') {
    strncpy(out, "- . ._", 16);
  } else if (c == 'e' || c == 'E') {
    strncpy(out, "._", 16);
  } else if (c == 'f' || c == 'F') {
    strncpy(out, ". . - ._", 16);
  } else if (c == 'g' || c == 'G') {
    strncpy(out, "- - ._", 16);
  } else if (c == 'h' || c == 'H') {
    strncpy(out, ". . . ._", 16);
  } else if (c == 'i' || c == 'I') {
    strncpy(out, ". ._", 16);
  } else if (c == 'j' || c == 'J') {
    strncpy(out, ". - - -_", 16);
  } else if (c == 'k' || c == 'K') {
    strncpy(out, "- . -_", 16);
  } else if (c == 'l' || c == 'L') {
    strncpy(out, ". - . ._", 16);
  } else if (c == 'm' || c == 'M') {
    strncpy(out, "- -_", 16);
  } else if (c == 'n' || c == 'N') {
    strncpy(out, "- ._", 16);
  } else if (c == 'o' || c == 'O') {
    strncpy(out, "- - -_", 16);
  } else if (c == 'p' || c == 'P') {
    strncpy(out, ". - - ._", 16);
  } else if (c == 'q' || c == 'Q') {
    strncpy(out, "- - . -_", 16);
  } else if (c == 'r' || c == 'R') {
    strncpy(out, ". - ._", 16);
  } else {
    fprintf(stderr, "encodeLetter: unsupported letter %c\n", c);
    strncpy(out, "", 16);
  }
  return out;
}


x86 assembly (clang, -O0):
<encodeLetter>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %dil,%al
mov    %al,-0x1(%rbp)
mov    $0x10,%edi
mov    $0x1,%esi
call   1040 <calloc@plt>
mov    %rax,-0x10(%rbp)
cmpq   $0x0,-0x10(%rbp)
jne    1196 <encodeLetter+0x46>
lea    0xe7d(%rip),%rdi
call   1060 <perror@plt>
mov    0x2e49(%rip),%rax
mov    (%rax),%edi
call   1070 <exit@plt>
movsbl -0x1(%rbp),%eax
cmp    $0x20,%eax
je     11bd <encodeLetter+0x6d>
movsbl -0x1(%rbp),%eax
cmp    $0xa,%eax
je     11bd <encodeLetter+0x6d>
movsbl -0x1(%rbp),%eax
cmp    $0x9,%eax
jne    11d7 <encodeLetter+0x87>
mov    -0x10(%rbp),%rdi
lea    0xe56(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    191f <encodeLetter+0x7cf>
movsbl -0x1(%rbp),%eax
cmp    $0x31,%eax
jne    11fe <encodeLetter+0xae>
mov    -0x10(%rbp),%rdi
lea    0xe31(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    191a <encodeLetter+0x7ca>
movsbl -0x1(%rbp),%eax
cmp    $0x32,%eax
jne    1225 <encodeLetter+0xd5>
mov    -0x10(%rbp),%rdi
lea    0xe15(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1915 <encodeLetter+0x7c5>
movsbl -0x1(%rbp),%eax
cmp    $0x33,%eax
jne    124c <encodeLetter+0xfc>
mov    -0x10(%rbp),%rdi
lea    0xdf9(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1910 <encodeLetter+0x7c0>
movsbl -0x1(%rbp),%eax
cmp    $0x34,%eax
jne    1273 <encodeLetter+0x123>
mov    -0x10(%rbp),%rdi
lea    0xddd(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    190b <encodeLetter+0x7bb>
movsbl -0x1(%rbp),%eax
cmp    $0x35,%eax
jne    129a <encodeLetter+0x14a>
mov    -0x10(%rbp),%rdi
lea    0xdc1(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1906 <encodeLetter+0x7b6>
movsbl -0x1(%rbp),%eax
cmp    $0x36,%eax
jne    12c1 <encodeLetter+0x171>
mov    -0x10(%rbp),%rdi
lea    0xda5(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1901 <encodeLetter+0x7b1>
movsbl -0x1(%rbp),%eax
cmp    $0x37,%eax
jne    12e8 <encodeLetter+0x198>
mov    -0x10(%rbp),%rdi
lea    0xd89(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18fc <encodeLetter+0x7ac>
movsbl -0x1(%rbp),%eax
cmp    $0x38,%eax
jne    130f <encodeLetter+0x1bf>
mov    -0x10(%rbp),%rdi
lea    0xd6d(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18f7 <encodeLetter+0x7a7>
movsbl -0x1(%rbp),%eax
cmp    $0x39,%eax
jne    1336 <encodeLetter+0x1e6>
mov    -0x10(%rbp),%rdi
lea    0xd51(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18f2 <encodeLetter+0x7a2>
movsbl -0x1(%rbp),%eax
cmp    $0x30,%eax
jne    135d <encodeLetter+0x20d>
mov    -0x10(%rbp),%rdi
lea    0xd35(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18ed <encodeLetter+0x79d>
movsbl -0x1(%rbp),%eax
cmp    $0x73,%eax
jne    1384 <encodeLetter+0x234>
mov    -0x10(%rbp),%rdi
lea    0xcf1(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18e8 <encodeLetter+0x798>
movsbl -0x1(%rbp),%eax
cmp    $0x74,%eax
jne    13ab <encodeLetter+0x25b>
mov    -0x10(%rbp),%rdi
lea    0xcef(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18e3 <encodeLetter+0x793>
movsbl -0x1(%rbp),%eax
cmp    $0x75,%eax
jne    13d2 <encodeLetter+0x282>
mov    -0x10(%rbp),%rdi
lea    0xccd(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18de <encodeLetter+0x78e>
movsbl -0x1(%rbp),%eax
cmp    $0x76,%eax
jne    13f9 <encodeLetter+0x2a9>
mov    -0x10(%rbp),%rdi
lea    0xc59(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18d9 <encodeLetter+0x789>
movsbl -0x1(%rbp),%eax
cmp    $0x77,%eax
jne    1420 <encodeLetter+0x2d0>
mov    -0x10(%rbp),%rdi
lea    0xc88(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18d4 <encodeLetter+0x784>
movsbl -0x1(%rbp),%eax
cmp    $0x78,%eax
jne    1447 <encodeLetter+0x2f7>
mov    -0x10(%rbp),%rdi
lea    0xc56(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18cf <encodeLetter+0x77f>
movsbl -0x1(%rbp),%eax
cmp    $0x79,%eax
jne    146e <encodeLetter+0x31e>
mov    -0x10(%rbp),%rdi
lea    0xc38(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18ca <encodeLetter+0x77a>
movsbl -0x1(%rbp),%eax
cmp    $0x7a,%eax
jne    1495 <encodeLetter+0x345>
mov    -0x10(%rbp),%rdi
lea    0xbe9(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18c5 <encodeLetter+0x775>
movsbl -0x1(%rbp),%eax
cmp    $0x61,%eax
je     14af <encodeLetter+0x35f>
movsbl -0x1(%rbp),%eax
cmp    $0x41,%eax
jne    14c9 <encodeLetter+0x379>
mov    -0x10(%rbp),%rdi
lea    0xc0e(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18c0 <encodeLetter+0x770>
movsbl -0x1(%rbp),%eax
cmp    $0x62,%eax
je     14e3 <encodeLetter+0x393>
movsbl -0x1(%rbp),%eax
cmp    $0x42,%eax
jne    14fd <encodeLetter+0x3ad>
mov    -0x10(%rbp),%rdi
lea    0xb76(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18bb <encodeLetter+0x76b>
movsbl -0x1(%rbp),%eax
cmp    $0x63,%eax
je     1517 <encodeLetter+0x3c7>
movsbl -0x1(%rbp),%eax
cmp    $0x43,%eax
jne    1531 <encodeLetter+0x3e1>
mov    -0x10(%rbp),%rdi
lea    0xb7e(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18b6 <encodeLetter+0x766>
movsbl -0x1(%rbp),%eax
cmp    $0x64,%eax
je     154b <encodeLetter+0x3fb>
movsbl -0x1(%rbp),%eax
cmp    $0x44,%eax
jne    1565 <encodeLetter+0x415>
mov    -0x10(%rbp),%rdi
lea    0xb1b(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18b1 <encodeLetter+0x761>
movsbl -0x1(%rbp),%eax
cmp    $0x65,%eax
je     157f <encodeLetter+0x42f>
movsbl -0x1(%rbp),%eax
cmp    $0x45,%eax
jne    1599 <encodeLetter+0x449>
mov    -0x10(%rbp),%rdi
lea    0xaf6(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18ac <encodeLetter+0x75c>
movsbl -0x1(%rbp),%eax
cmp    $0x66,%eax
je     15b3 <encodeLetter+0x463>
movsbl -0x1(%rbp),%eax
cmp    $0x46,%eax
jne    15cd <encodeLetter+0x47d>
mov    -0x10(%rbp),%rdi
lea    0xaeb(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18a7 <encodeLetter+0x757>
movsbl -0x1(%rbp),%eax
cmp    $0x67,%eax
je     15e7 <encodeLetter+0x497>
movsbl -0x1(%rbp),%eax
cmp    $0x47,%eax
jne    1601 <encodeLetter+0x4b1>
mov    -0x10(%rbp),%rdi
lea    0xa8a(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    18a2 <encodeLetter+0x752>
movsbl -0x1(%rbp),%eax
cmp    $0x68,%eax
je     161b <encodeLetter+0x4cb>
movsbl -0x1(%rbp),%eax
cmp    $0x48,%eax
jne    1635 <encodeLetter+0x4e5>
mov    -0x10(%rbp),%rdi
lea    0xa33(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    189d <encodeLetter+0x74d>
movsbl -0x1(%rbp),%eax
cmp    $0x69,%eax
je     164f <encodeLetter+0x4ff>
movsbl -0x1(%rbp),%eax
cmp    $0x49,%eax
jne    1669 <encodeLetter+0x519>
mov    -0x10(%rbp),%rdi
lea    0xa19(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1898 <encodeLetter+0x748>
movsbl -0x1(%rbp),%eax
cmp    $0x6a,%eax
je     1683 <encodeLetter+0x533>
movsbl -0x1(%rbp),%eax
cmp    $0x4a,%eax
jne    169d <encodeLetter+0x54d>
mov    -0x10(%rbp),%rdi
lea    0x99f(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1893 <encodeLetter+0x743>
movsbl -0x1(%rbp),%eax
cmp    $0x6b,%eax
je     16b7 <encodeLetter+0x567>
movsbl -0x1(%rbp),%eax
cmp    $0x4b,%eax
jne    16d1 <encodeLetter+0x581>
mov    -0x10(%rbp),%rdi
lea    0xa04(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    188e <encodeLetter+0x73e>
movsbl -0x1(%rbp),%eax
cmp    $0x6c,%eax
je     16eb <encodeLetter+0x59b>
movsbl -0x1(%rbp),%eax
cmp    $0x4c,%eax
jne    1705 <encodeLetter+0x5b5>
mov    -0x10(%rbp),%rdi
lea    0x9bc(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1889 <encodeLetter+0x739>
movsbl -0x1(%rbp),%eax
cmp    $0x6d,%eax
je     171f <encodeLetter+0x5cf>
movsbl -0x1(%rbp),%eax
cmp    $0x4d,%eax
jne    1739 <encodeLetter+0x5e9>
mov    -0x10(%rbp),%rdi
lea    0x95f(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1884 <encodeLetter+0x734>
movsbl -0x1(%rbp),%eax
cmp    $0x6e,%eax
je     1753 <encodeLetter+0x603>
movsbl -0x1(%rbp),%eax
cmp    $0x4e,%eax
jne    176d <encodeLetter+0x61d>
mov    -0x10(%rbp),%rdi
lea    0x920(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    187f <encodeLetter+0x72f>
movsbl -0x1(%rbp),%eax
cmp    $0x6f,%eax
je     1787 <encodeLetter+0x637>
movsbl -0x1(%rbp),%eax
cmp    $0x4f,%eax
jne    17a1 <encodeLetter+0x651>
mov    -0x10(%rbp),%rdi
lea    0x8f5(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    187a <encodeLetter+0x72a>
movsbl -0x1(%rbp),%eax
cmp    $0x70,%eax
je     17bb <encodeLetter+0x66b>
movsbl -0x1(%rbp),%eax
cmp    $0x50,%eax
jne    17d5 <encodeLetter+0x685>
mov    -0x10(%rbp),%rdi
lea    0x8f5(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1875 <encodeLetter+0x725>
movsbl -0x1(%rbp),%eax
cmp    $0x71,%eax
je     17ef <encodeLetter+0x69f>
movsbl -0x1(%rbp),%eax
cmp    $0x51,%eax
jne    1809 <encodeLetter+0x6b9>
mov    -0x10(%rbp),%rdi
lea    0x8ca(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1870 <encodeLetter+0x720>
movsbl -0x1(%rbp),%eax
cmp    $0x72,%eax
je     1823 <encodeLetter+0x6d3>
movsbl -0x1(%rbp),%eax
cmp    $0x52,%eax
jne    183d <encodeLetter+0x6ed>
mov    -0x10(%rbp),%rdi
lea    0x874(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    186b <encodeLetter+0x71b>
mov    0x279c(%rip),%rax
mov    (%rax),%edi
lea    0x880(%rip),%rsi
movsbl -0x1(%rbp),%edx
call   1050 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0x7be(%rip),%rsi
mov    $0x10,%edx
call   1030 <strncpy@plt>
jmp    1870 <encodeLetter+0x720>
jmp    1875 <encodeLetter+0x725>
jmp    187a <encodeLetter+0x72a>
jmp    187f <encodeLetter+0x72f>
jmp    1884 <encodeLetter+0x734>
jmp    1889 <encodeLetter+0x739>
jmp    188e <encodeLetter+0x73e>
jmp    1893 <encodeLetter+0x743>
jmp    1898 <encodeLetter+0x748>
jmp    189d <encodeLetter+0x74d>
jmp    18a2 <encodeLetter+0x752>
jmp    18a7 <encodeLetter+0x757>
jmp    18ac <encodeLetter+0x75c>
jmp    18b1 <encodeLetter+0x761>
jmp    18b6 <encodeLetter+0x766>
jmp    18bb <encodeLetter+0x76b>
jmp    18c0 <encodeLetter+0x770>
jmp    18c5 <encodeLetter+0x775>
jmp    18ca <encodeLetter+0x77a>
jmp    18cf <encodeLetter+0x77f>
jmp    18d4 <encodeLetter+0x784>
jmp    18d9 <encodeLetter+0x789>
jmp    18de <encodeLetter+0x78e>
jmp    18e3 <encodeLetter+0x793>
jmp    18e8 <encodeLetter+0x798>
jmp    18ed <encodeLetter+0x79d>
jmp    18f2 <encodeLetter+0x7a2>
jmp    18f7 <encodeLetter+0x7a7>
jmp    18fc <encodeLetter+0x7ac>
jmp    1901 <encodeLetter+0x7b1>
jmp    1906 <encodeLetter+0x7b6>
jmp    190b <encodeLetter+0x7bb>
jmp    1910 <encodeLetter+0x7c0>
jmp    1915 <encodeLetter+0x7c5>
jmp    191a <encodeLetter+0x7ca>
jmp    191f <encodeLetter+0x7cf>
mov    -0x10(%rbp),%rax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<encodeLetter>:
push   %r14
push   %rbx
push   %rax
mov    %edi,%ebx
mov    $0x10,%edi
mov    $0x1,%esi
call   1040 <calloc@plt>
test   %rax,%rax
je     12a5 <encodeLetter+0x155>
mov    %rax,%r14
lea    -0x9(%rbx),%eax
cmp    $0x71,%al
ja     119e <encodeLetter+0x4e>
lea    0x10af(%rip),%rsi
movzbl %al,%eax
lea    0xe77(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x10fa(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
mov    %ebx,%eax
and    $0xdf,%al
add    $0xbf,%al
cmp    $0x12,%al
jae    126e <encodeLetter+0x11e>
movsbq %al,%rax
lea    0x1011(%rip),%rcx
movslq (%rcx,%rax,4),%rsi
add    %rcx,%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1066(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1070(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x106f(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x108f(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x108e(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1098(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1095(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1020(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1038(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x103a(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x103c(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1037(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1053(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x104f(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0xff9(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1046(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
lea    0x1013(%rip),%rsi
jmp    128d <encodeLetter+0x13d>
mov    0x2d6b(%rip),%rax
mov    (%rax),%edi
movsbl %bl,%edx
lea    0x105c(%rip),%rsi
call   1050 <fprintf@plt>
lea    0xfa2(%rip),%rsi
mov    %r14,%rdi
mov    $0x10,%edx
call   1030 <strncpy@plt>
mov    %r14,%rax
add    $0x8,%rsp
pop    %rbx
pop    %r14
ret
lea    0xf64(%rip),%rdi
call   1060 <perror@plt>
mov    0x2d20(%rip),%rax
mov    (%rax),%edi
call   1070 <exit@plt>

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

LLVM IR (-O2):
@.str = [30 x i8] c"ERROR calloc in encodeLetter\0A\00"
@EXIT_FAILURE = global i32 0
@.str.1 = [2 x i8] c"\09\00"
@.str.2 = [11 x i8] c". - - - -_\00"
@.str.3 = [11 x i8] c". . - - -_\00"
@.str.4 = [11 x i8] c". . . - -_\00"
@.str.5 = [11 x i8] c". . . . -_\00"
@.str.6 = [11 x i8] c". . . . ._\00"
@.str.7 = [11 x i8] c"- . . . ._\00"
@.str.8 = [11 x i8] c"- - . . ._\00"
@.str.9 = [11 x i8] c"- - - . ._\00"
@.str.10 = [11 x i8] c"- - - - ._\00"
@.str.11 = [11 x i8] c"- - - - -_\00"
@.str.12 = [7 x i8] c". . ._\00"
@.str.13 = [3 x i8] c"-_\00"
@.str.14 = [7 x i8] c". . -_\00"
@.str.15 = [9 x i8] c". . . -_\00"
@.str.16 = [7 x i8] c". - -_\00"
@.str.17 = [9 x i8] c"- . . -_\00"
@.str.18 = [9 x i8] c"- . - -_\00"
@.str.19 = [9 x i8] c"- - . ._\00"
@.str.20 = [5 x i8] c". -_\00"
@.str.21 = [9 x i8] c"- . . ._\00"
@.str.22 = [9 x i8] c"- . - ._\00"
@.str.23 = [7 x i8] c"- . ._\00"
@.str.24 = [3 x i8] c"._\00"
@.str.25 = [9 x i8] c". . - ._\00"
@.str.26 = [7 x i8] c"- - ._\00"
@.str.27 = [9 x i8] c". . . ._\00"
@.str.28 = [5 x i8] c". ._\00"
@.str.29 = [9 x i8] c". - - -_\00"
@.str.30 = [7 x i8] c"- . -_\00"
@.str.31 = [9 x i8] c". - . ._\00"
@.str.32 = [5 x i8] c"- -_\00"
@.str.33 = [5 x i8] c"- ._\00"
@.str.34 = [7 x i8] c"- - -_\00"
@.str.35 = [9 x i8] c". - - ._\00"
@.str.36 = [9 x i8] c"- - . -_\00"
@.str.37 = [7 x i8] c". - ._\00"
@stderr = global i32 0
@.str.38 = [37 x i8] c"encodeLetter: unsupported letter %c\0A\00"
@.str.39 = [1 x i8] zeroinitializer
@reltable.encodeLetter = [18 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.20 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.21 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.22 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.23 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.24 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.25 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.26 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.27 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.28 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.29 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.30 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.31 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.32 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.33 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.34 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.35 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.36 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.37 to i64), i64 ptrtoint ([18 x i32]* @reltable.encodeLetter to i64)) to i32)]
define i8* @encodeLetter(i8 signext %0) {
%2 = tail call i64 @calloc(i32 16, i32 1)
%3 = inttoptr i64 %2 to i8*
%4 = icmp eq i64 %2, 0
br i1 %4, label %5, label %9
5: ; preds = %1
%6 = tail call i32 @perror(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0))
%7 = load i32, i32* @EXIT_FAILURE
%8 = tail call i32 @exit(i32 %7)
unreachable
9: ; preds = %1
switch i8 %0, label %28 [
i8 32, label %39
i8 10, label %39
i8 9, label %39
i8 49, label %10
i8 50, label %11
i8 51, label %12
i8 52, label %13
i8 53, label %14
i8 54, label %15
i8 55, label %16
i8 56, label %17
i8 57, label %18
i8 48, label %19
i8 115, label %20
i8 116, label %21
i8 117, label %22
i8 118, label %23
i8 119, label %24
i8 120, label %25
i8 121, label %26
i8 122, label %27
]
10: ; preds = %9
br label %39
11: ; preds = %9
br label %39
12: ; preds = %9
br label %39
13: ; preds = %9
br label %39
14: ; preds = %9
br label %39
15: ; preds = %9
br label %39
16: ; preds = %9
br label %39
17: ; preds = %9
br label %39
18: ; preds = %9
br label %39
19: ; preds = %9
br label %39
20: ; preds = %9
br label %39
21: ; preds = %9
br label %39
22: ; preds = %9
br label %39
23: ; preds = %9
br label %39
24: ; preds = %9
br label %39
25: ; preds = %9
br label %39
26: ; preds = %9
br label %39
27: ; preds = %9
br label %39
28: ; preds = %9
%29 = and i8 %0, -33
%30 = add i8 %29, -65
%31 = icmp ult i8 %30, 18
br i1 %31, label %35, label %32
32: ; preds = %28
%33 = load i32, i32* @stderr
%34 = tail call i32 @fprintf(i32 %33, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.38, i64 0, i64 0), i8 signext %0)
br label %39
35: ; preds = %28
%36 = sext i8 %30 to i64
%37 = shl i64 %36, 2
%38 = call i8* @llvm.load.relative.i64(i8* bitcast ([18 x i32]* @reltable.encodeLetter to i8*), i64 %37)
br label %39
39: ; preds = %35, %9, %9, %9, %10, %12, %14, %16, %18, %20, %22, %24, %26, %32, %27, %25, %23, %21, %19, %17, %15, %13, %11
%40 = phi i8* [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0), %10 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0), %12 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0), %14 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0), %16 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0), %18 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), %20 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.14, i64 0, i64 0), %22 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), %24 ], [ getelementptr inbounds ([9 x i8], [9 x i8]* @.str.18, i64 0, i64 0), %26 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.39, i64 0, i64 0), %32 ], [ getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0), %27 ], [ getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0), %25 ], [ getelementptr inbounds ([9 x i8], [9 x i8]* @.str.15, i64 0, i64 0), %23 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0), %21 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.11, i64 0, i64 0), %19 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), %17 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.7, i64 0, i64 0), %15 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0), %13 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), %11 ], [ getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0), %9 ], [ getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0), %9 ], [ getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0), %9 ], [ %38, %35 ]
%41 = tail call i32 @strncpy(i8* %3, i8* %40, i32 16)
ret i8* %3
}