#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 */
extern int _scan_setext_header_line(const unsigned char *p) {
  const unsigned char *marker = NULL;
  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
    };
    yych = *p;
    if (yych <= ',') {
      if (yych != '\n')
        goto yy1196;
    } else {
      if (yych <= '-')
        goto yy1195;
      if (yych == '=')
        goto yy1194;
      goto yy1196;
    }
  yy1193 : { return 0; }
  yy1194:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy1208;
    }
    if (yych == '\n')
      goto yy1206;
    if (yych == ' ')
      goto yy1204;
    goto yy1193;
  yy1195:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 32) {
      goto yy1197;
    }
    if (yych == '\n')
      goto yy1200;
    if (yych == '-')
      goto yy1202;
    goto yy1193;
  yy1196:
    yych = *++p;
    goto yy1193;
  yy1197:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1197;
    }
    if (yych == '\n')
      goto yy1200;
  yy1199:
    p = marker;
    goto yy1193;
  yy1200:
    ++p;
    { return 2; }
  yy1202:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1197;
    }
    if (yych == '\n')
      goto yy1200;
    if (yych == '-')
      goto yy1202;
    goto yy1199;
  yy1204:
    ++p;
    yych = *p;
    if (yych == '\n')
      goto yy1206;
    if (yych == ' ')
      goto yy1204;
    goto yy1199;
  yy1206:
    ++p;
    { return 1; }
  yy1208:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1208;
    }
    if (yych == '\n')
      goto yy1206;
    if (yych == ' ')
      goto yy1204;
    goto yy1199;
  }
}


x86 assembly (clang, -O0):
<_scan_setext_header_line>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
movq   $0x0,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
cmp    $0x2c,%eax
jg     113d <_scan_setext_header_line+0x3d>
movzbl -0x19(%rbp),%eax
cmp    $0xa,%eax
je     1138 <_scan_setext_header_line+0x38>
jmp    1249 <_scan_setext_header_line+0x149>
jmp    1166 <_scan_setext_header_line+0x66>
movzbl -0x19(%rbp),%eax
cmp    $0x2d,%eax
jg     114f <_scan_setext_header_line+0x4f>
jmp    11e1 <_scan_setext_header_line+0xe1>
movzbl -0x19(%rbp),%eax
cmp    $0x3d,%eax
jne    1161 <_scan_setext_header_line+0x61>
jmp    1177 <_scan_setext_header_line+0x77>
jmp    1249 <_scan_setext_header_line+0x149>
jmp    116b <_scan_setext_header_line+0x6b>
movl   $0x0,-0x4(%rbp)
jmp    13fa <_scan_setext_header_line+0x2fa>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    %rcx,-0x18(%rbp)
mov    0x1(%rax),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
add    $0x0,%eax
movslq %eax,%rcx
lea    0xe5f(%rip),%rax
movzbl (%rax,%rcx,1),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     11b8 <_scan_setext_header_line+0xb8>
jmp    1394 <_scan_setext_header_line+0x294>
movzbl -0x19(%rbp),%eax
cmp    $0xa,%eax
jne    11ca <_scan_setext_header_line+0xca>
jmp    137c <_scan_setext_header_line+0x27c>
movzbl -0x19(%rbp),%eax
cmp    $0x20,%eax
jne    11dc <_scan_setext_header_line+0xdc>
jmp    133e <_scan_setext_header_line+0x23e>
jmp    116b <_scan_setext_header_line+0x6b>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    %rcx,-0x18(%rbp)
mov    0x1(%rax),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
add    $0x0,%eax
movslq %eax,%rcx
lea    0xdf5(%rip),%rax
movzbl (%rax,%rcx,1),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     1220 <_scan_setext_header_line+0x120>
jmp    1263 <_scan_setext_header_line+0x163>
movzbl -0x19(%rbp),%eax
cmp    $0xa,%eax
jne    1232 <_scan_setext_header_line+0x132>
jmp    12c2 <_scan_setext_header_line+0x1c2>
movzbl -0x19(%rbp),%eax
cmp    $0x2d,%eax
jne    1244 <_scan_setext_header_line+0x144>
jmp    12da <_scan_setext_header_line+0x1da>
jmp    116b <_scan_setext_header_line+0x6b>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    0x1(%rax),%al
mov    %al,-0x19(%rbp)
jmp    116b <_scan_setext_header_line+0x6b>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
add    $0x0,%eax
movslq %eax,%rcx
lea    0xd77(%rip),%rax
movzbl (%rax,%rcx,1),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     129e <_scan_setext_header_line+0x19e>
jmp    1263 <_scan_setext_header_line+0x163>
movzbl -0x19(%rbp),%eax
cmp    $0xa,%eax
jne    12b0 <_scan_setext_header_line+0x1b0>
jmp    12c2 <_scan_setext_header_line+0x1c2>
jmp    12b5 <_scan_setext_header_line+0x1b5>
mov    -0x18(%rbp),%rax
mov    %rax,-0x10(%rbp)
jmp    116b <_scan_setext_header_line+0x6b>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
movl   $0x2,-0x4(%rbp)
jmp    13fa <_scan_setext_header_line+0x2fa>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
add    $0x0,%eax
movslq %eax,%rcx
lea    0xd00(%rip),%rax
movzbl (%rax,%rcx,1),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     1315 <_scan_setext_header_line+0x215>
jmp    1263 <_scan_setext_header_line+0x163>
movzbl -0x19(%rbp),%eax
cmp    $0xa,%eax
jne    1327 <_scan_setext_header_line+0x227>
jmp    12c2 <_scan_setext_header_line+0x1c2>
movzbl -0x19(%rbp),%eax
cmp    $0x2d,%eax
jne    1339 <_scan_setext_header_line+0x239>
jmp    12da <_scan_setext_header_line+0x1da>
jmp    12b5 <_scan_setext_header_line+0x1b5>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
cmp    $0xa,%eax
jne    1365 <_scan_setext_header_line+0x265>
jmp    137c <_scan_setext_header_line+0x27c>
movzbl -0x19(%rbp),%eax
cmp    $0x20,%eax
jne    1377 <_scan_setext_header_line+0x277>
jmp    133e <_scan_setext_header_line+0x23e>
jmp    12b5 <_scan_setext_header_line+0x1b5>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
movl   $0x1,-0x4(%rbp)
jmp    13fa <_scan_setext_header_line+0x2fa>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
add    $0x0,%eax
movslq %eax,%rcx
lea    0xc46(%rip),%rax
movzbl (%rax,%rcx,1),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     13d1 <_scan_setext_header_line+0x2d1>
jmp    1394 <_scan_setext_header_line+0x294>
movzbl -0x19(%rbp),%eax
cmp    $0xa,%eax
jne    13e3 <_scan_setext_header_line+0x2e3>
jmp    137c <_scan_setext_header_line+0x27c>
movzbl -0x19(%rbp),%eax
cmp    $0x20,%eax
jne    13f5 <_scan_setext_header_line+0x2f5>
jmp    133e <_scan_setext_header_line+0x23e>
jmp    12b5 <_scan_setext_header_line+0x1b5>
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<_scan_setext_header_line>:
mov    (%rdi),%cl
xor    %eax,%eax
cmp    $0x2d,%cl
jb     1166 <_scan_setext_header_line+0x66>
je     1167 <_scan_setext_header_line+0x67>
cmp    $0x3d,%cl
jne    1166 <_scan_setext_header_line+0x66>
movzbl 0x1(%rdi),%edx
add    $0x1,%rdi
lea    0xee1(%rip),%rcx
cmpb   $0x0,(%rdx,%rcx,1)
jns    113e <_scan_setext_header_line+0x3e>
cs nopw 0x0(%rax,%rax,1)
nop
movzbl 0x1(%rdi),%edx
add    $0x1,%rdi
cmpb   $0x0,(%rdx,%rcx,1)
js     1130 <_scan_setext_header_line+0x30>
cmp    $0xa,%dl
je     1161 <_scan_setext_header_line+0x61>
cmp    $0x20,%dl
jne    1166 <_scan_setext_header_line+0x66>
add    $0x1,%rdi
nopl   0x0(%rax)
movzbl (%rdi),%ecx
add    $0x1,%rdi
cmp    $0x20,%cl
je     1150 <_scan_setext_header_line+0x50>
cmp    $0xa,%cl
jne    1166 <_scan_setext_header_line+0x66>
mov    $0x1,%eax
ret
movzbl 0x1(%rdi),%edx
lea    0xe8e(%rip),%rcx
testb  $0x20,(%rdx,%rcx,1)
jne    11a4 <_scan_setext_header_line+0xa4>
cmp    $0xa,%dl
je     11c2 <_scan_setext_header_line+0xc2>
cmp    $0x2d,%dl
jne    1166 <_scan_setext_header_line+0x66>
add    $0x2,%rdi
cs nopw 0x0(%rax,%rax,1)
movzbl (%rdi),%edx
testb  $0x20,(%rdx,%rcx,1)
jne    11a8 <_scan_setext_header_line+0xa8>
add    $0x1,%rdi
cmp    $0x2d,%dl
je     1190 <_scan_setext_header_line+0x90>
jmp    11bd <_scan_setext_header_line+0xbd>
add    $0x1,%rdi
add    $0x1,%rdi
nopl   0x0(%rax)
movzbl (%rdi),%edx
add    $0x1,%rdi
testb  $0x20,(%rdx,%rcx,1)
jne    11b0 <_scan_setext_header_line+0xb0>
cmp    $0xa,%dl
jne    1166 <_scan_setext_header_line+0x66>
mov    $0x2,%eax
ret

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

LLVM IR (-O2):
@_scan_setext_header_line.yybm = internal unnamed_addr constant <{ [62 x i8], [194 x i8] }> <{ [62 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80", [194 x i8] zeroinitializer }>
define i32 @_scan_setext_header_line(i8* nocapture %0) {
%2 = load i8, i8* %0
%3 = icmp ult i8 %2, 45
br i1 %3, label %62, label %4
4: ; preds = %1
switch i8 %2, label %62 [
i8 45, label %13
i8 61, label %5
]
5: ; preds = %4
%6 = getelementptr inbounds i8, i8* %0, i64 1
%7 = load i8, i8* %6
%8 = zext i8 %7 to i64
%9 = getelementptr inbounds [256 x i8], [256 x i8]* bitcast (<{ [62 x i8], [194 x i8] }>* @_scan_setext_header_line.yybm to [256 x i8]*), i64 0, i64 %8
%10 = load i8, i8* %9
%11 = icmp sgt i8 %10, -1
br i1 %11, label %12, label %51
12: ; preds = %5
switch i8 %7, label %62 [
i8 10, label %50
i8 32, label %60
]
13: ; preds = %4
%14 = getelementptr inbounds i8, i8* %0, i64 1
%15 = load i8, i8* %14
%16 = zext i8 %15 to i64
%17 = getelementptr inbounds [256 x i8], [256 x i8]* bitcast (<{ [62 x i8], [194 x i8] }>* @_scan_setext_header_line.yybm to [256 x i8]*), i64 0, i64 %16
%18 = load i8, i8* %17
%19 = and i8 %18, 32
%20 = icmp eq i8 %19, 0
br i1 %20, label %23, label %21
21: ; preds = %36, %13
%22 = phi i8* [ %14, %13 ], [ %38, %36 ]
br label %24
23: ; preds = %13
switch i8 %15, label %62 [
i8 10, label %35
i8 45, label %36
]
24: ; preds = %21, %24
%25 = phi i8* [ %26, %24 ], [ %22, %21 ]
%26 = getelementptr inbounds i8, i8* %25, i64 1
%27 = load i8, i8* %26
%28 = zext i8 %27 to i64
%29 = getelementptr inbounds [256 x i8], [256 x i8]* bitcast (<{ [62 x i8], [194 x i8] }>* @_scan_setext_header_line.yybm to [256 x i8]*), i64 0, i64 %28
%30 = load i8, i8* %29
%31 = and i8 %30, 32
%32 = icmp eq i8 %31, 0
br i1 %32, label %33, label %24
33: ; preds = %24
%34 = icmp eq i8 %27, 10
br i1 %34, label %35, label %62
35: ; preds = %45, %23, %33
br label %62
36: ; preds = %23, %45
%37 = phi i8* [ %38, %45 ], [ %14, %23 ]
%38 = getelementptr inbounds i8, i8* %37, i64 1
%39 = load i8, i8* %38
%40 = zext i8 %39 to i64
%41 = getelementptr inbounds [256 x i8], [256 x i8]* bitcast (<{ [62 x i8], [194 x i8] }>* @_scan_setext_header_line.yybm to [256 x i8]*), i64 0, i64 %40
%42 = load i8, i8* %41
%43 = and i8 %42, 32
%44 = icmp eq i8 %43, 0
br i1 %44, label %45, label %21
45: ; preds = %36
switch i8 %39, label %62 [
i8 10, label %35
i8 45, label %36
]
46: ; preds = %60, %46
%47 = phi i8* [ %48, %46 ], [ %61, %60 ]
%48 = getelementptr inbounds i8, i8* %47, i64 1
%49 = load i8, i8* %48
switch i8 %49, label %62 [
i8 10, label %50
i8 32, label %46
]
50: ; preds = %46, %59, %12
br label %62
51: ; preds = %5, %51
%52 = phi i8* [ %53, %51 ], [ %6, %5 ]
%53 = getelementptr inbounds i8, i8* %52, i64 1
%54 = load i8, i8* %53
%55 = zext i8 %54 to i64
%56 = getelementptr inbounds [256 x i8], [256 x i8]* bitcast (<{ [62 x i8], [194 x i8] }>* @_scan_setext_header_line.yybm to [256 x i8]*), i64 0, i64 %55
%57 = load i8, i8* %56
%58 = icmp sgt i8 %57, -1
br i1 %58, label %59, label %51
59: ; preds = %51
switch i8 %54, label %62 [
i8 10, label %50
i8 32, label %60
]
60: ; preds = %12, %59
%61 = phi i8* [ %6, %12 ], [ %53, %59 ]
br label %46
62: ; preds = %46, %45, %1, %59, %33, %4, %23, %12, %50, %35
%63 = phi i32 [ 2, %35 ], [ 1, %50 ], [ 0, %12 ], [ 0, %23 ], [ 0, %4 ], [ 0, %33 ], [ 0, %59 ], [ 0, %1 ], [ 0, %45 ], [ 0, %46 ]
ret i32 %63
}