#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 *, char);
int /*<<< orphan*/ scanf(char *, ...);
int main() {
  char arr1[100], arr2[100];
  int i, n, j, k = 0, l;
  scanf("%s", arr1);
  for (i = 0; arr1[i] != '\0'; i++) {
    continue;
  }
  scanf("%d", &n);
  for (j = 0; j < i; j++) {
    arr2[j] = 'a' + (arr1[k] - 'a' + n) % 26;
    k++;
  }
  for (l = 0; l <= j; l++) {
    printf("%c", arr2[l]);
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0xf0(%rbp)
lea    -0x70(%rbp),%rsi
lea    0xeb9(%rip),%rdi
mov    $0x0,%al
call   1040 <scanf@plt>
movl   $0x0,-0xe4(%rbp)
movslq -0xe4(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     1186 <main+0x66>
jmp    1172 <main+0x52>
mov    -0xe4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe4(%rbp)
jmp    1158 <main+0x38>
lea    0xe76(%rip),%rdi
lea    -0xe8(%rbp),%rsi
mov    $0x0,%al
call   1040 <scanf@plt>
movl   $0x0,-0xec(%rbp)
mov    -0xec(%rbp),%eax
cmp    -0xe4(%rbp),%eax
jge    120a <main+0xea>
movslq -0xf0(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
sub    $0x61,%eax
add    -0xe8(%rbp),%eax
mov    $0x1a,%ecx
cltd
idiv   %ecx
add    $0x61,%edx
mov    %dl,%cl
movslq -0xec(%rbp),%rax
mov    %cl,-0xe0(%rbp,%rax,1)
mov    -0xf0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xf0(%rbp)
mov    -0xec(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xec(%rbp)
jmp    11a5 <main+0x85>
movl   $0x0,-0xf4(%rbp)
mov    -0xf4(%rbp),%eax
cmp    -0xec(%rbp),%eax
jg     1255 <main+0x135>
movslq -0xf4(%rbp),%rax
lea    0xdd2(%rip),%rdi
movsbl -0xe0(%rbp,%rax,1),%esi
ff
call   1030 <printf@plt>
mov    -0xf4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xf4(%rbp)
jmp    1214 <main+0xf4>
xor    %eax,%eax
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %rbx
sub    $0xf0,%rsp
lea    0xf1d(%rip),%rdi
lea    0x10(%rsp),%rsi
xor    %eax,%eax
call   1040 <scanf@plt>
mov    $0xffffffffffffffff,%r14
cs nopw 0x0(%rax,%rax,1)
cmpb   $0x0,0x11(%rsp,%r14,1)
lea    0x1(%r14),%r14
jne    1150 <main+0x30>
lea    0xef0(%rip),%rdi
lea    0xc(%rsp),%rsi
xor    %eax,%eax
call   1040 <scanf@plt>
test   %r14d,%r14d
je     1188 <main+0x68>
mov    0xc(%rsp),%eax
mov    %r14d,%edx
cmp    $0x8,%rdx
jae    1193 <main+0x73>
xor    %ecx,%ecx
jmp    1567 <main+0x447>
mov    $0x1,%r14d
jmp    15b4 <main+0x494>
movd   %eax,%xmm8
cmp    $0x10,%edx
jae    11a4 <main+0x84>
xor    %ecx,%ecx
jmp    1403 <main+0x2e3>
mov    %r14d,%edi
mov    %r14d,%esi
and    $0xf,%esi
mov    %rdx,%rcx
sub    %rsi,%rcx
mov    $0xffffff9f,%ebx
movd   %ebx,%xmm0
paddd  %xmm8,%xmm0
pshufd $0x0,%xmm0,%xmm11
sub    %rsi,%rdi
xor    %ebx,%ebx
movdqa 0xe2c(%rip),%xmm2
movdqa 0xe34(%rip),%xmm3
movdqa 0xe3b(%rip),%xmm10
movdqa 0xe42(%rip),%xmm9
xchg   %ax,%ax
movdqa 0x10(%rsp,%rbx,1),%xmm0
punpcklbw %xmm0,%xmm5
punpcklwd %xmm5,%xmm4
psrad  $0x18,%xmm4
punpckhwd %xmm5,%xmm7
psrad  $0x18,%xmm7
punpckhbw %xmm0,%xmm5
punpcklwd %xmm5,%xmm0
psrad  $0x18,%xmm0
punpckhwd %xmm5,%xmm5
psrad  $0x18,%xmm5
paddd  %xmm11,%xmm5
paddd  %xmm11,%xmm0
paddd  %xmm11,%xmm7
paddd  %xmm11,%xmm4
movdqa %xmm4,%xmm6
pmuludq %xmm2,%xmm6
pshufd $0xed,%xmm6,%xmm6
pshufd $0xf5,%xmm4,%xmm1
pmuludq %xmm2,%xmm1
pshufd $0xed,%xmm1,%xmm1
punpckldq %xmm1,%xmm6
pxor   %xmm1,%xmm1
pcmpgtd %xmm4,%xmm1
pand   %xmm2,%xmm1
psubd  %xmm1,%xmm6
movdqa %xmm6,%xmm1
psrld  $0x1f,%xmm1
psrld  $0x3,%xmm6
paddd  %xmm1,%xmm6
pshufd $0xf5,%xmm6,%xmm1
pmuludq %xmm3,%xmm6
pshufd $0xe8,%xmm6,%xmm6
pmuludq %xmm3,%xmm1
pshufd $0xe8,%xmm1,%xmm1
punpckldq %xmm1,%xmm6
psubd  %xmm6,%xmm4
movdqa %xmm7,%xmm1
pmuludq %xmm2,%xmm1
pshufd $0xed,%xmm1,%xmm1
pshufd $0xf5,%xmm7,%xmm6
pmuludq %xmm2,%xmm6
pshufd $0xed,%xmm6,%xmm6
punpckldq %xmm6,%xmm1
pxor   %xmm6,%xmm6
pcmpgtd %xmm7,%xmm6
pand   %xmm2,%xmm6
psubd  %xmm6,%xmm1
movdqa %xmm1,%xmm6
psrld  $0x1f,%xmm6
psrld  $0x3,%xmm1
paddd  %xmm6,%xmm1
pshufd $0xf5,%xmm1,%xmm6
pmuludq %xmm3,%xmm1
pshufd $0xe8,%xmm1,%xmm1
pmuludq %xmm3,%xmm6
pshufd $0xe8,%xmm6,%xmm6
punpckldq %xmm6,%xmm1
psubd  %xmm1,%xmm7
movdqa %xmm0,%xmm1
pmuludq %xmm2,%xmm1
pshufd $0xed,%xmm1,%xmm1
pshufd $0xf5,%xmm0,%xmm6
pmuludq %xmm2,%xmm6
pshufd $0xed,%xmm6,%xmm6
punpckldq %xmm6,%xmm1
pxor   %xmm6,%xmm6
pcmpgtd %xmm0,%xmm6
pand   %xmm2,%xmm6
psubd  %xmm6,%xmm1
movdqa %xmm1,%xmm6
psrld  $0x1f,%xmm6
psrld  $0x3,%xmm1
paddd  %xmm6,%xmm1
pshufd $0xf5,%xmm1,%xmm6
pmuludq %xmm3,%xmm1
pshufd $0xe8,%xmm1,%xmm1
pmuludq %xmm3,%xmm6
pshufd $0xe8,%xmm6,%xmm6
punpckldq %xmm6,%xmm1
psubd  %xmm1,%xmm0
movdqa %xmm5,%xmm1
pmuludq %xmm2,%xmm1
pshufd $0xed,%xmm1,%xmm1
pshufd $0xf5,%xmm5,%xmm6
pmuludq %xmm2,%xmm6
pshufd $0xed,%xmm6,%xmm6
punpckldq %xmm6,%xmm1
pxor   %xmm6,%xmm6
pcmpgtd %xmm5,%xmm6
pand   %xmm2,%xmm6
psubd  %xmm6,%xmm1
movdqa %xmm1,%xmm6
psrld  $0x1f,%xmm6
psrld  $0x3,%xmm1
paddd  %xmm6,%xmm1
pshufd $0xf5,%xmm1,%xmm6
pmuludq %xmm3,%xmm1
pshufd $0xe8,%xmm1,%xmm1
pmuludq %xmm3,%xmm6
pshufd $0xe8,%xmm6,%xmm6
punpckldq %xmm6,%xmm1
psubd  %xmm1,%xmm5
pand   %xmm10,%xmm5
pand   %xmm10,%xmm0
packuswb %xmm5,%xmm0
pand   %xmm10,%xmm7
pand   %xmm10,%xmm4
packuswb %xmm7,%xmm4
packuswb %xmm0,%xmm4
paddb  %xmm9,%xmm4
movdqa %xmm4,0x80(%rsp,%rbx,1)
add    $0x10,%rbx
cmp    %rbx,%rdi
jne    11f0 <main+0xd0>
test   %rsi,%rsi
je     15b0 <main+0x490>
cmp    $0x8,%esi
jb     1567 <main+0x447>
mov    %r14d,%edi
mov    %r14d,%esi
and    $0x7,%esi
sub    %rsi,%rdx
mov    $0xffffff9f,%ebx
movd   %ebx,%xmm0
paddd  %xmm0,%xmm8
pshufd $0x0,%xmm8,%xmm0
sub    %rsi,%rdi
movdqa 0xbd2(%rip),%xmm1
movdqa 0xbda(%rip),%xmm2
movdqa 0xbe2(%rip),%xmm3
movdqa 0xbf9(%rip),%xmm8
nopw   0x0(%rax,%rax,1)
movq   0x10(%rsp,%rcx,1),%xmm5
punpcklbw %xmm5,%xmm6
punpcklwd %xmm6,%xmm5
psrad  $0x18,%xmm5
punpckhwd %xmm6,%xmm6
psrad  $0x18,%xmm6
paddd  %xmm0,%xmm6
paddd  %xmm0,%xmm5
movdqa %xmm5,%xmm7
pmuludq %xmm1,%xmm7
pshufd $0xed,%xmm7,%xmm7
pshufd $0xf5,%xmm5,%xmm4
pmuludq %xmm1,%xmm4
pshufd $0xed,%xmm4,%xmm4
punpckldq %xmm4,%xmm7
pxor   %xmm4,%xmm4
pcmpgtd %xmm5,%xmm4
pand   %xmm1,%xmm4
psubd  %xmm4,%xmm7
movdqa %xmm7,%xmm4
psrld  $0x1f,%xmm4
psrld  $0x3,%xmm7
paddd  %xmm4,%xmm7
pshufd $0xf5,%xmm7,%xmm4
pmuludq %xmm2,%xmm7
pshufd $0xe8,%xmm7,%xmm7
pmuludq %xmm2,%xmm4
pshufd $0xe8,%xmm4,%xmm4
punpckldq %xmm4,%xmm7
psubd  %xmm7,%xmm5
movdqa %xmm6,%xmm4
pmuludq %xmm1,%xmm4
pshufd $0xed,%xmm4,%xmm4
pshufd $0xf5,%xmm6,%xmm7
pmuludq %xmm1,%xmm7
pshufd $0xed,%xmm7,%xmm7
punpckldq %xmm7,%xmm4
pxor   %xmm7,%xmm7
pcmpgtd %xmm6,%xmm7
pand   %xmm1,%xmm7
psubd  %xmm7,%xmm4
movdqa %xmm4,%xmm7
psrld  $0x1f,%xmm7
psrld  $0x3,%xmm4
paddd  %xmm7,%xmm4
pshufd $0xf5,%xmm4,%xmm7
pmuludq %xmm2,%xmm4
pshufd $0xe8,%xmm4,%xmm4
pmuludq %xmm2,%xmm7
pshufd $0xe8,%xmm7,%xmm7
punpckldq %xmm7,%xmm4
psubd  %xmm4,%xmm6
pand   %xmm3,%xmm6
pand   %xmm3,%xmm5
packuswb %xmm6,%xmm5
packuswb %xmm5,%xmm5
paddb  %xmm8,%xmm5
movq   %xmm5,0x80(%rsp,%rcx,1)
add    $0x8,%rcx
cmp    %rcx,%rdi
jne    1450 <main+0x330>
mov    %rdx,%rcx
test   %rsi,%rsi
je     15b0 <main+0x490>
mov    %r14d,%edx
nopw   0x0(%rax,%rax,1)
movsbl 0x10(%rsp,%rcx,1),%esi
add    %eax,%esi
add    $0xffffff9f,%esi
movslq %esi,%rsi
imul   $0x4ec4ec4f,%rsi,%rdi
mov    %rdi,%rbx
shr    $0x3f,%rbx
sar    $0x23,%rdi
add    %ebx,%edi
lea    (%rdi,%rdi,4),%ebx
lea    (%rbx,%rbx,4),%ebx
add    %edi,%ebx
sub    %ebx,%esi
add    $0x61,%sil
mov    %sil,0x80(%rsp,%rcx,1)
add    $0x1,%rcx
cmp    %rcx,%rdx
jne    1570 <main+0x450>
add    $0x1,%r14d
xor    %ebx,%ebx
lea    0xa99(%rip),%r15
nopl   (%rax)
movsbl 0x80(%rsp,%rbx,1),%esi
mov    %r15,%rdi
call   1030 <printf@plt>
add    $0x1,%rbx
cmp    %rbx,%r14
jne    15c0 <main+0x4a0>
xor    %eax,%eax
add    $0xf0,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@.str = [3 x i8] c"%s\00"
@.str.1 = [3 x i8] c"%d\00"
@.str.2 = [3 x i8] c"%c\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [100 x i8]
%3 = alloca [100 x i8]
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store i32 0, i32* %1
store i32 0, i32* %7
%9 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 0
%10 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %9)
store i32 0, i32* %4
br label %11
11: ; preds = %19, %0
%12 = load i32, i32* %4
%13 = sext i32 %12 to i64
%14 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 %13
%15 = load i8, i8* %14
%16 = sext i8 %15 to i32
%17 = icmp ne i32 %16, 0
br i1 %17, label %18, label %22
18: ; preds = %11
br label %19
19: ; preds = %18
%20 = load i32, i32* %4
%21 = add nsw i32 %20, 1
store i32 %21, i32* %4
br label %11
22: ; preds = %11
%23 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %5)
store i32 0, i32* %6
br label %24
24: ; preds = %45, %22
%25 = load i32, i32* %6
%26 = load i32, i32* %4
%27 = icmp slt i32 %25, %26
br i1 %27, label %28, label %48
28: ; preds = %24
%29 = load i32, i32* %7
%30 = sext i32 %29 to i64
%31 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 %30
%32 = load i8, i8* %31
%33 = sext i8 %32 to i32
%34 = sub nsw i32 %33, 97
%35 = load i32, i32* %5
%36 = add nsw i32 %34, %35
%37 = srem i32 %36, 26
%38 = add nsw i32 97, %37
%39 = trunc i32 %38 to i8
%40 = load i32, i32* %6
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds [100 x i8], [100 x i8]* %3, i64 0, i64 %41
store i8 %39, i8* %42
%43 = load i32, i32* %7
%44 = add nsw i32 %43, 1
store i32 %44, i32* %7
br label %45
45: ; preds = %28
%46 = load i32, i32* %6
%47 = add nsw i32 %46, 1
store i32 %47, i32* %6
br label %24
48: ; preds = %24
store i32 0, i32* %8
br label %49
49: ; preds = %59, %48
%50 = load i32, i32* %8
%51 = load i32, i32* %6
%52 = icmp sle i32 %50, %51
br i1 %52, label %53, label %62
53: ; preds = %49
%54 = load i32, i32* %8
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds [100 x i8], [100 x i8]* %3, i64 0, i64 %55
%57 = load i8, i8* %56
%58 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8 signext %57)
br label %59
59: ; preds = %53
%60 = load i32, i32* %8
%61 = add nsw i32 %60, 1
store i32 %61, i32* %8
br label %49
62: ; preds = %49
ret i32 0
}

LLVM IR (-O2):
@.str = [3 x i8] c"%s\00"
@.str.1 = [3 x i8] c"%d\00"
@.str.2 = [3 x i8] c"%c\00"
define i32 @main() {
%1 = alloca [100 x i8]
%2 = alloca [100 x i8]
%3 = alloca i32
%4 = getelementptr inbounds [100 x i8], [100 x i8]* %1, i64 0, i64 0
%5 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 0
%6 = bitcast i32* %3 to i8*
%7 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %4)
br label %8
8: ; preds = %8, %0
%9 = phi i64 [ %13, %8 ], [ 0, %0 ]
%10 = getelementptr inbounds [100 x i8], [100 x i8]* %1, i64 0, i64 %9
%11 = load i8, i8* %10
%12 = icmp eq i8 %11, 0
%13 = add nuw i64 %9, 1
br i1 %12, label %14, label %8
14: ; preds = %8
%15 = trunc i64 %9 to i32
%16 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %3)
%17 = icmp eq i32 %15, 0
br i1 %17, label %76, label %18
18: ; preds = %14
%19 = load i32, i32* %3
%20 = and i64 %9, 4294967295
%21 = icmp ult i64 %20, 8
br i1 %21, label %71, label %22
22: ; preds = %18
%23 = icmp ult i64 %20, 16
br i1 %23, label %48, label %24
24: ; preds = %22
%25 = and i64 %9, 15
%26 = sub nsw i64 %20, %25
%27 = insertelement <16 x i32> poison, i32 %19, i64 0
%28 = add <16 x i32> %27, <i32 -97, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
%29 = shufflevector <16 x i32> %28, <16 x i32> poison, <16 x i32> zeroinitializer
br label %30
30: ; preds = %30, %24
%31 = phi i64 [ 0, %24 ], [ %42, %30 ]
%32 = getelementptr inbounds [100 x i8], [100 x i8]* %1, i64 0, i64 %31
%33 = bitcast i8* %32 to <16 x i8>*
%34 = load <16 x i8>, <16 x i8>* %33
%35 = sext <16 x i8> %34 to <16 x i32>
%36 = add <16 x i32> %29, %35
%37 = srem <16 x i32> %36, <i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26>
%38 = trunc <16 x i32> %37 to <16 x i8>
%39 = add nsw <16 x i8> %38, <i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97>
%40 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 %31
%41 = bitcast i8* %40 to <16 x i8>*
store <16 x i8> %39, <16 x i8>* %41
%42 = add nuw i64 %31, 16
%43 = icmp eq i64 %42, %26
br i1 %43, label %44, label %30
44: ; preds = %30
%45 = icmp eq i64 %25, 0
br i1 %45, label %73, label %46
46: ; preds = %44
%47 = icmp ult i64 %25, 8
br i1 %47, label %71, label %48
48: ; preds = %22, %46
%49 = phi i64 [ %26, %46 ], [ 0, %22 ]
%50 = and i64 %9, 7
%51 = sub nsw i64 %20, %50
%52 = insertelement <8 x i32> poison, i32 %19, i64 0
%53 = add <8 x i32> %52, <i32 -97, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
%54 = shufflevector <8 x i32> %53, <8 x i32> poison, <8 x i32> zeroinitializer
br label %55
55: ; preds = %55, %48
%56 = phi i64 [ %49, %48 ], [ %67, %55 ]
%57 = getelementptr inbounds [100 x i8], [100 x i8]* %1, i64 0, i64 %56
%58 = bitcast i8* %57 to <8 x i8>*
%59 = load <8 x i8>, <8 x i8>* %58
%60 = sext <8 x i8> %59 to <8 x i32>
%61 = add <8 x i32> %54, %60
%62 = srem <8 x i32> %61, <i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26, i32 26>
%63 = trunc <8 x i32> %62 to <8 x i8>
%64 = add nsw <8 x i8> %63, <i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97, i8 97>
%65 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 %56
%66 = bitcast i8* %65 to <8 x i8>*
store <8 x i8> %64, <8 x i8>* %66
%67 = add nuw i64 %56, 8
%68 = icmp eq i64 %67, %51
br i1 %68, label %69, label %55
69: ; preds = %55
%70 = icmp eq i64 %50, 0
br i1 %70, label %73, label %71
71: ; preds = %18, %46, %69
%72 = phi i64 [ 0, %18 ], [ %26, %46 ], [ %51, %69 ]
br label %78
73: ; preds = %78, %69, %44
%74 = add i64 %9, 1
%75 = and i64 %74, 4294967295
br label %76
76: ; preds = %73, %14
%77 = phi i64 [ 1, %14 ], [ %75, %73 ]
br label %91
78: ; preds = %71, %78
%79 = phi i64 [ %89, %78 ], [ %72, %71 ]
%80 = getelementptr inbounds [100 x i8], [100 x i8]* %1, i64 0, i64 %79
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = add nsw i32 %82, -97
%84 = add nsw i32 %83, %19
%85 = srem i32 %84, 26
%86 = trunc i32 %85 to i8
%87 = add nsw i8 %86, 97
%88 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 %79
store i8 %87, i8* %88
%89 = add nuw nsw i64 %79, 1
%90 = icmp eq i64 %89, %20
br i1 %90, label %73, label %78
91: ; preds = %76, %91
%92 = phi i64 [ 0, %76 ], [ %96, %91 ]
%93 = getelementptr inbounds [100 x i8], [100 x i8]* %2, i64 0, i64 %92
%94 = load i8, i8* %93
%95 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8 signext %94)
%96 = add nuw nsw i64 %92, 1
%97 = icmp eq i64 %96, %77
br i1 %97, label %98, label %91
98: ; preds = %91
ret i32 0
}