#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 */
scalar_t__ gets(char *);
int /*<<< orphan*/ printf(char *, char *);
int strlen(char *);
int main() {
  char s[10000];
  int i;
  while (gets(s)) {
    for (i = 0; i < strlen(s); i++) {
      if (s[i] == '=')
        s[i] = '0';
      else if (s[i] == '-')
        s[i] = '9';
      else if (s[i] == '0')
        s[i] = '8';
      else if (s[i] == '9')
        s[i] = '7';
      else if (s[i] == '8')
        s[i] = '6';
      else if (s[i] == '7')
        s[i] = '6';
      else if (s[i] == '6')
        s[i] = '4';
      else if (s[i] == '5')
        s[i] = '3';
      else if (s[i] == '4')
        s[i] = '2';
      else if (s[i] == '3')
        s[i] = '1';
      else if (s[i] == '2')
        s[i] = '`';
      else if (s[i] == 92)
        s[i] = '[';
      else if (s[i] == ']')
        s[i] = 'p';
      else if (s[i] == '[')
        s[i] = 'o';
      else if (s[i] == 'p' || s[i] == 'P')
        s[i] = 'i';
      else if (s[i] == 'o')
        s[i] = 'u';
      else if (s[i] == 'i' || s[i] == 'I')
        s[i] = 'y';
      else if (s[i] == 'u' || s[i] == 'U')
        s[i] = 't';
      else if (s[i] == 'y' || s[i] == 'Y')
        s[i] = 'r';
      else if (s[i] == 't' || s[i] == 'T')
        s[i] = 'e';
      else if (s[i] == 'r' || s[i] == 'R')
        s[i] = 'w';
      else if (s[i] == 'e' || s[i] == 'E')
        s[i] = 'q';
      else if (s[i] == 39)
        s[i] = 'l';
      else if (s[i] == ';')
        s[i] = 'k';
      else if (s[i] == 'l' || s[i] == 'L')
        s[i] = 'j';
      else if (s[i] == 'k' || s[i] == 'K')
        s[i] = 'h';
      else if (s[i] == 'j' || s[i] == 'J')
        s[i] = 'g';
      else if (s[i] == 'h' || s[i] == 'H')
        s[i] = 'f';
      else if (s[i] == 'g' || s[i] == 'G')
        s[i] = 'd';
      else if (s[i] == 'f' || s[i] == 'F')
        s[i] = 's';
      else if (s[i] == 'd' || s[i] == 'D')
        s[i] = 'a';
      else if (s[i] == '/')
        s[i] = ',';
      else if (s[i] == '.')
        s[i] = 'm';
      else if (s[i] == ',')
        s[i] = 'n';
      else if (s[i] == 'm' || s[i] == 'M')
        s[i] = 'b';
      else if (s[i] == 'n' || s[i] == 'N')
        s[i] = 'v';
      else if (s[i] == 'b' || s[i] == 'B')
        s[i] = 'c';
      else if (s[i] == 'v' || s[i] == 'V')
        s[i] = 'x';
      else if (s[i] == 'c' || s[i] == 'C')
        s[i] = 'z';
      if (i == strlen(s) - 1)
        printf("%s\n", s);
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x2730,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x2720(%rbp),%rdi
call   1050 <gets@plt>
cmp    $0x0,%rax
je     1b1b <main+0x9eb>
movl   $0x0,-0x2724(%rbp)
mov    -0x2724(%rbp),%eax
mov    %eax,-0x2728(%rbp)
lea    -0x2720(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,%ecx
mov    -0x2728(%rbp),%eax
cmp    %ecx,%eax
jge    1b16 <main+0x9e6>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x3d,%eax
jne    11b6 <main+0x86>
movslq -0x2724(%rbp),%rax
movb   $0x30,-0x2720(%rbp,%rax,1)
30
jmp    1abf <main+0x98f>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x2d,%eax
jne    11e2 <main+0xb2>
movslq -0x2724(%rbp),%rax
movb   $0x39,-0x2720(%rbp,%rax,1)
39
jmp    1aba <main+0x98a>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x30,%eax
jne    120e <main+0xde>
movslq -0x2724(%rbp),%rax
movb   $0x38,-0x2720(%rbp,%rax,1)
38
jmp    1ab5 <main+0x985>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x39,%eax
jne    123a <main+0x10a>
movslq -0x2724(%rbp),%rax
movb   $0x37,-0x2720(%rbp,%rax,1)
37
jmp    1ab0 <main+0x980>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x38,%eax
jne    1266 <main+0x136>
movslq -0x2724(%rbp),%rax
movb   $0x36,-0x2720(%rbp,%rax,1)
36
jmp    1aab <main+0x97b>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x37,%eax
jne    1292 <main+0x162>
movslq -0x2724(%rbp),%rax
movb   $0x36,-0x2720(%rbp,%rax,1)
36
jmp    1aa6 <main+0x976>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x36,%eax
jne    12be <main+0x18e>
movslq -0x2724(%rbp),%rax
movb   $0x34,-0x2720(%rbp,%rax,1)
34
jmp    1aa1 <main+0x971>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x35,%eax
jne    12ea <main+0x1ba>
movslq -0x2724(%rbp),%rax
movb   $0x33,-0x2720(%rbp,%rax,1)
33
jmp    1a9c <main+0x96c>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x34,%eax
jne    1316 <main+0x1e6>
movslq -0x2724(%rbp),%rax
movb   $0x32,-0x2720(%rbp,%rax,1)
32
jmp    1a97 <main+0x967>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x33,%eax
jne    1342 <main+0x212>
movslq -0x2724(%rbp),%rax
movb   $0x31,-0x2720(%rbp,%rax,1)
31
jmp    1a92 <main+0x962>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x32,%eax
jne    136e <main+0x23e>
movslq -0x2724(%rbp),%rax
movb   $0x60,-0x2720(%rbp,%rax,1)
60
jmp    1a8d <main+0x95d>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x5c,%eax
jne    139a <main+0x26a>
movslq -0x2724(%rbp),%rax
movb   $0x5b,-0x2720(%rbp,%rax,1)
5b
jmp    1a88 <main+0x958>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x5d,%eax
jne    13c6 <main+0x296>
movslq -0x2724(%rbp),%rax
movb   $0x70,-0x2720(%rbp,%rax,1)
70
jmp    1a83 <main+0x953>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x5b,%eax
jne    13f2 <main+0x2c2>
movslq -0x2724(%rbp),%rax
movb   $0x6f,-0x2720(%rbp,%rax,1)
6f
jmp    1a7e <main+0x94e>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
cmp    $0x70,%eax
je     1422 <main+0x2f2>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x50,%eax
jne    1436 <main+0x306>
movslq -0x2724(%rbp),%rax
movb   $0x69,-0x2720(%rbp,%rax,1)
69
jmp    1a79 <main+0x949>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x6f,%eax
jne    1462 <main+0x332>
movslq -0x2724(%rbp),%rax
movb   $0x75,-0x2720(%rbp,%rax,1)
75
jmp    1a74 <main+0x944>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x69,%eax
je     1492 <main+0x362>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
jne    14a6 <main+0x376>
movslq -0x2724(%rbp),%rax
movb   $0x79,-0x2720(%rbp,%rax,1)
79
jmp    1a6f <main+0x93f>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x75,%eax
je     14d6 <main+0x3a6>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x55,%eax
jne    14ea <main+0x3ba>
movslq -0x2724(%rbp),%rax
movb   $0x74,-0x2720(%rbp,%rax,1)
74
jmp    1a6a <main+0x93a>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x79,%eax
je     151a <main+0x3ea>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x59,%eax
jne    152e <main+0x3fe>
movslq -0x2724(%rbp),%rax
movb   $0x72,-0x2720(%rbp,%rax,1)
72
jmp    1a65 <main+0x935>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x74,%eax
je     155e <main+0x42e>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x54,%eax
jne    1572 <main+0x442>
movslq -0x2724(%rbp),%rax
movb   $0x65,-0x2720(%rbp,%rax,1)
65
jmp    1a60 <main+0x930>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x72,%eax
je     15a2 <main+0x472>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x52,%eax
jne    15b6 <main+0x486>
movslq -0x2724(%rbp),%rax
movb   $0x77,-0x2720(%rbp,%rax,1)
77
jmp    1a5b <main+0x92b>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x65,%eax
je     15e6 <main+0x4b6>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x45,%eax
jne    15fa <main+0x4ca>
movslq -0x2724(%rbp),%rax
movb   $0x71,-0x2720(%rbp,%rax,1)
71
jmp    1a56 <main+0x926>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x27,%eax
jne    1626 <main+0x4f6>
movslq -0x2724(%rbp),%rax
movb   $0x6c,-0x2720(%rbp,%rax,1)
6c
jmp    1a51 <main+0x921>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x3b,%eax
jne    1652 <main+0x522>
movslq -0x2724(%rbp),%rax
movb   $0x6b,-0x2720(%rbp,%rax,1)
6b
jmp    1a4c <main+0x91c>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x6c,%eax
je     1682 <main+0x552>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
jne    1696 <main+0x566>
movslq -0x2724(%rbp),%rax
movb   $0x6a,-0x2720(%rbp,%rax,1)
6a
jmp    1a47 <main+0x917>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x6b,%eax
je     16c6 <main+0x596>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x4b,%eax
jne    16da <main+0x5aa>
movslq -0x2724(%rbp),%rax
movb   $0x68,-0x2720(%rbp,%rax,1)
68
jmp    1a42 <main+0x912>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x6a,%eax
je     170a <main+0x5da>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
cmp    $0x4a,%eax
jne    171e <main+0x5ee>
movslq -0x2724(%rbp),%rax
movb   $0x67,-0x2720(%rbp,%rax,1)
67
jmp    1a3d <main+0x90d>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x68,%eax
je     174e <main+0x61e>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x48,%eax
jne    1762 <main+0x632>
movslq -0x2724(%rbp),%rax
movb   $0x66,-0x2720(%rbp,%rax,1)
66
jmp    1a38 <main+0x908>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x67,%eax
je     1792 <main+0x662>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x47,%eax
jne    17a6 <main+0x676>
movslq -0x2724(%rbp),%rax
movb   $0x64,-0x2720(%rbp,%rax,1)
64
jmp    1a33 <main+0x903>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x66,%eax
je     17d6 <main+0x6a6>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x46,%eax
jne    17ea <main+0x6ba>
movslq -0x2724(%rbp),%rax
movb   $0x73,-0x2720(%rbp,%rax,1)
73
jmp    1a2e <main+0x8fe>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x64,%eax
je     181a <main+0x6ea>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x44,%eax
jne    182e <main+0x6fe>
movslq -0x2724(%rbp),%rax
movb   $0x61,-0x2720(%rbp,%rax,1)
61
jmp    1a29 <main+0x8f9>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x2f,%eax
jne    185a <main+0x72a>
movslq -0x2724(%rbp),%rax
movb   $0x2c,-0x2720(%rbp,%rax,1)
2c
jmp    1a24 <main+0x8f4>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x2e,%eax
jne    1886 <main+0x756>
movslq -0x2724(%rbp),%rax
movb   $0x6d,-0x2720(%rbp,%rax,1)
6d
jmp    1a1f <main+0x8ef>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x2c,%eax
jne    18b2 <main+0x782>
movslq -0x2724(%rbp),%rax
movb   $0x6e,-0x2720(%rbp,%rax,1)
6e
jmp    1a1a <main+0x8ea>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x6d,%eax
je     18e2 <main+0x7b2>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x4d,%eax
jne    18f6 <main+0x7c6>
movslq -0x2724(%rbp),%rax
movb   $0x62,-0x2720(%rbp,%rax,1)
62
jmp    1a15 <main+0x8e5>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x6e,%eax
je     1926 <main+0x7f6>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x4e,%eax
jne    193a <main+0x80a>
movslq -0x2724(%rbp),%rax
movb   $0x76,-0x2720(%rbp,%rax,1)
76
jmp    1a10 <main+0x8e0>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x62,%eax
je     196a <main+0x83a>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x42,%eax
jne    197e <main+0x84e>
movslq -0x2724(%rbp),%rax
movb   $0x63,-0x2720(%rbp,%rax,1)
63
jmp    1a0b <main+0x8db>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x76,%eax
je     19ae <main+0x87e>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
jne    19c2 <main+0x892>
movslq -0x2724(%rbp),%rax
movb   $0x78,-0x2720(%rbp,%rax,1)
78
jmp    1a06 <main+0x8d6>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x63,%eax
je     19f2 <main+0x8c2>
movslq -0x2724(%rbp),%rax
movsbl -0x2720(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
jne    1a01 <main+0x8d1>
movslq -0x2724(%rbp),%rax
movb   $0x7a,-0x2720(%rbp,%rax,1)
jmp    1a06 <main+0x8d6>
jmp    1a0b <main+0x8db>
jmp    1a10 <main+0x8e0>
jmp    1a15 <main+0x8e5>
jmp    1a1a <main+0x8ea>
jmp    1a1f <main+0x8ef>
jmp    1a24 <main+0x8f4>
jmp    1a29 <main+0x8f9>
jmp    1a2e <main+0x8fe>
jmp    1a33 <main+0x903>
jmp    1a38 <main+0x908>
jmp    1a3d <main+0x90d>
jmp    1a42 <main+0x912>
jmp    1a47 <main+0x917>
jmp    1a4c <main+0x91c>
jmp    1a51 <main+0x921>
jmp    1a56 <main+0x926>
jmp    1a5b <main+0x92b>
jmp    1a60 <main+0x930>
jmp    1a65 <main+0x935>
jmp    1a6a <main+0x93a>
jmp    1a6f <main+0x93f>
jmp    1a74 <main+0x944>
jmp    1a79 <main+0x949>
jmp    1a7e <main+0x94e>
jmp    1a83 <main+0x953>
jmp    1a88 <main+0x958>
jmp    1a8d <main+0x95d>
jmp    1a92 <main+0x962>
jmp    1a97 <main+0x967>
jmp    1a9c <main+0x96c>
jmp    1aa1 <main+0x971>
jmp    1aa6 <main+0x976>
jmp    1aab <main+0x97b>
jmp    1ab0 <main+0x980>
jmp    1ab5 <main+0x985>
jmp    1aba <main+0x98a>
jmp    1abf <main+0x98f>
mov    -0x2724(%rbp),%eax
mov    %eax,-0x272c(%rbp)
lea    -0x2720(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,%ecx
mov    -0x272c(%rbp),%eax
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    1afd <main+0x9cd>
lea    -0x2720(%rbp),%rsi
lea    0x508(%rip),%rdi
call   1040 <printf@plt>
jmp    1b02 <main+0x9d2>
mov    -0x2724(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2724(%rbp)
jmp    1162 <main+0x32>
jmp    1142 <main+0x12>
xor    %eax,%eax
add    $0x2730,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x2718,%rsp
mov    %rsp,%rdi
call   1050 <gets@plt>
test   %rax,%rax
je     1297 <main+0x167>
mov    %rsp,%r12
lea    0xff3(%rip),%r14
lea    0xea0(%rip),%r15
jmp    1181 <main+0x51>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %r12,%rdi
call   1050 <gets@plt>
test   %rax,%rax
je     1297 <main+0x167>
mov    %r12,%rdi
call   1030 <strlen@plt>
test   %eax,%eax
jle    1170 <main+0x40>
xor    %ebx,%ebx
jmp    11b3 <main+0x83>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x1,%rbx
mov    %r12,%rdi
call   1030 <strlen@plt>
cltq
cmp    %rax,%rbx
jge    1170 <main+0x40>
movzbl (%rsp,%rbx,1),%ecx
add    $0xd9,%cl
cmp    $0x52,%cl
ja     1273 <main+0x143>
mov    $0x30,%al
movzbl %cl,%ecx
movslq (%r15,%rcx,4),%rcx
add    %r15,%rcx
jmp    *%rcx
mov    $0x36,%al
jmp    1270 <main+0x140>
mov    $0x63,%al
jmp    1270 <main+0x140>
mov    $0x7a,%al
jmp    1270 <main+0x140>
mov    $0x61,%al
jmp    1270 <main+0x140>
mov    $0x71,%al
jmp    1270 <main+0x140>
mov    $0x73,%al
jmp    1270 <main+0x140>
mov    $0x64,%al
jmp    1270 <main+0x140>
mov    $0x66,%al
jmp    1270 <main+0x140>
mov    $0x79,%al
jmp    1270 <main+0x140>
mov    $0x67,%al
jmp    1270 <main+0x140>
mov    $0x68,%al
jmp    1270 <main+0x140>
mov    $0x6a,%al
jmp    1270 <main+0x140>
mov    $0x62,%al
jmp    1270 <main+0x140>
mov    $0x76,%al
jmp    1270 <main+0x140>
mov    $0x69,%al
jmp    1270 <main+0x140>
mov    $0x77,%al
jmp    1270 <main+0x140>
mov    $0x65,%al
jmp    1270 <main+0x140>
mov    $0x74,%al
jmp    1270 <main+0x140>
mov    $0x78,%al
jmp    1270 <main+0x140>
mov    $0x72,%al
jmp    1270 <main+0x140>
mov    $0x6c,%al
jmp    1270 <main+0x140>
mov    $0x6e,%al
jmp    1270 <main+0x140>
mov    $0x39,%al
jmp    1270 <main+0x140>
mov    $0x6d,%al
jmp    1270 <main+0x140>
mov    $0x2c,%al
jmp    1270 <main+0x140>
mov    $0x38,%al
jmp    1270 <main+0x140>
mov    $0x60,%al
jmp    1270 <main+0x140>
mov    $0x31,%al
jmp    1270 <main+0x140>
mov    $0x32,%al
jmp    1270 <main+0x140>
mov    $0x33,%al
jmp    1270 <main+0x140>
mov    $0x34,%al
jmp    1270 <main+0x140>
mov    $0x37,%al
jmp    1270 <main+0x140>
mov    $0x6b,%al
jmp    1270 <main+0x140>
mov    $0x6f,%al
jmp    1270 <main+0x140>
mov    $0x5b,%al
jmp    1270 <main+0x140>
mov    $0x70,%al
jmp    1270 <main+0x140>
mov    $0x75,%al
nop
mov    %al,(%rsp,%rbx,1)
mov    %r12,%rdi
call   1030 <strlen@plt>
add    $0xffffffff,%eax
cmp    %rax,%rbx
jne    11a0 <main+0x70>
mov    %r14,%rdi
mov    %r12,%rsi
call   1040 <printf@plt>
jmp    11a0 <main+0x70>
xor    %eax,%eax
add    $0x2718,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@.str = [4 x i8] c"%s\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [10000 x i8]
%3 = alloca i32
store i32 0, i32* %1
br label %4
4: ; preds = %627, %0
%5 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 0
%6 = call i64 @gets(i8* %5)
%7 = icmp ne i64 %6, 0
br i1 %7, label %8, label %628
8: ; preds = %4
store i32 0, i32* %3
br label %9
9: ; preds = %624, %8
%10 = load i32, i32* %3
%11 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 0
%12 = call i32 @strlen(i8* %11)
%13 = icmp slt i32 %10, %12
br i1 %13, label %14, label %627
14: ; preds = %9
%15 = load i32, i32* %3
%16 = sext i32 %15 to i64
%17 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %16
%18 = load i8, i8* %17
%19 = sext i8 %18 to i32
%20 = icmp eq i32 %19, 61
br i1 %20, label %21, label %25
21: ; preds = %14
%22 = load i32, i32* %3
%23 = sext i32 %22 to i64
%24 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %23
store i8 48, i8* %24
br label %614
25: ; preds = %14
%26 = load i32, i32* %3
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %27
%29 = load i8, i8* %28
%30 = sext i8 %29 to i32
%31 = icmp eq i32 %30, 45
br i1 %31, label %32, label %36
32: ; preds = %25
%33 = load i32, i32* %3
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %34
store i8 57, i8* %35
br label %613
36: ; preds = %25
%37 = load i32, i32* %3
%38 = sext i32 %37 to i64
%39 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %38
%40 = load i8, i8* %39
%41 = sext i8 %40 to i32
%42 = icmp eq i32 %41, 48
br i1 %42, label %43, label %47
43: ; preds = %36
%44 = load i32, i32* %3
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %45
store i8 56, i8* %46
br label %612
47: ; preds = %36
%48 = load i32, i32* %3
%49 = sext i32 %48 to i64
%50 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %49
%51 = load i8, i8* %50
%52 = sext i8 %51 to i32
%53 = icmp eq i32 %52, 57
br i1 %53, label %54, label %58
54: ; preds = %47
%55 = load i32, i32* %3
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %56
store i8 55, i8* %57
br label %611
58: ; preds = %47
%59 = load i32, i32* %3
%60 = sext i32 %59 to i64
%61 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %60
%62 = load i8, i8* %61
%63 = sext i8 %62 to i32
%64 = icmp eq i32 %63, 56
br i1 %64, label %65, label %69
65: ; preds = %58
%66 = load i32, i32* %3
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %67
store i8 54, i8* %68
br label %610
69: ; preds = %58
%70 = load i32, i32* %3
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %71
%73 = load i8, i8* %72
%74 = sext i8 %73 to i32
%75 = icmp eq i32 %74, 55
br i1 %75, label %76, label %80
76: ; preds = %69
%77 = load i32, i32* %3
%78 = sext i32 %77 to i64
%79 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %78
store i8 54, i8* %79
br label %609
80: ; preds = %69
%81 = load i32, i32* %3
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %82
%84 = load i8, i8* %83
%85 = sext i8 %84 to i32
%86 = icmp eq i32 %85, 54
br i1 %86, label %87, label %91
87: ; preds = %80
%88 = load i32, i32* %3
%89 = sext i32 %88 to i64
%90 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %89
store i8 52, i8* %90
br label %608
91: ; preds = %80
%92 = load i32, i32* %3
%93 = sext i32 %92 to i64
%94 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %93
%95 = load i8, i8* %94
%96 = sext i8 %95 to i32
%97 = icmp eq i32 %96, 53
br i1 %97, label %98, label %102
98: ; preds = %91
%99 = load i32, i32* %3
%100 = sext i32 %99 to i64
%101 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %100
store i8 51, i8* %101
br label %607
102: ; preds = %91
%103 = load i32, i32* %3
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %104
%106 = load i8, i8* %105
%107 = sext i8 %106 to i32
%108 = icmp eq i32 %107, 52
br i1 %108, label %109, label %113
109: ; preds = %102
%110 = load i32, i32* %3
%111 = sext i32 %110 to i64
%112 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %111
store i8 50, i8* %112
br label %606
113: ; preds = %102
%114 = load i32, i32* %3
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %115
%117 = load i8, i8* %116
%118 = sext i8 %117 to i32
%119 = icmp eq i32 %118, 51
br i1 %119, label %120, label %124
120: ; preds = %113
%121 = load i32, i32* %3
%122 = sext i32 %121 to i64
%123 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %122
store i8 49, i8* %123
br label %605
124: ; preds = %113
%125 = load i32, i32* %3
%126 = sext i32 %125 to i64
%127 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %126
%128 = load i8, i8* %127
%129 = sext i8 %128 to i32
%130 = icmp eq i32 %129, 50
br i1 %130, label %131, label %135
131: ; preds = %124
%132 = load i32, i32* %3
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %133
store i8 96, i8* %134
br label %604
135: ; preds = %124
%136 = load i32, i32* %3
%137 = sext i32 %136 to i64
%138 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %137
%139 = load i8, i8* %138
%140 = sext i8 %139 to i32
%141 = icmp eq i32 %140, 92
br i1 %141, label %142, label %146
142: ; preds = %135
%143 = load i32, i32* %3
%144 = sext i32 %143 to i64
%145 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %144
store i8 91, i8* %145
br label %603
146: ; preds = %135
%147 = load i32, i32* %3
%148 = sext i32 %147 to i64
%149 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %148
%150 = load i8, i8* %149
%151 = sext i8 %150 to i32
%152 = icmp eq i32 %151, 93
br i1 %152, label %153, label %157
153: ; preds = %146
%154 = load i32, i32* %3
%155 = sext i32 %154 to i64
%156 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %155
store i8 112, i8* %156
br label %602
157: ; preds = %146
%158 = load i32, i32* %3
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %159
%161 = load i8, i8* %160
%162 = sext i8 %161 to i32
%163 = icmp eq i32 %162, 91
br i1 %163, label %164, label %168
164: ; preds = %157
%165 = load i32, i32* %3
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %166
store i8 111, i8* %167
br label %601
168: ; preds = %157
%169 = load i32, i32* %3
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %170
%172 = load i8, i8* %171
%173 = sext i8 %172 to i32
%174 = icmp eq i32 %173, 112
br i1 %174, label %182, label %175
175: ; preds = %168
%176 = load i32, i32* %3
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %177
%179 = load i8, i8* %178
%180 = sext i8 %179 to i32
%181 = icmp eq i32 %180, 80
br i1 %181, label %182, label %186
182: ; preds = %175, %168
%183 = load i32, i32* %3
%184 = sext i32 %183 to i64
%185 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %184
store i8 105, i8* %185
br label %600
186: ; preds = %175
%187 = load i32, i32* %3
%188 = sext i32 %187 to i64
%189 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %188
%190 = load i8, i8* %189
%191 = sext i8 %190 to i32
%192 = icmp eq i32 %191, 111
br i1 %192, label %193, label %197
193: ; preds = %186
%194 = load i32, i32* %3
%195 = sext i32 %194 to i64
%196 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %195
store i8 117, i8* %196
br label %599
197: ; preds = %186
%198 = load i32, i32* %3
%199 = sext i32 %198 to i64
%200 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %199
%201 = load i8, i8* %200
%202 = sext i8 %201 to i32
%203 = icmp eq i32 %202, 105
br i1 %203, label %211, label %204
204: ; preds = %197
%205 = load i32, i32* %3
%206 = sext i32 %205 to i64
%207 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %206
%208 = load i8, i8* %207
%209 = sext i8 %208 to i32
%210 = icmp eq i32 %209, 73
br i1 %210, label %211, label %215
211: ; preds = %204, %197
%212 = load i32, i32* %3
%213 = sext i32 %212 to i64
%214 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %213
store i8 121, i8* %214
br label %598
215: ; preds = %204
%216 = load i32, i32* %3
%217 = sext i32 %216 to i64
%218 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %217
%219 = load i8, i8* %218
%220 = sext i8 %219 to i32
%221 = icmp eq i32 %220, 117
br i1 %221, label %229, label %222
222: ; preds = %215
%223 = load i32, i32* %3
%224 = sext i32 %223 to i64
%225 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %224
%226 = load i8, i8* %225
%227 = sext i8 %226 to i32
%228 = icmp eq i32 %227, 85
br i1 %228, label %229, label %233
229: ; preds = %222, %215
%230 = load i32, i32* %3
%231 = sext i32 %230 to i64
%232 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %231
store i8 116, i8* %232
br label %597
233: ; preds = %222
%234 = load i32, i32* %3
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %235
%237 = load i8, i8* %236
%238 = sext i8 %237 to i32
%239 = icmp eq i32 %238, 121
br i1 %239, label %247, label %240
240: ; preds = %233
%241 = load i32, i32* %3
%242 = sext i32 %241 to i64
%243 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %242
%244 = load i8, i8* %243
%245 = sext i8 %244 to i32
%246 = icmp eq i32 %245, 89
br i1 %246, label %247, label %251
247: ; preds = %240, %233
%248 = load i32, i32* %3
%249 = sext i32 %248 to i64
%250 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %249
store i8 114, i8* %250
br label %596
251: ; preds = %240
%252 = load i32, i32* %3
%253 = sext i32 %252 to i64
%254 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %253
%255 = load i8, i8* %254
%256 = sext i8 %255 to i32
%257 = icmp eq i32 %256, 116
br i1 %257, label %265, label %258
258: ; preds = %251
%259 = load i32, i32* %3
%260 = sext i32 %259 to i64
%261 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %260
%262 = load i8, i8* %261
%263 = sext i8 %262 to i32
%264 = icmp eq i32 %263, 84
br i1 %264, label %265, label %269
265: ; preds = %258, %251
%266 = load i32, i32* %3
%267 = sext i32 %266 to i64
%268 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %267
store i8 101, i8* %268
br label %595
269: ; preds = %258
%270 = load i32, i32* %3
%271 = sext i32 %270 to i64
%272 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %271
%273 = load i8, i8* %272
%274 = sext i8 %273 to i32
%275 = icmp eq i32 %274, 114
br i1 %275, label %283, label %276
276: ; preds = %269
%277 = load i32, i32* %3
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %278
%280 = load i8, i8* %279
%281 = sext i8 %280 to i32
%282 = icmp eq i32 %281, 82
br i1 %282, label %283, label %287
283: ; preds = %276, %269
%284 = load i32, i32* %3
%285 = sext i32 %284 to i64
%286 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %285
store i8 119, i8* %286
br label %594
287: ; preds = %276
%288 = load i32, i32* %3
%289 = sext i32 %288 to i64
%290 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %289
%291 = load i8, i8* %290
%292 = sext i8 %291 to i32
%293 = icmp eq i32 %292, 101
br i1 %293, label %301, label %294
294: ; preds = %287
%295 = load i32, i32* %3
%296 = sext i32 %295 to i64
%297 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %296
%298 = load i8, i8* %297
%299 = sext i8 %298 to i32
%300 = icmp eq i32 %299, 69
br i1 %300, label %301, label %305
301: ; preds = %294, %287
%302 = load i32, i32* %3
%303 = sext i32 %302 to i64
%304 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %303
store i8 113, i8* %304
br label %593
305: ; preds = %294
%306 = load i32, i32* %3
%307 = sext i32 %306 to i64
%308 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %307
%309 = load i8, i8* %308
%310 = sext i8 %309 to i32
%311 = icmp eq i32 %310, 39
br i1 %311, label %312, label %316
312: ; preds = %305
%313 = load i32, i32* %3
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %314
store i8 108, i8* %315
br label %592
316: ; preds = %305
%317 = load i32, i32* %3
%318 = sext i32 %317 to i64
%319 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %318
%320 = load i8, i8* %319
%321 = sext i8 %320 to i32
%322 = icmp eq i32 %321, 59
br i1 %322, label %323, label %327
323: ; preds = %316
%324 = load i32, i32* %3
%325 = sext i32 %324 to i64
%326 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %325
store i8 107, i8* %326
br label %591
327: ; preds = %316
%328 = load i32, i32* %3
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %329
%331 = load i8, i8* %330
%332 = sext i8 %331 to i32
%333 = icmp eq i32 %332, 108
br i1 %333, label %341, label %334
334: ; preds = %327
%335 = load i32, i32* %3
%336 = sext i32 %335 to i64
%337 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %336
%338 = load i8, i8* %337
%339 = sext i8 %338 to i32
%340 = icmp eq i32 %339, 76
br i1 %340, label %341, label %345
341: ; preds = %334, %327
%342 = load i32, i32* %3
%343 = sext i32 %342 to i64
%344 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %343
store i8 106, i8* %344
br label %590
345: ; preds = %334
%346 = load i32, i32* %3
%347 = sext i32 %346 to i64
%348 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %347
%349 = load i8, i8* %348
%350 = sext i8 %349 to i32
%351 = icmp eq i32 %350, 107
br i1 %351, label %359, label %352
352: ; preds = %345
%353 = load i32, i32* %3
%354 = sext i32 %353 to i64
%355 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %354
%356 = load i8, i8* %355
%357 = sext i8 %356 to i32
%358 = icmp eq i32 %357, 75
br i1 %358, label %359, label %363
359: ; preds = %352, %345
%360 = load i32, i32* %3
%361 = sext i32 %360 to i64
%362 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %361
store i8 104, i8* %362
br label %589
363: ; preds = %352
%364 = load i32, i32* %3
%365 = sext i32 %364 to i64
%366 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %365
%367 = load i8, i8* %366
%368 = sext i8 %367 to i32
%369 = icmp eq i32 %368, 106
br i1 %369, label %377, label %370
370: ; preds = %363
%371 = load i32, i32* %3
%372 = sext i32 %371 to i64
%373 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %372
%374 = load i8, i8* %373
%375 = sext i8 %374 to i32
%376 = icmp eq i32 %375, 74
br i1 %376, label %377, label %381
377: ; preds = %370, %363
%378 = load i32, i32* %3
%379 = sext i32 %378 to i64
%380 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %379
store i8 103, i8* %380
br label %588
381: ; preds = %370
%382 = load i32, i32* %3
%383 = sext i32 %382 to i64
%384 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %383
%385 = load i8, i8* %384
%386 = sext i8 %385 to i32
%387 = icmp eq i32 %386, 104
br i1 %387, label %395, label %388
388: ; preds = %381
%389 = load i32, i32* %3
%390 = sext i32 %389 to i64
%391 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %390
%392 = load i8, i8* %391
%393 = sext i8 %392 to i32
%394 = icmp eq i32 %393, 72
br i1 %394, label %395, label %399
395: ; preds = %388, %381
%396 = load i32, i32* %3
%397 = sext i32 %396 to i64
%398 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %397
store i8 102, i8* %398
br label %587
399: ; preds = %388
%400 = load i32, i32* %3
%401 = sext i32 %400 to i64
%402 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %401
%403 = load i8, i8* %402
%404 = sext i8 %403 to i32
%405 = icmp eq i32 %404, 103
br i1 %405, label %413, label %406
406: ; preds = %399
%407 = load i32, i32* %3
%408 = sext i32 %407 to i64
%409 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %408
%410 = load i8, i8* %409
%411 = sext i8 %410 to i32
%412 = icmp eq i32 %411, 71
br i1 %412, label %413, label %417
413: ; preds = %406, %399
%414 = load i32, i32* %3
%415 = sext i32 %414 to i64
%416 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %415
store i8 100, i8* %416
br label %586
417: ; preds = %406
%418 = load i32, i32* %3
%419 = sext i32 %418 to i64
%420 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %419
%421 = load i8, i8* %420
%422 = sext i8 %421 to i32
%423 = icmp eq i32 %422, 102
br i1 %423, label %431, label %424
424: ; preds = %417
%425 = load i32, i32* %3
%426 = sext i32 %425 to i64
%427 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %426
%428 = load i8, i8* %427
%429 = sext i8 %428 to i32
%430 = icmp eq i32 %429, 70
br i1 %430, label %431, label %435
431: ; preds = %424, %417
%432 = load i32, i32* %3
%433 = sext i32 %432 to i64
%434 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %433
store i8 115, i8* %434
br label %585
435: ; preds = %424
%436 = load i32, i32* %3
%437 = sext i32 %436 to i64
%438 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %437
%439 = load i8, i8* %438
%440 = sext i8 %439 to i32
%441 = icmp eq i32 %440, 100
br i1 %441, label %449, label %442
442: ; preds = %435
%443 = load i32, i32* %3
%444 = sext i32 %443 to i64
%445 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %444
%446 = load i8, i8* %445
%447 = sext i8 %446 to i32
%448 = icmp eq i32 %447, 68
br i1 %448, label %449, label %453
449: ; preds = %442, %435
%450 = load i32, i32* %3
%451 = sext i32 %450 to i64
%452 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %451
store i8 97, i8* %452
br label %584
453: ; preds = %442
%454 = load i32, i32* %3
%455 = sext i32 %454 to i64
%456 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %455
%457 = load i8, i8* %456
%458 = sext i8 %457 to i32
%459 = icmp eq i32 %458, 47
br i1 %459, label %460, label %464
460: ; preds = %453
%461 = load i32, i32* %3
%462 = sext i32 %461 to i64
%463 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %462
store i8 44, i8* %463
br label %583
464: ; preds = %453
%465 = load i32, i32* %3
%466 = sext i32 %465 to i64
%467 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %466
%468 = load i8, i8* %467
%469 = sext i8 %468 to i32
%470 = icmp eq i32 %469, 46
br i1 %470, label %471, label %475
471: ; preds = %464
%472 = load i32, i32* %3
%473 = sext i32 %472 to i64
%474 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %473
store i8 109, i8* %474
br label %582
475: ; preds = %464
%476 = load i32, i32* %3
%477 = sext i32 %476 to i64
%478 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %477
%479 = load i8, i8* %478
%480 = sext i8 %479 to i32
%481 = icmp eq i32 %480, 44
br i1 %481, label %482, label %486
482: ; preds = %475
%483 = load i32, i32* %3
%484 = sext i32 %483 to i64
%485 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %484
store i8 110, i8* %485
br label %581
486: ; preds = %475
%487 = load i32, i32* %3
%488 = sext i32 %487 to i64
%489 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %488
%490 = load i8, i8* %489
%491 = sext i8 %490 to i32
%492 = icmp eq i32 %491, 109
br i1 %492, label %500, label %493
493: ; preds = %486
%494 = load i32, i32* %3
%495 = sext i32 %494 to i64
%496 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %495
%497 = load i8, i8* %496
%498 = sext i8 %497 to i32
%499 = icmp eq i32 %498, 77
br i1 %499, label %500, label %504
500: ; preds = %493, %486
%501 = load i32, i32* %3
%502 = sext i32 %501 to i64
%503 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %502
store i8 98, i8* %503
br label %580
504: ; preds = %493
%505 = load i32, i32* %3
%506 = sext i32 %505 to i64
%507 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %506
%508 = load i8, i8* %507
%509 = sext i8 %508 to i32
%510 = icmp eq i32 %509, 110
br i1 %510, label %518, label %511
511: ; preds = %504
%512 = load i32, i32* %3
%513 = sext i32 %512 to i64
%514 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %513
%515 = load i8, i8* %514
%516 = sext i8 %515 to i32
%517 = icmp eq i32 %516, 78
br i1 %517, label %518, label %522
518: ; preds = %511, %504
%519 = load i32, i32* %3
%520 = sext i32 %519 to i64
%521 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %520
store i8 118, i8* %521
br label %579
522: ; preds = %511
%523 = load i32, i32* %3
%524 = sext i32 %523 to i64
%525 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %524
%526 = load i8, i8* %525
%527 = sext i8 %526 to i32
%528 = icmp eq i32 %527, 98
br i1 %528, label %536, label %529
529: ; preds = %522
%530 = load i32, i32* %3
%531 = sext i32 %530 to i64
%532 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %531
%533 = load i8, i8* %532
%534 = sext i8 %533 to i32
%535 = icmp eq i32 %534, 66
br i1 %535, label %536, label %540
536: ; preds = %529, %522
%537 = load i32, i32* %3
%538 = sext i32 %537 to i64
%539 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %538
store i8 99, i8* %539
br label %578
540: ; preds = %529
%541 = load i32, i32* %3
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %542
%544 = load i8, i8* %543
%545 = sext i8 %544 to i32
%546 = icmp eq i32 %545, 118
br i1 %546, label %554, label %547
547: ; preds = %540
%548 = load i32, i32* %3
%549 = sext i32 %548 to i64
%550 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %549
%551 = load i8, i8* %550
%552 = sext i8 %551 to i32
%553 = icmp eq i32 %552, 86
br i1 %553, label %554, label %558
554: ; preds = %547, %540
%555 = load i32, i32* %3
%556 = sext i32 %555 to i64
%557 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %556
store i8 120, i8* %557
br label %577
558: ; preds = %547
%559 = load i32, i32* %3
%560 = sext i32 %559 to i64
%561 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %560
%562 = load i8, i8* %561
%563 = sext i8 %562 to i32
%564 = icmp eq i32 %563, 99
br i1 %564, label %572, label %565
565: ; preds = %558
%566 = load i32, i32* %3
%567 = sext i32 %566 to i64
%568 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %567
%569 = load i8, i8* %568
%570 = sext i8 %569 to i32
%571 = icmp eq i32 %570, 67
br i1 %571, label %572, label %576
572: ; preds = %565, %558
%573 = load i32, i32* %3
%574 = sext i32 %573 to i64
%575 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 %574
store i8 122, i8* %575
br label %576
576: ; preds = %572, %565
br label %577
577: ; preds = %576, %554
br label %578
578: ; preds = %577, %536
br label %579
579: ; preds = %578, %518
br label %580
580: ; preds = %579, %500
br label %581
581: ; preds = %580, %482
br label %582
582: ; preds = %581, %471
br label %583
583: ; preds = %582, %460
br label %584
584: ; preds = %583, %449
br label %585
585: ; preds = %584, %431
br label %586
586: ; preds = %585, %413
br label %587
587: ; preds = %586, %395
br label %588
588: ; preds = %587, %377
br label %589
589: ; preds = %588, %359
br label %590
590: ; preds = %589, %341
br label %591
591: ; preds = %590, %323
br label %592
592: ; preds = %591, %312
br label %593
593: ; preds = %592, %301
br label %594
594: ; preds = %593, %283
br label %595
595: ; preds = %594, %265
br label %596
596: ; preds = %595, %247
br label %597
597: ; preds = %596, %229
br label %598
598: ; preds = %597, %211
br label %599
599: ; preds = %598, %193
br label %600
600: ; preds = %599, %182
br label %601
601: ; preds = %600, %164
br label %602
602: ; preds = %601, %153
br label %603
603: ; preds = %602, %142
br label %604
604: ; preds = %603, %131
br label %605
605: ; preds = %604, %120
br label %606
606: ; preds = %605, %109
br label %607
607: ; preds = %606, %98
br label %608
608: ; preds = %607, %87
br label %609
609: ; preds = %608, %76
br label %610
610: ; preds = %609, %65
br label %611
611: ; preds = %610, %54
br label %612
612: ; preds = %611, %43
br label %613
613: ; preds = %612, %32
br label %614
614: ; preds = %613, %21
%615 = load i32, i32* %3
%616 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 0
%617 = call i32 @strlen(i8* %616)
%618 = sub nsw i32 %617, 1
%619 = icmp eq i32 %615, %618
br i1 %619, label %620, label %623
620: ; preds = %614
%621 = getelementptr inbounds [10000 x i8], [10000 x i8]* %2, i64 0, i64 0
%622 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* %621)
br label %623
623: ; preds = %620, %614
br label %624
624: ; preds = %623
%625 = load i32, i32* %3
%626 = add nsw i32 %625, 1
store i32 %626, i32* %3
br label %9
627: ; preds = %9
br label %4
628: ; preds = %4
ret i32 0
}

LLVM IR (-O2):
@.str = [4 x i8] c"%s\0A\00"
define i32 @main() {
%1 = alloca [10000 x i8]
%2 = getelementptr inbounds [10000 x i8], [10000 x i8]* %1, i64 0, i64 0
%3 = call i64 @gets(i8* %2)
%4 = icmp eq i64 %3, 0
br i1 %4, label %67, label %8
5: ; preds = %62, %8
%6 = call i64 @gets(i8* %2)
%7 = icmp eq i64 %6, 0
br i1 %7, label %67, label %8
8: ; preds = %0, %5
%9 = call i32 @strlen(i8* %2)
%10 = icmp sgt i32 %9, 0
br i1 %10, label %11, label %5
11: ; preds = %8, %62
%12 = phi i64 [ %63, %62 ], [ 0, %8 ]
%13 = getelementptr inbounds [10000 x i8], [10000 x i8]* %1, i64 0, i64 %12
%14 = load i8, i8* %13
switch i8 %14, label %55 [
i8 61, label %53
i8 45, label %15
i8 48, label %16
i8 57, label %17
i8 56, label %18
i8 55, label %19
i8 54, label %20
i8 53, label %21
i8 52, label %22
i8 51, label %23
i8 50, label %24
i8 92, label %25
i8 93, label %26
i8 91, label %27
i8 112, label %28
i8 80, label %28
i8 111, label %29
i8 105, label %30
i8 73, label %30
i8 117, label %31
i8 85, label %31
i8 121, label %32
i8 89, label %32
i8 116, label %33
i8 84, label %33
i8 114, label %34
i8 82, label %34
i8 101, label %35
i8 69, label %35
i8 39, label %36
i8 59, label %37
i8 108, label %38
i8 76, label %38
i8 107, label %39
i8 75, label %39
i8 106, label %40
i8 74, label %40
i8 104, label %41
i8 72, label %41
i8 103, label %42
i8 71, label %42
i8 102, label %43
i8 70, label %43
i8 100, label %44
i8 68, label %44
i8 47, label %45
i8 46, label %46
i8 44, label %47
i8 109, label %48
i8 77, label %48
i8 110, label %49
i8 78, label %49
i8 98, label %50
i8 66, label %50
i8 118, label %51
i8 86, label %51
i8 99, label %52
i8 67, label %52
]
15: ; preds = %11
br label %53
16: ; preds = %11
br label %53
17: ; preds = %11
br label %53
18: ; preds = %11
br label %53
19: ; preds = %11
br label %53
20: ; preds = %11
br label %53
21: ; preds = %11
br label %53
22: ; preds = %11
br label %53
23: ; preds = %11
br label %53
24: ; preds = %11
br label %53
25: ; preds = %11
br label %53
26: ; preds = %11
br label %53
27: ; preds = %11
br label %53
28: ; preds = %11, %11
br label %53
29: ; preds = %11
br label %53
30: ; preds = %11, %11
br label %53
31: ; preds = %11, %11
br label %53
32: ; preds = %11, %11
br label %53
33: ; preds = %11, %11
br label %53
34: ; preds = %11, %11
br label %53
35: ; preds = %11, %11
br label %53
36: ; preds = %11
br label %53
37: ; preds = %11
br label %53
38: ; preds = %11, %11
br label %53
39: ; preds = %11, %11
br label %53
40: ; preds = %11, %11
br label %53
41: ; preds = %11, %11
br label %53
42: ; preds = %11, %11
br label %53
43: ; preds = %11, %11
br label %53
44: ; preds = %11, %11
br label %53
45: ; preds = %11
br label %53
46: ; preds = %11
br label %53
47: ; preds = %11
br label %53
48: ; preds = %11, %11
br label %53
49: ; preds = %11, %11
br label %53
50: ; preds = %11, %11
br label %53
51: ; preds = %11, %11
br label %53
52: ; preds = %11, %11
br label %53
53: ; preds = %11, %16, %18, %20, %22, %24, %26, %28, %30, %32, %34, %36, %38, %40, %42, %44, %46, %48, %50, %52, %51, %49, %47, %45, %43, %41, %39, %37, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15
%54 = phi i8 [ 57, %15 ], [ 55, %17 ], [ 54, %19 ], [ 51, %21 ], [ 49, %23 ], [ 91, %25 ], [ 111, %27 ], [ 117, %29 ], [ 116, %31 ], [ 101, %33 ], [ 113, %35 ], [ 107, %37 ], [ 104, %39 ], [ 102, %41 ], [ 115, %43 ], [ 44, %45 ], [ 110, %47 ], [ 118, %49 ], [ 120, %51 ], [ 122, %52 ], [ 99, %50 ], [ 98, %48 ], [ 109, %46 ], [ 97, %44 ], [ 100, %42 ], [ 103, %40 ], [ 106, %38 ], [ 108, %36 ], [ 119, %34 ], [ 114, %32 ], [ 121, %30 ], [ 105, %28 ], [ 112, %26 ], [ 96, %24 ], [ 50, %22 ], [ 52, %20 ], [ 54, %18 ], [ 56, %16 ], [ 48, %11 ]
store i8 %54, i8* %13
br label %55
55: ; preds = %53, %11
%56 = call i32 @strlen(i8* %2)
%57 = add nsw i32 %56, -1
%58 = zext i32 %57 to i64
%59 = icmp eq i64 %12, %58
br i1 %59, label %60, label %62
60: ; preds = %55
%61 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* %2)
br label %62
62: ; preds = %55, %60
%63 = add nuw nsw i64 %12, 1
%64 = call i32 @strlen(i8* %2)
%65 = sext i32 %64 to i64
%66 = icmp slt i64 %63, %65
br i1 %66, label %11, label %5
67: ; preds = %5, %0
ret i32 0
}