int control_line_p(const unsigned char *line) {
  return (line[0] == '#' && line[1] == '#' &&
          ((line[2] == 'i' && line[3] == 'f' &&
            ((line[4] == ' ' || line[4] == '\t') ||
             (line[4] == 'd' && line[5] == 'e' && line[6] == 'f' &&
              (line[7] == ' ' || line[7] == '\t')) ||
             (line[4] == 'n' && line[5] == 'd' && line[6] == 'e' &&
              line[7] == 'f' && (line[8] == ' ' || line[8] == '\t')))) ||
           (line[2] == 'e' && line[3] == 'l' &&
            ((line[4] == 's' && line[5] == 'e' &&
              (line[6] == ' ' || line[6] == '\t' || line[6] == '\n')) ||
             (line[4] == 'i' && line[5] == 'f' &&
              (line[6] == ' ' || line[6] == '\t')))) ||
           (line[2] == 'e' && line[3] == 'n' && line[4] == 'd' &&
            line[5] == 'i' && line[6] == 'f' &&
            (line[7] == ' ' || line[7] == '\t' || line[7] == '\n'))));
}


x86 assembly (clang, -O0):
<control_line_p>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movzbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x23,%ecx
mov    %al,-0x9(%rbp)
jne    13e1 <control_line_p+0x2e1>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%ecx
xor    %eax,%eax
cmp    $0x23,%ecx
mov    %al,-0x9(%rbp)
jne    13e1 <control_line_p+0x2e1>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cmp    $0x69,%eax
jne    1250 <control_line_p+0x150>
mov    -0x8(%rbp),%rax
movzbl 0x3(%rax),%eax
cmp    $0x66,%eax
jne    1250 <control_line_p+0x150>
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%ecx
mov    $0x1,%al
cmp    $0x9,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
cmp    $0x64,%eax
jne    11e0 <control_line_p+0xe0>
mov    -0x8(%rbp),%rax
movzbl 0x5(%rax),%eax
cmp    $0x65,%eax
jne    11e0 <control_line_p+0xe0>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%eax
cmp    $0x66,%eax
jne    11e0 <control_line_p+0xe0>
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%ecx
mov    $0x1,%al
cmp    $0x9,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
cmp    $0x6e,%eax
jne    1250 <control_line_p+0x150>
mov    -0x8(%rbp),%rax
movzbl 0x5(%rax),%eax
cmp    $0x64,%eax
jne    1250 <control_line_p+0x150>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%eax
cmp    $0x65,%eax
jne    1250 <control_line_p+0x150>
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%eax
cmp    $0x66,%eax
jne    1250 <control_line_p+0x150>
mov    -0x8(%rbp),%rax
movzbl 0x8(%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x8(%rax),%ecx
mov    $0x1,%al
cmp    $0x9,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cmp    $0x65,%eax
jne    1324 <control_line_p+0x224>
mov    -0x8(%rbp),%rax
movzbl 0x3(%rax),%eax
cmp    $0x6c,%eax
jne    1324 <control_line_p+0x224>
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
cmp    $0x73,%eax
jne    12d6 <control_line_p+0x1d6>
mov    -0x8(%rbp),%rax
movzbl 0x5(%rax),%eax
cmp    $0x65,%eax
jne    12d6 <control_line_p+0x1d6>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%ecx
mov    $0x1,%al
cmp    $0x9,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%ecx
mov    $0x1,%al
cmp    $0xa,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%eax
cmp    $0x69,%eax
jne    1324 <control_line_p+0x224>
mov    -0x8(%rbp),%rax
movzbl 0x5(%rax),%eax
cmp    $0x66,%eax
jne    1324 <control_line_p+0x224>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%ecx
mov    $0x1,%al
cmp    $0x9,%ecx
mov    %al,-0xa(%rbp)
je     13db <control_line_p+0x2db>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%ecx
xor    %eax,%eax
cmp    $0x65,%ecx
mov    %al,-0xb(%rbp)
jne    13d5 <control_line_p+0x2d5>
mov    -0x8(%rbp),%rax
movzbl 0x3(%rax),%ecx
xor    %eax,%eax
cmp    $0x6e,%ecx
mov    %al,-0xb(%rbp)
jne    13d5 <control_line_p+0x2d5>
mov    -0x8(%rbp),%rax
movzbl 0x4(%rax),%ecx
xor    %eax,%eax
cmp    $0x64,%ecx
mov    %al,-0xb(%rbp)
jne    13d5 <control_line_p+0x2d5>
mov    -0x8(%rbp),%rax
movzbl 0x5(%rax),%ecx
xor    %eax,%eax
cmp    $0x69,%ecx
mov    %al,-0xb(%rbp)
jne    13d5 <control_line_p+0x2d5>
mov    -0x8(%rbp),%rax
movzbl 0x6(%rax),%ecx
xor    %eax,%eax
cmp    $0x66,%ecx
mov    %al,-0xb(%rbp)
jne    13d5 <control_line_p+0x2d5>
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0xc(%rbp)
je     13cf <control_line_p+0x2cf>
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%ecx
mov    $0x1,%al
cmp    $0x9,%ecx
mov    %al,-0xc(%rbp)
je     13cf <control_line_p+0x2cf>
mov    -0x8(%rbp),%rax
movzbl 0x7(%rax),%eax
cmp    $0xa,%eax
sete   %al
mov    %al,-0xc(%rbp)
mov    -0xc(%rbp),%al
mov    %al,-0xb(%rbp)
mov    -0xb(%rbp),%al
mov    %al,-0xa(%rbp)
mov    -0xa(%rbp),%al
mov    %al,-0x9(%rbp)
mov    -0x9(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<control_line_p>:
cmpb   $0x23,(%rdi)
jne    11e6 <control_line_p+0xe6>
cmpb   $0x23,0x1(%rdi)
jne    11e6 <control_line_p+0xe6>
mov    0x2(%rdi),%al
cmp    $0x65,%al
je     1145 <control_line_p+0x45>
cmp    $0x69,%al
jne    11e6 <control_line_p+0xe6>
cmpb   $0x66,0x3(%rdi)
jne    11e6 <control_line_p+0xe6>
mov    0x4(%rdi),%cl
cmp    $0x63,%cl
jg     119b <control_line_p+0x9b>
mov    $0x1,%al
cmp    $0x9,%cl
je     1197 <control_line_p+0x97>
cmp    $0x20,%cl
je     1197 <control_line_p+0x97>
jmp    11e6 <control_line_p+0xe6>
mov    0x3(%rdi),%al
cmp    $0x6e,%al
je     116e <control_line_p+0x6e>
cmp    $0x6c,%al
jne    11e6 <control_line_p+0xe6>
mov    0x4(%rdi),%al
cmp    $0x69,%al
je     11b6 <control_line_p+0xb6>
cmp    $0x73,%al
jne    11e6 <control_line_p+0xe6>
cmpb   $0x65,0x5(%rdi)
jne    11e6 <control_line_p+0xe6>
mov    0x6(%rdi),%al
jmp    1183 <control_line_p+0x83>
cmpb   $0x64,0x4(%rdi)
jne    11e6 <control_line_p+0xe6>
cmpb   $0x69,0x5(%rdi)
jne    11e6 <control_line_p+0xe6>
cmpb   $0x66,0x6(%rdi)
jne    11e6 <control_line_p+0xe6>
mov    0x7(%rdi),%al
add    $0xf7,%al
cmp    $0x18,%al
jae    11e6 <control_line_p+0xe6>
movzbl %al,%eax
mov    $0x800003,%ecx
bt     %eax,%ecx
setb   %al
movzbl %al,%eax
ret
cmp    $0x6e,%cl
je     11cf <control_line_p+0xcf>
cmp    $0x64,%cl
jne    11e6 <control_line_p+0xe6>
cmpb   $0x65,0x5(%rdi)
jne    11e6 <control_line_p+0xe6>
cmpb   $0x66,0x6(%rdi)
jne    11e6 <control_line_p+0xe6>
mov    0x7(%rdi),%al
jmp    11bf <control_line_p+0xbf>
cmpb   $0x66,0x5(%rdi)
jne    11e6 <control_line_p+0xe6>
mov    0x6(%rdi),%al
cmp    $0x20,%al
sete   %cl
cmp    $0x9,%al
sete   %al
or     %cl,%al
movzbl %al,%eax
ret
cmpb   $0x64,0x5(%rdi)
jne    11e6 <control_line_p+0xe6>
cmpb   $0x65,0x6(%rdi)
jne    11e6 <control_line_p+0xe6>
cmpb   $0x66,0x7(%rdi)
jne    11e6 <control_line_p+0xe6>
mov    0x8(%rdi),%al
jmp    11bf <control_line_p+0xbf>
xor    %eax,%eax
movzbl %al,%eax
ret

LLVM IR (-O0):
define i32 @control_line_p(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = getelementptr inbounds i8, i8* %3, i64 0
%5 = load i8, i8* %4
%6 = zext i8 %5 to i32
%7 = icmp eq i32 %6, 35
br i1 %7, label %8, label %224
8: ; preds = %1
%9 = load i8*, i8** %2
%10 = getelementptr inbounds i8, i8* %9, i64 1
%11 = load i8, i8* %10
%12 = zext i8 %11 to i32
%13 = icmp eq i32 %12, 35
br i1 %13, label %14, label %224
14: ; preds = %8
%15 = load i8*, i8** %2
%16 = getelementptr inbounds i8, i8* %15, i64 2
%17 = load i8, i8* %16
%18 = zext i8 %17 to i32
%19 = icmp eq i32 %18, 105
br i1 %19, label %20, label %104
20: ; preds = %14
%21 = load i8*, i8** %2
%22 = getelementptr inbounds i8, i8* %21, i64 3
%23 = load i8, i8* %22
%24 = zext i8 %23 to i32
%25 = icmp eq i32 %24, 102
br i1 %25, label %26, label %104
26: ; preds = %20
%27 = load i8*, i8** %2
%28 = getelementptr inbounds i8, i8* %27, i64 4
%29 = load i8, i8* %28
%30 = zext i8 %29 to i32
%31 = icmp eq i32 %30, 32
br i1 %31, label %222, label %32
32: ; preds = %26
%33 = load i8*, i8** %2
%34 = getelementptr inbounds i8, i8* %33, i64 4
%35 = load i8, i8* %34
%36 = zext i8 %35 to i32
%37 = icmp eq i32 %36, 9
br i1 %37, label %222, label %38
38: ; preds = %32
%39 = load i8*, i8** %2
%40 = getelementptr inbounds i8, i8* %39, i64 4
%41 = load i8, i8* %40
%42 = zext i8 %41 to i32
%43 = icmp eq i32 %42, 100
br i1 %43, label %44, label %68
44: ; preds = %38
%45 = load i8*, i8** %2
%46 = getelementptr inbounds i8, i8* %45, i64 5
%47 = load i8, i8* %46
%48 = zext i8 %47 to i32
%49 = icmp eq i32 %48, 101
br i1 %49, label %50, label %68
50: ; preds = %44
%51 = load i8*, i8** %2
%52 = getelementptr inbounds i8, i8* %51, i64 6
%53 = load i8, i8* %52
%54 = zext i8 %53 to i32
%55 = icmp eq i32 %54, 102
br i1 %55, label %56, label %68
56: ; preds = %50
%57 = load i8*, i8** %2
%58 = getelementptr inbounds i8, i8* %57, i64 7
%59 = load i8, i8* %58
%60 = zext i8 %59 to i32
%61 = icmp eq i32 %60, 32
br i1 %61, label %222, label %62
62: ; preds = %56
%63 = load i8*, i8** %2
%64 = getelementptr inbounds i8, i8* %63, i64 7
%65 = load i8, i8* %64
%66 = zext i8 %65 to i32
%67 = icmp eq i32 %66, 9
br i1 %67, label %222, label %68
68: ; preds = %62, %50, %44, %38
%69 = load i8*, i8** %2
%70 = getelementptr inbounds i8, i8* %69, i64 4
%71 = load i8, i8* %70
%72 = zext i8 %71 to i32
%73 = icmp eq i32 %72, 110
br i1 %73, label %74, label %104
74: ; preds = %68
%75 = load i8*, i8** %2
%76 = getelementptr inbounds i8, i8* %75, i64 5
%77 = load i8, i8* %76
%78 = zext i8 %77 to i32
%79 = icmp eq i32 %78, 100
br i1 %79, label %80, label %104
80: ; preds = %74
%81 = load i8*, i8** %2
%82 = getelementptr inbounds i8, i8* %81, i64 6
%83 = load i8, i8* %82
%84 = zext i8 %83 to i32
%85 = icmp eq i32 %84, 101
br i1 %85, label %86, label %104
86: ; preds = %80
%87 = load i8*, i8** %2
%88 = getelementptr inbounds i8, i8* %87, i64 7
%89 = load i8, i8* %88
%90 = zext i8 %89 to i32
%91 = icmp eq i32 %90, 102
br i1 %91, label %92, label %104
92: ; preds = %86
%93 = load i8*, i8** %2
%94 = getelementptr inbounds i8, i8* %93, i64 8
%95 = load i8, i8* %94
%96 = zext i8 %95 to i32
%97 = icmp eq i32 %96, 32
br i1 %97, label %222, label %98
98: ; preds = %92
%99 = load i8*, i8** %2
%100 = getelementptr inbounds i8, i8* %99, i64 8
%101 = load i8, i8* %100
%102 = zext i8 %101 to i32
%103 = icmp eq i32 %102, 9
br i1 %103, label %222, label %104
104: ; preds = %98, %86, %80, %74, %68, %20, %14
%105 = load i8*, i8** %2
%106 = getelementptr inbounds i8, i8* %105, i64 2
%107 = load i8, i8* %106
%108 = zext i8 %107 to i32
%109 = icmp eq i32 %108, 101
br i1 %109, label %110, label %170
110: ; preds = %104
%111 = load i8*, i8** %2
%112 = getelementptr inbounds i8, i8* %111, i64 3
%113 = load i8, i8* %112
%114 = zext i8 %113 to i32
%115 = icmp eq i32 %114, 108
br i1 %115, label %116, label %170
116: ; preds = %110
%117 = load i8*, i8** %2
%118 = getelementptr inbounds i8, i8* %117, i64 4
%119 = load i8, i8* %118
%120 = zext i8 %119 to i32
%121 = icmp eq i32 %120, 115
br i1 %121, label %122, label %146
122: ; preds = %116
%123 = load i8*, i8** %2
%124 = getelementptr inbounds i8, i8* %123, i64 5
%125 = load i8, i8* %124
%126 = zext i8 %125 to i32
%127 = icmp eq i32 %126, 101
br i1 %127, label %128, label %146
128: ; preds = %122
%129 = load i8*, i8** %2
%130 = getelementptr inbounds i8, i8* %129, i64 6
%131 = load i8, i8* %130
%132 = zext i8 %131 to i32
%133 = icmp eq i32 %132, 32
br i1 %133, label %222, label %134
134: ; preds = %128
%135 = load i8*, i8** %2
%136 = getelementptr inbounds i8, i8* %135, i64 6
%137 = load i8, i8* %136
%138 = zext i8 %137 to i32
%139 = icmp eq i32 %138, 9
br i1 %139, label %222, label %140
140: ; preds = %134
%141 = load i8*, i8** %2
%142 = getelementptr inbounds i8, i8* %141, i64 6
%143 = load i8, i8* %142
%144 = zext i8 %143 to i32
%145 = icmp eq i32 %144, 10
br i1 %145, label %222, label %146
146: ; preds = %140, %122, %116
%147 = load i8*, i8** %2
%148 = getelementptr inbounds i8, i8* %147, i64 4
%149 = load i8, i8* %148
%150 = zext i8 %149 to i32
%151 = icmp eq i32 %150, 105
br i1 %151, label %152, label %170
152: ; preds = %146
%153 = load i8*, i8** %2
%154 = getelementptr inbounds i8, i8* %153, i64 5
%155 = load i8, i8* %154
%156 = zext i8 %155 to i32
%157 = icmp eq i32 %156, 102
br i1 %157, label %158, label %170
158: ; preds = %152
%159 = load i8*, i8** %2
%160 = getelementptr inbounds i8, i8* %159, i64 6
%161 = load i8, i8* %160
%162 = zext i8 %161 to i32
%163 = icmp eq i32 %162, 32
br i1 %163, label %222, label %164
164: ; preds = %158
%165 = load i8*, i8** %2
%166 = getelementptr inbounds i8, i8* %165, i64 6
%167 = load i8, i8* %166
%168 = zext i8 %167 to i32
%169 = icmp eq i32 %168, 9
br i1 %169, label %222, label %170
170: ; preds = %164, %152, %146, %110, %104
%171 = load i8*, i8** %2
%172 = getelementptr inbounds i8, i8* %171, i64 2
%173 = load i8, i8* %172
%174 = zext i8 %173 to i32
%175 = icmp eq i32 %174, 101
br i1 %175, label %176, label %220
176: ; preds = %170
%177 = load i8*, i8** %2
%178 = getelementptr inbounds i8, i8* %177, i64 3
%179 = load i8, i8* %178
%180 = zext i8 %179 to i32
%181 = icmp eq i32 %180, 110
br i1 %181, label %182, label %220
182: ; preds = %176
%183 = load i8*, i8** %2
%184 = getelementptr inbounds i8, i8* %183, i64 4
%185 = load i8, i8* %184
%186 = zext i8 %185 to i32
%187 = icmp eq i32 %186, 100
br i1 %187, label %188, label %220
188: ; preds = %182
%189 = load i8*, i8** %2
%190 = getelementptr inbounds i8, i8* %189, i64 5
%191 = load i8, i8* %190
%192 = zext i8 %191 to i32
%193 = icmp eq i32 %192, 105
br i1 %193, label %194, label %220
194: ; preds = %188
%195 = load i8*, i8** %2
%196 = getelementptr inbounds i8, i8* %195, i64 6
%197 = load i8, i8* %196
%198 = zext i8 %197 to i32
%199 = icmp eq i32 %198, 102
br i1 %199, label %200, label %220
200: ; preds = %194
%201 = load i8*, i8** %2
%202 = getelementptr inbounds i8, i8* %201, i64 7
%203 = load i8, i8* %202
%204 = zext i8 %203 to i32
%205 = icmp eq i32 %204, 32
br i1 %205, label %218, label %206
206: ; preds = %200
%207 = load i8*, i8** %2
%208 = getelementptr inbounds i8, i8* %207, i64 7
%209 = load i8, i8* %208
%210 = zext i8 %209 to i32
%211 = icmp eq i32 %210, 9
br i1 %211, label %218, label %212
212: ; preds = %206
%213 = load i8*, i8** %2
%214 = getelementptr inbounds i8, i8* %213, i64 7
%215 = load i8, i8* %214
%216 = zext i8 %215 to i32
%217 = icmp eq i32 %216, 10
br label %218
218: ; preds = %212, %206, %200
%219 = phi i1 [ true, %206 ], [ true, %200 ], [ %217, %212 ]
br label %220
220: ; preds = %218, %194, %188, %182, %176, %170
%221 = phi i1 [ false, %194 ], [ false, %188 ], [ false, %182 ], [ false, %176 ], [ false, %170 ], [ %219, %218 ]
br label %222
222: ; preds = %220, %164, %158, %140, %134, %128, %98, %92, %62, %56, %32, %26
%223 = phi i1 [ true, %164 ], [ true, %158 ], [ true, %140 ], [ true, %134 ], [ true, %128 ], [ true, %98 ], [ true, %92 ], [ true, %62 ], [ true, %56 ], [ true, %32 ], [ true, %26 ], [ %221, %220 ]
br label %224
224: ; preds = %222, %8, %1
%225 = phi i1 [ false, %8 ], [ false, %1 ], [ %223, %222 ]
%226 = zext i1 %225 to i32
ret i32 %226
}

LLVM IR (-O2):
define i32 @control_line_p(i8* %0) {
%2 = load i8, i8* %0
%3 = icmp eq i8 %2, 35
br i1 %3, label %4, label %103
4: ; preds = %1
%5 = getelementptr inbounds i8, i8* %0, i64 1
%6 = load i8, i8* %5
%7 = icmp eq i8 %6, 35
br i1 %7, label %8, label %103
8: ; preds = %4
%9 = getelementptr inbounds i8, i8* %0, i64 2
%10 = load i8, i8* %9
switch i8 %10, label %103 [
i8 105, label %11
i8 101, label %50
]
11: ; preds = %8
%12 = getelementptr inbounds i8, i8* %0, i64 3
%13 = load i8, i8* %12
%14 = icmp eq i8 %13, 102
br i1 %14, label %15, label %75
15: ; preds = %11
%16 = getelementptr inbounds i8, i8* %0, i64 4
%17 = load i8, i8* %16
switch i8 %17, label %75 [
i8 32, label %103
i8 9, label %103
i8 100, label %18
i8 110, label %32
]
18: ; preds = %15
%19 = getelementptr inbounds i8, i8* %0, i64 5
%20 = load i8, i8* %19
%21 = icmp eq i8 %20, 101
br i1 %21, label %22, label %75
22: ; preds = %18
%23 = getelementptr inbounds i8, i8* %0, i64 6
%24 = load i8, i8* %23
%25 = icmp eq i8 %24, 102
br i1 %25, label %26, label %75
26: ; preds = %22
%27 = getelementptr inbounds i8, i8* %0, i64 7
%28 = load i8, i8* %27
%29 = icmp eq i8 %28, 32
%30 = icmp eq i8 %28, 9
%31 = or i1 %29, %30
br label %103
32: ; preds = %15
%33 = getelementptr inbounds i8, i8* %0, i64 5
%34 = load i8, i8* %33
%35 = icmp eq i8 %34, 100
br i1 %35, label %36, label %75
36: ; preds = %32
%37 = getelementptr inbounds i8, i8* %0, i64 6
%38 = load i8, i8* %37
%39 = icmp eq i8 %38, 101
br i1 %39, label %40, label %75
40: ; preds = %36
%41 = getelementptr inbounds i8, i8* %0, i64 7
%42 = load i8, i8* %41
%43 = icmp eq i8 %42, 102
br i1 %43, label %44, label %75
44: ; preds = %40
%45 = getelementptr inbounds i8, i8* %0, i64 8
%46 = load i8, i8* %45
%47 = icmp eq i8 %46, 32
%48 = icmp eq i8 %46, 9
%49 = or i1 %47, %48
br label %103
50: ; preds = %8
%51 = getelementptr inbounds i8, i8* %0, i64 3
%52 = load i8, i8* %51
switch i8 %52, label %103 [
i8 108, label %53
i8 110, label %76
]
53: ; preds = %50
%54 = getelementptr inbounds i8, i8* %0, i64 4
%55 = load i8, i8* %54
switch i8 %55, label %103 [
i8 115, label %56
i8 105, label %65
]
56: ; preds = %53
%57 = getelementptr inbounds i8, i8* %0, i64 5
%58 = load i8, i8* %57
%59 = icmp eq i8 %58, 101
br i1 %59, label %60, label %103
60: ; preds = %56
%61 = getelementptr inbounds i8, i8* %0, i64 6
%62 = load i8, i8* %61
%63 = add i8 %62, -9
%64 = icmp ult i8 %63, 24
br i1 %64, label %93, label %103
65: ; preds = %53
%66 = getelementptr inbounds i8, i8* %0, i64 5
%67 = load i8, i8* %66
%68 = icmp eq i8 %67, 102
br i1 %68, label %69, label %103
69: ; preds = %65
%70 = getelementptr inbounds i8, i8* %0, i64 6
%71 = load i8, i8* %70
%72 = icmp eq i8 %71, 32
%73 = icmp eq i8 %71, 9
%74 = or i1 %72, %73
br label %103
75: ; preds = %15, %18, %22, %40, %36, %32, %11
br label %103
76: ; preds = %50
%77 = getelementptr inbounds i8, i8* %0, i64 4
%78 = load i8, i8* %77
%79 = icmp eq i8 %78, 100
br i1 %79, label %80, label %103
80: ; preds = %76
%81 = getelementptr inbounds i8, i8* %0, i64 5
%82 = load i8, i8* %81
%83 = icmp eq i8 %82, 105
br i1 %83, label %84, label %103
84: ; preds = %80
%85 = getelementptr inbounds i8, i8* %0, i64 6
%86 = load i8, i8* %85
%87 = icmp eq i8 %86, 102
br i1 %87, label %88, label %103
88: ; preds = %84
%89 = getelementptr inbounds i8, i8* %0, i64 7
%90 = load i8, i8* %89
%91 = add i8 %90, -9
%92 = icmp ult i8 %91, 24
br i1 %92, label %98, label %103
93: ; preds = %60
%94 = zext i8 %63 to i24
%95 = lshr i24 -8388605, %94
%96 = and i24 %95, 1
%97 = icmp ne i24 %96, 0
br label %103
98: ; preds = %88
%99 = zext i8 %91 to i24
%100 = lshr i24 -8388605, %99
%101 = and i24 %100, 1
%102 = icmp ne i24 %101, 0
br label %103
103: ; preds = %88, %98, %65, %56, %53, %60, %93, %50, %69, %8, %44, %15, %15, %26, %75, %84, %80, %76, %4, %1
%104 = phi i1 [ false, %4 ], [ false, %1 ], [ true, %15 ], [ false, %84 ], [ false, %80 ], [ false, %76 ], [ false, %75 ], [ true, %15 ], [ %31, %26 ], [ %49, %44 ], [ false, %8 ], [ %74, %69 ], [ false, %50 ], [ %97, %93 ], [ false, %60 ], [ false, %53 ], [ false, %56 ], [ false, %65 ], [ %102, %98 ], [ false, %88 ]
%105 = zext i1 %104 to i32
ret i32 %105
}