#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 */
char getchar();
int /*<<< orphan*/ printf(char *, int);
int strlen(char *);
int main() {
  int counter, len, sum = 0, i = 0;
  char Sentence[160], character;
  while ((character = getchar()) != '\n') {
    if (character >= 'a' && character <= 'z') {
      Sentence[i] = character;
      i++;
    } else if (character == ' ') {
      Sentence[i] = character;
      i++;
    } else
      return 0;
  }
  len = strlen(Sentence);
  for (counter = 0; counter < len; counter++) {
    if (Sentence[counter] >= 'a' && Sentence[counter] <= 'c') {
      if (Sentence[counter] == 'a')
        sum = sum + 1;
      if (Sentence[counter] == 'b')
        sum = sum + 2;
      if (Sentence[counter] == 'c')
        sum = sum + 3;
    }
    if (Sentence[counter] >= 'd' && Sentence[counter] <= 'f') {
      if (Sentence[counter] == 'd')
        sum = sum + 1;
      if (Sentence[counter] == 'e')
        sum = sum + 2;
      if (Sentence[counter] == 'f')
        sum = sum + 3;
    }
    if (Sentence[counter] >= 'g' && Sentence[counter] <= 'i') {
      if (Sentence[counter] == 'g')
        sum = sum + 1;
      if (Sentence[counter] == 'h')
        sum = sum + 2;
      if (Sentence[counter] == 'i')
        sum = sum + 3;
    }
    if (Sentence[counter] >= 'j' && Sentence[counter] <= 'l') {
      if (Sentence[counter] == 'j')
        sum = sum + 1;
      if (Sentence[counter] == 'k')
        sum = sum + 2;
      if (Sentence[counter] == 'l')
        sum = sum + 3;
    }
    if (Sentence[counter] >= 'm' && Sentence[counter] <= 'o') {
      if (Sentence[counter] == 'm')
        sum = sum + 1;
      if (Sentence[counter] == 'n')
        sum = sum + 2;
      if (Sentence[counter] == 'o')
        sum = sum + 3;
    }
    if (Sentence[counter] >= 'p' && Sentence[counter] <= 's') {
      if (Sentence[counter] == 'p')
        sum = sum + 1;
      if (Sentence[counter] == 'q')
        sum = sum + 2;
      if (Sentence[counter] == 'r')
        sum = sum + 3;
      if (Sentence[counter] == 's')
        sum = sum + 4;
    }
    if (Sentence[counter] >= 't' && Sentence[counter] <= 'v') {
      if (Sentence[counter] == 't')
        sum = sum + 1;
      if (Sentence[counter] == 'u')
        sum = sum + 2;
      if (Sentence[counter] == 'v')
        sum = sum + 3;
    }
    if (Sentence[counter] >= 'w' && Sentence[counter] <= 'z') {
      if (Sentence[counter] == 't')
        sum = sum + 1;
      if (Sentence[counter] == 'u')
        sum = sum + 2;
      if (Sentence[counter] == 'v')
        sum = sum + 3;
      if (Sentence[counter] == 'z')
        sum = sum + 4;
    } else if (Sentence[counter] == ' ' && Sentence[counter] == ' ')
      sum = sum + 1;
  }
  printf("\n%d", sum);
  return 1;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
mov    $0x0,%al
call   1050 <getchar@plt>
mov    %al,-0xc1(%rbp)
movsbl %al,%eax
cmp    $0xa,%eax
je     11ed <main+0xbd>
movsbl -0xc1(%rbp),%eax
cmp    $0x61,%eax
jl     11a8 <main+0x78>
movsbl -0xc1(%rbp),%eax
cmp    $0x7a,%eax
jg     11a8 <main+0x78>
mov    -0xc1(%rbp),%cl
movslq -0x14(%rbp),%rax
mov    %cl,-0xc0(%rbp,%rax,1)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11e8 <main+0xb8>
movsbl -0xc1(%rbp),%eax
cmp    $0x20,%eax
jne    11d7 <main+0xa7>
mov    -0xc1(%rbp),%cl
movslq -0x14(%rbp),%rax
mov    %cl,-0xc0(%rbp,%rax,1)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11e3 <main+0xb3>
movl   $0x0,-0x4(%rbp)
jmp    16f4 <main+0x5c4>
jmp    11e8 <main+0xb8>
jmp    1150 <main+0x20>
lea    -0xc0(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0xc(%rbp)
movl   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    16de <main+0x5ae>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x61,%eax
jl     1298 <main+0x168>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x63,%eax
jg     1298 <main+0x168>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x61,%eax
jne    1257 <main+0x127>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x62,%eax
jne    1275 <main+0x145>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x63,%eax
jne    1293 <main+0x163>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
jmp    1298 <main+0x168>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x64,%eax
jl     1321 <main+0x1f1>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x66,%eax
jg     1321 <main+0x1f1>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x64,%eax
jne    12e0 <main+0x1b0>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x65,%eax
jne    12fe <main+0x1ce>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x66,%eax
jne    131c <main+0x1ec>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
jmp    1321 <main+0x1f1>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x67,%eax
jl     13aa <main+0x27a>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x69,%eax
jg     13aa <main+0x27a>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x67,%eax
jne    1369 <main+0x239>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x68,%eax
jne    1387 <main+0x257>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x69,%eax
jne    13a5 <main+0x275>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
jmp    13aa <main+0x27a>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6a,%eax
jl     1433 <main+0x303>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6c,%eax
jg     1433 <main+0x303>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6a,%eax
jne    13f2 <main+0x2c2>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6b,%eax
jne    1410 <main+0x2e0>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6c,%eax
jne    142e <main+0x2fe>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
jmp    1433 <main+0x303>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6d,%eax
jl     14bc <main+0x38c>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6f,%eax
jg     14bc <main+0x38c>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6d,%eax
jne    147b <main+0x34b>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6e,%eax
jne    1499 <main+0x369>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x6f,%eax
jne    14b7 <main+0x387>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
jmp    14bc <main+0x38c>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x70,%eax
jl     1563 <main+0x433>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x73,%eax
jg     1563 <main+0x433>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x70,%eax
jne    1504 <main+0x3d4>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x71,%eax
jne    1522 <main+0x3f2>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x72,%eax
jne    1540 <main+0x410>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x73,%eax
jne    155e <main+0x42e>
mov    -0x10(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x10(%rbp)
jmp    1563 <main+0x433>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x74,%eax
jl     15ec <main+0x4bc>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x76,%eax
jg     15ec <main+0x4bc>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x74,%eax
jne    15ab <main+0x47b>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x75,%eax
jne    15c9 <main+0x499>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x76,%eax
jne    15e7 <main+0x4b7>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
jmp    15ec <main+0x4bc>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x77,%eax
jl     1693 <main+0x563>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x7a,%eax
jg     1693 <main+0x563>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x74,%eax
jne    1634 <main+0x504>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x75,%eax
jne    1652 <main+0x522>
mov    -0x10(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x76,%eax
jne    1670 <main+0x540>
mov    -0x10(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x10(%rbp)
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x7a,%eax
jne    168e <main+0x55e>
mov    -0x10(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x10(%rbp)
jmp    16cb <main+0x59b>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x20,%eax
jne    16c6 <main+0x596>
movslq -0x8(%rbp),%rax
movsbl -0xc0(%rbp,%rax,1),%eax
ff
cmp    $0x20,%eax
jne    16c6 <main+0x596>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    16cb <main+0x59b>
jmp    16d0 <main+0x5a0>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1203 <main+0xd3>
mov    -0x10(%rbp),%esi
lea    0x918(%rip),%rdi
call   1040 <printf@plt>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
sub    $0xa8,%rsp
xor    %ebp,%ebp
xor    %eax,%eax
call   1050 <getchar@plt>
cmp    $0xa,%al
jne    12f0 <main+0x1c0>
mov    %rsp,%rdi
call   1030 <strlen@plt>
test   %eax,%eax
jle    12d3 <main+0x1a3>
mov    %eax,%eax
xor    %ecx,%ecx
xor    %esi,%esi
movzbl (%rsp,%rcx,1),%edx
lea    -0x61(%rdx),%edi
cmp    $0x2,%dil
ja     1190 <main+0x60>
xor    %edi,%edi
cmp    $0x61,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebp
cmp    $0x62,%dl
lea    0x2(%rsi,%rdi,1),%edi
cmovne %ebp,%edi
lea    0x3(%rdi),%esi
cmp    $0x63,%dl
jmp    12a0 <main+0x170>
xchg   %ax,%ax
lea    -0x64(%rdx),%edi
cmp    $0x2,%dil
ja     11c0 <main+0x90>
xor    %edi,%edi
cmp    $0x64,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebp
cmp    $0x65,%dl
lea    0x2(%rsi,%rdi,1),%edi
cmovne %ebp,%edi
lea    0x3(%rdi),%esi
cmp    $0x66,%dl
jmp    12a0 <main+0x170>
nopw   0x0(%rax,%rax,1)
lea    -0x67(%rdx),%edi
cmp    $0x2,%dil
ja     11ea <main+0xba>
xor    %edi,%edi
cmp    $0x67,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebp
cmp    $0x68,%dl
lea    0x2(%rsi,%rdi,1),%edi
cmovne %ebp,%edi
lea    0x3(%rdi),%esi
cmp    $0x69,%dl
jmp    12a0 <main+0x170>
lea    -0x6a(%rdx),%edi
cmp    $0x2,%dil
ja     1214 <main+0xe4>
xor    %edi,%edi
cmp    $0x6a,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebp
cmp    $0x6b,%dl
lea    0x2(%rsi,%rdi,1),%edi
cmovne %ebp,%edi
lea    0x3(%rdi),%esi
cmp    $0x6c,%dl
jmp    12a0 <main+0x170>
lea    -0x6d(%rdx),%edi
cmp    $0x2,%dil
ja     123b <main+0x10b>
xor    %edi,%edi
cmp    $0x6d,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebp
cmp    $0x6e,%dl
lea    0x2(%rsi,%rdi,1),%edi
cmovne %ebp,%edi
lea    0x3(%rdi),%esi
cmp    $0x6f,%dl
jmp    12a0 <main+0x170>
mov    %edx,%ebx
and    $0xfc,%bl
cmp    $0x70,%bl
jne    126c <main+0x13c>
xor    %edi,%edi
cmp    $0x70,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebp
cmp    $0x71,%dl
lea    0x2(%rsi,%rdi,1),%esi
cmovne %ebp,%esi
lea    0x3(%rsi),%edi
cmp    $0x72,%dl
cmovne %esi,%edi
lea    0x4(%rdi),%esi
cmp    $0x73,%dl
jmp    12a0 <main+0x170>
lea    -0x74(%rdx),%edi
cmp    $0x2,%dil
ja     12bf <main+0x18f>
xor    %edi,%edi
cmp    $0x74,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebp
cmp    $0x75,%dl
lea    0x2(%rsi,%rdi,1),%edi
cmovne %ebp,%edi
lea    0x3(%rdi),%esi
cmp    $0x76,%dl
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
cmovne %edi,%esi
xor    %ebp,%ebp
cmp    $0x20,%dl
sete   %bpl
add    %esi,%ebp
add    $0x1,%rcx
mov    %ebp,%esi
cmp    %rcx,%rax
jne    1160 <main+0x30>
jmp    12d3 <main+0x1a3>
lea    -0x77(%rdx),%edi
cmp    $0x3,%dil
ja     12a3 <main+0x173>
lea    0x4(%rsi),%ebp
cmp    $0x7a,%dl
cmovne %esi,%ebp
jmp    12ae <main+0x17e>
lea    0xd26(%rip),%rdi
mov    %ebp,%esi
call   1040 <printf@plt>
mov    $0x1,%eax
add    $0xa8,%rsp
pop    %rbx
pop    %rbp
ret
mov    %rsp,%rbx
jmp    1315 <main+0x1e5>
cs nopw 0x0(%rax,%rax,1)
nop
mov    %al,(%rbx)
xor    %eax,%eax
call   1050 <getchar@plt>
add    $0x1,%rbx
cmp    $0xa,%al
je     114a <main+0x1a>
lea    -0x61(%rax),%ecx
cmp    $0x1a,%cl
jb     1300 <main+0x1d0>
cmp    $0x20,%al
mov    $0x20,%al
je     1300 <main+0x1d0>
xor    %eax,%eax
jmp    12e6 <main+0x1b6>

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

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