; LLVM IR from apigee/apib :: third_party/http_parser (http_parser)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.http_parser = type { i32, i32, i64, i16, i16, i32, ptr }
%struct.http_parser_settings = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 x i8], align 1
@__PRETTY_FUNCTION__.http_parser_execute = external hidden unnamed_addr constant [94 x i8], align 1
@max_header_size = external hidden global i32, align 4
@method_strings = external hidden global [34 x ptr], align 16
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [132 x i8], align 1
@tokens = external hidden constant <{ [127 x i8], [129 x i8] }>, align 16
@unhex = external hidden constant <{ [128 x i8], [128 x i8] }>, align 16

; Function Attrs: nounwind uwtable
define dso_local i64 @http_parser_execute(ptr noundef %0, ptr noundef %1, ptr noundef %2, i64 noundef %3) #0 {
  %5 = alloca i64, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i64, align 8
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i64, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i64, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i64, align 8
  %32 = alloca i32, align 4
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store i64 %3, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  %36 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %36, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  store ptr null, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  store ptr null, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  store ptr null, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  store ptr null, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  store ptr null, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  %37 = load ptr, ptr %6, align 8, !tbaa !5
  %38 = load i32, ptr %37, align 8
  %39 = lshr i32 %38, 10
  %40 = and i32 %39, 127
  store i32 %40, ptr %19, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  %41 = load ptr, ptr %6, align 8, !tbaa !5
  %42 = load i32, ptr %41, align 8
  %43 = lshr i32 %42, 31
  store i32 %43, ptr %20, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  %44 = load ptr, ptr %6, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.http_parser, ptr %44, i32 0, i32 1
  %46 = load i32, ptr %45, align 4, !tbaa !13
  store i32 %46, ptr %21, align 4, !tbaa !11
  %47 = load ptr, ptr %6, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.http_parser, ptr %47, i32 0, i32 5
  %49 = load i32, ptr %48, align 4
  %50 = lshr i32 %49, 24
  %51 = and i32 %50, 127
  %52 = icmp ne i32 %51, 0
  br i1 %52, label %53, label %54

53:                                               ; preds = %4
  store i64 0, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

54:                                               ; preds = %4
  %55 = load i64, ptr %9, align 8, !tbaa !9
  %56 = icmp eq i64 %55, 0
  br i1 %56, label %57, label %152

57:                                               ; preds = %54
  %58 = load i32, ptr %19, align 4, !tbaa !11
  switch i32 %58, label %140 [
    i32 63, label %59
    i32 1, label %139
    i32 2, label %139
    i32 4, label %139
    i32 18, label %139
  ]

59:                                               ; preds = %57
  br label %60

60:                                               ; preds = %59
  %61 = load ptr, ptr %6, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.http_parser, ptr %61, i32 0, i32 5
  %63 = load i32, ptr %62, align 4
  %64 = lshr i32 %63, 24
  %65 = and i32 %64, 127
  %66 = icmp eq i32 %65, 0
  br i1 %66, label %67, label %68

67:                                               ; preds = %60
  br label %69

68:                                               ; preds = %60
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 669, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

69:                                               ; preds = %67
  %70 = load ptr, ptr %7, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.http_parser_settings, ptr %70, i32 0, i32 7
  %72 = load ptr, ptr %71, align 8, !tbaa !16
  %73 = icmp ne ptr %72, null
  %74 = xor i1 %73, true
  %75 = xor i1 %74, true
  %76 = zext i1 %75 to i32
  %77 = sext i32 %76 to i64
  %78 = call i64 @llvm.expect.i64(i64 %77, i64 1)
  %79 = icmp ne i64 %78, 0
  br i1 %79, label %80, label %136

80:                                               ; preds = %69
  %81 = load i32, ptr %19, align 4, !tbaa !11
  %82 = load ptr, ptr %6, align 8, !tbaa !5
  %83 = load i32, ptr %82, align 8
  %84 = and i32 %81, 127
  %85 = shl i32 %84, 10
  %86 = and i32 %83, -130049
  %87 = or i32 %86, %85
  store i32 %87, ptr %82, align 8
  %88 = load ptr, ptr %7, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.http_parser_settings, ptr %88, i32 0, i32 7
  %90 = load ptr, ptr %89, align 8, !tbaa !16
  %91 = load ptr, ptr %6, align 8, !tbaa !5
  %92 = call i32 %90(ptr noundef %91)
  %93 = icmp ne i32 0, %92
  %94 = xor i1 %93, true
  %95 = xor i1 %94, true
  %96 = zext i1 %95 to i32
  %97 = sext i32 %96 to i64
  %98 = call i64 @llvm.expect.i64(i64 %97, i64 0)
  %99 = icmp ne i64 %98, 0
  br i1 %99, label %100, label %112

100:                                              ; preds = %80
  br label %101

101:                                              ; preds = %100
  %102 = load i32, ptr %21, align 4, !tbaa !11
  %103 = load ptr, ptr %6, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.http_parser, ptr %103, i32 0, i32 1
  store i32 %102, ptr %104, align 4, !tbaa !13
  %105 = load ptr, ptr %6, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.http_parser, ptr %105, i32 0, i32 5
  %107 = load i32, ptr %106, align 4
  %108 = and i32 %107, -2130706433
  %109 = or i32 %108, 117440512
  store i32 %109, ptr %106, align 4
  br label %110

110:                                              ; preds = %101
  br label %111

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111, %80
  %113 = load ptr, ptr %6, align 8, !tbaa !5
  %114 = load i32, ptr %113, align 8
  %115 = lshr i32 %114, 10
  %116 = and i32 %115, 127
  store i32 %116, ptr %19, align 4, !tbaa !11
  %117 = load ptr, ptr %6, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.http_parser, ptr %117, i32 0, i32 5
  %119 = load i32, ptr %118, align 4
  %120 = lshr i32 %119, 24
  %121 = and i32 %120, 127
  %122 = icmp ne i32 %121, 0
  %123 = xor i1 %122, true
  %124 = xor i1 %123, true
  %125 = zext i1 %124 to i32
  %126 = sext i32 %125 to i64
  %127 = call i64 @llvm.expect.i64(i64 %126, i64 0)
  %128 = icmp ne i64 %127, 0
  br i1 %128, label %129, label %135

129:                                              ; preds = %112
  %130 = load ptr, ptr %13, align 8, !tbaa !5
  %131 = load ptr, ptr %8, align 8, !tbaa !5
  %132 = ptrtoint ptr %130 to i64
  %133 = ptrtoint ptr %131 to i64
  %134 = sub i64 %132, %133
  store i64 %134, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

135:                                              ; preds = %112
  br label %136

136:                                              ; preds = %135, %69
  br label %137

137:                                              ; preds = %136
  br label %138

138:                                              ; preds = %137
  store i64 0, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

139:                                              ; preds = %57, %57, %57, %57
  store i64 0, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

140:                                              ; preds = %57
  br label %141

141:                                              ; preds = %140
  %142 = load i32, ptr %21, align 4, !tbaa !11
  %143 = load ptr, ptr %6, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.http_parser, ptr %143, i32 0, i32 1
  store i32 %142, ptr %144, align 4, !tbaa !13
  %145 = load ptr, ptr %6, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.http_parser, ptr %145, i32 0, i32 5
  %147 = load i32, ptr %146, align 4
  %148 = and i32 %147, -2130706433
  %149 = or i32 %148, 184549376
  store i32 %149, ptr %146, align 4
  br label %150

150:                                              ; preds = %141
  br label %151

151:                                              ; preds = %150
  store i64 1, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

152:                                              ; preds = %54
  %153 = load i32, ptr %19, align 4, !tbaa !11
  %154 = icmp eq i32 %153, 45
  br i1 %154, label %155, label %157

155:                                              ; preds = %152
  %156 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %156, ptr %14, align 8, !tbaa !5
  br label %157

157:                                              ; preds = %155, %152
  %158 = load i32, ptr %19, align 4, !tbaa !11
  %159 = icmp eq i32 %158, 50
  br i1 %159, label %160, label %162

160:                                              ; preds = %157
  %161 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %161, ptr %15, align 8, !tbaa !5
  br label %162

162:                                              ; preds = %160, %157
  %163 = load i32, ptr %19, align 4, !tbaa !11
  switch i32 %163, label %168 [
    i32 27, label %164
    i32 21, label %164
    i32 22, label %164
    i32 23, label %164
    i32 24, label %164
    i32 25, label %164
    i32 26, label %164
    i32 28, label %164
    i32 29, label %164
    i32 30, label %164
    i32 31, label %164
    i32 16, label %166
  ]

164:                                              ; preds = %162, %162, %162, %162, %162, %162, %162, %162, %162, %162, %162
  %165 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %165, ptr %16, align 8, !tbaa !5
  br label %169

166:                                              ; preds = %162
  %167 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %167, ptr %18, align 8, !tbaa !5
  br label %169

168:                                              ; preds = %162
  br label %169

169:                                              ; preds = %168, %166, %164
  %170 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %170, ptr %13, align 8, !tbaa !5
  br label %171

171:                                              ; preds = %5856, %169
  %172 = load ptr, ptr %13, align 8, !tbaa !5
  %173 = load ptr, ptr %8, align 8, !tbaa !5
  %174 = load i64, ptr %9, align 8, !tbaa !9
  %175 = getelementptr inbounds i8, ptr %173, i64 %174
  %176 = icmp ne ptr %172, %175
  br i1 %176, label %177, label %5859

177:                                              ; preds = %171
  %178 = load ptr, ptr %13, align 8, !tbaa !5
  %179 = load i8, ptr %178, align 1, !tbaa !18
  store i8 %179, ptr %11, align 1, !tbaa !18
  %180 = load i32, ptr %19, align 4, !tbaa !11
  %181 = icmp ule i32 %180, 58
  br i1 %181, label %182, label %210

182:                                              ; preds = %177
  br label %183

183:                                              ; preds = %182
  %184 = load i32, ptr %21, align 4, !tbaa !11
  %185 = add i32 %184, 1
  store i32 %185, ptr %21, align 4, !tbaa !11
  %186 = load i32, ptr %21, align 4, !tbaa !11
  %187 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %188 = icmp ugt i32 %186, %187
  %189 = xor i1 %188, true
  %190 = xor i1 %189, true
  %191 = zext i1 %190 to i32
  %192 = sext i32 %191 to i64
  %193 = call i64 @llvm.expect.i64(i64 %192, i64 0)
  %194 = icmp ne i64 %193, 0
  br i1 %194, label %195, label %207

195:                                              ; preds = %183
  br label %196

196:                                              ; preds = %195
  %197 = load i32, ptr %21, align 4, !tbaa !11
  %198 = load ptr, ptr %6, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.http_parser, ptr %198, i32 0, i32 1
  store i32 %197, ptr %199, align 4, !tbaa !13
  %200 = load ptr, ptr %6, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.http_parser, ptr %200, i32 0, i32 5
  %202 = load i32, ptr %201, align 4
  %203 = and i32 %202, -2130706433
  %204 = or i32 %203, 201326592
  store i32 %204, ptr %201, align 4
  br label %205

205:                                              ; preds = %196
  br label %206

206:                                              ; preds = %205
  br label %6347

207:                                              ; preds = %183
  br label %208

208:                                              ; preds = %207
  br label %209

209:                                              ; preds = %208
  br label %210

210:                                              ; preds = %209, %177
  br label %211

211:                                              ; preds = %5143, %4445, %4272, %4166, %3977, %3926, %3882, %2146, %840, %760, %346, %210
  %212 = load i32, ptr %19, align 4, !tbaa !11
  switch i32 %212, label %5854 [
    i32 1, label %213
    i32 2, label %242
    i32 3, label %352
    i32 4, label %398
    i32 5, label %515
    i32 6, label %535
    i32 7, label %555
    i32 8, label %575
    i32 9, label %595
    i32 10, label %631
    i32 11, label %654
    i32 12, label %690
    i32 13, label %713
    i32 14, label %748
    i32 15, label %820
    i32 16, label %842
    i32 17, label %1033
    i32 18, label %1053
    i32 19, label %1302
    i32 20, label %1544
    i32 21, label %1590
    i32 22, label %1590
    i32 23, label %1590
    i32 24, label %1590
    i32 25, label %1631
    i32 26, label %1631
    i32 27, label %1631
    i32 28, label %1631
    i32 29, label %1631
    i32 30, label %1631
    i32 31, label %1631
    i32 32, label %1851
    i32 33, label %1877
    i32 34, label %1897
    i32 35, label %1917
    i32 37, label %1937
    i32 38, label %1957
    i32 36, label %1977
    i32 39, label %1997
    i32 40, label %2033
    i32 41, label %2056
    i32 42, label %2092
    i32 43, label %2114
    i32 44, label %2137
    i32 45, label %2223
    i32 46, label %2827
    i32 49, label %2847
    i32 50, label %3008
    i32 52, label %3884
    i32 51, label %3907
    i32 47, label %3978
    i32 48, label %3998
    i32 57, label %4167
    i32 58, label %4446
    i32 62, label %4992
    i32 63, label %5145
    i32 64, label %5158
    i32 53, label %5278
    i32 54, label %5323
    i32 55, label %5404
    i32 56, label %5419
    i32 59, label %5547
    i32 60, label %5617
    i32 61, label %5743
  ]

213:                                              ; preds = %211
  %214 = load i8, ptr %11, align 1, !tbaa !18
  %215 = sext i8 %214 to i32
  %216 = icmp eq i32 %215, 13
  br i1 %216, label %221, label %217

217:                                              ; preds = %213
  %218 = load i8, ptr %11, align 1, !tbaa !18
  %219 = sext i8 %218 to i32
  %220 = icmp eq i32 %219, 10
  br label %221

221:                                              ; preds = %217, %213
  %222 = phi i1 [ true, %213 ], [ %220, %217 ]
  %223 = xor i1 %222, true
  %224 = xor i1 %223, true
  %225 = zext i1 %224 to i32
  %226 = sext i32 %225 to i64
  %227 = call i64 @llvm.expect.i64(i64 %226, i64 1)
  %228 = icmp ne i64 %227, 0
  br i1 %228, label %229, label %230

229:                                              ; preds = %221
  br label %5855

230:                                              ; preds = %221
  br label %231

231:                                              ; preds = %230
  %232 = load i32, ptr %21, align 4, !tbaa !11
  %233 = load ptr, ptr %6, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.http_parser, ptr %233, i32 0, i32 1
  store i32 %232, ptr %234, align 4, !tbaa !13
  %235 = load ptr, ptr %6, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.http_parser, ptr %235, i32 0, i32 5
  %237 = load i32, ptr %236, align 4
  %238 = and i32 %237, -2130706433
  %239 = or i32 %238, 218103808
  store i32 %239, ptr %236, align 4
  br label %240

240:                                              ; preds = %231
  br label %241

241:                                              ; preds = %240
  br label %6347

242:                                              ; preds = %211
  %243 = load i8, ptr %11, align 1, !tbaa !18
  %244 = sext i8 %243 to i32
  %245 = icmp eq i32 %244, 13
  br i1 %245, label %250, label %246

246:                                              ; preds = %242
  %247 = load i8, ptr %11, align 1, !tbaa !18
  %248 = sext i8 %247 to i32
  %249 = icmp eq i32 %248, 10
  br i1 %249, label %250, label %251

250:                                              ; preds = %246, %242
  br label %5855

251:                                              ; preds = %246
  %252 = load ptr, ptr %6, align 8, !tbaa !5
  %253 = load i32, ptr %252, align 8
  %254 = and i32 %253, -1021
  %255 = or i32 %254, 0
  store i32 %255, ptr %252, align 8
  %256 = load ptr, ptr %6, align 8, !tbaa !5
  %257 = load i32, ptr %256, align 8
  %258 = and i32 %257, -1610612737
  %259 = or i32 %258, 0
  store i32 %259, ptr %256, align 8
  %260 = load ptr, ptr %6, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.http_parser, ptr %260, i32 0, i32 2
  store i64 -1, ptr %261, align 8, !tbaa !19
  %262 = load i8, ptr %11, align 1, !tbaa !18
  %263 = sext i8 %262 to i32
  %264 = icmp eq i32 %263, 72
  br i1 %264, label %265, label %346

265:                                              ; preds = %251
  store i32 3, ptr %19, align 4, !tbaa !11
  br label %266

266:                                              ; preds = %265
  %267 = load ptr, ptr %6, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.http_parser, ptr %267, i32 0, i32 5
  %269 = load i32, ptr %268, align 4
  %270 = lshr i32 %269, 24
  %271 = and i32 %270, 127
  %272 = icmp eq i32 %271, 0
  br i1 %272, label %273, label %274

273:                                              ; preds = %266
  br label %275

274:                                              ; preds = %266
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 740, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

275:                                              ; preds = %273
  %276 = load ptr, ptr %7, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.http_parser_settings, ptr %276, i32 0, i32 0
  %278 = load ptr, ptr %277, align 8, !tbaa !20
  %279 = icmp ne ptr %278, null
  %280 = xor i1 %279, true
  %281 = xor i1 %280, true
  %282 = zext i1 %281 to i32
  %283 = sext i32 %282 to i64
  %284 = call i64 @llvm.expect.i64(i64 %283, i64 1)
  %285 = icmp ne i64 %284, 0
  br i1 %285, label %286, label %343

286:                                              ; preds = %275
  %287 = load i32, ptr %19, align 4, !tbaa !11
  %288 = load ptr, ptr %6, align 8, !tbaa !5
  %289 = load i32, ptr %288, align 8
  %290 = and i32 %287, 127
  %291 = shl i32 %290, 10
  %292 = and i32 %289, -130049
  %293 = or i32 %292, %291
  store i32 %293, ptr %288, align 8
  %294 = load ptr, ptr %7, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.http_parser_settings, ptr %294, i32 0, i32 0
  %296 = load ptr, ptr %295, align 8, !tbaa !20
  %297 = load ptr, ptr %6, align 8, !tbaa !5
  %298 = call i32 %296(ptr noundef %297)
  %299 = icmp ne i32 0, %298
  %300 = xor i1 %299, true
  %301 = xor i1 %300, true
  %302 = zext i1 %301 to i32
  %303 = sext i32 %302 to i64
  %304 = call i64 @llvm.expect.i64(i64 %303, i64 0)
  %305 = icmp ne i64 %304, 0
  br i1 %305, label %306, label %318

306:                                              ; preds = %286
  br label %307

307:                                              ; preds = %306
  %308 = load i32, ptr %21, align 4, !tbaa !11
  %309 = load ptr, ptr %6, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.http_parser, ptr %309, i32 0, i32 1
  store i32 %308, ptr %310, align 4, !tbaa !13
  %311 = load ptr, ptr %6, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.http_parser, ptr %311, i32 0, i32 5
  %313 = load i32, ptr %312, align 4
  %314 = and i32 %313, -2130706433
  %315 = or i32 %314, 16777216
  store i32 %315, ptr %312, align 4
  br label %316

316:                                              ; preds = %307
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317, %286
  %319 = load ptr, ptr %6, align 8, !tbaa !5
  %320 = load i32, ptr %319, align 8
  %321 = lshr i32 %320, 10
  %322 = and i32 %321, 127
  store i32 %322, ptr %19, align 4, !tbaa !11
  %323 = load ptr, ptr %6, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.http_parser, ptr %323, i32 0, i32 5
  %325 = load i32, ptr %324, align 4
  %326 = lshr i32 %325, 24
  %327 = and i32 %326, 127
  %328 = icmp ne i32 %327, 0
  %329 = xor i1 %328, true
  %330 = xor i1 %329, true
  %331 = zext i1 %330 to i32
  %332 = sext i32 %331 to i64
  %333 = call i64 @llvm.expect.i64(i64 %332, i64 0)
  %334 = icmp ne i64 %333, 0
  br i1 %334, label %335, label %342

335:                                              ; preds = %318
  %336 = load ptr, ptr %13, align 8, !tbaa !5
  %337 = load ptr, ptr %8, align 8, !tbaa !5
  %338 = ptrtoint ptr %336 to i64
  %339 = ptrtoint ptr %337 to i64
  %340 = sub i64 %338, %339
  %341 = add nsw i64 %340, 1
  store i64 %341, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

342:                                              ; preds = %318
  br label %343

343:                                              ; preds = %342, %275
  br label %344

344:                                              ; preds = %343
  br label %345

345:                                              ; preds = %344
  br label %351

346:                                              ; preds = %251
  %347 = load ptr, ptr %6, align 8, !tbaa !5
  %348 = load i32, ptr %347, align 8
  %349 = and i32 %348, -4
  %350 = or i32 %349, 0
  store i32 %350, ptr %347, align 8
  store i32 18, ptr %19, align 4, !tbaa !11
  br label %211

351:                                              ; preds = %345
  br label %5855

352:                                              ; preds = %211
  %353 = load i8, ptr %11, align 1, !tbaa !18
  %354 = sext i8 %353 to i32
  %355 = icmp eq i32 %354, 84
  br i1 %355, label %356, label %361

356:                                              ; preds = %352
  %357 = load ptr, ptr %6, align 8, !tbaa !5
  %358 = load i32, ptr %357, align 8
  %359 = and i32 %358, -4
  %360 = or i32 %359, 1
  store i32 %360, ptr %357, align 8
  store i32 6, ptr %19, align 4, !tbaa !11
  br label %397

361:                                              ; preds = %352
  %362 = load i8, ptr %11, align 1, !tbaa !18
  %363 = sext i8 %362 to i32
  %364 = icmp ne i32 %363, 69
  %365 = xor i1 %364, true
  %366 = xor i1 %365, true
  %367 = zext i1 %366 to i32
  %368 = sext i32 %367 to i64
  %369 = call i64 @llvm.expect.i64(i64 %368, i64 0)
  %370 = icmp ne i64 %369, 0
  br i1 %370, label %371, label %383

371:                                              ; preds = %361
  br label %372

372:                                              ; preds = %371
  %373 = load i32, ptr %21, align 4, !tbaa !11
  %374 = load ptr, ptr %6, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.http_parser, ptr %374, i32 0, i32 1
  store i32 %373, ptr %375, align 4, !tbaa !13
  %376 = load ptr, ptr %6, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.http_parser, ptr %376, i32 0, i32 5
  %378 = load i32, ptr %377, align 4
  %379 = and i32 %378, -2130706433
  %380 = or i32 %379, 469762048
  store i32 %380, ptr %377, align 4
  br label %381

381:                                              ; preds = %372
  br label %382

382:                                              ; preds = %381
  br label %6347

383:                                              ; preds = %361
  %384 = load ptr, ptr %6, align 8, !tbaa !5
  %385 = load i32, ptr %384, align 8
  %386 = and i32 %385, -4
  %387 = or i32 %386, 0
  store i32 %387, ptr %384, align 8
  %388 = load ptr, ptr %6, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.http_parser, ptr %388, i32 0, i32 5
  %390 = load i32, ptr %389, align 4
  %391 = and i32 %390, -16711681
  %392 = or i32 %391, 131072
  store i32 %392, ptr %389, align 4
  %393 = load ptr, ptr %6, align 8, !tbaa !5
  %394 = load i32, ptr %393, align 8
  %395 = and i32 %394, -520093697
  %396 = or i32 %395, 33554432
  store i32 %396, ptr %393, align 8
  store i32 19, ptr %19, align 4, !tbaa !11
  br label %397

397:                                              ; preds = %383, %356
  br label %5855

398:                                              ; preds = %211
  %399 = load i8, ptr %11, align 1, !tbaa !18
  %400 = sext i8 %399 to i32
  %401 = icmp eq i32 %400, 13
  br i1 %401, label %406, label %402

402:                                              ; preds = %398
  %403 = load i8, ptr %11, align 1, !tbaa !18
  %404 = sext i8 %403 to i32
  %405 = icmp eq i32 %404, 10
  br i1 %405, label %406, label %407

406:                                              ; preds = %402, %398
  br label %5855

407:                                              ; preds = %402
  %408 = load ptr, ptr %6, align 8, !tbaa !5
  %409 = load i32, ptr %408, align 8
  %410 = and i32 %409, -1021
  %411 = or i32 %410, 0
  store i32 %411, ptr %408, align 8
  %412 = load ptr, ptr %6, align 8, !tbaa !5
  %413 = load i32, ptr %412, align 8
  %414 = and i32 %413, -1610612737
  %415 = or i32 %414, 0
  store i32 %415, ptr %412, align 8
  %416 = load ptr, ptr %6, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.http_parser, ptr %416, i32 0, i32 2
  store i64 -1, ptr %417, align 8, !tbaa !19
  %418 = load i8, ptr %11, align 1, !tbaa !18
  %419 = sext i8 %418 to i32
  %420 = icmp eq i32 %419, 72
  br i1 %420, label %421, label %422

421:                                              ; preds = %407
  store i32 5, ptr %19, align 4, !tbaa !11
  br label %434

422:                                              ; preds = %407
  br label %423

423:                                              ; preds = %422
  %424 = load i32, ptr %21, align 4, !tbaa !11
  %425 = load ptr, ptr %6, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.http_parser, ptr %425, i32 0, i32 1
  store i32 %424, ptr %426, align 4, !tbaa !13
  %427 = load ptr, ptr %6, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.http_parser, ptr %427, i32 0, i32 5
  %429 = load i32, ptr %428, align 4
  %430 = and i32 %429, -2130706433
  %431 = or i32 %430, 469762048
  store i32 %431, ptr %428, align 4
  br label %432

432:                                              ; preds = %423
  br label %433

433:                                              ; preds = %432
  br label %6347

434:                                              ; preds = %421
  br label %435

435:                                              ; preds = %434
  %436 = load ptr, ptr %6, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.http_parser, ptr %436, i32 0, i32 5
  %438 = load i32, ptr %437, align 4
  %439 = lshr i32 %438, 24
  %440 = and i32 %439, 127
  %441 = icmp eq i32 %440, 0
  br i1 %441, label %442, label %443

442:                                              ; preds = %435
  br label %444

443:                                              ; preds = %435
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 782, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

444:                                              ; preds = %442
  %445 = load ptr, ptr %7, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.http_parser_settings, ptr %445, i32 0, i32 0
  %447 = load ptr, ptr %446, align 8, !tbaa !20
  %448 = icmp ne ptr %447, null
  %449 = xor i1 %448, true
  %450 = xor i1 %449, true
  %451 = zext i1 %450 to i32
  %452 = sext i32 %451 to i64
  %453 = call i64 @llvm.expect.i64(i64 %452, i64 1)
  %454 = icmp ne i64 %453, 0
  br i1 %454, label %455, label %512

455:                                              ; preds = %444
  %456 = load i32, ptr %19, align 4, !tbaa !11
  %457 = load ptr, ptr %6, align 8, !tbaa !5
  %458 = load i32, ptr %457, align 8
  %459 = and i32 %456, 127
  %460 = shl i32 %459, 10
  %461 = and i32 %458, -130049
  %462 = or i32 %461, %460
  store i32 %462, ptr %457, align 8
  %463 = load ptr, ptr %7, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.http_parser_settings, ptr %463, i32 0, i32 0
  %465 = load ptr, ptr %464, align 8, !tbaa !20
  %466 = load ptr, ptr %6, align 8, !tbaa !5
  %467 = call i32 %465(ptr noundef %466)
  %468 = icmp ne i32 0, %467
  %469 = xor i1 %468, true
  %470 = xor i1 %469, true
  %471 = zext i1 %470 to i32
  %472 = sext i32 %471 to i64
  %473 = call i64 @llvm.expect.i64(i64 %472, i64 0)
  %474 = icmp ne i64 %473, 0
  br i1 %474, label %475, label %487

475:                                              ; preds = %455
  br label %476

476:                                              ; preds = %475
  %477 = load i32, ptr %21, align 4, !tbaa !11
  %478 = load ptr, ptr %6, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.http_parser, ptr %478, i32 0, i32 1
  store i32 %477, ptr %479, align 4, !tbaa !13
  %480 = load ptr, ptr %6, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.http_parser, ptr %480, i32 0, i32 5
  %482 = load i32, ptr %481, align 4
  %483 = and i32 %482, -2130706433
  %484 = or i32 %483, 16777216
  store i32 %484, ptr %481, align 4
  br label %485

485:                                              ; preds = %476
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486, %455
  %488 = load ptr, ptr %6, align 8, !tbaa !5
  %489 = load i32, ptr %488, align 8
  %490 = lshr i32 %489, 10
  %491 = and i32 %490, 127
  store i32 %491, ptr %19, align 4, !tbaa !11
  %492 = load ptr, ptr %6, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.http_parser, ptr %492, i32 0, i32 5
  %494 = load i32, ptr %493, align 4
  %495 = lshr i32 %494, 24
  %496 = and i32 %495, 127
  %497 = icmp ne i32 %496, 0
  %498 = xor i1 %497, true
  %499 = xor i1 %498, true
  %500 = zext i1 %499 to i32
  %501 = sext i32 %500 to i64
  %502 = call i64 @llvm.expect.i64(i64 %501, i64 0)
  %503 = icmp ne i64 %502, 0
  br i1 %503, label %504, label %511

504:                                              ; preds = %487
  %505 = load ptr, ptr %13, align 8, !tbaa !5
  %506 = load ptr, ptr %8, align 8, !tbaa !5
  %507 = ptrtoint ptr %505 to i64
  %508 = ptrtoint ptr %506 to i64
  %509 = sub i64 %507, %508
  %510 = add nsw i64 %509, 1
  store i64 %510, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

511:                                              ; preds = %487
  br label %512

512:                                              ; preds = %511, %444
  br label %513

513:                                              ; preds = %512
  br label %514

514:                                              ; preds = %513
  br label %5855

515:                                              ; preds = %211
  br label %516

516:                                              ; preds = %515
  %517 = load i8, ptr %11, align 1, !tbaa !18
  %518 = sext i8 %517 to i32
  %519 = icmp ne i32 %518, 84
  br i1 %519, label %520, label %532

520:                                              ; preds = %516
  br label %521

521:                                              ; preds = %520
  %522 = load i32, ptr %21, align 4, !tbaa !11
  %523 = load ptr, ptr %6, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.http_parser, ptr %523, i32 0, i32 1
  store i32 %522, ptr %524, align 4, !tbaa !13
  %525 = load ptr, ptr %6, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.http_parser, ptr %525, i32 0, i32 5
  %527 = load i32, ptr %526, align 4
  %528 = and i32 %527, -2130706433
  %529 = or i32 %528, 503316480
  store i32 %529, ptr %526, align 4
  br label %530

530:                                              ; preds = %521
  br label %531

531:                                              ; preds = %530
  br label %6347

532:                                              ; preds = %516
  br label %533

533:                                              ; preds = %532
  br label %534

534:                                              ; preds = %533
  store i32 6, ptr %19, align 4, !tbaa !11
  br label %5855

535:                                              ; preds = %211
  br label %536

536:                                              ; preds = %535
  %537 = load i8, ptr %11, align 1, !tbaa !18
  %538 = sext i8 %537 to i32
  %539 = icmp ne i32 %538, 84
  br i1 %539, label %540, label %552

540:                                              ; preds = %536
  br label %541

541:                                              ; preds = %540
  %542 = load i32, ptr %21, align 4, !tbaa !11
  %543 = load ptr, ptr %6, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.http_parser, ptr %543, i32 0, i32 1
  store i32 %542, ptr %544, align 4, !tbaa !13
  %545 = load ptr, ptr %6, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.http_parser, ptr %545, i32 0, i32 5
  %547 = load i32, ptr %546, align 4
  %548 = and i32 %547, -2130706433
  %549 = or i32 %548, 503316480
  store i32 %549, ptr %546, align 4
  br label %550

550:                                              ; preds = %541
  br label %551

551:                                              ; preds = %550
  br label %6347

552:                                              ; preds = %536
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553
  store i32 7, ptr %19, align 4, !tbaa !11
  br label %5855

555:                                              ; preds = %211
  br label %556

556:                                              ; preds = %555
  %557 = load i8, ptr %11, align 1, !tbaa !18
  %558 = sext i8 %557 to i32
  %559 = icmp ne i32 %558, 80
  br i1 %559, label %560, label %572

560:                                              ; preds = %556
  br label %561

561:                                              ; preds = %560
  %562 = load i32, ptr %21, align 4, !tbaa !11
  %563 = load ptr, ptr %6, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.http_parser, ptr %563, i32 0, i32 1
  store i32 %562, ptr %564, align 4, !tbaa !13
  %565 = load ptr, ptr %6, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.http_parser, ptr %565, i32 0, i32 5
  %567 = load i32, ptr %566, align 4
  %568 = and i32 %567, -2130706433
  %569 = or i32 %568, 503316480
  store i32 %569, ptr %566, align 4
  br label %570

570:                                              ; preds = %561
  br label %571

571:                                              ; preds = %570
  br label %6347

572:                                              ; preds = %556
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573
  store i32 8, ptr %19, align 4, !tbaa !11
  br label %5855

575:                                              ; preds = %211
  br label %576

576:                                              ; preds = %575
  %577 = load i8, ptr %11, align 1, !tbaa !18
  %578 = sext i8 %577 to i32
  %579 = icmp ne i32 %578, 47
  br i1 %579, label %580, label %592

580:                                              ; preds = %576
  br label %581

581:                                              ; preds = %580
  %582 = load i32, ptr %21, align 4, !tbaa !11
  %583 = load ptr, ptr %6, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.http_parser, ptr %583, i32 0, i32 1
  store i32 %582, ptr %584, align 4, !tbaa !13
  %585 = load ptr, ptr %6, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.http_parser, ptr %585, i32 0, i32 5
  %587 = load i32, ptr %586, align 4
  %588 = and i32 %587, -2130706433
  %589 = or i32 %588, 503316480
  store i32 %589, ptr %586, align 4
  br label %590

590:                                              ; preds = %581
  br label %591

591:                                              ; preds = %590
  br label %6347

592:                                              ; preds = %576
  br label %593

593:                                              ; preds = %592
  br label %594

594:                                              ; preds = %593
  store i32 9, ptr %19, align 4, !tbaa !11
  br label %5855

595:                                              ; preds = %211
  %596 = load i8, ptr %11, align 1, !tbaa !18
  %597 = sext i8 %596 to i32
  %598 = icmp sge i32 %597, 48
  br i1 %598, label %599, label %603

599:                                              ; preds = %595
  %600 = load i8, ptr %11, align 1, !tbaa !18
  %601 = sext i8 %600 to i32
  %602 = icmp sle i32 %601, 57
  br label %603

603:                                              ; preds = %599, %595
  %604 = phi i1 [ false, %595 ], [ %602, %599 ]
  %605 = xor i1 %604, true
  %606 = xor i1 %605, true
  %607 = xor i1 %606, true
  %608 = zext i1 %607 to i32
  %609 = sext i32 %608 to i64
  %610 = call i64 @llvm.expect.i64(i64 %609, i64 0)
  %611 = icmp ne i64 %610, 0
  br i1 %611, label %612, label %624

612:                                              ; preds = %603
  br label %613

613:                                              ; preds = %612
  %614 = load i32, ptr %21, align 4, !tbaa !11
  %615 = load ptr, ptr %6, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.http_parser, ptr %615, i32 0, i32 1
  store i32 %614, ptr %616, align 4, !tbaa !13
  %617 = load ptr, ptr %6, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.http_parser, ptr %617, i32 0, i32 5
  %619 = load i32, ptr %618, align 4
  %620 = and i32 %619, -2130706433
  %621 = or i32 %620, 234881024
  store i32 %621, ptr %618, align 4
  br label %622

622:                                              ; preds = %613
  br label %623

623:                                              ; preds = %622
  br label %6347

624:                                              ; preds = %603
  %625 = load i8, ptr %11, align 1, !tbaa !18
  %626 = sext i8 %625 to i32
  %627 = sub nsw i32 %626, 48
  %628 = trunc i32 %627 to i16
  %629 = load ptr, ptr %6, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.http_parser, ptr %629, i32 0, i32 3
  store i16 %628, ptr %630, align 8, !tbaa !21
  store i32 10, ptr %19, align 4, !tbaa !11
  br label %5855

631:                                              ; preds = %211
  %632 = load i8, ptr %11, align 1, !tbaa !18
  %633 = sext i8 %632 to i32
  %634 = icmp ne i32 %633, 46
  %635 = xor i1 %634, true
  %636 = xor i1 %635, true
  %637 = zext i1 %636 to i32
  %638 = sext i32 %637 to i64
  %639 = call i64 @llvm.expect.i64(i64 %638, i64 0)
  %640 = icmp ne i64 %639, 0
  br i1 %640, label %641, label %653

641:                                              ; preds = %631
  br label %642

642:                                              ; preds = %641
  %643 = load i32, ptr %21, align 4, !tbaa !11
  %644 = load ptr, ptr %6, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.http_parser, ptr %644, i32 0, i32 1
  store i32 %643, ptr %645, align 4, !tbaa !13
  %646 = load ptr, ptr %6, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.http_parser, ptr %646, i32 0, i32 5
  %648 = load i32, ptr %647, align 4
  %649 = and i32 %648, -2130706433
  %650 = or i32 %649, 234881024
  store i32 %650, ptr %647, align 4
  br label %651

651:                                              ; preds = %642
  br label %652

652:                                              ; preds = %651
  br label %6347

653:                                              ; preds = %631
  store i32 11, ptr %19, align 4, !tbaa !11
  br label %5855

654:                                              ; preds = %211
  %655 = load i8, ptr %11, align 1, !tbaa !18
  %656 = sext i8 %655 to i32
  %657 = icmp sge i32 %656, 48
  br i1 %657, label %658, label %662

658:                                              ; preds = %654
  %659 = load i8, ptr %11, align 1, !tbaa !18
  %660 = sext i8 %659 to i32
  %661 = icmp sle i32 %660, 57
  br label %662

662:                                              ; preds = %658, %654
  %663 = phi i1 [ false, %654 ], [ %661, %658 ]
  %664 = xor i1 %663, true
  %665 = xor i1 %664, true
  %666 = xor i1 %665, true
  %667 = zext i1 %666 to i32
  %668 = sext i32 %667 to i64
  %669 = call i64 @llvm.expect.i64(i64 %668, i64 0)
  %670 = icmp ne i64 %669, 0
  br i1 %670, label %671, label %683

671:                                              ; preds = %662
  br label %672

672:                                              ; preds = %671
  %673 = load i32, ptr %21, align 4, !tbaa !11
  %674 = load ptr, ptr %6, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.http_parser, ptr %674, i32 0, i32 1
  store i32 %673, ptr %675, align 4, !tbaa !13
  %676 = load ptr, ptr %6, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.http_parser, ptr %676, i32 0, i32 5
  %678 = load i32, ptr %677, align 4
  %679 = and i32 %678, -2130706433
  %680 = or i32 %679, 234881024
  store i32 %680, ptr %677, align 4
  br label %681

681:                                              ; preds = %672
  br label %682

682:                                              ; preds = %681
  br label %6347

683:                                              ; preds = %662
  %684 = load i8, ptr %11, align 1, !tbaa !18
  %685 = sext i8 %684 to i32
  %686 = sub nsw i32 %685, 48
  %687 = trunc i32 %686 to i16
  %688 = load ptr, ptr %6, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.http_parser, ptr %688, i32 0, i32 4
  store i16 %687, ptr %689, align 2, !tbaa !22
  store i32 12, ptr %19, align 4, !tbaa !11
  br label %5855

690:                                              ; preds = %211
  %691 = load i8, ptr %11, align 1, !tbaa !18
  %692 = sext i8 %691 to i32
  %693 = icmp ne i32 %692, 32
  %694 = xor i1 %693, true
  %695 = xor i1 %694, true
  %696 = zext i1 %695 to i32
  %697 = sext i32 %696 to i64
  %698 = call i64 @llvm.expect.i64(i64 %697, i64 0)
  %699 = icmp ne i64 %698, 0
  br i1 %699, label %700, label %712

700:                                              ; preds = %690
  br label %701

701:                                              ; preds = %700
  %702 = load i32, ptr %21, align 4, !tbaa !11
  %703 = load ptr, ptr %6, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.http_parser, ptr %703, i32 0, i32 1
  store i32 %702, ptr %704, align 4, !tbaa !13
  %705 = load ptr, ptr %6, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.http_parser, ptr %705, i32 0, i32 5
  %707 = load i32, ptr %706, align 4
  %708 = and i32 %707, -2130706433
  %709 = or i32 %708, 234881024
  store i32 %709, ptr %706, align 4
  br label %710

710:                                              ; preds = %701
  br label %711

711:                                              ; preds = %710
  br label %6347

712:                                              ; preds = %690
  store i32 13, ptr %19, align 4, !tbaa !11
  br label %5855

713:                                              ; preds = %211
  %714 = load i8, ptr %11, align 1, !tbaa !18
  %715 = sext i8 %714 to i32
  %716 = icmp sge i32 %715, 48
  br i1 %716, label %717, label %721

717:                                              ; preds = %713
  %718 = load i8, ptr %11, align 1, !tbaa !18
  %719 = sext i8 %718 to i32
  %720 = icmp sle i32 %719, 57
  br i1 %720, label %738, label %721

721:                                              ; preds = %717, %713
  %722 = load i8, ptr %11, align 1, !tbaa !18
  %723 = sext i8 %722 to i32
  %724 = icmp eq i32 %723, 32
  br i1 %724, label %725, label %726

725:                                              ; preds = %721
  br label %5855

726:                                              ; preds = %721
  br label %727

727:                                              ; preds = %726
  %728 = load i32, ptr %21, align 4, !tbaa !11
  %729 = load ptr, ptr %6, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.http_parser, ptr %729, i32 0, i32 1
  store i32 %728, ptr %730, align 4, !tbaa !13
  %731 = load ptr, ptr %6, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.http_parser, ptr %731, i32 0, i32 5
  %733 = load i32, ptr %732, align 4
  %734 = and i32 %733, -2130706433
  %735 = or i32 %734, 251658240
  store i32 %735, ptr %732, align 4
  br label %736

736:                                              ; preds = %727
  br label %737

737:                                              ; preds = %736
  br label %6347

738:                                              ; preds = %717
  %739 = load i8, ptr %11, align 1, !tbaa !18
  %740 = sext i8 %739 to i32
  %741 = sub nsw i32 %740, 48
  %742 = load ptr, ptr %6, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.http_parser, ptr %742, i32 0, i32 5
  %744 = load i32, ptr %743, align 4
  %745 = and i32 %741, 65535
  %746 = and i32 %744, -65536
  %747 = or i32 %746, %745
  store i32 %747, ptr %743, align 4
  store i32 14, ptr %19, align 4, !tbaa !11
  br label %5855

748:                                              ; preds = %211
  %749 = load i8, ptr %11, align 1, !tbaa !18
  %750 = sext i8 %749 to i32
  %751 = icmp sge i32 %750, 48
  br i1 %751, label %752, label %756

752:                                              ; preds = %748
  %753 = load i8, ptr %11, align 1, !tbaa !18
  %754 = sext i8 %753 to i32
  %755 = icmp sle i32 %754, 57
  br i1 %755, label %774, label %756

756:                                              ; preds = %752, %748
  %757 = load i8, ptr %11, align 1, !tbaa !18
  %758 = sext i8 %757 to i32
  switch i32 %758, label %761 [
    i32 32, label %759
    i32 13, label %760
    i32 10, label %760
  ]

759:                                              ; preds = %756
  store i32 15, ptr %19, align 4, !tbaa !11
  br label %773

760:                                              ; preds = %756, %756
  store i32 15, ptr %19, align 4, !tbaa !11
  br label %211

761:                                              ; preds = %756
  br label %762

762:                                              ; preds = %761
  %763 = load i32, ptr %21, align 4, !tbaa !11
  %764 = load ptr, ptr %6, align 8, !tbaa !5
  %765 = getelementptr inbounds %struct.http_parser, ptr %764, i32 0, i32 1
  store i32 %763, ptr %765, align 4, !tbaa !13
  %766 = load ptr, ptr %6, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.http_parser, ptr %766, i32 0, i32 5
  %768 = load i32, ptr %767, align 4
  %769 = and i32 %768, -2130706433
  %770 = or i32 %769, 251658240
  store i32 %770, ptr %767, align 4
  br label %771

771:                                              ; preds = %762
  br label %772

772:                                              ; preds = %771
  br label %6347

773:                                              ; preds = %759
  br label %5855

774:                                              ; preds = %752
  %775 = load ptr, ptr %6, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.http_parser, ptr %775, i32 0, i32 5
  %777 = load i32, ptr %776, align 4
  %778 = and i32 %777, 65535
  %779 = mul nsw i32 %778, 10
  %780 = load i32, ptr %776, align 4
  %781 = and i32 %779, 65535
  %782 = and i32 %780, -65536
  %783 = or i32 %782, %781
  store i32 %783, ptr %776, align 4
  %784 = load i8, ptr %11, align 1, !tbaa !18
  %785 = sext i8 %784 to i32
  %786 = sub nsw i32 %785, 48
  %787 = load ptr, ptr %6, align 8, !tbaa !5
  %788 = getelementptr inbounds %struct.http_parser, ptr %787, i32 0, i32 5
  %789 = load i32, ptr %788, align 4
  %790 = and i32 %789, 65535
  %791 = add nsw i32 %790, %786
  %792 = load i32, ptr %788, align 4
  %793 = and i32 %791, 65535
  %794 = and i32 %792, -65536
  %795 = or i32 %794, %793
  store i32 %795, ptr %788, align 4
  %796 = load ptr, ptr %6, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.http_parser, ptr %796, i32 0, i32 5
  %798 = load i32, ptr %797, align 4
  %799 = and i32 %798, 65535
  %800 = icmp sgt i32 %799, 999
  %801 = xor i1 %800, true
  %802 = xor i1 %801, true
  %803 = zext i1 %802 to i32
  %804 = sext i32 %803 to i64
  %805 = call i64 @llvm.expect.i64(i64 %804, i64 0)
  %806 = icmp ne i64 %805, 0
  br i1 %806, label %807, label %819

807:                                              ; preds = %774
  br label %808

808:                                              ; preds = %807
  %809 = load i32, ptr %21, align 4, !tbaa !11
  %810 = load ptr, ptr %6, align 8, !tbaa !5
  %811 = getelementptr inbounds %struct.http_parser, ptr %810, i32 0, i32 1
  store i32 %809, ptr %811, align 4, !tbaa !13
  %812 = load ptr, ptr %6, align 8, !tbaa !5
  %813 = getelementptr inbounds %struct.http_parser, ptr %812, i32 0, i32 5
  %814 = load i32, ptr %813, align 4
  %815 = and i32 %814, -2130706433
  %816 = or i32 %815, 251658240
  store i32 %816, ptr %813, align 4
  br label %817

817:                                              ; preds = %808
  br label %818

818:                                              ; preds = %817
  br label %6347

819:                                              ; preds = %774
  br label %5855

820:                                              ; preds = %211
  br label %821

821:                                              ; preds = %820
  %822 = load ptr, ptr %18, align 8, !tbaa !5
  %823 = icmp ne ptr %822, null
  br i1 %823, label %826, label %824

824:                                              ; preds = %821
  %825 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %825, ptr %18, align 8, !tbaa !5
  br label %826

826:                                              ; preds = %824, %821
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  store i32 16, ptr %19, align 4, !tbaa !11
  %829 = load ptr, ptr %6, align 8, !tbaa !5
  %830 = load i32, ptr %829, align 8
  %831 = and i32 %830, -520093697
  %832 = or i32 %831, 0
  store i32 %832, ptr %829, align 8
  %833 = load i8, ptr %11, align 1, !tbaa !18
  %834 = sext i8 %833 to i32
  %835 = icmp eq i32 %834, 13
  br i1 %835, label %840, label %836

836:                                              ; preds = %828
  %837 = load i8, ptr %11, align 1, !tbaa !18
  %838 = sext i8 %837 to i32
  %839 = icmp eq i32 %838, 10
  br i1 %839, label %840, label %841

840:                                              ; preds = %836, %828
  br label %211

841:                                              ; preds = %836
  br label %5855

842:                                              ; preds = %211
  %843 = load i8, ptr %11, align 1, !tbaa !18
  %844 = sext i8 %843 to i32
  %845 = icmp eq i32 %844, 13
  br i1 %845, label %846, label %937

846:                                              ; preds = %842
  store i32 17, ptr %19, align 4, !tbaa !11
  br label %847

847:                                              ; preds = %846
  %848 = load ptr, ptr %6, align 8, !tbaa !5
  %849 = getelementptr inbounds %struct.http_parser, ptr %848, i32 0, i32 5
  %850 = load i32, ptr %849, align 4
  %851 = lshr i32 %850, 24
  %852 = and i32 %851, 127
  %853 = icmp eq i32 %852, 0
  br i1 %853, label %854, label %855

854:                                              ; preds = %847
  br label %856

855:                                              ; preds = %847
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 908, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

856:                                              ; preds = %854
  %857 = load ptr, ptr %18, align 8, !tbaa !5
  %858 = icmp ne ptr %857, null
  br i1 %858, label %859, label %934

859:                                              ; preds = %856
  %860 = load ptr, ptr %7, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.http_parser_settings, ptr %860, i32 0, i32 2
  %862 = load ptr, ptr %861, align 8, !tbaa !23
  %863 = icmp ne ptr %862, null
  %864 = xor i1 %863, true
  %865 = xor i1 %864, true
  %866 = zext i1 %865 to i32
  %867 = sext i32 %866 to i64
  %868 = call i64 @llvm.expect.i64(i64 %867, i64 1)
  %869 = icmp ne i64 %868, 0
  br i1 %869, label %870, label %933

870:                                              ; preds = %859
  %871 = load i32, ptr %19, align 4, !tbaa !11
  %872 = load ptr, ptr %6, align 8, !tbaa !5
  %873 = load i32, ptr %872, align 8
  %874 = and i32 %871, 127
  %875 = shl i32 %874, 10
  %876 = and i32 %873, -130049
  %877 = or i32 %876, %875
  store i32 %877, ptr %872, align 8
  %878 = load ptr, ptr %7, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.http_parser_settings, ptr %878, i32 0, i32 2
  %880 = load ptr, ptr %879, align 8, !tbaa !23
  %881 = load ptr, ptr %6, align 8, !tbaa !5
  %882 = load ptr, ptr %18, align 8, !tbaa !5
  %883 = load ptr, ptr %13, align 8, !tbaa !5
  %884 = load ptr, ptr %18, align 8, !tbaa !5
  %885 = ptrtoint ptr %883 to i64
  %886 = ptrtoint ptr %884 to i64
  %887 = sub i64 %885, %886
  %888 = call i32 %880(ptr noundef %881, ptr noundef %882, i64 noundef %887)
  %889 = icmp ne i32 0, %888
  %890 = xor i1 %889, true
  %891 = xor i1 %890, true
  %892 = zext i1 %891 to i32
  %893 = sext i32 %892 to i64
  %894 = call i64 @llvm.expect.i64(i64 %893, i64 0)
  %895 = icmp ne i64 %894, 0
  br i1 %895, label %896, label %908

896:                                              ; preds = %870
  br label %897

897:                                              ; preds = %896
  %898 = load i32, ptr %21, align 4, !tbaa !11
  %899 = load ptr, ptr %6, align 8, !tbaa !5
  %900 = getelementptr inbounds %struct.http_parser, ptr %899, i32 0, i32 1
  store i32 %898, ptr %900, align 4, !tbaa !13
  %901 = load ptr, ptr %6, align 8, !tbaa !5
  %902 = getelementptr inbounds %struct.http_parser, ptr %901, i32 0, i32 5
  %903 = load i32, ptr %902, align 4
  %904 = and i32 %903, -2130706433
  %905 = or i32 %904, 134217728
  store i32 %905, ptr %902, align 4
  br label %906

906:                                              ; preds = %897
  br label %907

907:                                              ; preds = %906
  br label %908

908:                                              ; preds = %907, %870
  %909 = load ptr, ptr %6, align 8, !tbaa !5
  %910 = load i32, ptr %909, align 8
  %911 = lshr i32 %910, 10
  %912 = and i32 %911, 127
  store i32 %912, ptr %19, align 4, !tbaa !11
  %913 = load ptr, ptr %6, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.http_parser, ptr %913, i32 0, i32 5
  %915 = load i32, ptr %914, align 4
  %916 = lshr i32 %915, 24
  %917 = and i32 %916, 127
  %918 = icmp ne i32 %917, 0
  %919 = xor i1 %918, true
  %920 = xor i1 %919, true
  %921 = zext i1 %920 to i32
  %922 = sext i32 %921 to i64
  %923 = call i64 @llvm.expect.i64(i64 %922, i64 0)
  %924 = icmp ne i64 %923, 0
  br i1 %924, label %925, label %932

925:                                              ; preds = %908
  %926 = load ptr, ptr %13, align 8, !tbaa !5
  %927 = load ptr, ptr %8, align 8, !tbaa !5
  %928 = ptrtoint ptr %926 to i64
  %929 = ptrtoint ptr %927 to i64
  %930 = sub i64 %928, %929
  %931 = add nsw i64 %930, 1
  store i64 %931, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

932:                                              ; preds = %908
  br label %933

933:                                              ; preds = %932, %859
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %934

934:                                              ; preds = %933, %856
  br label %935

935:                                              ; preds = %934
  br label %936

936:                                              ; preds = %935
  br label %5855

937:                                              ; preds = %842
  %938 = load i8, ptr %11, align 1, !tbaa !18
  %939 = sext i8 %938 to i32
  %940 = icmp eq i32 %939, 10
  br i1 %940, label %941, label %1032

941:                                              ; preds = %937
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %942

942:                                              ; preds = %941
  %943 = load ptr, ptr %6, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.http_parser, ptr %943, i32 0, i32 5
  %945 = load i32, ptr %944, align 4
  %946 = lshr i32 %945, 24
  %947 = and i32 %946, 127
  %948 = icmp eq i32 %947, 0
  br i1 %948, label %949, label %950

949:                                              ; preds = %942
  br label %951

950:                                              ; preds = %942
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 914, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

951:                                              ; preds = %949
  %952 = load ptr, ptr %18, align 8, !tbaa !5
  %953 = icmp ne ptr %952, null
  br i1 %953, label %954, label %1029

954:                                              ; preds = %951
  %955 = load ptr, ptr %7, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.http_parser_settings, ptr %955, i32 0, i32 2
  %957 = load ptr, ptr %956, align 8, !tbaa !23
  %958 = icmp ne ptr %957, null
  %959 = xor i1 %958, true
  %960 = xor i1 %959, true
  %961 = zext i1 %960 to i32
  %962 = sext i32 %961 to i64
  %963 = call i64 @llvm.expect.i64(i64 %962, i64 1)
  %964 = icmp ne i64 %963, 0
  br i1 %964, label %965, label %1028

965:                                              ; preds = %954
  %966 = load i32, ptr %19, align 4, !tbaa !11
  %967 = load ptr, ptr %6, align 8, !tbaa !5
  %968 = load i32, ptr %967, align 8
  %969 = and i32 %966, 127
  %970 = shl i32 %969, 10
  %971 = and i32 %968, -130049
  %972 = or i32 %971, %970
  store i32 %972, ptr %967, align 8
  %973 = load ptr, ptr %7, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.http_parser_settings, ptr %973, i32 0, i32 2
  %975 = load ptr, ptr %974, align 8, !tbaa !23
  %976 = load ptr, ptr %6, align 8, !tbaa !5
  %977 = load ptr, ptr %18, align 8, !tbaa !5
  %978 = load ptr, ptr %13, align 8, !tbaa !5
  %979 = load ptr, ptr %18, align 8, !tbaa !5
  %980 = ptrtoint ptr %978 to i64
  %981 = ptrtoint ptr %979 to i64
  %982 = sub i64 %980, %981
  %983 = call i32 %975(ptr noundef %976, ptr noundef %977, i64 noundef %982)
  %984 = icmp ne i32 0, %983
  %985 = xor i1 %984, true
  %986 = xor i1 %985, true
  %987 = zext i1 %986 to i32
  %988 = sext i32 %987 to i64
  %989 = call i64 @llvm.expect.i64(i64 %988, i64 0)
  %990 = icmp ne i64 %989, 0
  br i1 %990, label %991, label %1003

991:                                              ; preds = %965
  br label %992

992:                                              ; preds = %991
  %993 = load i32, ptr %21, align 4, !tbaa !11
  %994 = load ptr, ptr %6, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.http_parser, ptr %994, i32 0, i32 1
  store i32 %993, ptr %995, align 4, !tbaa !13
  %996 = load ptr, ptr %6, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.http_parser, ptr %996, i32 0, i32 5
  %998 = load i32, ptr %997, align 4
  %999 = and i32 %998, -2130706433
  %1000 = or i32 %999, 134217728
  store i32 %1000, ptr %997, align 4
  br label %1001

1001:                                             ; preds = %992
  br label %1002

1002:                                             ; preds = %1001
  br label %1003

1003:                                             ; preds = %1002, %965
  %1004 = load ptr, ptr %6, align 8, !tbaa !5
  %1005 = load i32, ptr %1004, align 8
  %1006 = lshr i32 %1005, 10
  %1007 = and i32 %1006, 127
  store i32 %1007, ptr %19, align 4, !tbaa !11
  %1008 = load ptr, ptr %6, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.http_parser, ptr %1008, i32 0, i32 5
  %1010 = load i32, ptr %1009, align 4
  %1011 = lshr i32 %1010, 24
  %1012 = and i32 %1011, 127
  %1013 = icmp ne i32 %1012, 0
  %1014 = xor i1 %1013, true
  %1015 = xor i1 %1014, true
  %1016 = zext i1 %1015 to i32
  %1017 = sext i32 %1016 to i64
  %1018 = call i64 @llvm.expect.i64(i64 %1017, i64 0)
  %1019 = icmp ne i64 %1018, 0
  br i1 %1019, label %1020, label %1027

1020:                                             ; preds = %1003
  %1021 = load ptr, ptr %13, align 8, !tbaa !5
  %1022 = load ptr, ptr %8, align 8, !tbaa !5
  %1023 = ptrtoint ptr %1021 to i64
  %1024 = ptrtoint ptr %1022 to i64
  %1025 = sub i64 %1023, %1024
  %1026 = add nsw i64 %1025, 1
  store i64 %1026, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

1027:                                             ; preds = %1003
  br label %1028

1028:                                             ; preds = %1027, %954
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %1029

1029:                                             ; preds = %1028, %951
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

1031:                                             ; preds = %1030
  br label %5855

1032:                                             ; preds = %937
  br label %5855

1033:                                             ; preds = %211
  br label %1034

1034:                                             ; preds = %1033
  %1035 = load i8, ptr %11, align 1, !tbaa !18
  %1036 = sext i8 %1035 to i32
  %1037 = icmp ne i32 %1036, 10
  br i1 %1037, label %1038, label %1050

1038:                                             ; preds = %1034
  br label %1039

1039:                                             ; preds = %1038
  %1040 = load i32, ptr %21, align 4, !tbaa !11
  %1041 = load ptr, ptr %6, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.http_parser, ptr %1041, i32 0, i32 1
  store i32 %1040, ptr %1042, align 4, !tbaa !13
  %1043 = load ptr, ptr %6, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.http_parser, ptr %1043, i32 0, i32 5
  %1045 = load i32, ptr %1044, align 4
  %1046 = and i32 %1045, -2130706433
  %1047 = or i32 %1046, 503316480
  store i32 %1047, ptr %1044, align 4
  br label %1048

1048:                                             ; preds = %1039
  br label %1049

1049:                                             ; preds = %1048
  br label %6347

1050:                                             ; preds = %1034
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %5855

1053:                                             ; preds = %211
  %1054 = load i8, ptr %11, align 1, !tbaa !18
  %1055 = sext i8 %1054 to i32
  %1056 = icmp eq i32 %1055, 13
  br i1 %1056, label %1061, label %1057

1057:                                             ; preds = %1053
  %1058 = load i8, ptr %11, align 1, !tbaa !18
  %1059 = sext i8 %1058 to i32
  %1060 = icmp eq i32 %1059, 10
  br i1 %1060, label %1061, label %1062

1061:                                             ; preds = %1057, %1053
  br label %5855

1062:                                             ; preds = %1057
  %1063 = load ptr, ptr %6, align 8, !tbaa !5
  %1064 = load i32, ptr %1063, align 8
  %1065 = and i32 %1064, -1021
  %1066 = or i32 %1065, 0
  store i32 %1066, ptr %1063, align 8
  %1067 = load ptr, ptr %6, align 8, !tbaa !5
  %1068 = load i32, ptr %1067, align 8
  %1069 = and i32 %1068, -1610612737
  %1070 = or i32 %1069, 0
  store i32 %1070, ptr %1067, align 8
  %1071 = load ptr, ptr %6, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.http_parser, ptr %1071, i32 0, i32 2
  store i64 -1, ptr %1072, align 8, !tbaa !19
  %1073 = load i8, ptr %11, align 1, !tbaa !18
  %1074 = sext i8 %1073 to i32
  %1075 = or i32 %1074, 32
  %1076 = trunc i32 %1075 to i8
  %1077 = zext i8 %1076 to i32
  %1078 = icmp sge i32 %1077, 97
  br i1 %1078, label %1079, label %1086

1079:                                             ; preds = %1062
  %1080 = load i8, ptr %11, align 1, !tbaa !18
  %1081 = sext i8 %1080 to i32
  %1082 = or i32 %1081, 32
  %1083 = trunc i32 %1082 to i8
  %1084 = zext i8 %1083 to i32
  %1085 = icmp sle i32 %1084, 122
  br label %1086

1086:                                             ; preds = %1079, %1062
  %1087 = phi i1 [ false, %1062 ], [ %1085, %1079 ]
  %1088 = xor i1 %1087, true
  %1089 = xor i1 %1088, true
  %1090 = xor i1 %1089, true
  %1091 = zext i1 %1090 to i32
  %1092 = sext i32 %1091 to i64
  %1093 = call i64 @llvm.expect.i64(i64 %1092, i64 0)
  %1094 = icmp ne i64 %1093, 0
  br i1 %1094, label %1095, label %1107

1095:                                             ; preds = %1086
  br label %1096

1096:                                             ; preds = %1095
  %1097 = load i32, ptr %21, align 4, !tbaa !11
  %1098 = load ptr, ptr %6, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.http_parser, ptr %1098, i32 0, i32 1
  store i32 %1097, ptr %1099, align 4, !tbaa !13
  %1100 = load ptr, ptr %6, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.http_parser, ptr %1100, i32 0, i32 5
  %1102 = load i32, ptr %1101, align 4
  %1103 = and i32 %1102, -2130706433
  %1104 = or i32 %1103, 268435456
  store i32 %1104, ptr %1101, align 4
  br label %1105

1105:                                             ; preds = %1096
  br label %1106

1106:                                             ; preds = %1105
  br label %6347

1107:                                             ; preds = %1086
  %1108 = load ptr, ptr %6, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.http_parser, ptr %1108, i32 0, i32 5
  %1110 = load i32, ptr %1109, align 4
  %1111 = and i32 %1110, -16711681
  %1112 = or i32 %1111, 0
  store i32 %1112, ptr %1109, align 4
  %1113 = load ptr, ptr %6, align 8, !tbaa !5
  %1114 = load i32, ptr %1113, align 8
  %1115 = and i32 %1114, -520093697
  %1116 = or i32 %1115, 16777216
  store i32 %1116, ptr %1113, align 8
  %1117 = load i8, ptr %11, align 1, !tbaa !18
  %1118 = sext i8 %1117 to i32
  switch i32 %1118, label %1209 [
    i32 65, label %1119
    i32 66, label %1125
    i32 67, label %1131
    i32 68, label %1137
    i32 71, label %1143
    i32 72, label %1149
    i32 76, label %1155
    i32 77, label %1161
    i32 78, label %1167
    i32 79, label %1173
    i32 80, label %1179
    i32 82, label %1185
    i32 83, label %1191
    i32 84, label %1197
    i32 85, label %1203
  ]

1119:                                             ; preds = %1107
  %1120 = load ptr, ptr %6, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.http_parser, ptr %1120, i32 0, i32 5
  %1122 = load i32, ptr %1121, align 4
  %1123 = and i32 %1122, -16711681
  %1124 = or i32 %1123, 1245184
  store i32 %1124, ptr %1121, align 4
  br label %1221

1125:                                             ; preds = %1107
  %1126 = load ptr, ptr %6, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.http_parser, ptr %1126, i32 0, i32 5
  %1128 = load i32, ptr %1127, align 4
  %1129 = and i32 %1128, -16711681
  %1130 = or i32 %1129, 1048576
  store i32 %1130, ptr %1127, align 4
  br label %1221

1131:                                             ; preds = %1107
  %1132 = load ptr, ptr %6, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.http_parser, ptr %1132, i32 0, i32 5
  %1134 = load i32, ptr %1133, align 4
  %1135 = and i32 %1134, -16711681
  %1136 = or i32 %1135, 327680
  store i32 %1136, ptr %1133, align 4
  br label %1221

1137:                                             ; preds = %1107
  %1138 = load ptr, ptr %6, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.http_parser, ptr %1138, i32 0, i32 5
  %1140 = load i32, ptr %1139, align 4
  %1141 = and i32 %1140, -16711681
  %1142 = or i32 %1141, 0
  store i32 %1142, ptr %1139, align 4
  br label %1221

1143:                                             ; preds = %1107
  %1144 = load ptr, ptr %6, align 8, !tbaa !5
  %1145 = getelementptr inbounds %struct.http_parser, ptr %1144, i32 0, i32 5
  %1146 = load i32, ptr %1145, align 4
  %1147 = and i32 %1146, -16711681
  %1148 = or i32 %1147, 65536
  store i32 %1148, ptr %1145, align 4
  br label %1221

1149:                                             ; preds = %1107
  %1150 = load ptr, ptr %6, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.http_parser, ptr %1150, i32 0, i32 5
  %1152 = load i32, ptr %1151, align 4
  %1153 = and i32 %1152, -16711681
  %1154 = or i32 %1153, 131072
  store i32 %1154, ptr %1151, align 4
  br label %1221

1155:                                             ; preds = %1107
  %1156 = load ptr, ptr %6, align 8, !tbaa !5
  %1157 = getelementptr inbounds %struct.http_parser, ptr %1156, i32 0, i32 5
  %1158 = load i32, ptr %1157, align 4
  %1159 = and i32 %1158, -16711681
  %1160 = or i32 %1159, 589824
  store i32 %1160, ptr %1157, align 4
  br label %1221

1161:                                             ; preds = %1107
  %1162 = load ptr, ptr %6, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.http_parser, ptr %1162, i32 0, i32 5
  %1164 = load i32, ptr %1163, align 4
  %1165 = and i32 %1164, -16711681
  %1166 = or i32 %1165, 655360
  store i32 %1166, ptr %1163, align 4
  br label %1221

1167:                                             ; preds = %1107
  %1168 = load ptr, ptr %6, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.http_parser, ptr %1168, i32 0, i32 5
  %1170 = load i32, ptr %1169, align 4
  %1171 = and i32 %1170, -16711681
  %1172 = or i32 %1171, 1638400
  store i32 %1172, ptr %1169, align 4
  br label %1221

1173:                                             ; preds = %1107
  %1174 = load ptr, ptr %6, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.http_parser, ptr %1174, i32 0, i32 5
  %1176 = load i32, ptr %1175, align 4
  %1177 = and i32 %1176, -16711681
  %1178 = or i32 %1177, 393216
  store i32 %1178, ptr %1175, align 4
  br label %1221

1179:                                             ; preds = %1107
  %1180 = load ptr, ptr %6, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.http_parser, ptr %1180, i32 0, i32 5
  %1182 = load i32, ptr %1181, align 4
  %1183 = and i32 %1182, -16711681
  %1184 = or i32 %1183, 196608
  store i32 %1184, ptr %1181, align 4
  br label %1221

1185:                                             ; preds = %1107
  %1186 = load ptr, ptr %6, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.http_parser, ptr %1186, i32 0, i32 5
  %1188 = load i32, ptr %1187, align 4
  %1189 = and i32 %1188, -16711681
  %1190 = or i32 %1189, 1310720
  store i32 %1190, ptr %1187, align 4
  br label %1221

1191:                                             ; preds = %1107
  %1192 = load ptr, ptr %6, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.http_parser, ptr %1192, i32 0, i32 5
  %1194 = load i32, ptr %1193, align 4
  %1195 = and i32 %1194, -16711681
  %1196 = or i32 %1195, 1703936
  store i32 %1196, ptr %1193, align 4
  br label %1221

1197:                                             ; preds = %1107
  %1198 = load ptr, ptr %6, align 8, !tbaa !5
  %1199 = getelementptr inbounds %struct.http_parser, ptr %1198, i32 0, i32 5
  %1200 = load i32, ptr %1199, align 4
  %1201 = and i32 %1200, -16711681
  %1202 = or i32 %1201, 458752
  store i32 %1202, ptr %1199, align 4
  br label %1221

1203:                                             ; preds = %1107
  %1204 = load ptr, ptr %6, align 8, !tbaa !5
  %1205 = getelementptr inbounds %struct.http_parser, ptr %1204, i32 0, i32 5
  %1206 = load i32, ptr %1205, align 4
  %1207 = and i32 %1206, -16711681
  %1208 = or i32 %1207, 983040
  store i32 %1208, ptr %1205, align 4
  br label %1221

1209:                                             ; preds = %1107
  br label %1210

1210:                                             ; preds = %1209
  %1211 = load i32, ptr %21, align 4, !tbaa !11
  %1212 = load ptr, ptr %6, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.http_parser, ptr %1212, i32 0, i32 1
  store i32 %1211, ptr %1213, align 4, !tbaa !13
  %1214 = load ptr, ptr %6, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.http_parser, ptr %1214, i32 0, i32 5
  %1216 = load i32, ptr %1215, align 4
  %1217 = and i32 %1216, -2130706433
  %1218 = or i32 %1217, 268435456
  store i32 %1218, ptr %1215, align 4
  br label %1219

1219:                                             ; preds = %1210
  br label %1220

1220:                                             ; preds = %1219
  br label %6347

1221:                                             ; preds = %1203, %1197, %1191, %1185, %1179, %1173, %1167, %1161, %1155, %1149, %1143, %1137, %1131, %1125, %1119
  store i32 19, ptr %19, align 4, !tbaa !11
  br label %1222

1222:                                             ; preds = %1221
  %1223 = load ptr, ptr %6, align 8, !tbaa !5
  %1224 = getelementptr inbounds %struct.http_parser, ptr %1223, i32 0, i32 5
  %1225 = load i32, ptr %1224, align 4
  %1226 = lshr i32 %1225, 24
  %1227 = and i32 %1226, 127
  %1228 = icmp eq i32 %1227, 0
  br i1 %1228, label %1229, label %1230

1229:                                             ; preds = %1222
  br label %1231

1230:                                             ; preds = %1222
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 964, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1231:                                             ; preds = %1229
  %1232 = load ptr, ptr %7, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct.http_parser_settings, ptr %1232, i32 0, i32 0
  %1234 = load ptr, ptr %1233, align 8, !tbaa !20
  %1235 = icmp ne ptr %1234, null
  %1236 = xor i1 %1235, true
  %1237 = xor i1 %1236, true
  %1238 = zext i1 %1237 to i32
  %1239 = sext i32 %1238 to i64
  %1240 = call i64 @llvm.expect.i64(i64 %1239, i64 1)
  %1241 = icmp ne i64 %1240, 0
  br i1 %1241, label %1242, label %1299

1242:                                             ; preds = %1231
  %1243 = load i32, ptr %19, align 4, !tbaa !11
  %1244 = load ptr, ptr %6, align 8, !tbaa !5
  %1245 = load i32, ptr %1244, align 8
  %1246 = and i32 %1243, 127
  %1247 = shl i32 %1246, 10
  %1248 = and i32 %1245, -130049
  %1249 = or i32 %1248, %1247
  store i32 %1249, ptr %1244, align 8
  %1250 = load ptr, ptr %7, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.http_parser_settings, ptr %1250, i32 0, i32 0
  %1252 = load ptr, ptr %1251, align 8, !tbaa !20
  %1253 = load ptr, ptr %6, align 8, !tbaa !5
  %1254 = call i32 %1252(ptr noundef %1253)
  %1255 = icmp ne i32 0, %1254
  %1256 = xor i1 %1255, true
  %1257 = xor i1 %1256, true
  %1258 = zext i1 %1257 to i32
  %1259 = sext i32 %1258 to i64
  %1260 = call i64 @llvm.expect.i64(i64 %1259, i64 0)
  %1261 = icmp ne i64 %1260, 0
  br i1 %1261, label %1262, label %1274

1262:                                             ; preds = %1242
  br label %1263

1263:                                             ; preds = %1262
  %1264 = load i32, ptr %21, align 4, !tbaa !11
  %1265 = load ptr, ptr %6, align 8, !tbaa !5
  %1266 = getelementptr inbounds %struct.http_parser, ptr %1265, i32 0, i32 1
  store i32 %1264, ptr %1266, align 4, !tbaa !13
  %1267 = load ptr, ptr %6, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.http_parser, ptr %1267, i32 0, i32 5
  %1269 = load i32, ptr %1268, align 4
  %1270 = and i32 %1269, -2130706433
  %1271 = or i32 %1270, 16777216
  store i32 %1271, ptr %1268, align 4
  br label %1272

1272:                                             ; preds = %1263
  br label %1273

1273:                                             ; preds = %1272
  br label %1274

1274:                                             ; preds = %1273, %1242
  %1275 = load ptr, ptr %6, align 8, !tbaa !5
  %1276 = load i32, ptr %1275, align 8
  %1277 = lshr i32 %1276, 10
  %1278 = and i32 %1277, 127
  store i32 %1278, ptr %19, align 4, !tbaa !11
  %1279 = load ptr, ptr %6, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.http_parser, ptr %1279, i32 0, i32 5
  %1281 = load i32, ptr %1280, align 4
  %1282 = lshr i32 %1281, 24
  %1283 = and i32 %1282, 127
  %1284 = icmp ne i32 %1283, 0
  %1285 = xor i1 %1284, true
  %1286 = xor i1 %1285, true
  %1287 = zext i1 %1286 to i32
  %1288 = sext i32 %1287 to i64
  %1289 = call i64 @llvm.expect.i64(i64 %1288, i64 0)
  %1290 = icmp ne i64 %1289, 0
  br i1 %1290, label %1291, label %1298

1291:                                             ; preds = %1274
  %1292 = load ptr, ptr %13, align 8, !tbaa !5
  %1293 = load ptr, ptr %8, align 8, !tbaa !5
  %1294 = ptrtoint ptr %1292 to i64
  %1295 = ptrtoint ptr %1293 to i64
  %1296 = sub i64 %1294, %1295
  %1297 = add nsw i64 %1296, 1
  store i64 %1297, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

1298:                                             ; preds = %1274
  br label %1299

1299:                                             ; preds = %1298, %1231
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  br label %5855

1302:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  %1303 = load i8, ptr %11, align 1, !tbaa !18
  %1304 = sext i8 %1303 to i32
  %1305 = icmp eq i32 %1304, 0
  %1306 = xor i1 %1305, true
  %1307 = xor i1 %1306, true
  %1308 = zext i1 %1307 to i32
  %1309 = sext i32 %1308 to i64
  %1310 = call i64 @llvm.expect.i64(i64 %1309, i64 0)
  %1311 = icmp ne i64 %1310, 0
  br i1 %1311, label %1312, label %1324

1312:                                             ; preds = %1302
  br label %1313

1313:                                             ; preds = %1312
  %1314 = load i32, ptr %21, align 4, !tbaa !11
  %1315 = load ptr, ptr %6, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.http_parser, ptr %1315, i32 0, i32 1
  store i32 %1314, ptr %1316, align 4, !tbaa !13
  %1317 = load ptr, ptr %6, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.http_parser, ptr %1317, i32 0, i32 5
  %1319 = load i32, ptr %1318, align 4
  %1320 = and i32 %1319, -2130706433
  %1321 = or i32 %1320, 268435456
  store i32 %1321, ptr %1318, align 4
  br label %1322

1322:                                             ; preds = %1313
  br label %1323

1323:                                             ; preds = %1322
  store i32 17, ptr %22, align 4
  br label %1542

1324:                                             ; preds = %1302
  %1325 = load ptr, ptr %6, align 8, !tbaa !5
  %1326 = getelementptr inbounds %struct.http_parser, ptr %1325, i32 0, i32 5
  %1327 = load i32, ptr %1326, align 4
  %1328 = lshr i32 %1327, 16
  %1329 = and i32 %1328, 255
  %1330 = zext i32 %1329 to i64
  %1331 = getelementptr inbounds [34 x ptr], ptr @method_strings, i64 0, i64 %1330
  %1332 = load ptr, ptr %1331, align 8, !tbaa !5
  store ptr %1332, ptr %23, align 8, !tbaa !5
  %1333 = load i8, ptr %11, align 1, !tbaa !18
  %1334 = sext i8 %1333 to i32
  %1335 = icmp eq i32 %1334, 32
  br i1 %1335, label %1336, label %1348

1336:                                             ; preds = %1324
  %1337 = load ptr, ptr %23, align 8, !tbaa !5
  %1338 = load ptr, ptr %6, align 8, !tbaa !5
  %1339 = load i32, ptr %1338, align 8
  %1340 = lshr i32 %1339, 24
  %1341 = and i32 %1340, 31
  %1342 = zext i32 %1341 to i64
  %1343 = getelementptr inbounds i8, ptr %1337, i64 %1342
  %1344 = load i8, ptr %1343, align 1, !tbaa !18
  %1345 = sext i8 %1344 to i32
  %1346 = icmp eq i32 %1345, 0
  br i1 %1346, label %1347, label %1348

1347:                                             ; preds = %1336
  store i32 20, ptr %19, align 4, !tbaa !11
  br label %1531

1348:                                             ; preds = %1336, %1324
  %1349 = load i8, ptr %11, align 1, !tbaa !18
  %1350 = sext i8 %1349 to i32
  %1351 = load ptr, ptr %23, align 8, !tbaa !5
  %1352 = load ptr, ptr %6, align 8, !tbaa !5
  %1353 = load i32, ptr %1352, align 8
  %1354 = lshr i32 %1353, 24
  %1355 = and i32 %1354, 31
  %1356 = zext i32 %1355 to i64
  %1357 = getelementptr inbounds i8, ptr %1351, i64 %1356
  %1358 = load i8, ptr %1357, align 1, !tbaa !18
  %1359 = sext i8 %1358 to i32
  %1360 = icmp eq i32 %1350, %1359
  br i1 %1360, label %1361, label %1362

1361:                                             ; preds = %1348
  br label %1530

1362:                                             ; preds = %1348
  %1363 = load i8, ptr %11, align 1, !tbaa !18
  %1364 = sext i8 %1363 to i32
  %1365 = icmp sge i32 %1364, 65
  br i1 %1365, label %1366, label %1370

1366:                                             ; preds = %1362
  %1367 = load i8, ptr %11, align 1, !tbaa !18
  %1368 = sext i8 %1367 to i32
  %1369 = icmp sle i32 %1368, 90
  br i1 %1369, label %1374, label %1370

1370:                                             ; preds = %1366, %1362
  %1371 = load i8, ptr %11, align 1, !tbaa !18
  %1372 = sext i8 %1371 to i32
  %1373 = icmp eq i32 %1372, 45
  br i1 %1373, label %1374, label %1517

1374:                                             ; preds = %1370, %1366
  %1375 = load ptr, ptr %6, align 8, !tbaa !5
  %1376 = getelementptr inbounds %struct.http_parser, ptr %1375, i32 0, i32 5
  %1377 = load i32, ptr %1376, align 4
  %1378 = lshr i32 %1377, 16
  %1379 = and i32 %1378, 255
  %1380 = shl i32 %1379, 16
  %1381 = load ptr, ptr %6, align 8, !tbaa !5
  %1382 = load i32, ptr %1381, align 8
  %1383 = lshr i32 %1382, 24
  %1384 = and i32 %1383, 31
  %1385 = shl i32 %1384, 8
  %1386 = or i32 %1380, %1385
  %1387 = load i8, ptr %11, align 1, !tbaa !18
  %1388 = sext i8 %1387 to i32
  %1389 = or i32 %1386, %1388
  switch i32 %1389, label %1504 [
    i32 196949, label %1390
    i32 196929, label %1396
    i32 196946, label %1402
    i32 262738, label %1408
    i32 328008, label %1414
    i32 328272, label %1420
    i32 655695, label %1426
    i32 655685, label %1432
    i32 655661, label %1438
    i32 655937, label %1444
    i32 656193, label %1450
    i32 1704261, label %1456
    i32 1704271, label %1462
    i32 1311298, label %1468
    i32 787536, label %1474
    i32 590153, label %1480
    i32 983635, label %1486
    i32 983618, label %1492
    i32 983881, label %1498
  ]

1390:                                             ; preds = %1374
  %1391 = load ptr, ptr %6, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.http_parser, ptr %1391, i32 0, i32 5
  %1393 = load i32, ptr %1392, align 4
  %1394 = and i32 %1393, -16711681
  %1395 = or i32 %1394, 262144
  store i32 %1395, ptr %1392, align 4
  br label %1516

1396:                                             ; preds = %1374
  %1397 = load ptr, ptr %6, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.http_parser, ptr %1397, i32 0, i32 5
  %1399 = load i32, ptr %1398, align 4
  %1400 = and i32 %1399, -16711681
  %1401 = or i32 %1400, 1835008
  store i32 %1401, ptr %1398, align 4
  br label %1516

1402:                                             ; preds = %1374
  %1403 = load ptr, ptr %6, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.http_parser, ptr %1403, i32 0, i32 5
  %1405 = load i32, ptr %1404, align 4
  %1406 = and i32 %1405, -16711681
  %1407 = or i32 %1406, 786432
  store i32 %1407, ptr %1404, align 4
  br label %1516

1408:                                             ; preds = %1374
  %1409 = load ptr, ptr %6, align 8, !tbaa !5
  %1410 = getelementptr inbounds %struct.http_parser, ptr %1409, i32 0, i32 5
  %1411 = load i32, ptr %1410, align 4
  %1412 = and i32 %1411, -16711681
  %1413 = or i32 %1412, 1900544
  store i32 %1413, ptr %1410, align 4
  br label %1516

1414:                                             ; preds = %1374
  %1415 = load ptr, ptr %6, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.http_parser, ptr %1415, i32 0, i32 5
  %1417 = load i32, ptr %1416, align 4
  %1418 = and i32 %1417, -16711681
  %1419 = or i32 %1418, 1441792
  store i32 %1419, ptr %1416, align 4
  br label %1516

1420:                                             ; preds = %1374
  %1421 = load ptr, ptr %6, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.http_parser, ptr %1421, i32 0, i32 5
  %1423 = load i32, ptr %1422, align 4
  %1424 = and i32 %1423, -16711681
  %1425 = or i32 %1424, 524288
  store i32 %1425, ptr %1422, align 4
  br label %1516

1426:                                             ; preds = %1374
  %1427 = load ptr, ptr %6, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.http_parser, ptr %1427, i32 0, i32 5
  %1429 = load i32, ptr %1428, align 4
  %1430 = and i32 %1429, -16711681
  %1431 = or i32 %1430, 720896
  store i32 %1431, ptr %1428, align 4
  br label %1516

1432:                                             ; preds = %1374
  %1433 = load ptr, ptr %6, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.http_parser, ptr %1433, i32 0, i32 5
  %1435 = load i32, ptr %1434, align 4
  %1436 = and i32 %1435, -16711681
  %1437 = or i32 %1436, 1507328
  store i32 %1437, ptr %1434, align 4
  br label %1516

1438:                                             ; preds = %1374
  %1439 = load ptr, ptr %6, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.http_parser, ptr %1439, i32 0, i32 5
  %1441 = load i32, ptr %1440, align 4
  %1442 = and i32 %1441, -16711681
  %1443 = or i32 %1442, 1572864
  store i32 %1443, ptr %1440, align 4
  br label %1516

1444:                                             ; preds = %1374
  %1445 = load ptr, ptr %6, align 8, !tbaa !5
  %1446 = getelementptr inbounds %struct.http_parser, ptr %1445, i32 0, i32 5
  %1447 = load i32, ptr %1446, align 4
  %1448 = and i32 %1447, -16711681
  %1449 = or i32 %1448, 1376256
  store i32 %1449, ptr %1446, align 4
  br label %1516

1450:                                             ; preds = %1374
  %1451 = load ptr, ptr %6, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.http_parser, ptr %1451, i32 0, i32 5
  %1453 = load i32, ptr %1452, align 4
  %1454 = and i32 %1453, -16711681
  %1455 = or i32 %1454, 1966080
  store i32 %1455, ptr %1452, align 4
  br label %1516

1456:                                             ; preds = %1374
  %1457 = load ptr, ptr %6, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.http_parser, ptr %1457, i32 0, i32 5
  %1459 = load i32, ptr %1458, align 4
  %1460 = and i32 %1459, -16711681
  %1461 = or i32 %1460, 917504
  store i32 %1461, ptr %1458, align 4
  br label %1516

1462:                                             ; preds = %1374
  %1463 = load ptr, ptr %6, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.http_parser, ptr %1463, i32 0, i32 5
  %1465 = load i32, ptr %1464, align 4
  %1466 = and i32 %1465, -16711681
  %1467 = or i32 %1466, 2162688
  store i32 %1467, ptr %1464, align 4
  br label %1516

1468:                                             ; preds = %1374
  %1469 = load ptr, ptr %6, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.http_parser, ptr %1469, i32 0, i32 5
  %1471 = load i32, ptr %1470, align 4
  %1472 = and i32 %1471, -16711681
  %1473 = or i32 %1472, 1114112
  store i32 %1473, ptr %1470, align 4
  br label %1516

1474:                                             ; preds = %1374
  %1475 = load ptr, ptr %6, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.http_parser, ptr %1475, i32 0, i32 5
  %1477 = load i32, ptr %1476, align 4
  %1478 = and i32 %1477, -16711681
  %1479 = or i32 %1478, 851968
  store i32 %1479, ptr %1476, align 4
  br label %1516

1480:                                             ; preds = %1374
  %1481 = load ptr, ptr %6, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.http_parser, ptr %1481, i32 0, i32 5
  %1483 = load i32, ptr %1482, align 4
  %1484 = and i32 %1483, -16711681
  %1485 = or i32 %1484, 2031616
  store i32 %1485, ptr %1482, align 4
  br label %1516

1486:                                             ; preds = %1374
  %1487 = load ptr, ptr %6, align 8, !tbaa !5
  %1488 = getelementptr inbounds %struct.http_parser, ptr %1487, i32 0, i32 5
  %1489 = load i32, ptr %1488, align 4
  %1490 = and i32 %1489, -16711681
  %1491 = or i32 %1490, 1769472
  store i32 %1491, ptr %1488, align 4
  br label %1516

1492:                                             ; preds = %1374
  %1493 = load ptr, ptr %6, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.http_parser, ptr %1493, i32 0, i32 5
  %1495 = load i32, ptr %1494, align 4
  %1496 = and i32 %1495, -16711681
  %1497 = or i32 %1496, 1179648
  store i32 %1497, ptr %1494, align 4
  br label %1516

1498:                                             ; preds = %1374
  %1499 = load ptr, ptr %6, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.http_parser, ptr %1499, i32 0, i32 5
  %1501 = load i32, ptr %1500, align 4
  %1502 = and i32 %1501, -16711681
  %1503 = or i32 %1502, 2097152
  store i32 %1503, ptr %1500, align 4
  br label %1516

1504:                                             ; preds = %1374
  br label %1505

1505:                                             ; preds = %1504
  %1506 = load i32, ptr %21, align 4, !tbaa !11
  %1507 = load ptr, ptr %6, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.http_parser, ptr %1507, i32 0, i32 1
  store i32 %1506, ptr %1508, align 4, !tbaa !13
  %1509 = load ptr, ptr %6, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.http_parser, ptr %1509, i32 0, i32 5
  %1511 = load i32, ptr %1510, align 4
  %1512 = and i32 %1511, -2130706433
  %1513 = or i32 %1512, 268435456
  store i32 %1513, ptr %1510, align 4
  br label %1514

1514:                                             ; preds = %1505
  br label %1515

1515:                                             ; preds = %1514
  store i32 17, ptr %22, align 4
  br label %1542

1516:                                             ; preds = %1498, %1492, %1486, %1480, %1474, %1468, %1462, %1456, %1450, %1444, %1438, %1432, %1426, %1420, %1414, %1408, %1402, %1396, %1390
  br label %1529

1517:                                             ; preds = %1370
  br label %1518

1518:                                             ; preds = %1517
  %1519 = load i32, ptr %21, align 4, !tbaa !11
  %1520 = load ptr, ptr %6, align 8, !tbaa !5
  %1521 = getelementptr inbounds %struct.http_parser, ptr %1520, i32 0, i32 1
  store i32 %1519, ptr %1521, align 4, !tbaa !13
  %1522 = load ptr, ptr %6, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.http_parser, ptr %1522, i32 0, i32 5
  %1524 = load i32, ptr %1523, align 4
  %1525 = and i32 %1524, -2130706433
  %1526 = or i32 %1525, 268435456
  store i32 %1526, ptr %1523, align 4
  br label %1527

1527:                                             ; preds = %1518
  br label %1528

1528:                                             ; preds = %1527
  store i32 17, ptr %22, align 4
  br label %1542

1529:                                             ; preds = %1516
  br label %1530

1530:                                             ; preds = %1529, %1361
  br label %1531

1531:                                             ; preds = %1530, %1347
  %1532 = load ptr, ptr %6, align 8, !tbaa !5
  %1533 = load i32, ptr %1532, align 8
  %1534 = lshr i32 %1533, 24
  %1535 = and i32 %1534, 31
  %1536 = add i32 %1535, 1
  %1537 = load i32, ptr %1532, align 8
  %1538 = and i32 %1536, 31
  %1539 = shl i32 %1538, 24
  %1540 = and i32 %1537, -520093697
  %1541 = or i32 %1540, %1539
  store i32 %1541, ptr %1532, align 8
  store i32 19, ptr %22, align 4
  br label %1542

1542:                                             ; preds = %1531, %1528, %1515, %1323
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  %1543 = load i32, ptr %22, align 4
  switch i32 %1543, label %6385 [
    i32 19, label %5855
    i32 17, label %6347
  ]

1544:                                             ; preds = %211
  %1545 = load i8, ptr %11, align 1, !tbaa !18
  %1546 = sext i8 %1545 to i32
  %1547 = icmp eq i32 %1546, 32
  br i1 %1547, label %1548, label %1549

1548:                                             ; preds = %1544
  br label %5855

1549:                                             ; preds = %1544
  br label %1550

1550:                                             ; preds = %1549
  %1551 = load ptr, ptr %16, align 8, !tbaa !5
  %1552 = icmp ne ptr %1551, null
  br i1 %1552, label %1555, label %1553

1553:                                             ; preds = %1550
  %1554 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %1554, ptr %16, align 8, !tbaa !5
  br label %1555

1555:                                             ; preds = %1553, %1550
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  %1558 = load ptr, ptr %6, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.http_parser, ptr %1558, i32 0, i32 5
  %1560 = load i32, ptr %1559, align 4
  %1561 = lshr i32 %1560, 16
  %1562 = and i32 %1561, 255
  %1563 = icmp eq i32 %1562, 5
  br i1 %1563, label %1564, label %1565

1564:                                             ; preds = %1557
  store i32 24, ptr %19, align 4, !tbaa !11
  br label %1565

1565:                                             ; preds = %1564, %1557
  %1566 = load i32, ptr %19, align 4, !tbaa !11
  %1567 = load i8, ptr %11, align 1, !tbaa !18
  %1568 = call i32 @parse_url_char(i32 noundef %1566, i8 noundef signext %1567)
  store i32 %1568, ptr %19, align 4, !tbaa !11
  %1569 = load i32, ptr %19, align 4, !tbaa !11
  %1570 = icmp eq i32 %1569, 1
  %1571 = xor i1 %1570, true
  %1572 = xor i1 %1571, true
  %1573 = zext i1 %1572 to i32
  %1574 = sext i32 %1573 to i64
  %1575 = call i64 @llvm.expect.i64(i64 %1574, i64 0)
  %1576 = icmp ne i64 %1575, 0
  br i1 %1576, label %1577, label %1589

1577:                                             ; preds = %1565
  br label %1578

1578:                                             ; preds = %1577
  %1579 = load i32, ptr %21, align 4, !tbaa !11
  %1580 = load ptr, ptr %6, align 8, !tbaa !5
  %1581 = getelementptr inbounds %struct.http_parser, ptr %1580, i32 0, i32 1
  store i32 %1579, ptr %1581, align 4, !tbaa !13
  %1582 = load ptr, ptr %6, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.http_parser, ptr %1582, i32 0, i32 5
  %1584 = load i32, ptr %1583, align 4
  %1585 = and i32 %1584, -2130706433
  %1586 = or i32 %1585, 285212672
  store i32 %1586, ptr %1583, align 4
  br label %1587

1587:                                             ; preds = %1578
  br label %1588

1588:                                             ; preds = %1587
  br label %6347

1589:                                             ; preds = %1565
  br label %5855

1590:                                             ; preds = %211, %211, %211, %211
  %1591 = load i8, ptr %11, align 1, !tbaa !18
  %1592 = sext i8 %1591 to i32
  switch i32 %1592, label %1605 [
    i32 32, label %1593
    i32 13, label %1593
    i32 10, label %1593
  ]

1593:                                             ; preds = %1590, %1590, %1590
  br label %1594

1594:                                             ; preds = %1593
  %1595 = load i32, ptr %21, align 4, !tbaa !11
  %1596 = load ptr, ptr %6, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.http_parser, ptr %1596, i32 0, i32 1
  store i32 %1595, ptr %1597, align 4, !tbaa !13
  %1598 = load ptr, ptr %6, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.http_parser, ptr %1598, i32 0, i32 5
  %1600 = load i32, ptr %1599, align 4
  %1601 = and i32 %1600, -2130706433
  %1602 = or i32 %1601, 285212672
  store i32 %1602, ptr %1599, align 4
  br label %1603

1603:                                             ; preds = %1594
  br label %1604

1604:                                             ; preds = %1603
  br label %6347

1605:                                             ; preds = %1590
  %1606 = load i32, ptr %19, align 4, !tbaa !11
  %1607 = load i8, ptr %11, align 1, !tbaa !18
  %1608 = call i32 @parse_url_char(i32 noundef %1606, i8 noundef signext %1607)
  store i32 %1608, ptr %19, align 4, !tbaa !11
  %1609 = load i32, ptr %19, align 4, !tbaa !11
  %1610 = icmp eq i32 %1609, 1
  %1611 = xor i1 %1610, true
  %1612 = xor i1 %1611, true
  %1613 = zext i1 %1612 to i32
  %1614 = sext i32 %1613 to i64
  %1615 = call i64 @llvm.expect.i64(i64 %1614, i64 0)
  %1616 = icmp ne i64 %1615, 0
  br i1 %1616, label %1617, label %1629

1617:                                             ; preds = %1605
  br label %1618

1618:                                             ; preds = %1617
  %1619 = load i32, ptr %21, align 4, !tbaa !11
  %1620 = load ptr, ptr %6, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.http_parser, ptr %1620, i32 0, i32 1
  store i32 %1619, ptr %1621, align 4, !tbaa !13
  %1622 = load ptr, ptr %6, align 8, !tbaa !5
  %1623 = getelementptr inbounds %struct.http_parser, ptr %1622, i32 0, i32 5
  %1624 = load i32, ptr %1623, align 4
  %1625 = and i32 %1624, -2130706433
  %1626 = or i32 %1625, 285212672
  store i32 %1626, ptr %1623, align 4
  br label %1627

1627:                                             ; preds = %1618
  br label %1628

1628:                                             ; preds = %1627
  br label %6347

1629:                                             ; preds = %1605
  br label %1630

1630:                                             ; preds = %1629
  br label %5855

1631:                                             ; preds = %211, %211, %211, %211, %211, %211, %211
  %1632 = load i8, ptr %11, align 1, !tbaa !18
  %1633 = sext i8 %1632 to i32
  switch i32 %1633, label %1825 [
    i32 32, label %1634
    i32 13, label %1725
    i32 10, label %1725
  ]

1634:                                             ; preds = %1631
  store i32 32, ptr %19, align 4, !tbaa !11
  br label %1635

1635:                                             ; preds = %1634
  %1636 = load ptr, ptr %6, align 8, !tbaa !5
  %1637 = getelementptr inbounds %struct.http_parser, ptr %1636, i32 0, i32 5
  %1638 = load i32, ptr %1637, align 4
  %1639 = lshr i32 %1638, 24
  %1640 = and i32 %1639, 127
  %1641 = icmp eq i32 %1640, 0
  br i1 %1641, label %1642, label %1643

1642:                                             ; preds = %1635
  br label %1644

1643:                                             ; preds = %1635
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1074, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1644:                                             ; preds = %1642
  %1645 = load ptr, ptr %16, align 8, !tbaa !5
  %1646 = icmp ne ptr %1645, null
  br i1 %1646, label %1647, label %1722

1647:                                             ; preds = %1644
  %1648 = load ptr, ptr %7, align 8, !tbaa !5
  %1649 = getelementptr inbounds %struct.http_parser_settings, ptr %1648, i32 0, i32 1
  %1650 = load ptr, ptr %1649, align 8, !tbaa !24
  %1651 = icmp ne ptr %1650, null
  %1652 = xor i1 %1651, true
  %1653 = xor i1 %1652, true
  %1654 = zext i1 %1653 to i32
  %1655 = sext i32 %1654 to i64
  %1656 = call i64 @llvm.expect.i64(i64 %1655, i64 1)
  %1657 = icmp ne i64 %1656, 0
  br i1 %1657, label %1658, label %1721

1658:                                             ; preds = %1647
  %1659 = load i32, ptr %19, align 4, !tbaa !11
  %1660 = load ptr, ptr %6, align 8, !tbaa !5
  %1661 = load i32, ptr %1660, align 8
  %1662 = and i32 %1659, 127
  %1663 = shl i32 %1662, 10
  %1664 = and i32 %1661, -130049
  %1665 = or i32 %1664, %1663
  store i32 %1665, ptr %1660, align 8
  %1666 = load ptr, ptr %7, align 8, !tbaa !5
  %1667 = getelementptr inbounds %struct.http_parser_settings, ptr %1666, i32 0, i32 1
  %1668 = load ptr, ptr %1667, align 8, !tbaa !24
  %1669 = load ptr, ptr %6, align 8, !tbaa !5
  %1670 = load ptr, ptr %16, align 8, !tbaa !5
  %1671 = load ptr, ptr %13, align 8, !tbaa !5
  %1672 = load ptr, ptr %16, align 8, !tbaa !5
  %1673 = ptrtoint ptr %1671 to i64
  %1674 = ptrtoint ptr %1672 to i64
  %1675 = sub i64 %1673, %1674
  %1676 = call i32 %1668(ptr noundef %1669, ptr noundef %1670, i64 noundef %1675)
  %1677 = icmp ne i32 0, %1676
  %1678 = xor i1 %1677, true
  %1679 = xor i1 %1678, true
  %1680 = zext i1 %1679 to i32
  %1681 = sext i32 %1680 to i64
  %1682 = call i64 @llvm.expect.i64(i64 %1681, i64 0)
  %1683 = icmp ne i64 %1682, 0
  br i1 %1683, label %1684, label %1696

1684:                                             ; preds = %1658
  br label %1685

1685:                                             ; preds = %1684
  %1686 = load i32, ptr %21, align 4, !tbaa !11
  %1687 = load ptr, ptr %6, align 8, !tbaa !5
  %1688 = getelementptr inbounds %struct.http_parser, ptr %1687, i32 0, i32 1
  store i32 %1686, ptr %1688, align 4, !tbaa !13
  %1689 = load ptr, ptr %6, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.http_parser, ptr %1689, i32 0, i32 5
  %1691 = load i32, ptr %1690, align 4
  %1692 = and i32 %1691, -2130706433
  %1693 = or i32 %1692, 33554432
  store i32 %1693, ptr %1690, align 4
  br label %1694

1694:                                             ; preds = %1685
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695, %1658
  %1697 = load ptr, ptr %6, align 8, !tbaa !5
  %1698 = load i32, ptr %1697, align 8
  %1699 = lshr i32 %1698, 10
  %1700 = and i32 %1699, 127
  store i32 %1700, ptr %19, align 4, !tbaa !11
  %1701 = load ptr, ptr %6, align 8, !tbaa !5
  %1702 = getelementptr inbounds %struct.http_parser, ptr %1701, i32 0, i32 5
  %1703 = load i32, ptr %1702, align 4
  %1704 = lshr i32 %1703, 24
  %1705 = and i32 %1704, 127
  %1706 = icmp ne i32 %1705, 0
  %1707 = xor i1 %1706, true
  %1708 = xor i1 %1707, true
  %1709 = zext i1 %1708 to i32
  %1710 = sext i32 %1709 to i64
  %1711 = call i64 @llvm.expect.i64(i64 %1710, i64 0)
  %1712 = icmp ne i64 %1711, 0
  br i1 %1712, label %1713, label %1720

1713:                                             ; preds = %1696
  %1714 = load ptr, ptr %13, align 8, !tbaa !5
  %1715 = load ptr, ptr %8, align 8, !tbaa !5
  %1716 = ptrtoint ptr %1714 to i64
  %1717 = ptrtoint ptr %1715 to i64
  %1718 = sub i64 %1716, %1717
  %1719 = add nsw i64 %1718, 1
  store i64 %1719, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

1720:                                             ; preds = %1696
  br label %1721

1721:                                             ; preds = %1720, %1647
  store ptr null, ptr %16, align 8, !tbaa !5
  br label %1722

1722:                                             ; preds = %1721, %1644
  br label %1723

1723:                                             ; preds = %1722
  br label %1724

1724:                                             ; preds = %1723
  br label %1850

1725:                                             ; preds = %1631, %1631
  %1726 = load ptr, ptr %6, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.http_parser, ptr %1726, i32 0, i32 3
  store i16 0, ptr %1727, align 8, !tbaa !21
  %1728 = load ptr, ptr %6, align 8, !tbaa !5
  %1729 = getelementptr inbounds %struct.http_parser, ptr %1728, i32 0, i32 4
  store i16 9, ptr %1729, align 2, !tbaa !22
  %1730 = load i8, ptr %11, align 1, !tbaa !18
  %1731 = sext i8 %1730 to i32
  %1732 = icmp eq i32 %1731, 13
  %1733 = zext i1 %1732 to i64
  %1734 = select i1 %1732, i32 43, i32 44
  store i32 %1734, ptr %19, align 4, !tbaa !11
  br label %1735

1735:                                             ; preds = %1725
  %1736 = load ptr, ptr %6, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.http_parser, ptr %1736, i32 0, i32 5
  %1738 = load i32, ptr %1737, align 4
  %1739 = lshr i32 %1738, 24
  %1740 = and i32 %1739, 127
  %1741 = icmp eq i32 %1740, 0
  br i1 %1741, label %1742, label %1743

1742:                                             ; preds = %1735
  br label %1744

1743:                                             ; preds = %1735
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1083, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1744:                                             ; preds = %1742
  %1745 = load ptr, ptr %16, align 8, !tbaa !5
  %1746 = icmp ne ptr %1745, null
  br i1 %1746, label %1747, label %1822

1747:                                             ; preds = %1744
  %1748 = load ptr, ptr %7, align 8, !tbaa !5
  %1749 = getelementptr inbounds %struct.http_parser_settings, ptr %1748, i32 0, i32 1
  %1750 = load ptr, ptr %1749, align 8, !tbaa !24
  %1751 = icmp ne ptr %1750, null
  %1752 = xor i1 %1751, true
  %1753 = xor i1 %1752, true
  %1754 = zext i1 %1753 to i32
  %1755 = sext i32 %1754 to i64
  %1756 = call i64 @llvm.expect.i64(i64 %1755, i64 1)
  %1757 = icmp ne i64 %1756, 0
  br i1 %1757, label %1758, label %1821

1758:                                             ; preds = %1747
  %1759 = load i32, ptr %19, align 4, !tbaa !11
  %1760 = load ptr, ptr %6, align 8, !tbaa !5
  %1761 = load i32, ptr %1760, align 8
  %1762 = and i32 %1759, 127
  %1763 = shl i32 %1762, 10
  %1764 = and i32 %1761, -130049
  %1765 = or i32 %1764, %1763
  store i32 %1765, ptr %1760, align 8
  %1766 = load ptr, ptr %7, align 8, !tbaa !5
  %1767 = getelementptr inbounds %struct.http_parser_settings, ptr %1766, i32 0, i32 1
  %1768 = load ptr, ptr %1767, align 8, !tbaa !24
  %1769 = load ptr, ptr %6, align 8, !tbaa !5
  %1770 = load ptr, ptr %16, align 8, !tbaa !5
  %1771 = load ptr, ptr %13, align 8, !tbaa !5
  %1772 = load ptr, ptr %16, align 8, !tbaa !5
  %1773 = ptrtoint ptr %1771 to i64
  %1774 = ptrtoint ptr %1772 to i64
  %1775 = sub i64 %1773, %1774
  %1776 = call i32 %1768(ptr noundef %1769, ptr noundef %1770, i64 noundef %1775)
  %1777 = icmp ne i32 0, %1776
  %1778 = xor i1 %1777, true
  %1779 = xor i1 %1778, true
  %1780 = zext i1 %1779 to i32
  %1781 = sext i32 %1780 to i64
  %1782 = call i64 @llvm.expect.i64(i64 %1781, i64 0)
  %1783 = icmp ne i64 %1782, 0
  br i1 %1783, label %1784, label %1796

1784:                                             ; preds = %1758
  br label %1785

1785:                                             ; preds = %1784
  %1786 = load i32, ptr %21, align 4, !tbaa !11
  %1787 = load ptr, ptr %6, align 8, !tbaa !5
  %1788 = getelementptr inbounds %struct.http_parser, ptr %1787, i32 0, i32 1
  store i32 %1786, ptr %1788, align 4, !tbaa !13
  %1789 = load ptr, ptr %6, align 8, !tbaa !5
  %1790 = getelementptr inbounds %struct.http_parser, ptr %1789, i32 0, i32 5
  %1791 = load i32, ptr %1790, align 4
  %1792 = and i32 %1791, -2130706433
  %1793 = or i32 %1792, 33554432
  store i32 %1793, ptr %1790, align 4
  br label %1794

1794:                                             ; preds = %1785
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795, %1758
  %1797 = load ptr, ptr %6, align 8, !tbaa !5
  %1798 = load i32, ptr %1797, align 8
  %1799 = lshr i32 %1798, 10
  %1800 = and i32 %1799, 127
  store i32 %1800, ptr %19, align 4, !tbaa !11
  %1801 = load ptr, ptr %6, align 8, !tbaa !5
  %1802 = getelementptr inbounds %struct.http_parser, ptr %1801, i32 0, i32 5
  %1803 = load i32, ptr %1802, align 4
  %1804 = lshr i32 %1803, 24
  %1805 = and i32 %1804, 127
  %1806 = icmp ne i32 %1805, 0
  %1807 = xor i1 %1806, true
  %1808 = xor i1 %1807, true
  %1809 = zext i1 %1808 to i32
  %1810 = sext i32 %1809 to i64
  %1811 = call i64 @llvm.expect.i64(i64 %1810, i64 0)
  %1812 = icmp ne i64 %1811, 0
  br i1 %1812, label %1813, label %1820

1813:                                             ; preds = %1796
  %1814 = load ptr, ptr %13, align 8, !tbaa !5
  %1815 = load ptr, ptr %8, align 8, !tbaa !5
  %1816 = ptrtoint ptr %1814 to i64
  %1817 = ptrtoint ptr %1815 to i64
  %1818 = sub i64 %1816, %1817
  %1819 = add nsw i64 %1818, 1
  store i64 %1819, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

1820:                                             ; preds = %1796
  br label %1821

1821:                                             ; preds = %1820, %1747
  store ptr null, ptr %16, align 8, !tbaa !5
  br label %1822

1822:                                             ; preds = %1821, %1744
  br label %1823

1823:                                             ; preds = %1822
  br label %1824

1824:                                             ; preds = %1823
  br label %1850

1825:                                             ; preds = %1631
  %1826 = load i32, ptr %19, align 4, !tbaa !11
  %1827 = load i8, ptr %11, align 1, !tbaa !18
  %1828 = call i32 @parse_url_char(i32 noundef %1826, i8 noundef signext %1827)
  store i32 %1828, ptr %19, align 4, !tbaa !11
  %1829 = load i32, ptr %19, align 4, !tbaa !11
  %1830 = icmp eq i32 %1829, 1
  %1831 = xor i1 %1830, true
  %1832 = xor i1 %1831, true
  %1833 = zext i1 %1832 to i32
  %1834 = sext i32 %1833 to i64
  %1835 = call i64 @llvm.expect.i64(i64 %1834, i64 0)
  %1836 = icmp ne i64 %1835, 0
  br i1 %1836, label %1837, label %1849

1837:                                             ; preds = %1825
  br label %1838

1838:                                             ; preds = %1837
  %1839 = load i32, ptr %21, align 4, !tbaa !11
  %1840 = load ptr, ptr %6, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.http_parser, ptr %1840, i32 0, i32 1
  store i32 %1839, ptr %1841, align 4, !tbaa !13
  %1842 = load ptr, ptr %6, align 8, !tbaa !5
  %1843 = getelementptr inbounds %struct.http_parser, ptr %1842, i32 0, i32 5
  %1844 = load i32, ptr %1843, align 4
  %1845 = and i32 %1844, -2130706433
  %1846 = or i32 %1845, 285212672
  store i32 %1846, ptr %1843, align 4
  br label %1847

1847:                                             ; preds = %1838
  br label %1848

1848:                                             ; preds = %1847
  br label %6347

1849:                                             ; preds = %1825
  br label %1850

1850:                                             ; preds = %1849, %1824, %1724
  br label %5855

1851:                                             ; preds = %211
  %1852 = load i8, ptr %11, align 1, !tbaa !18
  %1853 = sext i8 %1852 to i32
  switch i32 %1853, label %1864 [
    i32 32, label %1876
    i32 72, label %1854
    i32 73, label %1855
  ]

1854:                                             ; preds = %1851
  store i32 33, ptr %19, align 4, !tbaa !11
  br label %1876

1855:                                             ; preds = %1851
  %1856 = load ptr, ptr %6, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.http_parser, ptr %1856, i32 0, i32 5
  %1858 = load i32, ptr %1857, align 4
  %1859 = lshr i32 %1858, 16
  %1860 = and i32 %1859, 255
  %1861 = icmp eq i32 %1860, 33
  br i1 %1861, label %1862, label %1863

1862:                                             ; preds = %1855
  store i32 37, ptr %19, align 4, !tbaa !11
  br label %1876

1863:                                             ; preds = %1855
  br label %1864

1864:                                             ; preds = %1863, %1851
  br label %1865

1865:                                             ; preds = %1864
  %1866 = load i32, ptr %21, align 4, !tbaa !11
  %1867 = load ptr, ptr %6, align 8, !tbaa !5
  %1868 = getelementptr inbounds %struct.http_parser, ptr %1867, i32 0, i32 1
  store i32 %1866, ptr %1868, align 4, !tbaa !13
  %1869 = load ptr, ptr %6, align 8, !tbaa !5
  %1870 = getelementptr inbounds %struct.http_parser, ptr %1869, i32 0, i32 5
  %1871 = load i32, ptr %1870, align 4
  %1872 = and i32 %1871, -2130706433
  %1873 = or i32 %1872, 469762048
  store i32 %1873, ptr %1870, align 4
  br label %1874

1874:                                             ; preds = %1865
  br label %1875

1875:                                             ; preds = %1874
  br label %6347

1876:                                             ; preds = %1862, %1854, %1851
  br label %5855

1877:                                             ; preds = %211
  br label %1878

1878:                                             ; preds = %1877
  %1879 = load i8, ptr %11, align 1, !tbaa !18
  %1880 = sext i8 %1879 to i32
  %1881 = icmp ne i32 %1880, 84
  br i1 %1881, label %1882, label %1894

1882:                                             ; preds = %1878
  br label %1883

1883:                                             ; preds = %1882
  %1884 = load i32, ptr %21, align 4, !tbaa !11
  %1885 = load ptr, ptr %6, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.http_parser, ptr %1885, i32 0, i32 1
  store i32 %1884, ptr %1886, align 4, !tbaa !13
  %1887 = load ptr, ptr %6, align 8, !tbaa !5
  %1888 = getelementptr inbounds %struct.http_parser, ptr %1887, i32 0, i32 5
  %1889 = load i32, ptr %1888, align 4
  %1890 = and i32 %1889, -2130706433
  %1891 = or i32 %1890, 503316480
  store i32 %1891, ptr %1888, align 4
  br label %1892

1892:                                             ; preds = %1883
  br label %1893

1893:                                             ; preds = %1892
  br label %6347

1894:                                             ; preds = %1878
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895
  store i32 34, ptr %19, align 4, !tbaa !11
  br label %5855

1897:                                             ; preds = %211
  br label %1898

1898:                                             ; preds = %1897
  %1899 = load i8, ptr %11, align 1, !tbaa !18
  %1900 = sext i8 %1899 to i32
  %1901 = icmp ne i32 %1900, 84
  br i1 %1901, label %1902, label %1914

1902:                                             ; preds = %1898
  br label %1903

1903:                                             ; preds = %1902
  %1904 = load i32, ptr %21, align 4, !tbaa !11
  %1905 = load ptr, ptr %6, align 8, !tbaa !5
  %1906 = getelementptr inbounds %struct.http_parser, ptr %1905, i32 0, i32 1
  store i32 %1904, ptr %1906, align 4, !tbaa !13
  %1907 = load ptr, ptr %6, align 8, !tbaa !5
  %1908 = getelementptr inbounds %struct.http_parser, ptr %1907, i32 0, i32 5
  %1909 = load i32, ptr %1908, align 4
  %1910 = and i32 %1909, -2130706433
  %1911 = or i32 %1910, 503316480
  store i32 %1911, ptr %1908, align 4
  br label %1912

1912:                                             ; preds = %1903
  br label %1913

1913:                                             ; preds = %1912
  br label %6347

1914:                                             ; preds = %1898
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  store i32 35, ptr %19, align 4, !tbaa !11
  br label %5855

1917:                                             ; preds = %211
  br label %1918

1918:                                             ; preds = %1917
  %1919 = load i8, ptr %11, align 1, !tbaa !18
  %1920 = sext i8 %1919 to i32
  %1921 = icmp ne i32 %1920, 80
  br i1 %1921, label %1922, label %1934

1922:                                             ; preds = %1918
  br label %1923

1923:                                             ; preds = %1922
  %1924 = load i32, ptr %21, align 4, !tbaa !11
  %1925 = load ptr, ptr %6, align 8, !tbaa !5
  %1926 = getelementptr inbounds %struct.http_parser, ptr %1925, i32 0, i32 1
  store i32 %1924, ptr %1926, align 4, !tbaa !13
  %1927 = load ptr, ptr %6, align 8, !tbaa !5
  %1928 = getelementptr inbounds %struct.http_parser, ptr %1927, i32 0, i32 5
  %1929 = load i32, ptr %1928, align 4
  %1930 = and i32 %1929, -2130706433
  %1931 = or i32 %1930, 503316480
  store i32 %1931, ptr %1928, align 4
  br label %1932

1932:                                             ; preds = %1923
  br label %1933

1933:                                             ; preds = %1932
  br label %6347

1934:                                             ; preds = %1918
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  store i32 36, ptr %19, align 4, !tbaa !11
  br label %5855

1937:                                             ; preds = %211
  br label %1938

1938:                                             ; preds = %1937
  %1939 = load i8, ptr %11, align 1, !tbaa !18
  %1940 = sext i8 %1939 to i32
  %1941 = icmp ne i32 %1940, 67
  br i1 %1941, label %1942, label %1954

1942:                                             ; preds = %1938
  br label %1943

1943:                                             ; preds = %1942
  %1944 = load i32, ptr %21, align 4, !tbaa !11
  %1945 = load ptr, ptr %6, align 8, !tbaa !5
  %1946 = getelementptr inbounds %struct.http_parser, ptr %1945, i32 0, i32 1
  store i32 %1944, ptr %1946, align 4, !tbaa !13
  %1947 = load ptr, ptr %6, align 8, !tbaa !5
  %1948 = getelementptr inbounds %struct.http_parser, ptr %1947, i32 0, i32 5
  %1949 = load i32, ptr %1948, align 4
  %1950 = and i32 %1949, -2130706433
  %1951 = or i32 %1950, 503316480
  store i32 %1951, ptr %1948, align 4
  br label %1952

1952:                                             ; preds = %1943
  br label %1953

1953:                                             ; preds = %1952
  br label %6347

1954:                                             ; preds = %1938
  br label %1955

1955:                                             ; preds = %1954
  br label %1956

1956:                                             ; preds = %1955
  store i32 38, ptr %19, align 4, !tbaa !11
  br label %5855

1957:                                             ; preds = %211
  br label %1958

1958:                                             ; preds = %1957
  %1959 = load i8, ptr %11, align 1, !tbaa !18
  %1960 = sext i8 %1959 to i32
  %1961 = icmp ne i32 %1960, 69
  br i1 %1961, label %1962, label %1974

1962:                                             ; preds = %1958
  br label %1963

1963:                                             ; preds = %1962
  %1964 = load i32, ptr %21, align 4, !tbaa !11
  %1965 = load ptr, ptr %6, align 8, !tbaa !5
  %1966 = getelementptr inbounds %struct.http_parser, ptr %1965, i32 0, i32 1
  store i32 %1964, ptr %1966, align 4, !tbaa !13
  %1967 = load ptr, ptr %6, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.http_parser, ptr %1967, i32 0, i32 5
  %1969 = load i32, ptr %1968, align 4
  %1970 = and i32 %1969, -2130706433
  %1971 = or i32 %1970, 503316480
  store i32 %1971, ptr %1968, align 4
  br label %1972

1972:                                             ; preds = %1963
  br label %1973

1973:                                             ; preds = %1972
  br label %6347

1974:                                             ; preds = %1958
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  store i32 36, ptr %19, align 4, !tbaa !11
  br label %5855

1977:                                             ; preds = %211
  br label %1978

1978:                                             ; preds = %1977
  %1979 = load i8, ptr %11, align 1, !tbaa !18
  %1980 = sext i8 %1979 to i32
  %1981 = icmp ne i32 %1980, 47
  br i1 %1981, label %1982, label %1994

1982:                                             ; preds = %1978
  br label %1983

1983:                                             ; preds = %1982
  %1984 = load i32, ptr %21, align 4, !tbaa !11
  %1985 = load ptr, ptr %6, align 8, !tbaa !5
  %1986 = getelementptr inbounds %struct.http_parser, ptr %1985, i32 0, i32 1
  store i32 %1984, ptr %1986, align 4, !tbaa !13
  %1987 = load ptr, ptr %6, align 8, !tbaa !5
  %1988 = getelementptr inbounds %struct.http_parser, ptr %1987, i32 0, i32 5
  %1989 = load i32, ptr %1988, align 4
  %1990 = and i32 %1989, -2130706433
  %1991 = or i32 %1990, 503316480
  store i32 %1991, ptr %1988, align 4
  br label %1992

1992:                                             ; preds = %1983
  br label %1993

1993:                                             ; preds = %1992
  br label %6347

1994:                                             ; preds = %1978
  br label %1995

1995:                                             ; preds = %1994
  br label %1996

1996:                                             ; preds = %1995
  store i32 39, ptr %19, align 4, !tbaa !11
  br label %5855

1997:                                             ; preds = %211
  %1998 = load i8, ptr %11, align 1, !tbaa !18
  %1999 = sext i8 %1998 to i32
  %2000 = icmp sge i32 %1999, 48
  br i1 %2000, label %2001, label %2005

2001:                                             ; preds = %1997
  %2002 = load i8, ptr %11, align 1, !tbaa !18
  %2003 = sext i8 %2002 to i32
  %2004 = icmp sle i32 %2003, 57
  br label %2005

2005:                                             ; preds = %2001, %1997
  %2006 = phi i1 [ false, %1997 ], [ %2004, %2001 ]
  %2007 = xor i1 %2006, true
  %2008 = xor i1 %2007, true
  %2009 = xor i1 %2008, true
  %2010 = zext i1 %2009 to i32
  %2011 = sext i32 %2010 to i64
  %2012 = call i64 @llvm.expect.i64(i64 %2011, i64 0)
  %2013 = icmp ne i64 %2012, 0
  br i1 %2013, label %2014, label %2026

2014:                                             ; preds = %2005
  br label %2015

2015:                                             ; preds = %2014
  %2016 = load i32, ptr %21, align 4, !tbaa !11
  %2017 = load ptr, ptr %6, align 8, !tbaa !5
  %2018 = getelementptr inbounds %struct.http_parser, ptr %2017, i32 0, i32 1
  store i32 %2016, ptr %2018, align 4, !tbaa !13
  %2019 = load ptr, ptr %6, align 8, !tbaa !5
  %2020 = getelementptr inbounds %struct.http_parser, ptr %2019, i32 0, i32 5
  %2021 = load i32, ptr %2020, align 4
  %2022 = and i32 %2021, -2130706433
  %2023 = or i32 %2022, 234881024
  store i32 %2023, ptr %2020, align 4
  br label %2024

2024:                                             ; preds = %2015
  br label %2025

2025:                                             ; preds = %2024
  br label %6347

2026:                                             ; preds = %2005
  %2027 = load i8, ptr %11, align 1, !tbaa !18
  %2028 = sext i8 %2027 to i32
  %2029 = sub nsw i32 %2028, 48
  %2030 = trunc i32 %2029 to i16
  %2031 = load ptr, ptr %6, align 8, !tbaa !5
  %2032 = getelementptr inbounds %struct.http_parser, ptr %2031, i32 0, i32 3
  store i16 %2030, ptr %2032, align 8, !tbaa !21
  store i32 40, ptr %19, align 4, !tbaa !11
  br label %5855

2033:                                             ; preds = %211
  %2034 = load i8, ptr %11, align 1, !tbaa !18
  %2035 = sext i8 %2034 to i32
  %2036 = icmp ne i32 %2035, 46
  %2037 = xor i1 %2036, true
  %2038 = xor i1 %2037, true
  %2039 = zext i1 %2038 to i32
  %2040 = sext i32 %2039 to i64
  %2041 = call i64 @llvm.expect.i64(i64 %2040, i64 0)
  %2042 = icmp ne i64 %2041, 0
  br i1 %2042, label %2043, label %2055

2043:                                             ; preds = %2033
  br label %2044

2044:                                             ; preds = %2043
  %2045 = load i32, ptr %21, align 4, !tbaa !11
  %2046 = load ptr, ptr %6, align 8, !tbaa !5
  %2047 = getelementptr inbounds %struct.http_parser, ptr %2046, i32 0, i32 1
  store i32 %2045, ptr %2047, align 4, !tbaa !13
  %2048 = load ptr, ptr %6, align 8, !tbaa !5
  %2049 = getelementptr inbounds %struct.http_parser, ptr %2048, i32 0, i32 5
  %2050 = load i32, ptr %2049, align 4
  %2051 = and i32 %2050, -2130706433
  %2052 = or i32 %2051, 234881024
  store i32 %2052, ptr %2049, align 4
  br label %2053

2053:                                             ; preds = %2044
  br label %2054

2054:                                             ; preds = %2053
  br label %6347

2055:                                             ; preds = %2033
  store i32 41, ptr %19, align 4, !tbaa !11
  br label %5855

2056:                                             ; preds = %211
  %2057 = load i8, ptr %11, align 1, !tbaa !18
  %2058 = sext i8 %2057 to i32
  %2059 = icmp sge i32 %2058, 48
  br i1 %2059, label %2060, label %2064

2060:                                             ; preds = %2056
  %2061 = load i8, ptr %11, align 1, !tbaa !18
  %2062 = sext i8 %2061 to i32
  %2063 = icmp sle i32 %2062, 57
  br label %2064

2064:                                             ; preds = %2060, %2056
  %2065 = phi i1 [ false, %2056 ], [ %2063, %2060 ]
  %2066 = xor i1 %2065, true
  %2067 = xor i1 %2066, true
  %2068 = xor i1 %2067, true
  %2069 = zext i1 %2068 to i32
  %2070 = sext i32 %2069 to i64
  %2071 = call i64 @llvm.expect.i64(i64 %2070, i64 0)
  %2072 = icmp ne i64 %2071, 0
  br i1 %2072, label %2073, label %2085

2073:                                             ; preds = %2064
  br label %2074

2074:                                             ; preds = %2073
  %2075 = load i32, ptr %21, align 4, !tbaa !11
  %2076 = load ptr, ptr %6, align 8, !tbaa !5
  %2077 = getelementptr inbounds %struct.http_parser, ptr %2076, i32 0, i32 1
  store i32 %2075, ptr %2077, align 4, !tbaa !13
  %2078 = load ptr, ptr %6, align 8, !tbaa !5
  %2079 = getelementptr inbounds %struct.http_parser, ptr %2078, i32 0, i32 5
  %2080 = load i32, ptr %2079, align 4
  %2081 = and i32 %2080, -2130706433
  %2082 = or i32 %2081, 234881024
  store i32 %2082, ptr %2079, align 4
  br label %2083

2083:                                             ; preds = %2074
  br label %2084

2084:                                             ; preds = %2083
  br label %6347

2085:                                             ; preds = %2064
  %2086 = load i8, ptr %11, align 1, !tbaa !18
  %2087 = sext i8 %2086 to i32
  %2088 = sub nsw i32 %2087, 48
  %2089 = trunc i32 %2088 to i16
  %2090 = load ptr, ptr %6, align 8, !tbaa !5
  %2091 = getelementptr inbounds %struct.http_parser, ptr %2090, i32 0, i32 4
  store i16 %2089, ptr %2091, align 2, !tbaa !22
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %5855

2092:                                             ; preds = %211
  %2093 = load i8, ptr %11, align 1, !tbaa !18
  %2094 = sext i8 %2093 to i32
  %2095 = icmp eq i32 %2094, 13
  br i1 %2095, label %2096, label %2097

2096:                                             ; preds = %2092
  store i32 43, ptr %19, align 4, !tbaa !11
  br label %5855

2097:                                             ; preds = %2092
  %2098 = load i8, ptr %11, align 1, !tbaa !18
  %2099 = sext i8 %2098 to i32
  %2100 = icmp eq i32 %2099, 10
  br i1 %2100, label %2101, label %2102

2101:                                             ; preds = %2097
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %5855

2102:                                             ; preds = %2097
  br label %2103

2103:                                             ; preds = %2102
  %2104 = load i32, ptr %21, align 4, !tbaa !11
  %2105 = load ptr, ptr %6, align 8, !tbaa !5
  %2106 = getelementptr inbounds %struct.http_parser, ptr %2105, i32 0, i32 1
  store i32 %2104, ptr %2106, align 4, !tbaa !13
  %2107 = load ptr, ptr %6, align 8, !tbaa !5
  %2108 = getelementptr inbounds %struct.http_parser, ptr %2107, i32 0, i32 5
  %2109 = load i32, ptr %2108, align 4
  %2110 = and i32 %2109, -2130706433
  %2111 = or i32 %2110, 234881024
  store i32 %2111, ptr %2108, align 4
  br label %2112

2112:                                             ; preds = %2103
  br label %2113

2113:                                             ; preds = %2112
  br label %6347

2114:                                             ; preds = %211
  %2115 = load i8, ptr %11, align 1, !tbaa !18
  %2116 = sext i8 %2115 to i32
  %2117 = icmp ne i32 %2116, 10
  %2118 = xor i1 %2117, true
  %2119 = xor i1 %2118, true
  %2120 = zext i1 %2119 to i32
  %2121 = sext i32 %2120 to i64
  %2122 = call i64 @llvm.expect.i64(i64 %2121, i64 0)
  %2123 = icmp ne i64 %2122, 0
  br i1 %2123, label %2124, label %2136

2124:                                             ; preds = %2114
  br label %2125

2125:                                             ; preds = %2124
  %2126 = load i32, ptr %21, align 4, !tbaa !11
  %2127 = load ptr, ptr %6, align 8, !tbaa !5
  %2128 = getelementptr inbounds %struct.http_parser, ptr %2127, i32 0, i32 1
  store i32 %2126, ptr %2128, align 4, !tbaa !13
  %2129 = load ptr, ptr %6, align 8, !tbaa !5
  %2130 = getelementptr inbounds %struct.http_parser, ptr %2129, i32 0, i32 5
  %2131 = load i32, ptr %2130, align 4
  %2132 = and i32 %2131, -2130706433
  %2133 = or i32 %2132, 385875968
  store i32 %2133, ptr %2130, align 4
  br label %2134

2134:                                             ; preds = %2125
  br label %2135

2135:                                             ; preds = %2134
  br label %6347

2136:                                             ; preds = %2114
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %5855

2137:                                             ; preds = %211
  %2138 = load i8, ptr %11, align 1, !tbaa !18
  %2139 = sext i8 %2138 to i32
  %2140 = icmp eq i32 %2139, 13
  br i1 %2140, label %2141, label %2142

2141:                                             ; preds = %2137
  store i32 57, ptr %19, align 4, !tbaa !11
  br label %5855

2142:                                             ; preds = %2137
  %2143 = load i8, ptr %11, align 1, !tbaa !18
  %2144 = sext i8 %2143 to i32
  %2145 = icmp eq i32 %2144, 10
  br i1 %2145, label %2146, label %2147

2146:                                             ; preds = %2142
  store i32 57, ptr %19, align 4, !tbaa !11
  br label %211

2147:                                             ; preds = %2142
  %2148 = load i8, ptr %11, align 1, !tbaa !18
  %2149 = sext i8 %2148 to i32
  %2150 = icmp eq i32 %2149, 32
  br i1 %2150, label %2151, label %2152

2151:                                             ; preds = %2147
  br label %2158

2152:                                             ; preds = %2147
  %2153 = load i8, ptr %11, align 1, !tbaa !18
  %2154 = zext i8 %2153 to i64
  %2155 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %2154
  %2156 = load i8, ptr %2155, align 1, !tbaa !18
  %2157 = sext i8 %2156 to i32
  br label %2158

2158:                                             ; preds = %2152, %2151
  %2159 = phi i32 [ 0, %2151 ], [ %2157, %2152 ]
  %2160 = trunc i32 %2159 to i8
  store i8 %2160, ptr %10, align 1, !tbaa !18
  %2161 = load i8, ptr %10, align 1, !tbaa !18
  %2162 = icmp ne i8 %2161, 0
  %2163 = xor i1 %2162, true
  %2164 = xor i1 %2163, true
  %2165 = xor i1 %2164, true
  %2166 = zext i1 %2165 to i32
  %2167 = sext i32 %2166 to i64
  %2168 = call i64 @llvm.expect.i64(i64 %2167, i64 0)
  %2169 = icmp ne i64 %2168, 0
  br i1 %2169, label %2170, label %2182

2170:                                             ; preds = %2158
  br label %2171

2171:                                             ; preds = %2170
  %2172 = load i32, ptr %21, align 4, !tbaa !11
  %2173 = load ptr, ptr %6, align 8, !tbaa !5
  %2174 = getelementptr inbounds %struct.http_parser, ptr %2173, i32 0, i32 1
  store i32 %2172, ptr %2174, align 4, !tbaa !13
  %2175 = load ptr, ptr %6, align 8, !tbaa !5
  %2176 = getelementptr inbounds %struct.http_parser, ptr %2175, i32 0, i32 5
  %2177 = load i32, ptr %2176, align 4
  %2178 = and i32 %2177, -2130706433
  %2179 = or i32 %2178, 402653184
  store i32 %2179, ptr %2176, align 4
  br label %2180

2180:                                             ; preds = %2171
  br label %2181

2181:                                             ; preds = %2180
  br label %6347

2182:                                             ; preds = %2158
  br label %2183

2183:                                             ; preds = %2182
  %2184 = load ptr, ptr %14, align 8, !tbaa !5
  %2185 = icmp ne ptr %2184, null
  br i1 %2185, label %2188, label %2186

2186:                                             ; preds = %2183
  %2187 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2187, ptr %14, align 8, !tbaa !5
  br label %2188

2188:                                             ; preds = %2186, %2183
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

2190:                                             ; preds = %2189
  %2191 = load ptr, ptr %6, align 8, !tbaa !5
  %2192 = load i32, ptr %2191, align 8
  %2193 = and i32 %2192, -520093697
  %2194 = or i32 %2193, 0
  store i32 %2194, ptr %2191, align 8
  store i32 45, ptr %19, align 4, !tbaa !11
  %2195 = load i8, ptr %10, align 1, !tbaa !18
  %2196 = sext i8 %2195 to i32
  switch i32 %2196, label %2217 [
    i32 99, label %2197
    i32 112, label %2202
    i32 116, label %2207
    i32 117, label %2212
  ]

2197:                                             ; preds = %2190
  %2198 = load ptr, ptr %6, align 8, !tbaa !5
  %2199 = load i32, ptr %2198, align 8
  %2200 = and i32 %2199, -16646145
  %2201 = or i32 %2200, 131072
  store i32 %2201, ptr %2198, align 8
  br label %2222

2202:                                             ; preds = %2190
  %2203 = load ptr, ptr %6, align 8, !tbaa !5
  %2204 = load i32, ptr %2203, align 8
  %2205 = and i32 %2204, -16646145
  %2206 = or i32 %2205, 655360
  store i32 %2206, ptr %2203, align 8
  br label %2222

2207:                                             ; preds = %2190
  %2208 = load ptr, ptr %6, align 8, !tbaa !5
  %2209 = load i32, ptr %2208, align 8
  %2210 = and i32 %2209, -16646145
  %2211 = or i32 %2210, 917504
  store i32 %2211, ptr %2208, align 8
  br label %2222

2212:                                             ; preds = %2190
  %2213 = load ptr, ptr %6, align 8, !tbaa !5
  %2214 = load i32, ptr %2213, align 8
  %2215 = and i32 %2214, -16646145
  %2216 = or i32 %2215, 1048576
  store i32 %2216, ptr %2213, align 8
  br label %2222

2217:                                             ; preds = %2190
  %2218 = load ptr, ptr %6, align 8, !tbaa !5
  %2219 = load i32, ptr %2218, align 8
  %2220 = and i32 %2219, -16646145
  %2221 = or i32 %2220, 0
  store i32 %2221, ptr %2218, align 8
  br label %2222

2222:                                             ; preds = %2217, %2212, %2207, %2202, %2197
  br label %5855

2223:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  %2224 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2224, ptr %24, align 8, !tbaa !5
  br label %2225

2225:                                             ; preds = %2640, %2223
  %2226 = load ptr, ptr %13, align 8, !tbaa !5
  %2227 = load ptr, ptr %8, align 8, !tbaa !5
  %2228 = load i64, ptr %9, align 8, !tbaa !9
  %2229 = getelementptr inbounds i8, ptr %2227, i64 %2228
  %2230 = icmp ne ptr %2226, %2229
  br i1 %2230, label %2231, label %2643

2231:                                             ; preds = %2225
  %2232 = load ptr, ptr %13, align 8, !tbaa !5
  %2233 = load i8, ptr %2232, align 1, !tbaa !18
  store i8 %2233, ptr %11, align 1, !tbaa !18
  %2234 = load i8, ptr %11, align 1, !tbaa !18
  %2235 = sext i8 %2234 to i32
  %2236 = icmp eq i32 %2235, 32
  br i1 %2236, label %2237, label %2238

2237:                                             ; preds = %2231
  br label %2244

2238:                                             ; preds = %2231
  %2239 = load i8, ptr %11, align 1, !tbaa !18
  %2240 = zext i8 %2239 to i64
  %2241 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %2240
  %2242 = load i8, ptr %2241, align 1, !tbaa !18
  %2243 = sext i8 %2242 to i32
  br label %2244

2244:                                             ; preds = %2238, %2237
  %2245 = phi i32 [ 0, %2237 ], [ %2243, %2238 ]
  %2246 = trunc i32 %2245 to i8
  store i8 %2246, ptr %10, align 1, !tbaa !18
  %2247 = load i8, ptr %10, align 1, !tbaa !18
  %2248 = icmp ne i8 %2247, 0
  br i1 %2248, label %2250, label %2249

2249:                                             ; preds = %2244
  br label %2643

2250:                                             ; preds = %2244
  %2251 = load ptr, ptr %6, align 8, !tbaa !5
  %2252 = load i32, ptr %2251, align 8
  %2253 = lshr i32 %2252, 17
  %2254 = and i32 %2253, 127
  switch i32 %2254, label %2638 [
    i32 0, label %2255
    i32 1, label %2305
    i32 2, label %2327
    i32 3, label %2349
    i32 4, label %2378
    i32 5, label %2426
    i32 6, label %2474
    i32 7, label %2522
    i32 8, label %2580
    i32 9, label %2628
    i32 10, label %2628
    i32 13, label %2628
    i32 14, label %2628
  ]

2255:                                             ; preds = %2250
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  %2256 = load ptr, ptr %8, align 8, !tbaa !5
  %2257 = load i64, ptr %9, align 8, !tbaa !9
  %2258 = getelementptr inbounds i8, ptr %2256, i64 %2257
  %2259 = load ptr, ptr %13, align 8, !tbaa !5
  %2260 = ptrtoint ptr %2258 to i64
  %2261 = ptrtoint ptr %2259 to i64
  %2262 = sub i64 %2260, %2261
  store i64 %2262, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  %2263 = load ptr, ptr %13, align 8, !tbaa !5
  %2264 = load i64, ptr %25, align 8, !tbaa !9
  %2265 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %2266 = zext i32 %2265 to i64
  %2267 = icmp ult i64 %2264, %2266
  br i1 %2267, label %2268, label %2270

2268:                                             ; preds = %2255
  %2269 = load i64, ptr %25, align 8, !tbaa !9
  br label %2273

2270:                                             ; preds = %2255
  %2271 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %2272 = zext i32 %2271 to i64
  br label %2273

2273:                                             ; preds = %2270, %2268
  %2274 = phi i64 [ %2269, %2268 ], [ %2272, %2270 ]
  %2275 = getelementptr inbounds i8, ptr %2263, i64 %2274
  store ptr %2275, ptr %26, align 8, !tbaa !5
  br label %2276

2276:                                             ; preds = %2301, %2273
  %2277 = load ptr, ptr %13, align 8, !tbaa !5
  %2278 = getelementptr inbounds i8, ptr %2277, i64 1
  %2279 = load ptr, ptr %26, align 8, !tbaa !5
  %2280 = icmp ult ptr %2278, %2279
  br i1 %2280, label %2281, label %2299

2281:                                             ; preds = %2276
  %2282 = load ptr, ptr %13, align 8, !tbaa !5
  %2283 = getelementptr inbounds i8, ptr %2282, i64 1
  %2284 = load i8, ptr %2283, align 1, !tbaa !18
  %2285 = sext i8 %2284 to i32
  %2286 = icmp eq i32 %2285, 32
  br i1 %2286, label %2287, label %2288

2287:                                             ; preds = %2281
  br label %2296

2288:                                             ; preds = %2281
  %2289 = load ptr, ptr %13, align 8, !tbaa !5
  %2290 = getelementptr inbounds i8, ptr %2289, i64 1
  %2291 = load i8, ptr %2290, align 1, !tbaa !18
  %2292 = zext i8 %2291 to i64
  %2293 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %2292
  %2294 = load i8, ptr %2293, align 1, !tbaa !18
  %2295 = sext i8 %2294 to i32
  br label %2296

2296:                                             ; preds = %2288, %2287
  %2297 = phi i32 [ 0, %2287 ], [ %2295, %2288 ]
  %2298 = icmp ne i32 %2297, 0
  br label %2299

2299:                                             ; preds = %2296, %2276
  %2300 = phi i1 [ false, %2276 ], [ %2298, %2296 ]
  br i1 %2300, label %2301, label %2304

2301:                                             ; preds = %2299
  %2302 = load ptr, ptr %13, align 8, !tbaa !5
  %2303 = getelementptr inbounds i8, ptr %2302, i32 1
  store ptr %2303, ptr %13, align 8, !tbaa !5
  br label %2276, !llvm.loop !25

2304:                                             ; preds = %2299
  store i32 160, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  br label %2639

2305:                                             ; preds = %2250
  %2306 = load ptr, ptr %6, align 8, !tbaa !5
  %2307 = load i32, ptr %2306, align 8
  %2308 = lshr i32 %2307, 24
  %2309 = and i32 %2308, 31
  %2310 = add i32 %2309, 1
  %2311 = load i32, ptr %2306, align 8
  %2312 = and i32 %2310, 31
  %2313 = shl i32 %2312, 24
  %2314 = and i32 %2311, -520093697
  %2315 = or i32 %2314, %2313
  store i32 %2315, ptr %2306, align 8
  %2316 = load i8, ptr %10, align 1, !tbaa !18
  %2317 = sext i8 %2316 to i32
  %2318 = icmp eq i32 %2317, 111
  %2319 = zext i1 %2318 to i64
  %2320 = select i1 %2318, i32 2, i32 0
  %2321 = load ptr, ptr %6, align 8, !tbaa !5
  %2322 = load i32, ptr %2321, align 8
  %2323 = and i32 %2320, 127
  %2324 = shl i32 %2323, 17
  %2325 = and i32 %2322, -16646145
  %2326 = or i32 %2325, %2324
  store i32 %2326, ptr %2321, align 8
  br label %2639

2327:                                             ; preds = %2250
  %2328 = load ptr, ptr %6, align 8, !tbaa !5
  %2329 = load i32, ptr %2328, align 8
  %2330 = lshr i32 %2329, 24
  %2331 = and i32 %2330, 31
  %2332 = add i32 %2331, 1
  %2333 = load i32, ptr %2328, align 8
  %2334 = and i32 %2332, 31
  %2335 = shl i32 %2334, 24
  %2336 = and i32 %2333, -520093697
  %2337 = or i32 %2336, %2335
  store i32 %2337, ptr %2328, align 8
  %2338 = load i8, ptr %10, align 1, !tbaa !18
  %2339 = sext i8 %2338 to i32
  %2340 = icmp eq i32 %2339, 110
  %2341 = zext i1 %2340 to i64
  %2342 = select i1 %2340, i32 3, i32 0
  %2343 = load ptr, ptr %6, align 8, !tbaa !5
  %2344 = load i32, ptr %2343, align 8
  %2345 = and i32 %2342, 127
  %2346 = shl i32 %2345, 17
  %2347 = and i32 %2344, -16646145
  %2348 = or i32 %2347, %2346
  store i32 %2348, ptr %2343, align 8
  br label %2639

2349:                                             ; preds = %2250
  %2350 = load ptr, ptr %6, align 8, !tbaa !5
  %2351 = load i32, ptr %2350, align 8
  %2352 = lshr i32 %2351, 24
  %2353 = and i32 %2352, 31
  %2354 = add i32 %2353, 1
  %2355 = load i32, ptr %2350, align 8
  %2356 = and i32 %2354, 31
  %2357 = shl i32 %2356, 24
  %2358 = and i32 %2355, -520093697
  %2359 = or i32 %2358, %2357
  store i32 %2359, ptr %2350, align 8
  %2360 = load i8, ptr %10, align 1, !tbaa !18
  %2361 = sext i8 %2360 to i32
  switch i32 %2361, label %2372 [
    i32 110, label %2362
    i32 116, label %2367
  ]

2362:                                             ; preds = %2349
  %2363 = load ptr, ptr %6, align 8, !tbaa !5
  %2364 = load i32, ptr %2363, align 8
  %2365 = and i32 %2364, -16646145
  %2366 = or i32 %2365, 524288
  store i32 %2366, ptr %2363, align 8
  br label %2377

2367:                                             ; preds = %2349
  %2368 = load ptr, ptr %6, align 8, !tbaa !5
  %2369 = load i32, ptr %2368, align 8
  %2370 = and i32 %2369, -16646145
  %2371 = or i32 %2370, 786432
  store i32 %2371, ptr %2368, align 8
  br label %2377

2372:                                             ; preds = %2349
  %2373 = load ptr, ptr %6, align 8, !tbaa !5
  %2374 = load i32, ptr %2373, align 8
  %2375 = and i32 %2374, -16646145
  %2376 = or i32 %2375, 0
  store i32 %2376, ptr %2373, align 8
  br label %2377

2377:                                             ; preds = %2372, %2367, %2362
  br label %2639

2378:                                             ; preds = %2250
  %2379 = load ptr, ptr %6, align 8, !tbaa !5
  %2380 = load i32, ptr %2379, align 8
  %2381 = lshr i32 %2380, 24
  %2382 = and i32 %2381, 31
  %2383 = add i32 %2382, 1
  %2384 = load i32, ptr %2379, align 8
  %2385 = and i32 %2383, 31
  %2386 = shl i32 %2385, 24
  %2387 = and i32 %2384, -520093697
  %2388 = or i32 %2387, %2386
  store i32 %2388, ptr %2379, align 8
  %2389 = load ptr, ptr %6, align 8, !tbaa !5
  %2390 = load i32, ptr %2389, align 8
  %2391 = lshr i32 %2390, 24
  %2392 = and i32 %2391, 31
  %2393 = zext i32 %2392 to i64
  %2394 = icmp ugt i64 %2393, 10
  br i1 %2394, label %2407, label %2395

2395:                                             ; preds = %2378
  %2396 = load i8, ptr %10, align 1, !tbaa !18
  %2397 = sext i8 %2396 to i32
  %2398 = load ptr, ptr %6, align 8, !tbaa !5
  %2399 = load i32, ptr %2398, align 8
  %2400 = lshr i32 %2399, 24
  %2401 = and i32 %2400, 31
  %2402 = zext i32 %2401 to i64
  %2403 = getelementptr inbounds [11 x i8], ptr @.str.2, i64 0, i64 %2402
  %2404 = load i8, ptr %2403, align 1, !tbaa !18
  %2405 = sext i8 %2404 to i32
  %2406 = icmp ne i32 %2397, %2405
  br i1 %2406, label %2407, label %2412

2407:                                             ; preds = %2395, %2378
  %2408 = load ptr, ptr %6, align 8, !tbaa !5
  %2409 = load i32, ptr %2408, align 8
  %2410 = and i32 %2409, -16646145
  %2411 = or i32 %2410, 0
  store i32 %2411, ptr %2408, align 8
  br label %2425

2412:                                             ; preds = %2395
  %2413 = load ptr, ptr %6, align 8, !tbaa !5
  %2414 = load i32, ptr %2413, align 8
  %2415 = lshr i32 %2414, 24
  %2416 = and i32 %2415, 31
  %2417 = zext i32 %2416 to i64
  %2418 = icmp eq i64 %2417, 9
  br i1 %2418, label %2419, label %2424

2419:                                             ; preds = %2412
  %2420 = load ptr, ptr %6, align 8, !tbaa !5
  %2421 = load i32, ptr %2420, align 8
  %2422 = and i32 %2421, -16646145
  %2423 = or i32 %2422, 1179648
  store i32 %2423, ptr %2420, align 8
  br label %2424

2424:                                             ; preds = %2419, %2412
  br label %2425

2425:                                             ; preds = %2424, %2407
  br label %2639

2426:                                             ; preds = %2250
  %2427 = load ptr, ptr %6, align 8, !tbaa !5
  %2428 = load i32, ptr %2427, align 8
  %2429 = lshr i32 %2428, 24
  %2430 = and i32 %2429, 31
  %2431 = add i32 %2430, 1
  %2432 = load i32, ptr %2427, align 8
  %2433 = and i32 %2431, 31
  %2434 = shl i32 %2433, 24
  %2435 = and i32 %2432, -520093697
  %2436 = or i32 %2435, %2434
  store i32 %2436, ptr %2427, align 8
  %2437 = load ptr, ptr %6, align 8, !tbaa !5
  %2438 = load i32, ptr %2437, align 8
  %2439 = lshr i32 %2438, 24
  %2440 = and i32 %2439, 31
  %2441 = zext i32 %2440 to i64
  %2442 = icmp ugt i64 %2441, 16
  br i1 %2442, label %2455, label %2443

2443:                                             ; preds = %2426
  %2444 = load i8, ptr %10, align 1, !tbaa !18
  %2445 = sext i8 %2444 to i32
  %2446 = load ptr, ptr %6, align 8, !tbaa !5
  %2447 = load i32, ptr %2446, align 8
  %2448 = lshr i32 %2447, 24
  %2449 = and i32 %2448, 31
  %2450 = zext i32 %2449 to i64
  %2451 = getelementptr inbounds [17 x i8], ptr @.str.3, i64 0, i64 %2450
  %2452 = load i8, ptr %2451, align 1, !tbaa !18
  %2453 = sext i8 %2452 to i32
  %2454 = icmp ne i32 %2445, %2453
  br i1 %2454, label %2455, label %2460

2455:                                             ; preds = %2443, %2426
  %2456 = load ptr, ptr %6, align 8, !tbaa !5
  %2457 = load i32, ptr %2456, align 8
  %2458 = and i32 %2457, -16646145
  %2459 = or i32 %2458, 0
  store i32 %2459, ptr %2456, align 8
  br label %2473

2460:                                             ; preds = %2443
  %2461 = load ptr, ptr %6, align 8, !tbaa !5
  %2462 = load i32, ptr %2461, align 8
  %2463 = lshr i32 %2462, 24
  %2464 = and i32 %2463, 31
  %2465 = zext i32 %2464 to i64
  %2466 = icmp eq i64 %2465, 15
  br i1 %2466, label %2467, label %2472

2467:                                             ; preds = %2460
  %2468 = load ptr, ptr %6, align 8, !tbaa !5
  %2469 = load i32, ptr %2468, align 8
  %2470 = and i32 %2469, -16646145
  %2471 = or i32 %2470, 1179648
  store i32 %2471, ptr %2468, align 8
  br label %2472

2472:                                             ; preds = %2467, %2460
  br label %2473

2473:                                             ; preds = %2472, %2455
  br label %2639

2474:                                             ; preds = %2250
  %2475 = load ptr, ptr %6, align 8, !tbaa !5
  %2476 = load i32, ptr %2475, align 8
  %2477 = lshr i32 %2476, 24
  %2478 = and i32 %2477, 31
  %2479 = add i32 %2478, 1
  %2480 = load i32, ptr %2475, align 8
  %2481 = and i32 %2479, 31
  %2482 = shl i32 %2481, 24
  %2483 = and i32 %2480, -520093697
  %2484 = or i32 %2483, %2482
  store i32 %2484, ptr %2475, align 8
  %2485 = load ptr, ptr %6, align 8, !tbaa !5
  %2486 = load i32, ptr %2485, align 8
  %2487 = lshr i32 %2486, 24
  %2488 = and i32 %2487, 31
  %2489 = zext i32 %2488 to i64
  %2490 = icmp ugt i64 %2489, 14
  br i1 %2490, label %2503, label %2491

2491:                                             ; preds = %2474
  %2492 = load i8, ptr %10, align 1, !tbaa !18
  %2493 = sext i8 %2492 to i32
  %2494 = load ptr, ptr %6, align 8, !tbaa !5
  %2495 = load i32, ptr %2494, align 8
  %2496 = lshr i32 %2495, 24
  %2497 = and i32 %2496, 31
  %2498 = zext i32 %2497 to i64
  %2499 = getelementptr inbounds [15 x i8], ptr @.str.4, i64 0, i64 %2498
  %2500 = load i8, ptr %2499, align 1, !tbaa !18
  %2501 = sext i8 %2500 to i32
  %2502 = icmp ne i32 %2493, %2501
  br i1 %2502, label %2503, label %2508

2503:                                             ; preds = %2491, %2474
  %2504 = load ptr, ptr %6, align 8, !tbaa !5
  %2505 = load i32, ptr %2504, align 8
  %2506 = and i32 %2505, -16646145
  %2507 = or i32 %2506, 0
  store i32 %2507, ptr %2504, align 8
  br label %2521

2508:                                             ; preds = %2491
  %2509 = load ptr, ptr %6, align 8, !tbaa !5
  %2510 = load i32, ptr %2509, align 8
  %2511 = lshr i32 %2510, 24
  %2512 = and i32 %2511, 31
  %2513 = zext i32 %2512 to i64
  %2514 = icmp eq i64 %2513, 13
  br i1 %2514, label %2515, label %2520

2515:                                             ; preds = %2508
  %2516 = load ptr, ptr %6, align 8, !tbaa !5
  %2517 = load i32, ptr %2516, align 8
  %2518 = and i32 %2517, -16646145
  %2519 = or i32 %2518, 1310720
  store i32 %2519, ptr %2516, align 8
  br label %2520

2520:                                             ; preds = %2515, %2508
  br label %2521

2521:                                             ; preds = %2520, %2503
  br label %2639

2522:                                             ; preds = %2250
  %2523 = load ptr, ptr %6, align 8, !tbaa !5
  %2524 = load i32, ptr %2523, align 8
  %2525 = lshr i32 %2524, 24
  %2526 = and i32 %2525, 31
  %2527 = add i32 %2526, 1
  %2528 = load i32, ptr %2523, align 8
  %2529 = and i32 %2527, 31
  %2530 = shl i32 %2529, 24
  %2531 = and i32 %2528, -520093697
  %2532 = or i32 %2531, %2530
  store i32 %2532, ptr %2523, align 8
  %2533 = load ptr, ptr %6, align 8, !tbaa !5
  %2534 = load i32, ptr %2533, align 8
  %2535 = lshr i32 %2534, 24
  %2536 = and i32 %2535, 31
  %2537 = zext i32 %2536 to i64
  %2538 = icmp ugt i64 %2537, 17
  br i1 %2538, label %2551, label %2539

2539:                                             ; preds = %2522
  %2540 = load i8, ptr %10, align 1, !tbaa !18
  %2541 = sext i8 %2540 to i32
  %2542 = load ptr, ptr %6, align 8, !tbaa !5
  %2543 = load i32, ptr %2542, align 8
  %2544 = lshr i32 %2543, 24
  %2545 = and i32 %2544, 31
  %2546 = zext i32 %2545 to i64
  %2547 = getelementptr inbounds [18 x i8], ptr @.str.5, i64 0, i64 %2546
  %2548 = load i8, ptr %2547, align 1, !tbaa !18
  %2549 = sext i8 %2548 to i32
  %2550 = icmp ne i32 %2541, %2549
  br i1 %2550, label %2551, label %2556

2551:                                             ; preds = %2539, %2522
  %2552 = load ptr, ptr %6, align 8, !tbaa !5
  %2553 = load i32, ptr %2552, align 8
  %2554 = and i32 %2553, -16646145
  %2555 = or i32 %2554, 0
  store i32 %2555, ptr %2552, align 8
  br label %2579

2556:                                             ; preds = %2539
  %2557 = load ptr, ptr %6, align 8, !tbaa !5
  %2558 = load i32, ptr %2557, align 8
  %2559 = lshr i32 %2558, 24
  %2560 = and i32 %2559, 31
  %2561 = zext i32 %2560 to i64
  %2562 = icmp eq i64 %2561, 16
  br i1 %2562, label %2563, label %2578

2563:                                             ; preds = %2556
  %2564 = load ptr, ptr %6, align 8, !tbaa !5
  %2565 = load i32, ptr %2564, align 8
  %2566 = and i32 %2565, -16646145
  %2567 = or i32 %2566, 1703936
  store i32 %2567, ptr %2564, align 8
  %2568 = load ptr, ptr %6, align 8, !tbaa !5
  %2569 = load i32, ptr %2568, align 8
  %2570 = lshr i32 %2569, 29
  %2571 = and i32 %2570, 3
  %2572 = or i32 %2571, 1
  %2573 = load i32, ptr %2568, align 8
  %2574 = and i32 %2572, 3
  %2575 = shl i32 %2574, 29
  %2576 = and i32 %2573, -1610612737
  %2577 = or i32 %2576, %2575
  store i32 %2577, ptr %2568, align 8
  br label %2578

2578:                                             ; preds = %2563, %2556
  br label %2579

2579:                                             ; preds = %2578, %2551
  br label %2639

2580:                                             ; preds = %2250
  %2581 = load ptr, ptr %6, align 8, !tbaa !5
  %2582 = load i32, ptr %2581, align 8
  %2583 = lshr i32 %2582, 24
  %2584 = and i32 %2583, 31
  %2585 = add i32 %2584, 1
  %2586 = load i32, ptr %2581, align 8
  %2587 = and i32 %2585, 31
  %2588 = shl i32 %2587, 24
  %2589 = and i32 %2586, -520093697
  %2590 = or i32 %2589, %2588
  store i32 %2590, ptr %2581, align 8
  %2591 = load ptr, ptr %6, align 8, !tbaa !5
  %2592 = load i32, ptr %2591, align 8
  %2593 = lshr i32 %2592, 24
  %2594 = and i32 %2593, 31
  %2595 = zext i32 %2594 to i64
  %2596 = icmp ugt i64 %2595, 7
  br i1 %2596, label %2609, label %2597

2597:                                             ; preds = %2580
  %2598 = load i8, ptr %10, align 1, !tbaa !18
  %2599 = sext i8 %2598 to i32
  %2600 = load ptr, ptr %6, align 8, !tbaa !5
  %2601 = load i32, ptr %2600, align 8
  %2602 = lshr i32 %2601, 24
  %2603 = and i32 %2602, 31
  %2604 = zext i32 %2603 to i64
  %2605 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %2604
  %2606 = load i8, ptr %2605, align 1, !tbaa !18
  %2607 = sext i8 %2606 to i32
  %2608 = icmp ne i32 %2599, %2607
  br i1 %2608, label %2609, label %2614

2609:                                             ; preds = %2597, %2580
  %2610 = load ptr, ptr %6, align 8, !tbaa !5
  %2611 = load i32, ptr %2610, align 8
  %2612 = and i32 %2611, -16646145
  %2613 = or i32 %2612, 0
  store i32 %2613, ptr %2610, align 8
  br label %2627

2614:                                             ; preds = %2597
  %2615 = load ptr, ptr %6, align 8, !tbaa !5
  %2616 = load i32, ptr %2615, align 8
  %2617 = lshr i32 %2616, 24
  %2618 = and i32 %2617, 31
  %2619 = zext i32 %2618 to i64
  %2620 = icmp eq i64 %2619, 6
  br i1 %2620, label %2621, label %2626

2621:                                             ; preds = %2614
  %2622 = load ptr, ptr %6, align 8, !tbaa !5
  %2623 = load i32, ptr %2622, align 8
  %2624 = and i32 %2623, -16646145
  %2625 = or i32 %2624, 1835008
  store i32 %2625, ptr %2622, align 8
  br label %2626

2626:                                             ; preds = %2621, %2614
  br label %2627

2627:                                             ; preds = %2626, %2609
  br label %2639

2628:                                             ; preds = %2250, %2250, %2250, %2250
  %2629 = load i8, ptr %11, align 1, !tbaa !18
  %2630 = sext i8 %2629 to i32
  %2631 = icmp ne i32 %2630, 32
  br i1 %2631, label %2632, label %2637

2632:                                             ; preds = %2628
  %2633 = load ptr, ptr %6, align 8, !tbaa !5
  %2634 = load i32, ptr %2633, align 8
  %2635 = and i32 %2634, -16646145
  %2636 = or i32 %2635, 0
  store i32 %2636, ptr %2633, align 8
  br label %2637

2637:                                             ; preds = %2632, %2628
  br label %2639

2638:                                             ; preds = %2250
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 1368, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

2639:                                             ; preds = %2637, %2627, %2579, %2521, %2473, %2425, %2377, %2327, %2305, %2304
  br label %2640

2640:                                             ; preds = %2639
  %2641 = load ptr, ptr %13, align 8, !tbaa !5
  %2642 = getelementptr inbounds i8, ptr %2641, i32 1
  store ptr %2642, ptr %13, align 8, !tbaa !5
  br label %2225, !llvm.loop !27

2643:                                             ; preds = %2249, %2225
  %2644 = load ptr, ptr %13, align 8, !tbaa !5
  %2645 = load ptr, ptr %8, align 8, !tbaa !5
  %2646 = load i64, ptr %9, align 8, !tbaa !9
  %2647 = getelementptr inbounds i8, ptr %2645, i64 %2646
  %2648 = icmp eq ptr %2644, %2647
  br i1 %2648, label %2649, label %2685

2649:                                             ; preds = %2643
  %2650 = load ptr, ptr %13, align 8, !tbaa !5
  %2651 = getelementptr inbounds i8, ptr %2650, i32 -1
  store ptr %2651, ptr %13, align 8, !tbaa !5
  br label %2652

2652:                                             ; preds = %2649
  %2653 = load ptr, ptr %13, align 8, !tbaa !5
  %2654 = load ptr, ptr %24, align 8, !tbaa !5
  %2655 = ptrtoint ptr %2653 to i64
  %2656 = ptrtoint ptr %2654 to i64
  %2657 = sub i64 %2655, %2656
  %2658 = trunc i64 %2657 to i32
  %2659 = load i32, ptr %21, align 4, !tbaa !11
  %2660 = add i32 %2659, %2658
  store i32 %2660, ptr %21, align 4, !tbaa !11
  %2661 = load i32, ptr %21, align 4, !tbaa !11
  %2662 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %2663 = icmp ugt i32 %2661, %2662
  %2664 = xor i1 %2663, true
  %2665 = xor i1 %2664, true
  %2666 = zext i1 %2665 to i32
  %2667 = sext i32 %2666 to i64
  %2668 = call i64 @llvm.expect.i64(i64 %2667, i64 0)
  %2669 = icmp ne i64 %2668, 0
  br i1 %2669, label %2670, label %2682

2670:                                             ; preds = %2652
  br label %2671

2671:                                             ; preds = %2670
  %2672 = load i32, ptr %21, align 4, !tbaa !11
  %2673 = load ptr, ptr %6, align 8, !tbaa !5
  %2674 = getelementptr inbounds %struct.http_parser, ptr %2673, i32 0, i32 1
  store i32 %2672, ptr %2674, align 4, !tbaa !13
  %2675 = load ptr, ptr %6, align 8, !tbaa !5
  %2676 = getelementptr inbounds %struct.http_parser, ptr %2675, i32 0, i32 5
  %2677 = load i32, ptr %2676, align 4
  %2678 = and i32 %2677, -2130706433
  %2679 = or i32 %2678, 201326592
  store i32 %2679, ptr %2676, align 4
  br label %2680

2680:                                             ; preds = %2671
  br label %2681

2681:                                             ; preds = %2680
  store i32 17, ptr %22, align 4
  br label %2825

2682:                                             ; preds = %2652
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683
  store i32 19, ptr %22, align 4
  br label %2825

2685:                                             ; preds = %2643
  br label %2686

2686:                                             ; preds = %2685
  %2687 = load ptr, ptr %13, align 8, !tbaa !5
  %2688 = load ptr, ptr %24, align 8, !tbaa !5
  %2689 = ptrtoint ptr %2687 to i64
  %2690 = ptrtoint ptr %2688 to i64
  %2691 = sub i64 %2689, %2690
  %2692 = trunc i64 %2691 to i32
  %2693 = load i32, ptr %21, align 4, !tbaa !11
  %2694 = add i32 %2693, %2692
  store i32 %2694, ptr %21, align 4, !tbaa !11
  %2695 = load i32, ptr %21, align 4, !tbaa !11
  %2696 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %2697 = icmp ugt i32 %2695, %2696
  %2698 = xor i1 %2697, true
  %2699 = xor i1 %2698, true
  %2700 = zext i1 %2699 to i32
  %2701 = sext i32 %2700 to i64
  %2702 = call i64 @llvm.expect.i64(i64 %2701, i64 0)
  %2703 = icmp ne i64 %2702, 0
  br i1 %2703, label %2704, label %2716

2704:                                             ; preds = %2686
  br label %2705

2705:                                             ; preds = %2704
  %2706 = load i32, ptr %21, align 4, !tbaa !11
  %2707 = load ptr, ptr %6, align 8, !tbaa !5
  %2708 = getelementptr inbounds %struct.http_parser, ptr %2707, i32 0, i32 1
  store i32 %2706, ptr %2708, align 4, !tbaa !13
  %2709 = load ptr, ptr %6, align 8, !tbaa !5
  %2710 = getelementptr inbounds %struct.http_parser, ptr %2709, i32 0, i32 5
  %2711 = load i32, ptr %2710, align 4
  %2712 = and i32 %2711, -2130706433
  %2713 = or i32 %2712, 201326592
  store i32 %2713, ptr %2710, align 4
  br label %2714

2714:                                             ; preds = %2705
  br label %2715

2715:                                             ; preds = %2714
  store i32 17, ptr %22, align 4
  br label %2825

2716:                                             ; preds = %2686
  br label %2717

2717:                                             ; preds = %2716
  br label %2718

2718:                                             ; preds = %2717
  %2719 = load i8, ptr %11, align 1, !tbaa !18
  %2720 = sext i8 %2719 to i32
  %2721 = icmp eq i32 %2720, 58
  br i1 %2721, label %2722, label %2813

2722:                                             ; preds = %2718
  store i32 46, ptr %19, align 4, !tbaa !11
  br label %2723

2723:                                             ; preds = %2722
  %2724 = load ptr, ptr %6, align 8, !tbaa !5
  %2725 = getelementptr inbounds %struct.http_parser, ptr %2724, i32 0, i32 5
  %2726 = load i32, ptr %2725, align 4
  %2727 = lshr i32 %2726, 24
  %2728 = and i32 %2727, 127
  %2729 = icmp eq i32 %2728, 0
  br i1 %2729, label %2730, label %2731

2730:                                             ; preds = %2723
  br label %2732

2731:                                             ; preds = %2723
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1383, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

2732:                                             ; preds = %2730
  %2733 = load ptr, ptr %14, align 8, !tbaa !5
  %2734 = icmp ne ptr %2733, null
  br i1 %2734, label %2735, label %2810

2735:                                             ; preds = %2732
  %2736 = load ptr, ptr %7, align 8, !tbaa !5
  %2737 = getelementptr inbounds %struct.http_parser_settings, ptr %2736, i32 0, i32 3
  %2738 = load ptr, ptr %2737, align 8, !tbaa !28
  %2739 = icmp ne ptr %2738, null
  %2740 = xor i1 %2739, true
  %2741 = xor i1 %2740, true
  %2742 = zext i1 %2741 to i32
  %2743 = sext i32 %2742 to i64
  %2744 = call i64 @llvm.expect.i64(i64 %2743, i64 1)
  %2745 = icmp ne i64 %2744, 0
  br i1 %2745, label %2746, label %2809

2746:                                             ; preds = %2735
  %2747 = load i32, ptr %19, align 4, !tbaa !11
  %2748 = load ptr, ptr %6, align 8, !tbaa !5
  %2749 = load i32, ptr %2748, align 8
  %2750 = and i32 %2747, 127
  %2751 = shl i32 %2750, 10
  %2752 = and i32 %2749, -130049
  %2753 = or i32 %2752, %2751
  store i32 %2753, ptr %2748, align 8
  %2754 = load ptr, ptr %7, align 8, !tbaa !5
  %2755 = getelementptr inbounds %struct.http_parser_settings, ptr %2754, i32 0, i32 3
  %2756 = load ptr, ptr %2755, align 8, !tbaa !28
  %2757 = load ptr, ptr %6, align 8, !tbaa !5
  %2758 = load ptr, ptr %14, align 8, !tbaa !5
  %2759 = load ptr, ptr %13, align 8, !tbaa !5
  %2760 = load ptr, ptr %14, align 8, !tbaa !5
  %2761 = ptrtoint ptr %2759 to i64
  %2762 = ptrtoint ptr %2760 to i64
  %2763 = sub i64 %2761, %2762
  %2764 = call i32 %2756(ptr noundef %2757, ptr noundef %2758, i64 noundef %2763)
  %2765 = icmp ne i32 0, %2764
  %2766 = xor i1 %2765, true
  %2767 = xor i1 %2766, true
  %2768 = zext i1 %2767 to i32
  %2769 = sext i32 %2768 to i64
  %2770 = call i64 @llvm.expect.i64(i64 %2769, i64 0)
  %2771 = icmp ne i64 %2770, 0
  br i1 %2771, label %2772, label %2784

2772:                                             ; preds = %2746
  br label %2773

2773:                                             ; preds = %2772
  %2774 = load i32, ptr %21, align 4, !tbaa !11
  %2775 = load ptr, ptr %6, align 8, !tbaa !5
  %2776 = getelementptr inbounds %struct.http_parser, ptr %2775, i32 0, i32 1
  store i32 %2774, ptr %2776, align 4, !tbaa !13
  %2777 = load ptr, ptr %6, align 8, !tbaa !5
  %2778 = getelementptr inbounds %struct.http_parser, ptr %2777, i32 0, i32 5
  %2779 = load i32, ptr %2778, align 4
  %2780 = and i32 %2779, -2130706433
  %2781 = or i32 %2780, 50331648
  store i32 %2781, ptr %2778, align 4
  br label %2782

2782:                                             ; preds = %2773
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783, %2746
  %2785 = load ptr, ptr %6, align 8, !tbaa !5
  %2786 = load i32, ptr %2785, align 8
  %2787 = lshr i32 %2786, 10
  %2788 = and i32 %2787, 127
  store i32 %2788, ptr %19, align 4, !tbaa !11
  %2789 = load ptr, ptr %6, align 8, !tbaa !5
  %2790 = getelementptr inbounds %struct.http_parser, ptr %2789, i32 0, i32 5
  %2791 = load i32, ptr %2790, align 4
  %2792 = lshr i32 %2791, 24
  %2793 = and i32 %2792, 127
  %2794 = icmp ne i32 %2793, 0
  %2795 = xor i1 %2794, true
  %2796 = xor i1 %2795, true
  %2797 = zext i1 %2796 to i32
  %2798 = sext i32 %2797 to i64
  %2799 = call i64 @llvm.expect.i64(i64 %2798, i64 0)
  %2800 = icmp ne i64 %2799, 0
  br i1 %2800, label %2801, label %2808

2801:                                             ; preds = %2784
  %2802 = load ptr, ptr %13, align 8, !tbaa !5
  %2803 = load ptr, ptr %8, align 8, !tbaa !5
  %2804 = ptrtoint ptr %2802 to i64
  %2805 = ptrtoint ptr %2803 to i64
  %2806 = sub i64 %2804, %2805
  %2807 = add nsw i64 %2806, 1
  store i64 %2807, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %2825

2808:                                             ; preds = %2784
  br label %2809

2809:                                             ; preds = %2808, %2735
  store ptr null, ptr %14, align 8, !tbaa !5
  br label %2810

2810:                                             ; preds = %2809, %2732
  br label %2811

2811:                                             ; preds = %2810
  br label %2812

2812:                                             ; preds = %2811
  store i32 19, ptr %22, align 4
  br label %2825

2813:                                             ; preds = %2718
  br label %2814

2814:                                             ; preds = %2813
  %2815 = load i32, ptr %21, align 4, !tbaa !11
  %2816 = load ptr, ptr %6, align 8, !tbaa !5
  %2817 = getelementptr inbounds %struct.http_parser, ptr %2816, i32 0, i32 1
  store i32 %2815, ptr %2817, align 4, !tbaa !13
  %2818 = load ptr, ptr %6, align 8, !tbaa !5
  %2819 = getelementptr inbounds %struct.http_parser, ptr %2818, i32 0, i32 5
  %2820 = load i32, ptr %2819, align 4
  %2821 = and i32 %2820, -2130706433
  %2822 = or i32 %2821, 402653184
  store i32 %2822, ptr %2819, align 4
  br label %2823

2823:                                             ; preds = %2814
  br label %2824

2824:                                             ; preds = %2823
  store i32 17, ptr %22, align 4
  br label %2825

2825:                                             ; preds = %2824, %2812, %2801, %2715, %2684, %2681
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  %2826 = load i32, ptr %22, align 4
  switch i32 %2826, label %6385 [
    i32 19, label %5855
    i32 17, label %6347
  ]

2827:                                             ; preds = %211
  %2828 = load i8, ptr %11, align 1, !tbaa !18
  %2829 = sext i8 %2828 to i32
  %2830 = icmp eq i32 %2829, 32
  br i1 %2830, label %2835, label %2831

2831:                                             ; preds = %2827
  %2832 = load i8, ptr %11, align 1, !tbaa !18
  %2833 = sext i8 %2832 to i32
  %2834 = icmp eq i32 %2833, 9
  br i1 %2834, label %2835, label %2836

2835:                                             ; preds = %2831, %2827
  br label %5855

2836:                                             ; preds = %2831
  %2837 = load i8, ptr %11, align 1, !tbaa !18
  %2838 = sext i8 %2837 to i32
  %2839 = icmp eq i32 %2838, 13
  br i1 %2839, label %2840, label %2841

2840:                                             ; preds = %2836
  store i32 47, ptr %19, align 4, !tbaa !11
  br label %5855

2841:                                             ; preds = %2836
  %2842 = load i8, ptr %11, align 1, !tbaa !18
  %2843 = sext i8 %2842 to i32
  %2844 = icmp eq i32 %2843, 10
  br i1 %2844, label %2845, label %2846

2845:                                             ; preds = %2841
  store i32 48, ptr %19, align 4, !tbaa !11
  br label %5855

2846:                                             ; preds = %2841
  br label %2847

2847:                                             ; preds = %2846, %211
  br label %2848

2848:                                             ; preds = %2847
  %2849 = load ptr, ptr %15, align 8, !tbaa !5
  %2850 = icmp ne ptr %2849, null
  br i1 %2850, label %2853, label %2851

2851:                                             ; preds = %2848
  %2852 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2852, ptr %15, align 8, !tbaa !5
  br label %2853

2853:                                             ; preds = %2851, %2848
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854
  store i32 50, ptr %19, align 4, !tbaa !11
  %2856 = load ptr, ptr %6, align 8, !tbaa !5
  %2857 = load i32, ptr %2856, align 8
  %2858 = and i32 %2857, -520093697
  %2859 = or i32 %2858, 0
  store i32 %2859, ptr %2856, align 8
  %2860 = load i8, ptr %11, align 1, !tbaa !18
  %2861 = sext i8 %2860 to i32
  %2862 = or i32 %2861, 32
  %2863 = trunc i32 %2862 to i8
  store i8 %2863, ptr %10, align 1, !tbaa !18
  %2864 = load ptr, ptr %6, align 8, !tbaa !5
  %2865 = load i32, ptr %2864, align 8
  %2866 = lshr i32 %2865, 17
  %2867 = and i32 %2866, 127
  switch i32 %2867, label %3002 [
    i32 14, label %2868
    i32 13, label %2883
    i32 15, label %3007
    i32 10, label %2898
    i32 12, label %3007
    i32 9, label %2967
    i32 18, label %3007
  ]

2868:                                             ; preds = %2855
  %2869 = load ptr, ptr %6, align 8, !tbaa !5
  %2870 = load i32, ptr %2869, align 8
  %2871 = lshr i32 %2870, 2
  %2872 = and i32 %2871, 255
  %2873 = or i32 %2872, 32
  %2874 = load i32, ptr %2869, align 8
  %2875 = and i32 %2873, 255
  %2876 = shl i32 %2875, 2
  %2877 = and i32 %2874, -1021
  %2878 = or i32 %2877, %2876
  store i32 %2878, ptr %2869, align 8
  %2879 = load ptr, ptr %6, align 8, !tbaa !5
  %2880 = load i32, ptr %2879, align 8
  %2881 = and i32 %2880, -16646145
  %2882 = or i32 %2881, 0
  store i32 %2882, ptr %2879, align 8
  br label %3007

2883:                                             ; preds = %2855
  %2884 = load i8, ptr %10, align 1, !tbaa !18
  %2885 = sext i8 %2884 to i32
  %2886 = icmp eq i32 99, %2885
  br i1 %2886, label %2887, label %2892

2887:                                             ; preds = %2883
  %2888 = load ptr, ptr %6, align 8, !tbaa !5
  %2889 = load i32, ptr %2888, align 8
  %2890 = and i32 %2889, -16646145
  %2891 = or i32 %2890, 2097152
  store i32 %2891, ptr %2888, align 8
  br label %2897

2892:                                             ; preds = %2883
  %2893 = load ptr, ptr %6, align 8, !tbaa !5
  %2894 = load i32, ptr %2893, align 8
  %2895 = and i32 %2894, -16646145
  %2896 = or i32 %2895, 2228224
  store i32 %2896, ptr %2893, align 8
  br label %2897

2897:                                             ; preds = %2892, %2887
  br label %3007

2898:                                             ; preds = %2855
  %2899 = load i8, ptr %11, align 1, !tbaa !18
  %2900 = sext i8 %2899 to i32
  %2901 = icmp sge i32 %2900, 48
  br i1 %2901, label %2902, label %2906

2902:                                             ; preds = %2898
  %2903 = load i8, ptr %11, align 1, !tbaa !18
  %2904 = sext i8 %2903 to i32
  %2905 = icmp sle i32 %2904, 57
  br label %2906

2906:                                             ; preds = %2902, %2898
  %2907 = phi i1 [ false, %2898 ], [ %2905, %2902 ]
  %2908 = xor i1 %2907, true
  %2909 = xor i1 %2908, true
  %2910 = xor i1 %2909, true
  %2911 = zext i1 %2910 to i32
  %2912 = sext i32 %2911 to i64
  %2913 = call i64 @llvm.expect.i64(i64 %2912, i64 0)
  %2914 = icmp ne i64 %2913, 0
  br i1 %2914, label %2915, label %2927

2915:                                             ; preds = %2906
  br label %2916

2916:                                             ; preds = %2915
  %2917 = load i32, ptr %21, align 4, !tbaa !11
  %2918 = load ptr, ptr %6, align 8, !tbaa !5
  %2919 = getelementptr inbounds %struct.http_parser, ptr %2918, i32 0, i32 1
  store i32 %2917, ptr %2919, align 4, !tbaa !13
  %2920 = load ptr, ptr %6, align 8, !tbaa !5
  %2921 = getelementptr inbounds %struct.http_parser, ptr %2920, i32 0, i32 5
  %2922 = load i32, ptr %2921, align 4
  %2923 = and i32 %2922, -2130706433
  %2924 = or i32 %2923, 419430400
  store i32 %2924, ptr %2921, align 4
  br label %2925

2925:                                             ; preds = %2916
  br label %2926

2926:                                             ; preds = %2925
  br label %6347

2927:                                             ; preds = %2906
  %2928 = load ptr, ptr %6, align 8, !tbaa !5
  %2929 = load i32, ptr %2928, align 8
  %2930 = lshr i32 %2929, 2
  %2931 = and i32 %2930, 255
  %2932 = and i32 %2931, 128
  %2933 = icmp ne i32 %2932, 0
  br i1 %2933, label %2934, label %2946

2934:                                             ; preds = %2927
  br label %2935

2935:                                             ; preds = %2934
  %2936 = load i32, ptr %21, align 4, !tbaa !11
  %2937 = load ptr, ptr %6, align 8, !tbaa !5
  %2938 = getelementptr inbounds %struct.http_parser, ptr %2937, i32 0, i32 1
  store i32 %2936, ptr %2938, align 4, !tbaa !13
  %2939 = load ptr, ptr %6, align 8, !tbaa !5
  %2940 = getelementptr inbounds %struct.http_parser, ptr %2939, i32 0, i32 5
  %2941 = load i32, ptr %2940, align 4
  %2942 = and i32 %2941, -2130706433
  %2943 = or i32 %2942, 436207616
  store i32 %2943, ptr %2940, align 4
  br label %2944

2944:                                             ; preds = %2935
  br label %2945

2945:                                             ; preds = %2944
  br label %6347

2946:                                             ; preds = %2927
  %2947 = load ptr, ptr %6, align 8, !tbaa !5
  %2948 = load i32, ptr %2947, align 8
  %2949 = lshr i32 %2948, 2
  %2950 = and i32 %2949, 255
  %2951 = or i32 %2950, 128
  %2952 = load i32, ptr %2947, align 8
  %2953 = and i32 %2951, 255
  %2954 = shl i32 %2953, 2
  %2955 = and i32 %2952, -1021
  %2956 = or i32 %2955, %2954
  store i32 %2956, ptr %2947, align 8
  %2957 = load i8, ptr %11, align 1, !tbaa !18
  %2958 = sext i8 %2957 to i32
  %2959 = sub nsw i32 %2958, 48
  %2960 = sext i32 %2959 to i64
  %2961 = load ptr, ptr %6, align 8, !tbaa !5
  %2962 = getelementptr inbounds %struct.http_parser, ptr %2961, i32 0, i32 2
  store i64 %2960, ptr %2962, align 8, !tbaa !19
  %2963 = load ptr, ptr %6, align 8, !tbaa !5
  %2964 = load i32, ptr %2963, align 8
  %2965 = and i32 %2964, -16646145
  %2966 = or i32 %2965, 1441792
  store i32 %2966, ptr %2963, align 8
  br label %3007

2967:                                             ; preds = %2855
  %2968 = load i8, ptr %10, align 1, !tbaa !18
  %2969 = sext i8 %2968 to i32
  %2970 = icmp eq i32 %2969, 107
  br i1 %2970, label %2971, label %2976

2971:                                             ; preds = %2967
  %2972 = load ptr, ptr %6, align 8, !tbaa !5
  %2973 = load i32, ptr %2972, align 8
  %2974 = and i32 %2973, -16646145
  %2975 = or i32 %2974, 2490368
  store i32 %2975, ptr %2972, align 8
  br label %3001

2976:                                             ; preds = %2967
  %2977 = load i8, ptr %10, align 1, !tbaa !18
  %2978 = sext i8 %2977 to i32
  %2979 = icmp eq i32 %2978, 99
  br i1 %2979, label %2980, label %2985

2980:                                             ; preds = %2976
  %2981 = load ptr, ptr %6, align 8, !tbaa !5
  %2982 = load i32, ptr %2981, align 8
  %2983 = and i32 %2982, -16646145
  %2984 = or i32 %2983, 2621440
  store i32 %2984, ptr %2981, align 8
  br label %3000

2985:                                             ; preds = %2976
  %2986 = load i8, ptr %10, align 1, !tbaa !18
  %2987 = sext i8 %2986 to i32
  %2988 = icmp eq i32 %2987, 117
  br i1 %2988, label %2989, label %2994

2989:                                             ; preds = %2985
  %2990 = load ptr, ptr %6, align 8, !tbaa !5
  %2991 = load i32, ptr %2990, align 8
  %2992 = and i32 %2991, -16646145
  %2993 = or i32 %2992, 2752512
  store i32 %2993, ptr %2990, align 8
  br label %2999

2994:                                             ; preds = %2985
  %2995 = load ptr, ptr %6, align 8, !tbaa !5
  %2996 = load i32, ptr %2995, align 8
  %2997 = and i32 %2996, -16646145
  %2998 = or i32 %2997, 2883584
  store i32 %2998, ptr %2995, align 8
  br label %2999

2999:                                             ; preds = %2994, %2989
  br label %3000

3000:                                             ; preds = %2999, %2980
  br label %3001

3001:                                             ; preds = %3000, %2971
  br label %3007

3002:                                             ; preds = %2855
  %3003 = load ptr, ptr %6, align 8, !tbaa !5
  %3004 = load i32, ptr %3003, align 8
  %3005 = and i32 %3004, -16646145
  %3006 = or i32 %3005, 0
  store i32 %3006, ptr %3003, align 8
  br label %3007

3007:                                             ; preds = %3002, %3001, %2946, %2897, %2868, %2855, %2855, %2855
  br label %5855

3008:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  %3009 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %3009, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  %3010 = load ptr, ptr %6, align 8, !tbaa !5
  %3011 = load i32, ptr %3010, align 8
  %3012 = lshr i32 %3011, 17
  %3013 = and i32 %3012, 127
  store i32 %3013, ptr %28, align 4, !tbaa !11
  br label %3014

3014:                                             ; preds = %3829, %3008
  %3015 = load ptr, ptr %13, align 8, !tbaa !5
  %3016 = load ptr, ptr %8, align 8, !tbaa !5
  %3017 = load i64, ptr %9, align 8, !tbaa !9
  %3018 = getelementptr inbounds i8, ptr %3016, i64 %3017
  %3019 = icmp ne ptr %3015, %3018
  br i1 %3019, label %3020, label %3832

3020:                                             ; preds = %3014
  %3021 = load ptr, ptr %13, align 8, !tbaa !5
  %3022 = load i8, ptr %3021, align 1, !tbaa !18
  store i8 %3022, ptr %11, align 1, !tbaa !18
  %3023 = load i8, ptr %11, align 1, !tbaa !18
  %3024 = sext i8 %3023 to i32
  %3025 = icmp eq i32 %3024, 13
  br i1 %3025, label %3026, label %3124

3026:                                             ; preds = %3020
  store i32 52, ptr %19, align 4, !tbaa !11
  %3027 = load i32, ptr %28, align 4, !tbaa !11
  %3028 = load ptr, ptr %6, align 8, !tbaa !5
  %3029 = load i32, ptr %3028, align 8
  %3030 = and i32 %3027, 127
  %3031 = shl i32 %3030, 17
  %3032 = and i32 %3029, -16646145
  %3033 = or i32 %3032, %3031
  store i32 %3033, ptr %3028, align 8
  br label %3034

3034:                                             ; preds = %3026
  %3035 = load ptr, ptr %6, align 8, !tbaa !5
  %3036 = getelementptr inbounds %struct.http_parser, ptr %3035, i32 0, i32 5
  %3037 = load i32, ptr %3036, align 4
  %3038 = lshr i32 %3037, 24
  %3039 = and i32 %3038, 127
  %3040 = icmp eq i32 %3039, 0
  br i1 %3040, label %3041, label %3042

3041:                                             ; preds = %3034
  br label %3043

3042:                                             ; preds = %3034
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1489, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

3043:                                             ; preds = %3041
  %3044 = load ptr, ptr %15, align 8, !tbaa !5
  %3045 = icmp ne ptr %3044, null
  br i1 %3045, label %3046, label %3121

3046:                                             ; preds = %3043
  %3047 = load ptr, ptr %7, align 8, !tbaa !5
  %3048 = getelementptr inbounds %struct.http_parser_settings, ptr %3047, i32 0, i32 4
  %3049 = load ptr, ptr %3048, align 8, !tbaa !29
  %3050 = icmp ne ptr %3049, null
  %3051 = xor i1 %3050, true
  %3052 = xor i1 %3051, true
  %3053 = zext i1 %3052 to i32
  %3054 = sext i32 %3053 to i64
  %3055 = call i64 @llvm.expect.i64(i64 %3054, i64 1)
  %3056 = icmp ne i64 %3055, 0
  br i1 %3056, label %3057, label %3120

3057:                                             ; preds = %3046
  %3058 = load i32, ptr %19, align 4, !tbaa !11
  %3059 = load ptr, ptr %6, align 8, !tbaa !5
  %3060 = load i32, ptr %3059, align 8
  %3061 = and i32 %3058, 127
  %3062 = shl i32 %3061, 10
  %3063 = and i32 %3060, -130049
  %3064 = or i32 %3063, %3062
  store i32 %3064, ptr %3059, align 8
  %3065 = load ptr, ptr %7, align 8, !tbaa !5
  %3066 = getelementptr inbounds %struct.http_parser_settings, ptr %3065, i32 0, i32 4
  %3067 = load ptr, ptr %3066, align 8, !tbaa !29
  %3068 = load ptr, ptr %6, align 8, !tbaa !5
  %3069 = load ptr, ptr %15, align 8, !tbaa !5
  %3070 = load ptr, ptr %13, align 8, !tbaa !5
  %3071 = load ptr, ptr %15, align 8, !tbaa !5
  %3072 = ptrtoint ptr %3070 to i64
  %3073 = ptrtoint ptr %3071 to i64
  %3074 = sub i64 %3072, %3073
  %3075 = call i32 %3067(ptr noundef %3068, ptr noundef %3069, i64 noundef %3074)
  %3076 = icmp ne i32 0, %3075
  %3077 = xor i1 %3076, true
  %3078 = xor i1 %3077, true
  %3079 = zext i1 %3078 to i32
  %3080 = sext i32 %3079 to i64
  %3081 = call i64 @llvm.expect.i64(i64 %3080, i64 0)
  %3082 = icmp ne i64 %3081, 0
  br i1 %3082, label %3083, label %3095

3083:                                             ; preds = %3057
  br label %3084

3084:                                             ; preds = %3083
  %3085 = load i32, ptr %21, align 4, !tbaa !11
  %3086 = load ptr, ptr %6, align 8, !tbaa !5
  %3087 = getelementptr inbounds %struct.http_parser, ptr %3086, i32 0, i32 1
  store i32 %3085, ptr %3087, align 4, !tbaa !13
  %3088 = load ptr, ptr %6, align 8, !tbaa !5
  %3089 = getelementptr inbounds %struct.http_parser, ptr %3088, i32 0, i32 5
  %3090 = load i32, ptr %3089, align 4
  %3091 = and i32 %3090, -2130706433
  %3092 = or i32 %3091, 67108864
  store i32 %3092, ptr %3089, align 4
  br label %3093

3093:                                             ; preds = %3084
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

3095:                                             ; preds = %3094, %3057
  %3096 = load ptr, ptr %6, align 8, !tbaa !5
  %3097 = load i32, ptr %3096, align 8
  %3098 = lshr i32 %3097, 10
  %3099 = and i32 %3098, 127
  store i32 %3099, ptr %19, align 4, !tbaa !11
  %3100 = load ptr, ptr %6, align 8, !tbaa !5
  %3101 = getelementptr inbounds %struct.http_parser, ptr %3100, i32 0, i32 5
  %3102 = load i32, ptr %3101, align 4
  %3103 = lshr i32 %3102, 24
  %3104 = and i32 %3103, 127
  %3105 = icmp ne i32 %3104, 0
  %3106 = xor i1 %3105, true
  %3107 = xor i1 %3106, true
  %3108 = zext i1 %3107 to i32
  %3109 = sext i32 %3108 to i64
  %3110 = call i64 @llvm.expect.i64(i64 %3109, i64 0)
  %3111 = icmp ne i64 %3110, 0
  br i1 %3111, label %3112, label %3119

3112:                                             ; preds = %3095
  %3113 = load ptr, ptr %13, align 8, !tbaa !5
  %3114 = load ptr, ptr %8, align 8, !tbaa !5
  %3115 = ptrtoint ptr %3113 to i64
  %3116 = ptrtoint ptr %3114 to i64
  %3117 = sub i64 %3115, %3116
  %3118 = add nsw i64 %3117, 1
  store i64 %3118, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %3882

3119:                                             ; preds = %3095
  br label %3120

3120:                                             ; preds = %3119, %3046
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %3121

3121:                                             ; preds = %3120, %3043
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122
  br label %3832

3124:                                             ; preds = %3020
  %3125 = load i8, ptr %11, align 1, !tbaa !18
  %3126 = sext i8 %3125 to i32
  %3127 = icmp eq i32 %3126, 10
  br i1 %3127, label %3128, label %3258

3128:                                             ; preds = %3124
  store i32 52, ptr %19, align 4, !tbaa !11
  br label %3129

3129:                                             ; preds = %3128
  %3130 = load ptr, ptr %13, align 8, !tbaa !5
  %3131 = load ptr, ptr %27, align 8, !tbaa !5
  %3132 = ptrtoint ptr %3130 to i64
  %3133 = ptrtoint ptr %3131 to i64
  %3134 = sub i64 %3132, %3133
  %3135 = trunc i64 %3134 to i32
  %3136 = load i32, ptr %21, align 4, !tbaa !11
  %3137 = add i32 %3136, %3135
  store i32 %3137, ptr %21, align 4, !tbaa !11
  %3138 = load i32, ptr %21, align 4, !tbaa !11
  %3139 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %3140 = icmp ugt i32 %3138, %3139
  %3141 = xor i1 %3140, true
  %3142 = xor i1 %3141, true
  %3143 = zext i1 %3142 to i32
  %3144 = sext i32 %3143 to i64
  %3145 = call i64 @llvm.expect.i64(i64 %3144, i64 0)
  %3146 = icmp ne i64 %3145, 0
  br i1 %3146, label %3147, label %3159

3147:                                             ; preds = %3129
  br label %3148

3148:                                             ; preds = %3147
  %3149 = load i32, ptr %21, align 4, !tbaa !11
  %3150 = load ptr, ptr %6, align 8, !tbaa !5
  %3151 = getelementptr inbounds %struct.http_parser, ptr %3150, i32 0, i32 1
  store i32 %3149, ptr %3151, align 4, !tbaa !13
  %3152 = load ptr, ptr %6, align 8, !tbaa !5
  %3153 = getelementptr inbounds %struct.http_parser, ptr %3152, i32 0, i32 5
  %3154 = load i32, ptr %3153, align 4
  %3155 = and i32 %3154, -2130706433
  %3156 = or i32 %3155, 201326592
  store i32 %3156, ptr %3153, align 4
  br label %3157

3157:                                             ; preds = %3148
  br label %3158

3158:                                             ; preds = %3157
  store i32 17, ptr %22, align 4
  br label %3882

3159:                                             ; preds = %3129
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160
  %3162 = load i32, ptr %28, align 4, !tbaa !11
  %3163 = load ptr, ptr %6, align 8, !tbaa !5
  %3164 = load i32, ptr %3163, align 8
  %3165 = and i32 %3162, 127
  %3166 = shl i32 %3165, 17
  %3167 = and i32 %3164, -16646145
  %3168 = or i32 %3167, %3166
  store i32 %3168, ptr %3163, align 8
  br label %3169

3169:                                             ; preds = %3161
  %3170 = load ptr, ptr %6, align 8, !tbaa !5
  %3171 = getelementptr inbounds %struct.http_parser, ptr %3170, i32 0, i32 5
  %3172 = load i32, ptr %3171, align 4
  %3173 = lshr i32 %3172, 24
  %3174 = and i32 %3173, 127
  %3175 = icmp eq i32 %3174, 0
  br i1 %3175, label %3176, label %3177

3176:                                             ; preds = %3169
  br label %3178

3177:                                             ; preds = %3169
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1497, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

3178:                                             ; preds = %3176
  %3179 = load ptr, ptr %15, align 8, !tbaa !5
  %3180 = icmp ne ptr %3179, null
  br i1 %3180, label %3181, label %3255

3181:                                             ; preds = %3178
  %3182 = load ptr, ptr %7, align 8, !tbaa !5
  %3183 = getelementptr inbounds %struct.http_parser_settings, ptr %3182, i32 0, i32 4
  %3184 = load ptr, ptr %3183, align 8, !tbaa !29
  %3185 = icmp ne ptr %3184, null
  %3186 = xor i1 %3185, true
  %3187 = xor i1 %3186, true
  %3188 = zext i1 %3187 to i32
  %3189 = sext i32 %3188 to i64
  %3190 = call i64 @llvm.expect.i64(i64 %3189, i64 1)
  %3191 = icmp ne i64 %3190, 0
  br i1 %3191, label %3192, label %3254

3192:                                             ; preds = %3181
  %3193 = load i32, ptr %19, align 4, !tbaa !11
  %3194 = load ptr, ptr %6, align 8, !tbaa !5
  %3195 = load i32, ptr %3194, align 8
  %3196 = and i32 %3193, 127
  %3197 = shl i32 %3196, 10
  %3198 = and i32 %3195, -130049
  %3199 = or i32 %3198, %3197
  store i32 %3199, ptr %3194, align 8
  %3200 = load ptr, ptr %7, align 8, !tbaa !5
  %3201 = getelementptr inbounds %struct.http_parser_settings, ptr %3200, i32 0, i32 4
  %3202 = load ptr, ptr %3201, align 8, !tbaa !29
  %3203 = load ptr, ptr %6, align 8, !tbaa !5
  %3204 = load ptr, ptr %15, align 8, !tbaa !5
  %3205 = load ptr, ptr %13, align 8, !tbaa !5
  %3206 = load ptr, ptr %15, align 8, !tbaa !5
  %3207 = ptrtoint ptr %3205 to i64
  %3208 = ptrtoint ptr %3206 to i64
  %3209 = sub i64 %3207, %3208
  %3210 = call i32 %3202(ptr noundef %3203, ptr noundef %3204, i64 noundef %3209)
  %3211 = icmp ne i32 0, %3210
  %3212 = xor i1 %3211, true
  %3213 = xor i1 %3212, true
  %3214 = zext i1 %3213 to i32
  %3215 = sext i32 %3214 to i64
  %3216 = call i64 @llvm.expect.i64(i64 %3215, i64 0)
  %3217 = icmp ne i64 %3216, 0
  br i1 %3217, label %3218, label %3230

3218:                                             ; preds = %3192
  br label %3219

3219:                                             ; preds = %3218
  %3220 = load i32, ptr %21, align 4, !tbaa !11
  %3221 = load ptr, ptr %6, align 8, !tbaa !5
  %3222 = getelementptr inbounds %struct.http_parser, ptr %3221, i32 0, i32 1
  store i32 %3220, ptr %3222, align 4, !tbaa !13
  %3223 = load ptr, ptr %6, align 8, !tbaa !5
  %3224 = getelementptr inbounds %struct.http_parser, ptr %3223, i32 0, i32 5
  %3225 = load i32, ptr %3224, align 4
  %3226 = and i32 %3225, -2130706433
  %3227 = or i32 %3226, 67108864
  store i32 %3227, ptr %3224, align 4
  br label %3228

3228:                                             ; preds = %3219
  br label %3229

3229:                                             ; preds = %3228
  br label %3230

3230:                                             ; preds = %3229, %3192
  %3231 = load ptr, ptr %6, align 8, !tbaa !5
  %3232 = load i32, ptr %3231, align 8
  %3233 = lshr i32 %3232, 10
  %3234 = and i32 %3233, 127
  store i32 %3234, ptr %19, align 4, !tbaa !11
  %3235 = load ptr, ptr %6, align 8, !tbaa !5
  %3236 = getelementptr inbounds %struct.http_parser, ptr %3235, i32 0, i32 5
  %3237 = load i32, ptr %3236, align 4
  %3238 = lshr i32 %3237, 24
  %3239 = and i32 %3238, 127
  %3240 = icmp ne i32 %3239, 0
  %3241 = xor i1 %3240, true
  %3242 = xor i1 %3241, true
  %3243 = zext i1 %3242 to i32
  %3244 = sext i32 %3243 to i64
  %3245 = call i64 @llvm.expect.i64(i64 %3244, i64 0)
  %3246 = icmp ne i64 %3245, 0
  br i1 %3246, label %3247, label %3253

3247:                                             ; preds = %3230
  %3248 = load ptr, ptr %13, align 8, !tbaa !5
  %3249 = load ptr, ptr %8, align 8, !tbaa !5
  %3250 = ptrtoint ptr %3248 to i64
  %3251 = ptrtoint ptr %3249 to i64
  %3252 = sub i64 %3250, %3251
  store i64 %3252, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %3882

3253:                                             ; preds = %3230
  br label %3254

3254:                                             ; preds = %3253, %3181
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %3255

3255:                                             ; preds = %3254, %3178
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256
  store i32 18, ptr %22, align 4
  br label %3882

3258:                                             ; preds = %3124
  %3259 = load i32, ptr %20, align 4, !tbaa !11
  %3260 = icmp ne i32 %3259, 0
  br i1 %3260, label %3293, label %3261

3261:                                             ; preds = %3258
  %3262 = load i8, ptr %11, align 1, !tbaa !18
  %3263 = sext i8 %3262 to i32
  %3264 = icmp eq i32 %3263, 13
  br i1 %3264, label %3293, label %3265

3265:                                             ; preds = %3261
  %3266 = load i8, ptr %11, align 1, !tbaa !18
  %3267 = sext i8 %3266 to i32
  %3268 = icmp eq i32 %3267, 10
  br i1 %3268, label %3293, label %3269

3269:                                             ; preds = %3265
  %3270 = load i8, ptr %11, align 1, !tbaa !18
  %3271 = sext i8 %3270 to i32
  %3272 = icmp eq i32 %3271, 9
  br i1 %3272, label %3293, label %3273

3273:                                             ; preds = %3269
  %3274 = load i8, ptr %11, align 1, !tbaa !18
  %3275 = zext i8 %3274 to i32
  %3276 = icmp sgt i32 %3275, 31
  br i1 %3276, label %3277, label %3281

3277:                                             ; preds = %3273
  %3278 = load i8, ptr %11, align 1, !tbaa !18
  %3279 = sext i8 %3278 to i32
  %3280 = icmp ne i32 %3279, 127
  br i1 %3280, label %3293, label %3281

3281:                                             ; preds = %3277, %3273
  br label %3282

3282:                                             ; preds = %3281
  %3283 = load i32, ptr %21, align 4, !tbaa !11
  %3284 = load ptr, ptr %6, align 8, !tbaa !5
  %3285 = getelementptr inbounds %struct.http_parser, ptr %3284, i32 0, i32 1
  store i32 %3283, ptr %3285, align 4, !tbaa !13
  %3286 = load ptr, ptr %6, align 8, !tbaa !5
  %3287 = getelementptr inbounds %struct.http_parser, ptr %3286, i32 0, i32 5
  %3288 = load i32, ptr %3287, align 4
  %3289 = and i32 %3288, -2130706433
  %3290 = or i32 %3289, 402653184
  store i32 %3290, ptr %3287, align 4
  br label %3291

3291:                                             ; preds = %3282
  br label %3292

3292:                                             ; preds = %3291
  store i32 17, ptr %22, align 4
  br label %3882

3293:                                             ; preds = %3277, %3269, %3265, %3261, %3258
  %3294 = load i8, ptr %11, align 1, !tbaa !18
  %3295 = sext i8 %3294 to i32
  %3296 = or i32 %3295, 32
  %3297 = trunc i32 %3296 to i8
  store i8 %3297, ptr %10, align 1, !tbaa !18
  %3298 = load i32, ptr %28, align 4, !tbaa !11
  switch i32 %3298, label %3827 [
    i32 0, label %3299
    i32 9, label %3388
    i32 13, label %3388
    i32 10, label %3389
    i32 11, label %3395
    i32 12, label %3483
    i32 15, label %3507
    i32 16, label %3538
    i32 17, label %3578
    i32 18, label %3588
    i32 19, label %3631
    i32 20, label %3671
    i32 21, label %3711
    i32 22, label %3751
    i32 23, label %3761
    i32 24, label %3767
    i32 25, label %3767
    i32 26, label %3767
  ]

3299:                                             ; preds = %3293
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  %3300 = load ptr, ptr %8, align 8, !tbaa !5
  %3301 = load i64, ptr %9, align 8, !tbaa !9
  %3302 = getelementptr inbounds i8, ptr %3300, i64 %3301
  %3303 = load ptr, ptr %13, align 8, !tbaa !5
  %3304 = ptrtoint ptr %3302 to i64
  %3305 = ptrtoint ptr %3303 to i64
  %3306 = sub i64 %3304, %3305
  store i64 %3306, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  %3307 = load ptr, ptr %13, align 8, !tbaa !5
  %3308 = load i64, ptr %29, align 8, !tbaa !9
  %3309 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %3310 = zext i32 %3309 to i64
  %3311 = icmp ult i64 %3308, %3310
  br i1 %3311, label %3312, label %3314

3312:                                             ; preds = %3299
  %3313 = load i64, ptr %29, align 8, !tbaa !9
  br label %3317

3314:                                             ; preds = %3299
  %3315 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %3316 = zext i32 %3315 to i64
  br label %3317

3317:                                             ; preds = %3314, %3312
  %3318 = phi i64 [ %3313, %3312 ], [ %3316, %3314 ]
  %3319 = getelementptr inbounds i8, ptr %3307, i64 %3318
  store ptr %3319, ptr %30, align 8, !tbaa !5
  br label %3320

3320:                                             ; preds = %3373, %3317
  %3321 = load ptr, ptr %13, align 8, !tbaa !5
  %3322 = load ptr, ptr %30, align 8, !tbaa !5
  %3323 = icmp ne ptr %3321, %3322
  br i1 %3323, label %3324, label %3376

3324:                                             ; preds = %3320
  %3325 = load ptr, ptr %13, align 8, !tbaa !5
  %3326 = load i8, ptr %3325, align 1, !tbaa !18
  store i8 %3326, ptr %11, align 1, !tbaa !18
  %3327 = load i8, ptr %11, align 1, !tbaa !18
  %3328 = sext i8 %3327 to i32
  %3329 = icmp eq i32 %3328, 13
  br i1 %3329, label %3334, label %3330

3330:                                             ; preds = %3324
  %3331 = load i8, ptr %11, align 1, !tbaa !18
  %3332 = sext i8 %3331 to i32
  %3333 = icmp eq i32 %3332, 10
  br i1 %3333, label %3334, label %3337

3334:                                             ; preds = %3330, %3324
  %3335 = load ptr, ptr %13, align 8, !tbaa !5
  %3336 = getelementptr inbounds i8, ptr %3335, i32 -1
  store ptr %3336, ptr %13, align 8, !tbaa !5
  br label %3376

3337:                                             ; preds = %3330
  %3338 = load i32, ptr %20, align 4, !tbaa !11
  %3339 = icmp ne i32 %3338, 0
  br i1 %3339, label %3372, label %3340

3340:                                             ; preds = %3337
  %3341 = load i8, ptr %11, align 1, !tbaa !18
  %3342 = sext i8 %3341 to i32
  %3343 = icmp eq i32 %3342, 13
  br i1 %3343, label %3372, label %3344

3344:                                             ; preds = %3340
  %3345 = load i8, ptr %11, align 1, !tbaa !18
  %3346 = sext i8 %3345 to i32
  %3347 = icmp eq i32 %3346, 10
  br i1 %3347, label %3372, label %3348

3348:                                             ; preds = %3344
  %3349 = load i8, ptr %11, align 1, !tbaa !18
  %3350 = sext i8 %3349 to i32
  %3351 = icmp eq i32 %3350, 9
  br i1 %3351, label %3372, label %3352

3352:                                             ; preds = %3348
  %3353 = load i8, ptr %11, align 1, !tbaa !18
  %3354 = zext i8 %3353 to i32
  %3355 = icmp sgt i32 %3354, 31
  br i1 %3355, label %3356, label %3360

3356:                                             ; preds = %3352
  %3357 = load i8, ptr %11, align 1, !tbaa !18
  %3358 = sext i8 %3357 to i32
  %3359 = icmp ne i32 %3358, 127
  br i1 %3359, label %3372, label %3360

3360:                                             ; preds = %3356, %3352
  br label %3361

3361:                                             ; preds = %3360
  %3362 = load i32, ptr %21, align 4, !tbaa !11
  %3363 = load ptr, ptr %6, align 8, !tbaa !5
  %3364 = getelementptr inbounds %struct.http_parser, ptr %3363, i32 0, i32 1
  store i32 %3362, ptr %3364, align 4, !tbaa !13
  %3365 = load ptr, ptr %6, align 8, !tbaa !5
  %3366 = getelementptr inbounds %struct.http_parser, ptr %3365, i32 0, i32 5
  %3367 = load i32, ptr %3366, align 4
  %3368 = and i32 %3367, -2130706433
  %3369 = or i32 %3368, 402653184
  store i32 %3369, ptr %3366, align 4
  br label %3370

3370:                                             ; preds = %3361
  br label %3371

3371:                                             ; preds = %3370
  store i32 17, ptr %22, align 4
  br label %3386

3372:                                             ; preds = %3356, %3348, %3344, %3340, %3337
  br label %3373

3373:                                             ; preds = %3372
  %3374 = load ptr, ptr %13, align 8, !tbaa !5
  %3375 = getelementptr inbounds i8, ptr %3374, i32 1
  store ptr %3375, ptr %13, align 8, !tbaa !5
  br label %3320, !llvm.loop !30

3376:                                             ; preds = %3334, %3320
  %3377 = load ptr, ptr %13, align 8, !tbaa !5
  %3378 = load ptr, ptr %8, align 8, !tbaa !5
  %3379 = load i64, ptr %9, align 8, !tbaa !9
  %3380 = getelementptr inbounds i8, ptr %3378, i64 %3379
  %3381 = icmp eq ptr %3377, %3380
  br i1 %3381, label %3382, label %3385

3382:                                             ; preds = %3376
  %3383 = load ptr, ptr %13, align 8, !tbaa !5
  %3384 = getelementptr inbounds i8, ptr %3383, i32 -1
  store ptr %3384, ptr %13, align 8, !tbaa !5
  br label %3385

3385:                                             ; preds = %3382, %3376
  store i32 202, ptr %22, align 4
  br label %3386

3386:                                             ; preds = %3385, %3371
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  %3387 = load i32, ptr %22, align 4
  switch i32 %3387, label %3882 [
    i32 202, label %3828
  ]

3388:                                             ; preds = %3293, %3293
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 1532, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

3389:                                             ; preds = %3293
  %3390 = load i8, ptr %11, align 1, !tbaa !18
  %3391 = sext i8 %3390 to i32
  %3392 = icmp eq i32 %3391, 32
  br i1 %3392, label %3393, label %3394

3393:                                             ; preds = %3389
  br label %3828

3394:                                             ; preds = %3389
  store i32 11, ptr %28, align 4, !tbaa !11
  br label %3395

3395:                                             ; preds = %3394, %3293
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  %3396 = load i8, ptr %11, align 1, !tbaa !18
  %3397 = sext i8 %3396 to i32
  %3398 = icmp eq i32 %3397, 32
  br i1 %3398, label %3399, label %3400

3399:                                             ; preds = %3395
  store i32 12, ptr %28, align 4, !tbaa !11
  store i32 202, ptr %22, align 4
  br label %3481

3400:                                             ; preds = %3395
  %3401 = load i8, ptr %11, align 1, !tbaa !18
  %3402 = sext i8 %3401 to i32
  %3403 = icmp sge i32 %3402, 48
  br i1 %3403, label %3404, label %3408

3404:                                             ; preds = %3400
  %3405 = load i8, ptr %11, align 1, !tbaa !18
  %3406 = sext i8 %3405 to i32
  %3407 = icmp sle i32 %3406, 57
  br label %3408

3408:                                             ; preds = %3404, %3400
  %3409 = phi i1 [ false, %3400 ], [ %3407, %3404 ]
  %3410 = xor i1 %3409, true
  %3411 = xor i1 %3410, true
  %3412 = xor i1 %3411, true
  %3413 = zext i1 %3412 to i32
  %3414 = sext i32 %3413 to i64
  %3415 = call i64 @llvm.expect.i64(i64 %3414, i64 0)
  %3416 = icmp ne i64 %3415, 0
  br i1 %3416, label %3417, label %3436

3417:                                             ; preds = %3408
  br label %3418

3418:                                             ; preds = %3417
  %3419 = load i32, ptr %21, align 4, !tbaa !11
  %3420 = load ptr, ptr %6, align 8, !tbaa !5
  %3421 = getelementptr inbounds %struct.http_parser, ptr %3420, i32 0, i32 1
  store i32 %3419, ptr %3421, align 4, !tbaa !13
  %3422 = load ptr, ptr %6, align 8, !tbaa !5
  %3423 = getelementptr inbounds %struct.http_parser, ptr %3422, i32 0, i32 5
  %3424 = load i32, ptr %3423, align 4
  %3425 = and i32 %3424, -2130706433
  %3426 = or i32 %3425, 419430400
  store i32 %3426, ptr %3423, align 4
  br label %3427

3427:                                             ; preds = %3418
  br label %3428

3428:                                             ; preds = %3427
  %3429 = load i32, ptr %28, align 4, !tbaa !11
  %3430 = load ptr, ptr %6, align 8, !tbaa !5
  %3431 = load i32, ptr %3430, align 8
  %3432 = and i32 %3429, 127
  %3433 = shl i32 %3432, 17
  %3434 = and i32 %3431, -16646145
  %3435 = or i32 %3434, %3433
  store i32 %3435, ptr %3430, align 8
  store i32 17, ptr %22, align 4
  br label %3481

3436:                                             ; preds = %3408
  %3437 = load ptr, ptr %6, align 8, !tbaa !5
  %3438 = getelementptr inbounds %struct.http_parser, ptr %3437, i32 0, i32 2
  %3439 = load i64, ptr %3438, align 8, !tbaa !19
  store i64 %3439, ptr %31, align 8, !tbaa !9
  %3440 = load i64, ptr %31, align 8, !tbaa !9
  %3441 = mul i64 %3440, 10
  store i64 %3441, ptr %31, align 8, !tbaa !9
  %3442 = load i8, ptr %11, align 1, !tbaa !18
  %3443 = sext i8 %3442 to i32
  %3444 = sub nsw i32 %3443, 48
  %3445 = sext i32 %3444 to i64
  %3446 = load i64, ptr %31, align 8, !tbaa !9
  %3447 = add i64 %3446, %3445
  store i64 %3447, ptr %31, align 8, !tbaa !9
  %3448 = load ptr, ptr %6, align 8, !tbaa !5
  %3449 = getelementptr inbounds %struct.http_parser, ptr %3448, i32 0, i32 2
  %3450 = load i64, ptr %3449, align 8, !tbaa !19
  %3451 = icmp ult i64 1844674407370955160, %3450
  %3452 = xor i1 %3451, true
  %3453 = xor i1 %3452, true
  %3454 = zext i1 %3453 to i32
  %3455 = sext i32 %3454 to i64
  %3456 = call i64 @llvm.expect.i64(i64 %3455, i64 0)
  %3457 = icmp ne i64 %3456, 0
  br i1 %3457, label %3458, label %3477

3458:                                             ; preds = %3436
  br label %3459

3459:                                             ; preds = %3458
  %3460 = load i32, ptr %21, align 4, !tbaa !11
  %3461 = load ptr, ptr %6, align 8, !tbaa !5
  %3462 = getelementptr inbounds %struct.http_parser, ptr %3461, i32 0, i32 1
  store i32 %3460, ptr %3462, align 4, !tbaa !13
  %3463 = load ptr, ptr %6, align 8, !tbaa !5
  %3464 = getelementptr inbounds %struct.http_parser, ptr %3463, i32 0, i32 5
  %3465 = load i32, ptr %3464, align 4
  %3466 = and i32 %3465, -2130706433
  %3467 = or i32 %3466, 419430400
  store i32 %3467, ptr %3464, align 4
  br label %3468

3468:                                             ; preds = %3459
  br label %3469

3469:                                             ; preds = %3468
  %3470 = load i32, ptr %28, align 4, !tbaa !11
  %3471 = load ptr, ptr %6, align 8, !tbaa !5
  %3472 = load i32, ptr %3471, align 8
  %3473 = and i32 %3470, 127
  %3474 = shl i32 %3473, 17
  %3475 = and i32 %3472, -16646145
  %3476 = or i32 %3475, %3474
  store i32 %3476, ptr %3471, align 8
  store i32 17, ptr %22, align 4
  br label %3481

3477:                                             ; preds = %3436
  %3478 = load i64, ptr %31, align 8, !tbaa !9
  %3479 = load ptr, ptr %6, align 8, !tbaa !5
  %3480 = getelementptr inbounds %struct.http_parser, ptr %3479, i32 0, i32 2
  store i64 %3478, ptr %3480, align 8, !tbaa !19
  store i32 202, ptr %22, align 4
  br label %3481

3481:                                             ; preds = %3477, %3469, %3428, %3399
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  %3482 = load i32, ptr %22, align 4
  switch i32 %3482, label %3882 [
    i32 202, label %3828
  ]

3483:                                             ; preds = %3293
  %3484 = load i8, ptr %11, align 1, !tbaa !18
  %3485 = sext i8 %3484 to i32
  %3486 = icmp eq i32 %3485, 32
  br i1 %3486, label %3487, label %3488

3487:                                             ; preds = %3483
  br label %3828

3488:                                             ; preds = %3483
  br label %3489

3489:                                             ; preds = %3488
  %3490 = load i32, ptr %21, align 4, !tbaa !11
  %3491 = load ptr, ptr %6, align 8, !tbaa !5
  %3492 = getelementptr inbounds %struct.http_parser, ptr %3491, i32 0, i32 1
  store i32 %3490, ptr %3492, align 4, !tbaa !13
  %3493 = load ptr, ptr %6, align 8, !tbaa !5
  %3494 = getelementptr inbounds %struct.http_parser, ptr %3493, i32 0, i32 5
  %3495 = load i32, ptr %3494, align 4
  %3496 = and i32 %3495, -2130706433
  %3497 = or i32 %3496, 419430400
  store i32 %3497, ptr %3494, align 4
  br label %3498

3498:                                             ; preds = %3489
  br label %3499

3499:                                             ; preds = %3498
  %3500 = load i32, ptr %28, align 4, !tbaa !11
  %3501 = load ptr, ptr %6, align 8, !tbaa !5
  %3502 = load i32, ptr %3501, align 8
  %3503 = and i32 %3500, 127
  %3504 = shl i32 %3503, 17
  %3505 = and i32 %3502, -16646145
  %3506 = or i32 %3505, %3504
  store i32 %3506, ptr %3501, align 8
  store i32 17, ptr %22, align 4
  br label %3882

3507:                                             ; preds = %3293
  %3508 = load i8, ptr %10, align 1, !tbaa !18
  %3509 = sext i8 %3508 to i32
  %3510 = icmp eq i32 99, %3509
  br i1 %3510, label %3511, label %3512

3511:                                             ; preds = %3507
  store i32 16, ptr %28, align 4, !tbaa !11
  br label %3537

3512:                                             ; preds = %3507
  %3513 = load i8, ptr %10, align 1, !tbaa !18
  %3514 = sext i8 %3513 to i32
  %3515 = icmp eq i32 %3514, 32
  br i1 %3515, label %3516, label %3517

3516:                                             ; preds = %3512
  br i1 false, label %3524, label %3525

3517:                                             ; preds = %3512
  %3518 = load i8, ptr %10, align 1, !tbaa !18
  %3519 = zext i8 %3518 to i64
  %3520 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %3519
  %3521 = load i8, ptr %3520, align 1, !tbaa !18
  %3522 = sext i8 %3521 to i32
  %3523 = icmp ne i32 %3522, 0
  br i1 %3523, label %3524, label %3525

3524:                                             ; preds = %3517, %3516
  store i32 17, ptr %28, align 4, !tbaa !11
  br label %3536

3525:                                             ; preds = %3517, %3516
  %3526 = load i8, ptr %10, align 1, !tbaa !18
  %3527 = sext i8 %3526 to i32
  %3528 = icmp eq i32 %3527, 32
  br i1 %3528, label %3533, label %3529

3529:                                             ; preds = %3525
  %3530 = load i8, ptr %10, align 1, !tbaa !18
  %3531 = sext i8 %3530 to i32
  %3532 = icmp eq i32 %3531, 9
  br i1 %3532, label %3533, label %3534

3533:                                             ; preds = %3529, %3525
  br label %3535

3534:                                             ; preds = %3529
  store i32 0, ptr %28, align 4, !tbaa !11
  br label %3535

3535:                                             ; preds = %3534, %3533
  br label %3536

3536:                                             ; preds = %3535, %3524
  br label %3537

3537:                                             ; preds = %3536, %3511
  br label %3828

3538:                                             ; preds = %3293
  %3539 = load ptr, ptr %6, align 8, !tbaa !5
  %3540 = load i32, ptr %3539, align 8
  %3541 = lshr i32 %3540, 24
  %3542 = and i32 %3541, 31
  %3543 = add i32 %3542, 1
  %3544 = load i32, ptr %3539, align 8
  %3545 = and i32 %3543, 31
  %3546 = shl i32 %3545, 24
  %3547 = and i32 %3544, -520093697
  %3548 = or i32 %3547, %3546
  store i32 %3548, ptr %3539, align 8
  %3549 = load ptr, ptr %6, align 8, !tbaa !5
  %3550 = load i32, ptr %3549, align 8
  %3551 = lshr i32 %3550, 24
  %3552 = and i32 %3551, 31
  %3553 = zext i32 %3552 to i64
  %3554 = icmp ugt i64 %3553, 7
  br i1 %3554, label %3567, label %3555

3555:                                             ; preds = %3538
  %3556 = load i8, ptr %10, align 1, !tbaa !18
  %3557 = sext i8 %3556 to i32
  %3558 = load ptr, ptr %6, align 8, !tbaa !5
  %3559 = load i32, ptr %3558, align 8
  %3560 = lshr i32 %3559, 24
  %3561 = and i32 %3560, 31
  %3562 = zext i32 %3561 to i64
  %3563 = getelementptr inbounds [8 x i8], ptr @.str.9, i64 0, i64 %3562
  %3564 = load i8, ptr %3563, align 1, !tbaa !18
  %3565 = sext i8 %3564 to i32
  %3566 = icmp ne i32 %3557, %3565
  br i1 %3566, label %3567, label %3568

3567:                                             ; preds = %3555, %3538
  store i32 17, ptr %28, align 4, !tbaa !11
  br label %3577

3568:                                             ; preds = %3555
  %3569 = load ptr, ptr %6, align 8, !tbaa !5
  %3570 = load i32, ptr %3569, align 8
  %3571 = lshr i32 %3570, 24
  %3572 = and i32 %3571, 31
  %3573 = zext i32 %3572 to i64
  %3574 = icmp eq i64 %3573, 6
  br i1 %3574, label %3575, label %3576

3575:                                             ; preds = %3568
  store i32 23, ptr %28, align 4, !tbaa !11
  br label %3576

3576:                                             ; preds = %3575, %3568
  br label %3577

3577:                                             ; preds = %3576, %3567
  br label %3828

3578:                                             ; preds = %3293
  %3579 = load i8, ptr %11, align 1, !tbaa !18
  %3580 = sext i8 %3579 to i32
  %3581 = icmp eq i32 %3580, 44
  br i1 %3581, label %3582, label %3587

3582:                                             ; preds = %3578
  store i32 15, ptr %28, align 4, !tbaa !11
  %3583 = load ptr, ptr %6, align 8, !tbaa !5
  %3584 = load i32, ptr %3583, align 8
  %3585 = and i32 %3584, -520093697
  %3586 = or i32 %3585, 0
  store i32 %3586, ptr %3583, align 8
  br label %3587

3587:                                             ; preds = %3582, %3578
  br label %3828

3588:                                             ; preds = %3293
  %3589 = load i8, ptr %10, align 1, !tbaa !18
  %3590 = sext i8 %3589 to i32
  %3591 = icmp eq i32 %3590, 107
  br i1 %3591, label %3592, label %3593

3592:                                             ; preds = %3588
  store i32 19, ptr %28, align 4, !tbaa !11
  br label %3630

3593:                                             ; preds = %3588
  %3594 = load i8, ptr %10, align 1, !tbaa !18
  %3595 = sext i8 %3594 to i32
  %3596 = icmp eq i32 %3595, 99
  br i1 %3596, label %3597, label %3598

3597:                                             ; preds = %3593
  store i32 20, ptr %28, align 4, !tbaa !11
  br label %3629

3598:                                             ; preds = %3593
  %3599 = load i8, ptr %10, align 1, !tbaa !18
  %3600 = sext i8 %3599 to i32
  %3601 = icmp eq i32 %3600, 117
  br i1 %3601, label %3602, label %3603

3602:                                             ; preds = %3598
  store i32 21, ptr %28, align 4, !tbaa !11
  br label %3628

3603:                                             ; preds = %3598
  %3604 = load i8, ptr %10, align 1, !tbaa !18
  %3605 = sext i8 %3604 to i32
  %3606 = icmp eq i32 %3605, 32
  br i1 %3606, label %3607, label %3608

3607:                                             ; preds = %3603
  br i1 false, label %3615, label %3616

3608:                                             ; preds = %3603
  %3609 = load i8, ptr %10, align 1, !tbaa !18
  %3610 = zext i8 %3609 to i64
  %3611 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %3610
  %3612 = load i8, ptr %3611, align 1, !tbaa !18
  %3613 = sext i8 %3612 to i32
  %3614 = icmp ne i32 %3613, 0
  br i1 %3614, label %3615, label %3616

3615:                                             ; preds = %3608, %3607
  store i32 22, ptr %28, align 4, !tbaa !11
  br label %3627

3616:                                             ; preds = %3608, %3607
  %3617 = load i8, ptr %10, align 1, !tbaa !18
  %3618 = sext i8 %3617 to i32
  %3619 = icmp eq i32 %3618, 32
  br i1 %3619, label %3624, label %3620

3620:                                             ; preds = %3616
  %3621 = load i8, ptr %10, align 1, !tbaa !18
  %3622 = sext i8 %3621 to i32
  %3623 = icmp eq i32 %3622, 9
  br i1 %3623, label %3624, label %3625

3624:                                             ; preds = %3620, %3616
  br label %3626

3625:                                             ; preds = %3620
  store i32 0, ptr %28, align 4, !tbaa !11
  br label %3626

3626:                                             ; preds = %3625, %3624
  br label %3627

3627:                                             ; preds = %3626, %3615
  br label %3628

3628:                                             ; preds = %3627, %3602
  br label %3629

3629:                                             ; preds = %3628, %3597
  br label %3630

3630:                                             ; preds = %3629, %3592
  br label %3828

3631:                                             ; preds = %3293
  %3632 = load ptr, ptr %6, align 8, !tbaa !5
  %3633 = load i32, ptr %3632, align 8
  %3634 = lshr i32 %3633, 24
  %3635 = and i32 %3634, 31
  %3636 = add i32 %3635, 1
  %3637 = load i32, ptr %3632, align 8
  %3638 = and i32 %3636, 31
  %3639 = shl i32 %3638, 24
  %3640 = and i32 %3637, -520093697
  %3641 = or i32 %3640, %3639
  store i32 %3641, ptr %3632, align 8
  %3642 = load ptr, ptr %6, align 8, !tbaa !5
  %3643 = load i32, ptr %3642, align 8
  %3644 = lshr i32 %3643, 24
  %3645 = and i32 %3644, 31
  %3646 = zext i32 %3645 to i64
  %3647 = icmp ugt i64 %3646, 10
  br i1 %3647, label %3660, label %3648

3648:                                             ; preds = %3631
  %3649 = load i8, ptr %10, align 1, !tbaa !18
  %3650 = sext i8 %3649 to i32
  %3651 = load ptr, ptr %6, align 8, !tbaa !5
  %3652 = load i32, ptr %3651, align 8
  %3653 = lshr i32 %3652, 24
  %3654 = and i32 %3653, 31
  %3655 = zext i32 %3654 to i64
  %3656 = getelementptr inbounds [11 x i8], ptr @.str.10, i64 0, i64 %3655
  %3657 = load i8, ptr %3656, align 1, !tbaa !18
  %3658 = sext i8 %3657 to i32
  %3659 = icmp ne i32 %3650, %3658
  br i1 %3659, label %3660, label %3661

3660:                                             ; preds = %3648, %3631
  store i32 22, ptr %28, align 4, !tbaa !11
  br label %3670

3661:                                             ; preds = %3648
  %3662 = load ptr, ptr %6, align 8, !tbaa !5
  %3663 = load i32, ptr %3662, align 8
  %3664 = lshr i32 %3663, 24
  %3665 = and i32 %3664, 31
  %3666 = zext i32 %3665 to i64
  %3667 = icmp eq i64 %3666, 9
  br i1 %3667, label %3668, label %3669

3668:                                             ; preds = %3661
  store i32 24, ptr %28, align 4, !tbaa !11
  br label %3669

3669:                                             ; preds = %3668, %3661
  br label %3670

3670:                                             ; preds = %3669, %3660
  br label %3828

3671:                                             ; preds = %3293
  %3672 = load ptr, ptr %6, align 8, !tbaa !5
  %3673 = load i32, ptr %3672, align 8
  %3674 = lshr i32 %3673, 24
  %3675 = and i32 %3674, 31
  %3676 = add i32 %3675, 1
  %3677 = load i32, ptr %3672, align 8
  %3678 = and i32 %3676, 31
  %3679 = shl i32 %3678, 24
  %3680 = and i32 %3677, -520093697
  %3681 = or i32 %3680, %3679
  store i32 %3681, ptr %3672, align 8
  %3682 = load ptr, ptr %6, align 8, !tbaa !5
  %3683 = load i32, ptr %3682, align 8
  %3684 = lshr i32 %3683, 24
  %3685 = and i32 %3684, 31
  %3686 = zext i32 %3685 to i64
  %3687 = icmp ugt i64 %3686, 5
  br i1 %3687, label %3700, label %3688

3688:                                             ; preds = %3671
  %3689 = load i8, ptr %10, align 1, !tbaa !18
  %3690 = sext i8 %3689 to i32
  %3691 = load ptr, ptr %6, align 8, !tbaa !5
  %3692 = load i32, ptr %3691, align 8
  %3693 = lshr i32 %3692, 24
  %3694 = and i32 %3693, 31
  %3695 = zext i32 %3694 to i64
  %3696 = getelementptr inbounds [6 x i8], ptr @.str.11, i64 0, i64 %3695
  %3697 = load i8, ptr %3696, align 1, !tbaa !18
  %3698 = sext i8 %3697 to i32
  %3699 = icmp ne i32 %3690, %3698
  br i1 %3699, label %3700, label %3701

3700:                                             ; preds = %3688, %3671
  store i32 22, ptr %28, align 4, !tbaa !11
  br label %3710

3701:                                             ; preds = %3688
  %3702 = load ptr, ptr %6, align 8, !tbaa !5
  %3703 = load i32, ptr %3702, align 8
  %3704 = lshr i32 %3703, 24
  %3705 = and i32 %3704, 31
  %3706 = zext i32 %3705 to i64
  %3707 = icmp eq i64 %3706, 4
  br i1 %3707, label %3708, label %3709

3708:                                             ; preds = %3701
  store i32 25, ptr %28, align 4, !tbaa !11
  br label %3709

3709:                                             ; preds = %3708, %3701
  br label %3710

3710:                                             ; preds = %3709, %3700
  br label %3828

3711:                                             ; preds = %3293
  %3712 = load ptr, ptr %6, align 8, !tbaa !5
  %3713 = load i32, ptr %3712, align 8
  %3714 = lshr i32 %3713, 24
  %3715 = and i32 %3714, 31
  %3716 = add i32 %3715, 1
  %3717 = load i32, ptr %3712, align 8
  %3718 = and i32 %3716, 31
  %3719 = shl i32 %3718, 24
  %3720 = and i32 %3717, -520093697
  %3721 = or i32 %3720, %3719
  store i32 %3721, ptr %3712, align 8
  %3722 = load ptr, ptr %6, align 8, !tbaa !5
  %3723 = load i32, ptr %3722, align 8
  %3724 = lshr i32 %3723, 24
  %3725 = and i32 %3724, 31
  %3726 = zext i32 %3725 to i64
  %3727 = icmp ugt i64 %3726, 7
  br i1 %3727, label %3740, label %3728

3728:                                             ; preds = %3711
  %3729 = load i8, ptr %10, align 1, !tbaa !18
  %3730 = sext i8 %3729 to i32
  %3731 = load ptr, ptr %6, align 8, !tbaa !5
  %3732 = load i32, ptr %3731, align 8
  %3733 = lshr i32 %3732, 24
  %3734 = and i32 %3733, 31
  %3735 = zext i32 %3734 to i64
  %3736 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %3735
  %3737 = load i8, ptr %3736, align 1, !tbaa !18
  %3738 = sext i8 %3737 to i32
  %3739 = icmp ne i32 %3730, %3738
  br i1 %3739, label %3740, label %3741

3740:                                             ; preds = %3728, %3711
  store i32 22, ptr %28, align 4, !tbaa !11
  br label %3750

3741:                                             ; preds = %3728
  %3742 = load ptr, ptr %6, align 8, !tbaa !5
  %3743 = load i32, ptr %3742, align 8
  %3744 = lshr i32 %3743, 24
  %3745 = and i32 %3744, 31
  %3746 = zext i32 %3745 to i64
  %3747 = icmp eq i64 %3746, 6
  br i1 %3747, label %3748, label %3749

3748:                                             ; preds = %3741
  store i32 26, ptr %28, align 4, !tbaa !11
  br label %3749

3749:                                             ; preds = %3748, %3741
  br label %3750

3750:                                             ; preds = %3749, %3740
  br label %3828

3751:                                             ; preds = %3293
  %3752 = load i8, ptr %11, align 1, !tbaa !18
  %3753 = sext i8 %3752 to i32
  %3754 = icmp eq i32 %3753, 44
  br i1 %3754, label %3755, label %3760

3755:                                             ; preds = %3751
  store i32 18, ptr %28, align 4, !tbaa !11
  %3756 = load ptr, ptr %6, align 8, !tbaa !5
  %3757 = load i32, ptr %3756, align 8
  %3758 = and i32 %3757, -520093697
  %3759 = or i32 %3758, 0
  store i32 %3759, ptr %3756, align 8
  br label %3760

3760:                                             ; preds = %3755, %3751
  br label %3828

3761:                                             ; preds = %3293
  %3762 = load i8, ptr %11, align 1, !tbaa !18
  %3763 = sext i8 %3762 to i32
  %3764 = icmp ne i32 %3763, 32
  br i1 %3764, label %3765, label %3766

3765:                                             ; preds = %3761
  store i32 17, ptr %28, align 4, !tbaa !11
  br label %3766

3766:                                             ; preds = %3765, %3761
  br label %3828

3767:                                             ; preds = %3293, %3293, %3293
  %3768 = load i8, ptr %11, align 1, !tbaa !18
  %3769 = sext i8 %3768 to i32
  %3770 = icmp eq i32 %3769, 44
  br i1 %3770, label %3771, label %3820

3771:                                             ; preds = %3767
  %3772 = load i32, ptr %28, align 4, !tbaa !11
  %3773 = icmp eq i32 %3772, 24
  br i1 %3773, label %3774, label %3785

3774:                                             ; preds = %3771
  %3775 = load ptr, ptr %6, align 8, !tbaa !5
  %3776 = load i32, ptr %3775, align 8
  %3777 = lshr i32 %3776, 2
  %3778 = and i32 %3777, 255
  %3779 = or i32 %3778, 2
  %3780 = load i32, ptr %3775, align 8
  %3781 = and i32 %3779, 255
  %3782 = shl i32 %3781, 2
  %3783 = and i32 %3780, -1021
  %3784 = or i32 %3783, %3782
  store i32 %3784, ptr %3775, align 8
  br label %3815

3785:                                             ; preds = %3771
  %3786 = load i32, ptr %28, align 4, !tbaa !11
  %3787 = icmp eq i32 %3786, 25
  br i1 %3787, label %3788, label %3799

3788:                                             ; preds = %3785
  %3789 = load ptr, ptr %6, align 8, !tbaa !5
  %3790 = load i32, ptr %3789, align 8
  %3791 = lshr i32 %3790, 2
  %3792 = and i32 %3791, 255
  %3793 = or i32 %3792, 4
  %3794 = load i32, ptr %3789, align 8
  %3795 = and i32 %3793, 255
  %3796 = shl i32 %3795, 2
  %3797 = and i32 %3794, -1021
  %3798 = or i32 %3797, %3796
  store i32 %3798, ptr %3789, align 8
  br label %3814

3799:                                             ; preds = %3785
  %3800 = load i32, ptr %28, align 4, !tbaa !11
  %3801 = icmp eq i32 %3800, 26
  br i1 %3801, label %3802, label %3813

3802:                                             ; preds = %3799
  %3803 = load ptr, ptr %6, align 8, !tbaa !5
  %3804 = load i32, ptr %3803, align 8
  %3805 = lshr i32 %3804, 2
  %3806 = and i32 %3805, 255
  %3807 = or i32 %3806, 8
  %3808 = load i32, ptr %3803, align 8
  %3809 = and i32 %3807, 255
  %3810 = shl i32 %3809, 2
  %3811 = and i32 %3808, -1021
  %3812 = or i32 %3811, %3810
  store i32 %3812, ptr %3803, align 8
  br label %3813

3813:                                             ; preds = %3802, %3799
  br label %3814

3814:                                             ; preds = %3813, %3788
  br label %3815

3815:                                             ; preds = %3814, %3774
  store i32 18, ptr %28, align 4, !tbaa !11
  %3816 = load ptr, ptr %6, align 8, !tbaa !5
  %3817 = load i32, ptr %3816, align 8
  %3818 = and i32 %3817, -520093697
  %3819 = or i32 %3818, 0
  store i32 %3819, ptr %3816, align 8
  br label %3826

3820:                                             ; preds = %3767
  %3821 = load i8, ptr %11, align 1, !tbaa !18
  %3822 = sext i8 %3821 to i32
  %3823 = icmp ne i32 %3822, 32
  br i1 %3823, label %3824, label %3825

3824:                                             ; preds = %3820
  store i32 22, ptr %28, align 4, !tbaa !11
  br label %3825

3825:                                             ; preds = %3824, %3820
  br label %3826

3826:                                             ; preds = %3825, %3815
  br label %3828

3827:                                             ; preds = %3293
  store i32 50, ptr %19, align 4, !tbaa !11
  store i32 0, ptr %28, align 4, !tbaa !11
  br label %3828

3828:                                             ; preds = %3827, %3826, %3766, %3760, %3750, %3710, %3670, %3630, %3587, %3577, %3537, %3487, %3481, %3393, %3386
  br label %3829

3829:                                             ; preds = %3828
  %3830 = load ptr, ptr %13, align 8, !tbaa !5
  %3831 = getelementptr inbounds i8, ptr %3830, i32 1
  store ptr %3831, ptr %13, align 8, !tbaa !5
  br label %3014, !llvm.loop !31

3832:                                             ; preds = %3123, %3014
  %3833 = load i32, ptr %28, align 4, !tbaa !11
  %3834 = load ptr, ptr %6, align 8, !tbaa !5
  %3835 = load i32, ptr %3834, align 8
  %3836 = and i32 %3833, 127
  %3837 = shl i32 %3836, 17
  %3838 = and i32 %3835, -16646145
  %3839 = or i32 %3838, %3837
  store i32 %3839, ptr %3834, align 8
  %3840 = load ptr, ptr %13, align 8, !tbaa !5
  %3841 = load ptr, ptr %8, align 8, !tbaa !5
  %3842 = load i64, ptr %9, align 8, !tbaa !9
  %3843 = getelementptr inbounds i8, ptr %3841, i64 %3842
  %3844 = icmp eq ptr %3840, %3843
  br i1 %3844, label %3845, label %3848

3845:                                             ; preds = %3832
  %3846 = load ptr, ptr %13, align 8, !tbaa !5
  %3847 = getelementptr inbounds i8, ptr %3846, i32 -1
  store ptr %3847, ptr %13, align 8, !tbaa !5
  br label %3848

3848:                                             ; preds = %3845, %3832
  br label %3849

3849:                                             ; preds = %3848
  %3850 = load ptr, ptr %13, align 8, !tbaa !5
  %3851 = load ptr, ptr %27, align 8, !tbaa !5
  %3852 = ptrtoint ptr %3850 to i64
  %3853 = ptrtoint ptr %3851 to i64
  %3854 = sub i64 %3852, %3853
  %3855 = trunc i64 %3854 to i32
  %3856 = load i32, ptr %21, align 4, !tbaa !11
  %3857 = add i32 %3856, %3855
  store i32 %3857, ptr %21, align 4, !tbaa !11
  %3858 = load i32, ptr %21, align 4, !tbaa !11
  %3859 = load i32, ptr @max_header_size, align 4, !tbaa !11
  %3860 = icmp ugt i32 %3858, %3859
  %3861 = xor i1 %3860, true
  %3862 = xor i1 %3861, true
  %3863 = zext i1 %3862 to i32
  %3864 = sext i32 %3863 to i64
  %3865 = call i64 @llvm.expect.i64(i64 %3864, i64 0)
  %3866 = icmp ne i64 %3865, 0
  br i1 %3866, label %3867, label %3879

3867:                                             ; preds = %3849
  br label %3868

3868:                                             ; preds = %3867
  %3869 = load i32, ptr %21, align 4, !tbaa !11
  %3870 = load ptr, ptr %6, align 8, !tbaa !5
  %3871 = getelementptr inbounds %struct.http_parser, ptr %3870, i32 0, i32 1
  store i32 %3869, ptr %3871, align 4, !tbaa !13
  %3872 = load ptr, ptr %6, align 8, !tbaa !5
  %3873 = getelementptr inbounds %struct.http_parser, ptr %3872, i32 0, i32 5
  %3874 = load i32, ptr %3873, align 4
  %3875 = and i32 %3874, -2130706433
  %3876 = or i32 %3875, 201326592
  store i32 %3876, ptr %3873, align 4
  br label %3877

3877:                                             ; preds = %3868
  br label %3878

3878:                                             ; preds = %3877
  store i32 17, ptr %22, align 4
  br label %3882

3879:                                             ; preds = %3849
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  store i32 19, ptr %22, align 4
  br label %3882

3882:                                             ; preds = %3881, %3878, %3499, %3481, %3386, %3292, %3257, %3247, %3158, %3112
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  %3883 = load i32, ptr %22, align 4
  switch i32 %3883, label %6385 [
    i32 18, label %211
    i32 19, label %5855
    i32 17, label %6347
  ]

3884:                                             ; preds = %211
  %3885 = load i8, ptr %11, align 1, !tbaa !18
  %3886 = sext i8 %3885 to i32
  %3887 = icmp ne i32 %3886, 10
  %3888 = xor i1 %3887, true
  %3889 = xor i1 %3888, true
  %3890 = zext i1 %3889 to i32
  %3891 = sext i32 %3890 to i64
  %3892 = call i64 @llvm.expect.i64(i64 %3891, i64 0)
  %3893 = icmp ne i64 %3892, 0
  br i1 %3893, label %3894, label %3906

3894:                                             ; preds = %3884
  br label %3895

3895:                                             ; preds = %3894
  %3896 = load i32, ptr %21, align 4, !tbaa !11
  %3897 = load ptr, ptr %6, align 8, !tbaa !5
  %3898 = getelementptr inbounds %struct.http_parser, ptr %3897, i32 0, i32 1
  store i32 %3896, ptr %3898, align 4, !tbaa !13
  %3899 = load ptr, ptr %6, align 8, !tbaa !5
  %3900 = getelementptr inbounds %struct.http_parser, ptr %3899, i32 0, i32 5
  %3901 = load i32, ptr %3900, align 4
  %3902 = and i32 %3901, -2130706433
  %3903 = or i32 %3902, 385875968
  store i32 %3903, ptr %3900, align 4
  br label %3904

3904:                                             ; preds = %3895
  br label %3905

3905:                                             ; preds = %3904
  br label %6347

3906:                                             ; preds = %3884
  store i32 51, ptr %19, align 4, !tbaa !11
  br label %5855

3907:                                             ; preds = %211
  %3908 = load i8, ptr %11, align 1, !tbaa !18
  %3909 = sext i8 %3908 to i32
  %3910 = icmp eq i32 %3909, 32
  br i1 %3910, label %3915, label %3911

3911:                                             ; preds = %3907
  %3912 = load i8, ptr %11, align 1, !tbaa !18
  %3913 = sext i8 %3912 to i32
  %3914 = icmp eq i32 %3913, 9
  br i1 %3914, label %3915, label %3927

3915:                                             ; preds = %3911, %3907
  %3916 = load ptr, ptr %6, align 8, !tbaa !5
  %3917 = load i32, ptr %3916, align 8
  %3918 = lshr i32 %3917, 17
  %3919 = and i32 %3918, 127
  %3920 = icmp eq i32 %3919, 11
  br i1 %3920, label %3921, label %3926

3921:                                             ; preds = %3915
  %3922 = load ptr, ptr %6, align 8, !tbaa !5
  %3923 = load i32, ptr %3922, align 8
  %3924 = and i32 %3923, -16646145
  %3925 = or i32 %3924, 1572864
  store i32 %3925, ptr %3922, align 8
  br label %3926

3926:                                             ; preds = %3921, %3915
  store i32 49, ptr %19, align 4, !tbaa !11
  br label %211

3927:                                             ; preds = %3911
  %3928 = load ptr, ptr %6, align 8, !tbaa !5
  %3929 = load i32, ptr %3928, align 8
  %3930 = lshr i32 %3929, 17
  %3931 = and i32 %3930, 127
  switch i32 %3931, label %3976 [
    i32 24, label %3932
    i32 25, label %3943
    i32 23, label %3954
    i32 26, label %3965
  ]

3932:                                             ; preds = %3927
  %3933 = load ptr, ptr %6, align 8, !tbaa !5
  %3934 = load i32, ptr %3933, align 8
  %3935 = lshr i32 %3934, 2
  %3936 = and i32 %3935, 255
  %3937 = or i32 %3936, 2
  %3938 = load i32, ptr %3933, align 8
  %3939 = and i32 %3937, 255
  %3940 = shl i32 %3939, 2
  %3941 = and i32 %3938, -1021
  %3942 = or i32 %3941, %3940
  store i32 %3942, ptr %3933, align 8
  br label %3977

3943:                                             ; preds = %3927
  %3944 = load ptr, ptr %6, align 8, !tbaa !5
  %3945 = load i32, ptr %3944, align 8
  %3946 = lshr i32 %3945, 2
  %3947 = and i32 %3946, 255
  %3948 = or i32 %3947, 4
  %3949 = load i32, ptr %3944, align 8
  %3950 = and i32 %3948, 255
  %3951 = shl i32 %3950, 2
  %3952 = and i32 %3949, -1021
  %3953 = or i32 %3952, %3951
  store i32 %3953, ptr %3944, align 8
  br label %3977

3954:                                             ; preds = %3927
  %3955 = load ptr, ptr %6, align 8, !tbaa !5
  %3956 = load i32, ptr %3955, align 8
  %3957 = lshr i32 %3956, 2
  %3958 = and i32 %3957, 255
  %3959 = or i32 %3958, 1
  %3960 = load i32, ptr %3955, align 8
  %3961 = and i32 %3959, 255
  %3962 = shl i32 %3961, 2
  %3963 = and i32 %3960, -1021
  %3964 = or i32 %3963, %3962
  store i32 %3964, ptr %3955, align 8
  br label %3977

3965:                                             ; preds = %3927
  %3966 = load ptr, ptr %6, align 8, !tbaa !5
  %3967 = load i32, ptr %3966, align 8
  %3968 = lshr i32 %3967, 2
  %3969 = and i32 %3968, 255
  %3970 = or i32 %3969, 8
  %3971 = load i32, ptr %3966, align 8
  %3972 = and i32 %3970, 255
  %3973 = shl i32 %3972, 2
  %3974 = and i32 %3971, -1021
  %3975 = or i32 %3974, %3973
  store i32 %3975, ptr %3966, align 8
  br label %3977

3976:                                             ; preds = %3927
  br label %3977

3977:                                             ; preds = %3976, %3965, %3954, %3943, %3932
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %211

3978:                                             ; preds = %211
  br label %3979

3979:                                             ; preds = %3978
  %3980 = load i8, ptr %11, align 1, !tbaa !18
  %3981 = sext i8 %3980 to i32
  %3982 = icmp ne i32 %3981, 10
  br i1 %3982, label %3983, label %3995

3983:                                             ; preds = %3979
  br label %3984

3984:                                             ; preds = %3983
  %3985 = load i32, ptr %21, align 4, !tbaa !11
  %3986 = load ptr, ptr %6, align 8, !tbaa !5
  %3987 = getelementptr inbounds %struct.http_parser, ptr %3986, i32 0, i32 1
  store i32 %3985, ptr %3987, align 4, !tbaa !13
  %3988 = load ptr, ptr %6, align 8, !tbaa !5
  %3989 = getelementptr inbounds %struct.http_parser, ptr %3988, i32 0, i32 5
  %3990 = load i32, ptr %3989, align 4
  %3991 = and i32 %3990, -2130706433
  %3992 = or i32 %3991, 503316480
  store i32 %3992, ptr %3989, align 4
  br label %3993

3993:                                             ; preds = %3984
  br label %3994

3994:                                             ; preds = %3993
  br label %6347

3995:                                             ; preds = %3979
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996
  store i32 48, ptr %19, align 4, !tbaa !11
  br label %5855

3998:                                             ; preds = %211
  %3999 = load i8, ptr %11, align 1, !tbaa !18
  %4000 = sext i8 %3999 to i32
  %4001 = icmp eq i32 %4000, 32
  br i1 %4001, label %4006, label %4002

4002:                                             ; preds = %3998
  %4003 = load i8, ptr %11, align 1, !tbaa !18
  %4004 = sext i8 %4003 to i32
  %4005 = icmp eq i32 %4004, 9
  br i1 %4005, label %4006, label %4007

4006:                                             ; preds = %4002, %3998
  store i32 46, ptr %19, align 4, !tbaa !11
  br label %5855

4007:                                             ; preds = %4002
  %4008 = load ptr, ptr %6, align 8, !tbaa !5
  %4009 = load i32, ptr %4008, align 8
  %4010 = lshr i32 %4009, 17
  %4011 = and i32 %4010, 127
  switch i32 %4011, label %4068 [
    i32 24, label %4012
    i32 25, label %4023
    i32 26, label %4034
    i32 23, label %4045
    i32 10, label %4056
  ]

4012:                                             ; preds = %4007
  %4013 = load ptr, ptr %6, align 8, !tbaa !5
  %4014 = load i32, ptr %4013, align 8
  %4015 = lshr i32 %4014, 2
  %4016 = and i32 %4015, 255
  %4017 = or i32 %4016, 2
  %4018 = load i32, ptr %4013, align 8
  %4019 = and i32 %4017, 255
  %4020 = shl i32 %4019, 2
  %4021 = and i32 %4018, -1021
  %4022 = or i32 %4021, %4020
  store i32 %4022, ptr %4013, align 8
  br label %4069

4023:                                             ; preds = %4007
  %4024 = load ptr, ptr %6, align 8, !tbaa !5
  %4025 = load i32, ptr %4024, align 8
  %4026 = lshr i32 %4025, 2
  %4027 = and i32 %4026, 255
  %4028 = or i32 %4027, 4
  %4029 = load i32, ptr %4024, align 8
  %4030 = and i32 %4028, 255
  %4031 = shl i32 %4030, 2
  %4032 = and i32 %4029, -1021
  %4033 = or i32 %4032, %4031
  store i32 %4033, ptr %4024, align 8
  br label %4069

4034:                                             ; preds = %4007
  %4035 = load ptr, ptr %6, align 8, !tbaa !5
  %4036 = load i32, ptr %4035, align 8
  %4037 = lshr i32 %4036, 2
  %4038 = and i32 %4037, 255
  %4039 = or i32 %4038, 8
  %4040 = load i32, ptr %4035, align 8
  %4041 = and i32 %4039, 255
  %4042 = shl i32 %4041, 2
  %4043 = and i32 %4040, -1021
  %4044 = or i32 %4043, %4042
  store i32 %4044, ptr %4035, align 8
  br label %4069

4045:                                             ; preds = %4007
  %4046 = load ptr, ptr %6, align 8, !tbaa !5
  %4047 = load i32, ptr %4046, align 8
  %4048 = lshr i32 %4047, 2
  %4049 = and i32 %4048, 255
  %4050 = or i32 %4049, 1
  %4051 = load i32, ptr %4046, align 8
  %4052 = and i32 %4050, 255
  %4053 = shl i32 %4052, 2
  %4054 = and i32 %4051, -1021
  %4055 = or i32 %4054, %4053
  store i32 %4055, ptr %4046, align 8
  br label %4069

4056:                                             ; preds = %4007
  br label %4057

4057:                                             ; preds = %4056
  %4058 = load i32, ptr %21, align 4, !tbaa !11
  %4059 = load ptr, ptr %6, align 8, !tbaa !5
  %4060 = getelementptr inbounds %struct.http_parser, ptr %4059, i32 0, i32 1
  store i32 %4058, ptr %4060, align 4, !tbaa !13
  %4061 = load ptr, ptr %6, align 8, !tbaa !5
  %4062 = getelementptr inbounds %struct.http_parser, ptr %4061, i32 0, i32 5
  %4063 = load i32, ptr %4062, align 4
  %4064 = and i32 %4063, -2130706433
  %4065 = or i32 %4064, 419430400
  store i32 %4065, ptr %4062, align 4
  br label %4066

4066:                                             ; preds = %4057
  br label %4067

4067:                                             ; preds = %4066
  br label %6347

4068:                                             ; preds = %4007
  br label %4069

4069:                                             ; preds = %4068, %4045, %4034, %4023, %4012
  br label %4070

4070:                                             ; preds = %4069
  %4071 = load ptr, ptr %15, align 8, !tbaa !5
  %4072 = icmp ne ptr %4071, null
  br i1 %4072, label %4075, label %4073

4073:                                             ; preds = %4070
  %4074 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %4074, ptr %15, align 8, !tbaa !5
  br label %4075

4075:                                             ; preds = %4073, %4070
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

4077:                                             ; preds = %4076
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %4078

4078:                                             ; preds = %4077
  %4079 = load ptr, ptr %6, align 8, !tbaa !5
  %4080 = getelementptr inbounds %struct.http_parser, ptr %4079, i32 0, i32 5
  %4081 = load i32, ptr %4080, align 4
  %4082 = lshr i32 %4081, 24
  %4083 = and i32 %4082, 127
  %4084 = icmp eq i32 %4083, 0
  br i1 %4084, label %4085, label %4086

4085:                                             ; preds = %4078
  br label %4087

4086:                                             ; preds = %4078
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1788, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

4087:                                             ; preds = %4085
  %4088 = load ptr, ptr %15, align 8, !tbaa !5
  %4089 = icmp ne ptr %4088, null
  br i1 %4089, label %4090, label %4164

4090:                                             ; preds = %4087
  %4091 = load ptr, ptr %7, align 8, !tbaa !5
  %4092 = getelementptr inbounds %struct.http_parser_settings, ptr %4091, i32 0, i32 4
  %4093 = load ptr, ptr %4092, align 8, !tbaa !29
  %4094 = icmp ne ptr %4093, null
  %4095 = xor i1 %4094, true
  %4096 = xor i1 %4095, true
  %4097 = zext i1 %4096 to i32
  %4098 = sext i32 %4097 to i64
  %4099 = call i64 @llvm.expect.i64(i64 %4098, i64 1)
  %4100 = icmp ne i64 %4099, 0
  br i1 %4100, label %4101, label %4163

4101:                                             ; preds = %4090
  %4102 = load i32, ptr %19, align 4, !tbaa !11
  %4103 = load ptr, ptr %6, align 8, !tbaa !5
  %4104 = load i32, ptr %4103, align 8
  %4105 = and i32 %4102, 127
  %4106 = shl i32 %4105, 10
  %4107 = and i32 %4104, -130049
  %4108 = or i32 %4107, %4106
  store i32 %4108, ptr %4103, align 8
  %4109 = load ptr, ptr %7, align 8, !tbaa !5
  %4110 = getelementptr inbounds %struct.http_parser_settings, ptr %4109, i32 0, i32 4
  %4111 = load ptr, ptr %4110, align 8, !tbaa !29
  %4112 = load ptr, ptr %6, align 8, !tbaa !5
  %4113 = load ptr, ptr %15, align 8, !tbaa !5
  %4114 = load ptr, ptr %13, align 8, !tbaa !5
  %4115 = load ptr, ptr %15, align 8, !tbaa !5
  %4116 = ptrtoint ptr %4114 to i64
  %4117 = ptrtoint ptr %4115 to i64
  %4118 = sub i64 %4116, %4117
  %4119 = call i32 %4111(ptr noundef %4112, ptr noundef %4113, i64 noundef %4118)
  %4120 = icmp ne i32 0, %4119
  %4121 = xor i1 %4120, true
  %4122 = xor i1 %4121, true
  %4123 = zext i1 %4122 to i32
  %4124 = sext i32 %4123 to i64
  %4125 = call i64 @llvm.expect.i64(i64 %4124, i64 0)
  %4126 = icmp ne i64 %4125, 0
  br i1 %4126, label %4127, label %4139

4127:                                             ; preds = %4101
  br label %4128

4128:                                             ; preds = %4127
  %4129 = load i32, ptr %21, align 4, !tbaa !11
  %4130 = load ptr, ptr %6, align 8, !tbaa !5
  %4131 = getelementptr inbounds %struct.http_parser, ptr %4130, i32 0, i32 1
  store i32 %4129, ptr %4131, align 4, !tbaa !13
  %4132 = load ptr, ptr %6, align 8, !tbaa !5
  %4133 = getelementptr inbounds %struct.http_parser, ptr %4132, i32 0, i32 5
  %4134 = load i32, ptr %4133, align 4
  %4135 = and i32 %4134, -2130706433
  %4136 = or i32 %4135, 67108864
  store i32 %4136, ptr %4133, align 4
  br label %4137

4137:                                             ; preds = %4128
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138, %4101
  %4140 = load ptr, ptr %6, align 8, !tbaa !5
  %4141 = load i32, ptr %4140, align 8
  %4142 = lshr i32 %4141, 10
  %4143 = and i32 %4142, 127
  store i32 %4143, ptr %19, align 4, !tbaa !11
  %4144 = load ptr, ptr %6, align 8, !tbaa !5
  %4145 = getelementptr inbounds %struct.http_parser, ptr %4144, i32 0, i32 5
  %4146 = load i32, ptr %4145, align 4
  %4147 = lshr i32 %4146, 24
  %4148 = and i32 %4147, 127
  %4149 = icmp ne i32 %4148, 0
  %4150 = xor i1 %4149, true
  %4151 = xor i1 %4150, true
  %4152 = zext i1 %4151 to i32
  %4153 = sext i32 %4152 to i64
  %4154 = call i64 @llvm.expect.i64(i64 %4153, i64 0)
  %4155 = icmp ne i64 %4154, 0
  br i1 %4155, label %4156, label %4162

4156:                                             ; preds = %4139
  %4157 = load ptr, ptr %13, align 8, !tbaa !5
  %4158 = load ptr, ptr %8, align 8, !tbaa !5
  %4159 = ptrtoint ptr %4157 to i64
  %4160 = ptrtoint ptr %4158 to i64
  %4161 = sub i64 %4159, %4160
  store i64 %4161, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

4162:                                             ; preds = %4139
  br label %4163

4163:                                             ; preds = %4162, %4090
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %4164

4164:                                             ; preds = %4163, %4087
  br label %4165

4165:                                             ; preds = %4164
  br label %4166

4166:                                             ; preds = %4165
  br label %211

4167:                                             ; preds = %211
  br label %4168

4168:                                             ; preds = %4167
  %4169 = load i8, ptr %11, align 1, !tbaa !18
  %4170 = sext i8 %4169 to i32
  %4171 = icmp ne i32 %4170, 10
  br i1 %4171, label %4172, label %4184

4172:                                             ; preds = %4168
  br label %4173

4173:                                             ; preds = %4172
  %4174 = load i32, ptr %21, align 4, !tbaa !11
  %4175 = load ptr, ptr %6, align 8, !tbaa !5
  %4176 = getelementptr inbounds %struct.http_parser, ptr %4175, i32 0, i32 1
  store i32 %4174, ptr %4176, align 4, !tbaa !13
  %4177 = load ptr, ptr %6, align 8, !tbaa !5
  %4178 = getelementptr inbounds %struct.http_parser, ptr %4177, i32 0, i32 5
  %4179 = load i32, ptr %4178, align 4
  %4180 = and i32 %4179, -2130706433
  %4181 = or i32 %4180, 503316480
  store i32 %4181, ptr %4178, align 4
  br label %4182

4182:                                             ; preds = %4173
  br label %4183

4183:                                             ; preds = %4182
  br label %6347

4184:                                             ; preds = %4168
  br label %4185

4185:                                             ; preds = %4184
  br label %4186

4186:                                             ; preds = %4185
  %4187 = load ptr, ptr %6, align 8, !tbaa !5
  %4188 = load i32, ptr %4187, align 8
  %4189 = lshr i32 %4188, 2
  %4190 = and i32 %4189, 255
  %4191 = and i32 %4190, 16
  %4192 = icmp ne i32 %4191, 0
  br i1 %4192, label %4193, label %4273

4193:                                             ; preds = %4186
  store i32 64, ptr %19, align 4, !tbaa !11
  br label %4194

4194:                                             ; preds = %4193
  %4195 = load ptr, ptr %6, align 8, !tbaa !5
  %4196 = getelementptr inbounds %struct.http_parser, ptr %4195, i32 0, i32 5
  %4197 = load i32, ptr %4196, align 4
  %4198 = lshr i32 %4197, 24
  %4199 = and i32 %4198, 127
  %4200 = icmp eq i32 %4199, 0
  br i1 %4200, label %4201, label %4202

4201:                                             ; preds = %4194
  br label %4203

4202:                                             ; preds = %4194
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1800, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

4203:                                             ; preds = %4201
  %4204 = load ptr, ptr %7, align 8, !tbaa !5
  %4205 = getelementptr inbounds %struct.http_parser_settings, ptr %4204, i32 0, i32 9
  %4206 = load ptr, ptr %4205, align 8, !tbaa !32
  %4207 = icmp ne ptr %4206, null
  %4208 = xor i1 %4207, true
  %4209 = xor i1 %4208, true
  %4210 = zext i1 %4209 to i32
  %4211 = sext i32 %4210 to i64
  %4212 = call i64 @llvm.expect.i64(i64 %4211, i64 1)
  %4213 = icmp ne i64 %4212, 0
  br i1 %4213, label %4214, label %4270

4214:                                             ; preds = %4203
  %4215 = load i32, ptr %19, align 4, !tbaa !11
  %4216 = load ptr, ptr %6, align 8, !tbaa !5
  %4217 = load i32, ptr %4216, align 8
  %4218 = and i32 %4215, 127
  %4219 = shl i32 %4218, 10
  %4220 = and i32 %4217, -130049
  %4221 = or i32 %4220, %4219
  store i32 %4221, ptr %4216, align 8
  %4222 = load ptr, ptr %7, align 8, !tbaa !5
  %4223 = getelementptr inbounds %struct.http_parser_settings, ptr %4222, i32 0, i32 9
  %4224 = load ptr, ptr %4223, align 8, !tbaa !32
  %4225 = load ptr, ptr %6, align 8, !tbaa !5
  %4226 = call i32 %4224(ptr noundef %4225)
  %4227 = icmp ne i32 0, %4226
  %4228 = xor i1 %4227, true
  %4229 = xor i1 %4228, true
  %4230 = zext i1 %4229 to i32
  %4231 = sext i32 %4230 to i64
  %4232 = call i64 @llvm.expect.i64(i64 %4231, i64 0)
  %4233 = icmp ne i64 %4232, 0
  br i1 %4233, label %4234, label %4246

4234:                                             ; preds = %4214
  br label %4235

4235:                                             ; preds = %4234
  %4236 = load i32, ptr %21, align 4, !tbaa !11
  %4237 = load ptr, ptr %6, align 8, !tbaa !5
  %4238 = getelementptr inbounds %struct.http_parser, ptr %4237, i32 0, i32 1
  store i32 %4236, ptr %4238, align 4, !tbaa !13
  %4239 = load ptr, ptr %6, align 8, !tbaa !5
  %4240 = getelementptr inbounds %struct.http_parser, ptr %4239, i32 0, i32 5
  %4241 = load i32, ptr %4240, align 4
  %4242 = and i32 %4241, -2130706433
  %4243 = or i32 %4242, 167772160
  store i32 %4243, ptr %4240, align 4
  br label %4244

4244:                                             ; preds = %4235
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

4246:                                             ; preds = %4245, %4214
  %4247 = load ptr, ptr %6, align 8, !tbaa !5
  %4248 = load i32, ptr %4247, align 8
  %4249 = lshr i32 %4248, 10
  %4250 = and i32 %4249, 127
  store i32 %4250, ptr %19, align 4, !tbaa !11
  %4251 = load ptr, ptr %6, align 8, !tbaa !5
  %4252 = getelementptr inbounds %struct.http_parser, ptr %4251, i32 0, i32 5
  %4253 = load i32, ptr %4252, align 4
  %4254 = lshr i32 %4253, 24
  %4255 = and i32 %4254, 127
  %4256 = icmp ne i32 %4255, 0
  %4257 = xor i1 %4256, true
  %4258 = xor i1 %4257, true
  %4259 = zext i1 %4258 to i32
  %4260 = sext i32 %4259 to i64
  %4261 = call i64 @llvm.expect.i64(i64 %4260, i64 0)
  %4262 = icmp ne i64 %4261, 0
  br i1 %4262, label %4263, label %4269

4263:                                             ; preds = %4246
  %4264 = load ptr, ptr %13, align 8, !tbaa !5
  %4265 = load ptr, ptr %8, align 8, !tbaa !5
  %4266 = ptrtoint ptr %4264 to i64
  %4267 = ptrtoint ptr %4265 to i64
  %4268 = sub i64 %4266, %4267
  store i64 %4268, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

4269:                                             ; preds = %4246
  br label %4270

4270:                                             ; preds = %4269, %4203
  br label %4271

4271:                                             ; preds = %4270
  br label %4272

4272:                                             ; preds = %4271
  br label %211

4273:                                             ; preds = %4186
  %4274 = load ptr, ptr %6, align 8, !tbaa !5
  %4275 = load i32, ptr %4274, align 8
  %4276 = lshr i32 %4275, 29
  %4277 = and i32 %4276, 3
  %4278 = and i32 %4277, 1
  %4279 = icmp ne i32 %4278, 0
  br i1 %4279, label %4280, label %4310

4280:                                             ; preds = %4273
  %4281 = load ptr, ptr %6, align 8, !tbaa !5
  %4282 = load i32, ptr %4281, align 8
  %4283 = lshr i32 %4282, 2
  %4284 = and i32 %4283, 255
  %4285 = and i32 %4284, 128
  %4286 = icmp ne i32 %4285, 0
  br i1 %4286, label %4287, label %4310

4287:                                             ; preds = %4280
  %4288 = load i32, ptr %20, align 4, !tbaa !11
  %4289 = icmp ne i32 %4288, 0
  br i1 %4289, label %4290, label %4297

4290:                                             ; preds = %4287
  %4291 = load ptr, ptr %6, align 8, !tbaa !5
  %4292 = load i32, ptr %4291, align 8
  %4293 = lshr i32 %4292, 2
  %4294 = and i32 %4293, 255
  %4295 = and i32 %4294, 1
  %4296 = icmp ne i32 %4295, 0
  br i1 %4296, label %4297, label %4309

4297:                                             ; preds = %4290, %4287
  br label %4298

4298:                                             ; preds = %4297
  %4299 = load i32, ptr %21, align 4, !tbaa !11
  %4300 = load ptr, ptr %6, align 8, !tbaa !5
  %4301 = getelementptr inbounds %struct.http_parser, ptr %4300, i32 0, i32 1
  store i32 %4299, ptr %4301, align 4, !tbaa !13
  %4302 = load ptr, ptr %6, align 8, !tbaa !5
  %4303 = getelementptr inbounds %struct.http_parser, ptr %4302, i32 0, i32 5
  %4304 = load i32, ptr %4303, align 4
  %4305 = and i32 %4304, -2130706433
  %4306 = or i32 %4305, 436207616
  store i32 %4306, ptr %4303, align 4
  br label %4307

4307:                                             ; preds = %4298
  br label %4308

4308:                                             ; preds = %4307
  br label %6347

4309:                                             ; preds = %4290
  br label %4310

4310:                                             ; preds = %4309, %4280, %4273
  store i32 58, ptr %19, align 4, !tbaa !11
  %4311 = load ptr, ptr %6, align 8, !tbaa !5
  %4312 = load i32, ptr %4311, align 8
  %4313 = lshr i32 %4312, 2
  %4314 = and i32 %4313, 255
  %4315 = and i32 %4314, 32
  %4316 = icmp ne i32 %4315, 0
  br i1 %4316, label %4317, label %4345

4317:                                             ; preds = %4310
  %4318 = load ptr, ptr %6, align 8, !tbaa !5
  %4319 = load i32, ptr %4318, align 8
  %4320 = lshr i32 %4319, 2
  %4321 = and i32 %4320, 255
  %4322 = and i32 %4321, 8
  %4323 = icmp ne i32 %4322, 0
  br i1 %4323, label %4324, label %4345

4324:                                             ; preds = %4317
  %4325 = load ptr, ptr %6, align 8, !tbaa !5
  %4326 = load i32, ptr %4325, align 8
  %4327 = and i32 %4326, 3
  %4328 = icmp eq i32 %4327, 0
  br i1 %4328, label %4335, label %4329

4329:                                             ; preds = %4324
  %4330 = load ptr, ptr %6, align 8, !tbaa !5
  %4331 = getelementptr inbounds %struct.http_parser, ptr %4330, i32 0, i32 5
  %4332 = load i32, ptr %4331, align 4
  %4333 = and i32 %4332, 65535
  %4334 = icmp eq i32 %4333, 101
  br label %4335

4335:                                             ; preds = %4329, %4324
  %4336 = phi i1 [ true, %4324 ], [ %4334, %4329 ]
  %4337 = zext i1 %4336 to i32
  %4338 = load ptr, ptr %6, align 8, !tbaa !5
  %4339 = getelementptr inbounds %struct.http_parser, ptr %4338, i32 0, i32 5
  %4340 = load i32, ptr %4339, align 4
  %4341 = and i32 %4337, 1
  %4342 = shl i32 %4341, 31
  %4343 = and i32 %4340, 2147483647
  %4344 = or i32 %4343, %4342
  store i32 %4344, ptr %4339, align 4
  br label %4360

4345:                                             ; preds = %4317, %4310
  %4346 = load ptr, ptr %6, align 8, !tbaa !5
  %4347 = getelementptr inbounds %struct.http_parser, ptr %4346, i32 0, i32 5
  %4348 = load i32, ptr %4347, align 4
  %4349 = lshr i32 %4348, 16
  %4350 = and i32 %4349, 255
  %4351 = icmp eq i32 %4350, 5
  %4352 = zext i1 %4351 to i32
  %4353 = load ptr, ptr %6, align 8, !tbaa !5
  %4354 = getelementptr inbounds %struct.http_parser, ptr %4353, i32 0, i32 5
  %4355 = load i32, ptr %4354, align 4
  %4356 = and i32 %4352, 1
  %4357 = shl i32 %4356, 31
  %4358 = and i32 %4355, 2147483647
  %4359 = or i32 %4358, %4357
  store i32 %4359, ptr %4354, align 4
  br label %4360

4360:                                             ; preds = %4345, %4335
  %4361 = load ptr, ptr %7, align 8, !tbaa !5
  %4362 = getelementptr inbounds %struct.http_parser_settings, ptr %4361, i32 0, i32 5
  %4363 = load ptr, ptr %4362, align 8, !tbaa !33
  %4364 = icmp ne ptr %4363, null
  br i1 %4364, label %4365, label %4419

4365:                                             ; preds = %4360
  %4366 = load ptr, ptr %7, align 8, !tbaa !5
  %4367 = getelementptr inbounds %struct.http_parser_settings, ptr %4366, i32 0, i32 5
  %4368 = load ptr, ptr %4367, align 8, !tbaa !33
  %4369 = load ptr, ptr %6, align 8, !tbaa !5
  %4370 = call i32 %4368(ptr noundef %4369)
  switch i32 %4370, label %4388 [
    i32 0, label %4418
    i32 2, label %4371
    i32 1, label %4377
  ]

4371:                                             ; preds = %4365
  %4372 = load ptr, ptr %6, align 8, !tbaa !5
  %4373 = getelementptr inbounds %struct.http_parser, ptr %4372, i32 0, i32 5
  %4374 = load i32, ptr %4373, align 4
  %4375 = and i32 %4374, 2147483647
  %4376 = or i32 %4375, -2147483648
  store i32 %4376, ptr %4373, align 4
  br label %4377

4377:                                             ; preds = %4371, %4365
  %4378 = load ptr, ptr %6, align 8, !tbaa !5
  %4379 = load i32, ptr %4378, align 8
  %4380 = lshr i32 %4379, 2
  %4381 = and i32 %4380, 255
  %4382 = or i32 %4381, 64
  %4383 = load i32, ptr %4378, align 8
  %4384 = and i32 %4382, 255
  %4385 = shl i32 %4384, 2
  %4386 = and i32 %4383, -1021
  %4387 = or i32 %4386, %4385
  store i32 %4387, ptr %4378, align 8
  br label %4418

4388:                                             ; preds = %4365
  br label %4389

4389:                                             ; preds = %4388
  %4390 = load i32, ptr %21, align 4, !tbaa !11
  %4391 = load ptr, ptr %6, align 8, !tbaa !5
  %4392 = getelementptr inbounds %struct.http_parser, ptr %4391, i32 0, i32 1
  store i32 %4390, ptr %4392, align 4, !tbaa !13
  %4393 = load ptr, ptr %6, align 8, !tbaa !5
  %4394 = getelementptr inbounds %struct.http_parser, ptr %4393, i32 0, i32 5
  %4395 = load i32, ptr %4394, align 4
  %4396 = and i32 %4395, -2130706433
  %4397 = or i32 %4396, 83886080
  store i32 %4397, ptr %4394, align 4
  br label %4398

4398:                                             ; preds = %4389
  br label %4399

4399:                                             ; preds = %4398
  br label %4400

4400:                                             ; preds = %4399
  %4401 = load i32, ptr %21, align 4, !tbaa !11
  %4402 = load ptr, ptr %6, align 8, !tbaa !5
  %4403 = getelementptr inbounds %struct.http_parser, ptr %4402, i32 0, i32 1
  store i32 %4401, ptr %4403, align 4, !tbaa !13
  %4404 = load i32, ptr %19, align 4, !tbaa !11
  %4405 = load ptr, ptr %6, align 8, !tbaa !5
  %4406 = load i32, ptr %4405, align 8
  %4407 = and i32 %4404, 127
  %4408 = shl i32 %4407, 10
  %4409 = and i32 %4406, -130049
  %4410 = or i32 %4409, %4408
  store i32 %4410, ptr %4405, align 8
  %4411 = load ptr, ptr %13, align 8, !tbaa !5
  %4412 = load ptr, ptr %8, align 8, !tbaa !5
  %4413 = ptrtoint ptr %4411 to i64
  %4414 = ptrtoint ptr %4412 to i64
  %4415 = sub i64 %4413, %4414
  store i64 %4415, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

4416:                                             ; No predecessors!
  br label %4417

4417:                                             ; preds = %4416
  br label %4418

4418:                                             ; preds = %4417, %4377, %4365
  br label %4419

4419:                                             ; preds = %4418, %4360
  %4420 = load ptr, ptr %6, align 8, !tbaa !5
  %4421 = getelementptr inbounds %struct.http_parser, ptr %4420, i32 0, i32 5
  %4422 = load i32, ptr %4421, align 4
  %4423 = lshr i32 %4422, 24
  %4424 = and i32 %4423, 127
  %4425 = icmp ne i32 %4424, 0
  br i1 %4425, label %4426, label %4445

4426:                                             ; preds = %4419
  br label %4427

4427:                                             ; preds = %4426
  %4428 = load i32, ptr %21, align 4, !tbaa !11
  %4429 = load ptr, ptr %6, align 8, !tbaa !5
  %4430 = getelementptr inbounds %struct.http_parser, ptr %4429, i32 0, i32 1
  store i32 %4428, ptr %4430, align 4, !tbaa !13
  %4431 = load i32, ptr %19, align 4, !tbaa !11
  %4432 = load ptr, ptr %6, align 8, !tbaa !5
  %4433 = load i32, ptr %4432, align 8
  %4434 = and i32 %4431, 127
  %4435 = shl i32 %4434, 10
  %4436 = and i32 %4433, -130049
  %4437 = or i32 %4436, %4435
  store i32 %4437, ptr %4432, align 8
  %4438 = load ptr, ptr %13, align 8, !tbaa !5
  %4439 = load ptr, ptr %8, align 8, !tbaa !5
  %4440 = ptrtoint ptr %4438 to i64
  %4441 = ptrtoint ptr %4439 to i64
  %4442 = sub i64 %4440, %4441
  store i64 %4442, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

4443:                                             ; No predecessors!
  br label %4444

4444:                                             ; preds = %4443
  br label %4445

4445:                                             ; preds = %4444, %4419
  br label %211

4446:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  br label %4447

4447:                                             ; preds = %4446
  %4448 = load i8, ptr %11, align 1, !tbaa !18
  %4449 = sext i8 %4448 to i32
  %4450 = icmp ne i32 %4449, 10
  br i1 %4450, label %4451, label %4463

4451:                                             ; preds = %4447
  br label %4452

4452:                                             ; preds = %4451
  %4453 = load i32, ptr %21, align 4, !tbaa !11
  %4454 = load ptr, ptr %6, align 8, !tbaa !5
  %4455 = getelementptr inbounds %struct.http_parser, ptr %4454, i32 0, i32 1
  store i32 %4453, ptr %4455, align 4, !tbaa !13
  %4456 = load ptr, ptr %6, align 8, !tbaa !5
  %4457 = getelementptr inbounds %struct.http_parser, ptr %4456, i32 0, i32 5
  %4458 = load i32, ptr %4457, align 4
  %4459 = and i32 %4458, -2130706433
  %4460 = or i32 %4459, 503316480
  store i32 %4460, ptr %4457, align 4
  br label %4461

4461:                                             ; preds = %4452
  br label %4462

4462:                                             ; preds = %4461
  store i32 17, ptr %22, align 4
  br label %4990

4463:                                             ; preds = %4447
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

4465:                                             ; preds = %4464
  %4466 = load ptr, ptr %6, align 8, !tbaa !5
  %4467 = getelementptr inbounds %struct.http_parser, ptr %4466, i32 0, i32 1
  store i32 0, ptr %4467, align 4, !tbaa !13
  store i32 0, ptr %21, align 4, !tbaa !11
  %4468 = load ptr, ptr %6, align 8, !tbaa !5
  %4469 = load i32, ptr %4468, align 8
  %4470 = lshr i32 %4469, 2
  %4471 = and i32 %4470, 255
  %4472 = and i32 %4471, 1
  %4473 = icmp ne i32 %4472, 0
  br i1 %4473, label %4486, label %4474

4474:                                             ; preds = %4465
  %4475 = load ptr, ptr %6, align 8, !tbaa !5
  %4476 = getelementptr inbounds %struct.http_parser, ptr %4475, i32 0, i32 2
  %4477 = load i64, ptr %4476, align 8, !tbaa !19
  %4478 = icmp ugt i64 %4477, 0
  br i1 %4478, label %4479, label %4484

4479:                                             ; preds = %4474
  %4480 = load ptr, ptr %6, align 8, !tbaa !5
  %4481 = getelementptr inbounds %struct.http_parser, ptr %4480, i32 0, i32 2
  %4482 = load i64, ptr %4481, align 8, !tbaa !19
  %4483 = icmp ne i64 %4482, -1
  br label %4484

4484:                                             ; preds = %4479, %4474
  %4485 = phi i1 [ false, %4474 ], [ %4483, %4479 ]
  br label %4486

4486:                                             ; preds = %4484, %4465
  %4487 = phi i1 [ true, %4465 ], [ %4485, %4484 ]
  %4488 = zext i1 %4487 to i32
  store i32 %4488, ptr %32, align 4, !tbaa !11
  %4489 = load ptr, ptr %6, align 8, !tbaa !5
  %4490 = getelementptr inbounds %struct.http_parser, ptr %4489, i32 0, i32 5
  %4491 = load i32, ptr %4490, align 4
  %4492 = lshr i32 %4491, 31
  %4493 = icmp ne i32 %4492, 0
  br i1 %4493, label %4494, label %4624

4494:                                             ; preds = %4486
  %4495 = load ptr, ptr %6, align 8, !tbaa !5
  %4496 = getelementptr inbounds %struct.http_parser, ptr %4495, i32 0, i32 5
  %4497 = load i32, ptr %4496, align 4
  %4498 = lshr i32 %4497, 16
  %4499 = and i32 %4498, 255
  %4500 = icmp eq i32 %4499, 5
  br i1 %4500, label %4511, label %4501

4501:                                             ; preds = %4494
  %4502 = load ptr, ptr %6, align 8, !tbaa !5
  %4503 = load i32, ptr %4502, align 8
  %4504 = lshr i32 %4503, 2
  %4505 = and i32 %4504, 255
  %4506 = and i32 %4505, 64
  %4507 = icmp ne i32 %4506, 0
  br i1 %4507, label %4511, label %4508

4508:                                             ; preds = %4501
  %4509 = load i32, ptr %32, align 4, !tbaa !11
  %4510 = icmp ne i32 %4509, 0
  br i1 %4510, label %4624, label %4511

4511:                                             ; preds = %4508, %4501, %4494
  %4512 = load ptr, ptr %6, align 8, !tbaa !5
  %4513 = call i32 @http_should_keep_alive(ptr noundef %4512)
  %4514 = icmp ne i32 %4513, 0
  br i1 %4514, label %4515, label %4522

4515:                                             ; preds = %4511
  %4516 = load ptr, ptr %6, align 8, !tbaa !5
  %4517 = load i32, ptr %4516, align 8
  %4518 = and i32 %4517, 3
  %4519 = icmp eq i32 %4518, 0
  %4520 = zext i1 %4519 to i64
  %4521 = select i1 %4519, i32 18, i32 4
  br label %4523

4522:                                             ; preds = %4511
  br label %4523

4523:                                             ; preds = %4522, %4515
  %4524 = phi i32 [ %4521, %4515 ], [ 1, %4522 ]
  store i32 %4524, ptr %19, align 4, !tbaa !11
  br label %4525

4525:                                             ; preds = %4523
  %4526 = load ptr, ptr %6, align 8, !tbaa !5
  %4527 = getelementptr inbounds %struct.http_parser, ptr %4526, i32 0, i32 5
  %4528 = load i32, ptr %4527, align 4
  %4529 = lshr i32 %4528, 24
  %4530 = and i32 %4529, 127
  %4531 = icmp eq i32 %4530, 0
  br i1 %4531, label %4532, label %4533

4532:                                             ; preds = %4525
  br label %4534

4533:                                             ; preds = %4525
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1881, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

4534:                                             ; preds = %4532
  %4535 = load ptr, ptr %7, align 8, !tbaa !5
  %4536 = getelementptr inbounds %struct.http_parser_settings, ptr %4535, i32 0, i32 7
  %4537 = load ptr, ptr %4536, align 8, !tbaa !16
  %4538 = icmp ne ptr %4537, null
  %4539 = xor i1 %4538, true
  %4540 = xor i1 %4539, true
  %4541 = zext i1 %4540 to i32
  %4542 = sext i32 %4541 to i64
  %4543 = call i64 @llvm.expect.i64(i64 %4542, i64 1)
  %4544 = icmp ne i64 %4543, 0
  br i1 %4544, label %4545, label %4602

4545:                                             ; preds = %4534
  %4546 = load i32, ptr %19, align 4, !tbaa !11
  %4547 = load ptr, ptr %6, align 8, !tbaa !5
  %4548 = load i32, ptr %4547, align 8
  %4549 = and i32 %4546, 127
  %4550 = shl i32 %4549, 10
  %4551 = and i32 %4548, -130049
  %4552 = or i32 %4551, %4550
  store i32 %4552, ptr %4547, align 8
  %4553 = load ptr, ptr %7, align 8, !tbaa !5
  %4554 = getelementptr inbounds %struct.http_parser_settings, ptr %4553, i32 0, i32 7
  %4555 = load ptr, ptr %4554, align 8, !tbaa !16
  %4556 = load ptr, ptr %6, align 8, !tbaa !5
  %4557 = call i32 %4555(ptr noundef %4556)
  %4558 = icmp ne i32 0, %4557
  %4559 = xor i1 %4558, true
  %4560 = xor i1 %4559, true
  %4561 = zext i1 %4560 to i32
  %4562 = sext i32 %4561 to i64
  %4563 = call i64 @llvm.expect.i64(i64 %4562, i64 0)
  %4564 = icmp ne i64 %4563, 0
  br i1 %4564, label %4565, label %4577

4565:                                             ; preds = %4545
  br label %4566

4566:                                             ; preds = %4565
  %4567 = load i32, ptr %21, align 4, !tbaa !11
  %4568 = load ptr, ptr %6, align 8, !tbaa !5
  %4569 = getelementptr inbounds %struct.http_parser, ptr %4568, i32 0, i32 1
  store i32 %4567, ptr %4569, align 4, !tbaa !13
  %4570 = load ptr, ptr %6, align 8, !tbaa !5
  %4571 = getelementptr inbounds %struct.http_parser, ptr %4570, i32 0, i32 5
  %4572 = load i32, ptr %4571, align 4
  %4573 = and i32 %4572, -2130706433
  %4574 = or i32 %4573, 117440512
  store i32 %4574, ptr %4571, align 4
  br label %4575

4575:                                             ; preds = %4566
  br label %4576

4576:                                             ; preds = %4575
  br label %4577

4577:                                             ; preds = %4576, %4545
  %4578 = load ptr, ptr %6, align 8, !tbaa !5
  %4579 = load i32, ptr %4578, align 8
  %4580 = lshr i32 %4579, 10
  %4581 = and i32 %4580, 127
  store i32 %4581, ptr %19, align 4, !tbaa !11
  %4582 = load ptr, ptr %6, align 8, !tbaa !5
  %4583 = getelementptr inbounds %struct.http_parser, ptr %4582, i32 0, i32 5
  %4584 = load i32, ptr %4583, align 4
  %4585 = lshr i32 %4584, 24
  %4586 = and i32 %4585, 127
  %4587 = icmp ne i32 %4586, 0
  %4588 = xor i1 %4587, true
  %4589 = xor i1 %4588, true
  %4590 = zext i1 %4589 to i32
  %4591 = sext i32 %4590 to i64
  %4592 = call i64 @llvm.expect.i64(i64 %4591, i64 0)
  %4593 = icmp ne i64 %4592, 0
  br i1 %4593, label %4594, label %4601

4594:                                             ; preds = %4577
  %4595 = load ptr, ptr %13, align 8, !tbaa !5
  %4596 = load ptr, ptr %8, align 8, !tbaa !5
  %4597 = ptrtoint ptr %4595 to i64
  %4598 = ptrtoint ptr %4596 to i64
  %4599 = sub i64 %4597, %4598
  %4600 = add nsw i64 %4599, 1
  store i64 %4600, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %4990

4601:                                             ; preds = %4577
  br label %4602

4602:                                             ; preds = %4601, %4534
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

4605:                                             ; preds = %4604
  %4606 = load i32, ptr %21, align 4, !tbaa !11
  %4607 = load ptr, ptr %6, align 8, !tbaa !5
  %4608 = getelementptr inbounds %struct.http_parser, ptr %4607, i32 0, i32 1
  store i32 %4606, ptr %4608, align 4, !tbaa !13
  %4609 = load i32, ptr %19, align 4, !tbaa !11
  %4610 = load ptr, ptr %6, align 8, !tbaa !5
  %4611 = load i32, ptr %4610, align 8
  %4612 = and i32 %4609, 127
  %4613 = shl i32 %4612, 10
  %4614 = and i32 %4611, -130049
  %4615 = or i32 %4614, %4613
  store i32 %4615, ptr %4610, align 8
  %4616 = load ptr, ptr %13, align 8, !tbaa !5
  %4617 = load ptr, ptr %8, align 8, !tbaa !5
  %4618 = ptrtoint ptr %4616 to i64
  %4619 = ptrtoint ptr %4617 to i64
  %4620 = sub i64 %4618, %4619
  %4621 = add nsw i64 %4620, 1
  store i64 %4621, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %4990

4622:                                             ; No predecessors!
  br label %4623

4623:                                             ; preds = %4622
  br label %4624

4624:                                             ; preds = %4623, %4508, %4486
  %4625 = load ptr, ptr %6, align 8, !tbaa !5
  %4626 = load i32, ptr %4625, align 8
  %4627 = lshr i32 %4626, 2
  %4628 = and i32 %4627, 255
  %4629 = and i32 %4628, 64
  %4630 = icmp ne i32 %4629, 0
  br i1 %4630, label %4631, label %4725

4631:                                             ; preds = %4624
  %4632 = load ptr, ptr %6, align 8, !tbaa !5
  %4633 = call i32 @http_should_keep_alive(ptr noundef %4632)
  %4634 = icmp ne i32 %4633, 0
  br i1 %4634, label %4635, label %4642

4635:                                             ; preds = %4631
  %4636 = load ptr, ptr %6, align 8, !tbaa !5
  %4637 = load i32, ptr %4636, align 8
  %4638 = and i32 %4637, 3
  %4639 = icmp eq i32 %4638, 0
  %4640 = zext i1 %4639 to i64
  %4641 = select i1 %4639, i32 18, i32 4
  br label %4643

4642:                                             ; preds = %4631
  br label %4643

4643:                                             ; preds = %4642, %4635
  %4644 = phi i32 [ %4641, %4635 ], [ 1, %4642 ]
  store i32 %4644, ptr %19, align 4, !tbaa !11
  br label %4645

4645:                                             ; preds = %4643
  %4646 = load ptr, ptr %6, align 8, !tbaa !5
  %4647 = getelementptr inbounds %struct.http_parser, ptr %4646, i32 0, i32 5
  %4648 = load i32, ptr %4647, align 4
  %4649 = lshr i32 %4648, 24
  %4650 = and i32 %4649, 127
  %4651 = icmp eq i32 %4650, 0
  br i1 %4651, label %4652, label %4653

4652:                                             ; preds = %4645
  br label %4654

4653:                                             ; preds = %4645
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1887, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

4654:                                             ; preds = %4652
  %4655 = load ptr, ptr %7, align 8, !tbaa !5
  %4656 = getelementptr inbounds %struct.http_parser_settings, ptr %4655, i32 0, i32 7
  %4657 = load ptr, ptr %4656, align 8, !tbaa !16
  %4658 = icmp ne ptr %4657, null
  %4659 = xor i1 %4658, true
  %4660 = xor i1 %4659, true
  %4661 = zext i1 %4660 to i32
  %4662 = sext i32 %4661 to i64
  %4663 = call i64 @llvm.expect.i64(i64 %4662, i64 1)
  %4664 = icmp ne i64 %4663, 0
  br i1 %4664, label %4665, label %4722

4665:                                             ; preds = %4654
  %4666 = load i32, ptr %19, align 4, !tbaa !11
  %4667 = load ptr, ptr %6, align 8, !tbaa !5
  %4668 = load i32, ptr %4667, align 8
  %4669 = and i32 %4666, 127
  %4670 = shl i32 %4669, 10
  %4671 = and i32 %4668, -130049
  %4672 = or i32 %4671, %4670
  store i32 %4672, ptr %4667, align 8
  %4673 = load ptr, ptr %7, align 8, !tbaa !5
  %4674 = getelementptr inbounds %struct.http_parser_settings, ptr %4673, i32 0, i32 7
  %4675 = load ptr, ptr %4674, align 8, !tbaa !16
  %4676 = load ptr, ptr %6, align 8, !tbaa !5
  %4677 = call i32 %4675(ptr noundef %4676)
  %4678 = icmp ne i32 0, %4677
  %4679 = xor i1 %4678, true
  %4680 = xor i1 %4679, true
  %4681 = zext i1 %4680 to i32
  %4682 = sext i32 %4681 to i64
  %4683 = call i64 @llvm.expect.i64(i64 %4682, i64 0)
  %4684 = icmp ne i64 %4683, 0
  br i1 %4684, label %4685, label %4697

4685:                                             ; preds = %4665
  br label %4686

4686:                                             ; preds = %4685
  %4687 = load i32, ptr %21, align 4, !tbaa !11
  %4688 = load ptr, ptr %6, align 8, !tbaa !5
  %4689 = getelementptr inbounds %struct.http_parser, ptr %4688, i32 0, i32 1
  store i32 %4687, ptr %4689, align 4, !tbaa !13
  %4690 = load ptr, ptr %6, align 8, !tbaa !5
  %4691 = getelementptr inbounds %struct.http_parser, ptr %4690, i32 0, i32 5
  %4692 = load i32, ptr %4691, align 4
  %4693 = and i32 %4692, -2130706433
  %4694 = or i32 %4693, 117440512
  store i32 %4694, ptr %4691, align 4
  br label %4695

4695:                                             ; preds = %4686
  br label %4696

4696:                                             ; preds = %4695
  br label %4697

4697:                                             ; preds = %4696, %4665
  %4698 = load ptr, ptr %6, align 8, !tbaa !5
  %4699 = load i32, ptr %4698, align 8
  %4700 = lshr i32 %4699, 10
  %4701 = and i32 %4700, 127
  store i32 %4701, ptr %19, align 4, !tbaa !11
  %4702 = load ptr, ptr %6, align 8, !tbaa !5
  %4703 = getelementptr inbounds %struct.http_parser, ptr %4702, i32 0, i32 5
  %4704 = load i32, ptr %4703, align 4
  %4705 = lshr i32 %4704, 24
  %4706 = and i32 %4705, 127
  %4707 = icmp ne i32 %4706, 0
  %4708 = xor i1 %4707, true
  %4709 = xor i1 %4708, true
  %4710 = zext i1 %4709 to i32
  %4711 = sext i32 %4710 to i64
  %4712 = call i64 @llvm.expect.i64(i64 %4711, i64 0)
  %4713 = icmp ne i64 %4712, 0
  br i1 %4713, label %4714, label %4721

4714:                                             ; preds = %4697
  %4715 = load ptr, ptr %13, align 8, !tbaa !5
  %4716 = load ptr, ptr %8, align 8, !tbaa !5
  %4717 = ptrtoint ptr %4715 to i64
  %4718 = ptrtoint ptr %4716 to i64
  %4719 = sub i64 %4717, %4718
  %4720 = add nsw i64 %4719, 1
  store i64 %4720, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %4990

4721:                                             ; preds = %4697
  br label %4722

4722:                                             ; preds = %4721, %4654
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

4724:                                             ; preds = %4723
  br label %4989

4725:                                             ; preds = %4624
  %4726 = load ptr, ptr %6, align 8, !tbaa !5
  %4727 = load i32, ptr %4726, align 8
  %4728 = lshr i32 %4727, 2
  %4729 = and i32 %4728, 255
  %4730 = and i32 %4729, 1
  %4731 = icmp ne i32 %4730, 0
  br i1 %4731, label %4732, label %4733

4732:                                             ; preds = %4725
  store i32 53, ptr %19, align 4, !tbaa !11
  br label %4988

4733:                                             ; preds = %4725
  %4734 = load ptr, ptr %6, align 8, !tbaa !5
  %4735 = load i32, ptr %4734, align 8
  %4736 = lshr i32 %4735, 29
  %4737 = and i32 %4736, 3
  %4738 = and i32 %4737, 1
  %4739 = icmp ne i32 %4738, 0
  br i1 %4739, label %4740, label %4780

4740:                                             ; preds = %4733
  %4741 = load ptr, ptr %6, align 8, !tbaa !5
  %4742 = load i32, ptr %4741, align 8
  %4743 = and i32 %4742, 3
  %4744 = icmp eq i32 %4743, 0
  br i1 %4744, label %4745, label %4778

4745:                                             ; preds = %4740
  %4746 = load i32, ptr %20, align 4, !tbaa !11
  %4747 = icmp ne i32 %4746, 0
  br i1 %4747, label %4778, label %4748

4748:                                             ; preds = %4745
  br label %4749

4749:                                             ; preds = %4748
  %4750 = load i32, ptr %21, align 4, !tbaa !11
  %4751 = load ptr, ptr %6, align 8, !tbaa !5
  %4752 = getelementptr inbounds %struct.http_parser, ptr %4751, i32 0, i32 1
  store i32 %4750, ptr %4752, align 4, !tbaa !13
  %4753 = load ptr, ptr %6, align 8, !tbaa !5
  %4754 = getelementptr inbounds %struct.http_parser, ptr %4753, i32 0, i32 5
  %4755 = load i32, ptr %4754, align 4
  %4756 = and i32 %4755, -2130706433
  %4757 = or i32 %4756, 553648128
  store i32 %4757, ptr %4754, align 4
  br label %4758

4758:                                             ; preds = %4749
  br label %4759

4759:                                             ; preds = %4758
  br label %4760

4760:                                             ; preds = %4759
  %4761 = load i32, ptr %21, align 4, !tbaa !11
  %4762 = load ptr, ptr %6, align 8, !tbaa !5
  %4763 = getelementptr inbounds %struct.http_parser, ptr %4762, i32 0, i32 1
  store i32 %4761, ptr %4763, align 4, !tbaa !13
  %4764 = load i32, ptr %19, align 4, !tbaa !11
  %4765 = load ptr, ptr %6, align 8, !tbaa !5
  %4766 = load i32, ptr %4765, align 8
  %4767 = and i32 %4764, 127
  %4768 = shl i32 %4767, 10
  %4769 = and i32 %4766, -130049
  %4770 = or i32 %4769, %4768
  store i32 %4770, ptr %4765, align 8
  %4771 = load ptr, ptr %13, align 8, !tbaa !5
  %4772 = load ptr, ptr %8, align 8, !tbaa !5
  %4773 = ptrtoint ptr %4771 to i64
  %4774 = ptrtoint ptr %4772 to i64
  %4775 = sub i64 %4773, %4774
  store i64 %4775, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %4990

4776:                                             ; No predecessors!
  br label %4777

4777:                                             ; preds = %4776
  br label %4779

4778:                                             ; preds = %4745, %4740
  store i32 63, ptr %19, align 4, !tbaa !11
  br label %4779

4779:                                             ; preds = %4778, %4777
  br label %4987

4780:                                             ; preds = %4733
  %4781 = load ptr, ptr %6, align 8, !tbaa !5
  %4782 = getelementptr inbounds %struct.http_parser, ptr %4781, i32 0, i32 2
  %4783 = load i64, ptr %4782, align 8, !tbaa !19
  %4784 = icmp eq i64 %4783, 0
  br i1 %4784, label %4785, label %4879

4785:                                             ; preds = %4780
  %4786 = load ptr, ptr %6, align 8, !tbaa !5
  %4787 = call i32 @http_should_keep_alive(ptr noundef %4786)
  %4788 = icmp ne i32 %4787, 0
  br i1 %4788, label %4789, label %4796

4789:                                             ; preds = %4785
  %4790 = load ptr, ptr %6, align 8, !tbaa !5
  %4791 = load i32, ptr %4790, align 8
  %4792 = and i32 %4791, 3
  %4793 = icmp eq i32 %4792, 0
  %4794 = zext i1 %4793 to i64
  %4795 = select i1 %4793, i32 18, i32 4
  br label %4797

4796:                                             ; preds = %4785
  br label %4797

4797:                                             ; preds = %4796, %4789
  %4798 = phi i32 [ %4795, %4789 ], [ 1, %4796 ]
  store i32 %4798, ptr %19, align 4, !tbaa !11
  br label %4799

4799:                                             ; preds = %4797
  %4800 = load ptr, ptr %6, align 8, !tbaa !5
  %4801 = getelementptr inbounds %struct.http_parser, ptr %4800, i32 0, i32 5
  %4802 = load i32, ptr %4801, align 4
  %4803 = lshr i32 %4802, 24
  %4804 = and i32 %4803, 127
  %4805 = icmp eq i32 %4804, 0
  br i1 %4805, label %4806, label %4807

4806:                                             ; preds = %4799
  br label %4808

4807:                                             ; preds = %4799
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1918, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

4808:                                             ; preds = %4806
  %4809 = load ptr, ptr %7, align 8, !tbaa !5
  %4810 = getelementptr inbounds %struct.http_parser_settings, ptr %4809, i32 0, i32 7
  %4811 = load ptr, ptr %4810, align 8, !tbaa !16
  %4812 = icmp ne ptr %4811, null
  %4813 = xor i1 %4812, true
  %4814 = xor i1 %4813, true
  %4815 = zext i1 %4814 to i32
  %4816 = sext i32 %4815 to i64
  %4817 = call i64 @llvm.expect.i64(i64 %4816, i64 1)
  %4818 = icmp ne i64 %4817, 0
  br i1 %4818, label %4819, label %4876

4819:                                             ; preds = %4808
  %4820 = load i32, ptr %19, align 4, !tbaa !11
  %4821 = load ptr, ptr %6, align 8, !tbaa !5
  %4822 = load i32, ptr %4821, align 8
  %4823 = and i32 %4820, 127
  %4824 = shl i32 %4823, 10
  %4825 = and i32 %4822, -130049
  %4826 = or i32 %4825, %4824
  store i32 %4826, ptr %4821, align 8
  %4827 = load ptr, ptr %7, align 8, !tbaa !5
  %4828 = getelementptr inbounds %struct.http_parser_settings, ptr %4827, i32 0, i32 7
  %4829 = load ptr, ptr %4828, align 8, !tbaa !16
  %4830 = load ptr, ptr %6, align 8, !tbaa !5
  %4831 = call i32 %4829(ptr noundef %4830)
  %4832 = icmp ne i32 0, %4831
  %4833 = xor i1 %4832, true
  %4834 = xor i1 %4833, true
  %4835 = zext i1 %4834 to i32
  %4836 = sext i32 %4835 to i64
  %4837 = call i64 @llvm.expect.i64(i64 %4836, i64 0)
  %4838 = icmp ne i64 %4837, 0
  br i1 %4838, label %4839, label %4851

4839:                                             ; preds = %4819
  br label %4840

4840:                                             ; preds = %4839
  %4841 = load i32, ptr %21, align 4, !tbaa !11
  %4842 = load ptr, ptr %6, align 8, !tbaa !5
  %4843 = getelementptr inbounds %struct.http_parser, ptr %4842, i32 0, i32 1
  store i32 %4841, ptr %4843, align 4, !tbaa !13
  %4844 = load ptr, ptr %6, align 8, !tbaa !5
  %4845 = getelementptr inbounds %struct.http_parser, ptr %4844, i32 0, i32 5
  %4846 = load i32, ptr %4845, align 4
  %4847 = and i32 %4846, -2130706433
  %4848 = or i32 %4847, 117440512
  store i32 %4848, ptr %4845, align 4
  br label %4849

4849:                                             ; preds = %4840
  br label %4850

4850:                                             ; preds = %4849
  br label %4851

4851:                                             ; preds = %4850, %4819
  %4852 = load ptr, ptr %6, align 8, !tbaa !5
  %4853 = load i32, ptr %4852, align 8
  %4854 = lshr i32 %4853, 10
  %4855 = and i32 %4854, 127
  store i32 %4855, ptr %19, align 4, !tbaa !11
  %4856 = load ptr, ptr %6, align 8, !tbaa !5
  %4857 = getelementptr inbounds %struct.http_parser, ptr %4856, i32 0, i32 5
  %4858 = load i32, ptr %4857, align 4
  %4859 = lshr i32 %4858, 24
  %4860 = and i32 %4859, 127
  %4861 = icmp ne i32 %4860, 0
  %4862 = xor i1 %4861, true
  %4863 = xor i1 %4862, true
  %4864 = zext i1 %4863 to i32
  %4865 = sext i32 %4864 to i64
  %4866 = call i64 @llvm.expect.i64(i64 %4865, i64 0)
  %4867 = icmp ne i64 %4866, 0
  br i1 %4867, label %4868, label %4875

4868:                                             ; preds = %4851
  %4869 = load ptr, ptr %13, align 8, !tbaa !5
  %4870 = load ptr, ptr %8, align 8, !tbaa !5
  %4871 = ptrtoint ptr %4869 to i64
  %4872 = ptrtoint ptr %4870 to i64
  %4873 = sub i64 %4871, %4872
  %4874 = add nsw i64 %4873, 1
  store i64 %4874, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %4990

4875:                                             ; preds = %4851
  br label %4876

4876:                                             ; preds = %4875, %4808
  br label %4877

4877:                                             ; preds = %4876
  br label %4878

4878:                                             ; preds = %4877
  br label %4986

4879:                                             ; preds = %4780
  %4880 = load ptr, ptr %6, align 8, !tbaa !5
  %4881 = getelementptr inbounds %struct.http_parser, ptr %4880, i32 0, i32 2
  %4882 = load i64, ptr %4881, align 8, !tbaa !19
  %4883 = icmp ne i64 %4882, -1
  br i1 %4883, label %4884, label %4885

4884:                                             ; preds = %4879
  store i32 62, ptr %19, align 4, !tbaa !11
  br label %4985

4885:                                             ; preds = %4879
  %4886 = load ptr, ptr %6, align 8, !tbaa !5
  %4887 = call i32 @http_message_needs_eof(ptr noundef %4886)
  %4888 = icmp ne i32 %4887, 0
  br i1 %4888, label %4983, label %4889

4889:                                             ; preds = %4885
  %4890 = load ptr, ptr %6, align 8, !tbaa !5
  %4891 = call i32 @http_should_keep_alive(ptr noundef %4890)
  %4892 = icmp ne i32 %4891, 0
  br i1 %4892, label %4893, label %4900

4893:                                             ; preds = %4889
  %4894 = load ptr, ptr %6, align 8, !tbaa !5
  %4895 = load i32, ptr %4894, align 8
  %4896 = and i32 %4895, 3
  %4897 = icmp eq i32 %4896, 0
  %4898 = zext i1 %4897 to i64
  %4899 = select i1 %4897, i32 18, i32 4
  br label %4901

4900:                                             ; preds = %4889
  br label %4901

4901:                                             ; preds = %4900, %4893
  %4902 = phi i32 [ %4899, %4893 ], [ 1, %4900 ]
  store i32 %4902, ptr %19, align 4, !tbaa !11
  br label %4903

4903:                                             ; preds = %4901
  %4904 = load ptr, ptr %6, align 8, !tbaa !5
  %4905 = getelementptr inbounds %struct.http_parser, ptr %4904, i32 0, i32 5
  %4906 = load i32, ptr %4905, align 4
  %4907 = lshr i32 %4906, 24
  %4908 = and i32 %4907, 127
  %4909 = icmp eq i32 %4908, 0
  br i1 %4909, label %4910, label %4911

4910:                                             ; preds = %4903
  br label %4912

4911:                                             ; preds = %4903
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1926, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

4912:                                             ; preds = %4910
  %4913 = load ptr, ptr %7, align 8, !tbaa !5
  %4914 = getelementptr inbounds %struct.http_parser_settings, ptr %4913, i32 0, i32 7
  %4915 = load ptr, ptr %4914, align 8, !tbaa !16
  %4916 = icmp ne ptr %4915, null
  %4917 = xor i1 %4916, true
  %4918 = xor i1 %4917, true
  %4919 = zext i1 %4918 to i32
  %4920 = sext i32 %4919 to i64
  %4921 = call i64 @llvm.expect.i64(i64 %4920, i64 1)
  %4922 = icmp ne i64 %4921, 0
  br i1 %4922, label %4923, label %4980

4923:                                             ; preds = %4912
  %4924 = load i32, ptr %19, align 4, !tbaa !11
  %4925 = load ptr, ptr %6, align 8, !tbaa !5
  %4926 = load i32, ptr %4925, align 8
  %4927 = and i32 %4924, 127
  %4928 = shl i32 %4927, 10
  %4929 = and i32 %4926, -130049
  %4930 = or i32 %4929, %4928
  store i32 %4930, ptr %4925, align 8
  %4931 = load ptr, ptr %7, align 8, !tbaa !5
  %4932 = getelementptr inbounds %struct.http_parser_settings, ptr %4931, i32 0, i32 7
  %4933 = load ptr, ptr %4932, align 8, !tbaa !16
  %4934 = load ptr, ptr %6, align 8, !tbaa !5
  %4935 = call i32 %4933(ptr noundef %4934)
  %4936 = icmp ne i32 0, %4935
  %4937 = xor i1 %4936, true
  %4938 = xor i1 %4937, true
  %4939 = zext i1 %4938 to i32
  %4940 = sext i32 %4939 to i64
  %4941 = call i64 @llvm.expect.i64(i64 %4940, i64 0)
  %4942 = icmp ne i64 %4941, 0
  br i1 %4942, label %4943, label %4955

4943:                                             ; preds = %4923
  br label %4944

4944:                                             ; preds = %4943
  %4945 = load i32, ptr %21, align 4, !tbaa !11
  %4946 = load ptr, ptr %6, align 8, !tbaa !5
  %4947 = getelementptr inbounds %struct.http_parser, ptr %4946, i32 0, i32 1
  store i32 %4945, ptr %4947, align 4, !tbaa !13
  %4948 = load ptr, ptr %6, align 8, !tbaa !5
  %4949 = getelementptr inbounds %struct.http_parser, ptr %4948, i32 0, i32 5
  %4950 = load i32, ptr %4949, align 4
  %4951 = and i32 %4950, -2130706433
  %4952 = or i32 %4951, 117440512
  store i32 %4952, ptr %4949, align 4
  br label %4953

4953:                                             ; preds = %4944
  br label %4954

4954:                                             ; preds = %4953
  br label %4955

4955:                                             ; preds = %4954, %4923
  %4956 = load ptr, ptr %6, align 8, !tbaa !5
  %4957 = load i32, ptr %4956, align 8
  %4958 = lshr i32 %4957, 10
  %4959 = and i32 %4958, 127
  store i32 %4959, ptr %19, align 4, !tbaa !11
  %4960 = load ptr, ptr %6, align 8, !tbaa !5
  %4961 = getelementptr inbounds %struct.http_parser, ptr %4960, i32 0, i32 5
  %4962 = load i32, ptr %4961, align 4
  %4963 = lshr i32 %4962, 24
  %4964 = and i32 %4963, 127
  %4965 = icmp ne i32 %4964, 0
  %4966 = xor i1 %4965, true
  %4967 = xor i1 %4966, true
  %4968 = zext i1 %4967 to i32
  %4969 = sext i32 %4968 to i64
  %4970 = call i64 @llvm.expect.i64(i64 %4969, i64 0)
  %4971 = icmp ne i64 %4970, 0
  br i1 %4971, label %4972, label %4979

4972:                                             ; preds = %4955
  %4973 = load ptr, ptr %13, align 8, !tbaa !5
  %4974 = load ptr, ptr %8, align 8, !tbaa !5
  %4975 = ptrtoint ptr %4973 to i64
  %4976 = ptrtoint ptr %4974 to i64
  %4977 = sub i64 %4975, %4976
  %4978 = add nsw i64 %4977, 1
  store i64 %4978, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %4990

4979:                                             ; preds = %4955
  br label %4980

4980:                                             ; preds = %4979, %4912
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981
  br label %4984

4983:                                             ; preds = %4885
  store i32 63, ptr %19, align 4, !tbaa !11
  br label %4984

4984:                                             ; preds = %4983, %4982
  br label %4985

4985:                                             ; preds = %4984, %4884
  br label %4986

4986:                                             ; preds = %4985, %4878
  br label %4987

4987:                                             ; preds = %4986, %4779
  br label %4988

4988:                                             ; preds = %4987, %4732
  br label %4989

4989:                                             ; preds = %4988, %4724
  store i32 19, ptr %22, align 4
  br label %4990

4990:                                             ; preds = %4989, %4972, %4868, %4760, %4714, %4605, %4594, %4462
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  %4991 = load i32, ptr %22, align 4
  switch i32 %4991, label %6385 [
    i32 19, label %5855
    i32 17, label %6347
  ]

4992:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  %4993 = load ptr, ptr %6, align 8, !tbaa !5
  %4994 = getelementptr inbounds %struct.http_parser, ptr %4993, i32 0, i32 2
  %4995 = load i64, ptr %4994, align 8, !tbaa !19
  %4996 = load ptr, ptr %8, align 8, !tbaa !5
  %4997 = load i64, ptr %9, align 8, !tbaa !9
  %4998 = getelementptr inbounds i8, ptr %4996, i64 %4997
  %4999 = load ptr, ptr %13, align 8, !tbaa !5
  %5000 = ptrtoint ptr %4998 to i64
  %5001 = ptrtoint ptr %4999 to i64
  %5002 = sub i64 %5000, %5001
  %5003 = icmp ult i64 %4995, %5002
  br i1 %5003, label %5004, label %5008

5004:                                             ; preds = %4992
  %5005 = load ptr, ptr %6, align 8, !tbaa !5
  %5006 = getelementptr inbounds %struct.http_parser, ptr %5005, i32 0, i32 2
  %5007 = load i64, ptr %5006, align 8, !tbaa !19
  br label %5016

5008:                                             ; preds = %4992
  %5009 = load ptr, ptr %8, align 8, !tbaa !5
  %5010 = load i64, ptr %9, align 8, !tbaa !9
  %5011 = getelementptr inbounds i8, ptr %5009, i64 %5010
  %5012 = load ptr, ptr %13, align 8, !tbaa !5
  %5013 = ptrtoint ptr %5011 to i64
  %5014 = ptrtoint ptr %5012 to i64
  %5015 = sub i64 %5013, %5014
  br label %5016

5016:                                             ; preds = %5008, %5004
  %5017 = phi i64 [ %5007, %5004 ], [ %5015, %5008 ]
  store i64 %5017, ptr %33, align 8, !tbaa !9
  %5018 = load ptr, ptr %6, align 8, !tbaa !5
  %5019 = getelementptr inbounds %struct.http_parser, ptr %5018, i32 0, i32 2
  %5020 = load i64, ptr %5019, align 8, !tbaa !19
  %5021 = icmp ne i64 %5020, 0
  br i1 %5021, label %5022, label %5028

5022:                                             ; preds = %5016
  %5023 = load ptr, ptr %6, align 8, !tbaa !5
  %5024 = getelementptr inbounds %struct.http_parser, ptr %5023, i32 0, i32 2
  %5025 = load i64, ptr %5024, align 8, !tbaa !19
  %5026 = icmp ne i64 %5025, -1
  br i1 %5026, label %5027, label %5028

5027:                                             ; preds = %5022
  br label %5029

5028:                                             ; preds = %5022, %5016
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 1943, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5029:                                             ; preds = %5027
  br label %5030

5030:                                             ; preds = %5029
  %5031 = load ptr, ptr %17, align 8, !tbaa !5
  %5032 = icmp ne ptr %5031, null
  br i1 %5032, label %5035, label %5033

5033:                                             ; preds = %5030
  %5034 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %5034, ptr %17, align 8, !tbaa !5
  br label %5035

5035:                                             ; preds = %5033, %5030
  br label %5036

5036:                                             ; preds = %5035
  br label %5037

5037:                                             ; preds = %5036
  %5038 = load i64, ptr %33, align 8, !tbaa !9
  %5039 = load ptr, ptr %6, align 8, !tbaa !5
  %5040 = getelementptr inbounds %struct.http_parser, ptr %5039, i32 0, i32 2
  %5041 = load i64, ptr %5040, align 8, !tbaa !19
  %5042 = sub i64 %5041, %5038
  store i64 %5042, ptr %5040, align 8, !tbaa !19
  %5043 = load i64, ptr %33, align 8, !tbaa !9
  %5044 = sub i64 %5043, 1
  %5045 = load ptr, ptr %13, align 8, !tbaa !5
  %5046 = getelementptr inbounds i8, ptr %5045, i64 %5044
  store ptr %5046, ptr %13, align 8, !tbaa !5
  %5047 = load ptr, ptr %6, align 8, !tbaa !5
  %5048 = getelementptr inbounds %struct.http_parser, ptr %5047, i32 0, i32 2
  %5049 = load i64, ptr %5048, align 8, !tbaa !19
  %5050 = icmp eq i64 %5049, 0
  br i1 %5050, label %5051, label %5142

5051:                                             ; preds = %5037
  store i32 64, ptr %19, align 4, !tbaa !11
  br label %5052

5052:                                             ; preds = %5051
  %5053 = load ptr, ptr %6, align 8, !tbaa !5
  %5054 = getelementptr inbounds %struct.http_parser, ptr %5053, i32 0, i32 5
  %5055 = load i32, ptr %5054, align 4
  %5056 = lshr i32 %5055, 24
  %5057 = and i32 %5056, 127
  %5058 = icmp eq i32 %5057, 0
  br i1 %5058, label %5059, label %5060

5059:                                             ; preds = %5052
  br label %5061

5060:                                             ; preds = %5052
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1966, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5061:                                             ; preds = %5059
  %5062 = load ptr, ptr %17, align 8, !tbaa !5
  %5063 = icmp ne ptr %5062, null
  br i1 %5063, label %5064, label %5139

5064:                                             ; preds = %5061
  %5065 = load ptr, ptr %7, align 8, !tbaa !5
  %5066 = getelementptr inbounds %struct.http_parser_settings, ptr %5065, i32 0, i32 6
  %5067 = load ptr, ptr %5066, align 8, !tbaa !34
  %5068 = icmp ne ptr %5067, null
  %5069 = xor i1 %5068, true
  %5070 = xor i1 %5069, true
  %5071 = zext i1 %5070 to i32
  %5072 = sext i32 %5071 to i64
  %5073 = call i64 @llvm.expect.i64(i64 %5072, i64 1)
  %5074 = icmp ne i64 %5073, 0
  br i1 %5074, label %5075, label %5138

5075:                                             ; preds = %5064
  %5076 = load i32, ptr %19, align 4, !tbaa !11
  %5077 = load ptr, ptr %6, align 8, !tbaa !5
  %5078 = load i32, ptr %5077, align 8
  %5079 = and i32 %5076, 127
  %5080 = shl i32 %5079, 10
  %5081 = and i32 %5078, -130049
  %5082 = or i32 %5081, %5080
  store i32 %5082, ptr %5077, align 8
  %5083 = load ptr, ptr %7, align 8, !tbaa !5
  %5084 = getelementptr inbounds %struct.http_parser_settings, ptr %5083, i32 0, i32 6
  %5085 = load ptr, ptr %5084, align 8, !tbaa !34
  %5086 = load ptr, ptr %6, align 8, !tbaa !5
  %5087 = load ptr, ptr %17, align 8, !tbaa !5
  %5088 = load ptr, ptr %13, align 8, !tbaa !5
  %5089 = load ptr, ptr %17, align 8, !tbaa !5
  %5090 = ptrtoint ptr %5088 to i64
  %5091 = ptrtoint ptr %5089 to i64
  %5092 = sub i64 %5090, %5091
  %5093 = add nsw i64 %5092, 1
  %5094 = call i32 %5085(ptr noundef %5086, ptr noundef %5087, i64 noundef %5093)
  %5095 = icmp ne i32 0, %5094
  %5096 = xor i1 %5095, true
  %5097 = xor i1 %5096, true
  %5098 = zext i1 %5097 to i32
  %5099 = sext i32 %5098 to i64
  %5100 = call i64 @llvm.expect.i64(i64 %5099, i64 0)
  %5101 = icmp ne i64 %5100, 0
  br i1 %5101, label %5102, label %5114

5102:                                             ; preds = %5075
  br label %5103

5103:                                             ; preds = %5102
  %5104 = load i32, ptr %21, align 4, !tbaa !11
  %5105 = load ptr, ptr %6, align 8, !tbaa !5
  %5106 = getelementptr inbounds %struct.http_parser, ptr %5105, i32 0, i32 1
  store i32 %5104, ptr %5106, align 4, !tbaa !13
  %5107 = load ptr, ptr %6, align 8, !tbaa !5
  %5108 = getelementptr inbounds %struct.http_parser, ptr %5107, i32 0, i32 5
  %5109 = load i32, ptr %5108, align 4
  %5110 = and i32 %5109, -2130706433
  %5111 = or i32 %5110, 100663296
  store i32 %5111, ptr %5108, align 4
  br label %5112

5112:                                             ; preds = %5103
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113, %5075
  %5115 = load ptr, ptr %6, align 8, !tbaa !5
  %5116 = load i32, ptr %5115, align 8
  %5117 = lshr i32 %5116, 10
  %5118 = and i32 %5117, 127
  store i32 %5118, ptr %19, align 4, !tbaa !11
  %5119 = load ptr, ptr %6, align 8, !tbaa !5
  %5120 = getelementptr inbounds %struct.http_parser, ptr %5119, i32 0, i32 5
  %5121 = load i32, ptr %5120, align 4
  %5122 = lshr i32 %5121, 24
  %5123 = and i32 %5122, 127
  %5124 = icmp ne i32 %5123, 0
  %5125 = xor i1 %5124, true
  %5126 = xor i1 %5125, true
  %5127 = zext i1 %5126 to i32
  %5128 = sext i32 %5127 to i64
  %5129 = call i64 @llvm.expect.i64(i64 %5128, i64 0)
  %5130 = icmp ne i64 %5129, 0
  br i1 %5130, label %5131, label %5137

5131:                                             ; preds = %5114
  %5132 = load ptr, ptr %13, align 8, !tbaa !5
  %5133 = load ptr, ptr %8, align 8, !tbaa !5
  %5134 = ptrtoint ptr %5132 to i64
  %5135 = ptrtoint ptr %5133 to i64
  %5136 = sub i64 %5134, %5135
  store i64 %5136, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %5143

5137:                                             ; preds = %5114
  br label %5138

5138:                                             ; preds = %5137, %5064
  store ptr null, ptr %17, align 8, !tbaa !5
  br label %5139

5139:                                             ; preds = %5138, %5061
  br label %5140

5140:                                             ; preds = %5139
  br label %5141

5141:                                             ; preds = %5140
  store i32 18, ptr %22, align 4
  br label %5143

5142:                                             ; preds = %5037
  store i32 19, ptr %22, align 4
  br label %5143

5143:                                             ; preds = %5142, %5141, %5131
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  %5144 = load i32, ptr %22, align 4
  switch i32 %5144, label %6385 [
    i32 18, label %211
    i32 19, label %5855
  ]

5145:                                             ; preds = %211
  br label %5146

5146:                                             ; preds = %5145
  %5147 = load ptr, ptr %17, align 8, !tbaa !5
  %5148 = icmp ne ptr %5147, null
  br i1 %5148, label %5151, label %5149

5149:                                             ; preds = %5146
  %5150 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %5150, ptr %17, align 8, !tbaa !5
  br label %5151

5151:                                             ; preds = %5149, %5146
  br label %5152

5152:                                             ; preds = %5151
  br label %5153

5153:                                             ; preds = %5152
  %5154 = load ptr, ptr %8, align 8, !tbaa !5
  %5155 = load i64, ptr %9, align 8, !tbaa !9
  %5156 = getelementptr inbounds i8, ptr %5154, i64 %5155
  %5157 = getelementptr inbounds i8, ptr %5156, i64 -1
  store ptr %5157, ptr %13, align 8, !tbaa !5
  br label %5855

5158:                                             ; preds = %211
  %5159 = load ptr, ptr %6, align 8, !tbaa !5
  %5160 = call i32 @http_should_keep_alive(ptr noundef %5159)
  %5161 = icmp ne i32 %5160, 0
  br i1 %5161, label %5162, label %5169

5162:                                             ; preds = %5158
  %5163 = load ptr, ptr %6, align 8, !tbaa !5
  %5164 = load i32, ptr %5163, align 8
  %5165 = and i32 %5164, 3
  %5166 = icmp eq i32 %5165, 0
  %5167 = zext i1 %5166 to i64
  %5168 = select i1 %5166, i32 18, i32 4
  br label %5170

5169:                                             ; preds = %5158
  br label %5170

5170:                                             ; preds = %5169, %5162
  %5171 = phi i32 [ %5168, %5162 ], [ 1, %5169 ]
  store i32 %5171, ptr %19, align 4, !tbaa !11
  br label %5172

5172:                                             ; preds = %5170
  %5173 = load ptr, ptr %6, align 8, !tbaa !5
  %5174 = getelementptr inbounds %struct.http_parser, ptr %5173, i32 0, i32 5
  %5175 = load i32, ptr %5174, align 4
  %5176 = lshr i32 %5175, 24
  %5177 = and i32 %5176, 127
  %5178 = icmp eq i32 %5177, 0
  br i1 %5178, label %5179, label %5180

5179:                                             ; preds = %5172
  br label %5181

5180:                                             ; preds = %5172
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1982, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5181:                                             ; preds = %5179
  %5182 = load ptr, ptr %7, align 8, !tbaa !5
  %5183 = getelementptr inbounds %struct.http_parser_settings, ptr %5182, i32 0, i32 7
  %5184 = load ptr, ptr %5183, align 8, !tbaa !16
  %5185 = icmp ne ptr %5184, null
  %5186 = xor i1 %5185, true
  %5187 = xor i1 %5186, true
  %5188 = zext i1 %5187 to i32
  %5189 = sext i32 %5188 to i64
  %5190 = call i64 @llvm.expect.i64(i64 %5189, i64 1)
  %5191 = icmp ne i64 %5190, 0
  br i1 %5191, label %5192, label %5249

5192:                                             ; preds = %5181
  %5193 = load i32, ptr %19, align 4, !tbaa !11
  %5194 = load ptr, ptr %6, align 8, !tbaa !5
  %5195 = load i32, ptr %5194, align 8
  %5196 = and i32 %5193, 127
  %5197 = shl i32 %5196, 10
  %5198 = and i32 %5195, -130049
  %5199 = or i32 %5198, %5197
  store i32 %5199, ptr %5194, align 8
  %5200 = load ptr, ptr %7, align 8, !tbaa !5
  %5201 = getelementptr inbounds %struct.http_parser_settings, ptr %5200, i32 0, i32 7
  %5202 = load ptr, ptr %5201, align 8, !tbaa !16
  %5203 = load ptr, ptr %6, align 8, !tbaa !5
  %5204 = call i32 %5202(ptr noundef %5203)
  %5205 = icmp ne i32 0, %5204
  %5206 = xor i1 %5205, true
  %5207 = xor i1 %5206, true
  %5208 = zext i1 %5207 to i32
  %5209 = sext i32 %5208 to i64
  %5210 = call i64 @llvm.expect.i64(i64 %5209, i64 0)
  %5211 = icmp ne i64 %5210, 0
  br i1 %5211, label %5212, label %5224

5212:                                             ; preds = %5192
  br label %5213

5213:                                             ; preds = %5212
  %5214 = load i32, ptr %21, align 4, !tbaa !11
  %5215 = load ptr, ptr %6, align 8, !tbaa !5
  %5216 = getelementptr inbounds %struct.http_parser, ptr %5215, i32 0, i32 1
  store i32 %5214, ptr %5216, align 4, !tbaa !13
  %5217 = load ptr, ptr %6, align 8, !tbaa !5
  %5218 = getelementptr inbounds %struct.http_parser, ptr %5217, i32 0, i32 5
  %5219 = load i32, ptr %5218, align 4
  %5220 = and i32 %5219, -2130706433
  %5221 = or i32 %5220, 117440512
  store i32 %5221, ptr %5218, align 4
  br label %5222

5222:                                             ; preds = %5213
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223, %5192
  %5225 = load ptr, ptr %6, align 8, !tbaa !5
  %5226 = load i32, ptr %5225, align 8
  %5227 = lshr i32 %5226, 10
  %5228 = and i32 %5227, 127
  store i32 %5228, ptr %19, align 4, !tbaa !11
  %5229 = load ptr, ptr %6, align 8, !tbaa !5
  %5230 = getelementptr inbounds %struct.http_parser, ptr %5229, i32 0, i32 5
  %5231 = load i32, ptr %5230, align 4
  %5232 = lshr i32 %5231, 24
  %5233 = and i32 %5232, 127
  %5234 = icmp ne i32 %5233, 0
  %5235 = xor i1 %5234, true
  %5236 = xor i1 %5235, true
  %5237 = zext i1 %5236 to i32
  %5238 = sext i32 %5237 to i64
  %5239 = call i64 @llvm.expect.i64(i64 %5238, i64 0)
  %5240 = icmp ne i64 %5239, 0
  br i1 %5240, label %5241, label %5248

5241:                                             ; preds = %5224
  %5242 = load ptr, ptr %13, align 8, !tbaa !5
  %5243 = load ptr, ptr %8, align 8, !tbaa !5
  %5244 = ptrtoint ptr %5242 to i64
  %5245 = ptrtoint ptr %5243 to i64
  %5246 = sub i64 %5244, %5245
  %5247 = add nsw i64 %5246, 1
  store i64 %5247, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

5248:                                             ; preds = %5224
  br label %5249

5249:                                             ; preds = %5248, %5181
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250
  %5252 = load ptr, ptr %6, align 8, !tbaa !5
  %5253 = getelementptr inbounds %struct.http_parser, ptr %5252, i32 0, i32 5
  %5254 = load i32, ptr %5253, align 4
  %5255 = lshr i32 %5254, 31
  %5256 = icmp ne i32 %5255, 0
  br i1 %5256, label %5257, label %5277

5257:                                             ; preds = %5251
  br label %5258

5258:                                             ; preds = %5257
  %5259 = load i32, ptr %21, align 4, !tbaa !11
  %5260 = load ptr, ptr %6, align 8, !tbaa !5
  %5261 = getelementptr inbounds %struct.http_parser, ptr %5260, i32 0, i32 1
  store i32 %5259, ptr %5261, align 4, !tbaa !13
  %5262 = load i32, ptr %19, align 4, !tbaa !11
  %5263 = load ptr, ptr %6, align 8, !tbaa !5
  %5264 = load i32, ptr %5263, align 8
  %5265 = and i32 %5262, 127
  %5266 = shl i32 %5265, 10
  %5267 = and i32 %5264, -130049
  %5268 = or i32 %5267, %5266
  store i32 %5268, ptr %5263, align 8
  %5269 = load ptr, ptr %13, align 8, !tbaa !5
  %5270 = load ptr, ptr %8, align 8, !tbaa !5
  %5271 = ptrtoint ptr %5269 to i64
  %5272 = ptrtoint ptr %5270 to i64
  %5273 = sub i64 %5271, %5272
  %5274 = add nsw i64 %5273, 1
  store i64 %5274, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

5275:                                             ; No predecessors!
  br label %5276

5276:                                             ; preds = %5275
  br label %5277

5277:                                             ; preds = %5276, %5251
  br label %5855

5278:                                             ; preds = %211
  %5279 = load i32, ptr %21, align 4, !tbaa !11
  %5280 = icmp eq i32 %5279, 1
  br i1 %5280, label %5281, label %5282

5281:                                             ; preds = %5278
  br label %5283

5282:                                             ; preds = %5278
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 1991, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5283:                                             ; preds = %5281
  %5284 = load ptr, ptr %6, align 8, !tbaa !5
  %5285 = load i32, ptr %5284, align 8
  %5286 = lshr i32 %5285, 2
  %5287 = and i32 %5286, 255
  %5288 = and i32 %5287, 1
  %5289 = icmp ne i32 %5288, 0
  br i1 %5289, label %5290, label %5291

5290:                                             ; preds = %5283
  br label %5292

5291:                                             ; preds = %5283
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 1992, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5292:                                             ; preds = %5290
  %5293 = load i8, ptr %11, align 1, !tbaa !18
  %5294 = zext i8 %5293 to i64
  %5295 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %5294
  %5296 = load i8, ptr %5295, align 1, !tbaa !18
  store i8 %5296, ptr %12, align 1, !tbaa !18
  %5297 = load i8, ptr %12, align 1, !tbaa !18
  %5298 = sext i8 %5297 to i32
  %5299 = icmp eq i32 %5298, -1
  %5300 = xor i1 %5299, true
  %5301 = xor i1 %5300, true
  %5302 = zext i1 %5301 to i32
  %5303 = sext i32 %5302 to i64
  %5304 = call i64 @llvm.expect.i64(i64 %5303, i64 0)
  %5305 = icmp ne i64 %5304, 0
  br i1 %5305, label %5306, label %5318

5306:                                             ; preds = %5292
  br label %5307

5307:                                             ; preds = %5306
  %5308 = load i32, ptr %21, align 4, !tbaa !11
  %5309 = load ptr, ptr %6, align 8, !tbaa !5
  %5310 = getelementptr inbounds %struct.http_parser, ptr %5309, i32 0, i32 1
  store i32 %5308, ptr %5310, align 4, !tbaa !13
  %5311 = load ptr, ptr %6, align 8, !tbaa !5
  %5312 = getelementptr inbounds %struct.http_parser, ptr %5311, i32 0, i32 5
  %5313 = load i32, ptr %5312, align 4
  %5314 = and i32 %5313, -2130706433
  %5315 = or i32 %5314, 452984832
  store i32 %5315, ptr %5312, align 4
  br label %5316

5316:                                             ; preds = %5307
  br label %5317

5317:                                             ; preds = %5316
  br label %6347

5318:                                             ; preds = %5292
  %5319 = load i8, ptr %12, align 1, !tbaa !18
  %5320 = sext i8 %5319 to i64
  %5321 = load ptr, ptr %6, align 8, !tbaa !5
  %5322 = getelementptr inbounds %struct.http_parser, ptr %5321, i32 0, i32 2
  store i64 %5320, ptr %5322, align 8, !tbaa !19
  store i32 54, ptr %19, align 4, !tbaa !11
  br label %5855

5323:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  %5324 = load ptr, ptr %6, align 8, !tbaa !5
  %5325 = load i32, ptr %5324, align 8
  %5326 = lshr i32 %5325, 2
  %5327 = and i32 %5326, 255
  %5328 = and i32 %5327, 1
  %5329 = icmp ne i32 %5328, 0
  br i1 %5329, label %5330, label %5331

5330:                                             ; preds = %5323
  br label %5332

5331:                                             ; preds = %5323
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2009, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5332:                                             ; preds = %5330
  %5333 = load i8, ptr %11, align 1, !tbaa !18
  %5334 = sext i8 %5333 to i32
  %5335 = icmp eq i32 %5334, 13
  br i1 %5335, label %5336, label %5337

5336:                                             ; preds = %5332
  store i32 56, ptr %19, align 4, !tbaa !11
  store i32 19, ptr %22, align 4
  br label %5402

5337:                                             ; preds = %5332
  %5338 = load i8, ptr %11, align 1, !tbaa !18
  %5339 = zext i8 %5338 to i64
  %5340 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %5339
  %5341 = load i8, ptr %5340, align 1, !tbaa !18
  store i8 %5341, ptr %12, align 1, !tbaa !18
  %5342 = load i8, ptr %12, align 1, !tbaa !18
  %5343 = sext i8 %5342 to i32
  %5344 = icmp eq i32 %5343, -1
  br i1 %5344, label %5345, label %5366

5345:                                             ; preds = %5337
  %5346 = load i8, ptr %11, align 1, !tbaa !18
  %5347 = sext i8 %5346 to i32
  %5348 = icmp eq i32 %5347, 59
  br i1 %5348, label %5353, label %5349

5349:                                             ; preds = %5345
  %5350 = load i8, ptr %11, align 1, !tbaa !18
  %5351 = sext i8 %5350 to i32
  %5352 = icmp eq i32 %5351, 32
  br i1 %5352, label %5353, label %5354

5353:                                             ; preds = %5349, %5345
  store i32 55, ptr %19, align 4, !tbaa !11
  store i32 19, ptr %22, align 4
  br label %5402

5354:                                             ; preds = %5349
  br label %5355

5355:                                             ; preds = %5354
  %5356 = load i32, ptr %21, align 4, !tbaa !11
  %5357 = load ptr, ptr %6, align 8, !tbaa !5
  %5358 = getelementptr inbounds %struct.http_parser, ptr %5357, i32 0, i32 1
  store i32 %5356, ptr %5358, align 4, !tbaa !13
  %5359 = load ptr, ptr %6, align 8, !tbaa !5
  %5360 = getelementptr inbounds %struct.http_parser, ptr %5359, i32 0, i32 5
  %5361 = load i32, ptr %5360, align 4
  %5362 = and i32 %5361, -2130706433
  %5363 = or i32 %5362, 452984832
  store i32 %5363, ptr %5360, align 4
  br label %5364

5364:                                             ; preds = %5355
  br label %5365

5365:                                             ; preds = %5364
  store i32 17, ptr %22, align 4
  br label %5402

5366:                                             ; preds = %5337
  %5367 = load ptr, ptr %6, align 8, !tbaa !5
  %5368 = getelementptr inbounds %struct.http_parser, ptr %5367, i32 0, i32 2
  %5369 = load i64, ptr %5368, align 8, !tbaa !19
  store i64 %5369, ptr %34, align 8, !tbaa !9
  %5370 = load i64, ptr %34, align 8, !tbaa !9
  %5371 = mul i64 %5370, 16
  store i64 %5371, ptr %34, align 8, !tbaa !9
  %5372 = load i8, ptr %12, align 1, !tbaa !18
  %5373 = sext i8 %5372 to i64
  %5374 = load i64, ptr %34, align 8, !tbaa !9
  %5375 = add i64 %5374, %5373
  store i64 %5375, ptr %34, align 8, !tbaa !9
  %5376 = load ptr, ptr %6, align 8, !tbaa !5
  %5377 = getelementptr inbounds %struct.http_parser, ptr %5376, i32 0, i32 2
  %5378 = load i64, ptr %5377, align 8, !tbaa !19
  %5379 = icmp ult i64 1152921504606846974, %5378
  %5380 = xor i1 %5379, true
  %5381 = xor i1 %5380, true
  %5382 = zext i1 %5381 to i32
  %5383 = sext i32 %5382 to i64
  %5384 = call i64 @llvm.expect.i64(i64 %5383, i64 0)
  %5385 = icmp ne i64 %5384, 0
  br i1 %5385, label %5386, label %5398

5386:                                             ; preds = %5366
  br label %5387

5387:                                             ; preds = %5386
  %5388 = load i32, ptr %21, align 4, !tbaa !11
  %5389 = load ptr, ptr %6, align 8, !tbaa !5
  %5390 = getelementptr inbounds %struct.http_parser, ptr %5389, i32 0, i32 1
  store i32 %5388, ptr %5390, align 4, !tbaa !13
  %5391 = load ptr, ptr %6, align 8, !tbaa !5
  %5392 = getelementptr inbounds %struct.http_parser, ptr %5391, i32 0, i32 5
  %5393 = load i32, ptr %5392, align 4
  %5394 = and i32 %5393, -2130706433
  %5395 = or i32 %5394, 419430400
  store i32 %5395, ptr %5392, align 4
  br label %5396

5396:                                             ; preds = %5387
  br label %5397

5397:                                             ; preds = %5396
  store i32 17, ptr %22, align 4
  br label %5402

5398:                                             ; preds = %5366
  %5399 = load i64, ptr %34, align 8, !tbaa !9
  %5400 = load ptr, ptr %6, align 8, !tbaa !5
  %5401 = getelementptr inbounds %struct.http_parser, ptr %5400, i32 0, i32 2
  store i64 %5399, ptr %5401, align 8, !tbaa !19
  store i32 19, ptr %22, align 4
  br label %5402

5402:                                             ; preds = %5398, %5397, %5365, %5353, %5336
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  %5403 = load i32, ptr %22, align 4
  switch i32 %5403, label %6385 [
    i32 19, label %5855
    i32 17, label %6347
  ]

5404:                                             ; preds = %211
  %5405 = load ptr, ptr %6, align 8, !tbaa !5
  %5406 = load i32, ptr %5405, align 8
  %5407 = lshr i32 %5406, 2
  %5408 = and i32 %5407, 255
  %5409 = and i32 %5408, 1
  %5410 = icmp ne i32 %5409, 0
  br i1 %5410, label %5411, label %5412

5411:                                             ; preds = %5404
  br label %5413

5412:                                             ; preds = %5404
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2044, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5413:                                             ; preds = %5411
  %5414 = load i8, ptr %11, align 1, !tbaa !18
  %5415 = sext i8 %5414 to i32
  %5416 = icmp eq i32 %5415, 13
  br i1 %5416, label %5417, label %5418

5417:                                             ; preds = %5413
  store i32 56, ptr %19, align 4, !tbaa !11
  br label %5855

5418:                                             ; preds = %5413
  br label %5855

5419:                                             ; preds = %211
  %5420 = load ptr, ptr %6, align 8, !tbaa !5
  %5421 = load i32, ptr %5420, align 8
  %5422 = lshr i32 %5421, 2
  %5423 = and i32 %5422, 255
  %5424 = and i32 %5423, 1
  %5425 = icmp ne i32 %5424, 0
  br i1 %5425, label %5426, label %5427

5426:                                             ; preds = %5419
  br label %5428

5427:                                             ; preds = %5419
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2055, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5428:                                             ; preds = %5426
  br label %5429

5429:                                             ; preds = %5428
  %5430 = load i8, ptr %11, align 1, !tbaa !18
  %5431 = sext i8 %5430 to i32
  %5432 = icmp ne i32 %5431, 10
  br i1 %5432, label %5433, label %5445

5433:                                             ; preds = %5429
  br label %5434

5434:                                             ; preds = %5433
  %5435 = load i32, ptr %21, align 4, !tbaa !11
  %5436 = load ptr, ptr %6, align 8, !tbaa !5
  %5437 = getelementptr inbounds %struct.http_parser, ptr %5436, i32 0, i32 1
  store i32 %5435, ptr %5437, align 4, !tbaa !13
  %5438 = load ptr, ptr %6, align 8, !tbaa !5
  %5439 = getelementptr inbounds %struct.http_parser, ptr %5438, i32 0, i32 5
  %5440 = load i32, ptr %5439, align 4
  %5441 = and i32 %5440, -2130706433
  %5442 = or i32 %5441, 503316480
  store i32 %5442, ptr %5439, align 4
  br label %5443

5443:                                             ; preds = %5434
  br label %5444

5444:                                             ; preds = %5443
  br label %6347

5445:                                             ; preds = %5429
  br label %5446

5446:                                             ; preds = %5445
  br label %5447

5447:                                             ; preds = %5446
  %5448 = load ptr, ptr %6, align 8, !tbaa !5
  %5449 = getelementptr inbounds %struct.http_parser, ptr %5448, i32 0, i32 1
  store i32 0, ptr %5449, align 4, !tbaa !13
  store i32 0, ptr %21, align 4, !tbaa !11
  %5450 = load ptr, ptr %6, align 8, !tbaa !5
  %5451 = getelementptr inbounds %struct.http_parser, ptr %5450, i32 0, i32 2
  %5452 = load i64, ptr %5451, align 8, !tbaa !19
  %5453 = icmp eq i64 %5452, 0
  br i1 %5453, label %5454, label %5465

5454:                                             ; preds = %5447
  %5455 = load ptr, ptr %6, align 8, !tbaa !5
  %5456 = load i32, ptr %5455, align 8
  %5457 = lshr i32 %5456, 2
  %5458 = and i32 %5457, 255
  %5459 = or i32 %5458, 16
  %5460 = load i32, ptr %5455, align 8
  %5461 = and i32 %5459, 255
  %5462 = shl i32 %5461, 2
  %5463 = and i32 %5460, -1021
  %5464 = or i32 %5463, %5462
  store i32 %5464, ptr %5455, align 8
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %5466

5465:                                             ; preds = %5447
  store i32 59, ptr %19, align 4, !tbaa !11
  br label %5466

5466:                                             ; preds = %5465, %5454
  br label %5467

5467:                                             ; preds = %5466
  %5468 = load ptr, ptr %6, align 8, !tbaa !5
  %5469 = getelementptr inbounds %struct.http_parser, ptr %5468, i32 0, i32 5
  %5470 = load i32, ptr %5469, align 4
  %5471 = lshr i32 %5470, 24
  %5472 = and i32 %5471, 127
  %5473 = icmp eq i32 %5472, 0
  br i1 %5473, label %5474, label %5475

5474:                                             ; preds = %5467
  br label %5476

5475:                                             ; preds = %5467
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2067, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5476:                                             ; preds = %5474
  %5477 = load ptr, ptr %7, align 8, !tbaa !5
  %5478 = getelementptr inbounds %struct.http_parser_settings, ptr %5477, i32 0, i32 8
  %5479 = load ptr, ptr %5478, align 8, !tbaa !35
  %5480 = icmp ne ptr %5479, null
  %5481 = xor i1 %5480, true
  %5482 = xor i1 %5481, true
  %5483 = zext i1 %5482 to i32
  %5484 = sext i32 %5483 to i64
  %5485 = call i64 @llvm.expect.i64(i64 %5484, i64 1)
  %5486 = icmp ne i64 %5485, 0
  br i1 %5486, label %5487, label %5544

5487:                                             ; preds = %5476
  %5488 = load i32, ptr %19, align 4, !tbaa !11
  %5489 = load ptr, ptr %6, align 8, !tbaa !5
  %5490 = load i32, ptr %5489, align 8
  %5491 = and i32 %5488, 127
  %5492 = shl i32 %5491, 10
  %5493 = and i32 %5490, -130049
  %5494 = or i32 %5493, %5492
  store i32 %5494, ptr %5489, align 8
  %5495 = load ptr, ptr %7, align 8, !tbaa !5
  %5496 = getelementptr inbounds %struct.http_parser_settings, ptr %5495, i32 0, i32 8
  %5497 = load ptr, ptr %5496, align 8, !tbaa !35
  %5498 = load ptr, ptr %6, align 8, !tbaa !5
  %5499 = call i32 %5497(ptr noundef %5498)
  %5500 = icmp ne i32 0, %5499
  %5501 = xor i1 %5500, true
  %5502 = xor i1 %5501, true
  %5503 = zext i1 %5502 to i32
  %5504 = sext i32 %5503 to i64
  %5505 = call i64 @llvm.expect.i64(i64 %5504, i64 0)
  %5506 = icmp ne i64 %5505, 0
  br i1 %5506, label %5507, label %5519

5507:                                             ; preds = %5487
  br label %5508

5508:                                             ; preds = %5507
  %5509 = load i32, ptr %21, align 4, !tbaa !11
  %5510 = load ptr, ptr %6, align 8, !tbaa !5
  %5511 = getelementptr inbounds %struct.http_parser, ptr %5510, i32 0, i32 1
  store i32 %5509, ptr %5511, align 4, !tbaa !13
  %5512 = load ptr, ptr %6, align 8, !tbaa !5
  %5513 = getelementptr inbounds %struct.http_parser, ptr %5512, i32 0, i32 5
  %5514 = load i32, ptr %5513, align 4
  %5515 = and i32 %5514, -2130706433
  %5516 = or i32 %5515, 150994944
  store i32 %5516, ptr %5513, align 4
  br label %5517

5517:                                             ; preds = %5508
  br label %5518

5518:                                             ; preds = %5517
  br label %5519

5519:                                             ; preds = %5518, %5487
  %5520 = load ptr, ptr %6, align 8, !tbaa !5
  %5521 = load i32, ptr %5520, align 8
  %5522 = lshr i32 %5521, 10
  %5523 = and i32 %5522, 127
  store i32 %5523, ptr %19, align 4, !tbaa !11
  %5524 = load ptr, ptr %6, align 8, !tbaa !5
  %5525 = getelementptr inbounds %struct.http_parser, ptr %5524, i32 0, i32 5
  %5526 = load i32, ptr %5525, align 4
  %5527 = lshr i32 %5526, 24
  %5528 = and i32 %5527, 127
  %5529 = icmp ne i32 %5528, 0
  %5530 = xor i1 %5529, true
  %5531 = xor i1 %5530, true
  %5532 = zext i1 %5531 to i32
  %5533 = sext i32 %5532 to i64
  %5534 = call i64 @llvm.expect.i64(i64 %5533, i64 0)
  %5535 = icmp ne i64 %5534, 0
  br i1 %5535, label %5536, label %5543

5536:                                             ; preds = %5519
  %5537 = load ptr, ptr %13, align 8, !tbaa !5
  %5538 = load ptr, ptr %8, align 8, !tbaa !5
  %5539 = ptrtoint ptr %5537 to i64
  %5540 = ptrtoint ptr %5538 to i64
  %5541 = sub i64 %5539, %5540
  %5542 = add nsw i64 %5541, 1
  store i64 %5542, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

5543:                                             ; preds = %5519
  br label %5544

5544:                                             ; preds = %5543, %5476
  br label %5545

5545:                                             ; preds = %5544
  br label %5546

5546:                                             ; preds = %5545
  br label %5855

5547:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  %5548 = load ptr, ptr %6, align 8, !tbaa !5
  %5549 = getelementptr inbounds %struct.http_parser, ptr %5548, i32 0, i32 2
  %5550 = load i64, ptr %5549, align 8, !tbaa !19
  %5551 = load ptr, ptr %8, align 8, !tbaa !5
  %5552 = load i64, ptr %9, align 8, !tbaa !9
  %5553 = getelementptr inbounds i8, ptr %5551, i64 %5552
  %5554 = load ptr, ptr %13, align 8, !tbaa !5
  %5555 = ptrtoint ptr %5553 to i64
  %5556 = ptrtoint ptr %5554 to i64
  %5557 = sub i64 %5555, %5556
  %5558 = icmp ult i64 %5550, %5557
  br i1 %5558, label %5559, label %5563

5559:                                             ; preds = %5547
  %5560 = load ptr, ptr %6, align 8, !tbaa !5
  %5561 = getelementptr inbounds %struct.http_parser, ptr %5560, i32 0, i32 2
  %5562 = load i64, ptr %5561, align 8, !tbaa !19
  br label %5571

5563:                                             ; preds = %5547
  %5564 = load ptr, ptr %8, align 8, !tbaa !5
  %5565 = load i64, ptr %9, align 8, !tbaa !9
  %5566 = getelementptr inbounds i8, ptr %5564, i64 %5565
  %5567 = load ptr, ptr %13, align 8, !tbaa !5
  %5568 = ptrtoint ptr %5566 to i64
  %5569 = ptrtoint ptr %5567 to i64
  %5570 = sub i64 %5568, %5569
  br label %5571

5571:                                             ; preds = %5563, %5559
  %5572 = phi i64 [ %5562, %5559 ], [ %5570, %5563 ]
  store i64 %5572, ptr %35, align 8, !tbaa !9
  %5573 = load ptr, ptr %6, align 8, !tbaa !5
  %5574 = load i32, ptr %5573, align 8
  %5575 = lshr i32 %5574, 2
  %5576 = and i32 %5575, 255
  %5577 = and i32 %5576, 1
  %5578 = icmp ne i32 %5577, 0
  br i1 %5578, label %5579, label %5580

5579:                                             ; preds = %5571
  br label %5581

5580:                                             ; preds = %5571
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2076, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5581:                                             ; preds = %5579
  %5582 = load ptr, ptr %6, align 8, !tbaa !5
  %5583 = getelementptr inbounds %struct.http_parser, ptr %5582, i32 0, i32 2
  %5584 = load i64, ptr %5583, align 8, !tbaa !19
  %5585 = icmp ne i64 %5584, 0
  br i1 %5585, label %5586, label %5592

5586:                                             ; preds = %5581
  %5587 = load ptr, ptr %6, align 8, !tbaa !5
  %5588 = getelementptr inbounds %struct.http_parser, ptr %5587, i32 0, i32 2
  %5589 = load i64, ptr %5588, align 8, !tbaa !19
  %5590 = icmp ne i64 %5589, -1
  br i1 %5590, label %5591, label %5592

5591:                                             ; preds = %5586
  br label %5593

5592:                                             ; preds = %5586, %5581
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2078, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5593:                                             ; preds = %5591
  br label %5594

5594:                                             ; preds = %5593
  %5595 = load ptr, ptr %17, align 8, !tbaa !5
  %5596 = icmp ne ptr %5595, null
  br i1 %5596, label %5599, label %5597

5597:                                             ; preds = %5594
  %5598 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %5598, ptr %17, align 8, !tbaa !5
  br label %5599

5599:                                             ; preds = %5597, %5594
  br label %5600

5600:                                             ; preds = %5599
  br label %5601

5601:                                             ; preds = %5600
  %5602 = load i64, ptr %35, align 8, !tbaa !9
  %5603 = load ptr, ptr %6, align 8, !tbaa !5
  %5604 = getelementptr inbounds %struct.http_parser, ptr %5603, i32 0, i32 2
  %5605 = load i64, ptr %5604, align 8, !tbaa !19
  %5606 = sub i64 %5605, %5602
  store i64 %5606, ptr %5604, align 8, !tbaa !19
  %5607 = load i64, ptr %35, align 8, !tbaa !9
  %5608 = sub i64 %5607, 1
  %5609 = load ptr, ptr %13, align 8, !tbaa !5
  %5610 = getelementptr inbounds i8, ptr %5609, i64 %5608
  store ptr %5610, ptr %13, align 8, !tbaa !5
  %5611 = load ptr, ptr %6, align 8, !tbaa !5
  %5612 = getelementptr inbounds %struct.http_parser, ptr %5611, i32 0, i32 2
  %5613 = load i64, ptr %5612, align 8, !tbaa !19
  %5614 = icmp eq i64 %5613, 0
  br i1 %5614, label %5615, label %5616

5615:                                             ; preds = %5601
  store i32 60, ptr %19, align 4, !tbaa !11
  br label %5616

5616:                                             ; preds = %5615, %5601
  store i32 19, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  br label %5855

5617:                                             ; preds = %211
  %5618 = load ptr, ptr %6, align 8, !tbaa !5
  %5619 = load i32, ptr %5618, align 8
  %5620 = lshr i32 %5619, 2
  %5621 = and i32 %5620, 255
  %5622 = and i32 %5621, 1
  %5623 = icmp ne i32 %5622, 0
  br i1 %5623, label %5624, label %5625

5624:                                             ; preds = %5617
  br label %5626

5625:                                             ; preds = %5617
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2095, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5626:                                             ; preds = %5624
  %5627 = load ptr, ptr %6, align 8, !tbaa !5
  %5628 = getelementptr inbounds %struct.http_parser, ptr %5627, i32 0, i32 2
  %5629 = load i64, ptr %5628, align 8, !tbaa !19
  %5630 = icmp eq i64 %5629, 0
  br i1 %5630, label %5631, label %5632

5631:                                             ; preds = %5626
  br label %5633

5632:                                             ; preds = %5626
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 2096, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5633:                                             ; preds = %5631
  br label %5634

5634:                                             ; preds = %5633
  %5635 = load i8, ptr %11, align 1, !tbaa !18
  %5636 = sext i8 %5635 to i32
  %5637 = icmp ne i32 %5636, 13
  br i1 %5637, label %5638, label %5650

5638:                                             ; preds = %5634
  br label %5639

5639:                                             ; preds = %5638
  %5640 = load i32, ptr %21, align 4, !tbaa !11
  %5641 = load ptr, ptr %6, align 8, !tbaa !5
  %5642 = getelementptr inbounds %struct.http_parser, ptr %5641, i32 0, i32 1
  store i32 %5640, ptr %5642, align 4, !tbaa !13
  %5643 = load ptr, ptr %6, align 8, !tbaa !5
  %5644 = getelementptr inbounds %struct.http_parser, ptr %5643, i32 0, i32 5
  %5645 = load i32, ptr %5644, align 4
  %5646 = and i32 %5645, -2130706433
  %5647 = or i32 %5646, 503316480
  store i32 %5647, ptr %5644, align 4
  br label %5648

5648:                                             ; preds = %5639
  br label %5649

5649:                                             ; preds = %5648
  br label %6347

5650:                                             ; preds = %5634
  br label %5651

5651:                                             ; preds = %5650
  br label %5652

5652:                                             ; preds = %5651
  store i32 61, ptr %19, align 4, !tbaa !11
  br label %5653

5653:                                             ; preds = %5652
  %5654 = load ptr, ptr %6, align 8, !tbaa !5
  %5655 = getelementptr inbounds %struct.http_parser, ptr %5654, i32 0, i32 5
  %5656 = load i32, ptr %5655, align 4
  %5657 = lshr i32 %5656, 24
  %5658 = and i32 %5657, 127
  %5659 = icmp eq i32 %5658, 0
  br i1 %5659, label %5660, label %5661

5660:                                             ; preds = %5653
  br label %5662

5661:                                             ; preds = %5653
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2099, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5662:                                             ; preds = %5660
  %5663 = load ptr, ptr %17, align 8, !tbaa !5
  %5664 = icmp ne ptr %5663, null
  br i1 %5664, label %5665, label %5740

5665:                                             ; preds = %5662
  %5666 = load ptr, ptr %7, align 8, !tbaa !5
  %5667 = getelementptr inbounds %struct.http_parser_settings, ptr %5666, i32 0, i32 6
  %5668 = load ptr, ptr %5667, align 8, !tbaa !34
  %5669 = icmp ne ptr %5668, null
  %5670 = xor i1 %5669, true
  %5671 = xor i1 %5670, true
  %5672 = zext i1 %5671 to i32
  %5673 = sext i32 %5672 to i64
  %5674 = call i64 @llvm.expect.i64(i64 %5673, i64 1)
  %5675 = icmp ne i64 %5674, 0
  br i1 %5675, label %5676, label %5739

5676:                                             ; preds = %5665
  %5677 = load i32, ptr %19, align 4, !tbaa !11
  %5678 = load ptr, ptr %6, align 8, !tbaa !5
  %5679 = load i32, ptr %5678, align 8
  %5680 = and i32 %5677, 127
  %5681 = shl i32 %5680, 10
  %5682 = and i32 %5679, -130049
  %5683 = or i32 %5682, %5681
  store i32 %5683, ptr %5678, align 8
  %5684 = load ptr, ptr %7, align 8, !tbaa !5
  %5685 = getelementptr inbounds %struct.http_parser_settings, ptr %5684, i32 0, i32 6
  %5686 = load ptr, ptr %5685, align 8, !tbaa !34
  %5687 = load ptr, ptr %6, align 8, !tbaa !5
  %5688 = load ptr, ptr %17, align 8, !tbaa !5
  %5689 = load ptr, ptr %13, align 8, !tbaa !5
  %5690 = load ptr, ptr %17, align 8, !tbaa !5
  %5691 = ptrtoint ptr %5689 to i64
  %5692 = ptrtoint ptr %5690 to i64
  %5693 = sub i64 %5691, %5692
  %5694 = call i32 %5686(ptr noundef %5687, ptr noundef %5688, i64 noundef %5693)
  %5695 = icmp ne i32 0, %5694
  %5696 = xor i1 %5695, true
  %5697 = xor i1 %5696, true
  %5698 = zext i1 %5697 to i32
  %5699 = sext i32 %5698 to i64
  %5700 = call i64 @llvm.expect.i64(i64 %5699, i64 0)
  %5701 = icmp ne i64 %5700, 0
  br i1 %5701, label %5702, label %5714

5702:                                             ; preds = %5676
  br label %5703

5703:                                             ; preds = %5702
  %5704 = load i32, ptr %21, align 4, !tbaa !11
  %5705 = load ptr, ptr %6, align 8, !tbaa !5
  %5706 = getelementptr inbounds %struct.http_parser, ptr %5705, i32 0, i32 1
  store i32 %5704, ptr %5706, align 4, !tbaa !13
  %5707 = load ptr, ptr %6, align 8, !tbaa !5
  %5708 = getelementptr inbounds %struct.http_parser, ptr %5707, i32 0, i32 5
  %5709 = load i32, ptr %5708, align 4
  %5710 = and i32 %5709, -2130706433
  %5711 = or i32 %5710, 100663296
  store i32 %5711, ptr %5708, align 4
  br label %5712

5712:                                             ; preds = %5703
  br label %5713

5713:                                             ; preds = %5712
  br label %5714

5714:                                             ; preds = %5713, %5676
  %5715 = load ptr, ptr %6, align 8, !tbaa !5
  %5716 = load i32, ptr %5715, align 8
  %5717 = lshr i32 %5716, 10
  %5718 = and i32 %5717, 127
  store i32 %5718, ptr %19, align 4, !tbaa !11
  %5719 = load ptr, ptr %6, align 8, !tbaa !5
  %5720 = getelementptr inbounds %struct.http_parser, ptr %5719, i32 0, i32 5
  %5721 = load i32, ptr %5720, align 4
  %5722 = lshr i32 %5721, 24
  %5723 = and i32 %5722, 127
  %5724 = icmp ne i32 %5723, 0
  %5725 = xor i1 %5724, true
  %5726 = xor i1 %5725, true
  %5727 = zext i1 %5726 to i32
  %5728 = sext i32 %5727 to i64
  %5729 = call i64 @llvm.expect.i64(i64 %5728, i64 0)
  %5730 = icmp ne i64 %5729, 0
  br i1 %5730, label %5731, label %5738

5731:                                             ; preds = %5714
  %5732 = load ptr, ptr %13, align 8, !tbaa !5
  %5733 = load ptr, ptr %8, align 8, !tbaa !5
  %5734 = ptrtoint ptr %5732 to i64
  %5735 = ptrtoint ptr %5733 to i64
  %5736 = sub i64 %5734, %5735
  %5737 = add nsw i64 %5736, 1
  store i64 %5737, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

5738:                                             ; preds = %5714
  br label %5739

5739:                                             ; preds = %5738, %5665
  store ptr null, ptr %17, align 8, !tbaa !5
  br label %5740

5740:                                             ; preds = %5739, %5662
  br label %5741

5741:                                             ; preds = %5740
  br label %5742

5742:                                             ; preds = %5741
  br label %5855

5743:                                             ; preds = %211
  %5744 = load ptr, ptr %6, align 8, !tbaa !5
  %5745 = load i32, ptr %5744, align 8
  %5746 = lshr i32 %5745, 2
  %5747 = and i32 %5746, 255
  %5748 = and i32 %5747, 1
  %5749 = icmp ne i32 %5748, 0
  br i1 %5749, label %5750, label %5751

5750:                                             ; preds = %5743
  br label %5752

5751:                                             ; preds = %5743
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2103, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5752:                                             ; preds = %5750
  br label %5753

5753:                                             ; preds = %5752
  %5754 = load i8, ptr %11, align 1, !tbaa !18
  %5755 = sext i8 %5754 to i32
  %5756 = icmp ne i32 %5755, 10
  br i1 %5756, label %5757, label %5769

5757:                                             ; preds = %5753
  br label %5758

5758:                                             ; preds = %5757
  %5759 = load i32, ptr %21, align 4, !tbaa !11
  %5760 = load ptr, ptr %6, align 8, !tbaa !5
  %5761 = getelementptr inbounds %struct.http_parser, ptr %5760, i32 0, i32 1
  store i32 %5759, ptr %5761, align 4, !tbaa !13
  %5762 = load ptr, ptr %6, align 8, !tbaa !5
  %5763 = getelementptr inbounds %struct.http_parser, ptr %5762, i32 0, i32 5
  %5764 = load i32, ptr %5763, align 4
  %5765 = and i32 %5764, -2130706433
  %5766 = or i32 %5765, 503316480
  store i32 %5766, ptr %5763, align 4
  br label %5767

5767:                                             ; preds = %5758
  br label %5768

5768:                                             ; preds = %5767
  br label %6347

5769:                                             ; preds = %5753
  br label %5770

5770:                                             ; preds = %5769
  br label %5771

5771:                                             ; preds = %5770
  %5772 = load ptr, ptr %6, align 8, !tbaa !5
  %5773 = getelementptr inbounds %struct.http_parser, ptr %5772, i32 0, i32 1
  store i32 0, ptr %5773, align 4, !tbaa !13
  store i32 0, ptr %21, align 4, !tbaa !11
  store i32 53, ptr %19, align 4, !tbaa !11
  br label %5774

5774:                                             ; preds = %5771
  %5775 = load ptr, ptr %6, align 8, !tbaa !5
  %5776 = getelementptr inbounds %struct.http_parser, ptr %5775, i32 0, i32 5
  %5777 = load i32, ptr %5776, align 4
  %5778 = lshr i32 %5777, 24
  %5779 = and i32 %5778, 127
  %5780 = icmp eq i32 %5779, 0
  br i1 %5780, label %5781, label %5782

5781:                                             ; preds = %5774
  br label %5783

5782:                                             ; preds = %5774
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2108, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5783:                                             ; preds = %5781
  %5784 = load ptr, ptr %7, align 8, !tbaa !5
  %5785 = getelementptr inbounds %struct.http_parser_settings, ptr %5784, i32 0, i32 9
  %5786 = load ptr, ptr %5785, align 8, !tbaa !32
  %5787 = icmp ne ptr %5786, null
  %5788 = xor i1 %5787, true
  %5789 = xor i1 %5788, true
  %5790 = zext i1 %5789 to i32
  %5791 = sext i32 %5790 to i64
  %5792 = call i64 @llvm.expect.i64(i64 %5791, i64 1)
  %5793 = icmp ne i64 %5792, 0
  br i1 %5793, label %5794, label %5851

5794:                                             ; preds = %5783
  %5795 = load i32, ptr %19, align 4, !tbaa !11
  %5796 = load ptr, ptr %6, align 8, !tbaa !5
  %5797 = load i32, ptr %5796, align 8
  %5798 = and i32 %5795, 127
  %5799 = shl i32 %5798, 10
  %5800 = and i32 %5797, -130049
  %5801 = or i32 %5800, %5799
  store i32 %5801, ptr %5796, align 8
  %5802 = load ptr, ptr %7, align 8, !tbaa !5
  %5803 = getelementptr inbounds %struct.http_parser_settings, ptr %5802, i32 0, i32 9
  %5804 = load ptr, ptr %5803, align 8, !tbaa !32
  %5805 = load ptr, ptr %6, align 8, !tbaa !5
  %5806 = call i32 %5804(ptr noundef %5805)
  %5807 = icmp ne i32 0, %5806
  %5808 = xor i1 %5807, true
  %5809 = xor i1 %5808, true
  %5810 = zext i1 %5809 to i32
  %5811 = sext i32 %5810 to i64
  %5812 = call i64 @llvm.expect.i64(i64 %5811, i64 0)
  %5813 = icmp ne i64 %5812, 0
  br i1 %5813, label %5814, label %5826

5814:                                             ; preds = %5794
  br label %5815

5815:                                             ; preds = %5814
  %5816 = load i32, ptr %21, align 4, !tbaa !11
  %5817 = load ptr, ptr %6, align 8, !tbaa !5
  %5818 = getelementptr inbounds %struct.http_parser, ptr %5817, i32 0, i32 1
  store i32 %5816, ptr %5818, align 4, !tbaa !13
  %5819 = load ptr, ptr %6, align 8, !tbaa !5
  %5820 = getelementptr inbounds %struct.http_parser, ptr %5819, i32 0, i32 5
  %5821 = load i32, ptr %5820, align 4
  %5822 = and i32 %5821, -2130706433
  %5823 = or i32 %5822, 167772160
  store i32 %5823, ptr %5820, align 4
  br label %5824

5824:                                             ; preds = %5815
  br label %5825

5825:                                             ; preds = %5824
  br label %5826

5826:                                             ; preds = %5825, %5794
  %5827 = load ptr, ptr %6, align 8, !tbaa !5
  %5828 = load i32, ptr %5827, align 8
  %5829 = lshr i32 %5828, 10
  %5830 = and i32 %5829, 127
  store i32 %5830, ptr %19, align 4, !tbaa !11
  %5831 = load ptr, ptr %6, align 8, !tbaa !5
  %5832 = getelementptr inbounds %struct.http_parser, ptr %5831, i32 0, i32 5
  %5833 = load i32, ptr %5832, align 4
  %5834 = lshr i32 %5833, 24
  %5835 = and i32 %5834, 127
  %5836 = icmp ne i32 %5835, 0
  %5837 = xor i1 %5836, true
  %5838 = xor i1 %5837, true
  %5839 = zext i1 %5838 to i32
  %5840 = sext i32 %5839 to i64
  %5841 = call i64 @llvm.expect.i64(i64 %5840, i64 0)
  %5842 = icmp ne i64 %5841, 0
  br i1 %5842, label %5843, label %5850

5843:                                             ; preds = %5826
  %5844 = load ptr, ptr %13, align 8, !tbaa !5
  %5845 = load ptr, ptr %8, align 8, !tbaa !5
  %5846 = ptrtoint ptr %5844 to i64
  %5847 = ptrtoint ptr %5845 to i64
  %5848 = sub i64 %5846, %5847
  %5849 = add nsw i64 %5848, 1
  store i64 %5849, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

5850:                                             ; preds = %5826
  br label %5851

5851:                                             ; preds = %5850, %5783
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

5853:                                             ; preds = %5852
  br label %5855

5854:                                             ; preds = %211
  call void @__assert_fail(ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 2112, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5855:                                             ; preds = %5853, %5742, %5616, %5546, %5418, %5417, %5402, %5318, %5277, %5153, %5143, %4990, %4006, %3997, %3906, %3882, %3007, %2845, %2840, %2835, %2825, %2222, %2141, %2136, %2101, %2096, %2085, %2055, %2026, %1996, %1976, %1956, %1936, %1916, %1896, %1876, %1850, %1630, %1589, %1548, %1542, %1301, %1061, %1052, %1032, %1031, %936, %841, %819, %773, %738, %725, %712, %683, %653, %624, %594, %574, %554, %534, %514, %406, %397, %351, %250, %229
  br label %5856

5856:                                             ; preds = %5855
  %5857 = load ptr, ptr %13, align 8, !tbaa !5
  %5858 = getelementptr inbounds i8, ptr %5857, i32 1
  store ptr %5858, ptr %13, align 8, !tbaa !5
  br label %171, !llvm.loop !36

5859:                                             ; preds = %171
  %5860 = load ptr, ptr %14, align 8, !tbaa !5
  %5861 = icmp ne ptr %5860, null
  %5862 = zext i1 %5861 to i64
  %5863 = select i1 %5861, i32 1, i32 0
  %5864 = load ptr, ptr %15, align 8, !tbaa !5
  %5865 = icmp ne ptr %5864, null
  %5866 = zext i1 %5865 to i64
  %5867 = select i1 %5865, i32 1, i32 0
  %5868 = add nsw i32 %5863, %5867
  %5869 = load ptr, ptr %16, align 8, !tbaa !5
  %5870 = icmp ne ptr %5869, null
  %5871 = zext i1 %5870 to i64
  %5872 = select i1 %5870, i32 1, i32 0
  %5873 = add nsw i32 %5868, %5872
  %5874 = load ptr, ptr %17, align 8, !tbaa !5
  %5875 = icmp ne ptr %5874, null
  %5876 = zext i1 %5875 to i64
  %5877 = select i1 %5875, i32 1, i32 0
  %5878 = add nsw i32 %5873, %5877
  %5879 = load ptr, ptr %18, align 8, !tbaa !5
  %5880 = icmp ne ptr %5879, null
  %5881 = zext i1 %5880 to i64
  %5882 = select i1 %5880, i32 1, i32 0
  %5883 = add nsw i32 %5878, %5882
  %5884 = icmp sle i32 %5883, 1
  br i1 %5884, label %5885, label %5886

5885:                                             ; preds = %5859
  br label %5887

5886:                                             ; preds = %5859
  call void @__assert_fail(ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 2132, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5887:                                             ; preds = %5885
  br label %5888

5888:                                             ; preds = %5887
  %5889 = load ptr, ptr %6, align 8, !tbaa !5
  %5890 = getelementptr inbounds %struct.http_parser, ptr %5889, i32 0, i32 5
  %5891 = load i32, ptr %5890, align 4
  %5892 = lshr i32 %5891, 24
  %5893 = and i32 %5892, 127
  %5894 = icmp eq i32 %5893, 0
  br i1 %5894, label %5895, label %5896

5895:                                             ; preds = %5888
  br label %5897

5896:                                             ; preds = %5888
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2134, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5897:                                             ; preds = %5895
  %5898 = load ptr, ptr %14, align 8, !tbaa !5
  %5899 = icmp ne ptr %5898, null
  br i1 %5899, label %5900, label %5974

5900:                                             ; preds = %5897
  %5901 = load ptr, ptr %7, align 8, !tbaa !5
  %5902 = getelementptr inbounds %struct.http_parser_settings, ptr %5901, i32 0, i32 3
  %5903 = load ptr, ptr %5902, align 8, !tbaa !28
  %5904 = icmp ne ptr %5903, null
  %5905 = xor i1 %5904, true
  %5906 = xor i1 %5905, true
  %5907 = zext i1 %5906 to i32
  %5908 = sext i32 %5907 to i64
  %5909 = call i64 @llvm.expect.i64(i64 %5908, i64 1)
  %5910 = icmp ne i64 %5909, 0
  br i1 %5910, label %5911, label %5973

5911:                                             ; preds = %5900
  %5912 = load i32, ptr %19, align 4, !tbaa !11
  %5913 = load ptr, ptr %6, align 8, !tbaa !5
  %5914 = load i32, ptr %5913, align 8
  %5915 = and i32 %5912, 127
  %5916 = shl i32 %5915, 10
  %5917 = and i32 %5914, -130049
  %5918 = or i32 %5917, %5916
  store i32 %5918, ptr %5913, align 8
  %5919 = load ptr, ptr %7, align 8, !tbaa !5
  %5920 = getelementptr inbounds %struct.http_parser_settings, ptr %5919, i32 0, i32 3
  %5921 = load ptr, ptr %5920, align 8, !tbaa !28
  %5922 = load ptr, ptr %6, align 8, !tbaa !5
  %5923 = load ptr, ptr %14, align 8, !tbaa !5
  %5924 = load ptr, ptr %13, align 8, !tbaa !5
  %5925 = load ptr, ptr %14, align 8, !tbaa !5
  %5926 = ptrtoint ptr %5924 to i64
  %5927 = ptrtoint ptr %5925 to i64
  %5928 = sub i64 %5926, %5927
  %5929 = call i32 %5921(ptr noundef %5922, ptr noundef %5923, i64 noundef %5928)
  %5930 = icmp ne i32 0, %5929
  %5931 = xor i1 %5930, true
  %5932 = xor i1 %5931, true
  %5933 = zext i1 %5932 to i32
  %5934 = sext i32 %5933 to i64
  %5935 = call i64 @llvm.expect.i64(i64 %5934, i64 0)
  %5936 = icmp ne i64 %5935, 0
  br i1 %5936, label %5937, label %5949

5937:                                             ; preds = %5911
  br label %5938

5938:                                             ; preds = %5937
  %5939 = load i32, ptr %21, align 4, !tbaa !11
  %5940 = load ptr, ptr %6, align 8, !tbaa !5
  %5941 = getelementptr inbounds %struct.http_parser, ptr %5940, i32 0, i32 1
  store i32 %5939, ptr %5941, align 4, !tbaa !13
  %5942 = load ptr, ptr %6, align 8, !tbaa !5
  %5943 = getelementptr inbounds %struct.http_parser, ptr %5942, i32 0, i32 5
  %5944 = load i32, ptr %5943, align 4
  %5945 = and i32 %5944, -2130706433
  %5946 = or i32 %5945, 50331648
  store i32 %5946, ptr %5943, align 4
  br label %5947

5947:                                             ; preds = %5938
  br label %5948

5948:                                             ; preds = %5947
  br label %5949

5949:                                             ; preds = %5948, %5911
  %5950 = load ptr, ptr %6, align 8, !tbaa !5
  %5951 = load i32, ptr %5950, align 8
  %5952 = lshr i32 %5951, 10
  %5953 = and i32 %5952, 127
  store i32 %5953, ptr %19, align 4, !tbaa !11
  %5954 = load ptr, ptr %6, align 8, !tbaa !5
  %5955 = getelementptr inbounds %struct.http_parser, ptr %5954, i32 0, i32 5
  %5956 = load i32, ptr %5955, align 4
  %5957 = lshr i32 %5956, 24
  %5958 = and i32 %5957, 127
  %5959 = icmp ne i32 %5958, 0
  %5960 = xor i1 %5959, true
  %5961 = xor i1 %5960, true
  %5962 = zext i1 %5961 to i32
  %5963 = sext i32 %5962 to i64
  %5964 = call i64 @llvm.expect.i64(i64 %5963, i64 0)
  %5965 = icmp ne i64 %5964, 0
  br i1 %5965, label %5966, label %5972

5966:                                             ; preds = %5949
  %5967 = load ptr, ptr %13, align 8, !tbaa !5
  %5968 = load ptr, ptr %8, align 8, !tbaa !5
  %5969 = ptrtoint ptr %5967 to i64
  %5970 = ptrtoint ptr %5968 to i64
  %5971 = sub i64 %5969, %5970
  store i64 %5971, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

5972:                                             ; preds = %5949
  br label %5973

5973:                                             ; preds = %5972, %5900
  store ptr null, ptr %14, align 8, !tbaa !5
  br label %5974

5974:                                             ; preds = %5973, %5897
  br label %5975

5975:                                             ; preds = %5974
  br label %5976

5976:                                             ; preds = %5975
  br label %5977

5977:                                             ; preds = %5976
  %5978 = load ptr, ptr %6, align 8, !tbaa !5
  %5979 = getelementptr inbounds %struct.http_parser, ptr %5978, i32 0, i32 5
  %5980 = load i32, ptr %5979, align 4
  %5981 = lshr i32 %5980, 24
  %5982 = and i32 %5981, 127
  %5983 = icmp eq i32 %5982, 0
  br i1 %5983, label %5984, label %5985

5984:                                             ; preds = %5977
  br label %5986

5985:                                             ; preds = %5977
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2135, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

5986:                                             ; preds = %5984
  %5987 = load ptr, ptr %15, align 8, !tbaa !5
  %5988 = icmp ne ptr %5987, null
  br i1 %5988, label %5989, label %6063

5989:                                             ; preds = %5986
  %5990 = load ptr, ptr %7, align 8, !tbaa !5
  %5991 = getelementptr inbounds %struct.http_parser_settings, ptr %5990, i32 0, i32 4
  %5992 = load ptr, ptr %5991, align 8, !tbaa !29
  %5993 = icmp ne ptr %5992, null
  %5994 = xor i1 %5993, true
  %5995 = xor i1 %5994, true
  %5996 = zext i1 %5995 to i32
  %5997 = sext i32 %5996 to i64
  %5998 = call i64 @llvm.expect.i64(i64 %5997, i64 1)
  %5999 = icmp ne i64 %5998, 0
  br i1 %5999, label %6000, label %6062

6000:                                             ; preds = %5989
  %6001 = load i32, ptr %19, align 4, !tbaa !11
  %6002 = load ptr, ptr %6, align 8, !tbaa !5
  %6003 = load i32, ptr %6002, align 8
  %6004 = and i32 %6001, 127
  %6005 = shl i32 %6004, 10
  %6006 = and i32 %6003, -130049
  %6007 = or i32 %6006, %6005
  store i32 %6007, ptr %6002, align 8
  %6008 = load ptr, ptr %7, align 8, !tbaa !5
  %6009 = getelementptr inbounds %struct.http_parser_settings, ptr %6008, i32 0, i32 4
  %6010 = load ptr, ptr %6009, align 8, !tbaa !29
  %6011 = load ptr, ptr %6, align 8, !tbaa !5
  %6012 = load ptr, ptr %15, align 8, !tbaa !5
  %6013 = load ptr, ptr %13, align 8, !tbaa !5
  %6014 = load ptr, ptr %15, align 8, !tbaa !5
  %6015 = ptrtoint ptr %6013 to i64
  %6016 = ptrtoint ptr %6014 to i64
  %6017 = sub i64 %6015, %6016
  %6018 = call i32 %6010(ptr noundef %6011, ptr noundef %6012, i64 noundef %6017)
  %6019 = icmp ne i32 0, %6018
  %6020 = xor i1 %6019, true
  %6021 = xor i1 %6020, true
  %6022 = zext i1 %6021 to i32
  %6023 = sext i32 %6022 to i64
  %6024 = call i64 @llvm.expect.i64(i64 %6023, i64 0)
  %6025 = icmp ne i64 %6024, 0
  br i1 %6025, label %6026, label %6038

6026:                                             ; preds = %6000
  br label %6027

6027:                                             ; preds = %6026
  %6028 = load i32, ptr %21, align 4, !tbaa !11
  %6029 = load ptr, ptr %6, align 8, !tbaa !5
  %6030 = getelementptr inbounds %struct.http_parser, ptr %6029, i32 0, i32 1
  store i32 %6028, ptr %6030, align 4, !tbaa !13
  %6031 = load ptr, ptr %6, align 8, !tbaa !5
  %6032 = getelementptr inbounds %struct.http_parser, ptr %6031, i32 0, i32 5
  %6033 = load i32, ptr %6032, align 4
  %6034 = and i32 %6033, -2130706433
  %6035 = or i32 %6034, 67108864
  store i32 %6035, ptr %6032, align 4
  br label %6036

6036:                                             ; preds = %6027
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

6038:                                             ; preds = %6037, %6000
  %6039 = load ptr, ptr %6, align 8, !tbaa !5
  %6040 = load i32, ptr %6039, align 8
  %6041 = lshr i32 %6040, 10
  %6042 = and i32 %6041, 127
  store i32 %6042, ptr %19, align 4, !tbaa !11
  %6043 = load ptr, ptr %6, align 8, !tbaa !5
  %6044 = getelementptr inbounds %struct.http_parser, ptr %6043, i32 0, i32 5
  %6045 = load i32, ptr %6044, align 4
  %6046 = lshr i32 %6045, 24
  %6047 = and i32 %6046, 127
  %6048 = icmp ne i32 %6047, 0
  %6049 = xor i1 %6048, true
  %6050 = xor i1 %6049, true
  %6051 = zext i1 %6050 to i32
  %6052 = sext i32 %6051 to i64
  %6053 = call i64 @llvm.expect.i64(i64 %6052, i64 0)
  %6054 = icmp ne i64 %6053, 0
  br i1 %6054, label %6055, label %6061

6055:                                             ; preds = %6038
  %6056 = load ptr, ptr %13, align 8, !tbaa !5
  %6057 = load ptr, ptr %8, align 8, !tbaa !5
  %6058 = ptrtoint ptr %6056 to i64
  %6059 = ptrtoint ptr %6057 to i64
  %6060 = sub i64 %6058, %6059
  store i64 %6060, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

6061:                                             ; preds = %6038
  br label %6062

6062:                                             ; preds = %6061, %5989
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %6063

6063:                                             ; preds = %6062, %5986
  br label %6064

6064:                                             ; preds = %6063
  br label %6065

6065:                                             ; preds = %6064
  br label %6066

6066:                                             ; preds = %6065
  %6067 = load ptr, ptr %6, align 8, !tbaa !5
  %6068 = getelementptr inbounds %struct.http_parser, ptr %6067, i32 0, i32 5
  %6069 = load i32, ptr %6068, align 4
  %6070 = lshr i32 %6069, 24
  %6071 = and i32 %6070, 127
  %6072 = icmp eq i32 %6071, 0
  br i1 %6072, label %6073, label %6074

6073:                                             ; preds = %6066
  br label %6075

6074:                                             ; preds = %6066
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2136, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

6075:                                             ; preds = %6073
  %6076 = load ptr, ptr %16, align 8, !tbaa !5
  %6077 = icmp ne ptr %6076, null
  br i1 %6077, label %6078, label %6152

6078:                                             ; preds = %6075
  %6079 = load ptr, ptr %7, align 8, !tbaa !5
  %6080 = getelementptr inbounds %struct.http_parser_settings, ptr %6079, i32 0, i32 1
  %6081 = load ptr, ptr %6080, align 8, !tbaa !24
  %6082 = icmp ne ptr %6081, null
  %6083 = xor i1 %6082, true
  %6084 = xor i1 %6083, true
  %6085 = zext i1 %6084 to i32
  %6086 = sext i32 %6085 to i64
  %6087 = call i64 @llvm.expect.i64(i64 %6086, i64 1)
  %6088 = icmp ne i64 %6087, 0
  br i1 %6088, label %6089, label %6151

6089:                                             ; preds = %6078
  %6090 = load i32, ptr %19, align 4, !tbaa !11
  %6091 = load ptr, ptr %6, align 8, !tbaa !5
  %6092 = load i32, ptr %6091, align 8
  %6093 = and i32 %6090, 127
  %6094 = shl i32 %6093, 10
  %6095 = and i32 %6092, -130049
  %6096 = or i32 %6095, %6094
  store i32 %6096, ptr %6091, align 8
  %6097 = load ptr, ptr %7, align 8, !tbaa !5
  %6098 = getelementptr inbounds %struct.http_parser_settings, ptr %6097, i32 0, i32 1
  %6099 = load ptr, ptr %6098, align 8, !tbaa !24
  %6100 = load ptr, ptr %6, align 8, !tbaa !5
  %6101 = load ptr, ptr %16, align 8, !tbaa !5
  %6102 = load ptr, ptr %13, align 8, !tbaa !5
  %6103 = load ptr, ptr %16, align 8, !tbaa !5
  %6104 = ptrtoint ptr %6102 to i64
  %6105 = ptrtoint ptr %6103 to i64
  %6106 = sub i64 %6104, %6105
  %6107 = call i32 %6099(ptr noundef %6100, ptr noundef %6101, i64 noundef %6106)
  %6108 = icmp ne i32 0, %6107
  %6109 = xor i1 %6108, true
  %6110 = xor i1 %6109, true
  %6111 = zext i1 %6110 to i32
  %6112 = sext i32 %6111 to i64
  %6113 = call i64 @llvm.expect.i64(i64 %6112, i64 0)
  %6114 = icmp ne i64 %6113, 0
  br i1 %6114, label %6115, label %6127

6115:                                             ; preds = %6089
  br label %6116

6116:                                             ; preds = %6115
  %6117 = load i32, ptr %21, align 4, !tbaa !11
  %6118 = load ptr, ptr %6, align 8, !tbaa !5
  %6119 = getelementptr inbounds %struct.http_parser, ptr %6118, i32 0, i32 1
  store i32 %6117, ptr %6119, align 4, !tbaa !13
  %6120 = load ptr, ptr %6, align 8, !tbaa !5
  %6121 = getelementptr inbounds %struct.http_parser, ptr %6120, i32 0, i32 5
  %6122 = load i32, ptr %6121, align 4
  %6123 = and i32 %6122, -2130706433
  %6124 = or i32 %6123, 33554432
  store i32 %6124, ptr %6121, align 4
  br label %6125

6125:                                             ; preds = %6116
  br label %6126

6126:                                             ; preds = %6125
  br label %6127

6127:                                             ; preds = %6126, %6089
  %6128 = load ptr, ptr %6, align 8, !tbaa !5
  %6129 = load i32, ptr %6128, align 8
  %6130 = lshr i32 %6129, 10
  %6131 = and i32 %6130, 127
  store i32 %6131, ptr %19, align 4, !tbaa !11
  %6132 = load ptr, ptr %6, align 8, !tbaa !5
  %6133 = getelementptr inbounds %struct.http_parser, ptr %6132, i32 0, i32 5
  %6134 = load i32, ptr %6133, align 4
  %6135 = lshr i32 %6134, 24
  %6136 = and i32 %6135, 127
  %6137 = icmp ne i32 %6136, 0
  %6138 = xor i1 %6137, true
  %6139 = xor i1 %6138, true
  %6140 = zext i1 %6139 to i32
  %6141 = sext i32 %6140 to i64
  %6142 = call i64 @llvm.expect.i64(i64 %6141, i64 0)
  %6143 = icmp ne i64 %6142, 0
  br i1 %6143, label %6144, label %6150

6144:                                             ; preds = %6127
  %6145 = load ptr, ptr %13, align 8, !tbaa !5
  %6146 = load ptr, ptr %8, align 8, !tbaa !5
  %6147 = ptrtoint ptr %6145 to i64
  %6148 = ptrtoint ptr %6146 to i64
  %6149 = sub i64 %6147, %6148
  store i64 %6149, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

6150:                                             ; preds = %6127
  br label %6151

6151:                                             ; preds = %6150, %6078
  store ptr null, ptr %16, align 8, !tbaa !5
  br label %6152

6152:                                             ; preds = %6151, %6075
  br label %6153

6153:                                             ; preds = %6152
  br label %6154

6154:                                             ; preds = %6153
  br label %6155

6155:                                             ; preds = %6154
  %6156 = load ptr, ptr %6, align 8, !tbaa !5
  %6157 = getelementptr inbounds %struct.http_parser, ptr %6156, i32 0, i32 5
  %6158 = load i32, ptr %6157, align 4
  %6159 = lshr i32 %6158, 24
  %6160 = and i32 %6159, 127
  %6161 = icmp eq i32 %6160, 0
  br i1 %6161, label %6162, label %6163

6162:                                             ; preds = %6155
  br label %6164

6163:                                             ; preds = %6155
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2137, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

6164:                                             ; preds = %6162
  %6165 = load ptr, ptr %17, align 8, !tbaa !5
  %6166 = icmp ne ptr %6165, null
  br i1 %6166, label %6167, label %6241

6167:                                             ; preds = %6164
  %6168 = load ptr, ptr %7, align 8, !tbaa !5
  %6169 = getelementptr inbounds %struct.http_parser_settings, ptr %6168, i32 0, i32 6
  %6170 = load ptr, ptr %6169, align 8, !tbaa !34
  %6171 = icmp ne ptr %6170, null
  %6172 = xor i1 %6171, true
  %6173 = xor i1 %6172, true
  %6174 = zext i1 %6173 to i32
  %6175 = sext i32 %6174 to i64
  %6176 = call i64 @llvm.expect.i64(i64 %6175, i64 1)
  %6177 = icmp ne i64 %6176, 0
  br i1 %6177, label %6178, label %6240

6178:                                             ; preds = %6167
  %6179 = load i32, ptr %19, align 4, !tbaa !11
  %6180 = load ptr, ptr %6, align 8, !tbaa !5
  %6181 = load i32, ptr %6180, align 8
  %6182 = and i32 %6179, 127
  %6183 = shl i32 %6182, 10
  %6184 = and i32 %6181, -130049
  %6185 = or i32 %6184, %6183
  store i32 %6185, ptr %6180, align 8
  %6186 = load ptr, ptr %7, align 8, !tbaa !5
  %6187 = getelementptr inbounds %struct.http_parser_settings, ptr %6186, i32 0, i32 6
  %6188 = load ptr, ptr %6187, align 8, !tbaa !34
  %6189 = load ptr, ptr %6, align 8, !tbaa !5
  %6190 = load ptr, ptr %17, align 8, !tbaa !5
  %6191 = load ptr, ptr %13, align 8, !tbaa !5
  %6192 = load ptr, ptr %17, align 8, !tbaa !5
  %6193 = ptrtoint ptr %6191 to i64
  %6194 = ptrtoint ptr %6192 to i64
  %6195 = sub i64 %6193, %6194
  %6196 = call i32 %6188(ptr noundef %6189, ptr noundef %6190, i64 noundef %6195)
  %6197 = icmp ne i32 0, %6196
  %6198 = xor i1 %6197, true
  %6199 = xor i1 %6198, true
  %6200 = zext i1 %6199 to i32
  %6201 = sext i32 %6200 to i64
  %6202 = call i64 @llvm.expect.i64(i64 %6201, i64 0)
  %6203 = icmp ne i64 %6202, 0
  br i1 %6203, label %6204, label %6216

6204:                                             ; preds = %6178
  br label %6205

6205:                                             ; preds = %6204
  %6206 = load i32, ptr %21, align 4, !tbaa !11
  %6207 = load ptr, ptr %6, align 8, !tbaa !5
  %6208 = getelementptr inbounds %struct.http_parser, ptr %6207, i32 0, i32 1
  store i32 %6206, ptr %6208, align 4, !tbaa !13
  %6209 = load ptr, ptr %6, align 8, !tbaa !5
  %6210 = getelementptr inbounds %struct.http_parser, ptr %6209, i32 0, i32 5
  %6211 = load i32, ptr %6210, align 4
  %6212 = and i32 %6211, -2130706433
  %6213 = or i32 %6212, 100663296
  store i32 %6213, ptr %6210, align 4
  br label %6214

6214:                                             ; preds = %6205
  br label %6215

6215:                                             ; preds = %6214
  br label %6216

6216:                                             ; preds = %6215, %6178
  %6217 = load ptr, ptr %6, align 8, !tbaa !5
  %6218 = load i32, ptr %6217, align 8
  %6219 = lshr i32 %6218, 10
  %6220 = and i32 %6219, 127
  store i32 %6220, ptr %19, align 4, !tbaa !11
  %6221 = load ptr, ptr %6, align 8, !tbaa !5
  %6222 = getelementptr inbounds %struct.http_parser, ptr %6221, i32 0, i32 5
  %6223 = load i32, ptr %6222, align 4
  %6224 = lshr i32 %6223, 24
  %6225 = and i32 %6224, 127
  %6226 = icmp ne i32 %6225, 0
  %6227 = xor i1 %6226, true
  %6228 = xor i1 %6227, true
  %6229 = zext i1 %6228 to i32
  %6230 = sext i32 %6229 to i64
  %6231 = call i64 @llvm.expect.i64(i64 %6230, i64 0)
  %6232 = icmp ne i64 %6231, 0
  br i1 %6232, label %6233, label %6239

6233:                                             ; preds = %6216
  %6234 = load ptr, ptr %13, align 8, !tbaa !5
  %6235 = load ptr, ptr %8, align 8, !tbaa !5
  %6236 = ptrtoint ptr %6234 to i64
  %6237 = ptrtoint ptr %6235 to i64
  %6238 = sub i64 %6236, %6237
  store i64 %6238, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

6239:                                             ; preds = %6216
  br label %6240

6240:                                             ; preds = %6239, %6167
  store ptr null, ptr %17, align 8, !tbaa !5
  br label %6241

6241:                                             ; preds = %6240, %6164
  br label %6242

6242:                                             ; preds = %6241
  br label %6243

6243:                                             ; preds = %6242
  br label %6244

6244:                                             ; preds = %6243
  %6245 = load ptr, ptr %6, align 8, !tbaa !5
  %6246 = getelementptr inbounds %struct.http_parser, ptr %6245, i32 0, i32 5
  %6247 = load i32, ptr %6246, align 4
  %6248 = lshr i32 %6247, 24
  %6249 = and i32 %6248, 127
  %6250 = icmp eq i32 %6249, 0
  br i1 %6250, label %6251, label %6252

6251:                                             ; preds = %6244
  br label %6253

6252:                                             ; preds = %6244
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2138, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

6253:                                             ; preds = %6251
  %6254 = load ptr, ptr %18, align 8, !tbaa !5
  %6255 = icmp ne ptr %6254, null
  br i1 %6255, label %6256, label %6330

6256:                                             ; preds = %6253
  %6257 = load ptr, ptr %7, align 8, !tbaa !5
  %6258 = getelementptr inbounds %struct.http_parser_settings, ptr %6257, i32 0, i32 2
  %6259 = load ptr, ptr %6258, align 8, !tbaa !23
  %6260 = icmp ne ptr %6259, null
  %6261 = xor i1 %6260, true
  %6262 = xor i1 %6261, true
  %6263 = zext i1 %6262 to i32
  %6264 = sext i32 %6263 to i64
  %6265 = call i64 @llvm.expect.i64(i64 %6264, i64 1)
  %6266 = icmp ne i64 %6265, 0
  br i1 %6266, label %6267, label %6329

6267:                                             ; preds = %6256
  %6268 = load i32, ptr %19, align 4, !tbaa !11
  %6269 = load ptr, ptr %6, align 8, !tbaa !5
  %6270 = load i32, ptr %6269, align 8
  %6271 = and i32 %6268, 127
  %6272 = shl i32 %6271, 10
  %6273 = and i32 %6270, -130049
  %6274 = or i32 %6273, %6272
  store i32 %6274, ptr %6269, align 8
  %6275 = load ptr, ptr %7, align 8, !tbaa !5
  %6276 = getelementptr inbounds %struct.http_parser_settings, ptr %6275, i32 0, i32 2
  %6277 = load ptr, ptr %6276, align 8, !tbaa !23
  %6278 = load ptr, ptr %6, align 8, !tbaa !5
  %6279 = load ptr, ptr %18, align 8, !tbaa !5
  %6280 = load ptr, ptr %13, align 8, !tbaa !5
  %6281 = load ptr, ptr %18, align 8, !tbaa !5
  %6282 = ptrtoint ptr %6280 to i64
  %6283 = ptrtoint ptr %6281 to i64
  %6284 = sub i64 %6282, %6283
  %6285 = call i32 %6277(ptr noundef %6278, ptr noundef %6279, i64 noundef %6284)
  %6286 = icmp ne i32 0, %6285
  %6287 = xor i1 %6286, true
  %6288 = xor i1 %6287, true
  %6289 = zext i1 %6288 to i32
  %6290 = sext i32 %6289 to i64
  %6291 = call i64 @llvm.expect.i64(i64 %6290, i64 0)
  %6292 = icmp ne i64 %6291, 0
  br i1 %6292, label %6293, label %6305

6293:                                             ; preds = %6267
  br label %6294

6294:                                             ; preds = %6293
  %6295 = load i32, ptr %21, align 4, !tbaa !11
  %6296 = load ptr, ptr %6, align 8, !tbaa !5
  %6297 = getelementptr inbounds %struct.http_parser, ptr %6296, i32 0, i32 1
  store i32 %6295, ptr %6297, align 4, !tbaa !13
  %6298 = load ptr, ptr %6, align 8, !tbaa !5
  %6299 = getelementptr inbounds %struct.http_parser, ptr %6298, i32 0, i32 5
  %6300 = load i32, ptr %6299, align 4
  %6301 = and i32 %6300, -2130706433
  %6302 = or i32 %6301, 134217728
  store i32 %6302, ptr %6299, align 4
  br label %6303

6303:                                             ; preds = %6294
  br label %6304

6304:                                             ; preds = %6303
  br label %6305

6305:                                             ; preds = %6304, %6267
  %6306 = load ptr, ptr %6, align 8, !tbaa !5
  %6307 = load i32, ptr %6306, align 8
  %6308 = lshr i32 %6307, 10
  %6309 = and i32 %6308, 127
  store i32 %6309, ptr %19, align 4, !tbaa !11
  %6310 = load ptr, ptr %6, align 8, !tbaa !5
  %6311 = getelementptr inbounds %struct.http_parser, ptr %6310, i32 0, i32 5
  %6312 = load i32, ptr %6311, align 4
  %6313 = lshr i32 %6312, 24
  %6314 = and i32 %6313, 127
  %6315 = icmp ne i32 %6314, 0
  %6316 = xor i1 %6315, true
  %6317 = xor i1 %6316, true
  %6318 = zext i1 %6317 to i32
  %6319 = sext i32 %6318 to i64
  %6320 = call i64 @llvm.expect.i64(i64 %6319, i64 0)
  %6321 = icmp ne i64 %6320, 0
  br i1 %6321, label %6322, label %6328

6322:                                             ; preds = %6305
  %6323 = load ptr, ptr %13, align 8, !tbaa !5
  %6324 = load ptr, ptr %8, align 8, !tbaa !5
  %6325 = ptrtoint ptr %6323 to i64
  %6326 = ptrtoint ptr %6324 to i64
  %6327 = sub i64 %6325, %6326
  store i64 %6327, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

6328:                                             ; preds = %6305
  br label %6329

6329:                                             ; preds = %6328, %6256
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %6330

6330:                                             ; preds = %6329, %6253
  br label %6331

6331:                                             ; preds = %6330
  br label %6332

6332:                                             ; preds = %6331
  br label %6333

6333:                                             ; preds = %6332
  %6334 = load i32, ptr %21, align 4, !tbaa !11
  %6335 = load ptr, ptr %6, align 8, !tbaa !5
  %6336 = getelementptr inbounds %struct.http_parser, ptr %6335, i32 0, i32 1
  store i32 %6334, ptr %6336, align 4, !tbaa !13
  %6337 = load i32, ptr %19, align 4, !tbaa !11
  %6338 = load ptr, ptr %6, align 8, !tbaa !5
  %6339 = load i32, ptr %6338, align 8
  %6340 = and i32 %6337, 127
  %6341 = shl i32 %6340, 10
  %6342 = and i32 %6339, -130049
  %6343 = or i32 %6342, %6341
  store i32 %6343, ptr %6338, align 8
  %6344 = load i64, ptr %9, align 8, !tbaa !9
  store i64 %6344, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

6345:                                             ; No predecessors!
  br label %6346

6346:                                             ; preds = %6345
  br label %6347

6347:                                             ; preds = %6346, %5768, %5649, %5444, %5402, %5317, %4990, %4308, %4183, %4067, %3994, %3905, %3882, %2945, %2926, %2825, %2181, %2135, %2113, %2084, %2054, %2025, %1993, %1973, %1953, %1933, %1913, %1893, %1875, %1848, %1628, %1604, %1588, %1542, %1220, %1106, %1049, %818, %772, %737, %711, %682, %652, %623, %591, %571, %551, %531, %433, %382, %241, %206
  %6348 = load ptr, ptr %6, align 8, !tbaa !5
  %6349 = getelementptr inbounds %struct.http_parser, ptr %6348, i32 0, i32 5
  %6350 = load i32, ptr %6349, align 4
  %6351 = lshr i32 %6350, 24
  %6352 = and i32 %6351, 127
  %6353 = icmp eq i32 %6352, 0
  br i1 %6353, label %6354, label %6366

6354:                                             ; preds = %6347
  br label %6355

6355:                                             ; preds = %6354
  %6356 = load i32, ptr %21, align 4, !tbaa !11
  %6357 = load ptr, ptr %6, align 8, !tbaa !5
  %6358 = getelementptr inbounds %struct.http_parser, ptr %6357, i32 0, i32 1
  store i32 %6356, ptr %6358, align 4, !tbaa !13
  %6359 = load ptr, ptr %6, align 8, !tbaa !5
  %6360 = getelementptr inbounds %struct.http_parser, ptr %6359, i32 0, i32 5
  %6361 = load i32, ptr %6360, align 4
  %6362 = and i32 %6361, -2130706433
  %6363 = or i32 %6362, 536870912
  store i32 %6363, ptr %6360, align 4
  br label %6364

6364:                                             ; preds = %6355
  br label %6365

6365:                                             ; preds = %6364
  br label %6366

6366:                                             ; preds = %6365, %6347
  br label %6367

6367:                                             ; preds = %6366
  %6368 = load i32, ptr %21, align 4, !tbaa !11
  %6369 = load ptr, ptr %6, align 8, !tbaa !5
  %6370 = getelementptr inbounds %struct.http_parser, ptr %6369, i32 0, i32 1
  store i32 %6368, ptr %6370, align 4, !tbaa !13
  %6371 = load i32, ptr %19, align 4, !tbaa !11
  %6372 = load ptr, ptr %6, align 8, !tbaa !5
  %6373 = load i32, ptr %6372, align 8
  %6374 = and i32 %6371, 127
  %6375 = shl i32 %6374, 10
  %6376 = and i32 %6373, -130049
  %6377 = or i32 %6376, %6375
  store i32 %6377, ptr %6372, align 8
  %6378 = load ptr, ptr %13, align 8, !tbaa !5
  %6379 = load ptr, ptr %8, align 8, !tbaa !5
  %6380 = ptrtoint ptr %6378 to i64
  %6381 = ptrtoint ptr %6379 to i64
  %6382 = sub i64 %6380, %6381
  store i64 %6382, ptr %5, align 8
  store i32 1, ptr %22, align 4
  br label %6385

6383:                                             ; No predecessors!
  br label %6384

6384:                                             ; preds = %6383
  store i32 0, ptr %22, align 4
  br label %6385

6385:                                             ; preds = %6384, %6367, %6333, %6322, %6233, %6144, %6055, %5966, %5843, %5731, %5536, %5402, %5258, %5241, %5143, %4990, %4427, %4400, %4263, %4156, %3882, %2825, %1813, %1713, %1542, %1291, %1020, %925, %504, %335, %151, %139, %138, %129, %53
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #4
  %6386 = load i32, ptr %22, align 4
  switch i32 %6386, label %6389 [
    i32 0, label %6387
    i32 1, label %6387
  ]

6387:                                             ; preds = %6385, %6385
  %6388 = load i64, ptr %5, align 8
  ret i64 %6388

6389:                                             ; preds = %6385
  unreachable
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.expect.i64(i64, i64) #3

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind uwtable
declare hidden i32 @parse_url_char(i32 noundef, i8 noundef signext) #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @http_should_keep_alive(ptr noundef) #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @http_message_needs_eof(ptr noundef) #0

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(none) }
attributes #4 = { nounwind }
attributes #5 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !12, i64 4}
!14 = !{!"http_parser", !12, i64 0, !12, i64 0, !12, i64 1, !12, i64 2, !12, i64 3, !12, i64 3, !12, i64 3, !12, i64 4, !10, i64 8, !15, i64 16, !15, i64 18, !12, i64 20, !12, i64 22, !12, i64 23, !12, i64 23, !6, i64 24}
!15 = !{!"short", !7, i64 0}
!16 = !{!17, !6, i64 56}
!17 = !{!"http_parser_settings", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72}
!18 = !{!7, !7, i64 0}
!19 = !{!14, !10, i64 8}
!20 = !{!17, !6, i64 0}
!21 = !{!14, !15, i64 16}
!22 = !{!14, !15, i64 18}
!23 = !{!17, !6, i64 16}
!24 = !{!17, !6, i64 8}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = distinct !{!27, !26}
!28 = !{!17, !6, i64 24}
!29 = !{!17, !6, i64 32}
!30 = distinct !{!30, !26}
!31 = distinct !{!31, !26}
!32 = !{!17, !6, i64 72}
!33 = !{!17, !6, i64 40}
!34 = !{!17, !6, i64 48}
!35 = !{!17, !6, i64 64}
!36 = distinct !{!36, !26}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [36 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 x i8], align 1
@__PRETTY_FUNCTION__.http_parser_execute = external hidden unnamed_addr constant [94 x i8], align 1
@max_header_size = external hidden local_unnamed_addr global i32, align 4
@method_strings = external hidden local_unnamed_addr global [34 x ptr], align 16
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [132 x i8], align 1
@tokens = external hidden local_unnamed_addr constant <{ [127 x i8], [129 x i8] }>, align 16
@unhex = external hidden local_unnamed_addr constant <{ [128 x i8], [128 x i8] }>, align 16
@switch.table.http_parser_execute = private unnamed_addr constant [3 x i32] [i32 8, i32 16, i32 32], align 4

; Function Attrs: nounwind uwtable
define dso_local i64 @http_parser_execute(ptr noundef %0, ptr nocapture noundef readonly %1, ptr noundef %2, i64 noundef %3) local_unnamed_addr #0 {
  %5 = load i32, ptr %0, align 8
  %.fr3552 = freeze i32 %5
  %6 = lshr i32 %.fr3552, 10
  %7 = and i32 %6, 127
  %8 = getelementptr inbounds i8, ptr %0, i64 4
  %9 = load i32, ptr %8, align 4, !tbaa !5
  %10 = getelementptr inbounds i8, ptr %0, i64 20
  %11 = load i32, ptr %10, align 4
  %12 = and i32 %11, 2130706432
  %.not = icmp eq i32 %12, 0
  br i1 %.not, label %13, label %.thread1710

13:                                               ; preds = %4
  %14 = icmp eq i64 %3, 0
  br i1 %14, label %15, label %30

15:                                               ; preds = %13
  switch i32 %7, label %28 [
    i32 63, label %16
    i32 1, label %.thread1710
    i32 2, label %.thread1710
    i32 4, label %.thread1710
    i32 18, label %.thread1710
  ]

16:                                               ; preds = %15
  %17 = getelementptr inbounds i8, ptr %1, i64 56
  %18 = load ptr, ptr %17, align 8, !tbaa !13
  %.not1624 = icmp eq ptr %18, null
  br i1 %.not1624, label %.thread1710, label %19, !prof !15

19:                                               ; preds = %16
  %20 = and i32 %.fr3552, -130049
  %21 = or disjoint i32 %20, 64512
  store i32 %21, ptr %0, align 8
  %22 = load ptr, ptr %17, align 8, !tbaa !13
  %23 = tail call i32 %22(ptr noundef nonnull %0) #3
  %.not1625 = icmp eq i32 %23, 0
  br i1 %.not1625, label %.thread1710, label %24, !prof !16

24:                                               ; preds = %19
  store i32 %9, ptr %8, align 4, !tbaa !5
  %25 = load i32, ptr %10, align 4
  %26 = and i32 %25, -2130706433
  %27 = or disjoint i32 %26, 117440512
  store i32 %27, ptr %10, align 4
  br label %.thread1710

28:                                               ; preds = %15
  %29 = or disjoint i32 %11, 184549376
  store i32 %29, ptr %10, align 4
  br label %.thread1710

30:                                               ; preds = %13
  %31 = icmp eq i32 %7, 45
  %spec.select = select i1 %31, ptr %2, ptr null
  %32 = icmp eq i32 %7, 50
  %.01327 = select i1 %32, ptr %2, ptr null
  switch i32 %7, label %.lr.ph3542 [
    i32 27, label %33
    i32 21, label %33
    i32 22, label %33
    i32 23, label %33
    i32 24, label %33
    i32 25, label %33
    i32 26, label %33
    i32 28, label %33
    i32 29, label %33
    i32 30, label %33
    i32 31, label %33
    i32 16, label %34
  ]

33:                                               ; preds = %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30
  br label %.lr.ph3542

34:                                               ; preds = %30
  br label %.lr.ph3542

.lr.ph3542:                                       ; preds = %33, %34, %30
  %.01349 = phi ptr [ null, %30 ], [ %2, %34 ], [ null, %33 ]
  %.01337 = phi ptr [ null, %30 ], [ null, %34 ], [ %2, %33 ]
  %35 = getelementptr inbounds i8, ptr %2, i64 %3
  %36 = getelementptr inbounds i8, ptr %0, i64 8
  %37 = ptrtoint ptr %35 to i64
  %38 = getelementptr inbounds i8, ptr %1, i64 48
  %39 = getelementptr inbounds i8, ptr %1, i64 72
  %.not1529 = icmp slt i32 %.fr3552, 0
  %40 = getelementptr inbounds i8, ptr %1, i64 40
  %41 = getelementptr inbounds i8, ptr %1, i64 32
  %42 = getelementptr inbounds i8, ptr %1, i64 64
  %43 = getelementptr inbounds i8, ptr %1, i64 56
  %44 = getelementptr inbounds i8, ptr %35, i64 -1
  %45 = getelementptr inbounds i8, ptr %1, i64 24
  %46 = getelementptr inbounds i8, ptr %0, i64 18
  %47 = getelementptr inbounds i8, ptr %0, i64 16
  %48 = getelementptr inbounds i8, ptr %1, i64 8
  %49 = getelementptr inbounds i8, ptr %1, i64 16
  br label %50

50:                                               ; preds = %.lr.ph3542, %.thread1671
  %.013073540 = phi ptr [ %2, %.lr.ph3542 ], [ %1731, %.thread1671 ]
  %.113223538 = phi ptr [ %spec.select, %.lr.ph3542 ], [ %.51326, %.thread1671 ]
  %.113283537 = phi ptr [ %.01327, %.lr.ph3542 ], [ %.91336, %.thread1671 ]
  %.113383535 = phi ptr [ %.01337, %.lr.ph3542 ], [ %.31340, %.thread1671 ]
  %.013413534 = phi ptr [ null, %.lr.ph3542 ], [ %.71348, %.thread1671 ]
  %.113503533 = phi ptr [ %.01349, %.lr.ph3542 ], [ %.41353, %.thread1671 ]
  %.013623532 = phi i32 [ %9, %.lr.ph3542 ], [ %.61368, %.thread1671 ]
  %.013703531 = phi i32 [ %7, %.lr.ph3542 ], [ %.33, %.thread1671 ]
  %51 = load i8, ptr %.013073540, align 1, !tbaa !17
  %52 = icmp ult i32 %.013703531, 59
  br i1 %52, label %53, label %.backedge.preheader

.backedge.preheader:                              ; preds = %53, %50
  %.21364.ph = phi i32 [ %.013623532, %50 ], [ %54, %53 ]
  br label %.backedge

53:                                               ; preds = %50
  %54 = add i32 %.013623532, 1
  %55 = load i32, ptr @max_header_size, align 4, !tbaa !18
  %56 = icmp ugt i32 %54, %55
  br i1 %56, label %57, label %.backedge.preheader, !prof !15

57:                                               ; preds = %53
  %58 = load i32, ptr %10, align 4
  %59 = and i32 %58, -2130706433
  %60 = or disjoint i32 %59, 201326592
  store i32 %60, ptr %10, align 4
  br label %.thread

.backedge:                                        ; preds = %.backedge.backedge, %.backedge.preheader
  %.11371 = phi i32 [ %.013703531, %.backedge.preheader ], [ %.11371.be, %.backedge.backedge ]
  %.21364 = phi i32 [ %.21364.ph, %.backedge.preheader ], [ %.21364.be, %.backedge.backedge ]
  %.21351 = phi ptr [ %.113503533, %.backedge.preheader ], [ %.21351.be, %.backedge.backedge ]
  %.11342 = phi ptr [ %.013413534, %.backedge.preheader ], [ %.11342.be, %.backedge.backedge ]
  %.21329 = phi ptr [ %.113283537, %.backedge.preheader ], [ %.21329.be, %.backedge.backedge ]
  %.11308 = phi ptr [ %.013073540, %.backedge.preheader ], [ %.11308.be, %.backedge.backedge ]
  %.01299 = phi i8 [ %51, %.backedge.preheader ], [ %.01299.be, %.backedge.backedge ]
  switch i32 %.11371, label %1730 [
    i32 1, label %61
    i32 2, label %66
    i32 3, label %98
    i32 4, label %114
    i32 5, label %147
    i32 6, label %152
    i32 7, label %157
    i32 8, label %162
    i32 9, label %167
    i32 10, label %177
    i32 11, label %182
    i32 12, label %192
    i32 13, label %197
    i32 14, label %211
    i32 15, label %231
    i32 16, label %234
    i32 17, label %293
    i32 18, label %298
    i32 19, label %356
    i32 20, label %420
    i32 21, label %432
    i32 22, label %432
    i32 23, label %432
    i32 24, label %432
    i32 25, label %444
    i32 26, label %444
    i32 27, label %444
    i32 28, label %444
    i32 29, label %444
    i32 30, label %444
    i32 31, label %444
    i32 32, label %513
    i32 33, label %522
    i32 34, label %527
    i32 35, label %532
    i32 37, label %537
    i32 38, label %542
    i32 36, label %547
    i32 39, label %552
    i32 40, label %562
    i32 41, label %567
    i32 42, label %577
    i32 43, label %583
    i32 44, label %588
    i32 45, label %.preheader
    i32 46, label %828
    i32 49, label %.loopexit1781
    i32 50, label %875
    i32 52, label %1124
    i32 51, label %1129
    i32 47, label %1149
    i32 48, label %1154
    i32 57, label %1196
    i32 58, label %1285
    i32 62, label %1471
    i32 63, label %1508
    i32 64, label %1509
    i32 53, label %1554
    i32 54, label %1572
    i32 55, label %1595
    i32 56, label %1601
    i32 59, label %1642
    i32 60, label %1655
    i32 61, label %1696
  ]

.preheader:                                       ; preds = %.backedge
  %.not15663526 = icmp eq ptr %.11308, %35
  br i1 %.not15663526, label %._crit_edge, label %.lr.ph3528

61:                                               ; preds = %.backedge
  switch i8 %.01299, label %62 [
    i8 13, label %.thread1671
    i8 10, label %.thread1671
  ]

62:                                               ; preds = %61
  %63 = load i32, ptr %10, align 4
  %64 = and i32 %63, -2130706433
  %65 = or disjoint i32 %64, 218103808
  store i32 %65, ptr %10, align 4
  br label %.thread

66:                                               ; preds = %.backedge
  switch i8 %.01299, label %67 [
    i8 13, label %.thread1671
    i8 10, label %.thread1671
  ]

67:                                               ; preds = %66
  %68 = load i32, ptr %0, align 8
  %69 = and i32 %68, -1610613757
  store i32 %69, ptr %0, align 8
  store i64 -1, ptr %36, align 8, !tbaa !19
  %70 = icmp eq i8 %.01299, 72
  br i1 %70, label %71, label %96

71:                                               ; preds = %67
  %72 = load i32, ptr %10, align 4
  %73 = and i32 %72, 2130706432
  %74 = icmp eq i32 %73, 0
  br i1 %74, label %76, label %75

75:                                               ; preds = %71
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 740, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

76:                                               ; preds = %71
  %77 = load ptr, ptr %1, align 8, !tbaa !20
  %.not1621 = icmp eq ptr %77, null
  br i1 %.not1621, label %.thread1671, label %78, !prof !15

78:                                               ; preds = %76
  %79 = and i32 %68, -1610743805
  %80 = or disjoint i32 %79, 3072
  store i32 %80, ptr %0, align 8
  %81 = load ptr, ptr %1, align 8, !tbaa !20
  %82 = tail call i32 %81(ptr noundef nonnull %0) #3
  %.not1622 = icmp eq i32 %82, 0
  %.pre4608 = load i32, ptr %10, align 4
  br i1 %.not1622, label %86, label %83, !prof !16

83:                                               ; preds = %78
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %84 = and i32 %.pre4608, -2130706433
  %85 = or disjoint i32 %84, 16777216
  store i32 %85, ptr %10, align 4
  br label %86

86:                                               ; preds = %83, %78
  %87 = phi i32 [ %85, %83 ], [ %.pre4608, %78 ]
  %88 = load i32, ptr %0, align 8
  %89 = lshr i32 %88, 10
  %90 = and i32 %89, 127
  %91 = and i32 %87, 2130706432
  %.not1623 = icmp eq i32 %91, 0
  br i1 %.not1623, label %.thread1671, label %92, !prof !16

92:                                               ; preds = %86
  %93 = ptrtoint ptr %.11308 to i64
  %94 = ptrtoint ptr %2 to i64
  %reass.sub3571 = sub i64 %93, %94
  %95 = add i64 %reass.sub3571, 1
  br label %.thread1710

96:                                               ; preds = %67
  %97 = and i32 %68, -1610613760
  br label %.backedge.sink.split

.backedge.sink.split:                             ; preds = %96, %1134, %1147, %1145, %1143, %1141
  %.sink = phi i32 [ %1142, %1141 ], [ %1144, %1143 ], [ %1146, %1145 ], [ %1148, %1147 ], [ %1136, %1134 ], [ %97, %96 ]
  %.11371.be.ph = phi i32 [ 44, %1141 ], [ 44, %1143 ], [ 44, %1145 ], [ 44, %1147 ], [ 49, %1134 ], [ 18, %96 ]
  store i32 %.sink, ptr %0, align 8
  br label %.backedge.backedge

.backedge.backedge:                               ; preds = %.backedge.sink.split, %1486, %1500, %1485, %1209, %1219, %1173, %1187, %1174, %1137, %1130, %935, %947, %934, %213, %213, %1275, %588, %231, %231
  %.11371.be = phi i32 [ 58, %1275 ], [ 16, %231 ], [ 57, %588 ], [ 16, %231 ], [ 15, %213 ], [ 15, %213 ], [ 52, %934 ], [ %951, %947 ], [ 52, %935 ], [ 49, %1130 ], [ 44, %1137 ], [ 44, %1173 ], [ %1191, %1187 ], [ 44, %1174 ], [ %1223, %1219 ], [ 64, %1209 ], [ 64, %1485 ], [ %1504, %1500 ], [ 64, %1486 ], [ %.11371.be.ph, %.backedge.sink.split ]
  %.21364.be = phi i32 [ %.21364, %1275 ], [ %.21364, %231 ], [ %.21364, %588 ], [ %.21364, %231 ], [ %.21364, %213 ], [ %.21364, %213 ], [ %918, %934 ], [ %918, %947 ], [ %918, %935 ], [ %.21364, %1130 ], [ %.21364, %1137 ], [ %.21364, %1173 ], [ %.21364, %1187 ], [ %.21364, %1174 ], [ %.21364, %1219 ], [ %.21364, %1209 ], [ %.21364, %1485 ], [ %.21364, %1500 ], [ %.21364, %1486 ], [ %.21364, %.backedge.sink.split ]
  %.21351.be = phi ptr [ %.21351, %1275 ], [ %spec.select1627, %231 ], [ %.21351, %588 ], [ %spec.select1627, %231 ], [ %.21351, %213 ], [ %.21351, %213 ], [ %.21351, %934 ], [ %.21351, %947 ], [ %.21351, %935 ], [ %.21351, %1130 ], [ %.21351, %1137 ], [ %.21351, %1173 ], [ %.21351, %1187 ], [ %.21351, %1174 ], [ %.21351, %1219 ], [ %.21351, %1209 ], [ %.21351, %1485 ], [ %.21351, %1500 ], [ %.21351, %1486 ], [ %.21351, %.backedge.sink.split ]
  %.11342.be = phi ptr [ %.11342, %1275 ], [ %.11342, %231 ], [ %.11342, %588 ], [ %.11342, %231 ], [ %.11342, %213 ], [ %.11342, %213 ], [ %.11342, %934 ], [ %.11342, %947 ], [ %.11342, %935 ], [ %.11342, %1130 ], [ %.11342, %1137 ], [ %.11342, %1173 ], [ %.11342, %1187 ], [ %.11342, %1174 ], [ %.11342, %1219 ], [ %.11342, %1209 ], [ null, %1485 ], [ null, %1500 ], [ null, %1486 ], [ %.11342, %.backedge.sink.split ]
  %.21329.be = phi ptr [ %.21329, %1275 ], [ %.21329, %231 ], [ %.21329, %588 ], [ %.21329, %231 ], [ %.21329, %213 ], [ %.21329, %213 ], [ null, %934 ], [ null, %947 ], [ null, %935 ], [ %.21329, %1130 ], [ %.21329, %1137 ], [ null, %1173 ], [ null, %1187 ], [ null, %1174 ], [ %.21329, %1219 ], [ %.21329, %1209 ], [ %.21329, %1485 ], [ %.21329, %1500 ], [ %.21329, %1486 ], [ %.21329, %.backedge.sink.split ]
  %.11308.be = phi ptr [ %.11308, %1275 ], [ %.11308, %231 ], [ %.11308, %588 ], [ %.11308, %231 ], [ %.11308, %213 ], [ %.11308, %213 ], [ %.613133506, %934 ], [ %.613133506, %947 ], [ %.613133506, %935 ], [ %.11308, %1130 ], [ %.11308, %1137 ], [ %.11308, %1173 ], [ %.11308, %1187 ], [ %.11308, %1174 ], [ %.11308, %1219 ], [ %.11308, %1209 ], [ %1479, %1485 ], [ %1479, %1500 ], [ %1479, %1486 ], [ %.11308, %.backedge.sink.split ]
  %.01299.be = phi i8 [ 10, %1275 ], [ %.01299, %231 ], [ %.01299, %588 ], [ %.01299, %231 ], [ %.01299, %213 ], [ %.01299, %213 ], [ 10, %934 ], [ 10, %947 ], [ 10, %935 ], [ %.01299, %1130 ], [ %.01299, %1137 ], [ %.01299, %1173 ], [ %.01299, %1187 ], [ %.01299, %1174 ], [ 10, %1219 ], [ 10, %1209 ], [ %.01299, %1485 ], [ %.01299, %1500 ], [ %.01299, %1486 ], [ %.01299, %.backedge.sink.split ]
  br label %.backedge

98:                                               ; preds = %.backedge
  switch i8 %.01299, label %103 [
    i8 84, label %99
    i8 69, label %107
  ], !prof !21

99:                                               ; preds = %98
  %100 = load i32, ptr %0, align 8
  %101 = and i32 %100, -4
  %102 = or disjoint i32 %101, 1
  store i32 %102, ptr %0, align 8
  br label %.thread1671

103:                                              ; preds = %98
  %104 = load i32, ptr %10, align 4
  %105 = and i32 %104, -2130706433
  %106 = or disjoint i32 %105, 469762048
  store i32 %106, ptr %10, align 4
  br label %.thread

107:                                              ; preds = %98
  %108 = load i32, ptr %0, align 8
  %109 = load i32, ptr %10, align 4
  %110 = and i32 %109, -16711681
  %111 = or disjoint i32 %110, 131072
  store i32 %111, ptr %10, align 4
  %112 = and i32 %108, -520093700
  %113 = or disjoint i32 %112, 33554432
  store i32 %113, ptr %0, align 8
  br label %.thread1671

114:                                              ; preds = %.backedge
  switch i8 %.01299, label %115 [
    i8 13, label %.thread1671
    i8 10, label %.thread1671
  ]

115:                                              ; preds = %114
  %116 = load i32, ptr %0, align 8
  %117 = and i32 %116, -1610613757
  store i32 %117, ptr %0, align 8
  store i64 -1, ptr %36, align 8, !tbaa !19
  %118 = icmp eq i8 %.01299, 72
  %119 = load i32, ptr %10, align 4
  br i1 %118, label %120, label %123

120:                                              ; preds = %115
  %121 = and i32 %119, 2130706432
  %122 = icmp eq i32 %121, 0
  br i1 %122, label %127, label %126

123:                                              ; preds = %115
  %124 = and i32 %119, -2130706433
  %125 = or disjoint i32 %124, 469762048
  store i32 %125, ptr %10, align 4
  br label %.thread

126:                                              ; preds = %120
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 782, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

127:                                              ; preds = %120
  %128 = load ptr, ptr %1, align 8, !tbaa !20
  %.not1617 = icmp eq ptr %128, null
  br i1 %.not1617, label %.thread1671, label %129, !prof !15

129:                                              ; preds = %127
  %130 = and i32 %116, -1610743805
  %131 = or disjoint i32 %130, 5120
  store i32 %131, ptr %0, align 8
  %132 = load ptr, ptr %1, align 8, !tbaa !20
  %133 = tail call i32 %132(ptr noundef nonnull %0) #3
  %.not1618 = icmp eq i32 %133, 0
  %.pre4607 = load i32, ptr %10, align 4
  br i1 %.not1618, label %137, label %134, !prof !16

134:                                              ; preds = %129
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %135 = and i32 %.pre4607, -2130706433
  %136 = or disjoint i32 %135, 16777216
  store i32 %136, ptr %10, align 4
  br label %137

137:                                              ; preds = %134, %129
  %138 = phi i32 [ %136, %134 ], [ %.pre4607, %129 ]
  %139 = load i32, ptr %0, align 8
  %140 = lshr i32 %139, 10
  %141 = and i32 %140, 127
  %142 = and i32 %138, 2130706432
  %.not1619 = icmp eq i32 %142, 0
  br i1 %.not1619, label %.thread1671, label %143, !prof !16

143:                                              ; preds = %137
  %144 = ptrtoint ptr %.11308 to i64
  %145 = ptrtoint ptr %2 to i64
  %reass.sub3570 = sub i64 %144, %145
  %146 = add i64 %reass.sub3570, 1
  br label %.thread1710

147:                                              ; preds = %.backedge
  %.not1616 = icmp eq i8 %.01299, 84
  br i1 %.not1616, label %.thread1671, label %148

148:                                              ; preds = %147
  %149 = load i32, ptr %10, align 4
  %150 = and i32 %149, -2130706433
  %151 = or disjoint i32 %150, 503316480
  store i32 %151, ptr %10, align 4
  br label %.thread

152:                                              ; preds = %.backedge
  %.not1615 = icmp eq i8 %.01299, 84
  br i1 %.not1615, label %.thread1671, label %153

153:                                              ; preds = %152
  %154 = load i32, ptr %10, align 4
  %155 = and i32 %154, -2130706433
  %156 = or disjoint i32 %155, 503316480
  store i32 %156, ptr %10, align 4
  br label %.thread

157:                                              ; preds = %.backedge
  %.not1614 = icmp eq i8 %.01299, 80
  br i1 %.not1614, label %.thread1671, label %158

158:                                              ; preds = %157
  %159 = load i32, ptr %10, align 4
  %160 = and i32 %159, -2130706433
  %161 = or disjoint i32 %160, 503316480
  store i32 %161, ptr %10, align 4
  br label %.thread

162:                                              ; preds = %.backedge
  %.not1613 = icmp eq i8 %.01299, 47
  br i1 %.not1613, label %.thread1671, label %163

163:                                              ; preds = %162
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %164 = load i32, ptr %10, align 4
  %165 = and i32 %164, -2130706433
  %166 = or disjoint i32 %165, 503316480
  store i32 %166, ptr %10, align 4
  br label %.thread

167:                                              ; preds = %.backedge
  %168 = add i8 %.01299, -58
  %169 = icmp ult i8 %168, -10
  br i1 %169, label %170, label %174, !prof !15

170:                                              ; preds = %167
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %171 = load i32, ptr %10, align 4
  %172 = and i32 %171, -2130706433
  %173 = or disjoint i32 %172, 234881024
  store i32 %173, ptr %10, align 4
  br label %.thread

174:                                              ; preds = %167
  %175 = zext nneg i8 %.01299 to i16
  %176 = add nsw i16 %175, -48
  store i16 %176, ptr %47, align 8, !tbaa !22
  br label %.thread1671

177:                                              ; preds = %.backedge
  %.not1612 = icmp eq i8 %.01299, 46
  br i1 %.not1612, label %.thread1671, label %178, !prof !16

178:                                              ; preds = %177
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %179 = load i32, ptr %10, align 4
  %180 = and i32 %179, -2130706433
  %181 = or disjoint i32 %180, 234881024
  store i32 %181, ptr %10, align 4
  br label %.thread

182:                                              ; preds = %.backedge
  %183 = add i8 %.01299, -58
  %184 = icmp ult i8 %183, -10
  br i1 %184, label %185, label %189, !prof !15

185:                                              ; preds = %182
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %186 = load i32, ptr %10, align 4
  %187 = and i32 %186, -2130706433
  %188 = or disjoint i32 %187, 234881024
  store i32 %188, ptr %10, align 4
  br label %.thread

189:                                              ; preds = %182
  %190 = zext nneg i8 %.01299 to i16
  %191 = add nsw i16 %190, -48
  store i16 %191, ptr %46, align 2, !tbaa !23
  br label %.thread1671

192:                                              ; preds = %.backedge
  %.not1611 = icmp eq i8 %.01299, 32
  br i1 %.not1611, label %.thread1671, label %193, !prof !16

193:                                              ; preds = %192
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %194 = load i32, ptr %10, align 4
  %195 = and i32 %194, -2130706433
  %196 = or disjoint i32 %195, 234881024
  store i32 %196, ptr %10, align 4
  br label %.thread

197:                                              ; preds = %.backedge
  %198 = add i8 %.01299, -48
  %or.cond9 = icmp ult i8 %198, 10
  br i1 %or.cond9, label %205, label %199

199:                                              ; preds = %197
  %200 = icmp eq i8 %.01299, 32
  br i1 %200, label %.thread1671, label %201

201:                                              ; preds = %199
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %202 = load i32, ptr %10, align 4
  %203 = and i32 %202, -2130706433
  %204 = or disjoint i32 %203, 251658240
  store i32 %204, ptr %10, align 4
  br label %.thread

205:                                              ; preds = %197
  %206 = load i32, ptr %10, align 4
  %207 = and i8 %.01299, 15
  %208 = zext nneg i8 %207 to i32
  %209 = and i32 %206, -65536
  %210 = or disjoint i32 %209, %208
  store i32 %210, ptr %10, align 4
  br label %.thread1671

211:                                              ; preds = %.backedge
  %212 = add i8 %.01299, -48
  %or.cond12 = icmp ult i8 %212, 10
  br i1 %or.cond12, label %218, label %213

213:                                              ; preds = %211
  switch i8 %.01299, label %214 [
    i8 32, label %.thread1671
    i8 13, label %.backedge.backedge
    i8 10, label %.backedge.backedge
  ]

214:                                              ; preds = %213
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %215 = load i32, ptr %10, align 4
  %216 = and i32 %215, -2130706433
  %217 = or disjoint i32 %216, 251658240
  store i32 %217, ptr %10, align 4
  br label %.thread

218:                                              ; preds = %211
  %219 = zext nneg i8 %.01299 to i32
  %220 = load i32, ptr %10, align 4
  %221 = mul i32 %220, 10
  %222 = and i32 %220, -65536
  %223 = add nuw nsw i32 %219, 65488
  %224 = add i32 %223, %221
  %225 = and i32 %224, 65535
  %226 = or disjoint i32 %225, %222
  store i32 %226, ptr %10, align 4
  %227 = icmp ugt i32 %225, 999
  br i1 %227, label %228, label %.thread1671, !prof !15

228:                                              ; preds = %218
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %229 = and i32 %226, -2130706433
  %230 = or disjoint i32 %229, 251658240
  store i32 %230, ptr %10, align 4
  br label %.thread

231:                                              ; preds = %.backedge
  %.not1610 = icmp eq ptr %.21351, null
  %spec.select1627 = select i1 %.not1610, ptr %.11308, ptr %.21351
  %232 = load i32, ptr %0, align 8
  %233 = and i32 %232, -520093697
  store i32 %233, ptr %0, align 8
  switch i8 %.01299, label %.thread1671 [
    i8 13, label %.backedge.backedge
    i8 10, label %.backedge.backedge
  ]

234:                                              ; preds = %.backedge
  switch i8 %.01299, label %.thread1671 [
    i8 13, label %235
    i8 10, label %264
  ]

235:                                              ; preds = %234
  %236 = load i32, ptr %10, align 4
  %237 = and i32 %236, 2130706432
  %238 = icmp eq i32 %237, 0
  br i1 %238, label %240, label %239

239:                                              ; preds = %235
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 908, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

240:                                              ; preds = %235
  %.not1606 = icmp eq ptr %.21351, null
  br i1 %.not1606, label %.thread1671, label %241

241:                                              ; preds = %240
  %242 = load ptr, ptr %49, align 8, !tbaa !24
  %.not1607 = icmp eq ptr %242, null
  br i1 %.not1607, label %.thread1671, label %243, !prof !15

243:                                              ; preds = %241
  %244 = load i32, ptr %0, align 8
  %245 = and i32 %244, -130049
  %246 = or disjoint i32 %245, 17408
  store i32 %246, ptr %0, align 8
  %247 = load ptr, ptr %49, align 8, !tbaa !24
  %248 = ptrtoint ptr %.11308 to i64
  %249 = ptrtoint ptr %.21351 to i64
  %250 = sub i64 %248, %249
  %251 = tail call i32 %247(ptr noundef nonnull %0, ptr noundef nonnull %.21351, i64 noundef %250) #3
  %.not1608 = icmp eq i32 %251, 0
  %.pre4606 = load i32, ptr %10, align 4
  br i1 %.not1608, label %255, label %252, !prof !16

252:                                              ; preds = %243
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %253 = and i32 %.pre4606, -2130706433
  %254 = or disjoint i32 %253, 134217728
  store i32 %254, ptr %10, align 4
  br label %255

255:                                              ; preds = %252, %243
  %256 = phi i32 [ %254, %252 ], [ %.pre4606, %243 ]
  %257 = load i32, ptr %0, align 8
  %258 = lshr i32 %257, 10
  %259 = and i32 %258, 127
  %260 = and i32 %256, 2130706432
  %.not1609 = icmp eq i32 %260, 0
  br i1 %.not1609, label %.thread1671, label %261, !prof !16

261:                                              ; preds = %255
  %262 = ptrtoint ptr %2 to i64
  %reass.sub3569 = sub i64 %248, %262
  %263 = add i64 %reass.sub3569, 1
  br label %.thread1710

264:                                              ; preds = %234
  %265 = load i32, ptr %10, align 4
  %266 = and i32 %265, 2130706432
  %267 = icmp eq i32 %266, 0
  br i1 %267, label %269, label %268

268:                                              ; preds = %264
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 914, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

269:                                              ; preds = %264
  %.not1602 = icmp eq ptr %.21351, null
  br i1 %.not1602, label %.thread1671, label %270

270:                                              ; preds = %269
  %271 = load ptr, ptr %49, align 8, !tbaa !24
  %.not1603 = icmp eq ptr %271, null
  br i1 %.not1603, label %.thread1671, label %272, !prof !15

272:                                              ; preds = %270
  %273 = load i32, ptr %0, align 8
  %274 = and i32 %273, -130049
  %275 = or disjoint i32 %274, 45056
  store i32 %275, ptr %0, align 8
  %276 = load ptr, ptr %49, align 8, !tbaa !24
  %277 = ptrtoint ptr %.11308 to i64
  %278 = ptrtoint ptr %.21351 to i64
  %279 = sub i64 %277, %278
  %280 = tail call i32 %276(ptr noundef nonnull %0, ptr noundef nonnull %.21351, i64 noundef %279) #3
  %.not1604 = icmp eq i32 %280, 0
  %.pre4605 = load i32, ptr %10, align 4
  br i1 %.not1604, label %284, label %281, !prof !16

281:                                              ; preds = %272
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %282 = and i32 %.pre4605, -2130706433
  %283 = or disjoint i32 %282, 134217728
  store i32 %283, ptr %10, align 4
  br label %284

284:                                              ; preds = %281, %272
  %285 = phi i32 [ %283, %281 ], [ %.pre4605, %272 ]
  %286 = load i32, ptr %0, align 8
  %287 = lshr i32 %286, 10
  %288 = and i32 %287, 127
  %289 = and i32 %285, 2130706432
  %.not1605 = icmp eq i32 %289, 0
  br i1 %.not1605, label %.thread1671, label %290, !prof !16

290:                                              ; preds = %284
  %291 = ptrtoint ptr %2 to i64
  %reass.sub3568 = sub i64 %277, %291
  %292 = add i64 %reass.sub3568, 1
  br label %.thread1710

293:                                              ; preds = %.backedge
  %.not1601 = icmp eq i8 %.01299, 10
  br i1 %.not1601, label %.thread1671, label %294

294:                                              ; preds = %293
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %295 = load i32, ptr %10, align 4
  %296 = and i32 %295, -2130706433
  %297 = or disjoint i32 %296, 503316480
  store i32 %297, ptr %10, align 4
  br label %.thread

298:                                              ; preds = %.backedge
  switch i8 %.01299, label %299 [
    i8 13, label %.thread1671
    i8 10, label %.thread1671
  ]

299:                                              ; preds = %298
  %300 = load i32, ptr %0, align 8
  %301 = and i32 %300, -1610613757
  store i32 %301, ptr %0, align 8
  store i64 -1, ptr %36, align 8, !tbaa !19
  %302 = or i8 %.01299, 32
  %303 = add i8 %302, -123
  %304 = icmp ult i8 %303, -26
  br i1 %304, label %305, label %309, !prof !15

305:                                              ; preds = %299
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %306 = load i32, ptr %10, align 4
  %307 = and i32 %306, -2130706433
  %308 = or disjoint i32 %307, 268435456
  store i32 %308, ptr %10, align 4
  br label %.thread

309:                                              ; preds = %299
  %310 = load i32, ptr %10, align 4
  %311 = and i32 %310, -16711681
  store i32 %311, ptr %10, align 4
  %312 = and i32 %300, -2130707453
  %313 = or disjoint i32 %312, 16777216
  store i32 %313, ptr %0, align 8
  switch i8 %.01299, label %327 [
    i8 65, label %.sink.split
    i8 66, label %314
    i8 67, label %315
    i8 68, label %331
    i8 71, label %316
    i8 72, label %317
    i8 76, label %318
    i8 77, label %319
    i8 78, label %320
    i8 79, label %321
    i8 80, label %322
    i8 82, label %323
    i8 83, label %324
    i8 84, label %325
    i8 85, label %326
  ]

314:                                              ; preds = %309
  br label %.sink.split

315:                                              ; preds = %309
  br label %.sink.split

316:                                              ; preds = %309
  br label %.sink.split

317:                                              ; preds = %309
  br label %.sink.split

318:                                              ; preds = %309
  br label %.sink.split

319:                                              ; preds = %309
  br label %.sink.split

320:                                              ; preds = %309
  br label %.sink.split

321:                                              ; preds = %309
  br label %.sink.split

322:                                              ; preds = %309
  br label %.sink.split

323:                                              ; preds = %309
  br label %.sink.split

324:                                              ; preds = %309
  br label %.sink.split

325:                                              ; preds = %309
  br label %.sink.split

326:                                              ; preds = %309
  br label %.sink.split

327:                                              ; preds = %309
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %328 = and i32 %310, -2147418113
  %329 = or disjoint i32 %328, 268435456
  store i32 %329, ptr %10, align 4
  br label %.thread

.sink.split:                                      ; preds = %309, %314, %315, %316, %317, %318, %319, %320, %321, %322, %323, %324, %325, %326
  %.sink5650 = phi i32 [ 983040, %326 ], [ 458752, %325 ], [ 1703936, %324 ], [ 1310720, %323 ], [ 196608, %322 ], [ 393216, %321 ], [ 1638400, %320 ], [ 655360, %319 ], [ 589824, %318 ], [ 131072, %317 ], [ 65536, %316 ], [ 327680, %315 ], [ 1048576, %314 ], [ 1245184, %309 ]
  %330 = or disjoint i32 %311, %.sink5650
  store i32 %330, ptr %10, align 4
  br label %331

331:                                              ; preds = %.sink.split, %309
  %332 = phi i32 [ %311, %309 ], [ %330, %.sink.split ]
  %333 = and i32 %332, 2130706432
  %334 = icmp eq i32 %333, 0
  br i1 %334, label %336, label %335

335:                                              ; preds = %331
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 964, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

336:                                              ; preds = %331
  %337 = load ptr, ptr %1, align 8, !tbaa !20
  %.not1598 = icmp eq ptr %337, null
  br i1 %.not1598, label %.thread1671, label %338, !prof !15

338:                                              ; preds = %336
  %339 = and i32 %313, -2114060285
  %340 = or disjoint i32 %339, 19456
  store i32 %340, ptr %0, align 8
  %341 = load ptr, ptr %1, align 8, !tbaa !20
  %342 = tail call i32 %341(ptr noundef nonnull %0) #3
  %.not1599 = icmp eq i32 %342, 0
  %.pre4604 = load i32, ptr %10, align 4
  br i1 %.not1599, label %346, label %343, !prof !16

343:                                              ; preds = %338
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %344 = and i32 %.pre4604, -2130706433
  %345 = or disjoint i32 %344, 16777216
  store i32 %345, ptr %10, align 4
  br label %346

346:                                              ; preds = %343, %338
  %347 = phi i32 [ %345, %343 ], [ %.pre4604, %338 ]
  %348 = load i32, ptr %0, align 8
  %349 = lshr i32 %348, 10
  %350 = and i32 %349, 127
  %351 = and i32 %347, 2130706432
  %.not1600 = icmp eq i32 %351, 0
  br i1 %.not1600, label %.thread1671, label %352, !prof !16

352:                                              ; preds = %346
  %353 = ptrtoint ptr %.11308 to i64
  %354 = ptrtoint ptr %2 to i64
  %reass.sub3567 = sub i64 %353, %354
  %355 = add i64 %reass.sub3567, 1
  br label %.thread1710

356:                                              ; preds = %.backedge
  %357 = zext i8 %.01299 to i32
  %358 = icmp eq i8 %.01299, 0
  br i1 %358, label %359, label %363, !prof !15

359:                                              ; preds = %356
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %360 = load i32, ptr %10, align 4
  %361 = and i32 %360, -2130706433
  %362 = or disjoint i32 %361, 268435456
  store i32 %362, ptr %10, align 4
  br label %.thread

363:                                              ; preds = %356
  %364 = load i32, ptr %10, align 4
  %365 = lshr i32 %364, 16
  %366 = and i32 %365, 255
  %367 = zext nneg i32 %366 to i64
  %368 = getelementptr inbounds [34 x ptr], ptr @method_strings, i64 0, i64 %367
  %369 = load ptr, ptr %368, align 8, !tbaa !25
  %370 = icmp eq i8 %.01299, 32
  %.pre4603 = load i32, ptr %0, align 8
  %371 = lshr i32 %.pre4603, 24
  %372 = and i32 %371, 31
  %373 = zext nneg i32 %372 to i64
  br i1 %370, label %374, label %._crit_edge4618

374:                                              ; preds = %363
  %375 = getelementptr inbounds i8, ptr %369, i64 %373
  %376 = load i8, ptr %375, align 1, !tbaa !17
  %377 = icmp eq i8 %376, 0
  br i1 %377, label %415, label %._crit_edge4618

._crit_edge4618:                                  ; preds = %363, %374
  %378 = getelementptr inbounds i8, ptr %369, i64 %373
  %379 = load i8, ptr %378, align 1, !tbaa !17
  %380 = icmp eq i8 %.01299, %379
  br i1 %380, label %415, label %381

381:                                              ; preds = %._crit_edge4618
  %382 = add i8 %.01299, -65
  %or.cond21 = icmp ult i8 %382, 26
  %383 = icmp eq i8 %.01299, 45
  %or.cond24 = or i1 %383, %or.cond21
  br i1 %or.cond24, label %384, label %410

384:                                              ; preds = %381
  %385 = and i32 %364, 16711680
  %386 = shl nuw nsw i32 %372, 8
  %387 = or disjoint i32 %386, %385
  %388 = or disjoint i32 %387, %357
  switch i32 %388, label %407 [
    i32 196949, label %.sink.split5651
    i32 196929, label %389
    i32 196946, label %390
    i32 262738, label %391
    i32 328008, label %392
    i32 328272, label %393
    i32 655695, label %394
    i32 655685, label %395
    i32 655661, label %396
    i32 655937, label %397
    i32 656193, label %398
    i32 1704261, label %399
    i32 1704271, label %400
    i32 1311298, label %401
    i32 787536, label %402
    i32 590153, label %403
    i32 983635, label %404
    i32 983618, label %405
    i32 983881, label %406
  ]

389:                                              ; preds = %384
  br label %.sink.split5651

390:                                              ; preds = %384
  br label %.sink.split5651

391:                                              ; preds = %384
  br label %.sink.split5651

392:                                              ; preds = %384
  br label %.sink.split5651

393:                                              ; preds = %384
  br label %.sink.split5651

394:                                              ; preds = %384
  br label %.sink.split5651

395:                                              ; preds = %384
  br label %.sink.split5651

396:                                              ; preds = %384
  br label %.sink.split5651

397:                                              ; preds = %384
  br label %.sink.split5651

398:                                              ; preds = %384
  br label %.sink.split5651

399:                                              ; preds = %384
  br label %.sink.split5651

400:                                              ; preds = %384
  br label %.sink.split5651

401:                                              ; preds = %384
  br label %.sink.split5651

402:                                              ; preds = %384
  br label %.sink.split5651

403:                                              ; preds = %384
  br label %.sink.split5651

404:                                              ; preds = %384
  br label %.sink.split5651

405:                                              ; preds = %384
  br label %.sink.split5651

406:                                              ; preds = %384
  br label %.sink.split5651

407:                                              ; preds = %384
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %408 = and i32 %364, -2130706433
  %409 = or disjoint i32 %408, 268435456
  store i32 %409, ptr %10, align 4
  br label %.thread

410:                                              ; preds = %381
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %411 = and i32 %364, -2130706433
  %412 = or disjoint i32 %411, 268435456
  store i32 %412, ptr %10, align 4
  br label %.thread

.sink.split5651:                                  ; preds = %384, %389, %390, %391, %392, %393, %394, %395, %396, %397, %398, %399, %400, %401, %402, %403, %404, %405, %406
  %.sink5654 = phi i32 [ 2097152, %406 ], [ 1179648, %405 ], [ 1769472, %404 ], [ 2031616, %403 ], [ 851968, %402 ], [ 1114112, %401 ], [ 2162688, %400 ], [ 917504, %399 ], [ 1966080, %398 ], [ 1376256, %397 ], [ 1572864, %396 ], [ 1507328, %395 ], [ 720896, %394 ], [ 524288, %393 ], [ 1441792, %392 ], [ 1900544, %391 ], [ 786432, %390 ], [ 1835008, %389 ], [ 262144, %384 ]
  %413 = and i32 %364, -16711681
  %414 = or disjoint i32 %413, %.sink5654
  store i32 %414, ptr %10, align 4
  br label %415

415:                                              ; preds = %.sink.split5651, %._crit_edge4618, %374
  %.41374 = phi i32 [ 19, %._crit_edge4618 ], [ 20, %374 ], [ 19, %.sink.split5651 ]
  %416 = add i32 %.pre4603, 16777216
  %417 = and i32 %416, 520093696
  %418 = and i32 %.pre4603, -520093697
  %419 = or disjoint i32 %417, %418
  store i32 %419, ptr %0, align 8
  br label %.thread1671

420:                                              ; preds = %.backedge
  %421 = icmp eq i8 %.01299, 32
  br i1 %421, label %.thread1671, label %422

422:                                              ; preds = %420
  %.not1597 = icmp eq ptr %.113383535, null
  %spec.select1629 = select i1 %.not1597, ptr %.11308, ptr %.113383535
  %423 = load i32, ptr %10, align 4
  %424 = and i32 %423, 16711680
  %425 = icmp eq i32 %424, 327680
  %.61376 = select i1 %425, i32 24, i32 20
  %426 = tail call i32 @parse_url_char(i32 noundef %.61376, i8 noundef signext %.01299)
  %427 = icmp eq i32 %426, 1
  br i1 %427, label %428, label %.thread1671, !prof !15

428:                                              ; preds = %422
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %429 = load i32, ptr %10, align 4
  %430 = and i32 %429, -2130706433
  %431 = or disjoint i32 %430, 285212672
  store i32 %431, ptr %10, align 4
  br label %.thread

432:                                              ; preds = %.backedge, %.backedge, %.backedge, %.backedge
  switch i8 %.01299, label %437 [
    i8 32, label %433
    i8 13, label %433
    i8 10, label %433
  ]

433:                                              ; preds = %432, %432, %432
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %434 = load i32, ptr %10, align 4
  %435 = and i32 %434, -2130706433
  %436 = or disjoint i32 %435, 285212672
  store i32 %436, ptr %10, align 4
  br label %.thread

437:                                              ; preds = %432
  %438 = tail call i32 @parse_url_char(i32 noundef %.11371, i8 noundef signext %.01299)
  %439 = icmp eq i32 %438, 1
  br i1 %439, label %440, label %.thread1671, !prof !15

440:                                              ; preds = %437
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %441 = load i32, ptr %10, align 4
  %442 = and i32 %441, -2130706433
  %443 = or disjoint i32 %442, 285212672
  store i32 %443, ptr %10, align 4
  br label %.thread

444:                                              ; preds = %.backedge, %.backedge, %.backedge, %.backedge, %.backedge, %.backedge, %.backedge
  switch i8 %.01299, label %506 [
    i8 32, label %445
    i8 13, label %474
    i8 10, label %474
  ]

445:                                              ; preds = %444
  %446 = load i32, ptr %10, align 4
  %447 = and i32 %446, 2130706432
  %448 = icmp eq i32 %447, 0
  br i1 %448, label %450, label %449

449:                                              ; preds = %445
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1074, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

450:                                              ; preds = %445
  %.not1593 = icmp eq ptr %.113383535, null
  br i1 %.not1593, label %.thread1671, label %451

451:                                              ; preds = %450
  %452 = load ptr, ptr %48, align 8, !tbaa !26
  %.not1594 = icmp eq ptr %452, null
  br i1 %.not1594, label %.thread1671, label %453, !prof !15

453:                                              ; preds = %451
  %454 = load i32, ptr %0, align 8
  %455 = and i32 %454, -130049
  %456 = or disjoint i32 %455, 32768
  store i32 %456, ptr %0, align 8
  %457 = load ptr, ptr %48, align 8, !tbaa !26
  %458 = ptrtoint ptr %.11308 to i64
  %459 = ptrtoint ptr %.113383535 to i64
  %460 = sub i64 %458, %459
  %461 = tail call i32 %457(ptr noundef nonnull %0, ptr noundef nonnull %.113383535, i64 noundef %460) #3
  %.not1595 = icmp eq i32 %461, 0
  %.pre4602 = load i32, ptr %10, align 4
  br i1 %.not1595, label %465, label %462, !prof !16

462:                                              ; preds = %453
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %463 = and i32 %.pre4602, -2130706433
  %464 = or disjoint i32 %463, 33554432
  store i32 %464, ptr %10, align 4
  br label %465

465:                                              ; preds = %462, %453
  %466 = phi i32 [ %464, %462 ], [ %.pre4602, %453 ]
  %467 = load i32, ptr %0, align 8
  %468 = lshr i32 %467, 10
  %469 = and i32 %468, 127
  %470 = and i32 %466, 2130706432
  %.not1596 = icmp eq i32 %470, 0
  br i1 %.not1596, label %.thread1671, label %471, !prof !16

471:                                              ; preds = %465
  %472 = ptrtoint ptr %2 to i64
  %reass.sub3566 = sub i64 %458, %472
  %473 = add i64 %reass.sub3566, 1
  br label %.thread1710

474:                                              ; preds = %444, %444
  store i16 0, ptr %47, align 8, !tbaa !22
  store i16 9, ptr %46, align 2, !tbaa !23
  %475 = icmp eq i8 %.01299, 13
  %476 = select i1 %475, i32 43, i32 44
  %477 = load i32, ptr %10, align 4
  %478 = and i32 %477, 2130706432
  %479 = icmp eq i32 %478, 0
  br i1 %479, label %481, label %480

480:                                              ; preds = %474
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1083, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

481:                                              ; preds = %474
  %.not1589 = icmp eq ptr %.113383535, null
  br i1 %.not1589, label %.thread1671, label %482

482:                                              ; preds = %481
  %483 = load ptr, ptr %48, align 8, !tbaa !26
  %.not1590 = icmp eq ptr %483, null
  br i1 %.not1590, label %.thread1671, label %484, !prof !15

484:                                              ; preds = %482
  %485 = load i32, ptr %0, align 8
  %486 = shl nuw nsw i32 %476, 10
  %487 = and i32 %485, -130049
  %488 = or disjoint i32 %487, %486
  store i32 %488, ptr %0, align 8
  %489 = load ptr, ptr %48, align 8, !tbaa !26
  %490 = ptrtoint ptr %.11308 to i64
  %491 = ptrtoint ptr %.113383535 to i64
  %492 = sub i64 %490, %491
  %493 = tail call i32 %489(ptr noundef nonnull %0, ptr noundef nonnull %.113383535, i64 noundef %492) #3
  %.not1591 = icmp eq i32 %493, 0
  %.pre4601 = load i32, ptr %10, align 4
  br i1 %.not1591, label %497, label %494, !prof !16

494:                                              ; preds = %484
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %495 = and i32 %.pre4601, -2130706433
  %496 = or disjoint i32 %495, 33554432
  store i32 %496, ptr %10, align 4
  br label %497

497:                                              ; preds = %494, %484
  %498 = phi i32 [ %496, %494 ], [ %.pre4601, %484 ]
  %499 = load i32, ptr %0, align 8
  %500 = lshr i32 %499, 10
  %501 = and i32 %500, 127
  %502 = and i32 %498, 2130706432
  %.not1592 = icmp eq i32 %502, 0
  br i1 %.not1592, label %.thread1671, label %503, !prof !16

503:                                              ; preds = %497
  %504 = ptrtoint ptr %2 to i64
  %reass.sub3565 = sub i64 %490, %504
  %505 = add i64 %reass.sub3565, 1
  br label %.thread1710

506:                                              ; preds = %444
  %507 = tail call i32 @parse_url_char(i32 noundef %.11371, i8 noundef signext %.01299)
  %508 = icmp eq i32 %507, 1
  br i1 %508, label %509, label %.thread1671, !prof !15

509:                                              ; preds = %506
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %510 = load i32, ptr %10, align 4
  %511 = and i32 %510, -2130706433
  %512 = or disjoint i32 %511, 285212672
  store i32 %512, ptr %10, align 4
  br label %.thread

513:                                              ; preds = %.backedge
  switch i8 %.01299, label %._crit_edge4599 [
    i8 32, label %.thread1671
    i8 72, label %514
    i8 73, label %515
  ]

._crit_edge4599:                                  ; preds = %513
  %.pre4600 = load i32, ptr %10, align 4
  br label %split

514:                                              ; preds = %513
  br label %.thread1671

515:                                              ; preds = %513
  %516 = load i32, ptr %10, align 4
  %517 = and i32 %516, 16711680
  %518 = icmp eq i32 %517, 2162688
  br i1 %518, label %.thread1671, label %split

split:                                            ; preds = %515, %._crit_edge4599
  %519 = phi i32 [ %.pre4600, %._crit_edge4599 ], [ %516, %515 ]
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %520 = and i32 %519, -2130706433
  %521 = or disjoint i32 %520, 469762048
  store i32 %521, ptr %10, align 4
  br label %.thread

522:                                              ; preds = %.backedge
  %.not1588 = icmp eq i8 %.01299, 84
  br i1 %.not1588, label %.thread1671, label %523

523:                                              ; preds = %522
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %524 = load i32, ptr %10, align 4
  %525 = and i32 %524, -2130706433
  %526 = or disjoint i32 %525, 503316480
  store i32 %526, ptr %10, align 4
  br label %.thread

527:                                              ; preds = %.backedge
  %.not1587 = icmp eq i8 %.01299, 84
  br i1 %.not1587, label %.thread1671, label %528

528:                                              ; preds = %527
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %529 = load i32, ptr %10, align 4
  %530 = and i32 %529, -2130706433
  %531 = or disjoint i32 %530, 503316480
  store i32 %531, ptr %10, align 4
  br label %.thread

532:                                              ; preds = %.backedge
  %.not1586 = icmp eq i8 %.01299, 80
  br i1 %.not1586, label %.thread1671, label %533

533:                                              ; preds = %532
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %534 = load i32, ptr %10, align 4
  %535 = and i32 %534, -2130706433
  %536 = or disjoint i32 %535, 503316480
  store i32 %536, ptr %10, align 4
  br label %.thread

537:                                              ; preds = %.backedge
  %.not1585 = icmp eq i8 %.01299, 67
  br i1 %.not1585, label %.thread1671, label %538

538:                                              ; preds = %537
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %539 = load i32, ptr %10, align 4
  %540 = and i32 %539, -2130706433
  %541 = or disjoint i32 %540, 503316480
  store i32 %541, ptr %10, align 4
  br label %.thread

542:                                              ; preds = %.backedge
  %.not1584 = icmp eq i8 %.01299, 69
  br i1 %.not1584, label %.thread1671, label %543

543:                                              ; preds = %542
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %544 = load i32, ptr %10, align 4
  %545 = and i32 %544, -2130706433
  %546 = or disjoint i32 %545, 503316480
  store i32 %546, ptr %10, align 4
  br label %.thread

547:                                              ; preds = %.backedge
  %.not1583 = icmp eq i8 %.01299, 47
  br i1 %.not1583, label %.thread1671, label %548

548:                                              ; preds = %547
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %549 = load i32, ptr %10, align 4
  %550 = and i32 %549, -2130706433
  %551 = or disjoint i32 %550, 503316480
  store i32 %551, ptr %10, align 4
  br label %.thread

552:                                              ; preds = %.backedge
  %553 = add i8 %.01299, -58
  %554 = icmp ult i8 %553, -10
  br i1 %554, label %555, label %559, !prof !15

555:                                              ; preds = %552
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %556 = load i32, ptr %10, align 4
  %557 = and i32 %556, -2130706433
  %558 = or disjoint i32 %557, 234881024
  store i32 %558, ptr %10, align 4
  br label %.thread

559:                                              ; preds = %552
  %560 = zext nneg i8 %.01299 to i16
  %561 = add nsw i16 %560, -48
  store i16 %561, ptr %47, align 8, !tbaa !22
  br label %.thread1671

562:                                              ; preds = %.backedge
  %.not1582 = icmp eq i8 %.01299, 46
  br i1 %.not1582, label %.thread1671, label %563, !prof !16

563:                                              ; preds = %562
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %564 = load i32, ptr %10, align 4
  %565 = and i32 %564, -2130706433
  %566 = or disjoint i32 %565, 234881024
  store i32 %566, ptr %10, align 4
  br label %.thread

567:                                              ; preds = %.backedge
  %568 = add i8 %.01299, -58
  %569 = icmp ult i8 %568, -10
  br i1 %569, label %570, label %574, !prof !15

570:                                              ; preds = %567
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %571 = load i32, ptr %10, align 4
  %572 = and i32 %571, -2130706433
  %573 = or disjoint i32 %572, 234881024
  store i32 %573, ptr %10, align 4
  br label %.thread

574:                                              ; preds = %567
  %575 = zext nneg i8 %.01299 to i16
  %576 = add nsw i16 %575, -48
  store i16 %576, ptr %46, align 2, !tbaa !23
  br label %.thread1671

577:                                              ; preds = %.backedge
  switch i8 %.01299, label %579 [
    i8 13, label %.thread1671
    i8 10, label %578
  ]

578:                                              ; preds = %577
  br label %.thread1671

579:                                              ; preds = %577
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %580 = load i32, ptr %10, align 4
  %581 = and i32 %580, -2130706433
  %582 = or disjoint i32 %581, 234881024
  store i32 %582, ptr %10, align 4
  br label %.thread

583:                                              ; preds = %.backedge
  %.not1581 = icmp eq i8 %.01299, 10
  br i1 %.not1581, label %.thread1671, label %584, !prof !16

584:                                              ; preds = %583
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %585 = load i32, ptr %10, align 4
  %586 = and i32 %585, -2130706433
  %587 = or disjoint i32 %586, 385875968
  store i32 %587, ptr %10, align 4
  br label %.thread

588:                                              ; preds = %.backedge
  switch i8 %.01299, label %589 [
    i8 13, label %.thread1671
    i8 10, label %.backedge.backedge
    i8 32, label %.thread1658
  ]

589:                                              ; preds = %588
  %590 = zext i8 %.01299 to i64
  %591 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %590
  %592 = load i8, ptr %591, align 1, !tbaa !17
  %.not1579 = icmp eq i8 %592, 0
  br i1 %.not1579, label %.thread1658, label %596, !prof !27

.thread1658:                                      ; preds = %589, %588
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %593 = load i32, ptr %10, align 4
  %594 = and i32 %593, -2130706433
  %595 = or disjoint i32 %594, 402653184
  store i32 %595, ptr %10, align 4
  br label %.thread

596:                                              ; preds = %589
  %.not1580 = icmp eq ptr %.113223538, null
  %spec.select1630 = select i1 %.not1580, ptr %.11308, ptr %.113223538
  %597 = load i32, ptr %0, align 8
  %598 = and i32 %597, -520093697
  store i32 %598, ptr %0, align 8
  %599 = and i32 %597, -536739841
  switch i8 %592, label %608 [
    i8 99, label %600
    i8 112, label %602
    i8 116, label %604
    i8 117, label %606
  ]

600:                                              ; preds = %596
  %601 = or disjoint i32 %599, 131072
  store i32 %601, ptr %0, align 8
  br label %.thread1671

602:                                              ; preds = %596
  %603 = or disjoint i32 %599, 655360
  store i32 %603, ptr %0, align 8
  br label %.thread1671

604:                                              ; preds = %596
  %605 = or disjoint i32 %599, 917504
  store i32 %605, ptr %0, align 8
  br label %.thread1671

606:                                              ; preds = %596
  %607 = or disjoint i32 %599, 1048576
  store i32 %607, ptr %0, align 8
  br label %.thread1671

608:                                              ; preds = %596
  store i32 %599, ptr %0, align 8
  br label %.thread1671

.lr.ph3528:                                       ; preds = %.preheader, %.critedge
  %.213093527 = phi ptr [ %762, %.critedge ], [ %.11308, %.preheader ]
  %609 = load i8, ptr %.213093527, align 1, !tbaa !17
  %610 = icmp eq i8 %609, 32
  br i1 %610, label %.thread1668, label %611

611:                                              ; preds = %.lr.ph3528
  %612 = zext i8 %609 to i64
  %613 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %612
  %614 = load i8, ptr %613, align 1, !tbaa !17
  %.not1567 = icmp eq i8 %614, 0
  br i1 %.not1567, label %775, label %615

615:                                              ; preds = %611
  %616 = load i32, ptr %0, align 8
  %617 = lshr i32 %616, 17
  %618 = and i32 %617, 127
  switch i32 %618, label %761 [
    i32 0, label %619
    i32 1, label %636
    i32 2, label %644
    i32 3, label %652
    i32 4, label %662
    i32 5, label %681
    i32 6, label %700
    i32 7, label %719
    i32 8, label %740
    i32 9, label %759
    i32 10, label %759
    i32 13, label %759
    i32 14, label %759
  ]

619:                                              ; preds = %615
  %620 = ptrtoint ptr %.213093527 to i64
  %621 = sub i64 %37, %620
  %622 = load i32, ptr @max_header_size, align 4
  %623 = zext i32 %622 to i64
  %624 = tail call i64 @llvm.umin.i64(i64 %621, i64 %623)
  %625 = getelementptr inbounds i8, ptr %.213093527, i64 %624
  br label %626

626:                                              ; preds = %632, %619
  %.31310 = phi ptr [ %.213093527, %619 ], [ %627, %632 ]
  %627 = getelementptr inbounds i8, ptr %.31310, i64 1
  %628 = icmp ult ptr %627, %625
  br i1 %628, label %629, label %.critedge

629:                                              ; preds = %626
  %630 = load i8, ptr %627, align 1, !tbaa !17
  %631 = icmp eq i8 %630, 32
  br i1 %631, label %.critedge, label %632

632:                                              ; preds = %629
  %633 = zext i8 %630 to i64
  %634 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %633
  %635 = load i8, ptr %634, align 1, !tbaa !17
  %.not1578 = icmp eq i8 %635, 0
  br i1 %.not1578, label %.critedge, label %626, !llvm.loop !28

636:                                              ; preds = %615
  %637 = add i32 %616, 16777216
  %638 = and i32 %637, 520093696
  %639 = and i32 %616, -536739841
  %640 = icmp eq i8 %614, 111
  %641 = select i1 %640, i32 262144, i32 0
  %642 = or disjoint i32 %639, %641
  %643 = or disjoint i32 %642, %638
  br label %.critedge.sink.split

644:                                              ; preds = %615
  %645 = add i32 %616, 16777216
  %646 = and i32 %645, 520093696
  %647 = and i32 %616, -536739841
  %648 = icmp eq i8 %614, 110
  %649 = select i1 %648, i32 393216, i32 0
  %650 = or disjoint i32 %647, %649
  %651 = or disjoint i32 %650, %646
  br label %.critedge.sink.split

652:                                              ; preds = %615
  %653 = add i32 %616, 16777216
  %654 = and i32 %653, 520093696
  %655 = and i32 %616, -520093697
  %656 = or disjoint i32 %654, %655
  store i32 %656, ptr %0, align 8
  %657 = and i32 %656, -16646145
  switch i8 %614, label %.critedge.sink.split [
    i8 110, label %658
    i8 116, label %660
  ]

658:                                              ; preds = %652
  %659 = or disjoint i32 %657, 524288
  br label %.critedge.sink.split

660:                                              ; preds = %652
  %661 = or disjoint i32 %657, 786432
  br label %.critedge.sink.split

662:                                              ; preds = %615
  %663 = add i32 %616, 16777216
  %664 = and i32 %663, 520093696
  %665 = and i32 %616, -520093697
  %666 = or disjoint i32 %664, %665
  store i32 %666, ptr %0, align 8
  %667 = lshr i32 %663, 24
  %668 = and i32 %667, 31
  %669 = icmp ugt i32 %668, 10
  br i1 %669, label %674, label %670

670:                                              ; preds = %662
  %671 = zext nneg i32 %668 to i64
  %672 = getelementptr inbounds [11 x i8], ptr @.str.2, i64 0, i64 %671
  %673 = load i8, ptr %672, align 1, !tbaa !17
  %.not1577 = icmp eq i8 %614, %673
  br i1 %.not1577, label %676, label %674

674:                                              ; preds = %670, %662
  %675 = and i32 %666, -16646145
  br label %.critedge.sink.split

676:                                              ; preds = %670
  %677 = icmp eq i32 %668, 9
  br i1 %677, label %678, label %.critedge

678:                                              ; preds = %676
  %679 = and i32 %666, -16646145
  %680 = or disjoint i32 %679, 1179648
  br label %.critedge.sink.split

681:                                              ; preds = %615
  %682 = add i32 %616, 16777216
  %683 = and i32 %682, 520093696
  %684 = and i32 %616, -520093697
  %685 = or disjoint i32 %683, %684
  store i32 %685, ptr %0, align 8
  %686 = lshr i32 %682, 24
  %687 = and i32 %686, 31
  %688 = icmp ugt i32 %687, 16
  br i1 %688, label %693, label %689

689:                                              ; preds = %681
  %690 = zext nneg i32 %687 to i64
  %691 = getelementptr inbounds [17 x i8], ptr @.str.3, i64 0, i64 %690
  %692 = load i8, ptr %691, align 1, !tbaa !17
  %.not1576 = icmp eq i8 %614, %692
  br i1 %.not1576, label %695, label %693

693:                                              ; preds = %689, %681
  %694 = and i32 %685, -16646145
  br label %.critedge.sink.split

695:                                              ; preds = %689
  %696 = icmp eq i32 %687, 15
  br i1 %696, label %697, label %.critedge

697:                                              ; preds = %695
  %698 = and i32 %685, -16646145
  %699 = or disjoint i32 %698, 1179648
  br label %.critedge.sink.split

700:                                              ; preds = %615
  %701 = add i32 %616, 16777216
  %702 = and i32 %701, 520093696
  %703 = and i32 %616, -520093697
  %704 = or disjoint i32 %702, %703
  store i32 %704, ptr %0, align 8
  %705 = lshr i32 %701, 24
  %706 = and i32 %705, 31
  %707 = icmp ugt i32 %706, 14
  br i1 %707, label %712, label %708

708:                                              ; preds = %700
  %709 = zext nneg i32 %706 to i64
  %710 = getelementptr inbounds [15 x i8], ptr @.str.4, i64 0, i64 %709
  %711 = load i8, ptr %710, align 1, !tbaa !17
  %.not1575 = icmp eq i8 %614, %711
  br i1 %.not1575, label %714, label %712

712:                                              ; preds = %708, %700
  %713 = and i32 %704, -16646145
  br label %.critedge.sink.split

714:                                              ; preds = %708
  %715 = icmp eq i32 %706, 13
  br i1 %715, label %716, label %.critedge

716:                                              ; preds = %714
  %717 = and i32 %704, -16646145
  %718 = or disjoint i32 %717, 1310720
  br label %.critedge.sink.split

719:                                              ; preds = %615
  %720 = add i32 %616, 16777216
  %721 = and i32 %720, 520093696
  %722 = and i32 %616, -520093697
  %723 = or disjoint i32 %721, %722
  store i32 %723, ptr %0, align 8
  %724 = lshr i32 %720, 24
  %725 = and i32 %724, 31
  %726 = icmp ugt i32 %725, 17
  br i1 %726, label %731, label %727

727:                                              ; preds = %719
  %728 = zext nneg i32 %725 to i64
  %729 = getelementptr inbounds [18 x i8], ptr @.str.5, i64 0, i64 %728
  %730 = load i8, ptr %729, align 1, !tbaa !17
  %.not1574 = icmp eq i8 %614, %730
  br i1 %.not1574, label %733, label %731

731:                                              ; preds = %727, %719
  %732 = and i32 %723, -16646145
  br label %.critedge.sink.split

733:                                              ; preds = %727
  %734 = icmp eq i32 %725, 16
  br i1 %734, label %735, label %.critedge

735:                                              ; preds = %733
  %736 = and i32 %723, -1627258881
  %737 = and i32 %616, 1073741824
  %738 = or disjoint i32 %737, %736
  %739 = or disjoint i32 %738, 538574848
  br label %.critedge.sink.split

740:                                              ; preds = %615
  %741 = add i32 %616, 16777216
  %742 = and i32 %741, 520093696
  %743 = and i32 %616, -520093697
  %744 = or disjoint i32 %742, %743
  store i32 %744, ptr %0, align 8
  %745 = lshr i32 %741, 24
  %746 = and i32 %745, 31
  %747 = icmp ugt i32 %746, 7
  br i1 %747, label %752, label %748

748:                                              ; preds = %740
  %749 = zext nneg i32 %746 to i64
  %750 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %749
  %751 = load i8, ptr %750, align 1, !tbaa !17
  %.not1573 = icmp eq i8 %614, %751
  br i1 %.not1573, label %754, label %752

752:                                              ; preds = %748, %740
  %753 = and i32 %744, -16646145
  br label %.critedge.sink.split

754:                                              ; preds = %748
  %755 = icmp eq i32 %746, 6
  br i1 %755, label %756, label %.critedge

756:                                              ; preds = %754
  %757 = and i32 %744, -16646145
  %758 = or disjoint i32 %757, 1835008
  br label %.critedge.sink.split

759:                                              ; preds = %615, %615, %615, %615
  %760 = and i32 %616, -16646145
  br label %.critedge.sink.split

761:                                              ; preds = %615
  tail call void @__assert_fail(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 1368, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

.critedge.sink.split:                             ; preds = %652, %759, %752, %756, %731, %735, %712, %716, %693, %697, %674, %678, %658, %660, %644, %636
  %.sink5655 = phi i32 [ %643, %636 ], [ %651, %644 ], [ %661, %660 ], [ %659, %658 ], [ %680, %678 ], [ %675, %674 ], [ %699, %697 ], [ %694, %693 ], [ %718, %716 ], [ %713, %712 ], [ %739, %735 ], [ %732, %731 ], [ %758, %756 ], [ %753, %752 ], [ %760, %759 ], [ %657, %652 ]
  store i32 %.sink5655, ptr %0, align 8
  br label %.critedge

.critedge:                                        ; preds = %629, %632, %626, %.critedge.sink.split, %676, %695, %714, %733, %754
  %.41311 = phi ptr [ %.213093527, %754 ], [ %.213093527, %733 ], [ %.213093527, %714 ], [ %.213093527, %695 ], [ %.213093527, %676 ], [ %.213093527, %.critedge.sink.split ], [ %.31310, %626 ], [ %.31310, %632 ], [ %.31310, %629 ]
  %762 = getelementptr inbounds i8, ptr %.41311, i64 1
  %.not1566 = icmp eq ptr %762, %35
  br i1 %.not1566, label %._crit_edge, label %.lr.ph3528, !llvm.loop !30

._crit_edge:                                      ; preds = %.critedge, %.preheader
  %.21309.lcssa = phi ptr [ %.11308, %.preheader ], [ %762, %.critedge ]
  %763 = getelementptr inbounds i8, ptr %.21309.lcssa, i64 -1
  %764 = ptrtoint ptr %763 to i64
  %765 = ptrtoint ptr %.11308 to i64
  %766 = sub i64 %764, %765
  %767 = trunc i64 %766 to i32
  %768 = add i32 %.21364, %767
  %769 = load i32, ptr @max_header_size, align 4, !tbaa !18
  %770 = icmp ugt i32 %768, %769
  br i1 %770, label %771, label %.thread1671, !prof !15

771:                                              ; preds = %._crit_edge
  store i32 %768, ptr %8, align 4, !tbaa !5
  %772 = load i32, ptr %10, align 4
  %773 = and i32 %772, -2130706433
  %774 = or disjoint i32 %773, 201326592
  store i32 %774, ptr %10, align 4
  br label %.thread

775:                                              ; preds = %611
  %776 = ptrtoint ptr %.213093527 to i64
  %777 = ptrtoint ptr %.11308 to i64
  %778 = sub i64 %776, %777
  %779 = trunc i64 %778 to i32
  %780 = add i32 %.21364, %779
  %781 = load i32, ptr @max_header_size, align 4, !tbaa !18
  %782 = icmp ugt i32 %780, %781
  br i1 %782, label %.loopexit1782, label %794, !prof !15

.thread1668:                                      ; preds = %.lr.ph3528
  %783 = ptrtoint ptr %.213093527 to i64
  %784 = ptrtoint ptr %.11308 to i64
  %785 = sub i64 %783, %784
  %786 = trunc i64 %785 to i32
  %787 = add i32 %.21364, %786
  %788 = load i32, ptr @max_header_size, align 4, !tbaa !18
  %789 = icmp ugt i32 %787, %788
  br i1 %789, label %.loopexit1782, label %.thread1669, !prof !15

.loopexit1782:                                    ; preds = %775, %.thread1668
  %790 = phi i32 [ %787, %.thread1668 ], [ %780, %775 ]
  store i32 %790, ptr %8, align 4, !tbaa !5
  %791 = load i32, ptr %10, align 4
  %792 = and i32 %791, -2130706433
  %793 = or disjoint i32 %792, 201326592
  store i32 %793, ptr %10, align 4
  br label %.thread

794:                                              ; preds = %775
  %795 = icmp eq i8 %609, 58
  br i1 %795, label %796, label %.thread1669

796:                                              ; preds = %794
  %797 = load i32, ptr %10, align 4
  %798 = and i32 %797, 2130706432
  %799 = icmp eq i32 %798, 0
  br i1 %799, label %801, label %800

800:                                              ; preds = %796
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1383, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

801:                                              ; preds = %796
  %.not1568 = icmp eq ptr %.113223538, null
  br i1 %.not1568, label %.thread1671, label %802

802:                                              ; preds = %801
  %803 = load ptr, ptr %45, align 8, !tbaa !31
  %.not1569 = icmp eq ptr %803, null
  br i1 %.not1569, label %.thread1671, label %804, !prof !15

804:                                              ; preds = %802
  %805 = load i32, ptr %0, align 8
  %806 = and i32 %805, -130049
  %807 = or disjoint i32 %806, 47104
  store i32 %807, ptr %0, align 8
  %808 = load ptr, ptr %45, align 8, !tbaa !31
  %809 = ptrtoint ptr %.113223538 to i64
  %810 = sub i64 %776, %809
  %811 = tail call i32 %808(ptr noundef nonnull %0, ptr noundef nonnull %.113223538, i64 noundef %810) #3
  %.not1570 = icmp eq i32 %811, 0
  %.pre4598 = load i32, ptr %10, align 4
  br i1 %.not1570, label %815, label %812, !prof !16

812:                                              ; preds = %804
  store i32 %780, ptr %8, align 4, !tbaa !5
  %813 = and i32 %.pre4598, -2130706433
  %814 = or disjoint i32 %813, 50331648
  store i32 %814, ptr %10, align 4
  br label %815

815:                                              ; preds = %812, %804
  %816 = phi i32 [ %814, %812 ], [ %.pre4598, %804 ]
  %817 = load i32, ptr %0, align 8
  %818 = lshr i32 %817, 10
  %819 = and i32 %818, 127
  %820 = and i32 %816, 2130706432
  %.not1571 = icmp eq i32 %820, 0
  br i1 %.not1571, label %.thread1671, label %825, !prof !16

.thread1669:                                      ; preds = %794, %.thread1668
  %821 = phi i32 [ %787, %.thread1668 ], [ %780, %794 ]
  store i32 %821, ptr %8, align 4, !tbaa !5
  %822 = load i32, ptr %10, align 4
  %823 = and i32 %822, -2130706433
  %824 = or disjoint i32 %823, 402653184
  store i32 %824, ptr %10, align 4
  br label %.thread

825:                                              ; preds = %815
  %826 = ptrtoint ptr %2 to i64
  %reass.sub3564 = sub i64 %776, %826
  %827 = add i64 %reass.sub3564, 1
  br label %.thread1710

828:                                              ; preds = %.backedge
  switch i8 %.01299, label %.loopexit1781 [
    i8 32, label %.thread1671
    i8 9, label %.thread1671
    i8 13, label %829
    i8 10, label %830
  ]

829:                                              ; preds = %828
  br label %.thread1671

830:                                              ; preds = %828
  br label %.thread1671

.loopexit1781:                                    ; preds = %.backedge, %828
  %.not1563 = icmp eq ptr %.21329, null
  %spec.select1631 = select i1 %.not1563, ptr %.11308, ptr %.21329
  %831 = load i32, ptr %0, align 8
  %832 = and i32 %831, -520093697
  store i32 %832, ptr %0, align 8
  %833 = or i8 %.01299, 32
  %834 = lshr i32 %831, 17
  %835 = and i32 %834, 127
  switch i32 %835, label %873 [
    i32 14, label %836
    i32 13, label %839
    i32 15, label %.thread1671
    i32 10, label %846
    i32 12, label %.thread1671
    i32 9, label %863
    i32 18, label %.thread1671
  ]

836:                                              ; preds = %.loopexit1781
  %837 = and i32 %831, -536739969
  %838 = or disjoint i32 %837, 128
  store i32 %838, ptr %0, align 8
  br label %.thread1671

839:                                              ; preds = %.loopexit1781
  %840 = icmp eq i8 %833, 99
  %841 = and i32 %831, -536739841
  br i1 %840, label %842, label %844

842:                                              ; preds = %839
  %843 = or disjoint i32 %841, 2097152
  store i32 %843, ptr %0, align 8
  br label %.thread1671

844:                                              ; preds = %839
  %845 = or disjoint i32 %841, 2228224
  store i32 %845, ptr %0, align 8
  br label %.thread1671

846:                                              ; preds = %.loopexit1781
  %847 = add i8 %.01299, -58
  %848 = icmp ult i8 %847, -10
  br i1 %848, label %849, label %853, !prof !15

849:                                              ; preds = %846
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %850 = load i32, ptr %10, align 4
  %851 = and i32 %850, -2130706433
  %852 = or disjoint i32 %851, 419430400
  store i32 %852, ptr %10, align 4
  br label %.thread

853:                                              ; preds = %846
  %854 = and i32 %831, 512
  %.not1564 = icmp eq i32 %854, 0
  br i1 %.not1564, label %859, label %855

855:                                              ; preds = %853
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %856 = load i32, ptr %10, align 4
  %857 = and i32 %856, -2130706433
  %858 = or disjoint i32 %857, 436207616
  store i32 %858, ptr %10, align 4
  br label %.thread

859:                                              ; preds = %853
  %narrow1565 = add nsw i8 %.01299, -48
  %860 = zext nneg i8 %narrow1565 to i64
  store i64 %860, ptr %36, align 8, !tbaa !19
  %861 = and i32 %831, -536740353
  %862 = or disjoint i32 %861, 1442304
  store i32 %862, ptr %0, align 8
  br label %.thread1671

863:                                              ; preds = %.loopexit1781
  %864 = and i32 %831, -536739841
  switch i8 %833, label %871 [
    i8 107, label %865
    i8 99, label %867
    i8 117, label %869
  ]

865:                                              ; preds = %863
  %866 = or disjoint i32 %864, 2490368
  store i32 %866, ptr %0, align 8
  br label %.thread1671

867:                                              ; preds = %863
  %868 = or disjoint i32 %864, 2621440
  store i32 %868, ptr %0, align 8
  br label %.thread1671

869:                                              ; preds = %863
  %870 = or disjoint i32 %864, 2752512
  store i32 %870, ptr %0, align 8
  br label %.thread1671

871:                                              ; preds = %863
  %872 = or disjoint i32 %864, 2883584
  store i32 %872, ptr %0, align 8
  br label %.thread1671

873:                                              ; preds = %.loopexit1781
  %874 = and i32 %831, -536739841
  store i32 %874, ptr %0, align 8
  br label %.thread1671

875:                                              ; preds = %.backedge
  %876 = load i32, ptr %0, align 8
  %877 = lshr i32 %876, 17
  %878 = and i32 %877, 127
  %.not15453504 = icmp eq ptr %.11308, %35
  br i1 %.not15453504, label %.loopexit, label %.lr.ph3508

.lr.ph3508:                                       ; preds = %875, %.thread1694
  %879 = phi i32 [ %1106, %.thread1694 ], [ %876, %875 ]
  %.613133506 = phi ptr [ %1107, %.thread1694 ], [ %.11308, %875 ]
  %.013173505 = phi i32 [ %.31320, %.thread1694 ], [ %878, %875 ]
  %880 = load i8, ptr %.613133506, align 1, !tbaa !17
  switch i8 %880, label %956 [
    i8 13, label %881
    i8 10, label %913
  ]

881:                                              ; preds = %.lr.ph3508
  %882 = shl nuw nsw i32 %.013173505, 17
  %883 = and i32 %882, 16646144
  %884 = and i32 %879, -16646145
  %885 = or disjoint i32 %884, %883
  store i32 %885, ptr %0, align 8
  %886 = load i32, ptr %10, align 4
  %887 = and i32 %886, 2130706432
  %888 = icmp eq i32 %887, 0
  br i1 %888, label %890, label %889

889:                                              ; preds = %881
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1489, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

890:                                              ; preds = %881
  %.not1559 = icmp eq ptr %.21329, null
  br i1 %.not1559, label %.loopexit, label %891

891:                                              ; preds = %890
  %892 = load ptr, ptr %41, align 8, !tbaa !32
  %.not1560 = icmp eq ptr %892, null
  br i1 %.not1560, label %.loopexit, label %893, !prof !15

893:                                              ; preds = %891
  %894 = and i32 %885, -130049
  %895 = or disjoint i32 %894, 53248
  store i32 %895, ptr %0, align 8
  %896 = load ptr, ptr %41, align 8, !tbaa !32
  %897 = ptrtoint ptr %.613133506 to i64
  %898 = ptrtoint ptr %.21329 to i64
  %899 = sub i64 %897, %898
  %900 = tail call i32 %896(ptr noundef nonnull %0, ptr noundef nonnull %.21329, i64 noundef %899) #3
  %.not1561 = icmp eq i32 %900, 0
  %.pre4597 = load i32, ptr %10, align 4
  br i1 %.not1561, label %904, label %901, !prof !16

901:                                              ; preds = %893
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %902 = and i32 %.pre4597, -2130706433
  %903 = or disjoint i32 %902, 67108864
  store i32 %903, ptr %10, align 4
  br label %904

904:                                              ; preds = %901, %893
  %905 = phi i32 [ %903, %901 ], [ %.pre4597, %893 ]
  %906 = load i32, ptr %0, align 8
  %907 = lshr i32 %906, 10
  %908 = and i32 %907, 127
  %909 = and i32 %905, 2130706432
  %.not1562 = icmp eq i32 %909, 0
  br i1 %.not1562, label %.loopexit, label %910, !prof !16

910:                                              ; preds = %904
  %911 = ptrtoint ptr %2 to i64
  %reass.sub3563 = sub i64 %897, %911
  %912 = add i64 %reass.sub3563, 1
  br label %.thread1710

913:                                              ; preds = %.lr.ph3508
  %914 = ptrtoint ptr %.613133506 to i64
  %915 = ptrtoint ptr %.11308 to i64
  %916 = sub i64 %914, %915
  %917 = trunc i64 %916 to i32
  %918 = add i32 %.21364, %917
  %919 = load i32, ptr @max_header_size, align 4, !tbaa !18
  %920 = icmp ugt i32 %918, %919
  br i1 %920, label %921, label %925, !prof !15

921:                                              ; preds = %913
  store i32 %918, ptr %8, align 4, !tbaa !5
  %922 = load i32, ptr %10, align 4
  %923 = and i32 %922, -2130706433
  %924 = or disjoint i32 %923, 201326592
  store i32 %924, ptr %10, align 4
  br label %.thread

925:                                              ; preds = %913
  %926 = shl nuw nsw i32 %.013173505, 17
  %927 = and i32 %926, 16646144
  %928 = and i32 %879, -16646145
  %929 = or disjoint i32 %928, %927
  store i32 %929, ptr %0, align 8
  %930 = load i32, ptr %10, align 4
  %931 = and i32 %930, 2130706432
  %932 = icmp eq i32 %931, 0
  br i1 %932, label %934, label %933

933:                                              ; preds = %925
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1497, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

934:                                              ; preds = %925
  %.not1555 = icmp eq ptr %.21329, null
  br i1 %.not1555, label %.backedge.backedge, label %935

935:                                              ; preds = %934
  %936 = load ptr, ptr %41, align 8, !tbaa !32
  %.not1556 = icmp eq ptr %936, null
  br i1 %.not1556, label %.backedge.backedge, label %937, !prof !15

937:                                              ; preds = %935
  %938 = and i32 %929, -130049
  %939 = or disjoint i32 %938, 53248
  store i32 %939, ptr %0, align 8
  %940 = load ptr, ptr %41, align 8, !tbaa !32
  %941 = ptrtoint ptr %.21329 to i64
  %942 = sub i64 %914, %941
  %943 = tail call i32 %940(ptr noundef nonnull %0, ptr noundef nonnull %.21329, i64 noundef %942) #3
  %.not1557 = icmp eq i32 %943, 0
  %.pre4596 = load i32, ptr %10, align 4
  br i1 %.not1557, label %947, label %944, !prof !16

944:                                              ; preds = %937
  store i32 %918, ptr %8, align 4, !tbaa !5
  %945 = and i32 %.pre4596, -2130706433
  %946 = or disjoint i32 %945, 67108864
  store i32 %946, ptr %10, align 4
  br label %947

947:                                              ; preds = %944, %937
  %948 = phi i32 [ %946, %944 ], [ %.pre4596, %937 ]
  %949 = load i32, ptr %0, align 8
  %950 = lshr i32 %949, 10
  %951 = and i32 %950, 127
  %952 = and i32 %948, 2130706432
  %.not1558 = icmp eq i32 %952, 0
  br i1 %.not1558, label %.backedge.backedge, label %953, !prof !16

953:                                              ; preds = %947
  %954 = ptrtoint ptr %2 to i64
  %955 = sub i64 %914, %954
  br label %.thread1710

956:                                              ; preds = %.lr.ph3508
  %957 = icmp eq i8 %880, 9
  %or.cond36 = or i1 %.not1529, %957
  br i1 %or.cond36, label %965, label %958

958:                                              ; preds = %956
  %959 = icmp ugt i8 %880, 31
  %960 = icmp ne i8 %880, 127
  %or.cond39 = and i1 %959, %960
  br i1 %or.cond39, label %965, label %961

961:                                              ; preds = %958
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %962 = load i32, ptr %10, align 4
  %963 = and i32 %962, -2130706433
  %964 = or disjoint i32 %963, 402653184
  store i32 %964, ptr %10, align 4
  br label %.thread

965:                                              ; preds = %958, %956
  %966 = or i8 %880, 32
  switch i32 %.013173505, label %.thread1694 [
    i32 0, label %967
    i32 9, label %989
    i32 13, label %989
    i32 10, label %990
    i32 11, label %991
    i32 12, label %1015
    i32 15, label %1023
    i32 16, label %1029
    i32 17, label %1043
    i32 18, label %1047
    i32 19, label %1055
    i32 20, label %1069
    i32 21, label %1083
    i32 22, label %1097
    i32 23, label %1101
    i32 24, label %1102
    i32 25, label %1102
    i32 26, label %1102
  ]

967:                                              ; preds = %965
  %968 = ptrtoint ptr %.613133506 to i64
  %969 = sub i64 %37, %968
  %970 = load i32, ptr @max_header_size, align 4
  %971 = zext i32 %970 to i64
  %972 = tail call i64 @llvm.umin.i64(i64 %969, i64 %971)
  %973 = getelementptr i8, ptr %.613133506, i64 %972
  %.not15543501 = icmp eq i64 %972, 0
  br i1 %.not15543501, label %.thread1688, label %.lr.ph

.lr.ph:                                           ; preds = %967
  br i1 %.not1529, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.lr.ph, %975
  %.713143502.us = phi ptr [ %976, %975 ], [ %.613133506, %.lr.ph ]
  %974 = load i8, ptr %.713143502.us, align 1, !tbaa !17
  switch i8 %974, label %975 [
    i8 13, label %.split.us
    i8 10, label %.split.us
  ]

975:                                              ; preds = %.lr.ph.split.us
  %976 = getelementptr inbounds i8, ptr %.713143502.us, i64 1
  %.not1554.us = icmp eq ptr %976, %973
  br i1 %.not1554.us, label %.thread1688, label %.lr.ph.split.us, !llvm.loop !33

.lr.ph.split:                                     ; preds = %.lr.ph, %982
  %.713143502 = phi ptr [ %983, %982 ], [ %.613133506, %.lr.ph ]
  %977 = load i8, ptr %.713143502, align 1, !tbaa !17
  switch i8 %977, label %979 [
    i8 13, label %.split.us
    i8 10, label %.split.us
    i8 9, label %982
  ]

.split.us:                                        ; preds = %.lr.ph.split, %.lr.ph.split, %.lr.ph.split.us, %.lr.ph.split.us
  %.us-phi = phi ptr [ %.713143502.us, %.lr.ph.split.us ], [ %.713143502.us, %.lr.ph.split.us ], [ %.713143502, %.lr.ph.split ], [ %.713143502, %.lr.ph.split ]
  %978 = getelementptr inbounds i8, ptr %.us-phi, i64 -1
  br label %.thread1688

979:                                              ; preds = %.lr.ph.split
  %980 = icmp ugt i8 %977, 31
  %981 = icmp ne i8 %977, 127
  %or.cond54 = and i1 %980, %981
  br i1 %or.cond54, label %982, label %985

982:                                              ; preds = %.lr.ph.split, %979
  %983 = getelementptr inbounds i8, ptr %.713143502, i64 1
  %.not1554 = icmp eq ptr %983, %973
  br i1 %.not1554, label %.thread1688, label %.lr.ph.split, !llvm.loop !33

.thread1688:                                      ; preds = %982, %975, %967, %.split.us
  %.81315 = phi ptr [ %978, %.split.us ], [ %.613133506, %967 ], [ %973, %975 ], [ %973, %982 ]
  %984 = icmp eq ptr %.81315, %35
  %spec.select1632.idx = sext i1 %984 to i64
  %spec.select1632 = getelementptr inbounds i8, ptr %.81315, i64 %spec.select1632.idx
  br label %.thread1694

985:                                              ; preds = %979
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %986 = load i32, ptr %10, align 4
  %987 = and i32 %986, -2130706433
  %988 = or disjoint i32 %987, 402653184
  store i32 %988, ptr %10, align 4
  br label %.thread

989:                                              ; preds = %965, %965
  tail call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 1532, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

990:                                              ; preds = %965
  %cond1653 = icmp eq i8 %880, 32
  br i1 %cond1653, label %.thread1694, label %993

991:                                              ; preds = %965
  %992 = icmp eq i8 %880, 32
  br i1 %992, label %.thread1694, label %993

993:                                              ; preds = %990, %991
  %994 = add i8 %880, -58
  %995 = icmp ult i8 %994, -10
  br i1 %995, label %996, label %1002, !prof !15

996:                                              ; preds = %993
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %997 = load i32, ptr %10, align 4
  %998 = and i32 %997, -2130706433
  %999 = or disjoint i32 %998, 419430400
  store i32 %999, ptr %10, align 4
  %1000 = and i32 %879, -16646145
  %1001 = or disjoint i32 %1000, 1441792
  store i32 %1001, ptr %0, align 8
  br label %.thread

1002:                                             ; preds = %993
  %1003 = load i64, ptr %36, align 8, !tbaa !19
  %1004 = icmp ugt i64 %1003, 1844674407370955160
  br i1 %1004, label %1005, label %1011, !prof !15

1005:                                             ; preds = %1002
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1006 = load i32, ptr %10, align 4
  %1007 = and i32 %1006, -2130706433
  %1008 = or disjoint i32 %1007, 419430400
  store i32 %1008, ptr %10, align 4
  %1009 = and i32 %879, -16646145
  %1010 = or disjoint i32 %1009, 1441792
  store i32 %1010, ptr %0, align 8
  br label %.thread

1011:                                             ; preds = %1002
  %1012 = mul nuw i64 %1003, 10
  %narrow = add nsw i8 %880, -48
  %1013 = zext nneg i8 %narrow to i64
  %1014 = add nuw i64 %1012, %1013
  store i64 %1014, ptr %36, align 8, !tbaa !19
  br label %.thread1694

1015:                                             ; preds = %965
  %1016 = icmp eq i8 %880, 32
  br i1 %1016, label %.thread1694, label %1017

1017:                                             ; preds = %1015
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1018 = load i32, ptr %10, align 4
  %1019 = and i32 %1018, -2130706433
  %1020 = or disjoint i32 %1019, 419430400
  store i32 %1020, ptr %10, align 4
  %1021 = and i32 %879, -16646145
  %1022 = or disjoint i32 %1021, 1572864
  store i32 %1022, ptr %0, align 8
  br label %.thread

1023:                                             ; preds = %965
  switch i8 %966, label %1024 [
    i8 99, label %.thread1694
    i8 32, label %1028
  ]

1024:                                             ; preds = %1023
  %1025 = zext i8 %966 to i64
  %1026 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %1025
  %1027 = load i8, ptr %1026, align 1, !tbaa !17
  %.not1553 = icmp eq i8 %1027, 0
  br i1 %.not1553, label %1028, label %.thread1694

1028:                                             ; preds = %1023, %1024
  %spec.select1633 = phi i32 [ 0, %1024 ], [ 15, %1023 ]
  br label %.thread1694

1029:                                             ; preds = %965
  %1030 = add i32 %879, 16777216
  %1031 = and i32 %1030, 520093696
  %1032 = and i32 %879, -520093697
  %1033 = or disjoint i32 %1031, %1032
  store i32 %1033, ptr %0, align 8
  %1034 = lshr i32 %1030, 24
  %1035 = and i32 %1034, 31
  %1036 = icmp ugt i32 %1035, 7
  br i1 %1036, label %.thread1694, label %1037

1037:                                             ; preds = %1029
  %1038 = zext nneg i32 %1035 to i64
  %1039 = getelementptr inbounds [8 x i8], ptr @.str.9, i64 0, i64 %1038
  %1040 = load i8, ptr %1039, align 1, !tbaa !17
  %.not1552 = icmp eq i8 %966, %1040
  br i1 %.not1552, label %1041, label %.thread1694

1041:                                             ; preds = %1037
  %1042 = icmp eq i32 %1035, 6
  %spec.select1634 = select i1 %1042, i32 23, i32 16
  br label %.thread1694

1043:                                             ; preds = %965
  %1044 = icmp eq i8 %880, 44
  br i1 %1044, label %1045, label %.thread1694

1045:                                             ; preds = %1043
  %1046 = and i32 %879, -520093697
  store i32 %1046, ptr %0, align 8
  br label %.thread1694

1047:                                             ; preds = %965
  switch i8 %966, label %1050 [
    i8 107, label %.thread1694
    i8 99, label %1048
    i8 117, label %1049
    i8 32, label %1054
  ]

1048:                                             ; preds = %1047
  br label %.thread1694

1049:                                             ; preds = %1047
  br label %.thread1694

1050:                                             ; preds = %1047
  %1051 = zext i8 %966 to i64
  %1052 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %1051
  %1053 = load i8, ptr %1052, align 1, !tbaa !17
  %.not1551 = icmp eq i8 %1053, 0
  br i1 %.not1551, label %1054, label %.thread1694

1054:                                             ; preds = %1047, %1050
  %spec.select1635 = phi i32 [ 0, %1050 ], [ 18, %1047 ]
  br label %.thread1694

1055:                                             ; preds = %965
  %1056 = add i32 %879, 16777216
  %1057 = and i32 %1056, 520093696
  %1058 = and i32 %879, -520093697
  %1059 = or disjoint i32 %1057, %1058
  store i32 %1059, ptr %0, align 8
  %1060 = lshr i32 %1056, 24
  %1061 = and i32 %1060, 31
  %1062 = icmp ugt i32 %1061, 10
  br i1 %1062, label %.thread1694, label %1063

1063:                                             ; preds = %1055
  %1064 = zext nneg i32 %1061 to i64
  %1065 = getelementptr inbounds [11 x i8], ptr @.str.10, i64 0, i64 %1064
  %1066 = load i8, ptr %1065, align 1, !tbaa !17
  %.not1550 = icmp eq i8 %966, %1066
  br i1 %.not1550, label %1067, label %.thread1694

1067:                                             ; preds = %1063
  %1068 = icmp eq i32 %1061, 9
  %spec.select1636 = select i1 %1068, i32 24, i32 19
  br label %.thread1694

1069:                                             ; preds = %965
  %1070 = add i32 %879, 16777216
  %1071 = and i32 %1070, 520093696
  %1072 = and i32 %879, -520093697
  %1073 = or disjoint i32 %1071, %1072
  store i32 %1073, ptr %0, align 8
  %1074 = lshr i32 %1070, 24
  %1075 = and i32 %1074, 31
  %1076 = icmp ugt i32 %1075, 5
  br i1 %1076, label %.thread1694, label %1077

1077:                                             ; preds = %1069
  %1078 = zext nneg i32 %1075 to i64
  %1079 = getelementptr inbounds [6 x i8], ptr @.str.11, i64 0, i64 %1078
  %1080 = load i8, ptr %1079, align 1, !tbaa !17
  %.not1549 = icmp eq i8 %966, %1080
  br i1 %.not1549, label %1081, label %.thread1694

1081:                                             ; preds = %1077
  %1082 = icmp eq i32 %1075, 4
  %spec.select1637 = select i1 %1082, i32 25, i32 20
  br label %.thread1694

1083:                                             ; preds = %965
  %1084 = add i32 %879, 16777216
  %1085 = and i32 %1084, 520093696
  %1086 = and i32 %879, -520093697
  %1087 = or disjoint i32 %1085, %1086
  store i32 %1087, ptr %0, align 8
  %1088 = lshr i32 %1084, 24
  %1089 = and i32 %1088, 31
  %1090 = icmp ugt i32 %1089, 7
  br i1 %1090, label %.thread1694, label %1091

1091:                                             ; preds = %1083
  %1092 = zext nneg i32 %1089 to i64
  %1093 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %1092
  %1094 = load i8, ptr %1093, align 1, !tbaa !17
  %.not1548 = icmp eq i8 %966, %1094
  br i1 %.not1548, label %1095, label %.thread1694

1095:                                             ; preds = %1091
  %1096 = icmp eq i32 %1089, 6
  %spec.select1638 = select i1 %1096, i32 26, i32 21
  br label %.thread1694

1097:                                             ; preds = %965
  %1098 = icmp eq i8 %880, 44
  br i1 %1098, label %1099, label %.thread1694

1099:                                             ; preds = %1097
  %1100 = and i32 %879, -520093697
  store i32 %1100, ptr %0, align 8
  br label %.thread1694

1101:                                             ; preds = %965
  %.not1547 = icmp eq i8 %880, 32
  %spec.select1639 = select i1 %.not1547, i32 23, i32 17
  br label %.thread1694

1102:                                             ; preds = %965, %965, %965
  switch i8 %880, label %1105 [
    i8 44, label %switch.lookup
    i8 32, label %.thread1694
  ]

switch.lookup:                                    ; preds = %1102
  %switch.tableidx = add nsw i32 %.013173505, -24
  %1103 = sext i32 %switch.tableidx to i64
  %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table.http_parser_execute, i64 0, i64 %1103
  %switch.load = load i32, ptr %switch.gep, align 4
  %.masked = and i32 %879, -520093697
  %1104 = or i32 %.masked, %switch.load
  store i32 %1104, ptr %0, align 8
  br label %.thread1694

1105:                                             ; preds = %1102
  br label %.thread1694

.thread1694:                                      ; preds = %1047, %1023, %991, %1011, %.thread1688, %1101, %1095, %1081, %1067, %1054, %1041, %1028, %990, %965, %1102, %1083, %1091, %1069, %1077, %1055, %1063, %1050, %1029, %1037, %1024, %1015, %1045, %1043, %1048, %1049, %1099, %1097, %1105, %switch.lookup
  %1106 = phi i32 [ %1104, %switch.lookup ], [ %879, %1105 ], [ %1100, %1099 ], [ %879, %1097 ], [ %879, %1048 ], [ %879, %1049 ], [ %1046, %1045 ], [ %879, %1043 ], [ %879, %1015 ], [ %879, %990 ], [ %879, %1023 ], [ %879, %1024 ], [ %879, %1028 ], [ %1033, %1037 ], [ %1033, %1029 ], [ %1033, %1041 ], [ %879, %1047 ], [ %879, %1050 ], [ %879, %1054 ], [ %1059, %1063 ], [ %1059, %1055 ], [ %1059, %1067 ], [ %1073, %1077 ], [ %1073, %1069 ], [ %1073, %1081 ], [ %1087, %1091 ], [ %1087, %1083 ], [ %1087, %1095 ], [ %879, %1101 ], [ %879, %1102 ], [ %879, %965 ], [ %879, %.thread1688 ], [ %879, %991 ], [ %879, %1011 ]
  %.31320 = phi i32 [ 18, %switch.lookup ], [ 22, %1105 ], [ 18, %1099 ], [ 22, %1097 ], [ 20, %1048 ], [ 21, %1049 ], [ 15, %1045 ], [ 17, %1043 ], [ 12, %1015 ], [ 10, %990 ], [ 16, %1023 ], [ 17, %1024 ], [ %spec.select1633, %1028 ], [ 17, %1037 ], [ 17, %1029 ], [ %spec.select1634, %1041 ], [ 19, %1047 ], [ 22, %1050 ], [ %spec.select1635, %1054 ], [ 22, %1063 ], [ 22, %1055 ], [ %spec.select1636, %1067 ], [ 22, %1077 ], [ 22, %1069 ], [ %spec.select1637, %1081 ], [ 22, %1091 ], [ 22, %1083 ], [ %spec.select1638, %1095 ], [ %spec.select1639, %1101 ], [ %.013173505, %1102 ], [ 0, %965 ], [ 0, %.thread1688 ], [ 12, %991 ], [ 11, %1011 ]
  %.11 = phi ptr [ %.613133506, %switch.lookup ], [ %.613133506, %1105 ], [ %.613133506, %1099 ], [ %.613133506, %1097 ], [ %.613133506, %1048 ], [ %.613133506, %1049 ], [ %.613133506, %1045 ], [ %.613133506, %1043 ], [ %.613133506, %1015 ], [ %.613133506, %990 ], [ %.613133506, %1023 ], [ %.613133506, %1024 ], [ %.613133506, %1028 ], [ %.613133506, %1037 ], [ %.613133506, %1029 ], [ %.613133506, %1041 ], [ %.613133506, %1047 ], [ %.613133506, %1050 ], [ %.613133506, %1054 ], [ %.613133506, %1063 ], [ %.613133506, %1055 ], [ %.613133506, %1067 ], [ %.613133506, %1077 ], [ %.613133506, %1069 ], [ %.613133506, %1081 ], [ %.613133506, %1091 ], [ %.613133506, %1083 ], [ %.613133506, %1095 ], [ %.613133506, %1101 ], [ %.613133506, %1102 ], [ %.613133506, %965 ], [ %spec.select1632, %.thread1688 ], [ %.613133506, %991 ], [ %.613133506, %1011 ]
  %1107 = getelementptr inbounds i8, ptr %.11, i64 1
  %.not1545 = icmp eq ptr %1107, %35
  br i1 %.not1545, label %.loopexit, label %.lr.ph3508, !llvm.loop !34

.loopexit:                                        ; preds = %875, %.thread1694, %891, %904, %890
  %1108 = phi i32 [ %885, %890 ], [ %906, %904 ], [ %885, %891 ], [ %1106, %.thread1694 ], [ %876, %875 ]
  %.013171817 = phi i32 [ %.013173505, %890 ], [ %.013173505, %904 ], [ %.013173505, %891 ], [ %.31320, %.thread1694 ], [ %878, %875 ]
  %.613131805 = phi ptr [ %.613133506, %890 ], [ %.613133506, %904 ], [ %.613133506, %891 ], [ %1107, %.thread1694 ], [ %.11308, %875 ]
  %.not15451795 = phi i64 [ 0, %890 ], [ 0, %904 ], [ 0, %891 ], [ -1, %.thread1694 ], [ -1, %875 ]
  %.17 = phi i32 [ 52, %890 ], [ %908, %904 ], [ 52, %891 ], [ 50, %.thread1694 ], [ 50, %875 ]
  %.51332 = phi ptr [ null, %890 ], [ null, %904 ], [ null, %891 ], [ %.21329, %.thread1694 ], [ %.21329, %875 ]
  %1109 = shl nuw nsw i32 %.013171817, 17
  %1110 = and i32 %1109, 16646144
  %1111 = and i32 %1108, -16646145
  %1112 = or disjoint i32 %1111, %1110
  store i32 %1112, ptr %0, align 8
  %spec.select1640 = getelementptr inbounds i8, ptr %.613131805, i64 %.not15451795
  %1113 = ptrtoint ptr %spec.select1640 to i64
  %1114 = ptrtoint ptr %.11308 to i64
  %1115 = sub i64 %1113, %1114
  %1116 = trunc i64 %1115 to i32
  %1117 = add i32 %.21364, %1116
  %1118 = load i32, ptr @max_header_size, align 4, !tbaa !18
  %1119 = icmp ugt i32 %1117, %1118
  br i1 %1119, label %1120, label %.thread1671, !prof !15

1120:                                             ; preds = %.loopexit
  store i32 %1117, ptr %8, align 4, !tbaa !5
  %1121 = load i32, ptr %10, align 4
  %1122 = and i32 %1121, -2130706433
  %1123 = or disjoint i32 %1122, 201326592
  store i32 %1123, ptr %10, align 4
  br label %.thread

1124:                                             ; preds = %.backedge
  %.not1544 = icmp eq i8 %.01299, 10
  br i1 %.not1544, label %.thread1671, label %1125, !prof !16

1125:                                             ; preds = %1124
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1126 = load i32, ptr %10, align 4
  %1127 = and i32 %1126, -2130706433
  %1128 = or disjoint i32 %1127, 385875968
  store i32 %1128, ptr %10, align 4
  br label %.thread

1129:                                             ; preds = %.backedge
  switch i8 %.01299, label %1137 [
    i8 32, label %1130
    i8 9, label %1130
  ]

1130:                                             ; preds = %1129, %1129
  %1131 = load i32, ptr %0, align 8
  %1132 = and i32 %1131, 16646144
  %1133 = icmp eq i32 %1132, 1441792
  br i1 %1133, label %1134, label %.backedge.backedge

1134:                                             ; preds = %1130
  %1135 = and i32 %1131, -16646145
  %1136 = or disjoint i32 %1135, 1572864
  br label %.backedge.sink.split

1137:                                             ; preds = %1129
  %1138 = load i32, ptr %0, align 8
  %1139 = lshr i32 %1138, 17
  %1140 = and i32 %1139, 127
  switch i32 %1140, label %.backedge.backedge [
    i32 24, label %1141
    i32 25, label %1143
    i32 23, label %1145
    i32 26, label %1147
  ]

1141:                                             ; preds = %1137
  %1142 = or i32 %1138, 8
  br label %.backedge.sink.split

1143:                                             ; preds = %1137
  %1144 = or i32 %1138, 16
  br label %.backedge.sink.split

1145:                                             ; preds = %1137
  %1146 = or i32 %1138, 4
  br label %.backedge.sink.split

1147:                                             ; preds = %1137
  %1148 = or i32 %1138, 32
  br label %.backedge.sink.split

1149:                                             ; preds = %.backedge
  %.not1543 = icmp eq i8 %.01299, 10
  br i1 %.not1543, label %.thread1671, label %1150

1150:                                             ; preds = %1149
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1151 = load i32, ptr %10, align 4
  %1152 = and i32 %1151, -2130706433
  %1153 = or disjoint i32 %1152, 503316480
  store i32 %1153, ptr %10, align 4
  br label %.thread

1154:                                             ; preds = %.backedge
  switch i8 %.01299, label %1155 [
    i8 32, label %.thread1671
    i8 9, label %.thread1671
  ]

1155:                                             ; preds = %1154
  %1156 = load i32, ptr %0, align 8
  %1157 = lshr i32 %1156, 17
  %1158 = and i32 %1157, 127
  switch i32 %1158, label %1167 [
    i32 24, label %.sink.split5657
    i32 25, label %1159
    i32 26, label %1160
    i32 23, label %1161
    i32 10, label %1162
  ]

1159:                                             ; preds = %1155
  br label %.sink.split5657

1160:                                             ; preds = %1155
  br label %.sink.split5657

1161:                                             ; preds = %1155
  br label %.sink.split5657

1162:                                             ; preds = %1155
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1163 = load i32, ptr %10, align 4
  %1164 = and i32 %1163, -2130706433
  %1165 = or disjoint i32 %1164, 419430400
  store i32 %1165, ptr %10, align 4
  br label %.thread

.sink.split5657:                                  ; preds = %1155, %1161, %1160, %1159
  %.sink5659 = phi i32 [ 16, %1159 ], [ 32, %1160 ], [ 4, %1161 ], [ 8, %1155 ]
  %1166 = or i32 %1156, %.sink5659
  store i32 %1166, ptr %0, align 8
  br label %1167

1167:                                             ; preds = %.sink.split5657, %1155
  %1168 = phi i32 [ %1156, %1155 ], [ %1166, %.sink.split5657 ]
  %.not1538 = icmp eq ptr %.21329, null
  %spec.select1641 = select i1 %.not1538, ptr %.11308, ptr %.21329
  %1169 = load i32, ptr %10, align 4
  %1170 = and i32 %1169, 2130706432
  %1171 = icmp eq i32 %1170, 0
  br i1 %1171, label %1173, label %1172

1172:                                             ; preds = %1167
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1788, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1173:                                             ; preds = %1167
  %.not1539 = icmp eq ptr %spec.select1641, null
  br i1 %.not1539, label %.backedge.backedge, label %1174

1174:                                             ; preds = %1173
  %1175 = load ptr, ptr %41, align 8, !tbaa !32
  %.not1540 = icmp eq ptr %1175, null
  br i1 %.not1540, label %.backedge.backedge, label %1176, !prof !15

1176:                                             ; preds = %1174
  %1177 = and i32 %1168, -130049
  %1178 = or disjoint i32 %1177, 45056
  store i32 %1178, ptr %0, align 8
  %1179 = load ptr, ptr %41, align 8, !tbaa !32
  %1180 = ptrtoint ptr %.11308 to i64
  %1181 = ptrtoint ptr %spec.select1641 to i64
  %1182 = sub i64 %1180, %1181
  %1183 = tail call i32 %1179(ptr noundef nonnull %0, ptr noundef nonnull %spec.select1641, i64 noundef %1182) #3
  %.not1541 = icmp eq i32 %1183, 0
  %.pre4595 = load i32, ptr %10, align 4
  br i1 %.not1541, label %1187, label %1184, !prof !16

1184:                                             ; preds = %1176
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1185 = and i32 %.pre4595, -2130706433
  %1186 = or disjoint i32 %1185, 67108864
  store i32 %1186, ptr %10, align 4
  br label %1187

1187:                                             ; preds = %1184, %1176
  %1188 = phi i32 [ %1186, %1184 ], [ %.pre4595, %1176 ]
  %1189 = load i32, ptr %0, align 8
  %1190 = lshr i32 %1189, 10
  %1191 = and i32 %1190, 127
  %1192 = and i32 %1188, 2130706432
  %.not1542 = icmp eq i32 %1192, 0
  br i1 %.not1542, label %.backedge.backedge, label %1193, !prof !16

1193:                                             ; preds = %1187
  %1194 = ptrtoint ptr %2 to i64
  %1195 = sub i64 %1180, %1194
  br label %.thread1710

1196:                                             ; preds = %.backedge
  %.not1525 = icmp eq i8 %.01299, 10
  br i1 %.not1525, label %1201, label %1197

1197:                                             ; preds = %1196
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1198 = load i32, ptr %10, align 4
  %1199 = and i32 %1198, -2130706433
  %1200 = or disjoint i32 %1199, 503316480
  store i32 %1200, ptr %10, align 4
  br label %.thread

1201:                                             ; preds = %1196
  %1202 = load i32, ptr %0, align 8
  %1203 = and i32 %1202, 64
  %.not1526 = icmp eq i32 %1203, 0
  br i1 %.not1526, label %1229, label %1204

1204:                                             ; preds = %1201
  %1205 = load i32, ptr %10, align 4
  %1206 = and i32 %1205, 2130706432
  %1207 = icmp eq i32 %1206, 0
  br i1 %1207, label %1209, label %1208

1208:                                             ; preds = %1204
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1800, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1209:                                             ; preds = %1204
  %1210 = load ptr, ptr %39, align 8, !tbaa !35
  %.not1535 = icmp eq ptr %1210, null
  br i1 %.not1535, label %.backedge.backedge, label %1211, !prof !15

1211:                                             ; preds = %1209
  %1212 = and i32 %1202, -130049
  %1213 = or disjoint i32 %1212, 65536
  store i32 %1213, ptr %0, align 8
  %1214 = load ptr, ptr %39, align 8, !tbaa !35
  %1215 = tail call i32 %1214(ptr noundef nonnull %0) #3
  %.not1536 = icmp eq i32 %1215, 0
  %.pre4594 = load i32, ptr %10, align 4
  br i1 %.not1536, label %1219, label %1216, !prof !16

1216:                                             ; preds = %1211
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1217 = and i32 %.pre4594, -2130706433
  %1218 = or disjoint i32 %1217, 167772160
  store i32 %1218, ptr %10, align 4
  br label %1219

1219:                                             ; preds = %1216, %1211
  %1220 = phi i32 [ %1218, %1216 ], [ %.pre4594, %1211 ]
  %1221 = load i32, ptr %0, align 8
  %1222 = lshr i32 %1221, 10
  %1223 = and i32 %1222, 127
  %1224 = and i32 %1220, 2130706432
  %.not1537 = icmp eq i32 %1224, 0
  br i1 %.not1537, label %.backedge.backedge, label %1225, !prof !16

1225:                                             ; preds = %1219
  %1226 = ptrtoint ptr %.11308 to i64
  %1227 = ptrtoint ptr %2 to i64
  %1228 = sub i64 %1226, %1227
  br label %.thread1710

1229:                                             ; preds = %1201
  %1230 = and i32 %1202, 536871424
  %or.cond.not = icmp eq i32 %1230, 536871424
  br i1 %or.cond.not, label %1231, label %1237

1231:                                             ; preds = %1229
  %1232 = and i32 %1202, 4
  %.not1530 = icmp eq i32 %1232, 0
  %or.cond1642 = and i1 %.not1529, %.not1530
  br i1 %or.cond1642, label %1237, label %1233

1233:                                             ; preds = %1231
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1234 = load i32, ptr %10, align 4
  %1235 = and i32 %1234, -2130706433
  %1236 = or disjoint i32 %1235, 436207616
  store i32 %1236, ptr %10, align 4
  br label %.thread

1237:                                             ; preds = %1231, %1229
  %1238 = and i32 %1202, 160
  %or.cond1643.not = icmp eq i32 %1238, 160
  br i1 %or.cond1643.not, label %.thread1726, label %1248

.thread1726:                                      ; preds = %1237
  %1239 = and i32 %1202, 3
  %1240 = icmp eq i32 %1239, 0
  %1241 = load i32, ptr %10, align 4
  %.fr1761 = freeze i32 %1241
  %1242 = and i32 %.fr1761, 65535
  %1243 = icmp eq i32 %1242, 101
  %1244 = or i1 %1240, %1243
  %1245 = select i1 %1244, i32 -2147483648, i32 0
  %1246 = and i32 %.fr1761, 2147483647
  %1247 = or disjoint i32 %1246, %1245
  br label %1255

1248:                                             ; preds = %1237
  %1249 = load i32, ptr %10, align 4
  %1250 = and i32 %1249, 16711680
  %1251 = icmp eq i32 %1250, 327680
  %1252 = select i1 %1251, i32 -2147483648, i32 0
  %1253 = and i32 %1249, 2147483647
  %1254 = or disjoint i32 %1252, %1253
  br label %1255

1255:                                             ; preds = %1248, %.thread1726
  %storemerge = phi i32 [ %1254, %1248 ], [ %1247, %.thread1726 ]
  store i32 %storemerge, ptr %10, align 4
  %1256 = load ptr, ptr %40, align 8, !tbaa !36
  %.not1533 = icmp eq ptr %1256, null
  br i1 %.not1533, label %1275, label %1257

1257:                                             ; preds = %1255
  %1258 = tail call i32 %1256(ptr noundef nonnull %0) #3
  switch i32 %1258, label %1265 [
    i32 0, label %1275
    i32 2, label %1259
    i32 1, label %1262
  ]

1259:                                             ; preds = %1257
  %1260 = load i32, ptr %10, align 4
  %1261 = or i32 %1260, -2147483648
  store i32 %1261, ptr %10, align 4
  br label %1262

1262:                                             ; preds = %1259, %1257
  %1263 = load i32, ptr %0, align 8
  %1264 = or i32 %1263, 256
  store i32 %1264, ptr %0, align 8
  br label %1275

1265:                                             ; preds = %1257
  %1266 = load i32, ptr %10, align 4
  %1267 = and i32 %1266, -2130706433
  %1268 = or disjoint i32 %1267, 83886080
  store i32 %1268, ptr %10, align 4
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1269 = load i32, ptr %0, align 8
  %1270 = and i32 %1269, -130049
  %1271 = or disjoint i32 %1270, 59392
  store i32 %1271, ptr %0, align 8
  %1272 = ptrtoint ptr %.11308 to i64
  %1273 = ptrtoint ptr %2 to i64
  %1274 = sub i64 %1272, %1273
  br label %.thread1710

1275:                                             ; preds = %1257, %1262, %1255
  %1276 = load i32, ptr %10, align 4
  %1277 = and i32 %1276, 2130706432
  %.not1534 = icmp eq i32 %1277, 0
  br i1 %.not1534, label %.backedge.backedge, label %1278

1278:                                             ; preds = %1275
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1279 = load i32, ptr %0, align 8
  %1280 = and i32 %1279, -130049
  %1281 = or disjoint i32 %1280, 59392
  store i32 %1281, ptr %0, align 8
  %1282 = ptrtoint ptr %.11308 to i64
  %1283 = ptrtoint ptr %2 to i64
  %1284 = sub i64 %1282, %1283
  br label %.thread1710

1285:                                             ; preds = %.backedge
  %.not1500 = icmp eq i8 %.01299, 10
  br i1 %.not1500, label %1286, label %1467

1286:                                             ; preds = %1285
  store i32 0, ptr %8, align 4, !tbaa !5
  %1287 = load i32, ptr %0, align 8
  %1288 = and i32 %1287, 4
  %.not1501 = icmp eq i32 %1288, 0
  br i1 %.not1501, label %1289, label %1292

1289:                                             ; preds = %1286
  %1290 = load i64, ptr %36, align 8, !tbaa !19
  %1291 = add i64 %1290, -1
  %spec.select1644 = icmp ult i64 %1291, -2
  br label %1292

1292:                                             ; preds = %1289, %1286
  %1293 = phi i1 [ true, %1286 ], [ %spec.select1644, %1289 ]
  %1294 = load i32, ptr %10, align 4
  %.not1503 = icmp sgt i32 %1294, -1
  br i1 %.not1503, label %1344, label %1295

1295:                                             ; preds = %1292
  %1296 = and i32 %1294, 16711680
  %1297 = icmp eq i32 %1296, 327680
  br i1 %1297, label %1301, label %1298

1298:                                             ; preds = %1295
  %1299 = and i32 %1287, 256
  %1300 = icmp eq i32 %1299, 0
  %or.cond68 = and i1 %1300, %1293
  br i1 %or.cond68, label %.thread4626, label %1301

1301:                                             ; preds = %1298, %1295
  %1302 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1521 = icmp eq i32 %1302, 0
  br i1 %.not1521, label %1308, label %1303

1303:                                             ; preds = %1301
  %1304 = load i32, ptr %0, align 8
  %1305 = and i32 %1304, 3
  %1306 = icmp eq i32 %1305, 0
  %1307 = select i1 %1306, i32 18, i32 4
  br label %1308

1308:                                             ; preds = %1301, %1303
  %1309 = phi i32 [ %1307, %1303 ], [ 1, %1301 ]
  %1310 = load i32, ptr %10, align 4
  %1311 = and i32 %1310, 2130706432
  %1312 = icmp eq i32 %1311, 0
  br i1 %1312, label %1314, label %1313

1313:                                             ; preds = %1308
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1881, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1314:                                             ; preds = %1308
  %1315 = load ptr, ptr %43, align 8, !tbaa !13
  %.not1522 = icmp eq ptr %1315, null
  %.pre4590 = load i32, ptr %0, align 8
  br i1 %.not1522, label %1335, label %1316, !prof !15

1316:                                             ; preds = %1314
  %1317 = shl nuw nsw i32 %1309, 10
  %1318 = and i32 %.pre4590, -130049
  %1319 = or disjoint i32 %1318, %1317
  store i32 %1319, ptr %0, align 8
  %1320 = load ptr, ptr %43, align 8, !tbaa !13
  %1321 = tail call i32 %1320(ptr noundef nonnull %0) #3
  %.not1523 = icmp eq i32 %1321, 0
  %.pre4589 = load i32, ptr %10, align 4
  br i1 %.not1523, label %1325, label %1322, !prof !16

1322:                                             ; preds = %1316
  store i32 0, ptr %8, align 4, !tbaa !5
  %1323 = and i32 %.pre4589, -2130706433
  %1324 = or disjoint i32 %1323, 117440512
  store i32 %1324, ptr %10, align 4
  br label %1325

1325:                                             ; preds = %1322, %1316
  %1326 = phi i32 [ %1324, %1322 ], [ %.pre4589, %1316 ]
  %1327 = load i32, ptr %0, align 8
  %1328 = lshr i32 %1327, 10
  %1329 = and i32 %1328, 127
  %1330 = and i32 %1326, 2130706432
  %.not1524 = icmp eq i32 %1330, 0
  br i1 %.not1524, label %1335, label %1331, !prof !16

1331:                                             ; preds = %1325
  %1332 = ptrtoint ptr %.11308 to i64
  %1333 = ptrtoint ptr %2 to i64
  %reass.sub3558 = sub i64 %1332, %1333
  %1334 = add i64 %reass.sub3558, 1
  br label %.thread1710

1335:                                             ; preds = %1314, %1325
  %1336 = phi i32 [ %1327, %1325 ], [ %.pre4590, %1314 ]
  %.22 = phi i32 [ %1329, %1325 ], [ %1309, %1314 ]
  store i32 0, ptr %8, align 4, !tbaa !5
  %1337 = shl nuw nsw i32 %.22, 10
  %1338 = and i32 %1337, 130048
  %1339 = and i32 %1336, -130049
  %1340 = or disjoint i32 %1339, %1338
  store i32 %1340, ptr %0, align 8
  %1341 = ptrtoint ptr %.11308 to i64
  %1342 = ptrtoint ptr %2 to i64
  %reass.sub3559 = sub i64 %1341, %1342
  %1343 = add i64 %reass.sub3559, 1
  br label %.thread1710

1344:                                             ; preds = %1292
  %.pre4624 = and i32 %1287, 256
  %.not1504 = icmp eq i32 %.pre4624, 0
  br i1 %.not1504, label %.thread4626, label %1345

1345:                                             ; preds = %1344
  %1346 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1517 = icmp eq i32 %1346, 0
  br i1 %.not1517, label %1352, label %1347

1347:                                             ; preds = %1345
  %1348 = load i32, ptr %0, align 8
  %1349 = and i32 %1348, 3
  %1350 = icmp eq i32 %1349, 0
  %1351 = select i1 %1350, i32 18, i32 4
  br label %1352

1352:                                             ; preds = %1345, %1347
  %1353 = phi i32 [ %1351, %1347 ], [ 1, %1345 ]
  %1354 = load i32, ptr %10, align 4
  %1355 = and i32 %1354, 2130706432
  %1356 = icmp eq i32 %1355, 0
  br i1 %1356, label %1358, label %1357

1357:                                             ; preds = %1352
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1887, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1358:                                             ; preds = %1352
  %1359 = load ptr, ptr %43, align 8, !tbaa !13
  %.not1518 = icmp eq ptr %1359, null
  br i1 %.not1518, label %.thread1671, label %1360, !prof !15

1360:                                             ; preds = %1358
  %1361 = load i32, ptr %0, align 8
  %1362 = shl nuw nsw i32 %1353, 10
  %1363 = and i32 %1361, -130049
  %1364 = or disjoint i32 %1363, %1362
  store i32 %1364, ptr %0, align 8
  %1365 = load ptr, ptr %43, align 8, !tbaa !13
  %1366 = tail call i32 %1365(ptr noundef nonnull %0) #3
  %.not1519 = icmp eq i32 %1366, 0
  %.pre4591 = load i32, ptr %10, align 4
  br i1 %.not1519, label %1370, label %1367, !prof !16

1367:                                             ; preds = %1360
  store i32 0, ptr %8, align 4, !tbaa !5
  %1368 = and i32 %.pre4591, -2130706433
  %1369 = or disjoint i32 %1368, 117440512
  store i32 %1369, ptr %10, align 4
  br label %1370

1370:                                             ; preds = %1367, %1360
  %1371 = phi i32 [ %1369, %1367 ], [ %.pre4591, %1360 ]
  %1372 = load i32, ptr %0, align 8
  %1373 = lshr i32 %1372, 10
  %1374 = and i32 %1373, 127
  %1375 = and i32 %1371, 2130706432
  %.not1520 = icmp eq i32 %1375, 0
  br i1 %.not1520, label %.thread1671, label %1376, !prof !16

1376:                                             ; preds = %1370
  %1377 = ptrtoint ptr %.11308 to i64
  %1378 = ptrtoint ptr %2 to i64
  %reass.sub3560 = sub i64 %1377, %1378
  %1379 = add i64 %reass.sub3560, 1
  br label %.thread1710

.thread4626:                                      ; preds = %1298, %1344
  br i1 %.not1501, label %1380, label %.thread1671

1380:                                             ; preds = %.thread4626
  %1381 = and i32 %1287, 536870912
  %.not1506 = icmp eq i32 %1381, 0
  br i1 %.not1506, label %1393, label %1382

1382:                                             ; preds = %1380
  %1383 = and i32 %1287, 3
  %1384 = icmp ne i32 %1383, 0
  %or.cond70 = or i1 %1384, %.not1529
  br i1 %or.cond70, label %.thread1671, label %1385

1385:                                             ; preds = %1382
  %1386 = and i32 %1294, -2130706433
  %1387 = or disjoint i32 %1386, 553648128
  store i32 %1387, ptr %10, align 4
  store i32 0, ptr %8, align 4, !tbaa !5
  %1388 = and i32 %1287, -130312
  %1389 = or disjoint i32 %1388, 59392
  store i32 %1389, ptr %0, align 8
  %1390 = ptrtoint ptr %.11308 to i64
  %1391 = ptrtoint ptr %2 to i64
  %1392 = sub i64 %1390, %1391
  br label %.thread1710

1393:                                             ; preds = %1380
  %1394 = load i64, ptr %36, align 8, !tbaa !19
  switch i64 %1394, label %.thread1671 [
    i64 0, label %1395
    i64 -1, label %1430
  ]

1395:                                             ; preds = %1393
  %1396 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1513 = icmp eq i32 %1396, 0
  br i1 %.not1513, label %1402, label %1397

1397:                                             ; preds = %1395
  %1398 = load i32, ptr %0, align 8
  %1399 = and i32 %1398, 3
  %1400 = icmp eq i32 %1399, 0
  %1401 = select i1 %1400, i32 18, i32 4
  br label %1402

1402:                                             ; preds = %1395, %1397
  %1403 = phi i32 [ %1401, %1397 ], [ 1, %1395 ]
  %1404 = load i32, ptr %10, align 4
  %1405 = and i32 %1404, 2130706432
  %1406 = icmp eq i32 %1405, 0
  br i1 %1406, label %1408, label %1407

1407:                                             ; preds = %1402
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1918, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1408:                                             ; preds = %1402
  %1409 = load ptr, ptr %43, align 8, !tbaa !13
  %.not1514 = icmp eq ptr %1409, null
  br i1 %.not1514, label %.thread1671, label %1410, !prof !15

1410:                                             ; preds = %1408
  %1411 = load i32, ptr %0, align 8
  %1412 = shl nuw nsw i32 %1403, 10
  %1413 = and i32 %1411, -130049
  %1414 = or disjoint i32 %1413, %1412
  store i32 %1414, ptr %0, align 8
  %1415 = load ptr, ptr %43, align 8, !tbaa !13
  %1416 = tail call i32 %1415(ptr noundef nonnull %0) #3
  %.not1515 = icmp eq i32 %1416, 0
  %.pre4593 = load i32, ptr %10, align 4
  br i1 %.not1515, label %1420, label %1417, !prof !16

1417:                                             ; preds = %1410
  store i32 0, ptr %8, align 4, !tbaa !5
  %1418 = and i32 %.pre4593, -2130706433
  %1419 = or disjoint i32 %1418, 117440512
  store i32 %1419, ptr %10, align 4
  br label %1420

1420:                                             ; preds = %1417, %1410
  %1421 = phi i32 [ %1419, %1417 ], [ %.pre4593, %1410 ]
  %1422 = load i32, ptr %0, align 8
  %1423 = lshr i32 %1422, 10
  %1424 = and i32 %1423, 127
  %1425 = and i32 %1421, 2130706432
  %.not1516 = icmp eq i32 %1425, 0
  br i1 %.not1516, label %.thread1671, label %1426, !prof !16

1426:                                             ; preds = %1420
  %1427 = ptrtoint ptr %.11308 to i64
  %1428 = ptrtoint ptr %2 to i64
  %reass.sub3562 = sub i64 %1427, %1428
  %1429 = add i64 %reass.sub3562, 1
  br label %.thread1710

1430:                                             ; preds = %1393
  %1431 = tail call i32 @http_message_needs_eof(ptr noundef nonnull %0)
  %.not1508 = icmp eq i32 %1431, 0
  br i1 %.not1508, label %1432, label %.thread1671

1432:                                             ; preds = %1430
  %1433 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1509 = icmp eq i32 %1433, 0
  br i1 %.not1509, label %1439, label %1434

1434:                                             ; preds = %1432
  %1435 = load i32, ptr %0, align 8
  %1436 = and i32 %1435, 3
  %1437 = icmp eq i32 %1436, 0
  %1438 = select i1 %1437, i32 18, i32 4
  br label %1439

1439:                                             ; preds = %1432, %1434
  %1440 = phi i32 [ %1438, %1434 ], [ 1, %1432 ]
  %1441 = load i32, ptr %10, align 4
  %1442 = and i32 %1441, 2130706432
  %1443 = icmp eq i32 %1442, 0
  br i1 %1443, label %1445, label %1444

1444:                                             ; preds = %1439
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1926, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1445:                                             ; preds = %1439
  %1446 = load ptr, ptr %43, align 8, !tbaa !13
  %.not1510 = icmp eq ptr %1446, null
  br i1 %.not1510, label %.thread1671, label %1447, !prof !15

1447:                                             ; preds = %1445
  %1448 = load i32, ptr %0, align 8
  %1449 = shl nuw nsw i32 %1440, 10
  %1450 = and i32 %1448, -130049
  %1451 = or disjoint i32 %1450, %1449
  store i32 %1451, ptr %0, align 8
  %1452 = load ptr, ptr %43, align 8, !tbaa !13
  %1453 = tail call i32 %1452(ptr noundef nonnull %0) #3
  %.not1511 = icmp eq i32 %1453, 0
  %.pre4592 = load i32, ptr %10, align 4
  br i1 %.not1511, label %1457, label %1454, !prof !16

1454:                                             ; preds = %1447
  store i32 0, ptr %8, align 4, !tbaa !5
  %1455 = and i32 %.pre4592, -2130706433
  %1456 = or disjoint i32 %1455, 117440512
  store i32 %1456, ptr %10, align 4
  br label %1457

1457:                                             ; preds = %1454, %1447
  %1458 = phi i32 [ %1456, %1454 ], [ %.pre4592, %1447 ]
  %1459 = load i32, ptr %0, align 8
  %1460 = lshr i32 %1459, 10
  %1461 = and i32 %1460, 127
  %1462 = and i32 %1458, 2130706432
  %.not1512 = icmp eq i32 %1462, 0
  br i1 %.not1512, label %.thread1671, label %1463, !prof !16

1463:                                             ; preds = %1457
  %1464 = ptrtoint ptr %.11308 to i64
  %1465 = ptrtoint ptr %2 to i64
  %reass.sub3561 = sub i64 %1464, %1465
  %1466 = add i64 %reass.sub3561, 1
  br label %.thread1710

1467:                                             ; preds = %1285
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1468 = load i32, ptr %10, align 4
  %1469 = and i32 %1468, -2130706433
  %1470 = or disjoint i32 %1469, 503316480
  store i32 %1470, ptr %10, align 4
  br label %.thread

1471:                                             ; preds = %.backedge
  %1472 = load i64, ptr %36, align 8, !tbaa !19
  switch i64 %1472, label %1474 [
    i64 0, label %1473
    i64 -1, label %1473
  ]

1473:                                             ; preds = %1471, %1471
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 1943, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1474:                                             ; preds = %1471
  %1475 = ptrtoint ptr %.11308 to i64
  %1476 = sub i64 %37, %1475
  %. = tail call i64 @llvm.umin.i64(i64 %1472, i64 %1476)
  %.not1495 = icmp eq ptr %.11342, null
  %spec.select1645 = select i1 %.not1495, ptr %.11308, ptr %.11342
  %1477 = sub i64 %1472, %.
  store i64 %1477, ptr %36, align 8, !tbaa !19
  %1478 = add i64 %., -1
  %1479 = getelementptr inbounds i8, ptr %.11308, i64 %1478
  %.not1760 = icmp ugt i64 %1472, %1476
  br i1 %.not1760, label %.thread1671, label %1480

1480:                                             ; preds = %1474
  %1481 = load i32, ptr %10, align 4
  %1482 = and i32 %1481, 2130706432
  %1483 = icmp eq i32 %1482, 0
  br i1 %1483, label %1485, label %1484

1484:                                             ; preds = %1480
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1966, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1485:                                             ; preds = %1480
  %.not1496 = icmp eq ptr %spec.select1645, null
  br i1 %.not1496, label %.backedge.backedge, label %1486

1486:                                             ; preds = %1485
  %1487 = load ptr, ptr %38, align 8, !tbaa !37
  %.not1497 = icmp eq ptr %1487, null
  br i1 %.not1497, label %.backedge.backedge, label %1488, !prof !15

1488:                                             ; preds = %1486
  %1489 = load i32, ptr %0, align 8
  %1490 = and i32 %1489, -130049
  %1491 = or disjoint i32 %1490, 65536
  store i32 %1491, ptr %0, align 8
  %1492 = load ptr, ptr %38, align 8, !tbaa !37
  %1493 = ptrtoint ptr %1479 to i64
  %1494 = ptrtoint ptr %spec.select1645 to i64
  %reass.sub3557 = sub i64 %1493, %1494
  %1495 = add i64 %reass.sub3557, 1
  %1496 = tail call i32 %1492(ptr noundef nonnull %0, ptr noundef nonnull %spec.select1645, i64 noundef %1495) #3
  %.not1498 = icmp eq i32 %1496, 0
  %.pre4588 = load i32, ptr %10, align 4
  br i1 %.not1498, label %1500, label %1497, !prof !16

1497:                                             ; preds = %1488
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1498 = and i32 %.pre4588, -2130706433
  %1499 = or disjoint i32 %1498, 100663296
  store i32 %1499, ptr %10, align 4
  br label %1500

1500:                                             ; preds = %1497, %1488
  %1501 = phi i32 [ %1499, %1497 ], [ %.pre4588, %1488 ]
  %1502 = load i32, ptr %0, align 8
  %1503 = lshr i32 %1502, 10
  %1504 = and i32 %1503, 127
  %1505 = and i32 %1501, 2130706432
  %.not1499 = icmp eq i32 %1505, 0
  br i1 %.not1499, label %.backedge.backedge, label %.thread1741, !prof !16

.thread1741:                                      ; preds = %1500
  %1506 = ptrtoint ptr %2 to i64
  %1507 = sub i64 %1493, %1506
  br label %.thread1710

1508:                                             ; preds = %.backedge
  %.not1492 = icmp eq ptr %.11342, null
  %spec.select1646 = select i1 %.not1492, ptr %.11308, ptr %.11342
  br label %.thread1671

1509:                                             ; preds = %.backedge
  %1510 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1487 = icmp eq i32 %1510, 0
  br i1 %.not1487, label %1516, label %1511

1511:                                             ; preds = %1509
  %1512 = load i32, ptr %0, align 8
  %1513 = and i32 %1512, 3
  %1514 = icmp eq i32 %1513, 0
  %1515 = select i1 %1514, i32 18, i32 4
  br label %1516

1516:                                             ; preds = %1509, %1511
  %1517 = phi i32 [ %1515, %1511 ], [ 1, %1509 ]
  %1518 = load i32, ptr %10, align 4
  %1519 = and i32 %1518, 2130706432
  %1520 = icmp eq i32 %1519, 0
  br i1 %1520, label %1522, label %1521

1521:                                             ; preds = %1516
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1982, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1522:                                             ; preds = %1516
  %1523 = load ptr, ptr %43, align 8, !tbaa !13
  %.not1488 = icmp eq ptr %1523, null
  br i1 %.not1488, label %thread-pre-split, label %1524, !prof !15

1524:                                             ; preds = %1522
  %1525 = load i32, ptr %0, align 8
  %1526 = shl nuw nsw i32 %1517, 10
  %1527 = and i32 %1525, -130049
  %1528 = or disjoint i32 %1527, %1526
  store i32 %1528, ptr %0, align 8
  %1529 = load ptr, ptr %43, align 8, !tbaa !13
  %1530 = tail call i32 %1529(ptr noundef nonnull %0) #3
  %.not1489 = icmp eq i32 %1530, 0
  %.pre4587 = load i32, ptr %10, align 4
  br i1 %.not1489, label %1534, label %1531, !prof !16

1531:                                             ; preds = %1524
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1532 = and i32 %.pre4587, -2130706433
  %1533 = or disjoint i32 %1532, 117440512
  store i32 %1533, ptr %10, align 4
  br label %1534

1534:                                             ; preds = %1531, %1524
  %1535 = phi i32 [ %1533, %1531 ], [ %.pre4587, %1524 ]
  %1536 = load i32, ptr %0, align 8
  %1537 = lshr i32 %1536, 10
  %1538 = and i32 %1537, 127
  %1539 = and i32 %1535, 2130706432
  %.not1490 = icmp eq i32 %1539, 0
  br i1 %.not1490, label %thread-pre-split, label %1540, !prof !16

1540:                                             ; preds = %1534
  %1541 = ptrtoint ptr %.11308 to i64
  %1542 = ptrtoint ptr %2 to i64
  %reass.sub3555 = sub i64 %1541, %1542
  %1543 = add i64 %reass.sub3555, 1
  br label %.thread1710

thread-pre-split:                                 ; preds = %1522, %1534
  %1544 = phi i32 [ %1535, %1534 ], [ %1518, %1522 ]
  %.28 = phi i32 [ %1538, %1534 ], [ %1517, %1522 ]
  %.not1491 = icmp sgt i32 %1544, -1
  br i1 %.not1491, label %.thread1671, label %1545

1545:                                             ; preds = %thread-pre-split
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1546 = load i32, ptr %0, align 8
  %1547 = shl nuw nsw i32 %.28, 10
  %1548 = and i32 %1547, 130048
  %1549 = and i32 %1546, -130049
  %1550 = or disjoint i32 %1549, %1548
  store i32 %1550, ptr %0, align 8
  %1551 = ptrtoint ptr %.11308 to i64
  %1552 = ptrtoint ptr %2 to i64
  %reass.sub3556 = sub i64 %1551, %1552
  %1553 = add i64 %reass.sub3556, 1
  br label %.thread1710

1554:                                             ; preds = %.backedge
  %1555 = icmp eq i32 %.21364, 1
  br i1 %1555, label %1557, label %1556

1556:                                             ; preds = %1554
  tail call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 1991, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1557:                                             ; preds = %1554
  %1558 = load i32, ptr %0, align 8
  %1559 = and i32 %1558, 4
  %.not1486 = icmp eq i32 %1559, 0
  br i1 %.not1486, label %1560, label %1561

1560:                                             ; preds = %1557
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 1992, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1561:                                             ; preds = %1557
  %1562 = zext i8 %.01299 to i64
  %1563 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %1562
  %1564 = load i8, ptr %1563, align 1, !tbaa !17
  %1565 = icmp eq i8 %1564, -1
  br i1 %1565, label %1566, label %1570, !prof !15

1566:                                             ; preds = %1561
  store i32 1, ptr %8, align 4, !tbaa !5
  %1567 = load i32, ptr %10, align 4
  %1568 = and i32 %1567, -2130706433
  %1569 = or disjoint i32 %1568, 452984832
  store i32 %1569, ptr %10, align 4
  br label %.thread

1570:                                             ; preds = %1561
  %1571 = sext i8 %1564 to i64
  store i64 %1571, ptr %36, align 8, !tbaa !19
  br label %.thread1671

1572:                                             ; preds = %.backedge
  %1573 = load i32, ptr %0, align 8
  %1574 = and i32 %1573, 4
  %.not1485 = icmp eq i32 %1574, 0
  br i1 %.not1485, label %1575, label %1576

1575:                                             ; preds = %1572
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2009, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1576:                                             ; preds = %1572
  %1577 = icmp eq i8 %.01299, 13
  br i1 %1577, label %.thread1671, label %1578

1578:                                             ; preds = %1576
  %1579 = zext i8 %.01299 to i64
  %1580 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %1579
  %1581 = load i8, ptr %1580, align 1, !tbaa !17
  %1582 = icmp eq i8 %1581, -1
  br i1 %1582, label %1583, label %1584

1583:                                             ; preds = %1578
  switch i8 %.01299, label %1591 [
    i8 59, label %.thread1671
    i8 32, label %.thread1671
  ]

1584:                                             ; preds = %1578
  %1585 = load i64, ptr %36, align 8, !tbaa !19
  %1586 = icmp ugt i64 %1585, 1152921504606846974
  br i1 %1586, label %1591, label %1587, !prof !15

1587:                                             ; preds = %1584
  %1588 = shl nuw i64 %1585, 4
  %1589 = sext i8 %1581 to i64
  %1590 = add i64 %1588, %1589
  store i64 %1590, ptr %36, align 8, !tbaa !19
  br label %.thread1671

1591:                                             ; preds = %1584, %1583
  %.sink5661 = phi i32 [ 452984832, %1583 ], [ 419430400, %1584 ]
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1592 = load i32, ptr %10, align 4
  %1593 = and i32 %1592, -2130706433
  %1594 = or disjoint i32 %1593, %.sink5661
  store i32 %1594, ptr %10, align 4
  br label %.thread

1595:                                             ; preds = %.backedge
  %1596 = load i32, ptr %0, align 8
  %1597 = and i32 %1596, 4
  %.not1484 = icmp eq i32 %1597, 0
  br i1 %.not1484, label %1598, label %1599

1598:                                             ; preds = %1595
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2044, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1599:                                             ; preds = %1595
  %1600 = icmp eq i8 %.01299, 13
  %spec.select1650 = select i1 %1600, i32 56, i32 55
  br label %.thread1671

1601:                                             ; preds = %.backedge
  %1602 = load i32, ptr %0, align 8
  %1603 = and i32 %1602, 4
  %.not1479 = icmp eq i32 %1603, 0
  br i1 %.not1479, label %1604, label %1605

1604:                                             ; preds = %1601
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2055, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1605:                                             ; preds = %1601
  %.not1480 = icmp eq i8 %.01299, 10
  br i1 %.not1480, label %1610, label %1606

1606:                                             ; preds = %1605
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1607 = load i32, ptr %10, align 4
  %1608 = and i32 %1607, -2130706433
  %1609 = or disjoint i32 %1608, 503316480
  store i32 %1609, ptr %10, align 4
  br label %.thread

1610:                                             ; preds = %1605
  store i32 0, ptr %8, align 4, !tbaa !5
  %1611 = load i64, ptr %36, align 8, !tbaa !19
  %1612 = icmp eq i64 %1611, 0
  br i1 %1612, label %1613, label %1615

1613:                                             ; preds = %1610
  %1614 = or i32 %1602, 64
  store i32 %1614, ptr %0, align 8
  br label %1615

1615:                                             ; preds = %1610, %1613
  %1616 = phi i32 [ %1614, %1613 ], [ %1602, %1610 ]
  %.30 = phi i32 [ 44, %1613 ], [ 59, %1610 ]
  %1617 = load i32, ptr %10, align 4
  %1618 = and i32 %1617, 2130706432
  %1619 = icmp eq i32 %1618, 0
  br i1 %1619, label %1621, label %1620

1620:                                             ; preds = %1615
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2067, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1621:                                             ; preds = %1615
  %1622 = load ptr, ptr %42, align 8, !tbaa !38
  %.not1481 = icmp eq ptr %1622, null
  br i1 %.not1481, label %.thread1671, label %1623, !prof !15

1623:                                             ; preds = %1621
  %1624 = shl nuw nsw i32 %.30, 10
  %1625 = and i32 %1616, -130049
  %1626 = or disjoint i32 %1625, %1624
  store i32 %1626, ptr %0, align 8
  %1627 = load ptr, ptr %42, align 8, !tbaa !38
  %1628 = tail call i32 %1627(ptr noundef nonnull %0) #3
  %.not1482 = icmp eq i32 %1628, 0
  %.pre4586 = load i32, ptr %10, align 4
  br i1 %.not1482, label %1632, label %1629, !prof !16

1629:                                             ; preds = %1623
  store i32 0, ptr %8, align 4, !tbaa !5
  %1630 = and i32 %.pre4586, -2130706433
  %1631 = or disjoint i32 %1630, 150994944
  store i32 %1631, ptr %10, align 4
  br label %1632

1632:                                             ; preds = %1629, %1623
  %1633 = phi i32 [ %1631, %1629 ], [ %.pre4586, %1623 ]
  %1634 = load i32, ptr %0, align 8
  %1635 = lshr i32 %1634, 10
  %1636 = and i32 %1635, 127
  %1637 = and i32 %1633, 2130706432
  %.not1483 = icmp eq i32 %1637, 0
  br i1 %.not1483, label %.thread1671, label %1638, !prof !16

1638:                                             ; preds = %1632
  %1639 = ptrtoint ptr %.11308 to i64
  %1640 = ptrtoint ptr %2 to i64
  %reass.sub3554 = sub i64 %1639, %1640
  %1641 = add i64 %reass.sub3554, 1
  br label %.thread1710

1642:                                             ; preds = %.backedge
  %1643 = load i64, ptr %36, align 8, !tbaa !19
  %1644 = ptrtoint ptr %.11308 to i64
  %1645 = sub i64 %37, %1644
  %.1651 = tail call i64 @llvm.umin.i64(i64 %1643, i64 %1645)
  %1646 = load i32, ptr %0, align 8
  %1647 = and i32 %1646, 4
  %.not1475 = icmp eq i32 %1647, 0
  br i1 %.not1475, label %1648, label %1649

1648:                                             ; preds = %1642
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2076, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1649:                                             ; preds = %1642
  switch i64 %1643, label %1651 [
    i64 0, label %1650
    i64 -1, label %1650
  ]

1650:                                             ; preds = %1649, %1649
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2078, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1651:                                             ; preds = %1649
  %.not1478 = icmp eq ptr %.11342, null
  %spec.select1652 = select i1 %.not1478, ptr %.11308, ptr %.11342
  %1652 = sub i64 %1643, %.1651
  store i64 %1652, ptr %36, align 8, !tbaa !19
  %1653 = add i64 %.1651, -1
  %1654 = getelementptr inbounds i8, ptr %.11308, i64 %1653
  %.not1758 = icmp ugt i64 %1643, %1645
  %.31 = select i1 %.not1758, i32 59, i32 60
  br label %.thread1671

1655:                                             ; preds = %.backedge
  %1656 = load i32, ptr %0, align 8
  %1657 = and i32 %1656, 4
  %.not1469 = icmp eq i32 %1657, 0
  br i1 %.not1469, label %1658, label %1659

1658:                                             ; preds = %1655
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2095, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1659:                                             ; preds = %1655
  %1660 = load i64, ptr %36, align 8, !tbaa !19
  %1661 = icmp eq i64 %1660, 0
  br i1 %1661, label %1663, label %1662

1662:                                             ; preds = %1659
  tail call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 2096, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1663:                                             ; preds = %1659
  %.not1470 = icmp eq i8 %.01299, 13
  br i1 %.not1470, label %1668, label %1664

1664:                                             ; preds = %1663
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1665 = load i32, ptr %10, align 4
  %1666 = and i32 %1665, -2130706433
  %1667 = or disjoint i32 %1666, 503316480
  store i32 %1667, ptr %10, align 4
  br label %.thread

1668:                                             ; preds = %1663
  %1669 = load i32, ptr %10, align 4
  %1670 = and i32 %1669, 2130706432
  %1671 = icmp eq i32 %1670, 0
  br i1 %1671, label %1673, label %1672

1672:                                             ; preds = %1668
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2099, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1673:                                             ; preds = %1668
  %.not1471 = icmp eq ptr %.11342, null
  br i1 %.not1471, label %.thread1671, label %1674

1674:                                             ; preds = %1673
  %1675 = load ptr, ptr %38, align 8, !tbaa !37
  %.not1472 = icmp eq ptr %1675, null
  br i1 %.not1472, label %.thread1671, label %1676, !prof !15

1676:                                             ; preds = %1674
  %1677 = and i32 %1656, -130049
  %1678 = or disjoint i32 %1677, 62464
  store i32 %1678, ptr %0, align 8
  %1679 = load ptr, ptr %38, align 8, !tbaa !37
  %1680 = ptrtoint ptr %.11308 to i64
  %1681 = ptrtoint ptr %.11342 to i64
  %1682 = sub i64 %1680, %1681
  %1683 = tail call i32 %1679(ptr noundef nonnull %0, ptr noundef nonnull %.11342, i64 noundef %1682) #3
  %.not1473 = icmp eq i32 %1683, 0
  %.pre4585 = load i32, ptr %10, align 4
  br i1 %.not1473, label %1687, label %1684, !prof !16

1684:                                             ; preds = %1676
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1685 = and i32 %.pre4585, -2130706433
  %1686 = or disjoint i32 %1685, 100663296
  store i32 %1686, ptr %10, align 4
  br label %1687

1687:                                             ; preds = %1684, %1676
  %1688 = phi i32 [ %1686, %1684 ], [ %.pre4585, %1676 ]
  %1689 = load i32, ptr %0, align 8
  %1690 = lshr i32 %1689, 10
  %1691 = and i32 %1690, 127
  %1692 = and i32 %1688, 2130706432
  %.not1474 = icmp eq i32 %1692, 0
  br i1 %.not1474, label %.thread1671, label %1693, !prof !16

1693:                                             ; preds = %1687
  %1694 = ptrtoint ptr %2 to i64
  %reass.sub3553 = sub i64 %1680, %1694
  %1695 = add i64 %reass.sub3553, 1
  br label %.thread1710

1696:                                             ; preds = %.backedge
  %1697 = load i32, ptr %0, align 8
  %1698 = and i32 %1697, 4
  %.not1464 = icmp eq i32 %1698, 0
  br i1 %.not1464, label %1699, label %1700

1699:                                             ; preds = %1696
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2103, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1700:                                             ; preds = %1696
  %.not1465 = icmp eq i8 %.01299, 10
  br i1 %.not1465, label %1705, label %1701

1701:                                             ; preds = %1700
  store i32 %.21364, ptr %8, align 4, !tbaa !5
  %1702 = load i32, ptr %10, align 4
  %1703 = and i32 %1702, -2130706433
  %1704 = or disjoint i32 %1703, 503316480
  store i32 %1704, ptr %10, align 4
  br label %.thread

1705:                                             ; preds = %1700
  store i32 0, ptr %8, align 4, !tbaa !5
  %1706 = load i32, ptr %10, align 4
  %1707 = and i32 %1706, 2130706432
  %1708 = icmp eq i32 %1707, 0
  br i1 %1708, label %1710, label %1709

1709:                                             ; preds = %1705
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2108, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1710:                                             ; preds = %1705
  %1711 = load ptr, ptr %39, align 8, !tbaa !35
  %.not1466 = icmp eq ptr %1711, null
  br i1 %.not1466, label %.thread1671, label %1712, !prof !15

1712:                                             ; preds = %1710
  %1713 = and i32 %1697, -130049
  %1714 = or disjoint i32 %1713, 54272
  store i32 %1714, ptr %0, align 8
  %1715 = load ptr, ptr %39, align 8, !tbaa !35
  %1716 = tail call i32 %1715(ptr noundef nonnull %0) #3
  %.not1467 = icmp eq i32 %1716, 0
  %.pre = load i32, ptr %10, align 4
  br i1 %.not1467, label %1720, label %1717, !prof !16

1717:                                             ; preds = %1712
  store i32 0, ptr %8, align 4, !tbaa !5
  %1718 = and i32 %.pre, -2130706433
  %1719 = or disjoint i32 %1718, 167772160
  store i32 %1719, ptr %10, align 4
  br label %1720

1720:                                             ; preds = %1717, %1712
  %1721 = phi i32 [ %1719, %1717 ], [ %.pre, %1712 ]
  %1722 = load i32, ptr %0, align 8
  %1723 = lshr i32 %1722, 10
  %1724 = and i32 %1723, 127
  %1725 = and i32 %1721, 2130706432
  %.not1468 = icmp eq i32 %1725, 0
  br i1 %.not1468, label %.thread1671, label %1726, !prof !16

1726:                                             ; preds = %1720
  %1727 = ptrtoint ptr %.11308 to i64
  %1728 = ptrtoint ptr %2 to i64
  %reass.sub = sub i64 %1727, %1728
  %1729 = add i64 %reass.sub, 1
  br label %.thread1710

1730:                                             ; preds = %.backedge
  tail call void @__assert_fail(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 2112, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

.thread1671:                                      ; preds = %1474, %231, %1154, %1154, %588, %213, %66, %66, %1583, %1583, %1576, %1587, %1370, %1358, %1445, %1457, %1408, %1420, %.thread4626, %1382, %1393, %1430, %.loopexit, %801, %815, %802, %._crit_edge, %415, %1599, %1674, %1687, %1149, %1124, %828, %828, %583, %577, %562, %547, %542, %537, %532, %527, %522, %515, %482, %497, %451, %465, %298, %298, %293, %270, %284, %234, %241, %255, %192, %177, %162, %157, %152, %147, %114, %114, %61, %61, %174, %189, %205, %559, %574, %578, %829, %830, %1508, %1570, %1651, %76, %86, %107, %99, %137, %127, %199, %218, %240, %269, %346, %336, %420, %422, %437, %506, %481, %450, %514, %513, %608, %606, %604, %602, %600, %865, %869, %871, %867, %842, %844, %873, %859, %836, %.loopexit1781, %.loopexit1781, %.loopexit1781, %thread-pre-split, %1632, %1621, %1673, %1720, %1710
  %.33 = phi i32 [ %1724, %1720 ], [ 53, %1710 ], [ 61, %1673 ], [ %.31, %1651 ], [ %1636, %1632 ], [ %.30, %1621 ], [ 54, %1570 ], [ %.28, %thread-pre-split ], [ 63, %1508 ], [ 50, %873 ], [ 50, %865 ], [ 50, %867 ], [ 50, %869 ], [ 50, %871 ], [ 50, %859 ], [ 50, %.loopexit1781 ], [ 50, %.loopexit1781 ], [ 50, %.loopexit1781 ], [ 50, %842 ], [ 50, %844 ], [ 50, %836 ], [ 46, %828 ], [ 47, %829 ], [ 48, %830 ], [ 45, %608 ], [ 45, %606 ], [ 45, %604 ], [ 45, %602 ], [ 45, %600 ], [ 44, %578 ], [ 42, %574 ], [ 40, %559 ], [ 33, %514 ], [ 32, %513 ], [ %507, %506 ], [ %476, %481 ], [ 32, %450 ], [ %438, %437 ], [ 20, %420 ], [ %426, %422 ], [ %.41374, %415 ], [ 18, %298 ], [ %350, %346 ], [ 19, %336 ], [ 17, %240 ], [ 44, %269 ], [ 14, %218 ], [ 14, %205 ], [ 13, %199 ], [ 12, %189 ], [ 10, %174 ], [ 4, %114 ], [ %141, %137 ], [ 5, %127 ], [ 6, %99 ], [ 19, %107 ], [ %90, %86 ], [ 3, %76 ], [ 1, %61 ], [ 1, %61 ], [ 4, %114 ], [ 6, %147 ], [ 7, %152 ], [ 8, %157 ], [ 9, %162 ], [ 11, %177 ], [ 13, %192 ], [ %259, %255 ], [ 17, %241 ], [ 16, %234 ], [ %288, %284 ], [ 44, %270 ], [ 44, %293 ], [ 18, %298 ], [ %469, %465 ], [ 32, %451 ], [ %501, %497 ], [ %476, %482 ], [ 37, %515 ], [ 34, %522 ], [ 35, %527 ], [ 36, %532 ], [ 38, %537 ], [ 36, %542 ], [ 39, %547 ], [ 41, %562 ], [ 43, %577 ], [ 44, %583 ], [ 46, %828 ], [ 51, %1124 ], [ 48, %1149 ], [ %spec.select1650, %1599 ], [ %1691, %1687 ], [ 61, %1674 ], [ 46, %802 ], [ %819, %815 ], [ 46, %801 ], [ 45, %._crit_edge ], [ %.17, %.loopexit ], [ 63, %1430 ], [ 62, %1393 ], [ 63, %1382 ], [ 53, %.thread4626 ], [ %1440, %1445 ], [ %1461, %1457 ], [ %1403, %1408 ], [ %1424, %1420 ], [ %1353, %1358 ], [ %1374, %1370 ], [ 55, %1583 ], [ 55, %1583 ], [ 56, %1576 ], [ 54, %1587 ], [ 62, %1474 ], [ 46, %1154 ], [ 46, %1154 ], [ 57, %588 ], [ 15, %213 ], [ 2, %66 ], [ 2, %66 ], [ 16, %231 ]
  %.61368 = phi i32 [ 0, %1720 ], [ 0, %1710 ], [ %.21364, %1673 ], [ %.21364, %1651 ], [ 0, %1632 ], [ 0, %1621 ], [ 1, %1570 ], [ %.21364, %thread-pre-split ], [ %.21364, %1508 ], [ %.21364, %873 ], [ %.21364, %865 ], [ %.21364, %867 ], [ %.21364, %869 ], [ %.21364, %871 ], [ %.21364, %859 ], [ %.21364, %.loopexit1781 ], [ %.21364, %.loopexit1781 ], [ %.21364, %.loopexit1781 ], [ %.21364, %842 ], [ %.21364, %844 ], [ %.21364, %836 ], [ %.21364, %828 ], [ %.21364, %829 ], [ %.21364, %830 ], [ %.21364, %608 ], [ %.21364, %606 ], [ %.21364, %604 ], [ %.21364, %602 ], [ %.21364, %600 ], [ %.21364, %578 ], [ %.21364, %574 ], [ %.21364, %559 ], [ %.21364, %514 ], [ %.21364, %513 ], [ %.21364, %506 ], [ %.21364, %481 ], [ %.21364, %450 ], [ %.21364, %437 ], [ %.21364, %420 ], [ %.21364, %422 ], [ %.21364, %415 ], [ %.21364, %298 ], [ %.21364, %346 ], [ %.21364, %336 ], [ %.21364, %240 ], [ %.21364, %269 ], [ %.21364, %218 ], [ %.21364, %205 ], [ %.21364, %199 ], [ %.21364, %189 ], [ %.21364, %174 ], [ %.21364, %114 ], [ %.21364, %137 ], [ %.21364, %127 ], [ %.21364, %99 ], [ %.21364, %107 ], [ %.21364, %86 ], [ %.21364, %76 ], [ %.21364, %61 ], [ %.21364, %61 ], [ %.21364, %114 ], [ %.21364, %147 ], [ %.21364, %152 ], [ %.21364, %157 ], [ %.21364, %162 ], [ %.21364, %177 ], [ %.21364, %192 ], [ %.21364, %255 ], [ %.21364, %241 ], [ %.21364, %234 ], [ %.21364, %284 ], [ %.21364, %270 ], [ %.21364, %293 ], [ %.21364, %298 ], [ %.21364, %465 ], [ %.21364, %451 ], [ %.21364, %497 ], [ %.21364, %482 ], [ %.21364, %515 ], [ %.21364, %522 ], [ %.21364, %527 ], [ %.21364, %532 ], [ %.21364, %537 ], [ %.21364, %542 ], [ %.21364, %547 ], [ %.21364, %562 ], [ %.21364, %577 ], [ %.21364, %583 ], [ %.21364, %828 ], [ %.21364, %1124 ], [ %.21364, %1149 ], [ %.21364, %1599 ], [ %.21364, %1687 ], [ %.21364, %1674 ], [ %780, %802 ], [ %780, %815 ], [ %780, %801 ], [ %768, %._crit_edge ], [ %1117, %.loopexit ], [ 0, %1430 ], [ 0, %1393 ], [ 0, %1382 ], [ 0, %.thread4626 ], [ 0, %1445 ], [ 0, %1457 ], [ 0, %1408 ], [ 0, %1420 ], [ 0, %1358 ], [ 0, %1370 ], [ %.21364, %1583 ], [ %.21364, %1583 ], [ %.21364, %1576 ], [ %.21364, %1587 ], [ %.21364, %66 ], [ %.21364, %66 ], [ %.21364, %213 ], [ %.21364, %588 ], [ %.21364, %1154 ], [ %.21364, %1154 ], [ %.21364, %231 ], [ %.21364, %1474 ]
  %.41353 = phi ptr [ %.21351, %1720 ], [ %.21351, %1710 ], [ %.21351, %1673 ], [ %.21351, %1651 ], [ %.21351, %1632 ], [ %.21351, %1621 ], [ %.21351, %1570 ], [ %.21351, %thread-pre-split ], [ %.21351, %1508 ], [ %.21351, %873 ], [ %.21351, %865 ], [ %.21351, %867 ], [ %.21351, %869 ], [ %.21351, %871 ], [ %.21351, %859 ], [ %.21351, %.loopexit1781 ], [ %.21351, %.loopexit1781 ], [ %.21351, %.loopexit1781 ], [ %.21351, %842 ], [ %.21351, %844 ], [ %.21351, %836 ], [ %.21351, %828 ], [ %.21351, %829 ], [ %.21351, %830 ], [ %.21351, %608 ], [ %.21351, %606 ], [ %.21351, %604 ], [ %.21351, %602 ], [ %.21351, %600 ], [ %.21351, %578 ], [ %.21351, %574 ], [ %.21351, %559 ], [ %.21351, %514 ], [ %.21351, %513 ], [ %.21351, %506 ], [ %.21351, %481 ], [ %.21351, %450 ], [ %.21351, %437 ], [ %.21351, %420 ], [ %.21351, %422 ], [ %.21351, %415 ], [ %.21351, %298 ], [ %.21351, %346 ], [ %.21351, %336 ], [ null, %240 ], [ null, %269 ], [ %.21351, %218 ], [ %.21351, %205 ], [ %.21351, %199 ], [ %.21351, %189 ], [ %.21351, %174 ], [ %.21351, %114 ], [ %.21351, %137 ], [ %.21351, %127 ], [ %.21351, %99 ], [ %.21351, %107 ], [ %.21351, %86 ], [ %.21351, %76 ], [ %.21351, %61 ], [ %.21351, %61 ], [ %.21351, %114 ], [ %.21351, %147 ], [ %.21351, %152 ], [ %.21351, %157 ], [ %.21351, %162 ], [ %.21351, %177 ], [ %.21351, %192 ], [ null, %255 ], [ null, %241 ], [ %.21351, %234 ], [ null, %284 ], [ null, %270 ], [ %.21351, %293 ], [ %.21351, %298 ], [ %.21351, %465 ], [ %.21351, %451 ], [ %.21351, %497 ], [ %.21351, %482 ], [ %.21351, %515 ], [ %.21351, %522 ], [ %.21351, %527 ], [ %.21351, %532 ], [ %.21351, %537 ], [ %.21351, %542 ], [ %.21351, %547 ], [ %.21351, %562 ], [ %.21351, %577 ], [ %.21351, %583 ], [ %.21351, %828 ], [ %.21351, %1124 ], [ %.21351, %1149 ], [ %.21351, %1599 ], [ %.21351, %1687 ], [ %.21351, %1674 ], [ %.21351, %802 ], [ %.21351, %815 ], [ %.21351, %801 ], [ %.21351, %._crit_edge ], [ %.21351, %.loopexit ], [ %.21351, %1430 ], [ %.21351, %1393 ], [ %.21351, %1382 ], [ %.21351, %.thread4626 ], [ %.21351, %1445 ], [ %.21351, %1457 ], [ %.21351, %1408 ], [ %.21351, %1420 ], [ %.21351, %1358 ], [ %.21351, %1370 ], [ %.21351, %1583 ], [ %.21351, %1583 ], [ %.21351, %1576 ], [ %.21351, %1587 ], [ %.21351, %1474 ], [ %.21351, %1154 ], [ %.21351, %1154 ], [ %.21351, %588 ], [ %.21351, %213 ], [ %.21351, %66 ], [ %.21351, %66 ], [ %spec.select1627, %231 ]
  %.71348 = phi ptr [ %.11342, %1720 ], [ %.11342, %1710 ], [ null, %1673 ], [ %spec.select1652, %1651 ], [ %.11342, %1632 ], [ %.11342, %1621 ], [ %.11342, %1570 ], [ %.11342, %thread-pre-split ], [ %spec.select1646, %1508 ], [ %.11342, %873 ], [ %.11342, %865 ], [ %.11342, %867 ], [ %.11342, %869 ], [ %.11342, %871 ], [ %.11342, %859 ], [ %.11342, %.loopexit1781 ], [ %.11342, %.loopexit1781 ], [ %.11342, %.loopexit1781 ], [ %.11342, %842 ], [ %.11342, %844 ], [ %.11342, %836 ], [ %.11342, %828 ], [ %.11342, %829 ], [ %.11342, %830 ], [ %.11342, %608 ], [ %.11342, %606 ], [ %.11342, %604 ], [ %.11342, %602 ], [ %.11342, %600 ], [ %.11342, %578 ], [ %.11342, %574 ], [ %.11342, %559 ], [ %.11342, %514 ], [ %.11342, %513 ], [ %.11342, %506 ], [ %.11342, %481 ], [ %.11342, %450 ], [ %.11342, %437 ], [ %.11342, %420 ], [ %.11342, %422 ], [ %.11342, %415 ], [ %.11342, %298 ], [ %.11342, %346 ], [ %.11342, %336 ], [ %.11342, %240 ], [ %.11342, %269 ], [ %.11342, %218 ], [ %.11342, %205 ], [ %.11342, %199 ], [ %.11342, %189 ], [ %.11342, %174 ], [ %.11342, %114 ], [ %.11342, %137 ], [ %.11342, %127 ], [ %.11342, %99 ], [ %.11342, %107 ], [ %.11342, %86 ], [ %.11342, %76 ], [ %.11342, %61 ], [ %.11342, %61 ], [ %.11342, %114 ], [ %.11342, %147 ], [ %.11342, %152 ], [ %.11342, %157 ], [ %.11342, %162 ], [ %.11342, %177 ], [ %.11342, %192 ], [ %.11342, %255 ], [ %.11342, %241 ], [ %.11342, %234 ], [ %.11342, %284 ], [ %.11342, %270 ], [ %.11342, %293 ], [ %.11342, %298 ], [ %.11342, %465 ], [ %.11342, %451 ], [ %.11342, %497 ], [ %.11342, %482 ], [ %.11342, %515 ], [ %.11342, %522 ], [ %.11342, %527 ], [ %.11342, %532 ], [ %.11342, %537 ], [ %.11342, %542 ], [ %.11342, %547 ], [ %.11342, %562 ], [ %.11342, %577 ], [ %.11342, %583 ], [ %.11342, %828 ], [ %.11342, %1124 ], [ %.11342, %1149 ], [ %.11342, %1599 ], [ null, %1687 ], [ null, %1674 ], [ %.11342, %802 ], [ %.11342, %815 ], [ %.11342, %801 ], [ %.11342, %._crit_edge ], [ %.11342, %.loopexit ], [ %.11342, %1430 ], [ %.11342, %1393 ], [ %.11342, %1382 ], [ %.11342, %.thread4626 ], [ %.11342, %1445 ], [ %.11342, %1457 ], [ %.11342, %1408 ], [ %.11342, %1420 ], [ %.11342, %1358 ], [ %.11342, %1370 ], [ %.11342, %1583 ], [ %.11342, %1583 ], [ %.11342, %1576 ], [ %.11342, %1587 ], [ %spec.select1645, %1474 ], [ %.11342, %1154 ], [ %.11342, %1154 ], [ %.11342, %588 ], [ %.11342, %213 ], [ %.11342, %66 ], [ %.11342, %66 ], [ %.11342, %231 ]
  %.31340 = phi ptr [ %.113383535, %1720 ], [ %.113383535, %1710 ], [ %.113383535, %1673 ], [ %.113383535, %1651 ], [ %.113383535, %1632 ], [ %.113383535, %1621 ], [ %.113383535, %1570 ], [ %.113383535, %thread-pre-split ], [ %.113383535, %1508 ], [ %.113383535, %873 ], [ %.113383535, %865 ], [ %.113383535, %867 ], [ %.113383535, %869 ], [ %.113383535, %871 ], [ %.113383535, %859 ], [ %.113383535, %.loopexit1781 ], [ %.113383535, %.loopexit1781 ], [ %.113383535, %.loopexit1781 ], [ %.113383535, %842 ], [ %.113383535, %844 ], [ %.113383535, %836 ], [ %.113383535, %828 ], [ %.113383535, %829 ], [ %.113383535, %830 ], [ %.113383535, %608 ], [ %.113383535, %606 ], [ %.113383535, %604 ], [ %.113383535, %602 ], [ %.113383535, %600 ], [ %.113383535, %578 ], [ %.113383535, %574 ], [ %.113383535, %559 ], [ %.113383535, %514 ], [ %.113383535, %513 ], [ %.113383535, %506 ], [ null, %481 ], [ null, %450 ], [ %.113383535, %437 ], [ %.113383535, %420 ], [ %spec.select1629, %422 ], [ %.113383535, %415 ], [ %.113383535, %298 ], [ %.113383535, %346 ], [ %.113383535, %336 ], [ %.113383535, %240 ], [ %.113383535, %269 ], [ %.113383535, %218 ], [ %.113383535, %205 ], [ %.113383535, %199 ], [ %.113383535, %189 ], [ %.113383535, %174 ], [ %.113383535, %114 ], [ %.113383535, %137 ], [ %.113383535, %127 ], [ %.113383535, %99 ], [ %.113383535, %107 ], [ %.113383535, %86 ], [ %.113383535, %76 ], [ %.113383535, %61 ], [ %.113383535, %61 ], [ %.113383535, %114 ], [ %.113383535, %147 ], [ %.113383535, %152 ], [ %.113383535, %157 ], [ %.113383535, %162 ], [ %.113383535, %177 ], [ %.113383535, %192 ], [ %.113383535, %255 ], [ %.113383535, %241 ], [ %.113383535, %234 ], [ %.113383535, %284 ], [ %.113383535, %270 ], [ %.113383535, %293 ], [ %.113383535, %298 ], [ null, %465 ], [ null, %451 ], [ null, %497 ], [ null, %482 ], [ %.113383535, %515 ], [ %.113383535, %522 ], [ %.113383535, %527 ], [ %.113383535, %532 ], [ %.113383535, %537 ], [ %.113383535, %542 ], [ %.113383535, %547 ], [ %.113383535, %562 ], [ %.113383535, %577 ], [ %.113383535, %583 ], [ %.113383535, %828 ], [ %.113383535, %1124 ], [ %.113383535, %1149 ], [ %.113383535, %1599 ], [ %.113383535, %1687 ], [ %.113383535, %1674 ], [ %.113383535, %802 ], [ %.113383535, %815 ], [ %.113383535, %801 ], [ %.113383535, %._crit_edge ], [ %.113383535, %.loopexit ], [ %.113383535, %1430 ], [ %.113383535, %1393 ], [ %.113383535, %1382 ], [ %.113383535, %.thread4626 ], [ %.113383535, %1445 ], [ %.113383535, %1457 ], [ %.113383535, %1408 ], [ %.113383535, %1420 ], [ %.113383535, %1358 ], [ %.113383535, %1370 ], [ %.113383535, %1583 ], [ %.113383535, %1583 ], [ %.113383535, %1576 ], [ %.113383535, %1587 ], [ %.113383535, %66 ], [ %.113383535, %66 ], [ %.113383535, %213 ], [ %.113383535, %588 ], [ %.113383535, %1154 ], [ %.113383535, %1154 ], [ %.113383535, %231 ], [ %.113383535, %1474 ]
  %.91336 = phi ptr [ %.21329, %1720 ], [ %.21329, %1710 ], [ %.21329, %1673 ], [ %.21329, %1651 ], [ %.21329, %1632 ], [ %.21329, %1621 ], [ %.21329, %1570 ], [ %.21329, %thread-pre-split ], [ %.21329, %1508 ], [ %spec.select1631, %873 ], [ %spec.select1631, %865 ], [ %spec.select1631, %867 ], [ %spec.select1631, %869 ], [ %spec.select1631, %871 ], [ %spec.select1631, %859 ], [ %spec.select1631, %.loopexit1781 ], [ %spec.select1631, %.loopexit1781 ], [ %spec.select1631, %.loopexit1781 ], [ %spec.select1631, %842 ], [ %spec.select1631, %844 ], [ %spec.select1631, %836 ], [ %.21329, %828 ], [ %.21329, %829 ], [ %.21329, %830 ], [ %.21329, %608 ], [ %.21329, %606 ], [ %.21329, %604 ], [ %.21329, %602 ], [ %.21329, %600 ], [ %.21329, %578 ], [ %.21329, %574 ], [ %.21329, %559 ], [ %.21329, %514 ], [ %.21329, %513 ], [ %.21329, %506 ], [ %.21329, %481 ], [ %.21329, %450 ], [ %.21329, %437 ], [ %.21329, %420 ], [ %.21329, %422 ], [ %.21329, %415 ], [ %.21329, %298 ], [ %.21329, %346 ], [ %.21329, %336 ], [ %.21329, %240 ], [ %.21329, %269 ], [ %.21329, %218 ], [ %.21329, %205 ], [ %.21329, %199 ], [ %.21329, %189 ], [ %.21329, %174 ], [ %.21329, %114 ], [ %.21329, %137 ], [ %.21329, %127 ], [ %.21329, %99 ], [ %.21329, %107 ], [ %.21329, %86 ], [ %.21329, %76 ], [ %.21329, %61 ], [ %.21329, %61 ], [ %.21329, %114 ], [ %.21329, %147 ], [ %.21329, %152 ], [ %.21329, %157 ], [ %.21329, %162 ], [ %.21329, %177 ], [ %.21329, %192 ], [ %.21329, %255 ], [ %.21329, %241 ], [ %.21329, %234 ], [ %.21329, %284 ], [ %.21329, %270 ], [ %.21329, %293 ], [ %.21329, %298 ], [ %.21329, %465 ], [ %.21329, %451 ], [ %.21329, %497 ], [ %.21329, %482 ], [ %.21329, %515 ], [ %.21329, %522 ], [ %.21329, %527 ], [ %.21329, %532 ], [ %.21329, %537 ], [ %.21329, %542 ], [ %.21329, %547 ], [ %.21329, %562 ], [ %.21329, %577 ], [ %.21329, %583 ], [ %.21329, %828 ], [ %.21329, %1124 ], [ %.21329, %1149 ], [ %.21329, %1599 ], [ %.21329, %1687 ], [ %.21329, %1674 ], [ %.21329, %802 ], [ %.21329, %815 ], [ %.21329, %801 ], [ %.21329, %._crit_edge ], [ %.51332, %.loopexit ], [ %.21329, %1430 ], [ %.21329, %1393 ], [ %.21329, %1382 ], [ %.21329, %.thread4626 ], [ %.21329, %1445 ], [ %.21329, %1457 ], [ %.21329, %1408 ], [ %.21329, %1420 ], [ %.21329, %1358 ], [ %.21329, %1370 ], [ %.21329, %1583 ], [ %.21329, %1583 ], [ %.21329, %1576 ], [ %.21329, %1587 ], [ %.21329, %66 ], [ %.21329, %66 ], [ %.21329, %213 ], [ %.21329, %588 ], [ %.21329, %1154 ], [ %.21329, %1154 ], [ %.21329, %231 ], [ %.21329, %1474 ]
  %.51326 = phi ptr [ %.113223538, %1720 ], [ %.113223538, %1710 ], [ %.113223538, %1673 ], [ %.113223538, %1651 ], [ %.113223538, %1632 ], [ %.113223538, %1621 ], [ %.113223538, %1570 ], [ %.113223538, %thread-pre-split ], [ %.113223538, %1508 ], [ %.113223538, %873 ], [ %.113223538, %865 ], [ %.113223538, %867 ], [ %.113223538, %869 ], [ %.113223538, %871 ], [ %.113223538, %859 ], [ %.113223538, %.loopexit1781 ], [ %.113223538, %.loopexit1781 ], [ %.113223538, %.loopexit1781 ], [ %.113223538, %842 ], [ %.113223538, %844 ], [ %.113223538, %836 ], [ %.113223538, %828 ], [ %.113223538, %829 ], [ %.113223538, %830 ], [ %spec.select1630, %608 ], [ %spec.select1630, %606 ], [ %spec.select1630, %604 ], [ %spec.select1630, %602 ], [ %spec.select1630, %600 ], [ %.113223538, %578 ], [ %.113223538, %574 ], [ %.113223538, %559 ], [ %.113223538, %514 ], [ %.113223538, %513 ], [ %.113223538, %506 ], [ %.113223538, %481 ], [ %.113223538, %450 ], [ %.113223538, %437 ], [ %.113223538, %420 ], [ %.113223538, %422 ], [ %.113223538, %415 ], [ %.113223538, %298 ], [ %.113223538, %346 ], [ %.113223538, %336 ], [ %.113223538, %240 ], [ %.113223538, %269 ], [ %.113223538, %218 ], [ %.113223538, %205 ], [ %.113223538, %199 ], [ %.113223538, %189 ], [ %.113223538, %174 ], [ %.113223538, %114 ], [ %.113223538, %137 ], [ %.113223538, %127 ], [ %.113223538, %99 ], [ %.113223538, %107 ], [ %.113223538, %86 ], [ %.113223538, %76 ], [ %.113223538, %61 ], [ %.113223538, %61 ], [ %.113223538, %114 ], [ %.113223538, %147 ], [ %.113223538, %152 ], [ %.113223538, %157 ], [ %.113223538, %162 ], [ %.113223538, %177 ], [ %.113223538, %192 ], [ %.113223538, %255 ], [ %.113223538, %241 ], [ %.113223538, %234 ], [ %.113223538, %284 ], [ %.113223538, %270 ], [ %.113223538, %293 ], [ %.113223538, %298 ], [ %.113223538, %465 ], [ %.113223538, %451 ], [ %.113223538, %497 ], [ %.113223538, %482 ], [ %.113223538, %515 ], [ %.113223538, %522 ], [ %.113223538, %527 ], [ %.113223538, %532 ], [ %.113223538, %537 ], [ %.113223538, %542 ], [ %.113223538, %547 ], [ %.113223538, %562 ], [ %.113223538, %577 ], [ %.113223538, %583 ], [ %.113223538, %828 ], [ %.113223538, %1124 ], [ %.113223538, %1149 ], [ %.113223538, %1599 ], [ %.113223538, %1687 ], [ %.113223538, %1674 ], [ null, %802 ], [ null, %815 ], [ null, %801 ], [ %.113223538, %._crit_edge ], [ %.113223538, %.loopexit ], [ %.113223538, %1430 ], [ %.113223538, %1393 ], [ %.113223538, %1382 ], [ %.113223538, %.thread4626 ], [ %.113223538, %1445 ], [ %.113223538, %1457 ], [ %.113223538, %1408 ], [ %.113223538, %1420 ], [ %.113223538, %1358 ], [ %.113223538, %1370 ], [ %.113223538, %1583 ], [ %.113223538, %1583 ], [ %.113223538, %1576 ], [ %.113223538, %1587 ], [ %.113223538, %66 ], [ %.113223538, %66 ], [ %.113223538, %213 ], [ %.113223538, %588 ], [ %.113223538, %1154 ], [ %.113223538, %1154 ], [ %.113223538, %231 ], [ %.113223538, %1474 ]
  %.14 = phi ptr [ %.11308, %1720 ], [ %.11308, %1710 ], [ %.11308, %1673 ], [ %1654, %1651 ], [ %.11308, %1632 ], [ %.11308, %1621 ], [ %.11308, %1570 ], [ %.11308, %thread-pre-split ], [ %44, %1508 ], [ %.11308, %873 ], [ %.11308, %865 ], [ %.11308, %867 ], [ %.11308, %869 ], [ %.11308, %871 ], [ %.11308, %859 ], [ %.11308, %.loopexit1781 ], [ %.11308, %.loopexit1781 ], [ %.11308, %.loopexit1781 ], [ %.11308, %842 ], [ %.11308, %844 ], [ %.11308, %836 ], [ %.11308, %828 ], [ %.11308, %829 ], [ %.11308, %830 ], [ %.11308, %608 ], [ %.11308, %606 ], [ %.11308, %604 ], [ %.11308, %602 ], [ %.11308, %600 ], [ %.11308, %578 ], [ %.11308, %574 ], [ %.11308, %559 ], [ %.11308, %514 ], [ %.11308, %513 ], [ %.11308, %506 ], [ %.11308, %481 ], [ %.11308, %450 ], [ %.11308, %437 ], [ %.11308, %420 ], [ %.11308, %422 ], [ %.11308, %415 ], [ %.11308, %298 ], [ %.11308, %346 ], [ %.11308, %336 ], [ %.11308, %240 ], [ %.11308, %269 ], [ %.11308, %218 ], [ %.11308, %205 ], [ %.11308, %199 ], [ %.11308, %189 ], [ %.11308, %174 ], [ %.11308, %114 ], [ %.11308, %137 ], [ %.11308, %127 ], [ %.11308, %99 ], [ %.11308, %107 ], [ %.11308, %86 ], [ %.11308, %76 ], [ %.11308, %61 ], [ %.11308, %61 ], [ %.11308, %114 ], [ %.11308, %147 ], [ %.11308, %152 ], [ %.11308, %157 ], [ %.11308, %162 ], [ %.11308, %177 ], [ %.11308, %192 ], [ %.11308, %255 ], [ %.11308, %241 ], [ %.11308, %234 ], [ %.11308, %284 ], [ %.11308, %270 ], [ %.11308, %293 ], [ %.11308, %298 ], [ %.11308, %465 ], [ %.11308, %451 ], [ %.11308, %497 ], [ %.11308, %482 ], [ %.11308, %515 ], [ %.11308, %522 ], [ %.11308, %527 ], [ %.11308, %532 ], [ %.11308, %537 ], [ %.11308, %542 ], [ %.11308, %547 ], [ %.11308, %562 ], [ %.11308, %577 ], [ %.11308, %583 ], [ %.11308, %828 ], [ %.11308, %1124 ], [ %.11308, %1149 ], [ %.11308, %1599 ], [ %.11308, %1687 ], [ %.11308, %1674 ], [ %.213093527, %802 ], [ %.213093527, %815 ], [ %.213093527, %801 ], [ %763, %._crit_edge ], [ %spec.select1640, %.loopexit ], [ %.11308, %1430 ], [ %.11308, %1393 ], [ %.11308, %1382 ], [ %.11308, %.thread4626 ], [ %.11308, %1445 ], [ %.11308, %1457 ], [ %.11308, %1408 ], [ %.11308, %1420 ], [ %.11308, %1358 ], [ %.11308, %1370 ], [ %.11308, %1583 ], [ %.11308, %1583 ], [ %.11308, %1576 ], [ %.11308, %1587 ], [ %1479, %1474 ], [ %.11308, %1154 ], [ %.11308, %1154 ], [ %.11308, %588 ], [ %.11308, %213 ], [ %.11308, %66 ], [ %.11308, %66 ], [ %.11308, %231 ]
  %1731 = getelementptr inbounds i8, ptr %.14, i64 1
  %.not1443 = icmp eq ptr %1731, %35
  br i1 %.not1443, label %._crit_edge3543, label %50, !llvm.loop !39

._crit_edge3543:                                  ; preds = %.thread1671
  %.not1444 = icmp ne ptr %.51326, null
  %1732 = zext i1 %.not1444 to i32
  %.not1445 = icmp ne ptr %.91336, null
  %1733 = zext i1 %.not1445 to i32
  %.not1446 = icmp ne ptr %.31340, null
  %1734 = zext i1 %.not1446 to i32
  %.not1447 = icmp ne ptr %.71348, null
  %1735 = zext i1 %.not1447 to i32
  %.not1448 = icmp ne ptr %.41353, null
  %1736 = zext i1 %.not1448 to i32
  %1737 = add nuw nsw i32 %1735, %1736
  %1738 = add nuw nsw i32 %1737, %1734
  %1739 = add nuw nsw i32 %1738, %1733
  %1740 = add nuw nsw i32 %1739, %1732
  %1741 = icmp ult i32 %1740, 2
  br i1 %1741, label %1743, label %1742

1742:                                             ; preds = %._crit_edge3543
  tail call void @__assert_fail(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 2132, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1743:                                             ; preds = %._crit_edge3543
  %1744 = load i32, ptr %10, align 4
  %1745 = and i32 %1744, 2130706432
  %1746 = icmp eq i32 %1745, 0
  br i1 %1746, label %1748, label %1747

1747:                                             ; preds = %1743
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2134, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1748:                                             ; preds = %1743
  br i1 %.not1444, label %1749, label %1771

1749:                                             ; preds = %1748
  %1750 = getelementptr inbounds i8, ptr %1, i64 24
  %1751 = load ptr, ptr %1750, align 8, !tbaa !31
  %.not1449 = icmp eq ptr %1751, null
  br i1 %.not1449, label %1771, label %1752, !prof !15

1752:                                             ; preds = %1749
  %1753 = load i32, ptr %0, align 8
  %1754 = shl i32 %.33, 10
  %1755 = and i32 %1754, 130048
  %1756 = and i32 %1753, -130049
  %1757 = or disjoint i32 %1756, %1755
  store i32 %1757, ptr %0, align 8
  %1758 = load ptr, ptr %1750, align 8, !tbaa !31
  %1759 = ptrtoint ptr %35 to i64
  %1760 = ptrtoint ptr %.51326 to i64
  %1761 = sub i64 %1759, %1760
  %1762 = tail call i32 %1758(ptr noundef nonnull %0, ptr noundef nonnull %.51326, i64 noundef %1761) #3
  %.not1450 = icmp eq i32 %1762, 0
  %.pre4609 = load i32, ptr %10, align 4
  br i1 %.not1450, label %1766, label %1763, !prof !16

1763:                                             ; preds = %1752
  store i32 %.61368, ptr %8, align 4, !tbaa !5
  %1764 = and i32 %.pre4609, -2130706433
  %1765 = or disjoint i32 %1764, 50331648
  store i32 %1765, ptr %10, align 4
  br label %1766

1766:                                             ; preds = %1763, %1752
  %1767 = phi i32 [ %1765, %1763 ], [ %.pre4609, %1752 ]
  %1768 = load i32, ptr %0, align 8
  %1769 = lshr i32 %1768, 10
  %1770 = and i32 %1767, 2130706432
  %.not1451 = icmp eq i32 %1770, 0
  br i1 %.not1451, label %1771, label %.thread1710, !prof !16

1771:                                             ; preds = %1749, %1766, %1748
  %1772 = phi i32 [ %1744, %1748 ], [ %1767, %1766 ], [ %1744, %1749 ]
  %.35 = phi i32 [ %.33, %1748 ], [ %1769, %1766 ], [ %.33, %1749 ]
  %1773 = and i32 %1772, 2130706432
  %1774 = icmp eq i32 %1773, 0
  br i1 %1774, label %1776, label %1775

1775:                                             ; preds = %1771
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2135, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1776:                                             ; preds = %1771
  br i1 %.not1445, label %1777, label %1799

1777:                                             ; preds = %1776
  %1778 = getelementptr inbounds i8, ptr %1, i64 32
  %1779 = load ptr, ptr %1778, align 8, !tbaa !32
  %.not1452 = icmp eq ptr %1779, null
  br i1 %.not1452, label %1799, label %1780, !prof !15

1780:                                             ; preds = %1777
  %1781 = load i32, ptr %0, align 8
  %1782 = shl i32 %.35, 10
  %1783 = and i32 %1782, 130048
  %1784 = and i32 %1781, -130049
  %1785 = or disjoint i32 %1784, %1783
  store i32 %1785, ptr %0, align 8
  %1786 = load ptr, ptr %1778, align 8, !tbaa !32
  %1787 = ptrtoint ptr %35 to i64
  %1788 = ptrtoint ptr %.91336 to i64
  %1789 = sub i64 %1787, %1788
  %1790 = tail call i32 %1786(ptr noundef nonnull %0, ptr noundef nonnull %.91336, i64 noundef %1789) #3
  %.not1453 = icmp eq i32 %1790, 0
  %.pre4610 = load i32, ptr %10, align 4
  br i1 %.not1453, label %1794, label %1791, !prof !16

1791:                                             ; preds = %1780
  store i32 %.61368, ptr %8, align 4, !tbaa !5
  %1792 = and i32 %.pre4610, -2130706433
  %1793 = or disjoint i32 %1792, 67108864
  store i32 %1793, ptr %10, align 4
  br label %1794

1794:                                             ; preds = %1791, %1780
  %1795 = phi i32 [ %1793, %1791 ], [ %.pre4610, %1780 ]
  %1796 = load i32, ptr %0, align 8
  %1797 = lshr i32 %1796, 10
  %1798 = and i32 %1795, 2130706432
  %.not1454 = icmp eq i32 %1798, 0
  br i1 %.not1454, label %1799, label %.thread1710, !prof !16

1799:                                             ; preds = %1777, %1794, %1776
  %1800 = phi i32 [ %1772, %1776 ], [ %1795, %1794 ], [ %1772, %1777 ]
  %.37 = phi i32 [ %.35, %1776 ], [ %1797, %1794 ], [ %.35, %1777 ]
  %1801 = and i32 %1800, 2130706432
  %1802 = icmp eq i32 %1801, 0
  br i1 %1802, label %1804, label %1803

1803:                                             ; preds = %1799
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2136, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1804:                                             ; preds = %1799
  br i1 %.not1446, label %1805, label %1827

1805:                                             ; preds = %1804
  %1806 = getelementptr inbounds i8, ptr %1, i64 8
  %1807 = load ptr, ptr %1806, align 8, !tbaa !26
  %.not1455 = icmp eq ptr %1807, null
  br i1 %.not1455, label %1827, label %1808, !prof !15

1808:                                             ; preds = %1805
  %1809 = load i32, ptr %0, align 8
  %1810 = shl i32 %.37, 10
  %1811 = and i32 %1810, 130048
  %1812 = and i32 %1809, -130049
  %1813 = or disjoint i32 %1812, %1811
  store i32 %1813, ptr %0, align 8
  %1814 = load ptr, ptr %1806, align 8, !tbaa !26
  %1815 = ptrtoint ptr %35 to i64
  %1816 = ptrtoint ptr %.31340 to i64
  %1817 = sub i64 %1815, %1816
  %1818 = tail call i32 %1814(ptr noundef nonnull %0, ptr noundef nonnull %.31340, i64 noundef %1817) #3
  %.not1456 = icmp eq i32 %1818, 0
  %.pre4611 = load i32, ptr %10, align 4
  br i1 %.not1456, label %1822, label %1819, !prof !16

1819:                                             ; preds = %1808
  store i32 %.61368, ptr %8, align 4, !tbaa !5
  %1820 = and i32 %.pre4611, -2130706433
  %1821 = or disjoint i32 %1820, 33554432
  store i32 %1821, ptr %10, align 4
  br label %1822

1822:                                             ; preds = %1819, %1808
  %1823 = phi i32 [ %1821, %1819 ], [ %.pre4611, %1808 ]
  %1824 = load i32, ptr %0, align 8
  %1825 = lshr i32 %1824, 10
  %1826 = and i32 %1823, 2130706432
  %.not1457 = icmp eq i32 %1826, 0
  br i1 %.not1457, label %1827, label %.thread1710, !prof !16

1827:                                             ; preds = %1805, %1822, %1804
  %1828 = phi i32 [ %1800, %1804 ], [ %1823, %1822 ], [ %1800, %1805 ]
  %.39 = phi i32 [ %.37, %1804 ], [ %1825, %1822 ], [ %.37, %1805 ]
  %1829 = and i32 %1828, 2130706432
  %1830 = icmp eq i32 %1829, 0
  br i1 %1830, label %1832, label %1831

1831:                                             ; preds = %1827
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2137, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1832:                                             ; preds = %1827
  br i1 %.not1447, label %1833, label %1855

1833:                                             ; preds = %1832
  %1834 = getelementptr inbounds i8, ptr %1, i64 48
  %1835 = load ptr, ptr %1834, align 8, !tbaa !37
  %.not1458 = icmp eq ptr %1835, null
  br i1 %.not1458, label %1855, label %1836, !prof !15

1836:                                             ; preds = %1833
  %1837 = load i32, ptr %0, align 8
  %1838 = shl i32 %.39, 10
  %1839 = and i32 %1838, 130048
  %1840 = and i32 %1837, -130049
  %1841 = or disjoint i32 %1840, %1839
  store i32 %1841, ptr %0, align 8
  %1842 = load ptr, ptr %1834, align 8, !tbaa !37
  %1843 = ptrtoint ptr %35 to i64
  %1844 = ptrtoint ptr %.71348 to i64
  %1845 = sub i64 %1843, %1844
  %1846 = tail call i32 %1842(ptr noundef nonnull %0, ptr noundef nonnull %.71348, i64 noundef %1845) #3
  %.not1459 = icmp eq i32 %1846, 0
  %.pre4612 = load i32, ptr %10, align 4
  br i1 %.not1459, label %1850, label %1847, !prof !16

1847:                                             ; preds = %1836
  store i32 %.61368, ptr %8, align 4, !tbaa !5
  %1848 = and i32 %.pre4612, -2130706433
  %1849 = or disjoint i32 %1848, 100663296
  store i32 %1849, ptr %10, align 4
  br label %1850

1850:                                             ; preds = %1847, %1836
  %1851 = phi i32 [ %1849, %1847 ], [ %.pre4612, %1836 ]
  %1852 = load i32, ptr %0, align 8
  %1853 = lshr i32 %1852, 10
  %1854 = and i32 %1851, 2130706432
  %.not1460 = icmp eq i32 %1854, 0
  br i1 %.not1460, label %1855, label %.thread1710, !prof !16

1855:                                             ; preds = %1833, %1850, %1832
  %1856 = phi i32 [ %1828, %1832 ], [ %1851, %1850 ], [ %1828, %1833 ]
  %.41 = phi i32 [ %.39, %1832 ], [ %1853, %1850 ], [ %.39, %1833 ]
  %1857 = and i32 %1856, 2130706432
  %1858 = icmp eq i32 %1857, 0
  br i1 %1858, label %1860, label %1859

1859:                                             ; preds = %1855
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2138, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #4
  unreachable

1860:                                             ; preds = %1855
  br i1 %.not1448, label %1861, label %._crit_edge4614

._crit_edge4614:                                  ; preds = %1860
  %.pre4615 = load i32, ptr %0, align 8
  br label %1882

1861:                                             ; preds = %1860
  %1862 = getelementptr inbounds i8, ptr %1, i64 16
  %1863 = load ptr, ptr %1862, align 8, !tbaa !24
  %.not1461 = icmp eq ptr %1863, null
  %.pre4616 = load i32, ptr %0, align 8
  br i1 %.not1461, label %1882, label %1864, !prof !15

1864:                                             ; preds = %1861
  %1865 = shl i32 %.41, 10
  %1866 = and i32 %1865, 130048
  %1867 = and i32 %.pre4616, -130049
  %1868 = or disjoint i32 %1867, %1866
  store i32 %1868, ptr %0, align 8
  %1869 = load ptr, ptr %1862, align 8, !tbaa !24
  %1870 = ptrtoint ptr %35 to i64
  %1871 = ptrtoint ptr %.41353 to i64
  %1872 = sub i64 %1870, %1871
  %1873 = tail call i32 %1869(ptr noundef nonnull %0, ptr noundef nonnull %.41353, i64 noundef %1872) #3
  %.not1462 = icmp eq i32 %1873, 0
  %.pre4613 = load i32, ptr %10, align 4
  br i1 %.not1462, label %1877, label %1874, !prof !16

1874:                                             ; preds = %1864
  store i32 %.61368, ptr %8, align 4, !tbaa !5
  %1875 = and i32 %.pre4613, -2130706433
  %1876 = or disjoint i32 %1875, 134217728
  store i32 %1876, ptr %10, align 4
  br label %1877

1877:                                             ; preds = %1874, %1864
  %1878 = phi i32 [ %1876, %1874 ], [ %.pre4613, %1864 ]
  %1879 = load i32, ptr %0, align 8
  %1880 = lshr i32 %1879, 10
  %1881 = and i32 %1878, 2130706432
  %.not1463 = icmp eq i32 %1881, 0
  br i1 %.not1463, label %1882, label %.thread1710, !prof !16

1882:                                             ; preds = %._crit_edge4614, %1861, %1877
  %1883 = phi i32 [ %.pre4615, %._crit_edge4614 ], [ %1879, %1877 ], [ %.pre4616, %1861 ]
  %.43 = phi i32 [ %.41, %._crit_edge4614 ], [ %1880, %1877 ], [ %.41, %1861 ]
  store i32 %.61368, ptr %8, align 4, !tbaa !5
  %1884 = shl i32 %.43, 10
  %1885 = and i32 %1884, 130048
  %1886 = and i32 %1883, -130049
  %1887 = or disjoint i32 %1886, %1885
  store i32 %1887, ptr %0, align 8
  br label %.thread1710

.thread:                                          ; preds = %1005, %996, %961, %985, %1017, %921, %1120, %.thread1669, %.loopexit1782, %771, %410, %407, %359, %1591, %1467, %1701, %1664, %1606, %1566, %1233, %1197, %1162, %1150, %1125, %855, %849, %.thread1658, %584, %579, %570, %563, %555, %548, %543, %538, %533, %528, %523, %split, %509, %440, %433, %428, %327, %305, %294, %228, %214, %201, %193, %185, %178, %170, %163, %158, %153, %148, %123, %103, %62, %57
  %1888 = phi i32 [ %60, %57 ], [ %1704, %1701 ], [ %1667, %1664 ], [ %1609, %1606 ], [ %1594, %1591 ], [ %1569, %1566 ], [ %1470, %1467 ], [ %1200, %1197 ], [ %1236, %1233 ], [ %1165, %1162 ], [ %1153, %1150 ], [ %1128, %1125 ], [ %852, %849 ], [ %858, %855 ], [ %595, %.thread1658 ], [ %587, %584 ], [ %582, %579 ], [ %573, %570 ], [ %566, %563 ], [ %558, %555 ], [ %551, %548 ], [ %546, %543 ], [ %541, %538 ], [ %536, %533 ], [ %531, %528 ], [ %526, %523 ], [ %521, %split ], [ %512, %509 ], [ %443, %440 ], [ %436, %433 ], [ %431, %428 ], [ %308, %305 ], [ %329, %327 ], [ %297, %294 ], [ %230, %228 ], [ %217, %214 ], [ %204, %201 ], [ %196, %193 ], [ %188, %185 ], [ %181, %178 ], [ %173, %170 ], [ %166, %163 ], [ %161, %158 ], [ %156, %153 ], [ %151, %148 ], [ %125, %123 ], [ %106, %103 ], [ %65, %62 ], [ %362, %359 ], [ %409, %407 ], [ %412, %410 ], [ %774, %771 ], [ %793, %.loopexit1782 ], [ %824, %.thread1669 ], [ %999, %996 ], [ %1008, %1005 ], [ %964, %961 ], [ %988, %985 ], [ %1020, %1017 ], [ %924, %921 ], [ %1123, %1120 ]
  %.44 = phi i32 [ %.013703531, %57 ], [ 61, %1701 ], [ 60, %1664 ], [ 56, %1606 ], [ 54, %1591 ], [ 53, %1566 ], [ 58, %1467 ], [ 57, %1197 ], [ 57, %1233 ], [ 48, %1162 ], [ 47, %1150 ], [ 52, %1125 ], [ 50, %849 ], [ 50, %855 ], [ 44, %.thread1658 ], [ 43, %584 ], [ 42, %579 ], [ 41, %570 ], [ 40, %563 ], [ 39, %555 ], [ 36, %548 ], [ 38, %543 ], [ 37, %538 ], [ 35, %533 ], [ 34, %528 ], [ 33, %523 ], [ 32, %split ], [ 1, %509 ], [ 1, %440 ], [ %.11371, %433 ], [ 1, %428 ], [ 18, %305 ], [ 18, %327 ], [ 17, %294 ], [ 14, %228 ], [ 14, %214 ], [ 13, %201 ], [ 12, %193 ], [ 11, %185 ], [ 10, %178 ], [ 9, %170 ], [ 8, %163 ], [ 7, %158 ], [ 6, %153 ], [ 5, %148 ], [ 4, %123 ], [ 3, %103 ], [ 1, %62 ], [ 19, %359 ], [ 19, %407 ], [ 19, %410 ], [ 45, %771 ], [ 45, %.loopexit1782 ], [ 45, %.thread1669 ], [ 50, %996 ], [ 50, %1005 ], [ 50, %961 ], [ 50, %985 ], [ 50, %1017 ], [ 52, %921 ], [ %.17, %1120 ]
  %.71369 = phi i32 [ %54, %57 ], [ %.21364, %1701 ], [ %.21364, %1664 ], [ %.21364, %1606 ], [ %.21364, %1591 ], [ 1, %1566 ], [ %.21364, %1467 ], [ %.21364, %1197 ], [ %.21364, %1233 ], [ %.21364, %1162 ], [ %.21364, %1150 ], [ %.21364, %1125 ], [ %.21364, %849 ], [ %.21364, %855 ], [ %.21364, %.thread1658 ], [ %.21364, %584 ], [ %.21364, %579 ], [ %.21364, %570 ], [ %.21364, %563 ], [ %.21364, %555 ], [ %.21364, %548 ], [ %.21364, %543 ], [ %.21364, %538 ], [ %.21364, %533 ], [ %.21364, %528 ], [ %.21364, %523 ], [ %.21364, %split ], [ %.21364, %509 ], [ %.21364, %440 ], [ %.21364, %433 ], [ %.21364, %428 ], [ %.21364, %305 ], [ %.21364, %327 ], [ %.21364, %294 ], [ %.21364, %228 ], [ %.21364, %214 ], [ %.21364, %201 ], [ %.21364, %193 ], [ %.21364, %185 ], [ %.21364, %178 ], [ %.21364, %170 ], [ %.21364, %163 ], [ %.21364, %158 ], [ %.21364, %153 ], [ %.21364, %148 ], [ %.21364, %123 ], [ %.21364, %103 ], [ %.21364, %62 ], [ %.21364, %359 ], [ %.21364, %407 ], [ %.21364, %410 ], [ %768, %771 ], [ %790, %.loopexit1782 ], [ %821, %.thread1669 ], [ %.21364, %996 ], [ %.21364, %1005 ], [ %.21364, %961 ], [ %.21364, %985 ], [ %.21364, %1017 ], [ %918, %921 ], [ %1117, %1120 ]
  %.15 = phi ptr [ %.013073540, %57 ], [ %.11308, %1701 ], [ %.11308, %1664 ], [ %.11308, %1606 ], [ %.11308, %1591 ], [ %.11308, %1566 ], [ %.11308, %1467 ], [ %.11308, %1197 ], [ %.11308, %1233 ], [ %.11308, %1162 ], [ %.11308, %1150 ], [ %.11308, %1125 ], [ %.11308, %849 ], [ %.11308, %855 ], [ %.11308, %.thread1658 ], [ %.11308, %584 ], [ %.11308, %579 ], [ %.11308, %570 ], [ %.11308, %563 ], [ %.11308, %555 ], [ %.11308, %548 ], [ %.11308, %543 ], [ %.11308, %538 ], [ %.11308, %533 ], [ %.11308, %528 ], [ %.11308, %523 ], [ %.11308, %split ], [ %.11308, %509 ], [ %.11308, %440 ], [ %.11308, %433 ], [ %.11308, %428 ], [ %.11308, %305 ], [ %.11308, %327 ], [ %.11308, %294 ], [ %.11308, %228 ], [ %.11308, %214 ], [ %.11308, %201 ], [ %.11308, %193 ], [ %.11308, %185 ], [ %.11308, %178 ], [ %.11308, %170 ], [ %.11308, %163 ], [ %.11308, %158 ], [ %.11308, %153 ], [ %.11308, %148 ], [ %.11308, %123 ], [ %.11308, %103 ], [ %.11308, %62 ], [ %.11308, %359 ], [ %.11308, %407 ], [ %.11308, %410 ], [ %763, %771 ], [ %.213093527, %.loopexit1782 ], [ %.213093527, %.thread1669 ], [ %.613133506, %996 ], [ %.613133506, %1005 ], [ %.613133506, %961 ], [ %.713143502, %985 ], [ %.613133506, %1017 ], [ %.613133506, %921 ], [ %spec.select1640, %1120 ]
  %1889 = and i32 %1888, 2130706432
  %1890 = icmp eq i32 %1889, 0
  br i1 %1890, label %1891, label %1893

1891:                                             ; preds = %.thread
  %1892 = or disjoint i32 %1888, 536870912
  store i32 %1892, ptr %10, align 4
  br label %1893

1893:                                             ; preds = %.thread, %1891
  store i32 %.71369, ptr %8, align 4, !tbaa !5
  %1894 = load i32, ptr %0, align 8
  %1895 = shl nuw nsw i32 %.44, 10
  %1896 = and i32 %1895, 130048
  %1897 = and i32 %1894, -130049
  %1898 = or disjoint i32 %1897, %1896
  store i32 %1898, ptr %0, align 8
  %1899 = ptrtoint ptr %.15 to i64
  %1900 = ptrtoint ptr %2 to i64
  %1901 = sub i64 %1899, %1900
  br label %.thread1710

.thread1710:                                      ; preds = %1877, %1850, %1822, %1794, %1766, %1463, %1426, %1385, %1376, %1335, %1331, %953, %910, %.thread1741, %825, %19, %24, %15, %15, %15, %15, %16, %4, %1893, %1882, %1726, %1693, %1638, %1545, %1540, %1278, %1265, %1225, %1193, %503, %471, %352, %290, %261, %143, %92, %28
  %.7 = phi i64 [ 1, %28 ], [ %1901, %1893 ], [ %1729, %1726 ], [ %1695, %1693 ], [ %1641, %1638 ], [ %1543, %1540 ], [ %1553, %1545 ], [ %1228, %1225 ], [ %1274, %1265 ], [ %1284, %1278 ], [ %1195, %1193 ], [ %827, %825 ], [ %505, %503 ], [ %473, %471 ], [ %355, %352 ], [ %263, %261 ], [ %292, %290 ], [ %146, %143 ], [ %95, %92 ], [ %3, %1882 ], [ 0, %4 ], [ 0, %16 ], [ 0, %15 ], [ 0, %15 ], [ 0, %15 ], [ 0, %15 ], [ 0, %24 ], [ 0, %19 ], [ %1507, %.thread1741 ], [ %955, %953 ], [ %912, %910 ], [ %1466, %1463 ], [ %1429, %1426 ], [ %1392, %1385 ], [ %1379, %1376 ], [ %1343, %1335 ], [ %1334, %1331 ], [ %3, %1766 ], [ %3, %1794 ], [ %3, %1822 ], [ %3, %1850 ], [ %3, %1877 ]
  ret i64 %.7
}

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @parse_url_char(i32 noundef, i8 noundef signext) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @http_should_keep_alive(ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @http_message_needs_eof(ptr noundef) local_unnamed_addr #0

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umin.i64(i64, i64) #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nounwind }
attributes #4 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 4}
!6 = !{!"http_parser", !7, i64 0, !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 3, !7, i64 3, !7, i64 4, !10, i64 8, !11, i64 16, !11, i64 18, !7, i64 20, !7, i64 22, !7, i64 23, !7, i64 23, !12, i64 24}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"short", !8, i64 0}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{!14, !12, i64 56}
!14 = !{!"http_parser_settings", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72}
!15 = !{!"branch_weights", !"expected", i32 1, i32 2000}
!16 = !{!"branch_weights", !"expected", i32 2000, i32 1}
!17 = !{!8, !8, i64 0}
!18 = !{!7, !7, i64 0}
!19 = !{!6, !10, i64 8}
!20 = !{!14, !12, i64 0}
!21 = !{!"branch_weights", i32 1, i32 2001, i32 2000}
!22 = !{!6, !11, i64 16}
!23 = !{!6, !11, i64 18}
!24 = !{!14, !12, i64 16}
!25 = !{!12, !12, i64 0}
!26 = !{!14, !12, i64 8}
!27 = !{!"branch_weights", !"expected", i32 0, i32 -2147483648}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = !{!14, !12, i64 24}
!32 = !{!14, !12, i64 32}
!33 = distinct !{!33, !29}
!34 = distinct !{!34, !29}
!35 = !{!14, !12, i64 72}
!36 = !{!14, !12, i64 40}
!37 = !{!14, !12, i64 48}
!38 = !{!14, !12, i64 64}
!39 = distinct !{!39, !29}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LowerExpectIntrinsicPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass