main() {
  const unsigned char table[48][15] = {
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 8},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 6},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 2},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 4},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 8},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 9, 6},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 9, 2},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 3, 8, 4},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 7, 6, 8},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 5, 5, 3, 6},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 7, 2},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 2, 1, 4, 4},
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 4, 2, 8, 8},
      {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 8, 5, 7, 6},
      {0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 9, 7, 1, 5, 2},
      {0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 9, 4, 3, 0, 4},
      {0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 8, 8, 6, 0, 8},
      {0, 0, 0, 0, 0, 0, 0, 1, 6, 7, 7, 7, 2, 1, 6},
      {0, 0, 0, 0, 0, 0, 0, 3, 3, 5, 5, 4, 4, 3, 2},
      {0, 0, 0, 0, 0, 0, 0, 6, 7, 1, 0, 8, 8, 6, 4},
      {0, 0, 0, 0, 0, 0, 1, 3, 4, 2, 1, 7, 7, 2, 8},
      {0, 0, 0, 0, 0, 0, 2, 6, 8, 4, 3, 5, 4, 5, 6},
      {0, 0, 0, 0, 0, 0, 5, 3, 6, 8, 7, 0, 9, 1, 2},
      {0, 0, 0, 0, 0, 1, 0, 7, 3, 7, 4, 1, 8, 2, 4},
      {0, 0, 0, 0, 0, 2, 1, 4, 7, 4, 8, 3, 6, 4, 8},
      {0, 0, 0, 0, 0, 4, 2, 9, 4, 9, 6, 7, 2, 9, 6},
      {0, 0, 0, 0, 0, 8, 5, 8, 9, 9, 3, 4, 5, 9, 2},
      {0, 0, 0, 0, 1, 7, 1, 7, 9, 8, 6, 9, 1, 8, 4},
      {0, 0, 0, 0, 3, 4, 3, 5, 9, 7, 3, 8, 3, 6, 8},
      {0, 0, 0, 0, 6, 8, 7, 1, 9, 4, 7, 6, 7, 3, 6},
      {0, 0, 0, 1, 3, 7, 4, 3, 8, 9, 5, 3, 4, 7, 2},
      {0, 0, 0, 2, 7, 4, 8, 7, 7, 9, 0, 6, 9, 4, 4},
      {0, 0, 0, 5, 4, 9, 7, 5, 5, 8, 1, 3, 8, 8, 8},
      {0, 0, 1, 0, 9, 9, 5, 1, 1, 6, 2, 7, 7, 7, 6},
      {0, 0, 2, 1, 9, 9, 0, 2, 3, 2, 5, 5, 5, 5, 2},
      {0, 0, 4, 3, 9, 8, 0, 4, 6, 5, 1, 1, 1, 0, 4},
      {0, 0, 8, 7, 9, 6, 0, 9, 3, 0, 2, 2, 2, 0, 8},
      {0, 1, 7, 5, 9, 2, 1, 8, 6, 0, 4, 4, 4, 1, 6},
      {0, 3, 5, 1, 8, 4, 3, 7, 2, 0, 8, 8, 8, 3, 2},
      {0, 7, 0, 3, 6, 8, 7, 4, 4, 1, 7, 7, 6, 6, 4},
      {1, 4, 0, 7, 3, 7, 4, 8, 8, 3, 5, 5, 3, 2, 8}};
  unsigned char a[6], flag = 0;
  unsigned char b[15], p = 0;
  int i, j, k, b_len, a_len;
  int m, test;
  for (test = 0; test <= 60000; test++) {
    for (i = 0; i <= sizeof(b); i++)
      b[i] = 0;
    a[5] = 44;
    a[4] = 15;
    a[3] = 7;
    a[2] = 235;
    a[1] = 83;
    a[0] = 27;
    for (i = 5, m = 0; i >= 0; i--, m++)
      for (j = 7; j >= 0; j--)
        if (a[i] & (1 << j))
          for (k = 14; k >= 0; k--)
            b[k] += table[8 * m + j][k];
    for (i = 14; i >= 0; i--) {
      b[i] += p;
      p = b[i] / 10;
      b[i] -= 10 * p;
    }
  }
  printf("\n");
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x320,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x2e0(%rbp),%rdi
lea    0xec0(%rip),%rsi
mov    $0x2d0,%edx
call   1040 <memcpy@plt>
movb   $0x0,-0x2e7(%rbp)
movb   $0x0,-0x2f7(%rbp)
movl   $0x0,-0x314(%rbp)
cmpl   $0xea60,-0x314(%rbp)
jg     1391 <main+0x271>
movl   $0x0,-0x2fc(%rbp)
movslq -0x2fc(%rbp),%rax
cmp    $0xf,%rax
ja     11b0 <main+0x90>
movslq -0x2fc(%rbp),%rax
movb   $0x0,-0x2f6(%rbp,%rax,1)
mov    -0x2fc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2fc(%rbp)
jmp    117c <main+0x5c>
movb   $0x2c,-0x2e1(%rbp)
movb   $0xf,-0x2e2(%rbp)
movb   $0x7,-0x2e3(%rbp)
movb   $0xeb,-0x2e4(%rbp)
movb   $0x53,-0x2e5(%rbp)
movb   $0x1b,-0x2e6(%rbp)
movl   $0x5,-0x2fc(%rbp)
movl   $0x0,-0x310(%rbp)
cmpl   $0x0,-0x2fc(%rbp)
jl     12ef <main+0x1cf>
movl   $0x7,-0x300(%rbp)
cmpl   $0x0,-0x300(%rbp)
jl     12c7 <main+0x1a7>
movslq -0x2fc(%rbp),%rax
movzbl -0x2e6(%rbp,%rax,1),%eax
ff
mov    -0x300(%rbp),%ecx
mov    $0x1,%edx
shl    %cl,%edx
mov    %edx,%ecx
and    %ecx,%eax
cmp    $0x0,%eax
je     12ae <main+0x18e>
movl   $0xe,-0x304(%rbp)
cmpl   $0x0,-0x304(%rbp)
jl     12a9 <main+0x189>
mov    -0x310(%rbp),%eax
shl    $0x3,%eax
add    -0x300(%rbp),%eax
movslq %eax,%rcx
lea    -0x2e0(%rbp),%rax
imul   $0xf,%rcx,%rcx
add    %rcx,%rax
movslq -0x304(%rbp),%rcx
movzbl (%rax,%rcx,1),%edx
movslq -0x304(%rbp),%rax
movzbl -0x2f6(%rbp,%rax,1),%ecx
ff
add    %edx,%ecx
mov    %cl,-0x2f6(%rbp,%rax,1)
mov    -0x304(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x304(%rbp)
jmp    1245 <main+0x125>
jmp    12ae <main+0x18e>
jmp    12b3 <main+0x193>
mov    -0x300(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x300(%rbp)
jmp    1205 <main+0xe5>
jmp    12cc <main+0x1ac>
mov    -0x2fc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x2fc(%rbp)
mov    -0x310(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x310(%rbp)
jmp    11ee <main+0xce>
movl   $0xe,-0x2fc(%rbp)
cmpl   $0x0,-0x2fc(%rbp)
jl     1378 <main+0x258>
movzbl -0x2f7(%rbp),%edx
movslq -0x2fc(%rbp),%rax
movzbl -0x2f6(%rbp,%rax,1),%ecx
ff
add    %edx,%ecx
mov    %cl,-0x2f6(%rbp,%rax,1)
movslq -0x2fc(%rbp),%rax
movzbl -0x2f6(%rbp,%rax,1),%eax
ff
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %al,-0x2f7(%rbp)
movzbl -0x2f7(%rbp),%eax
imul   $0xa,%eax,%edx
movslq -0x2fc(%rbp),%rax
movzbl -0x2f6(%rbp,%rax,1),%ecx
ff
sub    %edx,%ecx
mov    %cl,-0x2f6(%rbp,%rax,1)
mov    -0x2fc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x2fc(%rbp)
jmp    12f9 <main+0x1d9>
jmp    137d <main+0x25d>
mov    -0x314(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x314(%rbp)
jmp    1162 <main+0x42>
lea    0xf38(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0x320,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
sub    $0x48,%rsp
xor    %r9d,%r9d
lea    0xee0(%rip),%r8
xor    %edx,%edx
jmp    1141 <main+0x31>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%r9d
cmp    $0xea61,%r9d
je     13b2 <main+0x2a2>
movw   $0x2c0f,0x1e(%rsp)
movl   $0x7eb531b,0x1a(%rsp)
07
movq   0x12(%rsp),%xmm1
movd   0xe(%rsp),%xmm0
mov    0xd(%rsp),%r11b
mov    0xb(%rsp),%bpl
mov    0xc(%rsp),%al
mov    $0x5,%r10d
mov    $0x2c,%cl
xor    %esi,%esi
mov    %r8,%rdi
test   $0x80,%cl
jne    11f7 <main+0xe7>
nopl   0x0(%rax)
test   $0x40,%cl
jne    121f <main+0x10f>
test   $0x20,%cl
jne    1247 <main+0x137>
test   $0x10,%cl
jne    126f <main+0x15f>
test   $0x8,%cl
jne    1297 <main+0x187>
test   $0x4,%cl
jne    12bf <main+0x1af>
test   $0x2,%cl
jne    12e7 <main+0x1d7>
test   $0x1,%cl
je     11d9 <main+0xc9>
movq   0x7(%rdi),%xmm2
paddb  %xmm2,%xmm1
movd   0x3(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x2(%rdi),%r11b
add    0x1(%rdi),%al
add    (%rdi),%sil
mov    %esi,%ebp
mov    %r10,%rbx
sub    $0x1,%rbx
jb     1320 <main+0x210>
mov    0x19(%rsp,%r10,1),%cl
add    $0x78,%rdi
mov    %rbx,%r10
test   $0x80,%cl
je     1180 <main+0x70>
movq   0x70(%rdi),%xmm2
paddb  %xmm2,%xmm1
movd   0x6c(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x6b(%rdi),%r11b
add    0x6a(%rdi),%al
add    0x69(%rdi),%sil
mov    %esi,%ebp
test   $0x40,%cl
je     1189 <main+0x79>
movq   0x61(%rdi),%xmm2
paddb  %xmm2,%xmm1
movd   0x5d(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x5c(%rdi),%r11b
add    0x5b(%rdi),%al
add    0x5a(%rdi),%sil
mov    %esi,%ebp
test   $0x20,%cl
je     1192 <main+0x82>
movq   0x52(%rdi),%xmm2
paddb  %xmm2,%xmm1
movd   0x4e(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x4d(%rdi),%r11b
add    0x4c(%rdi),%al
add    0x4b(%rdi),%sil
mov    %esi,%ebp
test   $0x10,%cl
je     119b <main+0x8b>
movq   0x43(%rdi),%xmm2
paddb  %xmm2,%xmm1
movd   0x3f(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x3e(%rdi),%r11b
add    0x3d(%rdi),%al
add    0x3c(%rdi),%sil
mov    %esi,%ebp
test   $0x8,%cl
je     11a4 <main+0x94>
movq   0x34(%rdi),%xmm2
paddb  %xmm2,%xmm1
movq   0x30(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x2f(%rdi),%r11b
add    0x2e(%rdi),%al
add    0x2d(%rdi),%sil
mov    %esi,%ebp
test   $0x4,%cl
je     11ad <main+0x9d>
movq   0x25(%rdi),%xmm2
paddb  %xmm2,%xmm1
movd   0x21(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x20(%rdi),%r11b
add    0x1f(%rdi),%al
add    0x1e(%rdi),%sil
mov    %esi,%ebp
test   $0x2,%cl
je     11b6 <main+0xa6>
movq   0x16(%rdi),%xmm2
paddb  %xmm2,%xmm1
movd   0x12(%rdi),%xmm2
paddb  %xmm2,%xmm0
add    0x11(%rdi),%r11b
add    0x10(%rdi),%al
add    0xf(%rdi),%sil
mov    %esi,%ebp
test   $0x1,%cl
jne    11bb <main+0xab>
jmp    11d9 <main+0xc9>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movdqa %xmm1,0x20(%rsp)
mov    0x20(%rsp),%rcx
mov    %rcx,0x12(%rsp)
movdqa %xmm0,0x30(%rsp)
mov    0x30(%rsp),%ecx
mov    %ecx,0xe(%rsp)
mov    %r11b,0xd(%rsp)
mov    %al,0xc(%rsp)
mov    %bpl,0xb(%rsp)
mov    $0xe,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    0xb(%rsp,%rax,1),%dl
movzbl %dl,%ecx
imul   $0xcd,%ecx,%edx
shr    $0xb,%edx
mov    %edx,%esi
add    %esi,%esi
lea    (%rsi,%rsi,4),%esi
neg    %esi
add    %sil,%cl
mov    %cl,0xb(%rsp,%rax,1)
test   %rax,%rax
je     1130 <main+0x20>
movzbl 0xa(%rsp,%rax,1),%ecx
add    %dl,%cl
movzbl %cl,%ecx
imul   $0xcd,%ecx,%edx
shr    $0xb,%edx
mov    %edx,%esi
add    %esi,%esi
lea    (%rsi,%rsi,4),%esi
neg    %esi
add    %sil,%cl
mov    %cl,0xa(%rsp,%rax,1)
add    $0xfffffffffffffffe,%rax
jmp    1360 <main+0x250>
mov    $0xa,%edi
call   1030 <putchar@plt>
xor    %eax,%eax
add    $0x48,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
@__const.main.table = [48 x [15 x i8]] [[15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\01\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\03\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\06\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\01\02\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\02\05\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\05\01\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\01\00\02\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\02\00\04\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\04\00\09\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\08\01\09\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\01\06\03\08\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\03\02\07\06\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\06\05\05\03\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\01\03\01\00\07\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\02\06\02\01\04\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\05\02\04\02\08\08", [15 x i8] c"\00\00\00\00\00\00\00\00\01\00\04\08\05\07\06", [15 x i8] c"\00\00\00\00\00\00\00\00\02\00\09\07\01\05\02", [15 x i8] c"\00\00\00\00\00\00\00\00\04\01\09\04\03\00\04", [15 x i8] c"\00\00\00\00\00\00\00\00\08\03\08\08\06\00\08", [15 x i8] c"\00\00\00\00\00\00\00\01\06\07\07\07\02\01\06", [15 x i8] c"\00\00\00\00\00\00\00\03\03\05\05\04\04\03\02", [15 x i8] c"\00\00\00\00\00\00\00\06\07\01\00\08\08\06\04", [15 x i8] c"\00\00\00\00\00\00\01\03\04\02\01\07\07\02\08", [15 x i8] c"\00\00\00\00\00\00\02\06\08\04\03\05\04\05\06", [15 x i8] c"\00\00\00\00\00\00\05\03\06\08\07\00\09\01\02", [15 x i8] c"\00\00\00\00\00\01\00\07\03\07\04\01\08\02\04", [15 x i8] c"\00\00\00\00\00\02\01\04\07\04\08\03\06\04\08", [15 x i8] c"\00\00\00\00\00\04\02\09\04\09\06\07\02\09\06", [15 x i8] c"\00\00\00\00\00\08\05\08\09\09\03\04\05\09\02", [15 x i8] c"\00\00\00\00\01\07\01\07\09\08\06\09\01\08\04", [15 x i8] c"\00\00\00\00\03\04\03\05\09\07\03\08\03\06\08", [15 x i8] c"\00\00\00\00\06\08\07\01\09\04\07\06\07\03\06", [15 x i8] c"\00\00\00\01\03\07\04\03\08\09\05\03\04\07\02", [15 x i8] c"\00\00\00\02\07\04\08\07\07\09\00\06\09\04\04", [15 x i8] c"\00\00\00\05\04\09\07\05\05\08\01\03\08\08\08", [15 x i8] c"\00\00\01\00\09\09\05\01\01\06\02\07\07\07\06", [15 x i8] c"\00\00\02\01\09\09\00\02\03\02\05\05\05\05\02", [15 x i8] c"\00\00\04\03\09\08\00\04\06\05\01\01\01\00\04", [15 x i8] c"\00\00\08\07\09\06\00\09\03\00\02\02\02\00\08", [15 x i8] c"\00\01\07\05\09\02\01\08\06\00\04\04\04\01\06", [15 x i8] c"\00\03\05\01\08\04\03\07\02\00\08\08\08\03\02", [15 x i8] c"\00\07\00\03\06\08\07\04\04\01\07\07\06\06\04", [15 x i8] c"\01\04\00\07\03\07\04\08\08\03\05\05\03\02\08"]
@.str = [2 x i8] c"\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [48 x [15 x i8]]
%3 = alloca [6 x i8]
%4 = alloca i8
%5 = alloca [15 x i8]
%6 = alloca i8
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
store i32 0, i32* %1
%14 = bitcast [48 x [15 x i8]]* %2 to i8*
store i8 0, i8* %4
store i8 0, i8* %6
store i32 0, i32* %13
br label %15
15: ; preds = %126, %0
%16 = load i32, i32* %13
%17 = icmp sle i32 %16, 60000
br i1 %17, label %18, label %129
18: ; preds = %15
store i32 0, i32* %7
br label %19
19: ; preds = %27, %18
%20 = load i32, i32* %7
%21 = sext i32 %20 to i64
%22 = icmp ule i64 %21, 15
br i1 %22, label %23, label %30
23: ; preds = %19
%24 = load i32, i32* %7
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds [15 x i8], [15 x i8]* %5, i64 0, i64 %25
store i8 0, i8* %26
br label %27
27: ; preds = %23
%28 = load i32, i32* %7
%29 = add nsw i32 %28, 1
store i32 %29, i32* %7
br label %19
30: ; preds = %19
%31 = getelementptr inbounds [6 x i8], [6 x i8]* %3, i64 0, i64 5
store i8 44, i8* %31
%32 = getelementptr inbounds [6 x i8], [6 x i8]* %3, i64 0, i64 4
store i8 15, i8* %32
%33 = getelementptr inbounds [6 x i8], [6 x i8]* %3, i64 0, i64 3
store i8 7, i8* %33
%34 = getelementptr inbounds [6 x i8], [6 x i8]* %3, i64 0, i64 2
store i8 -21, i8* %34
%35 = getelementptr inbounds [6 x i8], [6 x i8]* %3, i64 0, i64 1
store i8 83, i8* %35
%36 = getelementptr inbounds [6 x i8], [6 x i8]* %3, i64 0, i64 0
store i8 27, i8* %36
store i32 5, i32* %7
store i32 0, i32* %12
br label %37
37: ; preds = %86, %30
%38 = load i32, i32* %7
%39 = icmp sge i32 %38, 0
br i1 %39, label %40, label %91
40: ; preds = %37
store i32 7, i32* %8
br label %41
41: ; preds = %82, %40
%42 = load i32, i32* %8
%43 = icmp sge i32 %42, 0
br i1 %43, label %44, label %85
44: ; preds = %41
%45 = load i32, i32* %7
%46 = sext i32 %45 to i64
%47 = getelementptr inbounds [6 x i8], [6 x i8]* %3, i64 0, i64 %46
%48 = load i8, i8* %47
%49 = zext i8 %48 to i32
%50 = load i32, i32* %8
%51 = shl i32 1, %50
%52 = and i32 %49, %51
%53 = icmp ne i32 %52, 0
br i1 %53, label %54, label %81
54: ; preds = %44
store i32 14, i32* %9
br label %55
55: ; preds = %77, %54
%56 = load i32, i32* %9
%57 = icmp sge i32 %56, 0
br i1 %57, label %58, label %80
58: ; preds = %55
%59 = load i32, i32* %12
%60 = mul nsw i32 8, %59
%61 = load i32, i32* %8
%62 = add nsw i32 %60, %61
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* %2, i64 0, i64 %63
%65 = load i32, i32* %9
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds [15 x i8], [15 x i8]* %64, i64 0, i64 %66
%68 = load i8, i8* %67
%69 = zext i8 %68 to i32
%70 = load i32, i32* %9
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds [15 x i8], [15 x i8]* %5, i64 0, i64 %71
%73 = load i8, i8* %72
%74 = zext i8 %73 to i32
%75 = add nsw i32 %74, %69
%76 = trunc i32 %75 to i8
store i8 %76, i8* %72
br label %77
77: ; preds = %58
%78 = load i32, i32* %9
%79 = add nsw i32 %78, -1
store i32 %79, i32* %9
br label %55
80: ; preds = %55
br label %81
81: ; preds = %80, %44
br label %82
82: ; preds = %81
%83 = load i32, i32* %8
%84 = add nsw i32 %83, -1
store i32 %84, i32* %8
br label %41
85: ; preds = %41
br label %86
86: ; preds = %85
%87 = load i32, i32* %7
%88 = add nsw i32 %87, -1
store i32 %88, i32* %7
%89 = load i32, i32* %12
%90 = add nsw i32 %89, 1
store i32 %90, i32* %12
br label %37
91: ; preds = %37
store i32 14, i32* %7
br label %92
92: ; preds = %122, %91
%93 = load i32, i32* %7
%94 = icmp sge i32 %93, 0
br i1 %94, label %95, label %125
95: ; preds = %92
%96 = load i8, i8* %6
%97 = zext i8 %96 to i32
%98 = load i32, i32* %7
%99 = sext i32 %98 to i64
%100 = getelementptr inbounds [15 x i8], [15 x i8]* %5, i64 0, i64 %99
%101 = load i8, i8* %100
%102 = zext i8 %101 to i32
%103 = add nsw i32 %102, %97
%104 = trunc i32 %103 to i8
store i8 %104, i8* %100
%105 = load i32, i32* %7
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds [15 x i8], [15 x i8]* %5, i64 0, i64 %106
%108 = load i8, i8* %107
%109 = zext i8 %108 to i32
%110 = sdiv i32 %109, 10
%111 = trunc i32 %110 to i8
store i8 %111, i8* %6
%112 = load i8, i8* %6
%113 = zext i8 %112 to i32
%114 = mul nsw i32 10, %113
%115 = load i32, i32* %7
%116 = sext i32 %115 to i64
%117 = getelementptr inbounds [15 x i8], [15 x i8]* %5, i64 0, i64 %116
%118 = load i8, i8* %117
%119 = zext i8 %118 to i32
%120 = sub nsw i32 %119, %114
%121 = trunc i32 %120 to i8
store i8 %121, i8* %117
br label %122
122: ; preds = %95
%123 = load i32, i32* %7
%124 = add nsw i32 %123, -1
store i32 %124, i32* %7
br label %92
125: ; preds = %92
br label %126
126: ; preds = %125
%127 = load i32, i32* %13
%128 = add nsw i32 %127, 1
store i32 %128, i32* %13
br label %15
129: ; preds = %15
%130 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%131 = load i32, i32* %1
ret i32 %131
}

LLVM IR (-O2):
@__const.main.table = [48 x [15 x i8]] [[15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\01\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\03\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\06\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\01\02\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\02\05\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\05\01\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\01\00\02\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\02\00\04\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\04\00\09\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\08\01\09\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\01\06\03\08\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\03\02\07\06\08", [15 x i8] c"\00\00\00\00\00\00\00\00\00\00\06\05\05\03\06", [15 x i8] c"\00\00\00\00\00\00\00\00\00\01\03\01\00\07\02", [15 x i8] c"\00\00\00\00\00\00\00\00\00\02\06\02\01\04\04", [15 x i8] c"\00\00\00\00\00\00\00\00\00\05\02\04\02\08\08", [15 x i8] c"\00\00\00\00\00\00\00\00\01\00\04\08\05\07\06", [15 x i8] c"\00\00\00\00\00\00\00\00\02\00\09\07\01\05\02", [15 x i8] c"\00\00\00\00\00\00\00\00\04\01\09\04\03\00\04", [15 x i8] c"\00\00\00\00\00\00\00\00\08\03\08\08\06\00\08", [15 x i8] c"\00\00\00\00\00\00\00\01\06\07\07\07\02\01\06", [15 x i8] c"\00\00\00\00\00\00\00\03\03\05\05\04\04\03\02", [15 x i8] c"\00\00\00\00\00\00\00\06\07\01\00\08\08\06\04", [15 x i8] c"\00\00\00\00\00\00\01\03\04\02\01\07\07\02\08", [15 x i8] c"\00\00\00\00\00\00\02\06\08\04\03\05\04\05\06", [15 x i8] c"\00\00\00\00\00\00\05\03\06\08\07\00\09\01\02", [15 x i8] c"\00\00\00\00\00\01\00\07\03\07\04\01\08\02\04", [15 x i8] c"\00\00\00\00\00\02\01\04\07\04\08\03\06\04\08", [15 x i8] c"\00\00\00\00\00\04\02\09\04\09\06\07\02\09\06", [15 x i8] c"\00\00\00\00\00\08\05\08\09\09\03\04\05\09\02", [15 x i8] c"\00\00\00\00\01\07\01\07\09\08\06\09\01\08\04", [15 x i8] c"\00\00\00\00\03\04\03\05\09\07\03\08\03\06\08", [15 x i8] c"\00\00\00\00\06\08\07\01\09\04\07\06\07\03\06", [15 x i8] c"\00\00\00\01\03\07\04\03\08\09\05\03\04\07\02", [15 x i8] c"\00\00\00\02\07\04\08\07\07\09\00\06\09\04\04", [15 x i8] c"\00\00\00\05\04\09\07\05\05\08\01\03\08\08\08", [15 x i8] c"\00\00\01\00\09\09\05\01\01\06\02\07\07\07\06", [15 x i8] c"\00\00\02\01\09\09\00\02\03\02\05\05\05\05\02", [15 x i8] c"\00\00\04\03\09\08\00\04\06\05\01\01\01\00\04", [15 x i8] c"\00\00\08\07\09\06\00\09\03\00\02\02\02\00\08", [15 x i8] c"\00\01\07\05\09\02\01\08\06\00\04\04\04\01\06", [15 x i8] c"\00\03\05\01\08\04\03\07\02\00\08\08\08\03\02", [15 x i8] c"\00\07\00\03\06\08\07\04\04\01\07\07\06\06\04", [15 x i8] c"\01\04\00\07\03\07\04\08\08\03\05\05\03\02\08"]
define i32 @main() {
%1 = alloca [6 x i8]
%2 = alloca [15 x i8]
%3 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 0
%4 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 0
%5 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 5
%6 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 4
%7 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 3
%8 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 2
%9 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 1
%10 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 14
%11 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 13
%12 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 12
%13 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 11
%14 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 10
%15 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 9
%16 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 8
%17 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 7
%18 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 6
%19 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 5
%20 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 4
%21 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 3
%22 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 2
%23 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 1
%24 = bitcast i8* %17 to <8 x i8>*
%25 = bitcast i8* %21 to <4 x i8>*
br label %26
26: ; preds = %0, %307
%27 = phi i32 [ 0, %0 ], [ %308, %307 ]
%28 = phi i8 [ 0, %0 ], [ %294, %307 ]
store i8 44, i8* %5
store i8 15, i8* %6
store i8 7, i8* %7
store i8 -21, i8* %8
store i8 83, i8* %9
store i8 27, i8* %3
%29 = load <8 x i8>, <8 x i8>* %24
%30 = load <4 x i8>, <4 x i8>* %25
%31 = load i8, i8* %22
%32 = load i8, i8* %23
%33 = load i8, i8* %4
br label %34
34: ; preds = %272, %26
%35 = phi i8 [ %33, %26 ], [ %263, %272 ]
%36 = phi i8 [ %32, %26 ], [ %264, %272 ]
%37 = phi i8 [ %31, %26 ], [ %265, %272 ]
%38 = phi i8 [ 0, %26 ], [ %266, %272 ]
%39 = phi i8 [ 44, %26 ], [ %274, %272 ]
%40 = phi i64 [ 5, %26 ], [ %269, %272 ]
%41 = phi i64 [ 0, %26 ], [ %270, %272 ]
%42 = phi <8 x i8> [ %29, %26 ], [ %267, %272 ]
%43 = phi <4 x i8> [ %30, %26 ], [ %268, %272 ]
%44 = zext i8 %39 to i32
%45 = shl nsw i64 %41, 3
%46 = and i32 %44, 128
%47 = icmp eq i32 %46, 0
br i1 %47, label %67, label %48
48: ; preds = %34
%49 = or i64 %45, 7
%50 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %49, i64 7
%51 = bitcast i8* %50 to <8 x i8>*
%52 = load <8 x i8>, <8 x i8>* %51
%53 = add <8 x i8> %42, %52
%54 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %49, i64 3
%55 = bitcast i8* %54 to <4 x i8>*
%56 = load <4 x i8>, <4 x i8>* %55
%57 = add <4 x i8> %43, %56
%58 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %49, i64 2
%59 = load i8, i8* %58
%60 = add i8 %37, %59
%61 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %49, i64 1
%62 = load i8, i8* %61
%63 = add i8 %36, %62
%64 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %49, i64 0
%65 = load i8, i8* %64
%66 = add i8 %38, %65
br label %67
67: ; preds = %48, %34
%68 = phi i8 [ %66, %48 ], [ %35, %34 ]
%69 = phi i8 [ %63, %48 ], [ %36, %34 ]
%70 = phi i8 [ %60, %48 ], [ %37, %34 ]
%71 = phi i8 [ %66, %48 ], [ %38, %34 ]
%72 = phi <8 x i8> [ %53, %48 ], [ %42, %34 ]
%73 = phi <4 x i8> [ %57, %48 ], [ %43, %34 ]
%74 = and i32 %44, 64
%75 = icmp eq i32 %74, 0
br i1 %75, label %95, label %76
76: ; preds = %67
%77 = or i64 %45, 6
%78 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %77, i64 7
%79 = bitcast i8* %78 to <8 x i8>*
%80 = load <8 x i8>, <8 x i8>* %79
%81 = add <8 x i8> %72, %80
%82 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %77, i64 3
%83 = bitcast i8* %82 to <4 x i8>*
%84 = load <4 x i8>, <4 x i8>* %83
%85 = add <4 x i8> %73, %84
%86 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %77, i64 2
%87 = load i8, i8* %86
%88 = add i8 %70, %87
%89 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %77, i64 1
%90 = load i8, i8* %89
%91 = add i8 %69, %90
%92 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %77, i64 0
%93 = load i8, i8* %92
%94 = add i8 %71, %93
br label %95
95: ; preds = %76, %67
%96 = phi i8 [ %94, %76 ], [ %68, %67 ]
%97 = phi i8 [ %91, %76 ], [ %69, %67 ]
%98 = phi i8 [ %88, %76 ], [ %70, %67 ]
%99 = phi i8 [ %94, %76 ], [ %71, %67 ]
%100 = phi <8 x i8> [ %81, %76 ], [ %72, %67 ]
%101 = phi <4 x i8> [ %85, %76 ], [ %73, %67 ]
%102 = and i32 %44, 32
%103 = icmp eq i32 %102, 0
br i1 %103, label %123, label %104
104: ; preds = %95
%105 = or i64 %45, 5
%106 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %105, i64 7
%107 = bitcast i8* %106 to <8 x i8>*
%108 = load <8 x i8>, <8 x i8>* %107
%109 = add <8 x i8> %100, %108
%110 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %105, i64 3
%111 = bitcast i8* %110 to <4 x i8>*
%112 = load <4 x i8>, <4 x i8>* %111
%113 = add <4 x i8> %101, %112
%114 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %105, i64 2
%115 = load i8, i8* %114
%116 = add i8 %98, %115
%117 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %105, i64 1
%118 = load i8, i8* %117
%119 = add i8 %97, %118
%120 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %105, i64 0
%121 = load i8, i8* %120
%122 = add i8 %99, %121
br label %123
123: ; preds = %104, %95
%124 = phi i8 [ %122, %104 ], [ %96, %95 ]
%125 = phi i8 [ %119, %104 ], [ %97, %95 ]
%126 = phi i8 [ %116, %104 ], [ %98, %95 ]
%127 = phi i8 [ %122, %104 ], [ %99, %95 ]
%128 = phi <8 x i8> [ %109, %104 ], [ %100, %95 ]
%129 = phi <4 x i8> [ %113, %104 ], [ %101, %95 ]
%130 = and i32 %44, 16
%131 = icmp eq i32 %130, 0
br i1 %131, label %151, label %132
132: ; preds = %123
%133 = or i64 %45, 4
%134 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %133, i64 7
%135 = bitcast i8* %134 to <8 x i8>*
%136 = load <8 x i8>, <8 x i8>* %135
%137 = add <8 x i8> %128, %136
%138 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %133, i64 3
%139 = bitcast i8* %138 to <4 x i8>*
%140 = load <4 x i8>, <4 x i8>* %139
%141 = add <4 x i8> %129, %140
%142 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %133, i64 2
%143 = load i8, i8* %142
%144 = add i8 %126, %143
%145 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %133, i64 1
%146 = load i8, i8* %145
%147 = add i8 %125, %146
%148 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %133, i64 0
%149 = load i8, i8* %148
%150 = add i8 %127, %149
br label %151
151: ; preds = %132, %123
%152 = phi i8 [ %150, %132 ], [ %124, %123 ]
%153 = phi i8 [ %147, %132 ], [ %125, %123 ]
%154 = phi i8 [ %144, %132 ], [ %126, %123 ]
%155 = phi i8 [ %150, %132 ], [ %127, %123 ]
%156 = phi <8 x i8> [ %137, %132 ], [ %128, %123 ]
%157 = phi <4 x i8> [ %141, %132 ], [ %129, %123 ]
%158 = and i32 %44, 8
%159 = icmp eq i32 %158, 0
br i1 %159, label %179, label %160
160: ; preds = %151
%161 = or i64 %45, 3
%162 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %161, i64 7
%163 = bitcast i8* %162 to <8 x i8>*
%164 = load <8 x i8>, <8 x i8>* %163
%165 = add <8 x i8> %156, %164
%166 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %161, i64 3
%167 = bitcast i8* %166 to <4 x i8>*
%168 = load <4 x i8>, <4 x i8>* %167
%169 = add <4 x i8> %157, %168
%170 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %161, i64 2
%171 = load i8, i8* %170
%172 = add i8 %154, %171
%173 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %161, i64 1
%174 = load i8, i8* %173
%175 = add i8 %153, %174
%176 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %161, i64 0
%177 = load i8, i8* %176
%178 = add i8 %155, %177
br label %179
179: ; preds = %160, %151
%180 = phi i8 [ %178, %160 ], [ %152, %151 ]
%181 = phi i8 [ %175, %160 ], [ %153, %151 ]
%182 = phi i8 [ %172, %160 ], [ %154, %151 ]
%183 = phi i8 [ %178, %160 ], [ %155, %151 ]
%184 = phi <8 x i8> [ %165, %160 ], [ %156, %151 ]
%185 = phi <4 x i8> [ %169, %160 ], [ %157, %151 ]
%186 = and i32 %44, 4
%187 = icmp eq i32 %186, 0
br i1 %187, label %207, label %188
188: ; preds = %179
%189 = or i64 %45, 2
%190 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %189, i64 7
%191 = bitcast i8* %190 to <8 x i8>*
%192 = load <8 x i8>, <8 x i8>* %191
%193 = add <8 x i8> %184, %192
%194 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %189, i64 3
%195 = bitcast i8* %194 to <4 x i8>*
%196 = load <4 x i8>, <4 x i8>* %195
%197 = add <4 x i8> %185, %196
%198 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %189, i64 2
%199 = load i8, i8* %198
%200 = add i8 %182, %199
%201 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %189, i64 1
%202 = load i8, i8* %201
%203 = add i8 %181, %202
%204 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %189, i64 0
%205 = load i8, i8* %204
%206 = add i8 %183, %205
br label %207
207: ; preds = %188, %179
%208 = phi i8 [ %206, %188 ], [ %180, %179 ]
%209 = phi i8 [ %203, %188 ], [ %181, %179 ]
%210 = phi i8 [ %200, %188 ], [ %182, %179 ]
%211 = phi i8 [ %206, %188 ], [ %183, %179 ]
%212 = phi <8 x i8> [ %193, %188 ], [ %184, %179 ]
%213 = phi <4 x i8> [ %197, %188 ], [ %185, %179 ]
%214 = and i32 %44, 2
%215 = icmp eq i32 %214, 0
br i1 %215, label %235, label %216
216: ; preds = %207
%217 = or i64 %45, 1
%218 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %217, i64 7
%219 = bitcast i8* %218 to <8 x i8>*
%220 = load <8 x i8>, <8 x i8>* %219
%221 = add <8 x i8> %212, %220
%222 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %217, i64 3
%223 = bitcast i8* %222 to <4 x i8>*
%224 = load <4 x i8>, <4 x i8>* %223
%225 = add <4 x i8> %213, %224
%226 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %217, i64 2
%227 = load i8, i8* %226
%228 = add i8 %210, %227
%229 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %217, i64 1
%230 = load i8, i8* %229
%231 = add i8 %209, %230
%232 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %217, i64 0
%233 = load i8, i8* %232
%234 = add i8 %211, %233
br label %235
235: ; preds = %216, %207
%236 = phi i8 [ %234, %216 ], [ %208, %207 ]
%237 = phi i8 [ %231, %216 ], [ %209, %207 ]
%238 = phi i8 [ %228, %216 ], [ %210, %207 ]
%239 = phi i8 [ %234, %216 ], [ %211, %207 ]
%240 = phi <8 x i8> [ %221, %216 ], [ %212, %207 ]
%241 = phi <4 x i8> [ %225, %216 ], [ %213, %207 ]
%242 = and i32 %44, 1
%243 = icmp eq i32 %242, 0
br i1 %243, label %262, label %244
244: ; preds = %235
%245 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %45, i64 7
%246 = bitcast i8* %245 to <8 x i8>*
%247 = load <8 x i8>, <8 x i8>* %246
%248 = add <8 x i8> %240, %247
%249 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %45, i64 3
%250 = bitcast i8* %249 to <4 x i8>*
%251 = load <4 x i8>, <4 x i8>* %250
%252 = add <4 x i8> %241, %251
%253 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %45, i64 2
%254 = load i8, i8* %253
%255 = add i8 %238, %254
%256 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %45, i64 1
%257 = load i8, i8* %256
%258 = add i8 %237, %257
%259 = getelementptr inbounds [48 x [15 x i8]], [48 x [15 x i8]]* @__const.main.table, i64 0, i64 %45, i64 0
%260 = load i8, i8* %259
%261 = add i8 %239, %260
br label %262
262: ; preds = %244, %235
%263 = phi i8 [ %261, %244 ], [ %236, %235 ]
%264 = phi i8 [ %258, %244 ], [ %237, %235 ]
%265 = phi i8 [ %255, %244 ], [ %238, %235 ]
%266 = phi i8 [ %261, %244 ], [ %239, %235 ]
%267 = phi <8 x i8> [ %248, %244 ], [ %240, %235 ]
%268 = phi <4 x i8> [ %252, %244 ], [ %241, %235 ]
%269 = add nsw i64 %40, -1
%270 = add nuw nsw i64 %41, 1
%271 = icmp eq i64 %270, 6
br i1 %271, label %275, label %272
272: ; preds = %262
%273 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %269
%274 = load i8, i8* %273
br label %34
275: ; preds = %262
%276 = extractelement <8 x i8> %267, i64 7
store i8 %276, i8* %10
%277 = extractelement <8 x i8> %267, i64 6
store i8 %277, i8* %11
%278 = extractelement <8 x i8> %267, i64 5
store i8 %278, i8* %12
%279 = extractelement <8 x i8> %267, i64 4
store i8 %279, i8* %13
%280 = extractelement <8 x i8> %267, i64 3
store i8 %280, i8* %14
%281 = extractelement <8 x i8> %267, i64 2
store i8 %281, i8* %15
%282 = extractelement <8 x i8> %267, i64 1
store i8 %282, i8* %16
%283 = extractelement <8 x i8> %267, i64 0
store i8 %283, i8* %17
%284 = extractelement <4 x i8> %268, i64 3
store i8 %284, i8* %18
%285 = extractelement <4 x i8> %268, i64 2
store i8 %285, i8* %19
%286 = extractelement <4 x i8> %268, i64 1
store i8 %286, i8* %20
%287 = extractelement <4 x i8> %268, i64 0
store i8 %287, i8* %21
store i8 %265, i8* %22
store i8 %264, i8* %23
store i8 %263, i8* %4
br label %288
288: ; preds = %298, %275
%289 = phi i64 [ 14, %275 ], [ %306, %298 ]
%290 = phi i8 [ %28, %275 ], [ %303, %298 ]
%291 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 %289
%292 = load i8, i8* %291
%293 = add i8 %292, %290
%294 = udiv i8 %293, 10
%295 = mul i8 %294, -10
%296 = add i8 %295, %293
store i8 %296, i8* %291
%297 = icmp eq i64 %289, 0
br i1 %297, label %307, label %298
298: ; preds = %288
%299 = add nsw i64 %289, -1
%300 = getelementptr inbounds [15 x i8], [15 x i8]* %2, i64 0, i64 %299
%301 = load i8, i8* %300
%302 = add i8 %301, %294
%303 = udiv i8 %302, 10
%304 = mul i8 %303, -10
%305 = add i8 %304, %302
store i8 %305, i8* %300
%306 = add nsw i64 %289, -2
br label %288
307: ; preds = %288
%308 = add nuw nsw i32 %27, 1
%309 = icmp eq i32 %308, 60001
br i1 %309, label %310, label %26
310: ; preds = %307
%311 = tail call i32 @putchar(i32 10)
ret i32 0
}