#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 */
typedef int uLong;
typedef int /*<<< orphan*/ FILE;
typedef int Byte;

/* Variables and functions */
int EOF;
int adler32(int, int *, int);
int crc32(int, int *, int);
scalar_t__ ferror(int /*<<< orphan*/ *);
int getc(int /*<<< orphan*/ *);
int /*<<< orphan*/ printf(char *, unsigned long, unsigned long, int, int, int,
                          int, int, int, int, int, int, int, int, int, int, int,
                          int, int, int, int, int, int, int, int, int,
                          unsigned long, char const *);
int read_one_file(FILE *ip, const char *name) {
  uLong length = 0;
  uLong a32 = adler32(0, NULL, 0);
  uLong c32 = crc32(0, NULL, 0);
  Byte header[132];
  for (;;) {
    int ch = getc(ip);
    Byte b;
    if (ch == EOF)
      break;
    b = (Byte)ch;
    if (length < sizeof header)
      header[length] = b;
    ++length;
    a32 = adler32(a32, &b, 1);
    c32 = crc32(c32, &b, 1);
  }
  if (ferror(ip))
    return 0;
  printf(
      "PNG_ICC_CHECKSUM(0x%8.8lx, 0x%8.8lx,\n   PNG_MD5("
      "0x%2.2x%2.2x%2.2x%2.2x, 0x%2.2x%2.2x%2.2x%2.2x, 0x%2.2x%2.2x%2.2x%2.2x,"
      " 0x%2.2x%2.2x%2.2x%2.2x), %d,\n"
      "   \"%4.4d/%2.2d/%2.2d %2.2d:%2.2d:%2.2d\", %lu, \"%s\")\n",
      (unsigned long)a32, (unsigned long)c32, header[84], header[85],
      header[86], header[87], header[88], header[89], header[90], header[91],
      header[92], header[93], header[94], header[95], header[96], header[97],
      header[98], header[99],
      ((header[64] * 256 + header[64 + 1]) * 65536 +
       (header[64 + 2] * 256 + header[64 + 2 + 1])),
      (header[24] * 256 + header[24 + 1]), (header[26] * 256 + header[26 + 1]),
      (header[28] * 256 + header[28 + 1]), (header[30] * 256 + header[30 + 1]),
      (header[32] * 256 + header[32 + 1]), (header[34] * 256 + header[34 + 1]),
      (unsigned long)length, name);
  return 1;
}


x86 assembly (clang, -O0):
<read_one_file>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x338,%rsp
mov    %rdi,-0x38(%rbp)
mov    %rsi,-0x40(%rbp)
movl   $0x0,-0x44(%rbp)
xor    %edx,%edx
xor    %eax,%eax
mov    %eax,%esi
mov    %edx,%edi
call   1060 <adler32@plt>
mov    %eax,-0x48(%rbp)
xor    %edx,%edx
xor    %eax,%eax
mov    %eax,%esi
mov    %edx,%edi
call   1040 <crc32@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x38(%rbp),%rdi
call   1070 <getc@plt>
mov    %eax,-0x264(%rbp)
mov    -0x264(%rbp),%eax
mov    0x2e39(%rip),%rcx
cmp    (%rcx),%eax
jne    11bc <read_one_file+0x6c>
jmp    1225 <read_one_file+0xd5>
mov    -0x264(%rbp),%eax
mov    %eax,-0x268(%rbp)
movslq -0x44(%rbp),%rax
cmp    $0x210,%rax
jae    11e9 <read_one_file+0x99>
mov    -0x268(%rbp),%ecx
movslq -0x44(%rbp),%rax
mov    %ecx,-0x260(%rbp,%rax,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
mov    -0x48(%rbp),%edi
lea    -0x268(%rbp),%rsi
mov    $0x1,%edx
call   1060 <adler32@plt>
mov    %eax,-0x48(%rbp)
mov    -0x4c(%rbp),%edi
lea    -0x268(%rbp),%rsi
mov    $0x1,%edx
call   1040 <crc32@plt>
mov    %eax,-0x4c(%rbp)
jmp    1193 <read_one_file+0x43>
mov    -0x38(%rbp),%rdi
call   1030 <ferror@plt>
cmp    $0x0,%rax
je     1244 <read_one_file+0xf4>
movl   $0x0,-0x2c(%rbp)
jmp    1473 <read_one_file+0x323>
movslq -0x48(%rbp),%rsi
movslq -0x4c(%rbp),%rdx
mov    -0x110(%rbp),%ecx
mov    -0x10c(%rbp),%r8d
mov    -0x108(%rbp),%r9d
mov    -0x104(%rbp),%eax
mov    -0x100(%rbp),%edi
mov    %edi,-0x2a4(%rbp)
mov    -0xfc(%rbp),%edi
mov    %edi,-0x2a0(%rbp)
mov    -0xf8(%rbp),%edi
mov    %edi,-0x29c(%rbp)
mov    -0xf4(%rbp),%edi
mov    %edi,-0x298(%rbp)
mov    -0xf0(%rbp),%edi
mov    %edi,-0x294(%rbp)
mov    -0xec(%rbp),%edi
mov    %edi,-0x290(%rbp)
mov    -0xe8(%rbp),%edi
mov    %edi,-0x28c(%rbp)
mov    -0xe4(%rbp),%edi
mov    %edi,-0x288(%rbp)
mov    -0xe0(%rbp),%edi
mov    %edi,-0x284(%rbp)
mov    -0xdc(%rbp),%edi
mov    %edi,-0x280(%rbp)
mov    -0xd8(%rbp),%edi
mov    %edi,-0x27c(%rbp)
mov    -0xd4(%rbp),%edi
mov    %edi,-0x278(%rbp)
mov    -0x160(%rbp),%edi
shl    $0x8,%edi
add    -0x15c(%rbp),%edi
shl    $0x10,%edi
mov    -0x158(%rbp),%r10d
shl    $0x8,%r10d
add    -0x154(%rbp),%r10d
add    %r10d,%edi
mov    %edi,-0x274(%rbp)
mov    -0x200(%rbp),%r13d
shl    $0x8,%r13d
add    -0x1fc(%rbp),%r13d
mov    -0x1f8(%rbp),%r12d
shl    $0x8,%r12d
add    -0x1f4(%rbp),%r12d
mov    -0x1f0(%rbp),%r15d
shl    $0x8,%r15d
add    -0x1ec(%rbp),%r15d
mov    -0x1e8(%rbp),%r14d
shl    $0x8,%r14d
add    -0x1e4(%rbp),%r14d
mov    -0x1e0(%rbp),%ebx
shl    $0x8,%ebx
add    -0x1dc(%rbp),%ebx
mov    -0x1d8(%rbp),%r11d
shl    $0x8,%r11d
add    -0x1d4(%rbp),%r11d
movslq -0x44(%rbp),%r10
mov    -0x40(%rbp),%rdi
mov    %rdi,-0x270(%rbp)
lea    0xc5e(%rip),%rdi
mov    %eax,(%rsp)
mov    -0x2a4(%rbp),%eax
mov    %eax,0x8(%rsp)
mov    -0x2a0(%rbp),%eax
mov    %eax,0x10(%rsp)
mov    -0x29c(%rbp),%eax
mov    %eax,0x18(%rsp)
mov    -0x298(%rbp),%eax
mov    %eax,0x20(%rsp)
mov    -0x294(%rbp),%eax
mov    %eax,0x28(%rsp)
mov    -0x290(%rbp),%eax
mov    %eax,0x30(%rsp)
mov    -0x28c(%rbp),%eax
mov    %eax,0x38(%rsp)
mov    -0x288(%rbp),%eax
mov    %eax,0x40(%rsp)
mov    -0x284(%rbp),%eax
mov    %eax,0x48(%rsp)
mov    -0x280(%rbp),%eax
mov    %eax,0x50(%rsp)
mov    -0x27c(%rbp),%eax
mov    %eax,0x58(%rsp)
mov    -0x278(%rbp),%eax
mov    %eax,0x60(%rsp)
mov    -0x274(%rbp),%eax
mov    %eax,0x68(%rsp)
mov    -0x270(%rbp),%rax
mov    %r13d,0x70(%rsp)
mov    %r12d,0x78(%rsp)
mov    %r15d,0x80(%rsp)
mov    %r14d,0x88(%rsp)
mov    %ebx,0x90(%rsp)
mov    %r11d,0x98(%rsp)
mov    %r10,0xa0(%rsp)
mov    %rax,0xa8(%rsp)
call   1050 <printf@plt>
movl   $0x1,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x338,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<read_one_file>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x288,%rsp
mov    %rsi,0x68(%rsp)
mov    %rdi,%r12
xor    %r15d,%r15d
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1060 <adler32@plt>
mov    %eax,%ebp
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1040 <crc32@plt>
mov    %eax,%ebx
mov    %r12,%rdi
call   1070 <getc@plt>
mov    0x2e53(%rip),%r14
cmp    (%r14),%eax
jne    119f <read_one_file+0x4f>
xor    %r14d,%r14d
jmp    11fd <read_one_file+0xad>
xor    %r15d,%r15d
lea    0x4(%rsp),%r13
jmp    11e3 <read_one_file+0x93>
nopl   0x0(%rax)
add    $0x1,%r15
mov    %ebp,%edi
mov    %r13,%rsi
mov    $0x1,%edx
call   1060 <adler32@plt>
mov    %eax,%ebp
mov    %ebx,%edi
mov    %r13,%rsi
mov    $0x1,%edx
call   1040 <crc32@plt>
mov    %eax,%ebx
mov    %r12,%rdi
call   1070 <getc@plt>
cmp    (%r14),%eax
je     11f7 <read_one_file+0xa7>
mov    %eax,0x4(%rsp)
cmp    $0x20f,%r15
ja     11b0 <read_one_file+0x60>
mov    %eax,0x70(%rsp,%r15,4)
jmp    11b0 <read_one_file+0x60>
mov    %r15d,%r14d
xor    %r15d,%r15d
mov    %r12,%rdi
call   1030 <ferror@plt>
test   %rax,%rax
jne    13d7 <read_one_file+0x287>
movslq %ebp,%rsi
movslq %ebx,%rdx
mov    0x1c0(%rsp),%ecx
mov    0x1c4(%rsp),%r8d
mov    0x1c8(%rsp),%r9d
mov    0x1cc(%rsp),%eax
mov    %rax,0x60(%rsp)
mov    0x1d0(%rsp),%eax
mov    %rax,0x58(%rsp)
mov    0x1d4(%rsp),%eax
mov    %rax,0x50(%rsp)
mov    0x170(%rsp),%edi
shl    $0x8,%edi
add    0x174(%rsp),%edi
mov    0x178(%rsp),%r11d
shl    $0x8,%r11d
add    0x17c(%rsp),%r11d
shl    $0x10,%edi
add    %edi,%r11d
mov    0xd0(%rsp),%ebp
mov    0xd8(%rsp),%ebx
shl    $0x8,%ebp
add    0xd4(%rsp),%ebp
shl    $0x8,%ebx
add    0xdc(%rsp),%ebx
mov    0xe0(%rsp),%r13d
shl    $0x8,%r13d
add    0xe4(%rsp),%r13d
mov    %r14,%r15
mov    0xe8(%rsp),%r14d
shl    $0x8,%r14d
add    0xec(%rsp),%r14d
mov    0xf0(%rsp),%r10d
shl    $0x8,%r10d
add    0xf4(%rsp),%r10d
mov    0xf8(%rsp),%eax
shl    $0x8,%eax
add    0xfc(%rsp),%eax
mov    0x1d8(%rsp),%edi
mov    %rdi,0x48(%rsp)
mov    0x1dc(%rsp),%edi
mov    %rdi,0x40(%rsp)
mov    0x1e0(%rsp),%edi
mov    %rdi,0x38(%rsp)
mov    0x1e4(%rsp),%edi
mov    %rdi,0x30(%rsp)
mov    0x1e8(%rsp),%edi
mov    %rdi,0x28(%rsp)
mov    0x1ec(%rsp),%edi
mov    %rdi,0x20(%rsp)
mov    0x1f0(%rsp),%edi
mov    %rdi,0x18(%rsp)
mov    0x1f4(%rsp),%edi
mov    %rdi,0x10(%rsp)
mov    0x1f8(%rsp),%edi
mov    %rdi,0x8(%rsp)
mov    0x1fc(%rsp),%r12d
lea    0xc99(%rip),%rdi
push   0x68(%rsp)
push   %r15
push   %rax
push   %r10
push   %r14
push   %r13
push   %rbx
push   %rbp
push   %r11
push   %r12
push   0x58(%rsp)
push   0x68(%rsp)
push   0x78(%rsp)
push   0x88(%rsp)
push   0x98(%rsp)
push   0xa8(%rsp)
push   0xb8(%rsp)
push   0xc8(%rsp)
push   0xd8(%rsp)
push   0xe8(%rsp)
push   0xf8(%rsp)
push   0x108(%rsp)
call   1050 <printf@plt>
add    $0xb0,%rsp
mov    $0x1,%r15d
mov    %r15d,%eax
add    $0x288,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@EOF = global i32 0
@.str = [203 x i8] c"PNG_ICC_CHECKSUM(0x%8.8lx, 0x%8.8lx,\0A PNG_MD5(0x%2.2x%2.2x%2.2x%2.2x, 0x%2.2x%2.2x%2.2x%2.2x, 0x%2.2x%2.2x%2.2x%2.2x, 0x%2.2x%2.2x%2.2x%2.2x), %d,\0A \22%4.4d/%2.2d/%2.2d %2.2d:%2.2d:%2.2d\22, %lu, \22%s\22)\0A\00"
define i32 @read_one_file(i32* nocapture %0, i8* %1) {
%3 = alloca [132 x i32]
%4 = alloca i32
%5 = tail call i32 @adler32(i32 0, i32* null, i32 0)
%6 = tail call i32 @crc32(i32 0, i32* null, i32 0)
%7 = bitcast [132 x i32]* %3 to i8*
%8 = call i32 @getc(i32* %0)
%9 = bitcast i32* %4 to i8*
%10 = load i32, i32* @EOF
%11 = icmp eq i32 %8, %10
br i1 %11, label %29, label %12
12: ; preds = %2, %20
%13 = phi i64 [ %21, %20 ], [ 0, %2 ]
%14 = phi i32 [ %24, %20 ], [ %8, %2 ]
%15 = phi i32 [ %23, %20 ], [ %6, %2 ]
%16 = phi i32 [ %22, %20 ], [ %5, %2 ]
store i32 %14, i32* %4
%17 = icmp ult i64 %13, 528
br i1 %17, label %18, label %20
18: ; preds = %12
%19 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 %13
store i32 %14, i32* %19
br label %20
20: ; preds = %12, %18
%21 = add nuw i64 %13, 1
%22 = call i32 @adler32(i32 %16, i32* %4, i32 1)
%23 = call i32 @crc32(i32 %15, i32* %4, i32 1)
%24 = call i32 @getc(i32* %0)
%25 = load i32, i32* @EOF
%26 = icmp eq i32 %24, %25
br i1 %26, label %27, label %12
27: ; preds = %20
%28 = and i64 %21, 4294967295
br label %29
29: ; preds = %27, %2
%30 = phi i64 [ 0, %2 ], [ %28, %27 ]
%31 = phi i32 [ %5, %2 ], [ %22, %27 ]
%32 = phi i32 [ %6, %2 ], [ %23, %27 ]
%33 = call i64 @ferror(i32* %0)
%34 = icmp eq i64 %33, 0
br i1 %34, label %35, label %121
35: ; preds = %29
%36 = sext i32 %31 to i64
%37 = sext i32 %32 to i64
%38 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 84
%39 = load i32, i32* %38
%40 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 85
%41 = load i32, i32* %40
%42 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 86
%43 = load i32, i32* %42
%44 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 87
%45 = load i32, i32* %44
%46 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 88
%47 = load i32, i32* %46
%48 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 89
%49 = load i32, i32* %48
%50 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 90
%51 = load i32, i32* %50
%52 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 91
%53 = load i32, i32* %52
%54 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 92
%55 = load i32, i32* %54
%56 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 93
%57 = load i32, i32* %56
%58 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 94
%59 = load i32, i32* %58
%60 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 95
%61 = load i32, i32* %60
%62 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 96
%63 = load i32, i32* %62
%64 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 97
%65 = load i32, i32* %64
%66 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 98
%67 = load i32, i32* %66
%68 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 99
%69 = load i32, i32* %68
%70 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 64
%71 = load i32, i32* %70
%72 = shl nsw i32 %71, 8
%73 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 65
%74 = load i32, i32* %73
%75 = add nsw i32 %72, %74
%76 = shl nsw i32 %75, 16
%77 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 66
%78 = load i32, i32* %77
%79 = shl nsw i32 %78, 8
%80 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 67
%81 = load i32, i32* %80
%82 = add nsw i32 %79, %81
%83 = add nsw i32 %82, %76
%84 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 24
%85 = load i32, i32* %84
%86 = shl nsw i32 %85, 8
%87 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 25
%88 = load i32, i32* %87
%89 = add nsw i32 %86, %88
%90 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 26
%91 = load i32, i32* %90
%92 = shl nsw i32 %91, 8
%93 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 27
%94 = load i32, i32* %93
%95 = add nsw i32 %92, %94
%96 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 28
%97 = load i32, i32* %96
%98 = shl nsw i32 %97, 8
%99 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 29
%100 = load i32, i32* %99
%101 = add nsw i32 %98, %100
%102 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 30
%103 = load i32, i32* %102
%104 = shl nsw i32 %103, 8
%105 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 31
%106 = load i32, i32* %105
%107 = add nsw i32 %104, %106
%108 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 32
%109 = load i32, i32* %108
%110 = shl nsw i32 %109, 8
%111 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 33
%112 = load i32, i32* %111
%113 = add nsw i32 %110, %112
%114 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 34
%115 = load i32, i32* %114
%116 = shl nsw i32 %115, 8
%117 = getelementptr inbounds [132 x i32], [132 x i32]* %3, i64 0, i64 35
%118 = load i32, i32* %117
%119 = add nsw i32 %116, %118
%120 = call i32 @printf(i8* getelementptr inbounds ([203 x i8], [203 x i8]* @.str, i64 0, i64 0), i64 %36, i64 %37, i32 %39, i32 %41, i32 %43, i32 %45, i32 %47, i32 %49, i32 %51, i32 %53, i32 %55, i32 %57, i32 %59, i32 %61, i32 %63, i32 %65, i32 %67, i32 %69, i32 %83, i32 %89, i32 %95, i32 %101, i32 %107, i32 %113, i32 %119, i64 %30, i8* %1)
br label %121
121: ; preds = %29, %35
%122 = phi i32 [ 1, %35 ], [ 0, %29 ]
ret i32 %122
}