#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*/ gets(char *);
int /*<<< orphan*/ printf(char *, char *);
int strlen(char *);
void main(void) {
  int i = 0, l, p;
  char s[13];
  char s1[13];
  gets(s);
  l = strlen(s);
  p = l;
  s1[l] = '\0';
  while (l >= 0) {
    if (s[l - 1] == '2') {
      s1[i] = s[l - 1];
      i++;
    }
    l--;
  }
  l = p;
  while (p >= 0) {
    if (s[p - 1] == '3') {
      s1[i] = s[p - 1];
      i++;
    }
    p--;
  }
  p = l;
  while (l >= 0) {
    if (s[l - 1] == '4') {
      s1[i] = s[l - 1];
      i++;
    }
    l--;
  }
  l = p;
  while (p >= 0) {
    if (s[p - 1] == '5') {
      s1[i] = s[p - 1];
      i++;
    }
    p--;
  }
  p = l;
  while (l >= 0) {
    if (s[l - 1] == '6') {
      s1[i] = s[l - 1];
      i++;
    }
    l--;
  }
  l = p;
  while (p >= 0) {
    if (s[p - 1] == '7') {
      s1[i] = s[p - 1];
      i++;
    }
    p--;
  }
  p = l;
  while (l >= 0) {
    if (s[l - 1] == '8') {
      s1[i] = s[l - 1];
      i++;
    }
    l--;
  }
  l = p;
  while (p >= 0) {
    if (s[p - 1] == '9') {
      s1[i] = s[p - 1];
      i++;
    }
    p--;
  }
  p = l;
  while (l >= 0) {
    if (s[l - 1] == 'T') {
      s1[i] = s[l - 1];
      i++;
    }
    l--;
  }
  l = p;
  while (p >= 0) {
    if (s[p - 1] == 'J') {
      s1[i] = s[p - 1];
      i++;
    }
    p--;
  }
  p = l;
  while (l >= 0) {
    if (s[l - 1] == 'D') {
      s1[i] = s[l - 1];
      i++;
    }
    l--;
  }
  l = p;
  while (p >= 0) {
    if (s[p - 1] == 'K') {
      s1[i] = s[p - 1];
      i++;
    }
    p--;
  }
  p = l;
  while (l >= 0) {
    if (s[l - 1] == 'A') {
      s1[i] = s[l - 1];
      i++;
    }
    l--;
  }
  printf("%s", s1);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x19(%rbp),%rdi
call   1050 <gets@plt>
lea    -0x19(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
movslq -0x8(%rbp),%rax
movb   $0x0,-0x26(%rbp,%rax,1)
cmpl   $0x0,-0x8(%rbp)
jl     11ae <main+0x7e>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x32,%eax
jne    11a0 <main+0x70>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x8(%rbp)
jmp    1163 <main+0x33>
mov    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
cmpl   $0x0,-0xc(%rbp)
jl     11ff <main+0xcf>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x33,%eax
jne    11f1 <main+0xc1>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
jmp    11b4 <main+0x84>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jl     1250 <main+0x120>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x34,%eax
jne    1242 <main+0x112>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x8(%rbp)
jmp    1205 <main+0xd5>
mov    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
cmpl   $0x0,-0xc(%rbp)
jl     12a1 <main+0x171>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x35,%eax
jne    1293 <main+0x163>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
jmp    1256 <main+0x126>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jl     12f2 <main+0x1c2>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x36,%eax
jne    12e4 <main+0x1b4>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x8(%rbp)
jmp    12a7 <main+0x177>
mov    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
cmpl   $0x0,-0xc(%rbp)
jl     1343 <main+0x213>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x37,%eax
jne    1335 <main+0x205>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
jmp    12f8 <main+0x1c8>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jl     1394 <main+0x264>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x38,%eax
jne    1386 <main+0x256>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x8(%rbp)
jmp    1349 <main+0x219>
mov    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
cmpl   $0x0,-0xc(%rbp)
jl     13e5 <main+0x2b5>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x39,%eax
jne    13d7 <main+0x2a7>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
jmp    139a <main+0x26a>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jl     1436 <main+0x306>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x54,%eax
jne    1428 <main+0x2f8>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x8(%rbp)
jmp    13eb <main+0x2bb>
mov    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
cmpl   $0x0,-0xc(%rbp)
jl     1487 <main+0x357>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x4a,%eax
jne    1479 <main+0x349>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
jmp    143c <main+0x30c>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jl     14d8 <main+0x3a8>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x44,%eax
jne    14ca <main+0x39a>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x8(%rbp)
jmp    148d <main+0x35d>
mov    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
cmpl   $0x0,-0xc(%rbp)
jl     1529 <main+0x3f9>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x4b,%eax
jne    151b <main+0x3eb>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
jmp    14de <main+0x3ae>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jl     157a <main+0x44a>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x19(%rbp,%rax,1),%eax
cmp    $0x41,%eax
jne    156c <main+0x43c>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x19(%rbp,%rax,1),%cl
movslq -0x4(%rbp),%rax
mov    %cl,-0x26(%rbp,%rax,1)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x8(%rbp)
jmp    152f <main+0x3ff>
lea    -0x26(%rbp),%rsi
lea    0xa7b(%rip),%rdi
call   1040 <printf@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x20,%rsp
lea    0x13(%rsp),%rbx
mov    %rbx,%rdi
call   1050 <gets@plt>
mov    %rbx,%rdi
call   1030 <strlen@plt>
movslq %eax,%rdx
movb   $0x0,0x6(%rsp,%rdx,1)
test   %edx,%edx
js     16b8 <main+0x588>
lea    0x1(%rdx),%r8
test   %edx,%edx
je     11a0 <main+0x70>
mov    %r8,%rsi
and    $0xfffffffffffffffe,%rsi
xor    %ecx,%ecx
mov    %rdx,%rdi
jmp    117a <main+0x4a>
add    $0xfffffffffffffffe,%rdi
add    $0xfffffffffffffffe,%rsi
je     11a5 <main+0x75>
cmpb   $0x32,0x12(%rsp,%rdi,1)
jne    118c <main+0x5c>
movslq %ecx,%rcx
movb   $0x32,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x32,0x11(%rsp,%rdi,1)
jne    1170 <main+0x40>
movslq %ecx,%rcx
movb   $0x32,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1170 <main+0x40>
xor    %ecx,%ecx
mov    %rdx,%rdi
test   $0x1,%r8b
je     11bd <main+0x8d>
cmpb   $0x32,-0x1(%rdi,%rbx,1)
jne    11bd <main+0x8d>
movslq %ecx,%rcx
movb   $0x32,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    11d0 <main+0xa0>
mov    %rdx,%rdi
jmp    11e6 <main+0xb6>
lea    -0x1(%rdx),%rdi
cmpb   $0x33,0x12(%rsp,%rdx,1)
jne    11e6 <main+0xb6>
movslq %ecx,%rcx
movb   $0x33,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1220 <main+0xf0>
add    $0x2,%rdi
jmp    11fa <main+0xca>
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1220 <main+0xf0>
cmpb   $0x33,0x10(%rsp,%rdi,1)
jne    120c <main+0xdc>
movslq %ecx,%rcx
movb   $0x33,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x33,0xf(%rsp,%rdi,1)
jne    11f0 <main+0xc0>
movslq %ecx,%rcx
movb   $0x33,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    11f0 <main+0xc0>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    1233 <main+0x103>
mov    %rdx,%rdi
jmp    1249 <main+0x119>
lea    -0x1(%rdx),%rdi
cmpb   $0x34,0x12(%rsp,%rdx,1)
jne    1249 <main+0x119>
movslq %ecx,%rcx
movb   $0x34,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1290 <main+0x160>
add    $0x2,%rdi
jmp    126a <main+0x13a>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1290 <main+0x160>
cmpb   $0x34,0x10(%rsp,%rdi,1)
jne    127c <main+0x14c>
movslq %ecx,%rcx
movb   $0x34,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x34,0xf(%rsp,%rdi,1)
jne    1260 <main+0x130>
movslq %ecx,%rcx
movb   $0x34,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1260 <main+0x130>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    12a3 <main+0x173>
mov    %rdx,%rdi
jmp    12b9 <main+0x189>
lea    -0x1(%rdx),%rdi
cmpb   $0x35,0x12(%rsp,%rdx,1)
jne    12b9 <main+0x189>
movslq %ecx,%rcx
movb   $0x35,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1300 <main+0x1d0>
add    $0x2,%rdi
jmp    12da <main+0x1aa>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1300 <main+0x1d0>
cmpb   $0x35,0x10(%rsp,%rdi,1)
jne    12ec <main+0x1bc>
movslq %ecx,%rcx
movb   $0x35,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x35,0xf(%rsp,%rdi,1)
jne    12d0 <main+0x1a0>
movslq %ecx,%rcx
movb   $0x35,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    12d0 <main+0x1a0>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    1313 <main+0x1e3>
mov    %rdx,%rdi
jmp    1329 <main+0x1f9>
lea    -0x1(%rdx),%rdi
cmpb   $0x36,0x12(%rsp,%rdx,1)
jne    1329 <main+0x1f9>
movslq %ecx,%rcx
movb   $0x36,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1370 <main+0x240>
add    $0x2,%rdi
jmp    134a <main+0x21a>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1370 <main+0x240>
cmpb   $0x36,0x10(%rsp,%rdi,1)
jne    135c <main+0x22c>
movslq %ecx,%rcx
movb   $0x36,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x36,0xf(%rsp,%rdi,1)
jne    1340 <main+0x210>
movslq %ecx,%rcx
movb   $0x36,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1340 <main+0x210>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    1383 <main+0x253>
mov    %rdx,%rdi
jmp    1399 <main+0x269>
lea    -0x1(%rdx),%rdi
cmpb   $0x37,0x12(%rsp,%rdx,1)
jne    1399 <main+0x269>
movslq %ecx,%rcx
movb   $0x37,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     13e0 <main+0x2b0>
add    $0x2,%rdi
jmp    13ba <main+0x28a>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    13e0 <main+0x2b0>
cmpb   $0x37,0x10(%rsp,%rdi,1)
jne    13cc <main+0x29c>
movslq %ecx,%rcx
movb   $0x37,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x37,0xf(%rsp,%rdi,1)
jne    13b0 <main+0x280>
movslq %ecx,%rcx
movb   $0x37,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    13b0 <main+0x280>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    13f3 <main+0x2c3>
mov    %rdx,%rdi
jmp    1409 <main+0x2d9>
lea    -0x1(%rdx),%rdi
cmpb   $0x38,0x12(%rsp,%rdx,1)
jne    1409 <main+0x2d9>
movslq %ecx,%rcx
movb   $0x38,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1450 <main+0x320>
add    $0x2,%rdi
jmp    142a <main+0x2fa>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1450 <main+0x320>
cmpb   $0x38,0x10(%rsp,%rdi,1)
jne    143c <main+0x30c>
movslq %ecx,%rcx
movb   $0x38,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x38,0xf(%rsp,%rdi,1)
jne    1420 <main+0x2f0>
movslq %ecx,%rcx
movb   $0x38,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1420 <main+0x2f0>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    1463 <main+0x333>
mov    %rdx,%rdi
jmp    1479 <main+0x349>
lea    -0x1(%rdx),%rdi
cmpb   $0x39,0x12(%rsp,%rdx,1)
jne    1479 <main+0x349>
movslq %ecx,%rcx
movb   $0x39,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     14c0 <main+0x390>
add    $0x2,%rdi
jmp    149a <main+0x36a>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    14c0 <main+0x390>
cmpb   $0x39,0x10(%rsp,%rdi,1)
jne    14ac <main+0x37c>
movslq %ecx,%rcx
movb   $0x39,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x39,0xf(%rsp,%rdi,1)
jne    1490 <main+0x360>
movslq %ecx,%rcx
movb   $0x39,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1490 <main+0x360>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    14d3 <main+0x3a3>
mov    %rdx,%rdi
jmp    14e9 <main+0x3b9>
lea    -0x1(%rdx),%rdi
cmpb   $0x54,0x12(%rsp,%rdx,1)
jne    14e9 <main+0x3b9>
movslq %ecx,%rcx
movb   $0x54,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1530 <main+0x400>
add    $0x2,%rdi
jmp    150a <main+0x3da>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1530 <main+0x400>
cmpb   $0x54,0x10(%rsp,%rdi,1)
jne    151c <main+0x3ec>
movslq %ecx,%rcx
movb   $0x54,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x54,0xf(%rsp,%rdi,1)
jne    1500 <main+0x3d0>
movslq %ecx,%rcx
movb   $0x54,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1500 <main+0x3d0>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    1543 <main+0x413>
mov    %rdx,%rdi
jmp    1559 <main+0x429>
lea    -0x1(%rdx),%rdi
cmpb   $0x4a,0x12(%rsp,%rdx,1)
jne    1559 <main+0x429>
movslq %ecx,%rcx
movb   $0x4a,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1593 <main+0x463>
add    $0x2,%rdi
jmp    156d <main+0x43d>
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1593 <main+0x463>
cmpb   $0x4a,0x10(%rsp,%rdi,1)
jne    157f <main+0x44f>
movslq %ecx,%rcx
movb   $0x4a,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x4a,0xf(%rsp,%rdi,1)
jne    1563 <main+0x433>
movslq %ecx,%rcx
movb   $0x4a,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1563 <main+0x433>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    15a6 <main+0x476>
mov    %rdx,%rdi
jmp    15bc <main+0x48c>
lea    -0x1(%rdx),%rdi
cmpb   $0x44,0x12(%rsp,%rdx,1)
jne    15bc <main+0x48c>
movslq %ecx,%rcx
movb   $0x44,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     15f6 <main+0x4c6>
add    $0x2,%rdi
jmp    15d0 <main+0x4a0>
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    15f6 <main+0x4c6>
cmpb   $0x44,0x10(%rsp,%rdi,1)
jne    15e2 <main+0x4b2>
movslq %ecx,%rcx
movb   $0x44,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x44,0xf(%rsp,%rdi,1)
jne    15c6 <main+0x496>
movslq %ecx,%rcx
movb   $0x44,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    15c6 <main+0x496>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    1609 <main+0x4d9>
mov    %rdx,%rdi
jmp    161f <main+0x4ef>
lea    -0x1(%rdx),%rdi
cmpb   $0x4b,0x12(%rsp,%rdx,1)
jne    161f <main+0x4ef>
movslq %ecx,%rcx
movb   $0x4b,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     1659 <main+0x529>
add    $0x2,%rdi
jmp    1633 <main+0x503>
add    $0xfffffffffffffffe,%rdi
cmp    $0x1,%rdi
jle    1659 <main+0x529>
cmpb   $0x4b,0x10(%rsp,%rdi,1)
jne    1645 <main+0x515>
movslq %ecx,%rcx
movb   $0x4b,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x4b,0xf(%rsp,%rdi,1)
jne    1629 <main+0x4f9>
movslq %ecx,%rcx
movb   $0x4b,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1629 <main+0x4f9>
test   %eax,%eax
js     16b8 <main+0x588>
test   $0x1,%r8b
jne    1668 <main+0x538>
mov    %rdx,%rsi
jmp    167e <main+0x54e>
lea    -0x1(%rdx),%rsi
cmpb   $0x41,0x12(%rsp,%rdx,1)
jne    167e <main+0x54e>
movslq %ecx,%rcx
movb   $0x41,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
test   %eax,%eax
je     16b8 <main+0x588>
add    $0x2,%rsi
jmp    1692 <main+0x562>
add    $0xfffffffffffffffe,%rsi
cmp    $0x1,%rsi
jle    16b8 <main+0x588>
cmpb   $0x41,0x10(%rsp,%rsi,1)
jne    16a4 <main+0x574>
movslq %ecx,%rcx
movb   $0x41,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
cmpb   $0x41,0xf(%rsp,%rsi,1)
jne    1688 <main+0x558>
movslq %ecx,%rcx
movb   $0x41,0x6(%rsp,%rcx,1)
add    $0x1,%ecx
jmp    1688 <main+0x558>
lea    0x941(%rip),%rdi
lea    0x6(%rsp),%rsi
call   1040 <printf@plt>
add    $0x20,%rsp
pop    %rbx
ret

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

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