#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*/ printf(char *);
int /*<<< orphan*/ scanf(char *, char *);
int strlen(char *);
int main() {
  char isbn13[20] = {0};
  int arr[12];
  int count = 0;
  int counter = 0;
  int lenght = 0;
  int sum1 = 0;
  int sum2 = 0;
  int sum3 = 0;
  int suma = 0;
  int supp = 0;
  int help = 0;
  int helper = 0;
  int helpp = 0;
  scanf("%s", isbn13);
  if ((isbn13[0] == '9' && isbn13[1] == '7' && isbn13[2] == '8') ||
      (isbn13[0] == '9' && isbn13[1] == '7' && isbn13[2] == '9')) {
    help = 1;
  } else {
    help = 0;
  }
  lenght = strlen(isbn13);
  for (counter = 0; counter < lenght; counter++) {
    if (isbn13[counter] >= 48 && isbn13[counter] <= 57) {
      count++;
    }
  }
  if (count == 13) {
    helper = 1;
  } else {
    helper = 0;
  }
  count = 0;
  for (counter = 0; counter < lenght; counter++) {
    if (isbn13[counter] != '-') {
      arr[count] = (isbn13[counter] - 48);
      count++;
    }
  }
  for (counter = 0; counter <= 10; counter = counter + 2) {
    sum1 = sum1 + arr[counter];
  }
  for (counter = 1; counter <= 11; counter = counter + 2) {
    sum2 = sum2 + arr[counter];
  }
  sum3 = sum2 * 3;
  suma = sum1 + sum3;
  supp = suma % 10;
  if (arr[12] == 10 - supp) {
    helpp = 1;
  } else {
    helpp = 0;
  }
  if (help == 1 && helper == 1 && helpp == 1) {
    printf("1\n");
    if (isbn13[6] == '9' && isbn13[7] == '3' && isbn13[8] == '3' &&
        isbn13[9] == '3' && isbn13[10] == '4' && isbn13[11] == '6')
      printf("Bluebridge\n");
    if (isbn13[6] == '5' && isbn13[7] == '5' && isbn13[8] == '5' &&
        isbn13[9] == '8' && isbn13[10] == '3')
      printf("Alyson Books\n");
    if (isbn13[6] == '4' && isbn13[7] == '2' && isbn13[8] == '1' &&
        isbn13[9] == '0')
      printf("FUNimation Productions, Ltd.\n");
    if (isbn13[6] == '0' && isbn13[7] == '1')
      printf("Pyramid Books\n");
  } else {
    printf("0\n");
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x20(%rbp),%rdi
xor    %esi,%esi
mov    $0x14,%edx
call   1050 <memset@plt>
movl   $0x0,-0x54(%rbp)
movl   $0x0,-0x58(%rbp)
movl   $0x0,-0x5c(%rbp)
movl   $0x0,-0x60(%rbp)
movl   $0x0,-0x64(%rbp)
movl   $0x0,-0x68(%rbp)
movl   $0x0,-0x6c(%rbp)
movl   $0x0,-0x70(%rbp)
movl   $0x0,-0x74(%rbp)
movl   $0x0,-0x78(%rbp)
movl   $0x0,-0x7c(%rbp)
lea    -0x20(%rbp),%rsi
lea    0xe46(%rip),%rdi
call   1060 <scanf@plt>
movsbl -0x20(%rbp),%eax
cmp    $0x39,%eax
jne    11e6 <main+0xa6>
movsbl -0x1f(%rbp),%eax
cmp    $0x37,%eax
jne    11e6 <main+0xa6>
movsbl -0x1e(%rbp),%eax
cmp    $0x38,%eax
je     120d <main+0xcd>
movsbl -0x20(%rbp),%eax
cmp    $0x39,%eax
jne    1219 <main+0xd9>
movsbl -0x1f(%rbp),%eax
cmp    $0x37,%eax
jne    1219 <main+0xd9>
movsbl -0x1e(%rbp),%eax
cmp    $0x39,%eax
jne    1219 <main+0xd9>
movl   $0x1,-0x74(%rbp)
jmp    1220 <main+0xe0>
movl   $0x0,-0x74(%rbp)
lea    -0x20(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x5c(%rbp)
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x5c(%rbp),%eax
jge    127f <main+0x13f>
movslq -0x58(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x30,%eax
jl     126c <main+0x12c>
movslq -0x58(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x39,%eax
jg     126c <main+0x12c>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1271 <main+0x131>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    1233 <main+0xf3>
cmpl   $0xd,-0x54(%rbp)
jne    1295 <main+0x155>
movl   $0x1,-0x78(%rbp)
jmp    129c <main+0x15c>
movl   $0x0,-0x78(%rbp)
movl   $0x0,-0x54(%rbp)
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x5c(%rbp),%eax
jge    12f8 <main+0x1b8>
movslq -0x58(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
je     12e5 <main+0x1a5>
movslq -0x58(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%ecx
sub    $0x30,%ecx
movslq -0x54(%rbp),%rax
mov    %ecx,-0x50(%rbp,%rax,4)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    12ea <main+0x1aa>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    12aa <main+0x16a>
movl   $0x0,-0x58(%rbp)
cmpl   $0xa,-0x58(%rbp)
jg     1325 <main+0x1e5>
mov    -0x60(%rbp),%eax
movslq -0x58(%rbp),%rcx
add    -0x50(%rbp,%rcx,4),%eax
mov    %eax,-0x60(%rbp)
mov    -0x58(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x58(%rbp)
jmp    12ff <main+0x1bf>
movl   $0x1,-0x58(%rbp)
cmpl   $0xb,-0x58(%rbp)
jg     1352 <main+0x212>
mov    -0x64(%rbp),%eax
movslq -0x58(%rbp),%rcx
add    -0x50(%rbp,%rcx,4),%eax
mov    %eax,-0x64(%rbp)
mov    -0x58(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x58(%rbp)
jmp    132c <main+0x1ec>
imul   $0x3,-0x64(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x60(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x70(%rbp)
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
sub    -0x70(%rbp),%ecx
cmp    %ecx,%eax
jne    138f <main+0x24f>
movl   $0x1,-0x7c(%rbp)
jmp    1396 <main+0x256>
movl   $0x0,-0x7c(%rbp)
cmpl   $0x1,-0x74(%rbp)
jne    14d2 <main+0x392>
cmpl   $0x1,-0x78(%rbp)
jne    14d2 <main+0x392>
cmpl   $0x1,-0x7c(%rbp)
jne    14d2 <main+0x392>
lea    0xc48(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x1a(%rbp),%eax
cmp    $0x39,%eax
jne    141a <main+0x2da>
movsbl -0x19(%rbp),%eax
cmp    $0x33,%eax
jne    141a <main+0x2da>
movsbl -0x18(%rbp),%eax
cmp    $0x33,%eax
jne    141a <main+0x2da>
movsbl -0x17(%rbp),%eax
cmp    $0x33,%eax
jne    141a <main+0x2da>
movsbl -0x16(%rbp),%eax
cmp    $0x34,%eax
jne    141a <main+0x2da>
movsbl -0x15(%rbp),%eax
cmp    $0x36,%eax
jne    141a <main+0x2da>
lea    0xbf1(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x1a(%rbp),%eax
cmp    $0x35,%eax
jne    1467 <main+0x327>
movsbl -0x19(%rbp),%eax
cmp    $0x35,%eax
jne    1467 <main+0x327>
movsbl -0x18(%rbp),%eax
cmp    $0x35,%eax
jne    1467 <main+0x327>
movsbl -0x17(%rbp),%eax
cmp    $0x38,%eax
jne    1467 <main+0x327>
movsbl -0x16(%rbp),%eax
cmp    $0x33,%eax
jne    1467 <main+0x327>
lea    0xbb0(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x1a(%rbp),%eax
cmp    $0x34,%eax
jne    14a7 <main+0x367>
movsbl -0x19(%rbp),%eax
cmp    $0x32,%eax
jne    14a7 <main+0x367>
movsbl -0x18(%rbp),%eax
cmp    $0x31,%eax
jne    14a7 <main+0x367>
movsbl -0x17(%rbp),%eax
cmp    $0x30,%eax
jne    14a7 <main+0x367>
lea    0xb7e(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x1a(%rbp),%eax
cmp    $0x30,%eax
jne    14cd <main+0x38d>
movsbl -0x19(%rbp),%eax
cmp    $0x31,%eax
jne    14cd <main+0x38d>
lea    0xb76(%rip),%rdi
call   1040 <printf@plt>
jmp    14de <main+0x39e>
lea    0xb74(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
sub    $0x58,%rsp
pxor   %xmm0,%xmm0
movdqa %xmm0,(%rsp)
movl   $0x0,0x10(%rsp)
lea    0xee2(%rip),%rdi
mov    %rsp,%rsi
call   1050 <scanf@plt>
mov    (%rsp),%al
mov    0x1(%rsp),%cl
xor    $0x39,%al
xor    $0x37,%cl
or     %al,%cl
sete   %al
mov    0x2(%rsp),%cl
jne    1175 <main+0x45>
mov    $0x1,%bpl
cmp    $0x38,%cl
je     117f <main+0x4f>
cmp    $0x39,%cl
sete   %cl
and    %cl,%al
mov    %eax,%ebp
mov    %rsp,%rdi
call   1040 <strlen@plt>
xor    %esi,%esi
test   %eax,%eax
jle    139f <main+0x26f>
mov    %eax,%ecx
cmp    $0x8,%eax
jae    119f <main+0x6f>
xor    %edx,%edx
jmp    1340 <main+0x210>
mov    %ecx,%edx
and    $0xfffffff8,%edx
lea    -0x8(%rdx),%rsi
mov    %rsi,%rbx
shr    $0x3,%rbx
add    $0x1,%rbx
test   %rsi,%rsi
je     152a <main+0x3fa>
mov    %rbx,%rsi
and    $0xfffffffffffffffe,%rsi
pxor   %xmm0,%xmm0
xor    %edi,%edi
movdqa 0xe2e(%rip),%xmm8
movdqa 0xe36(%rip),%xmm3
pcmpeqd %xmm4,%xmm4
movdqa 0xe3a(%rip),%xmm5
pxor   %xmm1,%xmm1
nopw   0x0(%rax,%rax,1)
movd   0x4(%rsp,%rdi,1),%xmm2
movdqa (%rsp,%rdi,1),%xmm7
paddb  %xmm8,%xmm7
paddb  %xmm8,%xmm2
movdqa %xmm7,%xmm6
pmaxub %xmm3,%xmm6
pcmpeqb %xmm7,%xmm6
pxor   %xmm4,%xmm6
punpcklbw %xmm6,%xmm6
punpcklwd %xmm6,%xmm6
pand   %xmm5,%xmm6
paddd  %xmm0,%xmm6
movdqa %xmm2,%xmm7
pmaxub %xmm3,%xmm7
pcmpeqb %xmm2,%xmm7
pxor   %xmm4,%xmm7
punpcklbw %xmm7,%xmm7
punpcklwd %xmm7,%xmm7
pand   %xmm5,%xmm7
paddd  %xmm1,%xmm7
movq   0x8(%rsp,%rdi,1),%xmm1
movd   0xc(%rsp,%rdi,1),%xmm2
paddb  %xmm8,%xmm1
paddb  %xmm8,%xmm2
movdqa %xmm1,%xmm0
pmaxub %xmm3,%xmm0
pcmpeqb %xmm1,%xmm0
pxor   %xmm4,%xmm0
punpcklbw %xmm0,%xmm0
punpcklwd %xmm0,%xmm0
pand   %xmm5,%xmm0
paddd  %xmm6,%xmm0
movdqa %xmm2,%xmm1
pmaxub %xmm3,%xmm1
pcmpeqb %xmm2,%xmm1
pxor   %xmm4,%xmm1
punpcklbw %xmm1,%xmm1
punpcklwd %xmm1,%xmm1
pand   %xmm5,%xmm1
paddd  %xmm7,%xmm1
add    $0x10,%rdi
add    $0xfffffffffffffffe,%rsi
jne    11f0 <main+0xc0>
test   $0x1,%bl
je     1319 <main+0x1e9>
movq   (%rsp,%rdi,1),%xmm2
movd   0x4(%rsp,%rdi,1),%xmm3
movdqa 0xd3f(%rip),%xmm4
paddb  %xmm4,%xmm2
paddb  %xmm4,%xmm3
movdqa 0xd3f(%rip),%xmm4
movdqa %xmm2,%xmm5
pmaxub %xmm4,%xmm5
pcmpeqb %xmm2,%xmm5
pcmpeqd %xmm2,%xmm2
pxor   %xmm2,%xmm5
punpcklbw %xmm5,%xmm5
punpcklwd %xmm5,%xmm5
movdqa 0xd2b(%rip),%xmm6
pand   %xmm6,%xmm5
paddd  %xmm5,%xmm0
pmaxub %xmm3,%xmm4
pcmpeqb %xmm3,%xmm4
pxor   %xmm2,%xmm4
punpcklbw %xmm4,%xmm4
punpcklwd %xmm4,%xmm4
pand   %xmm6,%xmm4
paddd  %xmm4,%xmm1
paddd  %xmm1,%xmm0
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%esi
cmp    %rcx,%rdx
je     1356 <main+0x226>
nopl   0x0(%rax,%rax,1)
movzbl (%rsp,%rdx,1),%ebx
add    $0xd0,%bl
cmp    $0xa,%bl
adc    $0x0,%esi
add    $0x1,%rdx
cmp    %rdx,%rcx
jne    1340 <main+0x210>
cmp    $0xd,%esi
sete   %sil
test   %eax,%eax
jle    139f <main+0x26f>
cmp    $0x1,%eax
jne    14d9 <main+0x3a9>
xor    %edx,%edx
xor    %eax,%eax
test   $0x1,%cl
je     1385 <main+0x255>
movsbl (%rsp,%rdx,1),%ecx
cmp    $0x2d,%ecx
je     1385 <main+0x255>
add    $0xffffffd0,%ecx
cltq
mov    %ecx,0x20(%rsp,%rax,4)
mov    0x28(%rsp),%eax
add    0x20(%rsp),%eax
add    0x30(%rsp),%eax
add    0x38(%rsp),%eax
add    0x40(%rsp),%eax
add    0x48(%rsp),%eax
jmp    139f <main+0x26f>
and    %sil,%bpl
lea    0xc8a(%rip),%rdi
cmp    $0x1,%bpl
jne    14cb <main+0x39b>
mov    0x2c(%rsp),%ecx
add    0x24(%rsp),%ecx
add    0x34(%rsp),%ecx
add    0x3c(%rsp),%ecx
add    0x44(%rsp),%ecx
add    0x4c(%rsp),%ecx
lea    (%rcx,%rcx,2),%ecx
add    %eax,%ecx
movslq %ecx,%rax
imul   $0x66666667,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x22,%rcx
add    %edx,%ecx
add    %ecx,%ecx
lea    (%rcx,%rcx,4),%ecx
sub    %eax,%ecx
add    $0xa,%ecx
cmp    %ecx,0x50(%rsp)
jne    14cb <main+0x39b>
lea    0xc33(%rip),%rdi
call   1030 <puts@plt>
mov    0x6(%rsp),%cl
mov    0x7(%rsp),%al
mov    0x8(%rsp),%bl
mov    0x9(%rsp),%sil
mov    0xa(%rsp),%dl
cmp    $0x39,%cl
jne    145d <main+0x32d>
cmp    $0x33,%al
jne    145d <main+0x32d>
cmp    $0x33,%bl
jne    145d <main+0x32d>
cmp    $0x33,%sil
jne    145d <main+0x32d>
cmp    $0x34,%dl
jne    145d <main+0x32d>
cmpb   $0x36,0xb(%rsp)
jne    145d <main+0x32d>
lea    0xc2c(%rip),%rdi
call   1030 <puts@plt>
mov    0x6(%rsp),%cl
mov    0x7(%rsp),%al
mov    0x8(%rsp),%bl
mov    0x9(%rsp),%sil
mov    0xa(%rsp),%dl
cmp    $0x35,%cl
jne    1493 <main+0x363>
cmp    $0x35,%al
jne    1493 <main+0x363>
cmp    $0x35,%bl
jne    1493 <main+0x363>
cmp    $0x38,%sil
jne    1493 <main+0x363>
cmp    $0x33,%dl
jne    1493 <main+0x363>
lea    0xbe5(%rip),%rdi
call   1030 <puts@plt>
mov    0x6(%rsp),%cl
mov    0x7(%rsp),%al
mov    0x8(%rsp),%bl
mov    0x9(%rsp),%sil
cmp    $0x34,%cl
jne    14bb <main+0x38b>
cmp    $0x32,%al
jne    14bb <main+0x38b>
cmp    $0x31,%bl
jne    14bb <main+0x38b>
cmp    $0x30,%sil
jne    14bb <main+0x38b>
lea    0xb97(%rip),%rdi
call   1030 <puts@plt>
mov    0x6(%rsp),%cl
mov    0x7(%rsp),%al
cmp    $0x30,%cl
jne    14d0 <main+0x3a0>
cmp    $0x31,%al
jne    14d0 <main+0x3a0>
lea    0xb6c(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
add    $0x58,%rsp
pop    %rbx
pop    %rbp
ret
mov    %ecx,%edi
and    $0xfffffffe,%edi
xor    %edx,%edx
xor    %eax,%eax
jmp    14fd <main+0x3cd>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x2,%rdx
cmp    %rdx,%rdi
je     136e <main+0x23e>
movsbl (%rsp,%rdx,1),%ebx
cmp    $0x2d,%ebx
je     1512 <main+0x3e2>
add    $0xffffffd0,%ebx
cltq
mov    %ebx,0x20(%rsp,%rax,4)
add    $0x1,%eax
movsbl 0x1(%rsp,%rdx,1),%ebx
cmp    $0x2d,%ebx
je     14f0 <main+0x3c0>
add    $0xffffffd0,%ebx
cltq
mov    %ebx,0x20(%rsp,%rax,4)
add    $0x1,%eax
jmp    14f0 <main+0x3c0>
pxor   %xmm0,%xmm0
xor    %edi,%edi
pxor   %xmm1,%xmm1
test   $0x1,%bl
jne    12ae <main+0x17e>
jmp    1319 <main+0x1e9>

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

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