english(bp, n) char *bp;
{
  int ct[128], j, vow, freq, rare;
  int badpun = 0, punct = 0;
  if (n < 50)
    return (0);
  for (j = 0; j < 128; j++)
    ct[j] = 0;
  for (j = 0; j < n; j++) {
    if (bp[j] < 128)
      ct[bp[j] | 040]++;
    switch (bp[j]) {
    case '.':
    case ',':
    case ')':
    case '%':
    case ';':
    case ':':
    case '?':
      punct++;
      if (j < n - 1 && bp[j + 1] != ' ' && bp[j + 1] != '\n')
        badpun++;
    }
  }
  if (badpun * 5 > punct)
    return (0);
  vow = ct['a'] + ct['e'] + ct['i'] + ct['o'] + ct['u'];
  freq = ct['e'] + ct['t'] + ct['a'] + ct['i'] + ct['o'] + ct['n'];
  rare = ct['v'] + ct['j'] + ct['k'] + ct['q'] + ct['x'] + ct['z'];
  if (2 * ct[';'] > ct['e'])
    return (0);
  if ((ct['>'] + ct['<'] + ct['/']) > ct['e'])
    return (0);
  return (vow * 5 >= n - ct[' '] && freq >= 10 * rare);
}


x86 assembly (clang, -O0):
<english>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1c0,%rsp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
movl   $0x0,-0x234(%rbp)
movl   $0x0,-0x238(%rbp)
cmpl   $0x32,-0x14(%rbp)
jge    113c <english+0x3c>
movl   $0x0,-0x4(%rbp)
jmp    13e9 <english+0x2e9>
movl   $0x0,-0x224(%rbp)
cmpl   $0x80,-0x224(%rbp)
jge    117c <english+0x7c>
movslq -0x224(%rbp),%rax
movl   $0x0,-0x220(%rbp,%rax,4)
mov    -0x224(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x224(%rbp)
jmp    1146 <english+0x46>
movl   $0x0,-0x224(%rbp)
mov    -0x224(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    12e8 <english+0x1e8>
mov    -0x10(%rbp),%rax
movslq -0x224(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x80,%eax
jge    11d4 <english+0xd4>
mov    -0x10(%rbp),%rax
movslq -0x224(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
or     $0x20,%eax
cltq
mov    -0x220(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x220(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
movslq -0x224(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x23c(%rbp)
sub    $0x25,%eax
je     125e <english+0x15e>
jmp    11f7 <english+0xf7>
mov    -0x23c(%rbp),%eax
sub    $0x29,%eax
je     125e <english+0x15e>
jmp    120b <english+0x10b>
mov    -0x23c(%rbp),%eax
sub    $0x2c,%eax
je     125e <english+0x15e>
jmp    121f <english+0x11f>
mov    -0x23c(%rbp),%eax
sub    $0x2e,%eax
je     125e <english+0x15e>
jmp    1233 <english+0x133>
mov    -0x23c(%rbp),%eax
add    $0xffffffc6,%eax
sub    $0x2,%eax
jb     125e <english+0x15e>
jmp    124a <english+0x14a>
mov    -0x23c(%rbp),%eax
sub    $0x3f,%eax
jne    12cf <english+0x1cf>
jmp    125e <english+0x15e>
mov    -0x238(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x238(%rbp)
mov    -0x224(%rbp),%eax
mov    -0x14(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    12ca <english+0x1ca>
mov    -0x10(%rbp),%rax
mov    -0x224(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x20,%eax
je     12ca <english+0x1ca>
mov    -0x10(%rbp),%rax
mov    -0x224(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0xa,%eax
je     12ca <english+0x1ca>
mov    -0x234(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x234(%rbp)
jmp    12cf <english+0x1cf>
jmp    12d4 <english+0x1d4>
mov    -0x224(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x224(%rbp)
jmp    1186 <english+0x86>
imul   $0x5,-0x234(%rbp),%eax
cmp    -0x238(%rbp),%eax
jle    1307 <english+0x207>
movl   $0x0,-0x4(%rbp)
jmp    13e9 <english+0x2e9>
mov    -0x9c(%rbp),%eax
add    -0x8c(%rbp),%eax
add    -0x7c(%rbp),%eax
add    -0x64(%rbp),%eax
add    -0x4c(%rbp),%eax
mov    %eax,-0x228(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x50(%rbp),%eax
add    -0x9c(%rbp),%eax
add    -0x7c(%rbp),%eax
add    -0x64(%rbp),%eax
add    -0x68(%rbp),%eax
mov    %eax,-0x22c(%rbp)
mov    -0x48(%rbp),%eax
add    -0x78(%rbp),%eax
add    -0x74(%rbp),%eax
add    -0x5c(%rbp),%eax
add    -0x40(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x230(%rbp)
mov    -0x134(%rbp),%eax
shl    $0x1,%eax
cmp    -0x8c(%rbp),%eax
jle    1379 <english+0x279>
movl   $0x0,-0x4(%rbp)
jmp    13e9 <english+0x2e9>
mov    -0x128(%rbp),%eax
add    -0x130(%rbp),%eax
add    -0x164(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jle    13a3 <english+0x2a3>
movl   $0x0,-0x4(%rbp)
jmp    13e9 <english+0x2e9>
imul   $0x5,-0x228(%rbp),%ecx
mov    -0x14(%rbp),%edx
sub    -0x1a0(%rbp),%edx
xor    %eax,%eax
cmp    %edx,%ecx
mov    %al,-0x23d(%rbp)
jl     13db <english+0x2db>
mov    -0x22c(%rbp),%eax
imul   $0xa,-0x230(%rbp),%ecx
cmp    %ecx,%eax
setge  %al
mov    %al,-0x23d(%rbp)
mov    -0x23d(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x1c0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<english>:
push   %r15
push   %r14
push   %rbx
sub    $0x200,%rsp
xor    %eax,%eax
cmp    $0x32,%esi
jl     125c <english+0x14c>
mov    %esi,%r14d
mov    %rdi,%r15
mov    %rsp,%rdi
xor    %ebx,%ebx
mov    $0x200,%edx
xor    %esi,%esi
call   1030 <memset@plt>
lea    -0x1(%r14),%r10d
mov    %r14d,%ecx
movabs $0x8c00522000000000,%r9
xor    %edx,%edx
xor    %r8d,%r8d
jmp    1169 <english+0x59>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%rbx
cmp    %rbx,%rcx
je     11a7 <english+0x97>
movsbl (%r15,%rbx,1),%edi
movslq %edi,%rsi
mov    %rsi,%rax
or     $0x20,%rax
shl    $0x2,%rax
addl   $0x1,(%rsp,%rax,1)
cmp    $0x3f,%esi
ja     1160 <english+0x50>
bt     %rdi,%r9
jae    1160 <english+0x50>
add    $0x1,%edx
cmp    %r10,%rbx
jae    1160 <english+0x50>
movzbl 0x1(%r15,%rbx,1),%eax
cmp    $0xa,%al
je     1160 <english+0x50>
cmp    $0x20,%al
je     1160 <english+0x50>
add    $0x1,%r8d
jmp    1160 <english+0x50>
lea    (%r8,%r8,4),%ecx
xor    %eax,%eax
cmp    %edx,%ecx
jg     125c <english+0x14c>
mov    0xec(%rsp),%edx
mov    0x194(%rsp),%ecx
add    %edx,%edx
cmp    %ecx,%edx
jg     125c <english+0x14c>
mov    0xf0(%rsp),%edx
add    0xf8(%rsp),%edx
add    0xbc(%rsp),%edx
cmp    %ecx,%edx
jg     125c <english+0x14c>
add    0x184(%rsp),%ecx
add    0x1a4(%rsp),%ecx
add    0x1bc(%rsp),%ecx
mov    0x1d4(%rsp),%eax
add    %ecx,%eax
add    0x1d0(%rsp),%ecx
add    0x1b8(%rsp),%ecx
mov    0x1a8(%rsp),%edx
add    0x1d8(%rsp),%edx
add    0x1ac(%rsp),%edx
add    0x1c4(%rsp),%edx
add    0x1e0(%rsp),%edx
add    0x1e8(%rsp),%edx
lea    (%rax,%rax,4),%eax
sub    0x80(%rsp),%r14d
cmp    %r14d,%eax
setge  %al
add    %edx,%edx
lea    (%rdx,%rdx,4),%edx
cmp    %edx,%ecx
setge  %cl
and    %al,%cl
movzbl %cl,%eax
add    $0x200,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
define i32 @english(i8* %0, i32 %1) {
%3 = alloca i32
%4 = alloca i8*
%5 = alloca i32
%6 = alloca [128 x i32]
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
store i8* %0, i8** %4
store i32 %1, i32* %5
store i32 0, i32* %11
store i32 0, i32* %12
%13 = load i32, i32* %5
%14 = icmp slt i32 %13, 50
br i1 %14, label %15, label %16
15: ; preds = %2
store i32 0, i32* %3
br label %183
16: ; preds = %2
store i32 0, i32* %7
br label %17
17: ; preds = %24, %16
%18 = load i32, i32* %7
%19 = icmp slt i32 %18, 128
br i1 %19, label %20, label %27
20: ; preds = %17
%21 = load i32, i32* %7
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 %22
store i32 0, i32* %23
br label %24
24: ; preds = %20
%25 = load i32, i32* %7
%26 = add nsw i32 %25, 1
store i32 %26, i32* %7
br label %17
27: ; preds = %17
store i32 0, i32* %7
br label %28
28: ; preds = %89, %27
%29 = load i32, i32* %7
%30 = load i32, i32* %5
%31 = icmp slt i32 %29, %30
br i1 %31, label %32, label %92
32: ; preds = %28
%33 = load i8*, i8** %4
%34 = load i32, i32* %7
%35 = sext i32 %34 to i64
%36 = getelementptr inbounds i8, i8* %33, i64 %35
%37 = load i8, i8* %36
%38 = sext i8 %37 to i32
%39 = icmp slt i32 %38, 128
br i1 %39, label %40, label %52
40: ; preds = %32
%41 = load i8*, i8** %4
%42 = load i32, i32* %7
%43 = sext i32 %42 to i64
%44 = getelementptr inbounds i8, i8* %41, i64 %43
%45 = load i8, i8* %44
%46 = sext i8 %45 to i32
%47 = or i32 %46, 32
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 %48
%50 = load i32, i32* %49
%51 = add nsw i32 %50, 1
store i32 %51, i32* %49
br label %52
52: ; preds = %40, %32
%53 = load i8*, i8** %4
%54 = load i32, i32* %7
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds i8, i8* %53, i64 %55
%57 = load i8, i8* %56
%58 = sext i8 %57 to i32
switch i32 %58, label %88 [
i32 46, label %59
i32 44, label %59
i32 41, label %59
i32 37, label %59
i32 59, label %59
i32 58, label %59
i32 63, label %59
]
59: ; preds = %52, %52, %52, %52, %52, %52, %52
%60 = load i32, i32* %12
%61 = add nsw i32 %60, 1
store i32 %61, i32* %12
%62 = load i32, i32* %7
%63 = load i32, i32* %5
%64 = sub nsw i32 %63, 1
%65 = icmp slt i32 %62, %64
br i1 %65, label %66, label %87
66: ; preds = %59
%67 = load i8*, i8** %4
%68 = load i32, i32* %7
%69 = add nsw i32 %68, 1
%70 = sext i32 %69 to i64
%71 = getelementptr inbounds i8, i8* %67, i64 %70
%72 = load i8, i8* %71
%73 = sext i8 %72 to i32
%74 = icmp ne i32 %73, 32
br i1 %74, label %75, label %87
75: ; preds = %66
%76 = load i8*, i8** %4
%77 = load i32, i32* %7
%78 = add nsw i32 %77, 1
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds i8, i8* %76, i64 %79
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = icmp ne i32 %82, 10
br i1 %83, label %84, label %87
84: ; preds = %75
%85 = load i32, i32* %11
%86 = add nsw i32 %85, 1
store i32 %86, i32* %11
br label %87
87: ; preds = %84, %75, %66, %59
br label %88
88: ; preds = %87, %52
br label %89
89: ; preds = %88
%90 = load i32, i32* %7
%91 = add nsw i32 %90, 1
store i32 %91, i32* %7
br label %28
92: ; preds = %28
%93 = load i32, i32* %11
%94 = mul nsw i32 %93, 5
%95 = load i32, i32* %12
%96 = icmp sgt i32 %94, %95
br i1 %96, label %97, label %98
97: ; preds = %92
store i32 0, i32* %3
br label %183
98: ; preds = %92
%99 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 97
%100 = load i32, i32* %99
%101 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 101
%102 = load i32, i32* %101
%103 = add nsw i32 %100, %102
%104 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 105
%105 = load i32, i32* %104
%106 = add nsw i32 %103, %105
%107 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 111
%108 = load i32, i32* %107
%109 = add nsw i32 %106, %108
%110 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 117
%111 = load i32, i32* %110
%112 = add nsw i32 %109, %111
store i32 %112, i32* %8
%113 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 101
%114 = load i32, i32* %113
%115 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 116
%116 = load i32, i32* %115
%117 = add nsw i32 %114, %116
%118 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 97
%119 = load i32, i32* %118
%120 = add nsw i32 %117, %119
%121 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 105
%122 = load i32, i32* %121
%123 = add nsw i32 %120, %122
%124 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 111
%125 = load i32, i32* %124
%126 = add nsw i32 %123, %125
%127 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 110
%128 = load i32, i32* %127
%129 = add nsw i32 %126, %128
store i32 %129, i32* %9
%130 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 118
%131 = load i32, i32* %130
%132 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 106
%133 = load i32, i32* %132
%134 = add nsw i32 %131, %133
%135 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 107
%136 = load i32, i32* %135
%137 = add nsw i32 %134, %136
%138 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 113
%139 = load i32, i32* %138
%140 = add nsw i32 %137, %139
%141 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 120
%142 = load i32, i32* %141
%143 = add nsw i32 %140, %142
%144 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 122
%145 = load i32, i32* %144
%146 = add nsw i32 %143, %145
store i32 %146, i32* %10
%147 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 59
%148 = load i32, i32* %147
%149 = mul nsw i32 2, %148
%150 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 101
%151 = load i32, i32* %150
%152 = icmp sgt i32 %149, %151
br i1 %152, label %153, label %154
153: ; preds = %98
store i32 0, i32* %3
br label %183
154: ; preds = %98
%155 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 62
%156 = load i32, i32* %155
%157 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 60
%158 = load i32, i32* %157
%159 = add nsw i32 %156, %158
%160 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 47
%161 = load i32, i32* %160
%162 = add nsw i32 %159, %161
%163 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 101
%164 = load i32, i32* %163
%165 = icmp sgt i32 %162, %164
br i1 %165, label %166, label %167
166: ; preds = %154
store i32 0, i32* %3
br label %183
167: ; preds = %154
%168 = load i32, i32* %8
%169 = mul nsw i32 %168, 5
%170 = load i32, i32* %5
%171 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 32
%172 = load i32, i32* %171
%173 = sub nsw i32 %170, %172
%174 = icmp sge i32 %169, %173
br i1 %174, label %175, label %180
175: ; preds = %167
%176 = load i32, i32* %9
%177 = load i32, i32* %10
%178 = mul nsw i32 10, %177
%179 = icmp sge i32 %176, %178
br label %180
180: ; preds = %175, %167
%181 = phi i1 [ false, %167 ], [ %179, %175 ]
%182 = zext i1 %181 to i32
store i32 %182, i32* %3
br label %183
183: ; preds = %180, %166, %153, %97, %15
%184 = load i32, i32* %3
ret i32 %184
}

LLVM IR (-O2):
define i32 @english(i8* nocapture %0, i32 %1) {
%3 = alloca [128 x i32]
%4 = bitcast [128 x i32]* %3 to i8*
%5 = icmp slt i32 %1, 50
br i1 %5, label %101, label %6
6: ; preds = %2
%7 = add nsw i32 %1, -1
%8 = zext i32 %7 to i64
%9 = zext i32 %1 to i64
br label %10
10: ; preds = %6, %31
%11 = phi i64 [ 0, %6 ], [ %34, %31 ]
%12 = phi i32 [ 0, %6 ], [ %33, %31 ]
%13 = phi i32 [ 0, %6 ], [ %32, %31 ]
%14 = getelementptr inbounds i8, i8* %0, i64 %11
%15 = load i8, i8* %14
%16 = or i8 %15, 32
%17 = sext i8 %16 to i64
%18 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 %17
%19 = load i32, i32* %18
%20 = add nsw i32 %19, 1
store i32 %20, i32* %18
%21 = sext i8 %15 to i32
switch i32 %21, label %31 [
i32 46, label %22
i32 44, label %22
i32 41, label %22
i32 37, label %22
i32 59, label %22
i32 58, label %22
i32 63, label %22
]
22: ; preds = %10, %10, %10, %10, %10, %10, %10
%23 = add nsw i32 %12, 1
%24 = icmp ult i64 %11, %8
br i1 %24, label %25, label %31
25: ; preds = %22
%26 = add nuw nsw i64 %11, 1
%27 = getelementptr inbounds i8, i8* %0, i64 %26
%28 = load i8, i8* %27
switch i8 %28, label %29 [
i8 32, label %31
i8 10, label %31
]
29: ; preds = %25
%30 = add nsw i32 %13, 1
br label %31
31: ; preds = %25, %25, %10, %29, %22
%32 = phi i32 [ %13, %10 ], [ %30, %29 ], [ %13, %25 ], [ %13, %22 ], [ %13, %25 ]
%33 = phi i32 [ %12, %10 ], [ %23, %29 ], [ %23, %25 ], [ %23, %22 ], [ %23, %25 ]
%34 = add nuw nsw i64 %11, 1
%35 = icmp eq i64 %34, %9
br i1 %35, label %36, label %10
36: ; preds = %31
%37 = mul nsw i32 %32, 5
%38 = icmp sgt i32 %37, %33
br i1 %38, label %101, label %39
39: ; preds = %36
%40 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 97
%41 = load i32, i32* %40
%42 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 101
%43 = load i32, i32* %42
%44 = add i32 %43, %41
%45 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 105
%46 = load i32, i32* %45
%47 = add i32 %44, %46
%48 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 111
%49 = load i32, i32* %48
%50 = add i32 %47, %49
%51 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 117
%52 = load i32, i32* %51
%53 = add nsw i32 %50, %52
%54 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 116
%55 = load i32, i32* %54
%56 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 110
%57 = load i32, i32* %56
%58 = add i32 %50, %55
%59 = add i32 %58, %57
%60 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 118
%61 = load i32, i32* %60
%62 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 106
%63 = load i32, i32* %62
%64 = add nsw i32 %63, %61
%65 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 107
%66 = load i32, i32* %65
%67 = add nsw i32 %64, %66
%68 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 113
%69 = load i32, i32* %68
%70 = add nsw i32 %67, %69
%71 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 120
%72 = load i32, i32* %71
%73 = add nsw i32 %70, %72
%74 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 122
%75 = load i32, i32* %74
%76 = add nsw i32 %73, %75
%77 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 59
%78 = load i32, i32* %77
%79 = shl nsw i32 %78, 1
%80 = icmp sgt i32 %79, %43
br i1 %80, label %101, label %81
81: ; preds = %39
%82 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 62
%83 = load i32, i32* %82
%84 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 60
%85 = load i32, i32* %84
%86 = add nsw i32 %85, %83
%87 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 47
%88 = load i32, i32* %87
%89 = add nsw i32 %86, %88
%90 = icmp sgt i32 %89, %43
br i1 %90, label %101, label %91
91: ; preds = %81
%92 = mul nsw i32 %53, 5
%93 = getelementptr inbounds [128 x i32], [128 x i32]* %3, i64 0, i64 32
%94 = load i32, i32* %93
%95 = sub nsw i32 %1, %94
%96 = icmp sge i32 %92, %95
%97 = mul nsw i32 %76, 10
%98 = icmp sge i32 %59, %97
%99 = select i1 %96, i1 %98, i1 false
%100 = zext i1 %99 to i32
br label %101
101: ; preds = %81, %39, %36, %2, %91
%102 = phi i32 [ %100, %91 ], [ 0, %2 ], [ 0, %36 ], [ 0, %39 ], [ 0, %81 ]
ret i32 %102
}