; LLVM IR from mcallegari/qlcplus :: webaccess/src/qhttpserver (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 [92 x i8], align 1
@__PRETTY_FUNCTION__.http_parser_execute = external hidden unnamed_addr constant [94 x i8], align 1
@method_strings = external hidden global [33 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 [19 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 ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i32, align 4
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = 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) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %34 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %34, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  store ptr null, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  store ptr null, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  store ptr null, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  store ptr null, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  store ptr null, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  %35 = load ptr, ptr %6, align 8, !tbaa !5
  %36 = load i32, ptr %35, align 8
  %37 = lshr i32 %36, 10
  %38 = and i32 %37, 127
  store i32 %38, ptr %19, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  %39 = load ptr, ptr %6, align 8, !tbaa !5
  %40 = load i32, ptr %39, align 8
  %41 = lshr i32 %40, 31
  store i32 %41, ptr %20, align 4, !tbaa !11
  %42 = load ptr, ptr %6, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.http_parser, ptr %42, i32 0, i32 5
  %44 = load i32, ptr %43, align 4
  %45 = lshr i32 %44, 24
  %46 = and i32 %45, 127
  %47 = icmp ne i32 %46, 0
  br i1 %47, label %48, label %49

48:                                               ; preds = %4
  store i64 0, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

49:                                               ; preds = %4
  %50 = load i64, ptr %9, align 8, !tbaa !9
  %51 = icmp eq i64 %50, 0
  br i1 %51, label %52, label %141

52:                                               ; preds = %49
  %53 = load i32, ptr %19, align 4, !tbaa !11
  switch i32 %53, label %132 [
    i32 61, label %54
    i32 1, label %131
    i32 2, label %131
    i32 4, label %131
    i32 18, label %131
  ]

54:                                               ; preds = %52
  br label %55

55:                                               ; preds = %54
  %56 = load ptr, ptr %6, align 8, !tbaa !5
  %57 = getelementptr inbounds %struct.http_parser, ptr %56, i32 0, i32 5
  %58 = load i32, ptr %57, align 4
  %59 = lshr i32 %58, 24
  %60 = and i32 %59, 127
  %61 = icmp eq i32 %60, 0
  br i1 %61, label %62, label %63

62:                                               ; preds = %55
  br label %64

63:                                               ; preds = %55
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 661, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

64:                                               ; preds = %62
  %65 = load ptr, ptr %7, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.http_parser_settings, ptr %65, i32 0, i32 7
  %67 = load ptr, ptr %66, align 8, !tbaa !13
  %68 = icmp ne ptr %67, null
  %69 = xor i1 %68, true
  %70 = xor i1 %69, true
  %71 = zext i1 %70 to i32
  %72 = sext i32 %71 to i64
  %73 = call i64 @llvm.expect.i64(i64 %72, i64 1)
  %74 = icmp ne i64 %73, 0
  br i1 %74, label %75, label %128

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

95:                                               ; preds = %75
  br label %96

96:                                               ; preds = %95
  %97 = load ptr, ptr %6, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.http_parser, ptr %97, i32 0, i32 5
  %99 = load i32, ptr %98, align 4
  %100 = and i32 %99, -2130706433
  %101 = or i32 %100, 117440512
  store i32 %101, ptr %98, align 4
  br label %102

102:                                              ; preds = %96
  br label %103

103:                                              ; preds = %102
  br label %104

104:                                              ; preds = %103, %75
  %105 = load ptr, ptr %6, align 8, !tbaa !5
  %106 = load i32, ptr %105, align 8
  %107 = lshr i32 %106, 10
  %108 = and i32 %107, 127
  store i32 %108, ptr %19, align 4, !tbaa !11
  %109 = load ptr, ptr %6, align 8, !tbaa !5
  %110 = getelementptr inbounds %struct.http_parser, ptr %109, i32 0, i32 5
  %111 = load i32, ptr %110, align 4
  %112 = lshr i32 %111, 24
  %113 = and i32 %112, 127
  %114 = icmp ne i32 %113, 0
  %115 = xor i1 %114, true
  %116 = xor i1 %115, true
  %117 = zext i1 %116 to i32
  %118 = sext i32 %117 to i64
  %119 = call i64 @llvm.expect.i64(i64 %118, i64 0)
  %120 = icmp ne i64 %119, 0
  br i1 %120, label %121, label %127

121:                                              ; preds = %104
  %122 = load ptr, ptr %13, align 8, !tbaa !5
  %123 = load ptr, ptr %8, align 8, !tbaa !5
  %124 = ptrtoint ptr %122 to i64
  %125 = ptrtoint ptr %123 to i64
  %126 = sub i64 %124, %125
  store i64 %126, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

127:                                              ; preds = %104
  br label %128

128:                                              ; preds = %127, %64
  br label %129

129:                                              ; preds = %128
  br label %130

130:                                              ; preds = %129
  store i64 0, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

131:                                              ; preds = %52, %52, %52, %52
  store i64 0, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

132:                                              ; preds = %52
  br label %133

133:                                              ; preds = %132
  %134 = load ptr, ptr %6, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.http_parser, ptr %134, i32 0, i32 5
  %136 = load i32, ptr %135, align 4
  %137 = and i32 %136, -2130706433
  %138 = or i32 %137, 184549376
  store i32 %138, ptr %135, align 4
  br label %139

139:                                              ; preds = %133
  br label %140

140:                                              ; preds = %139
  store i64 1, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

141:                                              ; preds = %49
  %142 = load i32, ptr %19, align 4, !tbaa !11
  %143 = icmp eq i32 %142, 43
  br i1 %143, label %144, label %146

144:                                              ; preds = %141
  %145 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %145, ptr %14, align 8, !tbaa !5
  br label %146

146:                                              ; preds = %144, %141
  %147 = load i32, ptr %19, align 4, !tbaa !11
  %148 = icmp eq i32 %147, 48
  br i1 %148, label %149, label %151

149:                                              ; preds = %146
  %150 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %150, ptr %15, align 8, !tbaa !5
  br label %151

151:                                              ; preds = %149, %146
  %152 = load i32, ptr %19, align 4, !tbaa !11
  switch i32 %152, label %157 [
    i32 27, label %153
    i32 21, label %153
    i32 22, label %153
    i32 23, label %153
    i32 24, label %153
    i32 25, label %153
    i32 26, label %153
    i32 28, label %153
    i32 29, label %153
    i32 30, label %153
    i32 31, label %153
    i32 16, label %155
  ]

153:                                              ; preds = %151, %151, %151, %151, %151, %151, %151, %151, %151, %151, %151
  %154 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %154, ptr %16, align 8, !tbaa !5
  br label %158

155:                                              ; preds = %151
  %156 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %156, ptr %18, align 8, !tbaa !5
  br label %158

157:                                              ; preds = %151
  br label %158

158:                                              ; preds = %157, %155, %153
  %159 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %159, ptr %13, align 8, !tbaa !5
  br label %160

160:                                              ; preds = %5677, %158
  %161 = load ptr, ptr %13, align 8, !tbaa !5
  %162 = load ptr, ptr %8, align 8, !tbaa !5
  %163 = load i64, ptr %9, align 8, !tbaa !9
  %164 = getelementptr inbounds i8, ptr %162, i64 %163
  %165 = icmp ne ptr %161, %164
  br i1 %165, label %166, label %5680

166:                                              ; preds = %160
  %167 = load ptr, ptr %13, align 8, !tbaa !5
  %168 = load i8, ptr %167, align 1, !tbaa !15
  store i8 %168, ptr %11, align 1, !tbaa !15
  %169 = load i32, ptr %19, align 4, !tbaa !11
  %170 = icmp ule i32 %169, 56
  br i1 %170, label %171, label %199

171:                                              ; preds = %166
  br label %172

172:                                              ; preds = %171
  %173 = load ptr, ptr %6, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.http_parser, ptr %173, i32 0, i32 1
  %175 = load i32, ptr %174, align 4, !tbaa !16
  %176 = add i32 %175, 1
  store i32 %176, ptr %174, align 4, !tbaa !16
  %177 = load ptr, ptr %6, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.http_parser, ptr %177, i32 0, i32 1
  %179 = load i32, ptr %178, align 4, !tbaa !16
  %180 = icmp ugt i32 %179, 81920
  %181 = xor i1 %180, true
  %182 = xor i1 %181, true
  %183 = zext i1 %182 to i32
  %184 = sext i32 %183 to i64
  %185 = call i64 @llvm.expect.i64(i64 %184, i64 0)
  %186 = icmp ne i64 %185, 0
  br i1 %186, label %187, label %196

187:                                              ; preds = %172
  br label %188

188:                                              ; preds = %187
  %189 = load ptr, ptr %6, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.http_parser, ptr %189, i32 0, i32 5
  %191 = load i32, ptr %190, align 4
  %192 = and i32 %191, -2130706433
  %193 = or i32 %192, 201326592
  store i32 %193, ptr %190, align 4
  br label %194

194:                                              ; preds = %188
  br label %195

195:                                              ; preds = %194
  br label %6150

196:                                              ; preds = %172
  br label %197

197:                                              ; preds = %196
  br label %198

198:                                              ; preds = %197
  br label %199

199:                                              ; preds = %198, %166
  br label %200

200:                                              ; preds = %4995, %4366, %4249, %4149, %3978, %3927, %3897, %2415, %325, %199
  %201 = load i32, ptr %19, align 4, !tbaa !11
  switch i32 %201, label %5675 [
    i32 1, label %202
    i32 2, label %228
    i32 3, label %331
    i32 4, label %374
    i32 5, label %472
    i32 6, label %489
    i32 7, label %506
    i32 8, label %523
    i32 9, label %540
    i32 10, label %572
    i32 11, label %631
    i32 12, label %664
    i32 13, label %732
    i32 14, label %764
    i32 15, label %831
    i32 16, label %854
    i32 17, label %1039
    i32 18, label %1056
    i32 19, label %1292
    i32 20, label %1809
    i32 21, label %1852
    i32 22, label %1852
    i32 23, label %1852
    i32 24, label %1852
    i32 25, label %1887
    i32 26, label %1887
    i32 27, label %1887
    i32 28, label %1887
    i32 29, label %1887
    i32 30, label %1887
    i32 31, label %1887
    i32 32, label %2098
    i32 33, label %2112
    i32 34, label %2129
    i32 35, label %2146
    i32 36, label %2163
    i32 37, label %2180
    i32 38, label %2212
    i32 39, label %2280
    i32 40, label %2313
    i32 41, label %2386
    i32 42, label %2406
    i32 43, label %2480
    i32 44, label %3003
    i32 47, label %3023
    i32 48, label %3148
    i32 50, label %3899
    i32 49, label %3919
    i32 45, label %3979
    i32 46, label %3996
    i32 55, label %4150
    i32 56, label %4367
    i32 60, label %4847
    i32 61, label %4997
    i32 62, label %5010
    i32 51, label %5124
    i32 52, label %5168
    i32 53, label %5243
    i32 54, label %5258
    i32 57, label %5380
    i32 58, label %5450
    i32 59, label %5570
  ]

202:                                              ; preds = %200
  %203 = load i8, ptr %11, align 1, !tbaa !15
  %204 = sext i8 %203 to i32
  %205 = icmp eq i32 %204, 13
  br i1 %205, label %210, label %206

206:                                              ; preds = %202
  %207 = load i8, ptr %11, align 1, !tbaa !15
  %208 = sext i8 %207 to i32
  %209 = icmp eq i32 %208, 10
  br label %210

210:                                              ; preds = %206, %202
  %211 = phi i1 [ true, %202 ], [ %209, %206 ]
  %212 = xor i1 %211, true
  %213 = xor i1 %212, true
  %214 = zext i1 %213 to i32
  %215 = sext i32 %214 to i64
  %216 = call i64 @llvm.expect.i64(i64 %215, i64 1)
  %217 = icmp ne i64 %216, 0
  br i1 %217, label %218, label %219

218:                                              ; preds = %210
  br label %5676

219:                                              ; preds = %210
  br label %220

220:                                              ; preds = %219
  %221 = load ptr, ptr %6, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.http_parser, ptr %221, i32 0, i32 5
  %223 = load i32, ptr %222, align 4
  %224 = and i32 %223, -2130706433
  %225 = or i32 %224, 218103808
  store i32 %225, ptr %222, align 4
  br label %226

226:                                              ; preds = %220
  br label %227

227:                                              ; preds = %226
  br label %6150

228:                                              ; preds = %200
  %229 = load i8, ptr %11, align 1, !tbaa !15
  %230 = sext i8 %229 to i32
  %231 = icmp eq i32 %230, 13
  br i1 %231, label %236, label %232

232:                                              ; preds = %228
  %233 = load i8, ptr %11, align 1, !tbaa !15
  %234 = sext i8 %233 to i32
  %235 = icmp eq i32 %234, 10
  br i1 %235, label %236, label %237

236:                                              ; preds = %232, %228
  br label %5676

237:                                              ; preds = %232
  %238 = load ptr, ptr %6, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 8
  %240 = and i32 %239, -1021
  %241 = or i32 %240, 0
  store i32 %241, ptr %238, align 8
  %242 = load ptr, ptr %6, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.http_parser, ptr %242, i32 0, i32 2
  store i64 -1, ptr %243, align 8, !tbaa !19
  %244 = load i8, ptr %11, align 1, !tbaa !15
  %245 = sext i8 %244 to i32
  %246 = icmp eq i32 %245, 72
  br i1 %246, label %247, label %325

247:                                              ; preds = %237
  store i32 3, ptr %19, align 4, !tbaa !11
  br label %248

248:                                              ; preds = %247
  %249 = load ptr, ptr %6, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.http_parser, ptr %249, i32 0, i32 5
  %251 = load i32, ptr %250, align 4
  %252 = lshr i32 %251, 24
  %253 = and i32 %252, 127
  %254 = icmp eq i32 %253, 0
  br i1 %254, label %255, label %256

255:                                              ; preds = %248
  br label %257

256:                                              ; preds = %248
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 731, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

257:                                              ; preds = %255
  %258 = load ptr, ptr %7, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.http_parser_settings, ptr %258, i32 0, i32 0
  %260 = load ptr, ptr %259, align 8, !tbaa !20
  %261 = icmp ne ptr %260, null
  %262 = xor i1 %261, true
  %263 = xor i1 %262, true
  %264 = zext i1 %263 to i32
  %265 = sext i32 %264 to i64
  %266 = call i64 @llvm.expect.i64(i64 %265, i64 1)
  %267 = icmp ne i64 %266, 0
  br i1 %267, label %268, label %322

268:                                              ; preds = %257
  %269 = load i32, ptr %19, align 4, !tbaa !11
  %270 = load ptr, ptr %6, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 8
  %272 = and i32 %269, 127
  %273 = shl i32 %272, 10
  %274 = and i32 %271, -130049
  %275 = or i32 %274, %273
  store i32 %275, ptr %270, align 8
  %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 = load ptr, ptr %6, align 8, !tbaa !5
  %280 = call i32 %278(ptr noundef %279)
  %281 = icmp ne i32 0, %280
  %282 = xor i1 %281, true
  %283 = xor i1 %282, true
  %284 = zext i1 %283 to i32
  %285 = sext i32 %284 to i64
  %286 = call i64 @llvm.expect.i64(i64 %285, i64 0)
  %287 = icmp ne i64 %286, 0
  br i1 %287, label %288, label %297

288:                                              ; preds = %268
  br label %289

289:                                              ; preds = %288
  %290 = load ptr, ptr %6, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.http_parser, ptr %290, i32 0, i32 5
  %292 = load i32, ptr %291, align 4
  %293 = and i32 %292, -2130706433
  %294 = or i32 %293, 16777216
  store i32 %294, ptr %291, align 4
  br label %295

295:                                              ; preds = %289
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %296, %268
  %298 = load ptr, ptr %6, align 8, !tbaa !5
  %299 = load i32, ptr %298, align 8
  %300 = lshr i32 %299, 10
  %301 = and i32 %300, 127
  store i32 %301, ptr %19, align 4, !tbaa !11
  %302 = load ptr, ptr %6, align 8, !tbaa !5
  %303 = getelementptr inbounds %struct.http_parser, ptr %302, i32 0, i32 5
  %304 = load i32, ptr %303, align 4
  %305 = lshr i32 %304, 24
  %306 = and i32 %305, 127
  %307 = icmp ne i32 %306, 0
  %308 = xor i1 %307, true
  %309 = xor i1 %308, true
  %310 = zext i1 %309 to i32
  %311 = sext i32 %310 to i64
  %312 = call i64 @llvm.expect.i64(i64 %311, i64 0)
  %313 = icmp ne i64 %312, 0
  br i1 %313, label %314, label %321

314:                                              ; preds = %297
  %315 = load ptr, ptr %13, align 8, !tbaa !5
  %316 = load ptr, ptr %8, align 8, !tbaa !5
  %317 = ptrtoint ptr %315 to i64
  %318 = ptrtoint ptr %316 to i64
  %319 = sub i64 %317, %318
  %320 = add nsw i64 %319, 1
  store i64 %320, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

321:                                              ; preds = %297
  br label %322

322:                                              ; preds = %321, %257
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  br label %330

325:                                              ; preds = %237
  %326 = load ptr, ptr %6, align 8, !tbaa !5
  %327 = load i32, ptr %326, align 8
  %328 = and i32 %327, -4
  %329 = or i32 %328, 0
  store i32 %329, ptr %326, align 8
  store i32 18, ptr %19, align 4, !tbaa !11
  br label %200

330:                                              ; preds = %324
  br label %5676

331:                                              ; preds = %200
  %332 = load i8, ptr %11, align 1, !tbaa !15
  %333 = sext i8 %332 to i32
  %334 = icmp eq i32 %333, 84
  br i1 %334, label %335, label %340

335:                                              ; preds = %331
  %336 = load ptr, ptr %6, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 8
  %338 = and i32 %337, -4
  %339 = or i32 %338, 1
  store i32 %339, ptr %336, align 8
  store i32 6, ptr %19, align 4, !tbaa !11
  br label %373

340:                                              ; preds = %331
  %341 = load i8, ptr %11, align 1, !tbaa !15
  %342 = sext i8 %341 to i32
  %343 = icmp ne i32 %342, 69
  %344 = xor i1 %343, true
  %345 = xor i1 %344, true
  %346 = zext i1 %345 to i32
  %347 = sext i32 %346 to i64
  %348 = call i64 @llvm.expect.i64(i64 %347, i64 0)
  %349 = icmp ne i64 %348, 0
  br i1 %349, label %350, label %359

350:                                              ; preds = %340
  br label %351

351:                                              ; preds = %350
  %352 = load ptr, ptr %6, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.http_parser, ptr %352, i32 0, i32 5
  %354 = load i32, ptr %353, align 4
  %355 = and i32 %354, -2130706433
  %356 = or i32 %355, 469762048
  store i32 %356, ptr %353, align 4
  br label %357

357:                                              ; preds = %351
  br label %358

358:                                              ; preds = %357
  br label %6150

359:                                              ; preds = %340
  %360 = load ptr, ptr %6, align 8, !tbaa !5
  %361 = load i32, ptr %360, align 8
  %362 = and i32 %361, -4
  %363 = or i32 %362, 0
  store i32 %363, ptr %360, align 8
  %364 = load ptr, ptr %6, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.http_parser, ptr %364, i32 0, i32 5
  %366 = load i32, ptr %365, align 4
  %367 = and i32 %366, -16711681
  %368 = or i32 %367, 131072
  store i32 %368, ptr %365, align 4
  %369 = load ptr, ptr %6, align 8, !tbaa !5
  %370 = load i32, ptr %369, align 8
  %371 = and i32 %370, -2130706433
  %372 = or i32 %371, 33554432
  store i32 %372, ptr %369, align 8
  store i32 19, ptr %19, align 4, !tbaa !11
  br label %373

373:                                              ; preds = %359, %335
  br label %5676

374:                                              ; preds = %200
  %375 = load ptr, ptr %6, align 8, !tbaa !5
  %376 = load i32, ptr %375, align 8
  %377 = and i32 %376, -1021
  %378 = or i32 %377, 0
  store i32 %378, ptr %375, align 8
  %379 = load ptr, ptr %6, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.http_parser, ptr %379, i32 0, i32 2
  store i64 -1, ptr %380, align 8, !tbaa !19
  %381 = load i8, ptr %11, align 1, !tbaa !15
  %382 = sext i8 %381 to i32
  switch i32 %382, label %385 [
    i32 72, label %383
    i32 13, label %384
    i32 10, label %384
  ]

383:                                              ; preds = %374
  store i32 5, ptr %19, align 4, !tbaa !11
  br label %394

384:                                              ; preds = %374, %374
  br label %394

385:                                              ; preds = %374
  br label %386

386:                                              ; preds = %385
  %387 = load ptr, ptr %6, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.http_parser, ptr %387, i32 0, i32 5
  %389 = load i32, ptr %388, align 4
  %390 = and i32 %389, -2130706433
  %391 = or i32 %390, 469762048
  store i32 %391, ptr %388, align 4
  br label %392

392:                                              ; preds = %386
  br label %393

393:                                              ; preds = %392
  br label %6150

394:                                              ; preds = %384, %383
  br label %395

395:                                              ; preds = %394
  %396 = load ptr, ptr %6, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.http_parser, ptr %396, i32 0, i32 5
  %398 = load i32, ptr %397, align 4
  %399 = lshr i32 %398, 24
  %400 = and i32 %399, 127
  %401 = icmp eq i32 %400, 0
  br i1 %401, label %402, label %403

402:                                              ; preds = %395
  br label %404

403:                                              ; preds = %395
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 777, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

404:                                              ; preds = %402
  %405 = load ptr, ptr %7, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.http_parser_settings, ptr %405, i32 0, i32 0
  %407 = load ptr, ptr %406, align 8, !tbaa !20
  %408 = icmp ne ptr %407, null
  %409 = xor i1 %408, true
  %410 = xor i1 %409, true
  %411 = zext i1 %410 to i32
  %412 = sext i32 %411 to i64
  %413 = call i64 @llvm.expect.i64(i64 %412, i64 1)
  %414 = icmp ne i64 %413, 0
  br i1 %414, label %415, label %469

415:                                              ; preds = %404
  %416 = load i32, ptr %19, align 4, !tbaa !11
  %417 = load ptr, ptr %6, align 8, !tbaa !5
  %418 = load i32, ptr %417, align 8
  %419 = and i32 %416, 127
  %420 = shl i32 %419, 10
  %421 = and i32 %418, -130049
  %422 = or i32 %421, %420
  store i32 %422, ptr %417, align 8
  %423 = load ptr, ptr %7, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.http_parser_settings, ptr %423, i32 0, i32 0
  %425 = load ptr, ptr %424, align 8, !tbaa !20
  %426 = load ptr, ptr %6, align 8, !tbaa !5
  %427 = call i32 %425(ptr noundef %426)
  %428 = icmp ne i32 0, %427
  %429 = xor i1 %428, true
  %430 = xor i1 %429, true
  %431 = zext i1 %430 to i32
  %432 = sext i32 %431 to i64
  %433 = call i64 @llvm.expect.i64(i64 %432, i64 0)
  %434 = icmp ne i64 %433, 0
  br i1 %434, label %435, label %444

435:                                              ; preds = %415
  br label %436

436:                                              ; preds = %435
  %437 = load ptr, ptr %6, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.http_parser, ptr %437, i32 0, i32 5
  %439 = load i32, ptr %438, align 4
  %440 = and i32 %439, -2130706433
  %441 = or i32 %440, 16777216
  store i32 %441, ptr %438, align 4
  br label %442

442:                                              ; preds = %436
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443, %415
  %445 = load ptr, ptr %6, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 8
  %447 = lshr i32 %446, 10
  %448 = and i32 %447, 127
  store i32 %448, ptr %19, align 4, !tbaa !11
  %449 = load ptr, ptr %6, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.http_parser, ptr %449, i32 0, i32 5
  %451 = load i32, ptr %450, align 4
  %452 = lshr i32 %451, 24
  %453 = and i32 %452, 127
  %454 = icmp ne i32 %453, 0
  %455 = xor i1 %454, true
  %456 = xor i1 %455, true
  %457 = zext i1 %456 to i32
  %458 = sext i32 %457 to i64
  %459 = call i64 @llvm.expect.i64(i64 %458, i64 0)
  %460 = icmp ne i64 %459, 0
  br i1 %460, label %461, label %468

461:                                              ; preds = %444
  %462 = load ptr, ptr %13, align 8, !tbaa !5
  %463 = load ptr, ptr %8, align 8, !tbaa !5
  %464 = ptrtoint ptr %462 to i64
  %465 = ptrtoint ptr %463 to i64
  %466 = sub i64 %464, %465
  %467 = add nsw i64 %466, 1
  store i64 %467, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

468:                                              ; preds = %444
  br label %469

469:                                              ; preds = %468, %404
  br label %470

470:                                              ; preds = %469
  br label %471

471:                                              ; preds = %470
  br label %5676

472:                                              ; preds = %200
  br label %473

473:                                              ; preds = %472
  %474 = load i8, ptr %11, align 1, !tbaa !15
  %475 = sext i8 %474 to i32
  %476 = icmp ne i32 %475, 84
  br i1 %476, label %477, label %486

477:                                              ; preds = %473
  br label %478

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

484:                                              ; preds = %478
  br label %485

485:                                              ; preds = %484
  br label %6150

486:                                              ; preds = %473
  br label %487

487:                                              ; preds = %486
  br label %488

488:                                              ; preds = %487
  store i32 6, ptr %19, align 4, !tbaa !11
  br label %5676

489:                                              ; preds = %200
  br label %490

490:                                              ; preds = %489
  %491 = load i8, ptr %11, align 1, !tbaa !15
  %492 = sext i8 %491 to i32
  %493 = icmp ne i32 %492, 84
  br i1 %493, label %494, label %503

494:                                              ; preds = %490
  br label %495

495:                                              ; preds = %494
  %496 = load ptr, ptr %6, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.http_parser, ptr %496, i32 0, i32 5
  %498 = load i32, ptr %497, align 4
  %499 = and i32 %498, -2130706433
  %500 = or i32 %499, 503316480
  store i32 %500, ptr %497, align 4
  br label %501

501:                                              ; preds = %495
  br label %502

502:                                              ; preds = %501
  br label %6150

503:                                              ; preds = %490
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  store i32 7, ptr %19, align 4, !tbaa !11
  br label %5676

506:                                              ; preds = %200
  br label %507

507:                                              ; preds = %506
  %508 = load i8, ptr %11, align 1, !tbaa !15
  %509 = sext i8 %508 to i32
  %510 = icmp ne i32 %509, 80
  br i1 %510, label %511, label %520

511:                                              ; preds = %507
  br label %512

512:                                              ; preds = %511
  %513 = load ptr, ptr %6, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.http_parser, ptr %513, i32 0, i32 5
  %515 = load i32, ptr %514, align 4
  %516 = and i32 %515, -2130706433
  %517 = or i32 %516, 503316480
  store i32 %517, ptr %514, align 4
  br label %518

518:                                              ; preds = %512
  br label %519

519:                                              ; preds = %518
  br label %6150

520:                                              ; preds = %507
  br label %521

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %521
  store i32 8, ptr %19, align 4, !tbaa !11
  br label %5676

523:                                              ; preds = %200
  br label %524

524:                                              ; preds = %523
  %525 = load i8, ptr %11, align 1, !tbaa !15
  %526 = sext i8 %525 to i32
  %527 = icmp ne i32 %526, 47
  br i1 %527, label %528, label %537

528:                                              ; preds = %524
  br label %529

529:                                              ; preds = %528
  %530 = load ptr, ptr %6, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.http_parser, ptr %530, i32 0, i32 5
  %532 = load i32, ptr %531, align 4
  %533 = and i32 %532, -2130706433
  %534 = or i32 %533, 503316480
  store i32 %534, ptr %531, align 4
  br label %535

535:                                              ; preds = %529
  br label %536

536:                                              ; preds = %535
  br label %6150

537:                                              ; preds = %524
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  store i32 9, ptr %19, align 4, !tbaa !11
  br label %5676

540:                                              ; preds = %200
  %541 = load i8, ptr %11, align 1, !tbaa !15
  %542 = sext i8 %541 to i32
  %543 = icmp slt i32 %542, 48
  br i1 %543, label %548, label %544

544:                                              ; preds = %540
  %545 = load i8, ptr %11, align 1, !tbaa !15
  %546 = sext i8 %545 to i32
  %547 = icmp sgt i32 %546, 57
  br label %548

548:                                              ; preds = %544, %540
  %549 = phi i1 [ true, %540 ], [ %547, %544 ]
  %550 = xor i1 %549, true
  %551 = xor i1 %550, true
  %552 = zext i1 %551 to i32
  %553 = sext i32 %552 to i64
  %554 = call i64 @llvm.expect.i64(i64 %553, i64 0)
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %556, label %565

556:                                              ; preds = %548
  br label %557

557:                                              ; preds = %556
  %558 = load ptr, ptr %6, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.http_parser, ptr %558, i32 0, i32 5
  %560 = load i32, ptr %559, align 4
  %561 = and i32 %560, -2130706433
  %562 = or i32 %561, 234881024
  store i32 %562, ptr %559, align 4
  br label %563

563:                                              ; preds = %557
  br label %564

564:                                              ; preds = %563
  br label %6150

565:                                              ; preds = %548
  %566 = load i8, ptr %11, align 1, !tbaa !15
  %567 = sext i8 %566 to i32
  %568 = sub nsw i32 %567, 48
  %569 = trunc i32 %568 to i16
  %570 = load ptr, ptr %6, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.http_parser, ptr %570, i32 0, i32 3
  store i16 %569, ptr %571, align 8, !tbaa !21
  store i32 10, ptr %19, align 4, !tbaa !11
  br label %5676

572:                                              ; preds = %200
  %573 = load i8, ptr %11, align 1, !tbaa !15
  %574 = sext i8 %573 to i32
  %575 = icmp eq i32 %574, 46
  br i1 %575, label %576, label %577

576:                                              ; preds = %572
  store i32 11, ptr %19, align 4, !tbaa !11
  br label %5676

577:                                              ; preds = %572
  %578 = load i8, ptr %11, align 1, !tbaa !15
  %579 = sext i8 %578 to i32
  %580 = icmp sge i32 %579, 48
  br i1 %580, label %581, label %585

581:                                              ; preds = %577
  %582 = load i8, ptr %11, align 1, !tbaa !15
  %583 = sext i8 %582 to i32
  %584 = icmp sle i32 %583, 57
  br i1 %584, label %594, label %585

585:                                              ; preds = %581, %577
  br label %586

586:                                              ; preds = %585
  %587 = load ptr, ptr %6, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.http_parser, ptr %587, i32 0, i32 5
  %589 = load i32, ptr %588, align 4
  %590 = and i32 %589, -2130706433
  %591 = or i32 %590, 234881024
  store i32 %591, ptr %588, align 4
  br label %592

592:                                              ; preds = %586
  br label %593

593:                                              ; preds = %592
  br label %6150

594:                                              ; preds = %581
  %595 = load ptr, ptr %6, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.http_parser, ptr %595, i32 0, i32 3
  %597 = load i16, ptr %596, align 8, !tbaa !21
  %598 = zext i16 %597 to i32
  %599 = mul nsw i32 %598, 10
  %600 = trunc i32 %599 to i16
  store i16 %600, ptr %596, align 8, !tbaa !21
  %601 = load i8, ptr %11, align 1, !tbaa !15
  %602 = sext i8 %601 to i32
  %603 = sub nsw i32 %602, 48
  %604 = load ptr, ptr %6, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.http_parser, ptr %604, i32 0, i32 3
  %606 = load i16, ptr %605, align 8, !tbaa !21
  %607 = zext i16 %606 to i32
  %608 = add nsw i32 %607, %603
  %609 = trunc i32 %608 to i16
  store i16 %609, ptr %605, align 8, !tbaa !21
  %610 = load ptr, ptr %6, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.http_parser, ptr %610, i32 0, i32 3
  %612 = load i16, ptr %611, align 8, !tbaa !21
  %613 = zext i16 %612 to i32
  %614 = icmp sgt i32 %613, 999
  %615 = xor i1 %614, true
  %616 = xor i1 %615, true
  %617 = zext i1 %616 to i32
  %618 = sext i32 %617 to i64
  %619 = call i64 @llvm.expect.i64(i64 %618, i64 0)
  %620 = icmp ne i64 %619, 0
  br i1 %620, label %621, label %630

621:                                              ; preds = %594
  br label %622

622:                                              ; preds = %621
  %623 = load ptr, ptr %6, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.http_parser, ptr %623, i32 0, i32 5
  %625 = load i32, ptr %624, align 4
  %626 = and i32 %625, -2130706433
  %627 = or i32 %626, 234881024
  store i32 %627, ptr %624, align 4
  br label %628

628:                                              ; preds = %622
  br label %629

629:                                              ; preds = %628
  br label %6150

630:                                              ; preds = %594
  br label %5676

631:                                              ; preds = %200
  %632 = load i8, ptr %11, align 1, !tbaa !15
  %633 = sext i8 %632 to i32
  %634 = icmp sge i32 %633, 48
  br i1 %634, label %635, label %639

635:                                              ; preds = %631
  %636 = load i8, ptr %11, align 1, !tbaa !15
  %637 = sext i8 %636 to i32
  %638 = icmp sle i32 %637, 57
  br label %639

639:                                              ; preds = %635, %631
  %640 = phi i1 [ false, %631 ], [ %638, %635 ]
  %641 = xor i1 %640, true
  %642 = xor i1 %641, true
  %643 = xor i1 %642, true
  %644 = zext i1 %643 to i32
  %645 = sext i32 %644 to i64
  %646 = call i64 @llvm.expect.i64(i64 %645, i64 0)
  %647 = icmp ne i64 %646, 0
  br i1 %647, label %648, label %657

648:                                              ; preds = %639
  br label %649

649:                                              ; preds = %648
  %650 = load ptr, ptr %6, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.http_parser, ptr %650, i32 0, i32 5
  %652 = load i32, ptr %651, align 4
  %653 = and i32 %652, -2130706433
  %654 = or i32 %653, 234881024
  store i32 %654, ptr %651, align 4
  br label %655

655:                                              ; preds = %649
  br label %656

656:                                              ; preds = %655
  br label %6150

657:                                              ; preds = %639
  %658 = load i8, ptr %11, align 1, !tbaa !15
  %659 = sext i8 %658 to i32
  %660 = sub nsw i32 %659, 48
  %661 = trunc i32 %660 to i16
  %662 = load ptr, ptr %6, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.http_parser, ptr %662, i32 0, i32 4
  store i16 %661, ptr %663, align 2, !tbaa !22
  store i32 12, ptr %19, align 4, !tbaa !11
  br label %5676

664:                                              ; preds = %200
  %665 = load i8, ptr %11, align 1, !tbaa !15
  %666 = sext i8 %665 to i32
  %667 = icmp eq i32 %666, 32
  br i1 %667, label %668, label %669

668:                                              ; preds = %664
  store i32 13, ptr %19, align 4, !tbaa !11
  br label %5676

669:                                              ; preds = %664
  %670 = load i8, ptr %11, align 1, !tbaa !15
  %671 = sext i8 %670 to i32
  %672 = icmp sge i32 %671, 48
  br i1 %672, label %673, label %677

673:                                              ; preds = %669
  %674 = load i8, ptr %11, align 1, !tbaa !15
  %675 = sext i8 %674 to i32
  %676 = icmp sle i32 %675, 57
  br label %677

677:                                              ; preds = %673, %669
  %678 = phi i1 [ false, %669 ], [ %676, %673 ]
  %679 = xor i1 %678, true
  %680 = xor i1 %679, true
  %681 = xor i1 %680, true
  %682 = zext i1 %681 to i32
  %683 = sext i32 %682 to i64
  %684 = call i64 @llvm.expect.i64(i64 %683, i64 0)
  %685 = icmp ne i64 %684, 0
  br i1 %685, label %686, label %695

686:                                              ; preds = %677
  br label %687

687:                                              ; preds = %686
  %688 = load ptr, ptr %6, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.http_parser, ptr %688, i32 0, i32 5
  %690 = load i32, ptr %689, align 4
  %691 = and i32 %690, -2130706433
  %692 = or i32 %691, 234881024
  store i32 %692, ptr %689, align 4
  br label %693

693:                                              ; preds = %687
  br label %694

694:                                              ; preds = %693
  br label %6150

695:                                              ; preds = %677
  %696 = load ptr, ptr %6, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.http_parser, ptr %696, i32 0, i32 4
  %698 = load i16, ptr %697, align 2, !tbaa !22
  %699 = zext i16 %698 to i32
  %700 = mul nsw i32 %699, 10
  %701 = trunc i32 %700 to i16
  store i16 %701, ptr %697, align 2, !tbaa !22
  %702 = load i8, ptr %11, align 1, !tbaa !15
  %703 = sext i8 %702 to i32
  %704 = sub nsw i32 %703, 48
  %705 = load ptr, ptr %6, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.http_parser, ptr %705, i32 0, i32 4
  %707 = load i16, ptr %706, align 2, !tbaa !22
  %708 = zext i16 %707 to i32
  %709 = add nsw i32 %708, %704
  %710 = trunc i32 %709 to i16
  store i16 %710, ptr %706, align 2, !tbaa !22
  %711 = load ptr, ptr %6, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.http_parser, ptr %711, i32 0, i32 4
  %713 = load i16, ptr %712, align 2, !tbaa !22
  %714 = zext i16 %713 to i32
  %715 = icmp sgt i32 %714, 999
  %716 = xor i1 %715, true
  %717 = xor i1 %716, true
  %718 = zext i1 %717 to i32
  %719 = sext i32 %718 to i64
  %720 = call i64 @llvm.expect.i64(i64 %719, i64 0)
  %721 = icmp ne i64 %720, 0
  br i1 %721, label %722, label %731

722:                                              ; preds = %695
  br label %723

723:                                              ; preds = %722
  %724 = load ptr, ptr %6, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.http_parser, ptr %724, i32 0, i32 5
  %726 = load i32, ptr %725, align 4
  %727 = and i32 %726, -2130706433
  %728 = or i32 %727, 234881024
  store i32 %728, ptr %725, align 4
  br label %729

729:                                              ; preds = %723
  br label %730

730:                                              ; preds = %729
  br label %6150

731:                                              ; preds = %695
  br label %5676

732:                                              ; preds = %200
  %733 = load i8, ptr %11, align 1, !tbaa !15
  %734 = sext i8 %733 to i32
  %735 = icmp sge i32 %734, 48
  br i1 %735, label %736, label %740

736:                                              ; preds = %732
  %737 = load i8, ptr %11, align 1, !tbaa !15
  %738 = sext i8 %737 to i32
  %739 = icmp sle i32 %738, 57
  br i1 %739, label %754, label %740

740:                                              ; preds = %736, %732
  %741 = load i8, ptr %11, align 1, !tbaa !15
  %742 = sext i8 %741 to i32
  %743 = icmp eq i32 %742, 32
  br i1 %743, label %744, label %745

744:                                              ; preds = %740
  br label %5676

745:                                              ; preds = %740
  br label %746

746:                                              ; preds = %745
  %747 = load ptr, ptr %6, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.http_parser, ptr %747, i32 0, i32 5
  %749 = load i32, ptr %748, align 4
  %750 = and i32 %749, -2130706433
  %751 = or i32 %750, 251658240
  store i32 %751, ptr %748, align 4
  br label %752

752:                                              ; preds = %746
  br label %753

753:                                              ; preds = %752
  br label %6150

754:                                              ; preds = %736
  %755 = load i8, ptr %11, align 1, !tbaa !15
  %756 = sext i8 %755 to i32
  %757 = sub nsw i32 %756, 48
  %758 = load ptr, ptr %6, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.http_parser, ptr %758, i32 0, i32 5
  %760 = load i32, ptr %759, align 4
  %761 = and i32 %757, 65535
  %762 = and i32 %760, -65536
  %763 = or i32 %762, %761
  store i32 %763, ptr %759, align 4
  store i32 14, ptr %19, align 4, !tbaa !11
  br label %5676

764:                                              ; preds = %200
  %765 = load i8, ptr %11, align 1, !tbaa !15
  %766 = sext i8 %765 to i32
  %767 = icmp sge i32 %766, 48
  br i1 %767, label %768, label %772

768:                                              ; preds = %764
  %769 = load i8, ptr %11, align 1, !tbaa !15
  %770 = sext i8 %769 to i32
  %771 = icmp sle i32 %770, 57
  br i1 %771, label %788, label %772

772:                                              ; preds = %768, %764
  %773 = load i8, ptr %11, align 1, !tbaa !15
  %774 = sext i8 %773 to i32
  switch i32 %774, label %778 [
    i32 32, label %775
    i32 13, label %776
    i32 10, label %777
  ]

775:                                              ; preds = %772
  store i32 15, ptr %19, align 4, !tbaa !11
  br label %787

776:                                              ; preds = %772
  store i32 17, ptr %19, align 4, !tbaa !11
  br label %787

777:                                              ; preds = %772
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %787

778:                                              ; preds = %772
  br label %779

779:                                              ; preds = %778
  %780 = load ptr, ptr %6, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.http_parser, ptr %780, i32 0, i32 5
  %782 = load i32, ptr %781, align 4
  %783 = and i32 %782, -2130706433
  %784 = or i32 %783, 251658240
  store i32 %784, ptr %781, align 4
  br label %785

785:                                              ; preds = %779
  br label %786

786:                                              ; preds = %785
  br label %6150

787:                                              ; preds = %777, %776, %775
  br label %5676

788:                                              ; preds = %768
  %789 = load ptr, ptr %6, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.http_parser, ptr %789, i32 0, i32 5
  %791 = load i32, ptr %790, align 4
  %792 = and i32 %791, 65535
  %793 = mul nsw i32 %792, 10
  %794 = load i32, ptr %790, align 4
  %795 = and i32 %793, 65535
  %796 = and i32 %794, -65536
  %797 = or i32 %796, %795
  store i32 %797, ptr %790, align 4
  %798 = load i8, ptr %11, align 1, !tbaa !15
  %799 = sext i8 %798 to i32
  %800 = sub nsw i32 %799, 48
  %801 = load ptr, ptr %6, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.http_parser, ptr %801, i32 0, i32 5
  %803 = load i32, ptr %802, align 4
  %804 = and i32 %803, 65535
  %805 = add nsw i32 %804, %800
  %806 = load i32, ptr %802, align 4
  %807 = and i32 %805, 65535
  %808 = and i32 %806, -65536
  %809 = or i32 %808, %807
  store i32 %809, ptr %802, align 4
  %810 = load ptr, ptr %6, align 8, !tbaa !5
  %811 = getelementptr inbounds %struct.http_parser, ptr %810, i32 0, i32 5
  %812 = load i32, ptr %811, align 4
  %813 = and i32 %812, 65535
  %814 = icmp sgt i32 %813, 999
  %815 = xor i1 %814, true
  %816 = xor i1 %815, true
  %817 = zext i1 %816 to i32
  %818 = sext i32 %817 to i64
  %819 = call i64 @llvm.expect.i64(i64 %818, i64 0)
  %820 = icmp ne i64 %819, 0
  br i1 %820, label %821, label %830

821:                                              ; preds = %788
  br label %822

822:                                              ; preds = %821
  %823 = load ptr, ptr %6, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.http_parser, ptr %823, i32 0, i32 5
  %825 = load i32, ptr %824, align 4
  %826 = and i32 %825, -2130706433
  %827 = or i32 %826, 251658240
  store i32 %827, ptr %824, align 4
  br label %828

828:                                              ; preds = %822
  br label %829

829:                                              ; preds = %828
  br label %6150

830:                                              ; preds = %788
  br label %5676

831:                                              ; preds = %200
  %832 = load i8, ptr %11, align 1, !tbaa !15
  %833 = sext i8 %832 to i32
  %834 = icmp eq i32 %833, 13
  br i1 %834, label %835, label %836

835:                                              ; preds = %831
  store i32 17, ptr %19, align 4, !tbaa !11
  br label %5676

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

840:                                              ; preds = %836
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %5676

841:                                              ; preds = %836
  br label %842

842:                                              ; preds = %841
  %843 = load ptr, ptr %18, align 8, !tbaa !5
  %844 = icmp ne ptr %843, null
  br i1 %844, label %847, label %845

845:                                              ; preds = %842
  %846 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %846, ptr %18, align 8, !tbaa !5
  br label %847

847:                                              ; preds = %845, %842
  br label %848

848:                                              ; preds = %847
  br label %849

849:                                              ; preds = %848
  store i32 16, ptr %19, align 4, !tbaa !11
  %850 = load ptr, ptr %6, align 8, !tbaa !5
  %851 = load i32, ptr %850, align 8
  %852 = and i32 %851, -2130706433
  %853 = or i32 %852, 0
  store i32 %853, ptr %850, align 8
  br label %5676

854:                                              ; preds = %200
  %855 = load i8, ptr %11, align 1, !tbaa !15
  %856 = sext i8 %855 to i32
  %857 = icmp eq i32 %856, 13
  br i1 %857, label %858, label %946

858:                                              ; preds = %854
  store i32 17, ptr %19, align 4, !tbaa !11
  br label %859

859:                                              ; preds = %858
  %860 = load ptr, ptr %6, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.http_parser, ptr %860, i32 0, i32 5
  %862 = load i32, ptr %861, align 4
  %863 = lshr i32 %862, 24
  %864 = and i32 %863, 127
  %865 = icmp eq i32 %864, 0
  br i1 %865, label %866, label %867

866:                                              ; preds = %859
  br label %868

867:                                              ; preds = %859
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 937, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

868:                                              ; preds = %866
  %869 = load ptr, ptr %18, align 8, !tbaa !5
  %870 = icmp ne ptr %869, null
  br i1 %870, label %871, label %943

871:                                              ; preds = %868
  %872 = load ptr, ptr %7, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.http_parser_settings, ptr %872, i32 0, i32 2
  %874 = load ptr, ptr %873, align 8, !tbaa !23
  %875 = icmp ne ptr %874, null
  %876 = xor i1 %875, true
  %877 = xor i1 %876, true
  %878 = zext i1 %877 to i32
  %879 = sext i32 %878 to i64
  %880 = call i64 @llvm.expect.i64(i64 %879, i64 1)
  %881 = icmp ne i64 %880, 0
  br i1 %881, label %882, label %942

882:                                              ; preds = %871
  %883 = load i32, ptr %19, align 4, !tbaa !11
  %884 = load ptr, ptr %6, align 8, !tbaa !5
  %885 = load i32, ptr %884, align 8
  %886 = and i32 %883, 127
  %887 = shl i32 %886, 10
  %888 = and i32 %885, -130049
  %889 = or i32 %888, %887
  store i32 %889, ptr %884, align 8
  %890 = load ptr, ptr %7, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.http_parser_settings, ptr %890, i32 0, i32 2
  %892 = load ptr, ptr %891, align 8, !tbaa !23
  %893 = load ptr, ptr %6, align 8, !tbaa !5
  %894 = load ptr, ptr %18, align 8, !tbaa !5
  %895 = load ptr, ptr %13, align 8, !tbaa !5
  %896 = load ptr, ptr %18, align 8, !tbaa !5
  %897 = ptrtoint ptr %895 to i64
  %898 = ptrtoint ptr %896 to i64
  %899 = sub i64 %897, %898
  %900 = call i32 %892(ptr noundef %893, ptr noundef %894, i64 noundef %899)
  %901 = icmp ne i32 0, %900
  %902 = xor i1 %901, true
  %903 = xor i1 %902, true
  %904 = zext i1 %903 to i32
  %905 = sext i32 %904 to i64
  %906 = call i64 @llvm.expect.i64(i64 %905, i64 0)
  %907 = icmp ne i64 %906, 0
  br i1 %907, label %908, label %917

908:                                              ; preds = %882
  br label %909

909:                                              ; preds = %908
  %910 = load ptr, ptr %6, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.http_parser, ptr %910, i32 0, i32 5
  %912 = load i32, ptr %911, align 4
  %913 = and i32 %912, -2130706433
  %914 = or i32 %913, 134217728
  store i32 %914, ptr %911, align 4
  br label %915

915:                                              ; preds = %909
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916, %882
  %918 = load ptr, ptr %6, align 8, !tbaa !5
  %919 = load i32, ptr %918, align 8
  %920 = lshr i32 %919, 10
  %921 = and i32 %920, 127
  store i32 %921, ptr %19, align 4, !tbaa !11
  %922 = load ptr, ptr %6, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.http_parser, ptr %922, i32 0, i32 5
  %924 = load i32, ptr %923, align 4
  %925 = lshr i32 %924, 24
  %926 = and i32 %925, 127
  %927 = icmp ne i32 %926, 0
  %928 = xor i1 %927, true
  %929 = xor i1 %928, true
  %930 = zext i1 %929 to i32
  %931 = sext i32 %930 to i64
  %932 = call i64 @llvm.expect.i64(i64 %931, i64 0)
  %933 = icmp ne i64 %932, 0
  br i1 %933, label %934, label %941

934:                                              ; preds = %917
  %935 = load ptr, ptr %13, align 8, !tbaa !5
  %936 = load ptr, ptr %8, align 8, !tbaa !5
  %937 = ptrtoint ptr %935 to i64
  %938 = ptrtoint ptr %936 to i64
  %939 = sub i64 %937, %938
  %940 = add nsw i64 %939, 1
  store i64 %940, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

941:                                              ; preds = %917
  br label %942

942:                                              ; preds = %941, %871
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %943

943:                                              ; preds = %942, %868
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  br label %5676

946:                                              ; preds = %854
  %947 = load i8, ptr %11, align 1, !tbaa !15
  %948 = sext i8 %947 to i32
  %949 = icmp eq i32 %948, 10
  br i1 %949, label %950, label %1038

950:                                              ; preds = %946
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %951

951:                                              ; preds = %950
  %952 = load ptr, ptr %6, align 8, !tbaa !5
  %953 = getelementptr inbounds %struct.http_parser, ptr %952, i32 0, i32 5
  %954 = load i32, ptr %953, align 4
  %955 = lshr i32 %954, 24
  %956 = and i32 %955, 127
  %957 = icmp eq i32 %956, 0
  br i1 %957, label %958, label %959

958:                                              ; preds = %951
  br label %960

959:                                              ; preds = %951
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 943, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

960:                                              ; preds = %958
  %961 = load ptr, ptr %18, align 8, !tbaa !5
  %962 = icmp ne ptr %961, null
  br i1 %962, label %963, label %1035

963:                                              ; preds = %960
  %964 = load ptr, ptr %7, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.http_parser_settings, ptr %964, i32 0, i32 2
  %966 = load ptr, ptr %965, align 8, !tbaa !23
  %967 = icmp ne ptr %966, null
  %968 = xor i1 %967, true
  %969 = xor i1 %968, true
  %970 = zext i1 %969 to i32
  %971 = sext i32 %970 to i64
  %972 = call i64 @llvm.expect.i64(i64 %971, i64 1)
  %973 = icmp ne i64 %972, 0
  br i1 %973, label %974, label %1034

974:                                              ; preds = %963
  %975 = load i32, ptr %19, align 4, !tbaa !11
  %976 = load ptr, ptr %6, align 8, !tbaa !5
  %977 = load i32, ptr %976, align 8
  %978 = and i32 %975, 127
  %979 = shl i32 %978, 10
  %980 = and i32 %977, -130049
  %981 = or i32 %980, %979
  store i32 %981, ptr %976, align 8
  %982 = load ptr, ptr %7, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.http_parser_settings, ptr %982, i32 0, i32 2
  %984 = load ptr, ptr %983, align 8, !tbaa !23
  %985 = load ptr, ptr %6, align 8, !tbaa !5
  %986 = load ptr, ptr %18, align 8, !tbaa !5
  %987 = load ptr, ptr %13, align 8, !tbaa !5
  %988 = load ptr, ptr %18, align 8, !tbaa !5
  %989 = ptrtoint ptr %987 to i64
  %990 = ptrtoint ptr %988 to i64
  %991 = sub i64 %989, %990
  %992 = call i32 %984(ptr noundef %985, ptr noundef %986, i64 noundef %991)
  %993 = icmp ne i32 0, %992
  %994 = xor i1 %993, true
  %995 = xor i1 %994, true
  %996 = zext i1 %995 to i32
  %997 = sext i32 %996 to i64
  %998 = call i64 @llvm.expect.i64(i64 %997, i64 0)
  %999 = icmp ne i64 %998, 0
  br i1 %999, label %1000, label %1009

1000:                                             ; preds = %974
  br label %1001

1001:                                             ; preds = %1000
  %1002 = load ptr, ptr %6, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.http_parser, ptr %1002, i32 0, i32 5
  %1004 = load i32, ptr %1003, align 4
  %1005 = and i32 %1004, -2130706433
  %1006 = or i32 %1005, 134217728
  store i32 %1006, ptr %1003, align 4
  br label %1007

1007:                                             ; preds = %1001
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008, %974
  %1010 = load ptr, ptr %6, align 8, !tbaa !5
  %1011 = load i32, ptr %1010, align 8
  %1012 = lshr i32 %1011, 10
  %1013 = and i32 %1012, 127
  store i32 %1013, ptr %19, align 4, !tbaa !11
  %1014 = load ptr, ptr %6, align 8, !tbaa !5
  %1015 = getelementptr inbounds %struct.http_parser, ptr %1014, i32 0, i32 5
  %1016 = load i32, ptr %1015, align 4
  %1017 = lshr i32 %1016, 24
  %1018 = and i32 %1017, 127
  %1019 = icmp ne i32 %1018, 0
  %1020 = xor i1 %1019, true
  %1021 = xor i1 %1020, true
  %1022 = zext i1 %1021 to i32
  %1023 = sext i32 %1022 to i64
  %1024 = call i64 @llvm.expect.i64(i64 %1023, i64 0)
  %1025 = icmp ne i64 %1024, 0
  br i1 %1025, label %1026, label %1033

1026:                                             ; preds = %1009
  %1027 = load ptr, ptr %13, align 8, !tbaa !5
  %1028 = load ptr, ptr %8, align 8, !tbaa !5
  %1029 = ptrtoint ptr %1027 to i64
  %1030 = ptrtoint ptr %1028 to i64
  %1031 = sub i64 %1029, %1030
  %1032 = add nsw i64 %1031, 1
  store i64 %1032, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

1033:                                             ; preds = %1009
  br label %1034

1034:                                             ; preds = %1033, %963
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %1035

1035:                                             ; preds = %1034, %960
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  br label %5676

1038:                                             ; preds = %946
  br label %5676

1039:                                             ; preds = %200
  br label %1040

1040:                                             ; preds = %1039
  %1041 = load i8, ptr %11, align 1, !tbaa !15
  %1042 = sext i8 %1041 to i32
  %1043 = icmp ne i32 %1042, 10
  br i1 %1043, label %1044, label %1053

1044:                                             ; preds = %1040
  br label %1045

1045:                                             ; preds = %1044
  %1046 = load ptr, ptr %6, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.http_parser, ptr %1046, i32 0, i32 5
  %1048 = load i32, ptr %1047, align 4
  %1049 = and i32 %1048, -2130706433
  %1050 = or i32 %1049, 503316480
  store i32 %1050, ptr %1047, align 4
  br label %1051

1051:                                             ; preds = %1045
  br label %1052

1052:                                             ; preds = %1051
  br label %6150

1053:                                             ; preds = %1040
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %5676

1056:                                             ; preds = %200
  %1057 = load i8, ptr %11, align 1, !tbaa !15
  %1058 = sext i8 %1057 to i32
  %1059 = icmp eq i32 %1058, 13
  br i1 %1059, label %1064, label %1060

1060:                                             ; preds = %1056
  %1061 = load i8, ptr %11, align 1, !tbaa !15
  %1062 = sext i8 %1061 to i32
  %1063 = icmp eq i32 %1062, 10
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1060, %1056
  br label %5676

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

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

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

1094:                                             ; preds = %1085
  br label %1095

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

1101:                                             ; preds = %1095
  br label %1102

1102:                                             ; preds = %1101
  br label %6150

1103:                                             ; preds = %1085
  %1104 = load ptr, ptr %6, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.http_parser, ptr %1104, i32 0, i32 5
  %1106 = load i32, ptr %1105, align 4
  %1107 = and i32 %1106, -16711681
  %1108 = or i32 %1107, 0
  store i32 %1108, ptr %1105, align 4
  %1109 = load ptr, ptr %6, align 8, !tbaa !5
  %1110 = load i32, ptr %1109, align 8
  %1111 = and i32 %1110, -2130706433
  %1112 = or i32 %1111, 16777216
  store i32 %1112, ptr %1109, align 8
  %1113 = load i8, ptr %11, align 1, !tbaa !15
  %1114 = sext i8 %1113 to i32
  switch i32 %1114, label %1205 [
    i32 65, label %1115
    i32 66, label %1121
    i32 67, label %1127
    i32 68, label %1133
    i32 71, label %1139
    i32 72, label %1145
    i32 76, label %1151
    i32 77, label %1157
    i32 78, label %1163
    i32 79, label %1169
    i32 80, label %1175
    i32 82, label %1181
    i32 83, label %1187
    i32 84, label %1193
    i32 85, label %1199
  ]

1115:                                             ; preds = %1103
  %1116 = load ptr, ptr %6, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.http_parser, ptr %1116, i32 0, i32 5
  %1118 = load i32, ptr %1117, align 4
  %1119 = and i32 %1118, -16711681
  %1120 = or i32 %1119, 1245184
  store i32 %1120, ptr %1117, align 4
  br label %1214

1121:                                             ; preds = %1103
  %1122 = load ptr, ptr %6, align 8, !tbaa !5
  %1123 = getelementptr inbounds %struct.http_parser, ptr %1122, i32 0, i32 5
  %1124 = load i32, ptr %1123, align 4
  %1125 = and i32 %1124, -16711681
  %1126 = or i32 %1125, 1048576
  store i32 %1126, ptr %1123, align 4
  br label %1214

1127:                                             ; preds = %1103
  %1128 = load ptr, ptr %6, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.http_parser, ptr %1128, i32 0, i32 5
  %1130 = load i32, ptr %1129, align 4
  %1131 = and i32 %1130, -16711681
  %1132 = or i32 %1131, 327680
  store i32 %1132, ptr %1129, align 4
  br label %1214

1133:                                             ; preds = %1103
  %1134 = load ptr, ptr %6, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.http_parser, ptr %1134, i32 0, i32 5
  %1136 = load i32, ptr %1135, align 4
  %1137 = and i32 %1136, -16711681
  %1138 = or i32 %1137, 0
  store i32 %1138, ptr %1135, align 4
  br label %1214

1139:                                             ; preds = %1103
  %1140 = load ptr, ptr %6, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.http_parser, ptr %1140, i32 0, i32 5
  %1142 = load i32, ptr %1141, align 4
  %1143 = and i32 %1142, -16711681
  %1144 = or i32 %1143, 65536
  store i32 %1144, ptr %1141, align 4
  br label %1214

1145:                                             ; preds = %1103
  %1146 = load ptr, ptr %6, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.http_parser, ptr %1146, i32 0, i32 5
  %1148 = load i32, ptr %1147, align 4
  %1149 = and i32 %1148, -16711681
  %1150 = or i32 %1149, 131072
  store i32 %1150, ptr %1147, align 4
  br label %1214

1151:                                             ; preds = %1103
  %1152 = load ptr, ptr %6, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.http_parser, ptr %1152, i32 0, i32 5
  %1154 = load i32, ptr %1153, align 4
  %1155 = and i32 %1154, -16711681
  %1156 = or i32 %1155, 589824
  store i32 %1156, ptr %1153, align 4
  br label %1214

1157:                                             ; preds = %1103
  %1158 = load ptr, ptr %6, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.http_parser, ptr %1158, i32 0, i32 5
  %1160 = load i32, ptr %1159, align 4
  %1161 = and i32 %1160, -16711681
  %1162 = or i32 %1161, 655360
  store i32 %1162, ptr %1159, align 4
  br label %1214

1163:                                             ; preds = %1103
  %1164 = load ptr, ptr %6, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.http_parser, ptr %1164, i32 0, i32 5
  %1166 = load i32, ptr %1165, align 4
  %1167 = and i32 %1166, -16711681
  %1168 = or i32 %1167, 1638400
  store i32 %1168, ptr %1165, align 4
  br label %1214

1169:                                             ; preds = %1103
  %1170 = load ptr, ptr %6, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.http_parser, ptr %1170, i32 0, i32 5
  %1172 = load i32, ptr %1171, align 4
  %1173 = and i32 %1172, -16711681
  %1174 = or i32 %1173, 393216
  store i32 %1174, ptr %1171, align 4
  br label %1214

1175:                                             ; preds = %1103
  %1176 = load ptr, ptr %6, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.http_parser, ptr %1176, i32 0, i32 5
  %1178 = load i32, ptr %1177, align 4
  %1179 = and i32 %1178, -16711681
  %1180 = or i32 %1179, 196608
  store i32 %1180, ptr %1177, align 4
  br label %1214

1181:                                             ; preds = %1103
  %1182 = load ptr, ptr %6, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.http_parser, ptr %1182, i32 0, i32 5
  %1184 = load i32, ptr %1183, align 4
  %1185 = and i32 %1184, -16711681
  %1186 = or i32 %1185, 1310720
  store i32 %1186, ptr %1183, align 4
  br label %1214

1187:                                             ; preds = %1103
  %1188 = load ptr, ptr %6, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.http_parser, ptr %1188, i32 0, i32 5
  %1190 = load i32, ptr %1189, align 4
  %1191 = and i32 %1190, -16711681
  %1192 = or i32 %1191, 1703936
  store i32 %1192, ptr %1189, align 4
  br label %1214

1193:                                             ; preds = %1103
  %1194 = load ptr, ptr %6, align 8, !tbaa !5
  %1195 = getelementptr inbounds %struct.http_parser, ptr %1194, i32 0, i32 5
  %1196 = load i32, ptr %1195, align 4
  %1197 = and i32 %1196, -16711681
  %1198 = or i32 %1197, 458752
  store i32 %1198, ptr %1195, align 4
  br label %1214

1199:                                             ; preds = %1103
  %1200 = load ptr, ptr %6, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.http_parser, ptr %1200, i32 0, i32 5
  %1202 = load i32, ptr %1201, align 4
  %1203 = and i32 %1202, -16711681
  %1204 = or i32 %1203, 983040
  store i32 %1204, ptr %1201, align 4
  br label %1214

1205:                                             ; preds = %1103
  br label %1206

1206:                                             ; preds = %1205
  %1207 = load ptr, ptr %6, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.http_parser, ptr %1207, i32 0, i32 5
  %1209 = load i32, ptr %1208, align 4
  %1210 = and i32 %1209, -2130706433
  %1211 = or i32 %1210, 268435456
  store i32 %1211, ptr %1208, align 4
  br label %1212

1212:                                             ; preds = %1206
  br label %1213

1213:                                             ; preds = %1212
  br label %6150

1214:                                             ; preds = %1199, %1193, %1187, %1181, %1175, %1169, %1163, %1157, %1151, %1145, %1139, %1133, %1127, %1121, %1115
  store i32 19, ptr %19, align 4, !tbaa !11
  br label %1215

1215:                                             ; preds = %1214
  %1216 = load ptr, ptr %6, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.http_parser, ptr %1216, i32 0, i32 5
  %1218 = load i32, ptr %1217, align 4
  %1219 = lshr i32 %1218, 24
  %1220 = and i32 %1219, 127
  %1221 = icmp eq i32 %1220, 0
  br i1 %1221, label %1222, label %1223

1222:                                             ; preds = %1215
  br label %1224

1223:                                             ; preds = %1215
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 992, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

1224:                                             ; preds = %1222
  %1225 = load ptr, ptr %7, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.http_parser_settings, ptr %1225, i32 0, i32 0
  %1227 = load ptr, ptr %1226, align 8, !tbaa !20
  %1228 = icmp ne ptr %1227, null
  %1229 = xor i1 %1228, true
  %1230 = xor i1 %1229, true
  %1231 = zext i1 %1230 to i32
  %1232 = sext i32 %1231 to i64
  %1233 = call i64 @llvm.expect.i64(i64 %1232, i64 1)
  %1234 = icmp ne i64 %1233, 0
  br i1 %1234, label %1235, label %1289

1235:                                             ; preds = %1224
  %1236 = load i32, ptr %19, align 4, !tbaa !11
  %1237 = load ptr, ptr %6, align 8, !tbaa !5
  %1238 = load i32, ptr %1237, align 8
  %1239 = and i32 %1236, 127
  %1240 = shl i32 %1239, 10
  %1241 = and i32 %1238, -130049
  %1242 = or i32 %1241, %1240
  store i32 %1242, ptr %1237, align 8
  %1243 = load ptr, ptr %7, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.http_parser_settings, ptr %1243, i32 0, i32 0
  %1245 = load ptr, ptr %1244, align 8, !tbaa !20
  %1246 = load ptr, ptr %6, align 8, !tbaa !5
  %1247 = call i32 %1245(ptr noundef %1246)
  %1248 = icmp ne i32 0, %1247
  %1249 = xor i1 %1248, true
  %1250 = xor i1 %1249, true
  %1251 = zext i1 %1250 to i32
  %1252 = sext i32 %1251 to i64
  %1253 = call i64 @llvm.expect.i64(i64 %1252, i64 0)
  %1254 = icmp ne i64 %1253, 0
  br i1 %1254, label %1255, label %1264

1255:                                             ; preds = %1235
  br label %1256

1256:                                             ; preds = %1255
  %1257 = load ptr, ptr %6, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.http_parser, ptr %1257, i32 0, i32 5
  %1259 = load i32, ptr %1258, align 4
  %1260 = and i32 %1259, -2130706433
  %1261 = or i32 %1260, 16777216
  store i32 %1261, ptr %1258, align 4
  br label %1262

1262:                                             ; preds = %1256
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263, %1235
  %1265 = load ptr, ptr %6, align 8, !tbaa !5
  %1266 = load i32, ptr %1265, align 8
  %1267 = lshr i32 %1266, 10
  %1268 = and i32 %1267, 127
  store i32 %1268, ptr %19, align 4, !tbaa !11
  %1269 = load ptr, ptr %6, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.http_parser, ptr %1269, i32 0, i32 5
  %1271 = load i32, ptr %1270, align 4
  %1272 = lshr i32 %1271, 24
  %1273 = and i32 %1272, 127
  %1274 = icmp ne i32 %1273, 0
  %1275 = xor i1 %1274, true
  %1276 = xor i1 %1275, true
  %1277 = zext i1 %1276 to i32
  %1278 = sext i32 %1277 to i64
  %1279 = call i64 @llvm.expect.i64(i64 %1278, i64 0)
  %1280 = icmp ne i64 %1279, 0
  br i1 %1280, label %1281, label %1288

1281:                                             ; preds = %1264
  %1282 = load ptr, ptr %13, align 8, !tbaa !5
  %1283 = load ptr, ptr %8, align 8, !tbaa !5
  %1284 = ptrtoint ptr %1282 to i64
  %1285 = ptrtoint ptr %1283 to i64
  %1286 = sub i64 %1284, %1285
  %1287 = add nsw i64 %1286, 1
  store i64 %1287, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

1288:                                             ; preds = %1264
  br label %1289

1289:                                             ; preds = %1288, %1224
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  br label %5676

1292:                                             ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %1293 = load i8, ptr %11, align 1, !tbaa !15
  %1294 = sext i8 %1293 to i32
  %1295 = icmp eq i32 %1294, 0
  %1296 = xor i1 %1295, true
  %1297 = xor i1 %1296, true
  %1298 = zext i1 %1297 to i32
  %1299 = sext i32 %1298 to i64
  %1300 = call i64 @llvm.expect.i64(i64 %1299, i64 0)
  %1301 = icmp ne i64 %1300, 0
  br i1 %1301, label %1302, label %1311

1302:                                             ; preds = %1292
  br label %1303

1303:                                             ; preds = %1302
  %1304 = load ptr, ptr %6, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.http_parser, ptr %1304, i32 0, i32 5
  %1306 = load i32, ptr %1305, align 4
  %1307 = and i32 %1306, -2130706433
  %1308 = or i32 %1307, 268435456
  store i32 %1308, ptr %1305, align 4
  br label %1309

1309:                                             ; preds = %1303
  br label %1310

1310:                                             ; preds = %1309
  store i32 17, ptr %21, align 4
  br label %1807

1311:                                             ; preds = %1292
  %1312 = load ptr, ptr %6, align 8, !tbaa !5
  %1313 = getelementptr inbounds %struct.http_parser, ptr %1312, i32 0, i32 5
  %1314 = load i32, ptr %1313, align 4
  %1315 = lshr i32 %1314, 16
  %1316 = and i32 %1315, 255
  %1317 = zext i32 %1316 to i64
  %1318 = getelementptr inbounds [33 x ptr], ptr @method_strings, i64 0, i64 %1317
  %1319 = load ptr, ptr %1318, align 8, !tbaa !5
  store ptr %1319, ptr %22, align 8, !tbaa !5
  %1320 = load i8, ptr %11, align 1, !tbaa !15
  %1321 = sext i8 %1320 to i32
  %1322 = icmp eq i32 %1321, 32
  br i1 %1322, label %1323, label %1335

1323:                                             ; preds = %1311
  %1324 = load ptr, ptr %22, align 8, !tbaa !5
  %1325 = load ptr, ptr %6, align 8, !tbaa !5
  %1326 = load i32, ptr %1325, align 8
  %1327 = lshr i32 %1326, 24
  %1328 = and i32 %1327, 127
  %1329 = zext i32 %1328 to i64
  %1330 = getelementptr inbounds i8, ptr %1324, i64 %1329
  %1331 = load i8, ptr %1330, align 1, !tbaa !15
  %1332 = sext i8 %1331 to i32
  %1333 = icmp eq i32 %1332, 0
  br i1 %1333, label %1334, label %1335

1334:                                             ; preds = %1323
  store i32 20, ptr %19, align 4, !tbaa !11
  br label %1796

1335:                                             ; preds = %1323, %1311
  %1336 = load i8, ptr %11, align 1, !tbaa !15
  %1337 = sext i8 %1336 to i32
  %1338 = load ptr, ptr %22, align 8, !tbaa !5
  %1339 = load ptr, ptr %6, align 8, !tbaa !5
  %1340 = load i32, ptr %1339, align 8
  %1341 = lshr i32 %1340, 24
  %1342 = and i32 %1341, 127
  %1343 = zext i32 %1342 to i64
  %1344 = getelementptr inbounds i8, ptr %1338, i64 %1343
  %1345 = load i8, ptr %1344, align 1, !tbaa !15
  %1346 = sext i8 %1345 to i32
  %1347 = icmp eq i32 %1337, %1346
  br i1 %1347, label %1348, label %1349

1348:                                             ; preds = %1335
  br label %1795

1349:                                             ; preds = %1335
  %1350 = load ptr, ptr %6, align 8, !tbaa !5
  %1351 = getelementptr inbounds %struct.http_parser, ptr %1350, i32 0, i32 5
  %1352 = load i32, ptr %1351, align 4
  %1353 = lshr i32 %1352, 16
  %1354 = and i32 %1353, 255
  %1355 = icmp eq i32 %1354, 5
  br i1 %1355, label %1356, label %1399

1356:                                             ; preds = %1349
  %1357 = load ptr, ptr %6, align 8, !tbaa !5
  %1358 = load i32, ptr %1357, align 8
  %1359 = lshr i32 %1358, 24
  %1360 = and i32 %1359, 127
  %1361 = icmp eq i32 %1360, 1
  br i1 %1361, label %1362, label %1372

1362:                                             ; preds = %1356
  %1363 = load i8, ptr %11, align 1, !tbaa !15
  %1364 = sext i8 %1363 to i32
  %1365 = icmp eq i32 %1364, 72
  br i1 %1365, label %1366, label %1372

1366:                                             ; preds = %1362
  %1367 = load ptr, ptr %6, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.http_parser, ptr %1367, i32 0, i32 5
  %1369 = load i32, ptr %1368, align 4
  %1370 = and i32 %1369, -16711681
  %1371 = or i32 %1370, 1441792
  store i32 %1371, ptr %1368, align 4
  br label %1398

1372:                                             ; preds = %1362, %1356
  %1373 = load ptr, ptr %6, align 8, !tbaa !5
  %1374 = load i32, ptr %1373, align 8
  %1375 = lshr i32 %1374, 24
  %1376 = and i32 %1375, 127
  %1377 = icmp eq i32 %1376, 2
  br i1 %1377, label %1378, label %1388

1378:                                             ; preds = %1372
  %1379 = load i8, ptr %11, align 1, !tbaa !15
  %1380 = sext i8 %1379 to i32
  %1381 = icmp eq i32 %1380, 80
  br i1 %1381, label %1382, label %1388

1382:                                             ; preds = %1378
  %1383 = load ptr, ptr %6, align 8, !tbaa !5
  %1384 = getelementptr inbounds %struct.http_parser, ptr %1383, i32 0, i32 5
  %1385 = load i32, ptr %1384, align 4
  %1386 = and i32 %1385, -16711681
  %1387 = or i32 %1386, 524288
  store i32 %1387, ptr %1384, align 4
  br label %1397

1388:                                             ; preds = %1378, %1372
  br label %1389

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

1395:                                             ; preds = %1389
  br label %1396

1396:                                             ; preds = %1395
  store i32 17, ptr %21, align 4
  br label %1807

1397:                                             ; preds = %1382
  br label %1398

1398:                                             ; preds = %1397, %1366
  br label %1794

1399:                                             ; preds = %1349
  %1400 = load ptr, ptr %6, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.http_parser, ptr %1400, i32 0, i32 5
  %1402 = load i32, ptr %1401, align 4
  %1403 = lshr i32 %1402, 16
  %1404 = and i32 %1403, 255
  %1405 = icmp eq i32 %1404, 10
  br i1 %1405, label %1406, label %1500

1406:                                             ; preds = %1399
  %1407 = load ptr, ptr %6, align 8, !tbaa !5
  %1408 = load i32, ptr %1407, align 8
  %1409 = lshr i32 %1408, 24
  %1410 = and i32 %1409, 127
  %1411 = icmp eq i32 %1410, 1
  br i1 %1411, label %1412, label %1422

1412:                                             ; preds = %1406
  %1413 = load i8, ptr %11, align 1, !tbaa !15
  %1414 = sext i8 %1413 to i32
  %1415 = icmp eq i32 %1414, 79
  br i1 %1415, label %1416, label %1422

1416:                                             ; preds = %1412
  %1417 = load ptr, ptr %6, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.http_parser, ptr %1417, i32 0, i32 5
  %1419 = load i32, ptr %1418, align 4
  %1420 = and i32 %1419, -16711681
  %1421 = or i32 %1420, 720896
  store i32 %1421, ptr %1418, align 4
  br label %1499

1422:                                             ; preds = %1412, %1406
  %1423 = load ptr, ptr %6, align 8, !tbaa !5
  %1424 = load i32, ptr %1423, align 8
  %1425 = lshr i32 %1424, 24
  %1426 = and i32 %1425, 127
  %1427 = icmp eq i32 %1426, 1
  br i1 %1427, label %1428, label %1438

1428:                                             ; preds = %1422
  %1429 = load i8, ptr %11, align 1, !tbaa !15
  %1430 = sext i8 %1429 to i32
  %1431 = icmp eq i32 %1430, 69
  br i1 %1431, label %1432, label %1438

1432:                                             ; preds = %1428
  %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 %1498

1438:                                             ; preds = %1428, %1422
  %1439 = load ptr, ptr %6, align 8, !tbaa !5
  %1440 = load i32, ptr %1439, align 8
  %1441 = lshr i32 %1440, 24
  %1442 = and i32 %1441, 127
  %1443 = icmp eq i32 %1442, 1
  br i1 %1443, label %1444, label %1454

1444:                                             ; preds = %1438
  %1445 = load i8, ptr %11, align 1, !tbaa !15
  %1446 = sext i8 %1445 to i32
  %1447 = icmp eq i32 %1446, 45
  br i1 %1447, label %1448, label %1454

1448:                                             ; preds = %1444
  %1449 = load ptr, ptr %6, align 8, !tbaa !5
  %1450 = getelementptr inbounds %struct.http_parser, ptr %1449, i32 0, i32 5
  %1451 = load i32, ptr %1450, align 4
  %1452 = and i32 %1451, -16711681
  %1453 = or i32 %1452, 1572864
  store i32 %1453, ptr %1450, align 4
  br label %1497

1454:                                             ; preds = %1444, %1438
  %1455 = load ptr, ptr %6, align 8, !tbaa !5
  %1456 = load i32, ptr %1455, align 8
  %1457 = lshr i32 %1456, 24
  %1458 = and i32 %1457, 127
  %1459 = icmp eq i32 %1458, 2
  br i1 %1459, label %1460, label %1470

1460:                                             ; preds = %1454
  %1461 = load i8, ptr %11, align 1, !tbaa !15
  %1462 = sext i8 %1461 to i32
  %1463 = icmp eq i32 %1462, 65
  br i1 %1463, label %1464, label %1470

1464:                                             ; preds = %1460
  %1465 = load ptr, ptr %6, align 8, !tbaa !5
  %1466 = getelementptr inbounds %struct.http_parser, ptr %1465, i32 0, i32 5
  %1467 = load i32, ptr %1466, align 4
  %1468 = and i32 %1467, -16711681
  %1469 = or i32 %1468, 1376256
  store i32 %1469, ptr %1466, align 4
  br label %1496

1470:                                             ; preds = %1460, %1454
  %1471 = load ptr, ptr %6, align 8, !tbaa !5
  %1472 = load i32, ptr %1471, align 8
  %1473 = lshr i32 %1472, 24
  %1474 = and i32 %1473, 127
  %1475 = icmp eq i32 %1474, 3
  br i1 %1475, label %1476, label %1486

1476:                                             ; preds = %1470
  %1477 = load i8, ptr %11, align 1, !tbaa !15
  %1478 = sext i8 %1477 to i32
  %1479 = icmp eq i32 %1478, 65
  br i1 %1479, label %1480, label %1486

1480:                                             ; preds = %1476
  %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, 1966080
  store i32 %1485, ptr %1482, align 4
  br label %1495

1486:                                             ; preds = %1476, %1470
  br label %1487

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

1493:                                             ; preds = %1487
  br label %1494

1494:                                             ; preds = %1493
  store i32 17, ptr %21, align 4
  br label %1807

1495:                                             ; preds = %1480
  br label %1496

1496:                                             ; preds = %1495, %1464
  br label %1497

1497:                                             ; preds = %1496, %1448
  br label %1498

1498:                                             ; preds = %1497, %1432
  br label %1499

1499:                                             ; preds = %1498, %1416
  br label %1793

1500:                                             ; preds = %1399
  %1501 = load ptr, ptr %6, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.http_parser, ptr %1501, i32 0, i32 5
  %1503 = load i32, ptr %1502, align 4
  %1504 = lshr i32 %1503, 16
  %1505 = and i32 %1504, 255
  %1506 = icmp eq i32 %1505, 26
  br i1 %1506, label %1507, label %1533

1507:                                             ; preds = %1500
  %1508 = load ptr, ptr %6, align 8, !tbaa !5
  %1509 = load i32, ptr %1508, align 8
  %1510 = lshr i32 %1509, 24
  %1511 = and i32 %1510, 127
  %1512 = icmp eq i32 %1511, 1
  br i1 %1512, label %1513, label %1523

1513:                                             ; preds = %1507
  %1514 = load i8, ptr %11, align 1, !tbaa !15
  %1515 = sext i8 %1514 to i32
  %1516 = icmp eq i32 %1515, 69
  br i1 %1516, label %1517, label %1523

1517:                                             ; preds = %1513
  %1518 = load ptr, ptr %6, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.http_parser, ptr %1518, i32 0, i32 5
  %1520 = load i32, ptr %1519, align 4
  %1521 = and i32 %1520, -16711681
  %1522 = or i32 %1521, 917504
  store i32 %1522, ptr %1519, align 4
  br label %1532

1523:                                             ; preds = %1513, %1507
  br label %1524

1524:                                             ; preds = %1523
  %1525 = load ptr, ptr %6, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.http_parser, ptr %1525, i32 0, i32 5
  %1527 = load i32, ptr %1526, align 4
  %1528 = and i32 %1527, -2130706433
  %1529 = or i32 %1528, 268435456
  store i32 %1529, ptr %1526, align 4
  br label %1530

1530:                                             ; preds = %1524
  br label %1531

1531:                                             ; preds = %1530
  store i32 17, ptr %21, align 4
  br label %1807

1532:                                             ; preds = %1517
  br label %1792

1533:                                             ; preds = %1500
  %1534 = load ptr, ptr %6, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.http_parser, ptr %1534, i32 0, i32 5
  %1536 = load i32, ptr %1535, align 4
  %1537 = lshr i32 %1536, 16
  %1538 = and i32 %1537, 255
  %1539 = icmp eq i32 %1538, 20
  br i1 %1539, label %1540, label %1566

1540:                                             ; preds = %1533
  %1541 = load ptr, ptr %6, align 8, !tbaa !5
  %1542 = load i32, ptr %1541, align 8
  %1543 = lshr i32 %1542, 24
  %1544 = and i32 %1543, 127
  %1545 = icmp eq i32 %1544, 2
  br i1 %1545, label %1546, label %1556

1546:                                             ; preds = %1540
  %1547 = load i8, ptr %11, align 1, !tbaa !15
  %1548 = sext i8 %1547 to i32
  %1549 = icmp eq i32 %1548, 66
  br i1 %1549, label %1550, label %1556

1550:                                             ; preds = %1546
  %1551 = load ptr, ptr %6, align 8, !tbaa !5
  %1552 = getelementptr inbounds %struct.http_parser, ptr %1551, i32 0, i32 5
  %1553 = load i32, ptr %1552, align 4
  %1554 = and i32 %1553, -16711681
  %1555 = or i32 %1554, 1114112
  store i32 %1555, ptr %1552, align 4
  br label %1565

1556:                                             ; preds = %1546, %1540
  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 = and i32 %1560, -2130706433
  %1562 = or i32 %1561, 268435456
  store i32 %1562, ptr %1559, align 4
  br label %1563

1563:                                             ; preds = %1557
  br label %1564

1564:                                             ; preds = %1563
  store i32 17, ptr %21, align 4
  br label %1807

1565:                                             ; preds = %1550
  br label %1791

1566:                                             ; preds = %1533
  %1567 = load ptr, ptr %6, align 8, !tbaa !5
  %1568 = load i32, ptr %1567, align 8
  %1569 = lshr i32 %1568, 24
  %1570 = and i32 %1569, 127
  %1571 = icmp eq i32 %1570, 1
  br i1 %1571, label %1572, label %1650

1572:                                             ; preds = %1566
  %1573 = load ptr, ptr %6, align 8, !tbaa !5
  %1574 = getelementptr inbounds %struct.http_parser, ptr %1573, i32 0, i32 5
  %1575 = load i32, ptr %1574, align 4
  %1576 = lshr i32 %1575, 16
  %1577 = and i32 %1576, 255
  %1578 = icmp eq i32 %1577, 3
  br i1 %1578, label %1579, label %1621

1579:                                             ; preds = %1572
  %1580 = load i8, ptr %11, align 1, !tbaa !15
  %1581 = sext i8 %1580 to i32
  %1582 = icmp eq i32 %1581, 82
  br i1 %1582, label %1583, label %1589

1583:                                             ; preds = %1579
  %1584 = load ptr, ptr %6, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.http_parser, ptr %1584, i32 0, i32 5
  %1586 = load i32, ptr %1585, align 4
  %1587 = and i32 %1586, -16711681
  %1588 = or i32 %1587, 786432
  store i32 %1588, ptr %1585, align 4
  br label %1620

1589:                                             ; preds = %1579
  %1590 = load i8, ptr %11, align 1, !tbaa !15
  %1591 = sext i8 %1590 to i32
  %1592 = icmp eq i32 %1591, 85
  br i1 %1592, label %1593, label %1599

1593:                                             ; preds = %1589
  %1594 = load ptr, ptr %6, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.http_parser, ptr %1594, i32 0, i32 5
  %1596 = load i32, ptr %1595, align 4
  %1597 = and i32 %1596, -16711681
  %1598 = or i32 %1597, 262144
  store i32 %1598, ptr %1595, align 4
  br label %1619

1599:                                             ; preds = %1589
  %1600 = load i8, ptr %11, align 1, !tbaa !15
  %1601 = sext i8 %1600 to i32
  %1602 = icmp eq i32 %1601, 65
  br i1 %1602, label %1603, label %1609

1603:                                             ; preds = %1599
  %1604 = load ptr, ptr %6, align 8, !tbaa !5
  %1605 = getelementptr inbounds %struct.http_parser, ptr %1604, i32 0, i32 5
  %1606 = load i32, ptr %1605, align 4
  %1607 = and i32 %1606, -16711681
  %1608 = or i32 %1607, 1835008
  store i32 %1608, ptr %1605, align 4
  br label %1618

1609:                                             ; preds = %1599
  br label %1610

1610:                                             ; preds = %1609
  %1611 = load ptr, ptr %6, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.http_parser, ptr %1611, i32 0, i32 5
  %1613 = load i32, ptr %1612, align 4
  %1614 = and i32 %1613, -2130706433
  %1615 = or i32 %1614, 268435456
  store i32 %1615, ptr %1612, align 4
  br label %1616

1616:                                             ; preds = %1610
  br label %1617

1617:                                             ; preds = %1616
  store i32 17, ptr %21, align 4
  br label %1807

1618:                                             ; preds = %1603
  br label %1619

1619:                                             ; preds = %1618, %1593
  br label %1620

1620:                                             ; preds = %1619, %1583
  br label %1649

1621:                                             ; preds = %1572
  %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 = lshr i32 %1624, 16
  %1626 = and i32 %1625, 255
  %1627 = icmp eq i32 %1626, 9
  br i1 %1627, label %1628, label %1648

1628:                                             ; preds = %1621
  %1629 = load i8, ptr %11, align 1, !tbaa !15
  %1630 = sext i8 %1629 to i32
  %1631 = icmp eq i32 %1630, 73
  br i1 %1631, label %1632, label %1638

1632:                                             ; preds = %1628
  %1633 = load ptr, ptr %6, align 8, !tbaa !5
  %1634 = getelementptr inbounds %struct.http_parser, ptr %1633, i32 0, i32 5
  %1635 = load i32, ptr %1634, align 4
  %1636 = and i32 %1635, -16711681
  %1637 = or i32 %1636, 2031616
  store i32 %1637, ptr %1634, align 4
  br label %1647

1638:                                             ; preds = %1628
  br label %1639

1639:                                             ; preds = %1638
  %1640 = load ptr, ptr %6, align 8, !tbaa !5
  %1641 = getelementptr inbounds %struct.http_parser, ptr %1640, i32 0, i32 5
  %1642 = load i32, ptr %1641, align 4
  %1643 = and i32 %1642, -2130706433
  %1644 = or i32 %1643, 268435456
  store i32 %1644, ptr %1641, align 4
  br label %1645

1645:                                             ; preds = %1639
  br label %1646

1646:                                             ; preds = %1645
  store i32 17, ptr %21, align 4
  br label %1807

1647:                                             ; preds = %1632
  br label %1648

1648:                                             ; preds = %1647, %1621
  br label %1649

1649:                                             ; preds = %1648, %1620
  br label %1790

1650:                                             ; preds = %1566
  %1651 = load ptr, ptr %6, align 8, !tbaa !5
  %1652 = load i32, ptr %1651, align 8
  %1653 = lshr i32 %1652, 24
  %1654 = and i32 %1653, 127
  %1655 = icmp eq i32 %1654, 2
  br i1 %1655, label %1656, label %1732

1656:                                             ; preds = %1650
  %1657 = load ptr, ptr %6, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.http_parser, ptr %1657, i32 0, i32 5
  %1659 = load i32, ptr %1658, align 4
  %1660 = lshr i32 %1659, 16
  %1661 = and i32 %1660, 255
  %1662 = icmp eq i32 %1661, 4
  br i1 %1662, label %1663, label %1683

1663:                                             ; preds = %1656
  %1664 = load i8, ptr %11, align 1, !tbaa !15
  %1665 = sext i8 %1664 to i32
  %1666 = icmp eq i32 %1665, 82
  br i1 %1666, label %1667, label %1673

1667:                                             ; preds = %1663
  %1668 = load ptr, ptr %6, align 8, !tbaa !5
  %1669 = getelementptr inbounds %struct.http_parser, ptr %1668, i32 0, i32 5
  %1670 = load i32, ptr %1669, align 4
  %1671 = and i32 %1670, -16711681
  %1672 = or i32 %1671, 1900544
  store i32 %1672, ptr %1669, align 4
  br label %1682

1673:                                             ; preds = %1663
  br label %1674

1674:                                             ; preds = %1673
  %1675 = load ptr, ptr %6, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.http_parser, ptr %1675, i32 0, i32 5
  %1677 = load i32, ptr %1676, align 4
  %1678 = and i32 %1677, -2130706433
  %1679 = or i32 %1678, 268435456
  store i32 %1679, ptr %1676, align 4
  br label %1680

1680:                                             ; preds = %1674
  br label %1681

1681:                                             ; preds = %1680
  store i32 17, ptr %21, align 4
  br label %1807

1682:                                             ; preds = %1667
  br label %1731

1683:                                             ; preds = %1656
  %1684 = load ptr, ptr %6, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.http_parser, ptr %1684, i32 0, i32 5
  %1686 = load i32, ptr %1685, align 4
  %1687 = lshr i32 %1686, 16
  %1688 = and i32 %1687, 255
  %1689 = icmp eq i32 %1688, 15
  br i1 %1689, label %1690, label %1721

1690:                                             ; preds = %1683
  %1691 = load i8, ptr %11, align 1, !tbaa !15
  %1692 = sext i8 %1691 to i32
  %1693 = icmp eq i32 %1692, 83
  br i1 %1693, label %1694, label %1700

1694:                                             ; preds = %1690
  %1695 = load ptr, ptr %6, align 8, !tbaa !5
  %1696 = getelementptr inbounds %struct.http_parser, ptr %1695, i32 0, i32 5
  %1697 = load i32, ptr %1696, align 4
  %1698 = and i32 %1697, -16711681
  %1699 = or i32 %1698, 1769472
  store i32 %1699, ptr %1696, align 4
  br label %1720

1700:                                             ; preds = %1690
  %1701 = load i8, ptr %11, align 1, !tbaa !15
  %1702 = sext i8 %1701 to i32
  %1703 = icmp eq i32 %1702, 66
  br i1 %1703, label %1704, label %1710

1704:                                             ; preds = %1700
  %1705 = load ptr, ptr %6, align 8, !tbaa !5
  %1706 = getelementptr inbounds %struct.http_parser, ptr %1705, i32 0, i32 5
  %1707 = load i32, ptr %1706, align 4
  %1708 = and i32 %1707, -16711681
  %1709 = or i32 %1708, 1179648
  store i32 %1709, ptr %1706, align 4
  br label %1719

1710:                                             ; preds = %1700
  br label %1711

1711:                                             ; preds = %1710
  %1712 = load ptr, ptr %6, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.http_parser, ptr %1712, i32 0, i32 5
  %1714 = load i32, ptr %1713, align 4
  %1715 = and i32 %1714, -2130706433
  %1716 = or i32 %1715, 268435456
  store i32 %1716, ptr %1713, align 4
  br label %1717

1717:                                             ; preds = %1711
  br label %1718

1718:                                             ; preds = %1717
  store i32 17, ptr %21, align 4
  br label %1807

1719:                                             ; preds = %1704
  br label %1720

1720:                                             ; preds = %1719, %1694
  br label %1730

1721:                                             ; preds = %1683
  br label %1722

1722:                                             ; preds = %1721
  %1723 = load ptr, ptr %6, align 8, !tbaa !5
  %1724 = getelementptr inbounds %struct.http_parser, ptr %1723, i32 0, i32 5
  %1725 = load i32, ptr %1724, align 4
  %1726 = and i32 %1725, -2130706433
  %1727 = or i32 %1726, 268435456
  store i32 %1727, ptr %1724, align 4
  br label %1728

1728:                                             ; preds = %1722
  br label %1729

1729:                                             ; preds = %1728
  store i32 17, ptr %21, align 4
  br label %1807

1730:                                             ; preds = %1720
  br label %1731

1731:                                             ; preds = %1730, %1682
  br label %1789

1732:                                             ; preds = %1650
  %1733 = load ptr, ptr %6, align 8, !tbaa !5
  %1734 = load i32, ptr %1733, align 8
  %1735 = lshr i32 %1734, 24
  %1736 = and i32 %1735, 127
  %1737 = icmp eq i32 %1736, 4
  br i1 %1737, label %1738, label %1755

1738:                                             ; preds = %1732
  %1739 = load ptr, ptr %6, align 8, !tbaa !5
  %1740 = getelementptr inbounds %struct.http_parser, ptr %1739, i32 0, i32 5
  %1741 = load i32, ptr %1740, align 4
  %1742 = lshr i32 %1741, 16
  %1743 = and i32 %1742, 255
  %1744 = icmp eq i32 %1743, 12
  br i1 %1744, label %1745, label %1755

1745:                                             ; preds = %1738
  %1746 = load i8, ptr %11, align 1, !tbaa !15
  %1747 = sext i8 %1746 to i32
  %1748 = icmp eq i32 %1747, 80
  br i1 %1748, label %1749, label %1755

1749:                                             ; preds = %1745
  %1750 = load ptr, ptr %6, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.http_parser, ptr %1750, i32 0, i32 5
  %1752 = load i32, ptr %1751, align 4
  %1753 = and i32 %1752, -16711681
  %1754 = or i32 %1753, 851968
  store i32 %1754, ptr %1751, align 4
  br label %1788

1755:                                             ; preds = %1745, %1738, %1732
  %1756 = load ptr, ptr %6, align 8, !tbaa !5
  %1757 = load i32, ptr %1756, align 8
  %1758 = lshr i32 %1757, 24
  %1759 = and i32 %1758, 127
  %1760 = icmp eq i32 %1759, 3
  br i1 %1760, label %1761, label %1778

1761:                                             ; preds = %1755
  %1762 = load ptr, ptr %6, align 8, !tbaa !5
  %1763 = getelementptr inbounds %struct.http_parser, ptr %1762, i32 0, i32 5
  %1764 = load i32, ptr %1763, align 4
  %1765 = lshr i32 %1764, 16
  %1766 = and i32 %1765, 255
  %1767 = icmp eq i32 %1766, 15
  br i1 %1767, label %1768, label %1778

1768:                                             ; preds = %1761
  %1769 = load i8, ptr %11, align 1, !tbaa !15
  %1770 = sext i8 %1769 to i32
  %1771 = icmp eq i32 %1770, 73
  br i1 %1771, label %1772, label %1778

1772:                                             ; preds = %1768
  %1773 = load ptr, ptr %6, align 8, !tbaa !5
  %1774 = getelementptr inbounds %struct.http_parser, ptr %1773, i32 0, i32 5
  %1775 = load i32, ptr %1774, align 4
  %1776 = and i32 %1775, -16711681
  %1777 = or i32 %1776, 2097152
  store i32 %1777, ptr %1774, align 4
  br label %1787

1778:                                             ; preds = %1768, %1761, %1755
  br label %1779

1779:                                             ; preds = %1778
  %1780 = load ptr, ptr %6, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.http_parser, ptr %1780, i32 0, i32 5
  %1782 = load i32, ptr %1781, align 4
  %1783 = and i32 %1782, -2130706433
  %1784 = or i32 %1783, 268435456
  store i32 %1784, ptr %1781, align 4
  br label %1785

1785:                                             ; preds = %1779
  br label %1786

1786:                                             ; preds = %1785
  store i32 17, ptr %21, align 4
  br label %1807

1787:                                             ; preds = %1772
  br label %1788

1788:                                             ; preds = %1787, %1749
  br label %1789

1789:                                             ; preds = %1788, %1731
  br label %1790

1790:                                             ; preds = %1789, %1649
  br label %1791

1791:                                             ; preds = %1790, %1565
  br label %1792

1792:                                             ; preds = %1791, %1532
  br label %1793

1793:                                             ; preds = %1792, %1499
  br label %1794

1794:                                             ; preds = %1793, %1398
  br label %1795

1795:                                             ; preds = %1794, %1348
  br label %1796

1796:                                             ; preds = %1795, %1334
  %1797 = load ptr, ptr %6, align 8, !tbaa !5
  %1798 = load i32, ptr %1797, align 8
  %1799 = lshr i32 %1798, 24
  %1800 = and i32 %1799, 127
  %1801 = add i32 %1800, 1
  %1802 = load i32, ptr %1797, align 8
  %1803 = and i32 %1801, 127
  %1804 = shl i32 %1803, 24
  %1805 = and i32 %1802, -2130706433
  %1806 = or i32 %1805, %1804
  store i32 %1806, ptr %1797, align 8
  store i32 19, ptr %21, align 4
  br label %1807

1807:                                             ; preds = %1796, %1786, %1729, %1718, %1681, %1646, %1617, %1564, %1531, %1494, %1396, %1310
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  %1808 = load i32, ptr %21, align 4
  switch i32 %1808, label %6182 [
    i32 19, label %5676
    i32 17, label %6150
  ]

1809:                                             ; preds = %200
  %1810 = load i8, ptr %11, align 1, !tbaa !15
  %1811 = sext i8 %1810 to i32
  %1812 = icmp eq i32 %1811, 32
  br i1 %1812, label %1813, label %1814

1813:                                             ; preds = %1809
  br label %5676

1814:                                             ; preds = %1809
  br label %1815

1815:                                             ; preds = %1814
  %1816 = load ptr, ptr %16, align 8, !tbaa !5
  %1817 = icmp ne ptr %1816, null
  br i1 %1817, label %1820, label %1818

1818:                                             ; preds = %1815
  %1819 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %1819, ptr %16, align 8, !tbaa !5
  br label %1820

1820:                                             ; preds = %1818, %1815
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821
  %1823 = load ptr, ptr %6, align 8, !tbaa !5
  %1824 = getelementptr inbounds %struct.http_parser, ptr %1823, i32 0, i32 5
  %1825 = load i32, ptr %1824, align 4
  %1826 = lshr i32 %1825, 16
  %1827 = and i32 %1826, 255
  %1828 = icmp eq i32 %1827, 5
  br i1 %1828, label %1829, label %1830

1829:                                             ; preds = %1822
  store i32 24, ptr %19, align 4, !tbaa !11
  br label %1830

1830:                                             ; preds = %1829, %1822
  %1831 = load i32, ptr %19, align 4, !tbaa !11
  %1832 = load i8, ptr %11, align 1, !tbaa !15
  %1833 = call i32 @parse_url_char(i32 noundef %1831, i8 noundef signext %1832)
  store i32 %1833, ptr %19, align 4, !tbaa !11
  %1834 = load i32, ptr %19, align 4, !tbaa !11
  %1835 = icmp eq i32 %1834, 1
  %1836 = xor i1 %1835, true
  %1837 = xor i1 %1836, true
  %1838 = zext i1 %1837 to i32
  %1839 = sext i32 %1838 to i64
  %1840 = call i64 @llvm.expect.i64(i64 %1839, i64 0)
  %1841 = icmp ne i64 %1840, 0
  br i1 %1841, label %1842, label %1851

1842:                                             ; preds = %1830
  br label %1843

1843:                                             ; preds = %1842
  %1844 = load ptr, ptr %6, align 8, !tbaa !5
  %1845 = getelementptr inbounds %struct.http_parser, ptr %1844, i32 0, i32 5
  %1846 = load i32, ptr %1845, align 4
  %1847 = and i32 %1846, -2130706433
  %1848 = or i32 %1847, 285212672
  store i32 %1848, ptr %1845, align 4
  br label %1849

1849:                                             ; preds = %1843
  br label %1850

1850:                                             ; preds = %1849
  br label %6150

1851:                                             ; preds = %1830
  br label %5676

1852:                                             ; preds = %200, %200, %200, %200
  %1853 = load i8, ptr %11, align 1, !tbaa !15
  %1854 = sext i8 %1853 to i32
  switch i32 %1854, label %1864 [
    i32 32, label %1855
    i32 13, label %1855
    i32 10, label %1855
  ]

1855:                                             ; preds = %1852, %1852, %1852
  br label %1856

1856:                                             ; preds = %1855
  %1857 = load ptr, ptr %6, align 8, !tbaa !5
  %1858 = getelementptr inbounds %struct.http_parser, ptr %1857, i32 0, i32 5
  %1859 = load i32, ptr %1858, align 4
  %1860 = and i32 %1859, -2130706433
  %1861 = or i32 %1860, 285212672
  store i32 %1861, ptr %1858, align 4
  br label %1862

1862:                                             ; preds = %1856
  br label %1863

1863:                                             ; preds = %1862
  br label %6150

1864:                                             ; preds = %1852
  %1865 = load i32, ptr %19, align 4, !tbaa !11
  %1866 = load i8, ptr %11, align 1, !tbaa !15
  %1867 = call i32 @parse_url_char(i32 noundef %1865, i8 noundef signext %1866)
  store i32 %1867, ptr %19, align 4, !tbaa !11
  %1868 = load i32, ptr %19, align 4, !tbaa !11
  %1869 = icmp eq i32 %1868, 1
  %1870 = xor i1 %1869, true
  %1871 = xor i1 %1870, true
  %1872 = zext i1 %1871 to i32
  %1873 = sext i32 %1872 to i64
  %1874 = call i64 @llvm.expect.i64(i64 %1873, i64 0)
  %1875 = icmp ne i64 %1874, 0
  br i1 %1875, label %1876, label %1885

1876:                                             ; preds = %1864
  br label %1877

1877:                                             ; preds = %1876
  %1878 = load ptr, ptr %6, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.http_parser, ptr %1878, i32 0, i32 5
  %1880 = load i32, ptr %1879, align 4
  %1881 = and i32 %1880, -2130706433
  %1882 = or i32 %1881, 285212672
  store i32 %1882, ptr %1879, align 4
  br label %1883

1883:                                             ; preds = %1877
  br label %1884

1884:                                             ; preds = %1883
  br label %6150

1885:                                             ; preds = %1864
  br label %1886

1886:                                             ; preds = %1885
  br label %5676

1887:                                             ; preds = %200, %200, %200, %200, %200, %200, %200
  %1888 = load i8, ptr %11, align 1, !tbaa !15
  %1889 = sext i8 %1888 to i32
  switch i32 %1889, label %2075 [
    i32 32, label %1890
    i32 13, label %1978
    i32 10, label %1978
  ]

1890:                                             ; preds = %1887
  store i32 32, ptr %19, align 4, !tbaa !11
  br label %1891

1891:                                             ; preds = %1890
  %1892 = load ptr, ptr %6, align 8, !tbaa !5
  %1893 = getelementptr inbounds %struct.http_parser, ptr %1892, i32 0, i32 5
  %1894 = load i32, ptr %1893, align 4
  %1895 = lshr i32 %1894, 24
  %1896 = and i32 %1895, 127
  %1897 = icmp eq i32 %1896, 0
  br i1 %1897, label %1898, label %1899

1898:                                             ; preds = %1891
  br label %1900

1899:                                             ; preds = %1891
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1154, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

1900:                                             ; preds = %1898
  %1901 = load ptr, ptr %16, align 8, !tbaa !5
  %1902 = icmp ne ptr %1901, null
  br i1 %1902, label %1903, label %1975

1903:                                             ; preds = %1900
  %1904 = load ptr, ptr %7, align 8, !tbaa !5
  %1905 = getelementptr inbounds %struct.http_parser_settings, ptr %1904, i32 0, i32 1
  %1906 = load ptr, ptr %1905, align 8, !tbaa !24
  %1907 = icmp ne ptr %1906, null
  %1908 = xor i1 %1907, true
  %1909 = xor i1 %1908, true
  %1910 = zext i1 %1909 to i32
  %1911 = sext i32 %1910 to i64
  %1912 = call i64 @llvm.expect.i64(i64 %1911, i64 1)
  %1913 = icmp ne i64 %1912, 0
  br i1 %1913, label %1914, label %1974

1914:                                             ; preds = %1903
  %1915 = load i32, ptr %19, align 4, !tbaa !11
  %1916 = load ptr, ptr %6, align 8, !tbaa !5
  %1917 = load i32, ptr %1916, align 8
  %1918 = and i32 %1915, 127
  %1919 = shl i32 %1918, 10
  %1920 = and i32 %1917, -130049
  %1921 = or i32 %1920, %1919
  store i32 %1921, ptr %1916, align 8
  %1922 = load ptr, ptr %7, align 8, !tbaa !5
  %1923 = getelementptr inbounds %struct.http_parser_settings, ptr %1922, i32 0, i32 1
  %1924 = load ptr, ptr %1923, align 8, !tbaa !24
  %1925 = load ptr, ptr %6, align 8, !tbaa !5
  %1926 = load ptr, ptr %16, align 8, !tbaa !5
  %1927 = load ptr, ptr %13, align 8, !tbaa !5
  %1928 = load ptr, ptr %16, align 8, !tbaa !5
  %1929 = ptrtoint ptr %1927 to i64
  %1930 = ptrtoint ptr %1928 to i64
  %1931 = sub i64 %1929, %1930
  %1932 = call i32 %1924(ptr noundef %1925, ptr noundef %1926, i64 noundef %1931)
  %1933 = icmp ne i32 0, %1932
  %1934 = xor i1 %1933, true
  %1935 = xor i1 %1934, true
  %1936 = zext i1 %1935 to i32
  %1937 = sext i32 %1936 to i64
  %1938 = call i64 @llvm.expect.i64(i64 %1937, i64 0)
  %1939 = icmp ne i64 %1938, 0
  br i1 %1939, label %1940, label %1949

1940:                                             ; preds = %1914
  br label %1941

1941:                                             ; preds = %1940
  %1942 = load ptr, ptr %6, align 8, !tbaa !5
  %1943 = getelementptr inbounds %struct.http_parser, ptr %1942, i32 0, i32 5
  %1944 = load i32, ptr %1943, align 4
  %1945 = and i32 %1944, -2130706433
  %1946 = or i32 %1945, 33554432
  store i32 %1946, ptr %1943, align 4
  br label %1947

1947:                                             ; preds = %1941
  br label %1948

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948, %1914
  %1950 = load ptr, ptr %6, align 8, !tbaa !5
  %1951 = load i32, ptr %1950, align 8
  %1952 = lshr i32 %1951, 10
  %1953 = and i32 %1952, 127
  store i32 %1953, ptr %19, align 4, !tbaa !11
  %1954 = load ptr, ptr %6, align 8, !tbaa !5
  %1955 = getelementptr inbounds %struct.http_parser, ptr %1954, i32 0, i32 5
  %1956 = load i32, ptr %1955, align 4
  %1957 = lshr i32 %1956, 24
  %1958 = and i32 %1957, 127
  %1959 = icmp ne i32 %1958, 0
  %1960 = xor i1 %1959, true
  %1961 = xor i1 %1960, true
  %1962 = zext i1 %1961 to i32
  %1963 = sext i32 %1962 to i64
  %1964 = call i64 @llvm.expect.i64(i64 %1963, i64 0)
  %1965 = icmp ne i64 %1964, 0
  br i1 %1965, label %1966, label %1973

1966:                                             ; preds = %1949
  %1967 = load ptr, ptr %13, align 8, !tbaa !5
  %1968 = load ptr, ptr %8, align 8, !tbaa !5
  %1969 = ptrtoint ptr %1967 to i64
  %1970 = ptrtoint ptr %1968 to i64
  %1971 = sub i64 %1969, %1970
  %1972 = add nsw i64 %1971, 1
  store i64 %1972, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

1973:                                             ; preds = %1949
  br label %1974

1974:                                             ; preds = %1973, %1903
  store ptr null, ptr %16, align 8, !tbaa !5
  br label %1975

1975:                                             ; preds = %1974, %1900
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  br label %2097

1978:                                             ; preds = %1887, %1887
  %1979 = load ptr, ptr %6, align 8, !tbaa !5
  %1980 = getelementptr inbounds %struct.http_parser, ptr %1979, i32 0, i32 3
  store i16 0, ptr %1980, align 8, !tbaa !21
  %1981 = load ptr, ptr %6, align 8, !tbaa !5
  %1982 = getelementptr inbounds %struct.http_parser, ptr %1981, i32 0, i32 4
  store i16 9, ptr %1982, align 2, !tbaa !22
  %1983 = load i8, ptr %11, align 1, !tbaa !15
  %1984 = sext i8 %1983 to i32
  %1985 = icmp eq i32 %1984, 13
  %1986 = zext i1 %1985 to i64
  %1987 = select i1 %1985, i32 41, i32 42
  store i32 %1987, ptr %19, align 4, !tbaa !11
  br label %1988

1988:                                             ; preds = %1978
  %1989 = load ptr, ptr %6, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.http_parser, ptr %1989, i32 0, i32 5
  %1991 = load i32, ptr %1990, align 4
  %1992 = lshr i32 %1991, 24
  %1993 = and i32 %1992, 127
  %1994 = icmp eq i32 %1993, 0
  br i1 %1994, label %1995, label %1996

1995:                                             ; preds = %1988
  br label %1997

1996:                                             ; preds = %1988
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1163, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

1997:                                             ; preds = %1995
  %1998 = load ptr, ptr %16, align 8, !tbaa !5
  %1999 = icmp ne ptr %1998, null
  br i1 %1999, label %2000, label %2072

2000:                                             ; preds = %1997
  %2001 = load ptr, ptr %7, align 8, !tbaa !5
  %2002 = getelementptr inbounds %struct.http_parser_settings, ptr %2001, i32 0, i32 1
  %2003 = load ptr, ptr %2002, align 8, !tbaa !24
  %2004 = icmp ne ptr %2003, null
  %2005 = xor i1 %2004, true
  %2006 = xor i1 %2005, true
  %2007 = zext i1 %2006 to i32
  %2008 = sext i32 %2007 to i64
  %2009 = call i64 @llvm.expect.i64(i64 %2008, i64 1)
  %2010 = icmp ne i64 %2009, 0
  br i1 %2010, label %2011, label %2071

2011:                                             ; preds = %2000
  %2012 = load i32, ptr %19, align 4, !tbaa !11
  %2013 = load ptr, ptr %6, align 8, !tbaa !5
  %2014 = load i32, ptr %2013, align 8
  %2015 = and i32 %2012, 127
  %2016 = shl i32 %2015, 10
  %2017 = and i32 %2014, -130049
  %2018 = or i32 %2017, %2016
  store i32 %2018, ptr %2013, align 8
  %2019 = load ptr, ptr %7, align 8, !tbaa !5
  %2020 = getelementptr inbounds %struct.http_parser_settings, ptr %2019, i32 0, i32 1
  %2021 = load ptr, ptr %2020, align 8, !tbaa !24
  %2022 = load ptr, ptr %6, align 8, !tbaa !5
  %2023 = load ptr, ptr %16, align 8, !tbaa !5
  %2024 = load ptr, ptr %13, align 8, !tbaa !5
  %2025 = load ptr, ptr %16, align 8, !tbaa !5
  %2026 = ptrtoint ptr %2024 to i64
  %2027 = ptrtoint ptr %2025 to i64
  %2028 = sub i64 %2026, %2027
  %2029 = call i32 %2021(ptr noundef %2022, ptr noundef %2023, i64 noundef %2028)
  %2030 = icmp ne i32 0, %2029
  %2031 = xor i1 %2030, true
  %2032 = xor i1 %2031, true
  %2033 = zext i1 %2032 to i32
  %2034 = sext i32 %2033 to i64
  %2035 = call i64 @llvm.expect.i64(i64 %2034, i64 0)
  %2036 = icmp ne i64 %2035, 0
  br i1 %2036, label %2037, label %2046

2037:                                             ; preds = %2011
  br label %2038

2038:                                             ; preds = %2037
  %2039 = load ptr, ptr %6, align 8, !tbaa !5
  %2040 = getelementptr inbounds %struct.http_parser, ptr %2039, i32 0, i32 5
  %2041 = load i32, ptr %2040, align 4
  %2042 = and i32 %2041, -2130706433
  %2043 = or i32 %2042, 33554432
  store i32 %2043, ptr %2040, align 4
  br label %2044

2044:                                             ; preds = %2038
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045, %2011
  %2047 = load ptr, ptr %6, align 8, !tbaa !5
  %2048 = load i32, ptr %2047, align 8
  %2049 = lshr i32 %2048, 10
  %2050 = and i32 %2049, 127
  store i32 %2050, ptr %19, align 4, !tbaa !11
  %2051 = load ptr, ptr %6, align 8, !tbaa !5
  %2052 = getelementptr inbounds %struct.http_parser, ptr %2051, i32 0, i32 5
  %2053 = load i32, ptr %2052, align 4
  %2054 = lshr i32 %2053, 24
  %2055 = and i32 %2054, 127
  %2056 = icmp ne i32 %2055, 0
  %2057 = xor i1 %2056, true
  %2058 = xor i1 %2057, true
  %2059 = zext i1 %2058 to i32
  %2060 = sext i32 %2059 to i64
  %2061 = call i64 @llvm.expect.i64(i64 %2060, i64 0)
  %2062 = icmp ne i64 %2061, 0
  br i1 %2062, label %2063, label %2070

2063:                                             ; preds = %2046
  %2064 = load ptr, ptr %13, align 8, !tbaa !5
  %2065 = load ptr, ptr %8, align 8, !tbaa !5
  %2066 = ptrtoint ptr %2064 to i64
  %2067 = ptrtoint ptr %2065 to i64
  %2068 = sub i64 %2066, %2067
  %2069 = add nsw i64 %2068, 1
  store i64 %2069, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

2070:                                             ; preds = %2046
  br label %2071

2071:                                             ; preds = %2070, %2000
  store ptr null, ptr %16, align 8, !tbaa !5
  br label %2072

2072:                                             ; preds = %2071, %1997
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  br label %2097

2075:                                             ; preds = %1887
  %2076 = load i32, ptr %19, align 4, !tbaa !11
  %2077 = load i8, ptr %11, align 1, !tbaa !15
  %2078 = call i32 @parse_url_char(i32 noundef %2076, i8 noundef signext %2077)
  store i32 %2078, ptr %19, align 4, !tbaa !11
  %2079 = load i32, ptr %19, align 4, !tbaa !11
  %2080 = icmp eq i32 %2079, 1
  %2081 = xor i1 %2080, true
  %2082 = xor i1 %2081, true
  %2083 = zext i1 %2082 to i32
  %2084 = sext i32 %2083 to i64
  %2085 = call i64 @llvm.expect.i64(i64 %2084, i64 0)
  %2086 = icmp ne i64 %2085, 0
  br i1 %2086, label %2087, label %2096

2087:                                             ; preds = %2075
  br label %2088

2088:                                             ; preds = %2087
  %2089 = load ptr, ptr %6, align 8, !tbaa !5
  %2090 = getelementptr inbounds %struct.http_parser, ptr %2089, i32 0, i32 5
  %2091 = load i32, ptr %2090, align 4
  %2092 = and i32 %2091, -2130706433
  %2093 = or i32 %2092, 285212672
  store i32 %2093, ptr %2090, align 4
  br label %2094

2094:                                             ; preds = %2088
  br label %2095

2095:                                             ; preds = %2094
  br label %6150

2096:                                             ; preds = %2075
  br label %2097

2097:                                             ; preds = %2096, %2074, %1977
  br label %5676

2098:                                             ; preds = %200
  %2099 = load i8, ptr %11, align 1, !tbaa !15
  %2100 = sext i8 %2099 to i32
  switch i32 %2100, label %2102 [
    i32 72, label %2101
    i32 32, label %2111
  ]

2101:                                             ; preds = %2098
  store i32 33, ptr %19, align 4, !tbaa !11
  br label %2111

2102:                                             ; preds = %2098
  br label %2103

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

2109:                                             ; preds = %2103
  br label %2110

2110:                                             ; preds = %2109
  br label %6150

2111:                                             ; preds = %2101, %2098
  br label %5676

2112:                                             ; preds = %200
  br label %2113

2113:                                             ; preds = %2112
  %2114 = load i8, ptr %11, align 1, !tbaa !15
  %2115 = sext i8 %2114 to i32
  %2116 = icmp ne i32 %2115, 84
  br i1 %2116, label %2117, label %2126

2117:                                             ; preds = %2113
  br label %2118

2118:                                             ; preds = %2117
  %2119 = load ptr, ptr %6, align 8, !tbaa !5
  %2120 = getelementptr inbounds %struct.http_parser, ptr %2119, i32 0, i32 5
  %2121 = load i32, ptr %2120, align 4
  %2122 = and i32 %2121, -2130706433
  %2123 = or i32 %2122, 503316480
  store i32 %2123, ptr %2120, align 4
  br label %2124

2124:                                             ; preds = %2118
  br label %2125

2125:                                             ; preds = %2124
  br label %6150

2126:                                             ; preds = %2113
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127
  store i32 34, ptr %19, align 4, !tbaa !11
  br label %5676

2129:                                             ; preds = %200
  br label %2130

2130:                                             ; preds = %2129
  %2131 = load i8, ptr %11, align 1, !tbaa !15
  %2132 = sext i8 %2131 to i32
  %2133 = icmp ne i32 %2132, 84
  br i1 %2133, label %2134, label %2143

2134:                                             ; preds = %2130
  br label %2135

2135:                                             ; preds = %2134
  %2136 = load ptr, ptr %6, align 8, !tbaa !5
  %2137 = getelementptr inbounds %struct.http_parser, ptr %2136, i32 0, i32 5
  %2138 = load i32, ptr %2137, align 4
  %2139 = and i32 %2138, -2130706433
  %2140 = or i32 %2139, 503316480
  store i32 %2140, ptr %2137, align 4
  br label %2141

2141:                                             ; preds = %2135
  br label %2142

2142:                                             ; preds = %2141
  br label %6150

2143:                                             ; preds = %2130
  br label %2144

2144:                                             ; preds = %2143
  br label %2145

2145:                                             ; preds = %2144
  store i32 35, ptr %19, align 4, !tbaa !11
  br label %5676

2146:                                             ; preds = %200
  br label %2147

2147:                                             ; preds = %2146
  %2148 = load i8, ptr %11, align 1, !tbaa !15
  %2149 = sext i8 %2148 to i32
  %2150 = icmp ne i32 %2149, 80
  br i1 %2150, label %2151, label %2160

2151:                                             ; preds = %2147
  br label %2152

2152:                                             ; preds = %2151
  %2153 = load ptr, ptr %6, align 8, !tbaa !5
  %2154 = getelementptr inbounds %struct.http_parser, ptr %2153, i32 0, i32 5
  %2155 = load i32, ptr %2154, align 4
  %2156 = and i32 %2155, -2130706433
  %2157 = or i32 %2156, 503316480
  store i32 %2157, ptr %2154, align 4
  br label %2158

2158:                                             ; preds = %2152
  br label %2159

2159:                                             ; preds = %2158
  br label %6150

2160:                                             ; preds = %2147
  br label %2161

2161:                                             ; preds = %2160
  br label %2162

2162:                                             ; preds = %2161
  store i32 36, ptr %19, align 4, !tbaa !11
  br label %5676

2163:                                             ; preds = %200
  br label %2164

2164:                                             ; preds = %2163
  %2165 = load i8, ptr %11, align 1, !tbaa !15
  %2166 = sext i8 %2165 to i32
  %2167 = icmp ne i32 %2166, 47
  br i1 %2167, label %2168, label %2177

2168:                                             ; preds = %2164
  br label %2169

2169:                                             ; preds = %2168
  %2170 = load ptr, ptr %6, align 8, !tbaa !5
  %2171 = getelementptr inbounds %struct.http_parser, ptr %2170, i32 0, i32 5
  %2172 = load i32, ptr %2171, align 4
  %2173 = and i32 %2172, -2130706433
  %2174 = or i32 %2173, 503316480
  store i32 %2174, ptr %2171, align 4
  br label %2175

2175:                                             ; preds = %2169
  br label %2176

2176:                                             ; preds = %2175
  br label %6150

2177:                                             ; preds = %2164
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178
  store i32 37, ptr %19, align 4, !tbaa !11
  br label %5676

2180:                                             ; preds = %200
  %2181 = load i8, ptr %11, align 1, !tbaa !15
  %2182 = sext i8 %2181 to i32
  %2183 = icmp slt i32 %2182, 49
  br i1 %2183, label %2188, label %2184

2184:                                             ; preds = %2180
  %2185 = load i8, ptr %11, align 1, !tbaa !15
  %2186 = sext i8 %2185 to i32
  %2187 = icmp sgt i32 %2186, 57
  br label %2188

2188:                                             ; preds = %2184, %2180
  %2189 = phi i1 [ true, %2180 ], [ %2187, %2184 ]
  %2190 = xor i1 %2189, true
  %2191 = xor i1 %2190, true
  %2192 = zext i1 %2191 to i32
  %2193 = sext i32 %2192 to i64
  %2194 = call i64 @llvm.expect.i64(i64 %2193, i64 0)
  %2195 = icmp ne i64 %2194, 0
  br i1 %2195, label %2196, label %2205

2196:                                             ; preds = %2188
  br label %2197

2197:                                             ; preds = %2196
  %2198 = load ptr, ptr %6, align 8, !tbaa !5
  %2199 = getelementptr inbounds %struct.http_parser, ptr %2198, i32 0, i32 5
  %2200 = load i32, ptr %2199, align 4
  %2201 = and i32 %2200, -2130706433
  %2202 = or i32 %2201, 234881024
  store i32 %2202, ptr %2199, align 4
  br label %2203

2203:                                             ; preds = %2197
  br label %2204

2204:                                             ; preds = %2203
  br label %6150

2205:                                             ; preds = %2188
  %2206 = load i8, ptr %11, align 1, !tbaa !15
  %2207 = sext i8 %2206 to i32
  %2208 = sub nsw i32 %2207, 48
  %2209 = trunc i32 %2208 to i16
  %2210 = load ptr, ptr %6, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.http_parser, ptr %2210, i32 0, i32 3
  store i16 %2209, ptr %2211, align 8, !tbaa !21
  store i32 38, ptr %19, align 4, !tbaa !11
  br label %5676

2212:                                             ; preds = %200
  %2213 = load i8, ptr %11, align 1, !tbaa !15
  %2214 = sext i8 %2213 to i32
  %2215 = icmp eq i32 %2214, 46
  br i1 %2215, label %2216, label %2217

2216:                                             ; preds = %2212
  store i32 39, ptr %19, align 4, !tbaa !11
  br label %5676

2217:                                             ; preds = %2212
  %2218 = load i8, ptr %11, align 1, !tbaa !15
  %2219 = sext i8 %2218 to i32
  %2220 = icmp sge i32 %2219, 48
  br i1 %2220, label %2221, label %2225

2221:                                             ; preds = %2217
  %2222 = load i8, ptr %11, align 1, !tbaa !15
  %2223 = sext i8 %2222 to i32
  %2224 = icmp sle i32 %2223, 57
  br label %2225

2225:                                             ; preds = %2221, %2217
  %2226 = phi i1 [ false, %2217 ], [ %2224, %2221 ]
  %2227 = xor i1 %2226, true
  %2228 = xor i1 %2227, true
  %2229 = xor i1 %2228, true
  %2230 = zext i1 %2229 to i32
  %2231 = sext i32 %2230 to i64
  %2232 = call i64 @llvm.expect.i64(i64 %2231, i64 0)
  %2233 = icmp ne i64 %2232, 0
  br i1 %2233, label %2234, label %2243

2234:                                             ; preds = %2225
  br label %2235

2235:                                             ; preds = %2234
  %2236 = load ptr, ptr %6, align 8, !tbaa !5
  %2237 = getelementptr inbounds %struct.http_parser, ptr %2236, i32 0, i32 5
  %2238 = load i32, ptr %2237, align 4
  %2239 = and i32 %2238, -2130706433
  %2240 = or i32 %2239, 234881024
  store i32 %2240, ptr %2237, align 4
  br label %2241

2241:                                             ; preds = %2235
  br label %2242

2242:                                             ; preds = %2241
  br label %6150

2243:                                             ; preds = %2225
  %2244 = load ptr, ptr %6, align 8, !tbaa !5
  %2245 = getelementptr inbounds %struct.http_parser, ptr %2244, i32 0, i32 3
  %2246 = load i16, ptr %2245, align 8, !tbaa !21
  %2247 = zext i16 %2246 to i32
  %2248 = mul nsw i32 %2247, 10
  %2249 = trunc i32 %2248 to i16
  store i16 %2249, ptr %2245, align 8, !tbaa !21
  %2250 = load i8, ptr %11, align 1, !tbaa !15
  %2251 = sext i8 %2250 to i32
  %2252 = sub nsw i32 %2251, 48
  %2253 = load ptr, ptr %6, align 8, !tbaa !5
  %2254 = getelementptr inbounds %struct.http_parser, ptr %2253, i32 0, i32 3
  %2255 = load i16, ptr %2254, align 8, !tbaa !21
  %2256 = zext i16 %2255 to i32
  %2257 = add nsw i32 %2256, %2252
  %2258 = trunc i32 %2257 to i16
  store i16 %2258, ptr %2254, align 8, !tbaa !21
  %2259 = load ptr, ptr %6, align 8, !tbaa !5
  %2260 = getelementptr inbounds %struct.http_parser, ptr %2259, i32 0, i32 3
  %2261 = load i16, ptr %2260, align 8, !tbaa !21
  %2262 = zext i16 %2261 to i32
  %2263 = icmp sgt i32 %2262, 999
  %2264 = xor i1 %2263, true
  %2265 = xor i1 %2264, true
  %2266 = zext i1 %2265 to i32
  %2267 = sext i32 %2266 to i64
  %2268 = call i64 @llvm.expect.i64(i64 %2267, i64 0)
  %2269 = icmp ne i64 %2268, 0
  br i1 %2269, label %2270, label %2279

2270:                                             ; preds = %2243
  br label %2271

2271:                                             ; preds = %2270
  %2272 = load ptr, ptr %6, align 8, !tbaa !5
  %2273 = getelementptr inbounds %struct.http_parser, ptr %2272, i32 0, i32 5
  %2274 = load i32, ptr %2273, align 4
  %2275 = and i32 %2274, -2130706433
  %2276 = or i32 %2275, 234881024
  store i32 %2276, ptr %2273, align 4
  br label %2277

2277:                                             ; preds = %2271
  br label %2278

2278:                                             ; preds = %2277
  br label %6150

2279:                                             ; preds = %2243
  br label %5676

2280:                                             ; preds = %200
  %2281 = load i8, ptr %11, align 1, !tbaa !15
  %2282 = sext i8 %2281 to i32
  %2283 = icmp sge i32 %2282, 48
  br i1 %2283, label %2284, label %2288

2284:                                             ; preds = %2280
  %2285 = load i8, ptr %11, align 1, !tbaa !15
  %2286 = sext i8 %2285 to i32
  %2287 = icmp sle i32 %2286, 57
  br label %2288

2288:                                             ; preds = %2284, %2280
  %2289 = phi i1 [ false, %2280 ], [ %2287, %2284 ]
  %2290 = xor i1 %2289, true
  %2291 = xor i1 %2290, true
  %2292 = xor i1 %2291, true
  %2293 = zext i1 %2292 to i32
  %2294 = sext i32 %2293 to i64
  %2295 = call i64 @llvm.expect.i64(i64 %2294, i64 0)
  %2296 = icmp ne i64 %2295, 0
  br i1 %2296, label %2297, label %2306

2297:                                             ; preds = %2288
  br label %2298

2298:                                             ; preds = %2297
  %2299 = load ptr, ptr %6, align 8, !tbaa !5
  %2300 = getelementptr inbounds %struct.http_parser, ptr %2299, i32 0, i32 5
  %2301 = load i32, ptr %2300, align 4
  %2302 = and i32 %2301, -2130706433
  %2303 = or i32 %2302, 234881024
  store i32 %2303, ptr %2300, align 4
  br label %2304

2304:                                             ; preds = %2298
  br label %2305

2305:                                             ; preds = %2304
  br label %6150

2306:                                             ; preds = %2288
  %2307 = load i8, ptr %11, align 1, !tbaa !15
  %2308 = sext i8 %2307 to i32
  %2309 = sub nsw i32 %2308, 48
  %2310 = trunc i32 %2309 to i16
  %2311 = load ptr, ptr %6, align 8, !tbaa !5
  %2312 = getelementptr inbounds %struct.http_parser, ptr %2311, i32 0, i32 4
  store i16 %2310, ptr %2312, align 2, !tbaa !22
  store i32 40, ptr %19, align 4, !tbaa !11
  br label %5676

2313:                                             ; preds = %200
  %2314 = load i8, ptr %11, align 1, !tbaa !15
  %2315 = sext i8 %2314 to i32
  %2316 = icmp eq i32 %2315, 13
  br i1 %2316, label %2317, label %2318

2317:                                             ; preds = %2313
  store i32 41, ptr %19, align 4, !tbaa !11
  br label %5676

2318:                                             ; preds = %2313
  %2319 = load i8, ptr %11, align 1, !tbaa !15
  %2320 = sext i8 %2319 to i32
  %2321 = icmp eq i32 %2320, 10
  br i1 %2321, label %2322, label %2323

2322:                                             ; preds = %2318
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %5676

2323:                                             ; preds = %2318
  %2324 = load i8, ptr %11, align 1, !tbaa !15
  %2325 = sext i8 %2324 to i32
  %2326 = icmp sge i32 %2325, 48
  br i1 %2326, label %2327, label %2331

2327:                                             ; preds = %2323
  %2328 = load i8, ptr %11, align 1, !tbaa !15
  %2329 = sext i8 %2328 to i32
  %2330 = icmp sle i32 %2329, 57
  br label %2331

2331:                                             ; preds = %2327, %2323
  %2332 = phi i1 [ false, %2323 ], [ %2330, %2327 ]
  %2333 = xor i1 %2332, true
  %2334 = xor i1 %2333, true
  %2335 = xor i1 %2334, true
  %2336 = zext i1 %2335 to i32
  %2337 = sext i32 %2336 to i64
  %2338 = call i64 @llvm.expect.i64(i64 %2337, i64 0)
  %2339 = icmp ne i64 %2338, 0
  br i1 %2339, label %2340, label %2349

2340:                                             ; preds = %2331
  br label %2341

2341:                                             ; preds = %2340
  %2342 = load ptr, ptr %6, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.http_parser, ptr %2342, i32 0, i32 5
  %2344 = load i32, ptr %2343, align 4
  %2345 = and i32 %2344, -2130706433
  %2346 = or i32 %2345, 234881024
  store i32 %2346, ptr %2343, align 4
  br label %2347

2347:                                             ; preds = %2341
  br label %2348

2348:                                             ; preds = %2347
  br label %6150

2349:                                             ; preds = %2331
  %2350 = load ptr, ptr %6, align 8, !tbaa !5
  %2351 = getelementptr inbounds %struct.http_parser, ptr %2350, i32 0, i32 4
  %2352 = load i16, ptr %2351, align 2, !tbaa !22
  %2353 = zext i16 %2352 to i32
  %2354 = mul nsw i32 %2353, 10
  %2355 = trunc i32 %2354 to i16
  store i16 %2355, ptr %2351, align 2, !tbaa !22
  %2356 = load i8, ptr %11, align 1, !tbaa !15
  %2357 = sext i8 %2356 to i32
  %2358 = sub nsw i32 %2357, 48
  %2359 = load ptr, ptr %6, align 8, !tbaa !5
  %2360 = getelementptr inbounds %struct.http_parser, ptr %2359, i32 0, i32 4
  %2361 = load i16, ptr %2360, align 2, !tbaa !22
  %2362 = zext i16 %2361 to i32
  %2363 = add nsw i32 %2362, %2358
  %2364 = trunc i32 %2363 to i16
  store i16 %2364, ptr %2360, align 2, !tbaa !22
  %2365 = load ptr, ptr %6, align 8, !tbaa !5
  %2366 = getelementptr inbounds %struct.http_parser, ptr %2365, i32 0, i32 4
  %2367 = load i16, ptr %2366, align 2, !tbaa !22
  %2368 = zext i16 %2367 to i32
  %2369 = icmp sgt i32 %2368, 999
  %2370 = xor i1 %2369, true
  %2371 = xor i1 %2370, true
  %2372 = zext i1 %2371 to i32
  %2373 = sext i32 %2372 to i64
  %2374 = call i64 @llvm.expect.i64(i64 %2373, i64 0)
  %2375 = icmp ne i64 %2374, 0
  br i1 %2375, label %2376, label %2385

2376:                                             ; preds = %2349
  br label %2377

2377:                                             ; preds = %2376
  %2378 = load ptr, ptr %6, align 8, !tbaa !5
  %2379 = getelementptr inbounds %struct.http_parser, ptr %2378, i32 0, i32 5
  %2380 = load i32, ptr %2379, align 4
  %2381 = and i32 %2380, -2130706433
  %2382 = or i32 %2381, 234881024
  store i32 %2382, ptr %2379, align 4
  br label %2383

2383:                                             ; preds = %2377
  br label %2384

2384:                                             ; preds = %2383
  br label %6150

2385:                                             ; preds = %2349
  br label %5676

2386:                                             ; preds = %200
  %2387 = load i8, ptr %11, align 1, !tbaa !15
  %2388 = sext i8 %2387 to i32
  %2389 = icmp ne i32 %2388, 10
  %2390 = xor i1 %2389, true
  %2391 = xor i1 %2390, true
  %2392 = zext i1 %2391 to i32
  %2393 = sext i32 %2392 to i64
  %2394 = call i64 @llvm.expect.i64(i64 %2393, i64 0)
  %2395 = icmp ne i64 %2394, 0
  br i1 %2395, label %2396, label %2405

2396:                                             ; preds = %2386
  br label %2397

2397:                                             ; preds = %2396
  %2398 = load ptr, ptr %6, align 8, !tbaa !5
  %2399 = getelementptr inbounds %struct.http_parser, ptr %2398, i32 0, i32 5
  %2400 = load i32, ptr %2399, align 4
  %2401 = and i32 %2400, -2130706433
  %2402 = or i32 %2401, 385875968
  store i32 %2402, ptr %2399, align 4
  br label %2403

2403:                                             ; preds = %2397
  br label %2404

2404:                                             ; preds = %2403
  br label %6150

2405:                                             ; preds = %2386
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %5676

2406:                                             ; preds = %200
  %2407 = load i8, ptr %11, align 1, !tbaa !15
  %2408 = sext i8 %2407 to i32
  %2409 = icmp eq i32 %2408, 13
  br i1 %2409, label %2410, label %2411

2410:                                             ; preds = %2406
  store i32 55, ptr %19, align 4, !tbaa !11
  br label %5676

2411:                                             ; preds = %2406
  %2412 = load i8, ptr %11, align 1, !tbaa !15
  %2413 = sext i8 %2412 to i32
  %2414 = icmp eq i32 %2413, 10
  br i1 %2414, label %2415, label %2416

2415:                                             ; preds = %2411
  store i32 55, ptr %19, align 4, !tbaa !11
  br label %200

2416:                                             ; preds = %2411
  %2417 = load i8, ptr %11, align 1, !tbaa !15
  %2418 = zext i8 %2417 to i64
  %2419 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %2418
  %2420 = load i8, ptr %2419, align 1, !tbaa !15
  store i8 %2420, ptr %10, align 1, !tbaa !15
  %2421 = load i8, ptr %10, align 1, !tbaa !15
  %2422 = icmp ne i8 %2421, 0
  %2423 = xor i1 %2422, true
  %2424 = xor i1 %2423, true
  %2425 = xor i1 %2424, true
  %2426 = zext i1 %2425 to i32
  %2427 = sext i32 %2426 to i64
  %2428 = call i64 @llvm.expect.i64(i64 %2427, i64 0)
  %2429 = icmp ne i64 %2428, 0
  br i1 %2429, label %2430, label %2439

2430:                                             ; preds = %2416
  br label %2431

2431:                                             ; preds = %2430
  %2432 = load ptr, ptr %6, align 8, !tbaa !5
  %2433 = getelementptr inbounds %struct.http_parser, ptr %2432, i32 0, i32 5
  %2434 = load i32, ptr %2433, align 4
  %2435 = and i32 %2434, -2130706433
  %2436 = or i32 %2435, 402653184
  store i32 %2436, ptr %2433, align 4
  br label %2437

2437:                                             ; preds = %2431
  br label %2438

2438:                                             ; preds = %2437
  br label %6150

2439:                                             ; preds = %2416
  br label %2440

2440:                                             ; preds = %2439
  %2441 = load ptr, ptr %14, align 8, !tbaa !5
  %2442 = icmp ne ptr %2441, null
  br i1 %2442, label %2445, label %2443

2443:                                             ; preds = %2440
  %2444 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2444, ptr %14, align 8, !tbaa !5
  br label %2445

2445:                                             ; preds = %2443, %2440
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

2447:                                             ; preds = %2446
  %2448 = load ptr, ptr %6, align 8, !tbaa !5
  %2449 = load i32, ptr %2448, align 8
  %2450 = and i32 %2449, -2130706433
  %2451 = or i32 %2450, 0
  store i32 %2451, ptr %2448, align 8
  store i32 43, ptr %19, align 4, !tbaa !11
  %2452 = load i8, ptr %10, align 1, !tbaa !15
  %2453 = sext i8 %2452 to i32
  switch i32 %2453, label %2474 [
    i32 99, label %2454
    i32 112, label %2459
    i32 116, label %2464
    i32 117, label %2469
  ]

2454:                                             ; preds = %2447
  %2455 = load ptr, ptr %6, align 8, !tbaa !5
  %2456 = load i32, ptr %2455, align 8
  %2457 = and i32 %2456, -16646145
  %2458 = or i32 %2457, 131072
  store i32 %2458, ptr %2455, align 8
  br label %2479

2459:                                             ; preds = %2447
  %2460 = load ptr, ptr %6, align 8, !tbaa !5
  %2461 = load i32, ptr %2460, align 8
  %2462 = and i32 %2461, -16646145
  %2463 = or i32 %2462, 655360
  store i32 %2463, ptr %2460, align 8
  br label %2479

2464:                                             ; preds = %2447
  %2465 = load ptr, ptr %6, align 8, !tbaa !5
  %2466 = load i32, ptr %2465, align 8
  %2467 = and i32 %2466, -16646145
  %2468 = or i32 %2467, 917504
  store i32 %2468, ptr %2465, align 8
  br label %2479

2469:                                             ; preds = %2447
  %2470 = load ptr, ptr %6, align 8, !tbaa !5
  %2471 = load i32, ptr %2470, align 8
  %2472 = and i32 %2471, -16646145
  %2473 = or i32 %2472, 1048576
  store i32 %2473, ptr %2470, align 8
  br label %2479

2474:                                             ; preds = %2447
  %2475 = load ptr, ptr %6, align 8, !tbaa !5
  %2476 = load i32, ptr %2475, align 8
  %2477 = and i32 %2476, -16646145
  %2478 = or i32 %2477, 0
  store i32 %2478, ptr %2475, align 8
  br label %2479

2479:                                             ; preds = %2474, %2469, %2464, %2459, %2454
  br label %5676

2480:                                             ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %2481 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2481, ptr %23, align 8, !tbaa !5
  br label %2482

2482:                                             ; preds = %2854, %2480
  %2483 = load ptr, ptr %13, align 8, !tbaa !5
  %2484 = load ptr, ptr %8, align 8, !tbaa !5
  %2485 = load i64, ptr %9, align 8, !tbaa !9
  %2486 = getelementptr inbounds i8, ptr %2484, i64 %2485
  %2487 = icmp ne ptr %2483, %2486
  br i1 %2487, label %2488, label %2857

2488:                                             ; preds = %2482
  %2489 = load ptr, ptr %13, align 8, !tbaa !5
  %2490 = load i8, ptr %2489, align 1, !tbaa !15
  store i8 %2490, ptr %11, align 1, !tbaa !15
  %2491 = load i8, ptr %11, align 1, !tbaa !15
  %2492 = zext i8 %2491 to i64
  %2493 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %2492
  %2494 = load i8, ptr %2493, align 1, !tbaa !15
  store i8 %2494, ptr %10, align 1, !tbaa !15
  %2495 = load i8, ptr %10, align 1, !tbaa !15
  %2496 = icmp ne i8 %2495, 0
  br i1 %2496, label %2498, label %2497

2497:                                             ; preds = %2488
  br label %2857

2498:                                             ; preds = %2488
  %2499 = load ptr, ptr %6, align 8, !tbaa !5
  %2500 = load i32, ptr %2499, align 8
  %2501 = lshr i32 %2500, 17
  %2502 = and i32 %2501, 127
  switch i32 %2502, label %2852 [
    i32 0, label %2853
    i32 1, label %2503
    i32 2, label %2525
    i32 3, label %2547
    i32 4, label %2576
    i32 5, label %2624
    i32 6, label %2672
    i32 7, label %2746
    i32 8, label %2794
    i32 9, label %2842
    i32 10, label %2842
    i32 11, label %2842
    i32 12, label %2842
  ]

2503:                                             ; preds = %2498
  %2504 = load ptr, ptr %6, align 8, !tbaa !5
  %2505 = load i32, ptr %2504, align 8
  %2506 = lshr i32 %2505, 24
  %2507 = and i32 %2506, 127
  %2508 = add i32 %2507, 1
  %2509 = load i32, ptr %2504, align 8
  %2510 = and i32 %2508, 127
  %2511 = shl i32 %2510, 24
  %2512 = and i32 %2509, -2130706433
  %2513 = or i32 %2512, %2511
  store i32 %2513, ptr %2504, align 8
  %2514 = load i8, ptr %10, align 1, !tbaa !15
  %2515 = sext i8 %2514 to i32
  %2516 = icmp eq i32 %2515, 111
  %2517 = zext i1 %2516 to i64
  %2518 = select i1 %2516, i32 2, i32 0
  %2519 = load ptr, ptr %6, align 8, !tbaa !5
  %2520 = load i32, ptr %2519, align 8
  %2521 = and i32 %2518, 127
  %2522 = shl i32 %2521, 17
  %2523 = and i32 %2520, -16646145
  %2524 = or i32 %2523, %2522
  store i32 %2524, ptr %2519, align 8
  br label %2853

2525:                                             ; preds = %2498
  %2526 = load ptr, ptr %6, align 8, !tbaa !5
  %2527 = load i32, ptr %2526, align 8
  %2528 = lshr i32 %2527, 24
  %2529 = and i32 %2528, 127
  %2530 = add i32 %2529, 1
  %2531 = load i32, ptr %2526, align 8
  %2532 = and i32 %2530, 127
  %2533 = shl i32 %2532, 24
  %2534 = and i32 %2531, -2130706433
  %2535 = or i32 %2534, %2533
  store i32 %2535, ptr %2526, align 8
  %2536 = load i8, ptr %10, align 1, !tbaa !15
  %2537 = sext i8 %2536 to i32
  %2538 = icmp eq i32 %2537, 110
  %2539 = zext i1 %2538 to i64
  %2540 = select i1 %2538, i32 3, i32 0
  %2541 = load ptr, ptr %6, align 8, !tbaa !5
  %2542 = load i32, ptr %2541, align 8
  %2543 = and i32 %2540, 127
  %2544 = shl i32 %2543, 17
  %2545 = and i32 %2542, -16646145
  %2546 = or i32 %2545, %2544
  store i32 %2546, ptr %2541, align 8
  br label %2853

2547:                                             ; preds = %2498
  %2548 = load ptr, ptr %6, align 8, !tbaa !5
  %2549 = load i32, ptr %2548, align 8
  %2550 = lshr i32 %2549, 24
  %2551 = and i32 %2550, 127
  %2552 = add i32 %2551, 1
  %2553 = load i32, ptr %2548, align 8
  %2554 = and i32 %2552, 127
  %2555 = shl i32 %2554, 24
  %2556 = and i32 %2553, -2130706433
  %2557 = or i32 %2556, %2555
  store i32 %2557, ptr %2548, align 8
  %2558 = load i8, ptr %10, align 1, !tbaa !15
  %2559 = sext i8 %2558 to i32
  switch i32 %2559, label %2570 [
    i32 110, label %2560
    i32 116, label %2565
  ]

2560:                                             ; preds = %2547
  %2561 = load ptr, ptr %6, align 8, !tbaa !5
  %2562 = load i32, ptr %2561, align 8
  %2563 = and i32 %2562, -16646145
  %2564 = or i32 %2563, 524288
  store i32 %2564, ptr %2561, align 8
  br label %2575

2565:                                             ; preds = %2547
  %2566 = load ptr, ptr %6, align 8, !tbaa !5
  %2567 = load i32, ptr %2566, align 8
  %2568 = and i32 %2567, -16646145
  %2569 = or i32 %2568, 786432
  store i32 %2569, ptr %2566, align 8
  br label %2575

2570:                                             ; preds = %2547
  %2571 = load ptr, ptr %6, align 8, !tbaa !5
  %2572 = load i32, ptr %2571, align 8
  %2573 = and i32 %2572, -16646145
  %2574 = or i32 %2573, 0
  store i32 %2574, ptr %2571, align 8
  br label %2575

2575:                                             ; preds = %2570, %2565, %2560
  br label %2853

2576:                                             ; preds = %2498
  %2577 = load ptr, ptr %6, align 8, !tbaa !5
  %2578 = load i32, ptr %2577, align 8
  %2579 = lshr i32 %2578, 24
  %2580 = and i32 %2579, 127
  %2581 = add i32 %2580, 1
  %2582 = load i32, ptr %2577, align 8
  %2583 = and i32 %2581, 127
  %2584 = shl i32 %2583, 24
  %2585 = and i32 %2582, -2130706433
  %2586 = or i32 %2585, %2584
  store i32 %2586, ptr %2577, align 8
  %2587 = load ptr, ptr %6, align 8, !tbaa !5
  %2588 = load i32, ptr %2587, align 8
  %2589 = lshr i32 %2588, 24
  %2590 = and i32 %2589, 127
  %2591 = zext i32 %2590 to i64
  %2592 = icmp ugt i64 %2591, 10
  br i1 %2592, label %2605, label %2593

2593:                                             ; preds = %2576
  %2594 = load i8, ptr %10, align 1, !tbaa !15
  %2595 = sext i8 %2594 to i32
  %2596 = load ptr, ptr %6, align 8, !tbaa !5
  %2597 = load i32, ptr %2596, align 8
  %2598 = lshr i32 %2597, 24
  %2599 = and i32 %2598, 127
  %2600 = zext i32 %2599 to i64
  %2601 = getelementptr inbounds [11 x i8], ptr @.str.2, i64 0, i64 %2600
  %2602 = load i8, ptr %2601, align 1, !tbaa !15
  %2603 = sext i8 %2602 to i32
  %2604 = icmp ne i32 %2595, %2603
  br i1 %2604, label %2605, label %2610

2605:                                             ; preds = %2593, %2576
  %2606 = load ptr, ptr %6, align 8, !tbaa !5
  %2607 = load i32, ptr %2606, align 8
  %2608 = and i32 %2607, -16646145
  %2609 = or i32 %2608, 0
  store i32 %2609, ptr %2606, align 8
  br label %2623

2610:                                             ; preds = %2593
  %2611 = load ptr, ptr %6, align 8, !tbaa !5
  %2612 = load i32, ptr %2611, align 8
  %2613 = lshr i32 %2612, 24
  %2614 = and i32 %2613, 127
  %2615 = zext i32 %2614 to i64
  %2616 = icmp eq i64 %2615, 9
  br i1 %2616, label %2617, label %2622

2617:                                             ; preds = %2610
  %2618 = load ptr, ptr %6, align 8, !tbaa !5
  %2619 = load i32, ptr %2618, align 8
  %2620 = and i32 %2619, -16646145
  %2621 = or i32 %2620, 1179648
  store i32 %2621, ptr %2618, align 8
  br label %2622

2622:                                             ; preds = %2617, %2610
  br label %2623

2623:                                             ; preds = %2622, %2605
  br label %2853

2624:                                             ; preds = %2498
  %2625 = load ptr, ptr %6, align 8, !tbaa !5
  %2626 = load i32, ptr %2625, align 8
  %2627 = lshr i32 %2626, 24
  %2628 = and i32 %2627, 127
  %2629 = add i32 %2628, 1
  %2630 = load i32, ptr %2625, align 8
  %2631 = and i32 %2629, 127
  %2632 = shl i32 %2631, 24
  %2633 = and i32 %2630, -2130706433
  %2634 = or i32 %2633, %2632
  store i32 %2634, ptr %2625, align 8
  %2635 = load ptr, ptr %6, align 8, !tbaa !5
  %2636 = load i32, ptr %2635, align 8
  %2637 = lshr i32 %2636, 24
  %2638 = and i32 %2637, 127
  %2639 = zext i32 %2638 to i64
  %2640 = icmp ugt i64 %2639, 16
  br i1 %2640, label %2653, label %2641

2641:                                             ; preds = %2624
  %2642 = load i8, ptr %10, align 1, !tbaa !15
  %2643 = sext i8 %2642 to i32
  %2644 = load ptr, ptr %6, align 8, !tbaa !5
  %2645 = load i32, ptr %2644, align 8
  %2646 = lshr i32 %2645, 24
  %2647 = and i32 %2646, 127
  %2648 = zext i32 %2647 to i64
  %2649 = getelementptr inbounds [17 x i8], ptr @.str.3, i64 0, i64 %2648
  %2650 = load i8, ptr %2649, align 1, !tbaa !15
  %2651 = sext i8 %2650 to i32
  %2652 = icmp ne i32 %2643, %2651
  br i1 %2652, label %2653, label %2658

2653:                                             ; preds = %2641, %2624
  %2654 = load ptr, ptr %6, align 8, !tbaa !5
  %2655 = load i32, ptr %2654, align 8
  %2656 = and i32 %2655, -16646145
  %2657 = or i32 %2656, 0
  store i32 %2657, ptr %2654, align 8
  br label %2671

2658:                                             ; preds = %2641
  %2659 = load ptr, ptr %6, align 8, !tbaa !5
  %2660 = load i32, ptr %2659, align 8
  %2661 = lshr i32 %2660, 24
  %2662 = and i32 %2661, 127
  %2663 = zext i32 %2662 to i64
  %2664 = icmp eq i64 %2663, 15
  br i1 %2664, label %2665, label %2670

2665:                                             ; preds = %2658
  %2666 = load ptr, ptr %6, align 8, !tbaa !5
  %2667 = load i32, ptr %2666, align 8
  %2668 = and i32 %2667, -16646145
  %2669 = or i32 %2668, 1179648
  store i32 %2669, ptr %2666, align 8
  br label %2670

2670:                                             ; preds = %2665, %2658
  br label %2671

2671:                                             ; preds = %2670, %2653
  br label %2853

2672:                                             ; preds = %2498
  %2673 = load ptr, ptr %6, align 8, !tbaa !5
  %2674 = load i32, ptr %2673, align 8
  %2675 = lshr i32 %2674, 24
  %2676 = and i32 %2675, 127
  %2677 = add i32 %2676, 1
  %2678 = load i32, ptr %2673, align 8
  %2679 = and i32 %2677, 127
  %2680 = shl i32 %2679, 24
  %2681 = and i32 %2678, -2130706433
  %2682 = or i32 %2681, %2680
  store i32 %2682, ptr %2673, align 8
  %2683 = load ptr, ptr %6, align 8, !tbaa !5
  %2684 = load i32, ptr %2683, align 8
  %2685 = lshr i32 %2684, 24
  %2686 = and i32 %2685, 127
  %2687 = zext i32 %2686 to i64
  %2688 = icmp ugt i64 %2687, 14
  br i1 %2688, label %2701, label %2689

2689:                                             ; preds = %2672
  %2690 = load i8, ptr %10, align 1, !tbaa !15
  %2691 = sext i8 %2690 to i32
  %2692 = load ptr, ptr %6, align 8, !tbaa !5
  %2693 = load i32, ptr %2692, align 8
  %2694 = lshr i32 %2693, 24
  %2695 = and i32 %2694, 127
  %2696 = zext i32 %2695 to i64
  %2697 = getelementptr inbounds [15 x i8], ptr @.str.4, i64 0, i64 %2696
  %2698 = load i8, ptr %2697, align 1, !tbaa !15
  %2699 = sext i8 %2698 to i32
  %2700 = icmp ne i32 %2691, %2699
  br i1 %2700, label %2701, label %2706

2701:                                             ; preds = %2689, %2672
  %2702 = load ptr, ptr %6, align 8, !tbaa !5
  %2703 = load i32, ptr %2702, align 8
  %2704 = and i32 %2703, -16646145
  %2705 = or i32 %2704, 0
  store i32 %2705, ptr %2702, align 8
  br label %2745

2706:                                             ; preds = %2689
  %2707 = load ptr, ptr %6, align 8, !tbaa !5
  %2708 = load i32, ptr %2707, align 8
  %2709 = lshr i32 %2708, 24
  %2710 = and i32 %2709, 127
  %2711 = zext i32 %2710 to i64
  %2712 = icmp eq i64 %2711, 13
  br i1 %2712, label %2713, label %2744

2713:                                             ; preds = %2706
  %2714 = load ptr, ptr %6, align 8, !tbaa !5
  %2715 = load i32, ptr %2714, align 8
  %2716 = lshr i32 %2715, 2
  %2717 = and i32 %2716, 255
  %2718 = and i32 %2717, 128
  %2719 = icmp ne i32 %2718, 0
  br i1 %2719, label %2720, label %2729

2720:                                             ; preds = %2713
  br label %2721

2721:                                             ; preds = %2720
  %2722 = load ptr, ptr %6, align 8, !tbaa !5
  %2723 = getelementptr inbounds %struct.http_parser, ptr %2722, i32 0, i32 5
  %2724 = load i32, ptr %2723, align 4
  %2725 = and i32 %2724, -2130706433
  %2726 = or i32 %2725, 436207616
  store i32 %2726, ptr %2723, align 4
  br label %2727

2727:                                             ; preds = %2721
  br label %2728

2728:                                             ; preds = %2727
  store i32 17, ptr %21, align 4
  br label %3001

2729:                                             ; preds = %2713
  %2730 = load ptr, ptr %6, align 8, !tbaa !5
  %2731 = load i32, ptr %2730, align 8
  %2732 = and i32 %2731, -16646145
  %2733 = or i32 %2732, 1310720
  store i32 %2733, ptr %2730, align 8
  %2734 = load ptr, ptr %6, align 8, !tbaa !5
  %2735 = load i32, ptr %2734, align 8
  %2736 = lshr i32 %2735, 2
  %2737 = and i32 %2736, 255
  %2738 = or i32 %2737, 128
  %2739 = load i32, ptr %2734, align 8
  %2740 = and i32 %2738, 255
  %2741 = shl i32 %2740, 2
  %2742 = and i32 %2739, -1021
  %2743 = or i32 %2742, %2741
  store i32 %2743, ptr %2734, align 8
  br label %2744

2744:                                             ; preds = %2729, %2706
  br label %2745

2745:                                             ; preds = %2744, %2701
  br label %2853

2746:                                             ; preds = %2498
  %2747 = load ptr, ptr %6, align 8, !tbaa !5
  %2748 = load i32, ptr %2747, align 8
  %2749 = lshr i32 %2748, 24
  %2750 = and i32 %2749, 127
  %2751 = add i32 %2750, 1
  %2752 = load i32, ptr %2747, align 8
  %2753 = and i32 %2751, 127
  %2754 = shl i32 %2753, 24
  %2755 = and i32 %2752, -2130706433
  %2756 = or i32 %2755, %2754
  store i32 %2756, ptr %2747, align 8
  %2757 = load ptr, ptr %6, align 8, !tbaa !5
  %2758 = load i32, ptr %2757, align 8
  %2759 = lshr i32 %2758, 24
  %2760 = and i32 %2759, 127
  %2761 = zext i32 %2760 to i64
  %2762 = icmp ugt i64 %2761, 17
  br i1 %2762, label %2775, label %2763

2763:                                             ; preds = %2746
  %2764 = load i8, ptr %10, align 1, !tbaa !15
  %2765 = sext i8 %2764 to i32
  %2766 = load ptr, ptr %6, align 8, !tbaa !5
  %2767 = load i32, ptr %2766, align 8
  %2768 = lshr i32 %2767, 24
  %2769 = and i32 %2768, 127
  %2770 = zext i32 %2769 to i64
  %2771 = getelementptr inbounds [18 x i8], ptr @.str.5, i64 0, i64 %2770
  %2772 = load i8, ptr %2771, align 1, !tbaa !15
  %2773 = sext i8 %2772 to i32
  %2774 = icmp ne i32 %2765, %2773
  br i1 %2774, label %2775, label %2780

2775:                                             ; preds = %2763, %2746
  %2776 = load ptr, ptr %6, align 8, !tbaa !5
  %2777 = load i32, ptr %2776, align 8
  %2778 = and i32 %2777, -16646145
  %2779 = or i32 %2778, 0
  store i32 %2779, ptr %2776, align 8
  br label %2793

2780:                                             ; preds = %2763
  %2781 = load ptr, ptr %6, align 8, !tbaa !5
  %2782 = load i32, ptr %2781, align 8
  %2783 = lshr i32 %2782, 24
  %2784 = and i32 %2783, 127
  %2785 = zext i32 %2784 to i64
  %2786 = icmp eq i64 %2785, 16
  br i1 %2786, label %2787, label %2792

2787:                                             ; preds = %2780
  %2788 = load ptr, ptr %6, align 8, !tbaa !5
  %2789 = load i32, ptr %2788, align 8
  %2790 = and i32 %2789, -16646145
  %2791 = or i32 %2790, 1441792
  store i32 %2791, ptr %2788, align 8
  br label %2792

2792:                                             ; preds = %2787, %2780
  br label %2793

2793:                                             ; preds = %2792, %2775
  br label %2853

2794:                                             ; preds = %2498
  %2795 = load ptr, ptr %6, align 8, !tbaa !5
  %2796 = load i32, ptr %2795, align 8
  %2797 = lshr i32 %2796, 24
  %2798 = and i32 %2797, 127
  %2799 = add i32 %2798, 1
  %2800 = load i32, ptr %2795, align 8
  %2801 = and i32 %2799, 127
  %2802 = shl i32 %2801, 24
  %2803 = and i32 %2800, -2130706433
  %2804 = or i32 %2803, %2802
  store i32 %2804, ptr %2795, align 8
  %2805 = load ptr, ptr %6, align 8, !tbaa !5
  %2806 = load i32, ptr %2805, align 8
  %2807 = lshr i32 %2806, 24
  %2808 = and i32 %2807, 127
  %2809 = zext i32 %2808 to i64
  %2810 = icmp ugt i64 %2809, 7
  br i1 %2810, label %2823, label %2811

2811:                                             ; preds = %2794
  %2812 = load i8, ptr %10, align 1, !tbaa !15
  %2813 = sext i8 %2812 to i32
  %2814 = load ptr, ptr %6, align 8, !tbaa !5
  %2815 = load i32, ptr %2814, align 8
  %2816 = lshr i32 %2815, 24
  %2817 = and i32 %2816, 127
  %2818 = zext i32 %2817 to i64
  %2819 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %2818
  %2820 = load i8, ptr %2819, align 1, !tbaa !15
  %2821 = sext i8 %2820 to i32
  %2822 = icmp ne i32 %2813, %2821
  br i1 %2822, label %2823, label %2828

2823:                                             ; preds = %2811, %2794
  %2824 = load ptr, ptr %6, align 8, !tbaa !5
  %2825 = load i32, ptr %2824, align 8
  %2826 = and i32 %2825, -16646145
  %2827 = or i32 %2826, 0
  store i32 %2827, ptr %2824, align 8
  br label %2841

2828:                                             ; preds = %2811
  %2829 = load ptr, ptr %6, align 8, !tbaa !5
  %2830 = load i32, ptr %2829, align 8
  %2831 = lshr i32 %2830, 24
  %2832 = and i32 %2831, 127
  %2833 = zext i32 %2832 to i64
  %2834 = icmp eq i64 %2833, 6
  br i1 %2834, label %2835, label %2840

2835:                                             ; preds = %2828
  %2836 = load ptr, ptr %6, align 8, !tbaa !5
  %2837 = load i32, ptr %2836, align 8
  %2838 = and i32 %2837, -16646145
  %2839 = or i32 %2838, 1572864
  store i32 %2839, ptr %2836, align 8
  br label %2840

2840:                                             ; preds = %2835, %2828
  br label %2841

2841:                                             ; preds = %2840, %2823
  br label %2853

2842:                                             ; preds = %2498, %2498, %2498, %2498
  %2843 = load i8, ptr %11, align 1, !tbaa !15
  %2844 = sext i8 %2843 to i32
  %2845 = icmp ne i32 %2844, 32
  br i1 %2845, label %2846, label %2851

2846:                                             ; preds = %2842
  %2847 = load ptr, ptr %6, align 8, !tbaa !5
  %2848 = load i32, ptr %2847, align 8
  %2849 = and i32 %2848, -16646145
  %2850 = or i32 %2849, 0
  store i32 %2850, ptr %2847, align 8
  br label %2851

2851:                                             ; preds = %2846, %2842
  br label %2853

2852:                                             ; preds = %2498
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 1459, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

2853:                                             ; preds = %2851, %2841, %2793, %2745, %2671, %2623, %2575, %2525, %2503, %2498
  br label %2854

2854:                                             ; preds = %2853
  %2855 = load ptr, ptr %13, align 8, !tbaa !5
  %2856 = getelementptr inbounds i8, ptr %2855, i32 1
  store ptr %2856, ptr %13, align 8, !tbaa !5
  br label %2482, !llvm.loop !25

2857:                                             ; preds = %2497, %2482
  br label %2858

2858:                                             ; preds = %2857
  %2859 = load ptr, ptr %13, align 8, !tbaa !5
  %2860 = load ptr, ptr %23, align 8, !tbaa !5
  %2861 = ptrtoint ptr %2859 to i64
  %2862 = ptrtoint ptr %2860 to i64
  %2863 = sub i64 %2861, %2862
  %2864 = load ptr, ptr %6, align 8, !tbaa !5
  %2865 = getelementptr inbounds %struct.http_parser, ptr %2864, i32 0, i32 1
  %2866 = load i32, ptr %2865, align 4, !tbaa !16
  %2867 = zext i32 %2866 to i64
  %2868 = add nsw i64 %2867, %2863
  %2869 = trunc i64 %2868 to i32
  store i32 %2869, ptr %2865, align 4, !tbaa !16
  %2870 = load ptr, ptr %6, align 8, !tbaa !5
  %2871 = getelementptr inbounds %struct.http_parser, ptr %2870, i32 0, i32 1
  %2872 = load i32, ptr %2871, align 4, !tbaa !16
  %2873 = icmp ugt i32 %2872, 81920
  %2874 = xor i1 %2873, true
  %2875 = xor i1 %2874, true
  %2876 = zext i1 %2875 to i32
  %2877 = sext i32 %2876 to i64
  %2878 = call i64 @llvm.expect.i64(i64 %2877, i64 0)
  %2879 = icmp ne i64 %2878, 0
  br i1 %2879, label %2880, label %2889

2880:                                             ; preds = %2858
  br label %2881

2881:                                             ; preds = %2880
  %2882 = load ptr, ptr %6, align 8, !tbaa !5
  %2883 = getelementptr inbounds %struct.http_parser, ptr %2882, i32 0, i32 5
  %2884 = load i32, ptr %2883, align 4
  %2885 = and i32 %2884, -2130706433
  %2886 = or i32 %2885, 201326592
  store i32 %2886, ptr %2883, align 4
  br label %2887

2887:                                             ; preds = %2881
  br label %2888

2888:                                             ; preds = %2887
  store i32 17, ptr %21, align 4
  br label %3001

2889:                                             ; preds = %2858
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

2891:                                             ; preds = %2890
  %2892 = load ptr, ptr %13, align 8, !tbaa !5
  %2893 = load ptr, ptr %8, align 8, !tbaa !5
  %2894 = load i64, ptr %9, align 8, !tbaa !9
  %2895 = getelementptr inbounds i8, ptr %2893, i64 %2894
  %2896 = icmp eq ptr %2892, %2895
  br i1 %2896, label %2897, label %2900

2897:                                             ; preds = %2891
  %2898 = load ptr, ptr %13, align 8, !tbaa !5
  %2899 = getelementptr inbounds i8, ptr %2898, i32 -1
  store ptr %2899, ptr %13, align 8, !tbaa !5
  store i32 19, ptr %21, align 4
  br label %3001

2900:                                             ; preds = %2891
  %2901 = load i8, ptr %11, align 1, !tbaa !15
  %2902 = sext i8 %2901 to i32
  %2903 = icmp eq i32 %2902, 58
  br i1 %2903, label %2904, label %2992

2904:                                             ; preds = %2900
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %2905

2905:                                             ; preds = %2904
  %2906 = load ptr, ptr %6, align 8, !tbaa !5
  %2907 = getelementptr inbounds %struct.http_parser, ptr %2906, i32 0, i32 5
  %2908 = load i32, ptr %2907, align 4
  %2909 = lshr i32 %2908, 24
  %2910 = and i32 %2909, 127
  %2911 = icmp eq i32 %2910, 0
  br i1 %2911, label %2912, label %2913

2912:                                             ; preds = %2905
  br label %2914

2913:                                             ; preds = %2905
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1473, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

2914:                                             ; preds = %2912
  %2915 = load ptr, ptr %14, align 8, !tbaa !5
  %2916 = icmp ne ptr %2915, null
  br i1 %2916, label %2917, label %2989

2917:                                             ; preds = %2914
  %2918 = load ptr, ptr %7, align 8, !tbaa !5
  %2919 = getelementptr inbounds %struct.http_parser_settings, ptr %2918, i32 0, i32 3
  %2920 = load ptr, ptr %2919, align 8, !tbaa !27
  %2921 = icmp ne ptr %2920, null
  %2922 = xor i1 %2921, true
  %2923 = xor i1 %2922, true
  %2924 = zext i1 %2923 to i32
  %2925 = sext i32 %2924 to i64
  %2926 = call i64 @llvm.expect.i64(i64 %2925, i64 1)
  %2927 = icmp ne i64 %2926, 0
  br i1 %2927, label %2928, label %2988

2928:                                             ; preds = %2917
  %2929 = load i32, ptr %19, align 4, !tbaa !11
  %2930 = load ptr, ptr %6, align 8, !tbaa !5
  %2931 = load i32, ptr %2930, align 8
  %2932 = and i32 %2929, 127
  %2933 = shl i32 %2932, 10
  %2934 = and i32 %2931, -130049
  %2935 = or i32 %2934, %2933
  store i32 %2935, ptr %2930, align 8
  %2936 = load ptr, ptr %7, align 8, !tbaa !5
  %2937 = getelementptr inbounds %struct.http_parser_settings, ptr %2936, i32 0, i32 3
  %2938 = load ptr, ptr %2937, align 8, !tbaa !27
  %2939 = load ptr, ptr %6, align 8, !tbaa !5
  %2940 = load ptr, ptr %14, align 8, !tbaa !5
  %2941 = load ptr, ptr %13, align 8, !tbaa !5
  %2942 = load ptr, ptr %14, align 8, !tbaa !5
  %2943 = ptrtoint ptr %2941 to i64
  %2944 = ptrtoint ptr %2942 to i64
  %2945 = sub i64 %2943, %2944
  %2946 = call i32 %2938(ptr noundef %2939, ptr noundef %2940, i64 noundef %2945)
  %2947 = icmp ne i32 0, %2946
  %2948 = xor i1 %2947, true
  %2949 = xor i1 %2948, true
  %2950 = zext i1 %2949 to i32
  %2951 = sext i32 %2950 to i64
  %2952 = call i64 @llvm.expect.i64(i64 %2951, i64 0)
  %2953 = icmp ne i64 %2952, 0
  br i1 %2953, label %2954, label %2963

2954:                                             ; preds = %2928
  br label %2955

2955:                                             ; preds = %2954
  %2956 = load ptr, ptr %6, align 8, !tbaa !5
  %2957 = getelementptr inbounds %struct.http_parser, ptr %2956, i32 0, i32 5
  %2958 = load i32, ptr %2957, align 4
  %2959 = and i32 %2958, -2130706433
  %2960 = or i32 %2959, 50331648
  store i32 %2960, ptr %2957, align 4
  br label %2961

2961:                                             ; preds = %2955
  br label %2962

2962:                                             ; preds = %2961
  br label %2963

2963:                                             ; preds = %2962, %2928
  %2964 = load ptr, ptr %6, align 8, !tbaa !5
  %2965 = load i32, ptr %2964, align 8
  %2966 = lshr i32 %2965, 10
  %2967 = and i32 %2966, 127
  store i32 %2967, ptr %19, align 4, !tbaa !11
  %2968 = load ptr, ptr %6, align 8, !tbaa !5
  %2969 = getelementptr inbounds %struct.http_parser, ptr %2968, i32 0, i32 5
  %2970 = load i32, ptr %2969, align 4
  %2971 = lshr i32 %2970, 24
  %2972 = and i32 %2971, 127
  %2973 = icmp ne i32 %2972, 0
  %2974 = xor i1 %2973, true
  %2975 = xor i1 %2974, true
  %2976 = zext i1 %2975 to i32
  %2977 = sext i32 %2976 to i64
  %2978 = call i64 @llvm.expect.i64(i64 %2977, i64 0)
  %2979 = icmp ne i64 %2978, 0
  br i1 %2979, label %2980, label %2987

2980:                                             ; preds = %2963
  %2981 = load ptr, ptr %13, align 8, !tbaa !5
  %2982 = load ptr, ptr %8, align 8, !tbaa !5
  %2983 = ptrtoint ptr %2981 to i64
  %2984 = ptrtoint ptr %2982 to i64
  %2985 = sub i64 %2983, %2984
  %2986 = add nsw i64 %2985, 1
  store i64 %2986, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %3001

2987:                                             ; preds = %2963
  br label %2988

2988:                                             ; preds = %2987, %2917
  store ptr null, ptr %14, align 8, !tbaa !5
  br label %2989

2989:                                             ; preds = %2988, %2914
  br label %2990

2990:                                             ; preds = %2989
  br label %2991

2991:                                             ; preds = %2990
  store i32 19, ptr %21, align 4
  br label %3001

2992:                                             ; preds = %2900
  br label %2993

2993:                                             ; preds = %2992
  %2994 = load ptr, ptr %6, align 8, !tbaa !5
  %2995 = getelementptr inbounds %struct.http_parser, ptr %2994, i32 0, i32 5
  %2996 = load i32, ptr %2995, align 4
  %2997 = and i32 %2996, -2130706433
  %2998 = or i32 %2997, 402653184
  store i32 %2998, ptr %2995, align 4
  br label %2999

2999:                                             ; preds = %2993
  br label %3000

3000:                                             ; preds = %2999
  store i32 17, ptr %21, align 4
  br label %3001

3001:                                             ; preds = %3000, %2991, %2980, %2897, %2888, %2728
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  %3002 = load i32, ptr %21, align 4
  switch i32 %3002, label %6182 [
    i32 19, label %5676
    i32 17, label %6150
  ]

3003:                                             ; preds = %200
  %3004 = load i8, ptr %11, align 1, !tbaa !15
  %3005 = sext i8 %3004 to i32
  %3006 = icmp eq i32 %3005, 32
  br i1 %3006, label %3011, label %3007

3007:                                             ; preds = %3003
  %3008 = load i8, ptr %11, align 1, !tbaa !15
  %3009 = sext i8 %3008 to i32
  %3010 = icmp eq i32 %3009, 9
  br i1 %3010, label %3011, label %3012

3011:                                             ; preds = %3007, %3003
  br label %5676

3012:                                             ; preds = %3007
  %3013 = load i8, ptr %11, align 1, !tbaa !15
  %3014 = sext i8 %3013 to i32
  %3015 = icmp eq i32 %3014, 13
  br i1 %3015, label %3016, label %3017

3016:                                             ; preds = %3012
  store i32 45, ptr %19, align 4, !tbaa !11
  br label %5676

3017:                                             ; preds = %3012
  %3018 = load i8, ptr %11, align 1, !tbaa !15
  %3019 = sext i8 %3018 to i32
  %3020 = icmp eq i32 %3019, 10
  br i1 %3020, label %3021, label %3022

3021:                                             ; preds = %3017
  store i32 46, ptr %19, align 4, !tbaa !11
  br label %5676

3022:                                             ; preds = %3017
  br label %3023

3023:                                             ; preds = %3022, %200
  br label %3024

3024:                                             ; preds = %3023
  %3025 = load ptr, ptr %15, align 8, !tbaa !5
  %3026 = icmp ne ptr %3025, null
  br i1 %3026, label %3029, label %3027

3027:                                             ; preds = %3024
  %3028 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %3028, ptr %15, align 8, !tbaa !5
  br label %3029

3029:                                             ; preds = %3027, %3024
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030
  store i32 48, ptr %19, align 4, !tbaa !11
  %3032 = load ptr, ptr %6, align 8, !tbaa !5
  %3033 = load i32, ptr %3032, align 8
  %3034 = and i32 %3033, -2130706433
  %3035 = or i32 %3034, 0
  store i32 %3035, ptr %3032, align 8
  %3036 = load i8, ptr %11, align 1, !tbaa !15
  %3037 = sext i8 %3036 to i32
  %3038 = or i32 %3037, 32
  %3039 = trunc i32 %3038 to i8
  store i8 %3039, ptr %10, align 1, !tbaa !15
  %3040 = load ptr, ptr %6, align 8, !tbaa !5
  %3041 = load i32, ptr %3040, align 8
  %3042 = lshr i32 %3041, 17
  %3043 = and i32 %3042, 127
  switch i32 %3043, label %3142 [
    i32 12, label %3044
    i32 11, label %3059
    i32 10, label %3074
    i32 9, label %3107
    i32 14, label %3147
  ]

3044:                                             ; preds = %3031
  %3045 = load ptr, ptr %6, align 8, !tbaa !5
  %3046 = load i32, ptr %3045, align 8
  %3047 = lshr i32 %3046, 2
  %3048 = and i32 %3047, 255
  %3049 = or i32 %3048, 32
  %3050 = load i32, ptr %3045, align 8
  %3051 = and i32 %3049, 255
  %3052 = shl i32 %3051, 2
  %3053 = and i32 %3050, -1021
  %3054 = or i32 %3053, %3052
  store i32 %3054, ptr %3045, align 8
  %3055 = load ptr, ptr %6, align 8, !tbaa !5
  %3056 = load i32, ptr %3055, align 8
  %3057 = and i32 %3056, -16646145
  %3058 = or i32 %3057, 0
  store i32 %3058, ptr %3055, align 8
  br label %3147

3059:                                             ; preds = %3031
  %3060 = load i8, ptr %10, align 1, !tbaa !15
  %3061 = sext i8 %3060 to i32
  %3062 = icmp eq i32 99, %3061
  br i1 %3062, label %3063, label %3068

3063:                                             ; preds = %3059
  %3064 = load ptr, ptr %6, align 8, !tbaa !5
  %3065 = load i32, ptr %3064, align 8
  %3066 = and i32 %3065, -16646145
  %3067 = or i32 %3066, 1703936
  store i32 %3067, ptr %3064, align 8
  br label %3073

3068:                                             ; preds = %3059
  %3069 = load ptr, ptr %6, align 8, !tbaa !5
  %3070 = load i32, ptr %3069, align 8
  %3071 = and i32 %3070, -16646145
  %3072 = or i32 %3071, 0
  store i32 %3072, ptr %3069, align 8
  br label %3073

3073:                                             ; preds = %3068, %3063
  br label %3147

3074:                                             ; preds = %3031
  %3075 = load i8, ptr %11, align 1, !tbaa !15
  %3076 = sext i8 %3075 to i32
  %3077 = icmp sge i32 %3076, 48
  br i1 %3077, label %3078, label %3082

3078:                                             ; preds = %3074
  %3079 = load i8, ptr %11, align 1, !tbaa !15
  %3080 = sext i8 %3079 to i32
  %3081 = icmp sle i32 %3080, 57
  br label %3082

3082:                                             ; preds = %3078, %3074
  %3083 = phi i1 [ false, %3074 ], [ %3081, %3078 ]
  %3084 = xor i1 %3083, true
  %3085 = xor i1 %3084, true
  %3086 = xor i1 %3085, true
  %3087 = zext i1 %3086 to i32
  %3088 = sext i32 %3087 to i64
  %3089 = call i64 @llvm.expect.i64(i64 %3088, i64 0)
  %3090 = icmp ne i64 %3089, 0
  br i1 %3090, label %3091, label %3100

3091:                                             ; preds = %3082
  br label %3092

3092:                                             ; preds = %3091
  %3093 = load ptr, ptr %6, align 8, !tbaa !5
  %3094 = getelementptr inbounds %struct.http_parser, ptr %3093, i32 0, i32 5
  %3095 = load i32, ptr %3094, align 4
  %3096 = and i32 %3095, -2130706433
  %3097 = or i32 %3096, 419430400
  store i32 %3097, ptr %3094, align 4
  br label %3098

3098:                                             ; preds = %3092
  br label %3099

3099:                                             ; preds = %3098
  br label %6150

3100:                                             ; preds = %3082
  %3101 = load i8, ptr %11, align 1, !tbaa !15
  %3102 = sext i8 %3101 to i32
  %3103 = sub nsw i32 %3102, 48
  %3104 = sext i32 %3103 to i64
  %3105 = load ptr, ptr %6, align 8, !tbaa !5
  %3106 = getelementptr inbounds %struct.http_parser, ptr %3105, i32 0, i32 2
  store i64 %3104, ptr %3106, align 8, !tbaa !19
  br label %3147

3107:                                             ; preds = %3031
  %3108 = load i8, ptr %10, align 1, !tbaa !15
  %3109 = sext i8 %3108 to i32
  %3110 = icmp eq i32 %3109, 107
  br i1 %3110, label %3111, label %3116

3111:                                             ; preds = %3107
  %3112 = load ptr, ptr %6, align 8, !tbaa !5
  %3113 = load i32, ptr %3112, align 8
  %3114 = and i32 %3113, -16646145
  %3115 = or i32 %3114, 1966080
  store i32 %3115, ptr %3112, align 8
  br label %3141

3116:                                             ; preds = %3107
  %3117 = load i8, ptr %10, align 1, !tbaa !15
  %3118 = sext i8 %3117 to i32
  %3119 = icmp eq i32 %3118, 99
  br i1 %3119, label %3120, label %3125

3120:                                             ; preds = %3116
  %3121 = load ptr, ptr %6, align 8, !tbaa !5
  %3122 = load i32, ptr %3121, align 8
  %3123 = and i32 %3122, -16646145
  %3124 = or i32 %3123, 2097152
  store i32 %3124, ptr %3121, align 8
  br label %3140

3125:                                             ; preds = %3116
  %3126 = load i8, ptr %10, align 1, !tbaa !15
  %3127 = sext i8 %3126 to i32
  %3128 = icmp eq i32 %3127, 117
  br i1 %3128, label %3129, label %3134

3129:                                             ; preds = %3125
  %3130 = load ptr, ptr %6, align 8, !tbaa !5
  %3131 = load i32, ptr %3130, align 8
  %3132 = and i32 %3131, -16646145
  %3133 = or i32 %3132, 2228224
  store i32 %3133, ptr %3130, align 8
  br label %3139

3134:                                             ; preds = %3125
  %3135 = load ptr, ptr %6, align 8, !tbaa !5
  %3136 = load i32, ptr %3135, align 8
  %3137 = and i32 %3136, -16646145
  %3138 = or i32 %3137, 2359296
  store i32 %3138, ptr %3135, align 8
  br label %3139

3139:                                             ; preds = %3134, %3129
  br label %3140

3140:                                             ; preds = %3139, %3120
  br label %3141

3141:                                             ; preds = %3140, %3111
  br label %3147

3142:                                             ; preds = %3031
  %3143 = load ptr, ptr %6, align 8, !tbaa !5
  %3144 = load i32, ptr %3143, align 8
  %3145 = and i32 %3144, -16646145
  %3146 = or i32 %3145, 0
  store i32 %3146, ptr %3143, align 8
  br label %3147

3147:                                             ; preds = %3142, %3141, %3100, %3073, %3044, %3031
  br label %5676

3148:                                             ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %3149 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %3149, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %3150 = load ptr, ptr %6, align 8, !tbaa !5
  %3151 = load i32, ptr %3150, align 8
  %3152 = lshr i32 %3151, 17
  %3153 = and i32 %3152, 127
  store i32 %3153, ptr %25, align 4, !tbaa !11
  br label %3154

3154:                                             ; preds = %3843, %3148
  %3155 = load ptr, ptr %13, align 8, !tbaa !5
  %3156 = load ptr, ptr %8, align 8, !tbaa !5
  %3157 = load i64, ptr %9, align 8, !tbaa !9
  %3158 = getelementptr inbounds i8, ptr %3156, i64 %3157
  %3159 = icmp ne ptr %3155, %3158
  br i1 %3159, label %3160, label %3846

3160:                                             ; preds = %3154
  %3161 = load ptr, ptr %13, align 8, !tbaa !5
  %3162 = load i8, ptr %3161, align 1, !tbaa !15
  store i8 %3162, ptr %11, align 1, !tbaa !15
  %3163 = load i8, ptr %11, align 1, !tbaa !15
  %3164 = sext i8 %3163 to i32
  %3165 = icmp eq i32 %3164, 13
  br i1 %3165, label %3166, label %3261

3166:                                             ; preds = %3160
  store i32 50, ptr %19, align 4, !tbaa !11
  %3167 = load i32, ptr %25, align 4, !tbaa !11
  %3168 = load ptr, ptr %6, align 8, !tbaa !5
  %3169 = load i32, ptr %3168, align 8
  %3170 = and i32 %3167, 127
  %3171 = shl i32 %3170, 17
  %3172 = and i32 %3169, -16646145
  %3173 = or i32 %3172, %3171
  store i32 %3173, ptr %3168, align 8
  br label %3174

3174:                                             ; preds = %3166
  %3175 = load ptr, ptr %6, align 8, !tbaa !5
  %3176 = getelementptr inbounds %struct.http_parser, ptr %3175, i32 0, i32 5
  %3177 = load i32, ptr %3176, align 4
  %3178 = lshr i32 %3177, 24
  %3179 = and i32 %3178, 127
  %3180 = icmp eq i32 %3179, 0
  br i1 %3180, label %3181, label %3182

3181:                                             ; preds = %3174
  br label %3183

3182:                                             ; preds = %3174
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1563, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

3183:                                             ; preds = %3181
  %3184 = load ptr, ptr %15, align 8, !tbaa !5
  %3185 = icmp ne ptr %3184, null
  br i1 %3185, label %3186, label %3258

3186:                                             ; preds = %3183
  %3187 = load ptr, ptr %7, align 8, !tbaa !5
  %3188 = getelementptr inbounds %struct.http_parser_settings, ptr %3187, i32 0, i32 4
  %3189 = load ptr, ptr %3188, align 8, !tbaa !28
  %3190 = icmp ne ptr %3189, null
  %3191 = xor i1 %3190, true
  %3192 = xor i1 %3191, true
  %3193 = zext i1 %3192 to i32
  %3194 = sext i32 %3193 to i64
  %3195 = call i64 @llvm.expect.i64(i64 %3194, i64 1)
  %3196 = icmp ne i64 %3195, 0
  br i1 %3196, label %3197, label %3257

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

3223:                                             ; preds = %3197
  br label %3224

3224:                                             ; preds = %3223
  %3225 = load ptr, ptr %6, align 8, !tbaa !5
  %3226 = getelementptr inbounds %struct.http_parser, ptr %3225, i32 0, i32 5
  %3227 = load i32, ptr %3226, align 4
  %3228 = and i32 %3227, -2130706433
  %3229 = or i32 %3228, 67108864
  store i32 %3229, ptr %3226, align 4
  br label %3230

3230:                                             ; preds = %3224
  br label %3231

3231:                                             ; preds = %3230
  br label %3232

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

3249:                                             ; preds = %3232
  %3250 = load ptr, ptr %13, align 8, !tbaa !5
  %3251 = load ptr, ptr %8, align 8, !tbaa !5
  %3252 = ptrtoint ptr %3250 to i64
  %3253 = ptrtoint ptr %3251 to i64
  %3254 = sub i64 %3252, %3253
  %3255 = add nsw i64 %3254, 1
  store i64 %3255, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %3897

3256:                                             ; preds = %3232
  br label %3257

3257:                                             ; preds = %3256, %3186
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %3258

3258:                                             ; preds = %3257, %3183
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259
  br label %3846

3261:                                             ; preds = %3160
  %3262 = load i8, ptr %11, align 1, !tbaa !15
  %3263 = sext i8 %3262 to i32
  %3264 = icmp eq i32 %3263, 10
  br i1 %3264, label %3265, label %3393

3265:                                             ; preds = %3261
  store i32 50, ptr %19, align 4, !tbaa !11
  br label %3266

3266:                                             ; preds = %3265
  %3267 = load ptr, ptr %13, align 8, !tbaa !5
  %3268 = load ptr, ptr %24, align 8, !tbaa !5
  %3269 = ptrtoint ptr %3267 to i64
  %3270 = ptrtoint ptr %3268 to i64
  %3271 = sub i64 %3269, %3270
  %3272 = load ptr, ptr %6, align 8, !tbaa !5
  %3273 = getelementptr inbounds %struct.http_parser, ptr %3272, i32 0, i32 1
  %3274 = load i32, ptr %3273, align 4, !tbaa !16
  %3275 = zext i32 %3274 to i64
  %3276 = add nsw i64 %3275, %3271
  %3277 = trunc i64 %3276 to i32
  store i32 %3277, ptr %3273, align 4, !tbaa !16
  %3278 = load ptr, ptr %6, align 8, !tbaa !5
  %3279 = getelementptr inbounds %struct.http_parser, ptr %3278, i32 0, i32 1
  %3280 = load i32, ptr %3279, align 4, !tbaa !16
  %3281 = icmp ugt i32 %3280, 81920
  %3282 = xor i1 %3281, true
  %3283 = xor i1 %3282, true
  %3284 = zext i1 %3283 to i32
  %3285 = sext i32 %3284 to i64
  %3286 = call i64 @llvm.expect.i64(i64 %3285, i64 0)
  %3287 = icmp ne i64 %3286, 0
  br i1 %3287, label %3288, label %3297

3288:                                             ; preds = %3266
  br label %3289

3289:                                             ; preds = %3288
  %3290 = load ptr, ptr %6, align 8, !tbaa !5
  %3291 = getelementptr inbounds %struct.http_parser, ptr %3290, i32 0, i32 5
  %3292 = load i32, ptr %3291, align 4
  %3293 = and i32 %3292, -2130706433
  %3294 = or i32 %3293, 201326592
  store i32 %3294, ptr %3291, align 4
  br label %3295

3295:                                             ; preds = %3289
  br label %3296

3296:                                             ; preds = %3295
  store i32 17, ptr %21, align 4
  br label %3897

3297:                                             ; preds = %3266
  br label %3298

3298:                                             ; preds = %3297
  br label %3299

3299:                                             ; preds = %3298
  %3300 = load i32, ptr %25, align 4, !tbaa !11
  %3301 = load ptr, ptr %6, align 8, !tbaa !5
  %3302 = load i32, ptr %3301, align 8
  %3303 = and i32 %3300, 127
  %3304 = shl i32 %3303, 17
  %3305 = and i32 %3302, -16646145
  %3306 = or i32 %3305, %3304
  store i32 %3306, ptr %3301, align 8
  br label %3307

3307:                                             ; preds = %3299
  %3308 = load ptr, ptr %6, align 8, !tbaa !5
  %3309 = getelementptr inbounds %struct.http_parser, ptr %3308, i32 0, i32 5
  %3310 = load i32, ptr %3309, align 4
  %3311 = lshr i32 %3310, 24
  %3312 = and i32 %3311, 127
  %3313 = icmp eq i32 %3312, 0
  br i1 %3313, label %3314, label %3315

3314:                                             ; preds = %3307
  br label %3316

3315:                                             ; preds = %3307
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1571, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

3316:                                             ; preds = %3314
  %3317 = load ptr, ptr %15, align 8, !tbaa !5
  %3318 = icmp ne ptr %3317, null
  br i1 %3318, label %3319, label %3390

3319:                                             ; preds = %3316
  %3320 = load ptr, ptr %7, align 8, !tbaa !5
  %3321 = getelementptr inbounds %struct.http_parser_settings, ptr %3320, i32 0, i32 4
  %3322 = load ptr, ptr %3321, align 8, !tbaa !28
  %3323 = icmp ne ptr %3322, null
  %3324 = xor i1 %3323, true
  %3325 = xor i1 %3324, true
  %3326 = zext i1 %3325 to i32
  %3327 = sext i32 %3326 to i64
  %3328 = call i64 @llvm.expect.i64(i64 %3327, i64 1)
  %3329 = icmp ne i64 %3328, 0
  br i1 %3329, label %3330, label %3389

3330:                                             ; preds = %3319
  %3331 = load i32, ptr %19, align 4, !tbaa !11
  %3332 = load ptr, ptr %6, align 8, !tbaa !5
  %3333 = load i32, ptr %3332, align 8
  %3334 = and i32 %3331, 127
  %3335 = shl i32 %3334, 10
  %3336 = and i32 %3333, -130049
  %3337 = or i32 %3336, %3335
  store i32 %3337, ptr %3332, align 8
  %3338 = load ptr, ptr %7, align 8, !tbaa !5
  %3339 = getelementptr inbounds %struct.http_parser_settings, ptr %3338, i32 0, i32 4
  %3340 = load ptr, ptr %3339, align 8, !tbaa !28
  %3341 = load ptr, ptr %6, align 8, !tbaa !5
  %3342 = load ptr, ptr %15, align 8, !tbaa !5
  %3343 = load ptr, ptr %13, align 8, !tbaa !5
  %3344 = load ptr, ptr %15, align 8, !tbaa !5
  %3345 = ptrtoint ptr %3343 to i64
  %3346 = ptrtoint ptr %3344 to i64
  %3347 = sub i64 %3345, %3346
  %3348 = call i32 %3340(ptr noundef %3341, ptr noundef %3342, i64 noundef %3347)
  %3349 = icmp ne i32 0, %3348
  %3350 = xor i1 %3349, true
  %3351 = xor i1 %3350, true
  %3352 = zext i1 %3351 to i32
  %3353 = sext i32 %3352 to i64
  %3354 = call i64 @llvm.expect.i64(i64 %3353, i64 0)
  %3355 = icmp ne i64 %3354, 0
  br i1 %3355, label %3356, label %3365

3356:                                             ; preds = %3330
  br label %3357

3357:                                             ; preds = %3356
  %3358 = load ptr, ptr %6, align 8, !tbaa !5
  %3359 = getelementptr inbounds %struct.http_parser, ptr %3358, i32 0, i32 5
  %3360 = load i32, ptr %3359, align 4
  %3361 = and i32 %3360, -2130706433
  %3362 = or i32 %3361, 67108864
  store i32 %3362, ptr %3359, align 4
  br label %3363

3363:                                             ; preds = %3357
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

3365:                                             ; preds = %3364, %3330
  %3366 = load ptr, ptr %6, align 8, !tbaa !5
  %3367 = load i32, ptr %3366, align 8
  %3368 = lshr i32 %3367, 10
  %3369 = and i32 %3368, 127
  store i32 %3369, ptr %19, align 4, !tbaa !11
  %3370 = load ptr, ptr %6, align 8, !tbaa !5
  %3371 = getelementptr inbounds %struct.http_parser, ptr %3370, i32 0, i32 5
  %3372 = load i32, ptr %3371, align 4
  %3373 = lshr i32 %3372, 24
  %3374 = and i32 %3373, 127
  %3375 = icmp ne i32 %3374, 0
  %3376 = xor i1 %3375, true
  %3377 = xor i1 %3376, true
  %3378 = zext i1 %3377 to i32
  %3379 = sext i32 %3378 to i64
  %3380 = call i64 @llvm.expect.i64(i64 %3379, i64 0)
  %3381 = icmp ne i64 %3380, 0
  br i1 %3381, label %3382, label %3388

3382:                                             ; preds = %3365
  %3383 = load ptr, ptr %13, align 8, !tbaa !5
  %3384 = load ptr, ptr %8, align 8, !tbaa !5
  %3385 = ptrtoint ptr %3383 to i64
  %3386 = ptrtoint ptr %3384 to i64
  %3387 = sub i64 %3385, %3386
  store i64 %3387, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %3897

3388:                                             ; preds = %3365
  br label %3389

3389:                                             ; preds = %3388, %3319
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %3390

3390:                                             ; preds = %3389, %3316
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

3392:                                             ; preds = %3391
  store i32 18, ptr %21, align 4
  br label %3897

3393:                                             ; preds = %3261
  %3394 = load i32, ptr %20, align 4, !tbaa !11
  %3395 = icmp ne i32 %3394, 0
  br i1 %3395, label %3425, label %3396

3396:                                             ; preds = %3393
  %3397 = load i8, ptr %11, align 1, !tbaa !15
  %3398 = sext i8 %3397 to i32
  %3399 = icmp eq i32 %3398, 13
  br i1 %3399, label %3425, label %3400

3400:                                             ; preds = %3396
  %3401 = load i8, ptr %11, align 1, !tbaa !15
  %3402 = sext i8 %3401 to i32
  %3403 = icmp eq i32 %3402, 10
  br i1 %3403, label %3425, label %3404

3404:                                             ; preds = %3400
  %3405 = load i8, ptr %11, align 1, !tbaa !15
  %3406 = sext i8 %3405 to i32
  %3407 = icmp eq i32 %3406, 9
  br i1 %3407, label %3425, label %3408

3408:                                             ; preds = %3404
  %3409 = load i8, ptr %11, align 1, !tbaa !15
  %3410 = sext i8 %3409 to i32
  %3411 = icmp sgt i32 %3410, 31
  br i1 %3411, label %3412, label %3416

3412:                                             ; preds = %3408
  %3413 = load i8, ptr %11, align 1, !tbaa !15
  %3414 = sext i8 %3413 to i32
  %3415 = icmp ne i32 %3414, 127
  br i1 %3415, label %3425, label %3416

3416:                                             ; preds = %3412, %3408
  br label %3417

3417:                                             ; preds = %3416
  %3418 = load ptr, ptr %6, align 8, !tbaa !5
  %3419 = getelementptr inbounds %struct.http_parser, ptr %3418, i32 0, i32 5
  %3420 = load i32, ptr %3419, align 4
  %3421 = and i32 %3420, -2130706433
  %3422 = or i32 %3421, 402653184
  store i32 %3422, ptr %3419, align 4
  br label %3423

3423:                                             ; preds = %3417
  br label %3424

3424:                                             ; preds = %3423
  store i32 17, ptr %21, align 4
  br label %3897

3425:                                             ; preds = %3412, %3404, %3400, %3396, %3393
  %3426 = load i8, ptr %11, align 1, !tbaa !15
  %3427 = sext i8 %3426 to i32
  %3428 = or i32 %3427, 32
  %3429 = trunc i32 %3428 to i8
  store i8 %3429, ptr %10, align 1, !tbaa !15
  %3430 = load i32, ptr %25, align 4, !tbaa !11
  switch i32 %3430, label %3841 [
    i32 0, label %3431
    i32 9, label %3485
    i32 11, label %3485
    i32 10, label %3486
    i32 13, label %3568
    i32 14, label %3608
    i32 15, label %3645
    i32 16, label %3685
    i32 17, label %3725
    i32 18, label %3765
    i32 19, label %3775
    i32 20, label %3781
    i32 21, label %3781
    i32 22, label %3781
  ]

3431:                                             ; preds = %3425
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %3432 = load ptr, ptr %8, align 8, !tbaa !5
  %3433 = load i64, ptr %9, align 8, !tbaa !9
  %3434 = getelementptr inbounds i8, ptr %3432, i64 %3433
  %3435 = load ptr, ptr %13, align 8, !tbaa !5
  %3436 = ptrtoint ptr %3434 to i64
  %3437 = ptrtoint ptr %3435 to i64
  %3438 = sub i64 %3436, %3437
  store i64 %3438, ptr %28, align 8, !tbaa !9
  %3439 = load i64, ptr %28, align 8, !tbaa !9
  %3440 = icmp ult i64 %3439, 81920
  br i1 %3440, label %3441, label %3443

3441:                                             ; preds = %3431
  %3442 = load i64, ptr %28, align 8, !tbaa !9
  br label %3444

3443:                                             ; preds = %3431
  br label %3444

3444:                                             ; preds = %3443, %3441
  %3445 = phi i64 [ %3442, %3441 ], [ 81920, %3443 ]
  store i64 %3445, ptr %28, align 8, !tbaa !9
  %3446 = load ptr, ptr %13, align 8, !tbaa !5
  %3447 = load i64, ptr %28, align 8, !tbaa !9
  %3448 = call ptr @memchr(ptr noundef %3446, i32 noundef 13, i64 noundef %3447) #7
  store ptr %3448, ptr %26, align 8, !tbaa !5
  %3449 = load ptr, ptr %13, align 8, !tbaa !5
  %3450 = load i64, ptr %28, align 8, !tbaa !9
  %3451 = call ptr @memchr(ptr noundef %3449, i32 noundef 10, i64 noundef %3450) #7
  store ptr %3451, ptr %27, align 8, !tbaa !5
  %3452 = load ptr, ptr %26, align 8, !tbaa !5
  %3453 = icmp ne ptr %3452, null
  br i1 %3453, label %3454, label %3466

3454:                                             ; preds = %3444
  %3455 = load ptr, ptr %27, align 8, !tbaa !5
  %3456 = icmp ne ptr %3455, null
  br i1 %3456, label %3457, label %3463

3457:                                             ; preds = %3454
  %3458 = load ptr, ptr %26, align 8, !tbaa !5
  %3459 = load ptr, ptr %27, align 8, !tbaa !5
  %3460 = icmp uge ptr %3458, %3459
  br i1 %3460, label %3461, label %3463

3461:                                             ; preds = %3457
  %3462 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %3462, ptr %13, align 8, !tbaa !5
  br label %3465

3463:                                             ; preds = %3457, %3454
  %3464 = load ptr, ptr %26, align 8, !tbaa !5
  store ptr %3464, ptr %13, align 8, !tbaa !5
  br label %3465

3465:                                             ; preds = %3463, %3461
  br label %3482

3466:                                             ; preds = %3444
  %3467 = load ptr, ptr %27, align 8, !tbaa !5
  %3468 = icmp ne ptr %3467, null
  %3469 = xor i1 %3468, true
  %3470 = xor i1 %3469, true
  %3471 = zext i1 %3470 to i32
  %3472 = sext i32 %3471 to i64
  %3473 = call i64 @llvm.expect.i64(i64 %3472, i64 0)
  %3474 = icmp ne i64 %3473, 0
  br i1 %3474, label %3475, label %3477

3475:                                             ; preds = %3466
  %3476 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %3476, ptr %13, align 8, !tbaa !5
  br label %3481

3477:                                             ; preds = %3466
  %3478 = load ptr, ptr %8, align 8, !tbaa !5
  %3479 = load i64, ptr %9, align 8, !tbaa !9
  %3480 = getelementptr inbounds i8, ptr %3478, i64 %3479
  store ptr %3480, ptr %13, align 8, !tbaa !5
  br label %3481

3481:                                             ; preds = %3477, %3475
  br label %3482

3482:                                             ; preds = %3481, %3465
  %3483 = load ptr, ptr %13, align 8, !tbaa !5
  %3484 = getelementptr inbounds i8, ptr %3483, i32 -1
  store ptr %3484, ptr %13, align 8, !tbaa !5
  store i32 212, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  br label %3842

3485:                                             ; preds = %3425, %3425
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 1610, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

3486:                                             ; preds = %3425
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  %3487 = load i8, ptr %11, align 1, !tbaa !15
  %3488 = sext i8 %3487 to i32
  %3489 = icmp eq i32 %3488, 32
  br i1 %3489, label %3490, label %3491

3490:                                             ; preds = %3486
  store i32 212, ptr %21, align 4
  br label %3566

3491:                                             ; preds = %3486
  %3492 = load i8, ptr %11, align 1, !tbaa !15
  %3493 = sext i8 %3492 to i32
  %3494 = icmp sge i32 %3493, 48
  br i1 %3494, label %3495, label %3499

3495:                                             ; preds = %3491
  %3496 = load i8, ptr %11, align 1, !tbaa !15
  %3497 = sext i8 %3496 to i32
  %3498 = icmp sle i32 %3497, 57
  br label %3499

3499:                                             ; preds = %3495, %3491
  %3500 = phi i1 [ false, %3491 ], [ %3498, %3495 ]
  %3501 = xor i1 %3500, true
  %3502 = xor i1 %3501, true
  %3503 = xor i1 %3502, true
  %3504 = zext i1 %3503 to i32
  %3505 = sext i32 %3504 to i64
  %3506 = call i64 @llvm.expect.i64(i64 %3505, i64 0)
  %3507 = icmp ne i64 %3506, 0
  br i1 %3507, label %3508, label %3524

3508:                                             ; preds = %3499
  br label %3509

3509:                                             ; preds = %3508
  %3510 = load ptr, ptr %6, align 8, !tbaa !5
  %3511 = getelementptr inbounds %struct.http_parser, ptr %3510, i32 0, i32 5
  %3512 = load i32, ptr %3511, align 4
  %3513 = and i32 %3512, -2130706433
  %3514 = or i32 %3513, 419430400
  store i32 %3514, ptr %3511, align 4
  br label %3515

3515:                                             ; preds = %3509
  br label %3516

3516:                                             ; preds = %3515
  %3517 = load i32, ptr %25, align 4, !tbaa !11
  %3518 = load ptr, ptr %6, align 8, !tbaa !5
  %3519 = load i32, ptr %3518, align 8
  %3520 = and i32 %3517, 127
  %3521 = shl i32 %3520, 17
  %3522 = and i32 %3519, -16646145
  %3523 = or i32 %3522, %3521
  store i32 %3523, ptr %3518, align 8
  store i32 17, ptr %21, align 4
  br label %3566

3524:                                             ; preds = %3499
  %3525 = load ptr, ptr %6, align 8, !tbaa !5
  %3526 = getelementptr inbounds %struct.http_parser, ptr %3525, i32 0, i32 2
  %3527 = load i64, ptr %3526, align 8, !tbaa !19
  store i64 %3527, ptr %29, align 8, !tbaa !9
  %3528 = load i64, ptr %29, align 8, !tbaa !9
  %3529 = mul i64 %3528, 10
  store i64 %3529, ptr %29, align 8, !tbaa !9
  %3530 = load i8, ptr %11, align 1, !tbaa !15
  %3531 = sext i8 %3530 to i32
  %3532 = sub nsw i32 %3531, 48
  %3533 = sext i32 %3532 to i64
  %3534 = load i64, ptr %29, align 8, !tbaa !9
  %3535 = add i64 %3534, %3533
  store i64 %3535, ptr %29, align 8, !tbaa !9
  %3536 = load ptr, ptr %6, align 8, !tbaa !5
  %3537 = getelementptr inbounds %struct.http_parser, ptr %3536, i32 0, i32 2
  %3538 = load i64, ptr %3537, align 8, !tbaa !19
  %3539 = icmp ult i64 1844674407370955160, %3538
  %3540 = xor i1 %3539, true
  %3541 = xor i1 %3540, true
  %3542 = zext i1 %3541 to i32
  %3543 = sext i32 %3542 to i64
  %3544 = call i64 @llvm.expect.i64(i64 %3543, i64 0)
  %3545 = icmp ne i64 %3544, 0
  br i1 %3545, label %3546, label %3562

3546:                                             ; preds = %3524
  br label %3547

3547:                                             ; preds = %3546
  %3548 = load ptr, ptr %6, align 8, !tbaa !5
  %3549 = getelementptr inbounds %struct.http_parser, ptr %3548, i32 0, i32 5
  %3550 = load i32, ptr %3549, align 4
  %3551 = and i32 %3550, -2130706433
  %3552 = or i32 %3551, 419430400
  store i32 %3552, ptr %3549, align 4
  br label %3553

3553:                                             ; preds = %3547
  br label %3554

3554:                                             ; preds = %3553
  %3555 = load i32, ptr %25, align 4, !tbaa !11
  %3556 = load ptr, ptr %6, align 8, !tbaa !5
  %3557 = load i32, ptr %3556, align 8
  %3558 = and i32 %3555, 127
  %3559 = shl i32 %3558, 17
  %3560 = and i32 %3557, -16646145
  %3561 = or i32 %3560, %3559
  store i32 %3561, ptr %3556, align 8
  store i32 17, ptr %21, align 4
  br label %3566

3562:                                             ; preds = %3524
  %3563 = load i64, ptr %29, align 8, !tbaa !9
  %3564 = load ptr, ptr %6, align 8, !tbaa !5
  %3565 = getelementptr inbounds %struct.http_parser, ptr %3564, i32 0, i32 2
  store i64 %3563, ptr %3565, align 8, !tbaa !19
  store i32 212, ptr %21, align 4
  br label %3566

3566:                                             ; preds = %3562, %3554, %3516, %3490
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  %3567 = load i32, ptr %21, align 4
  switch i32 %3567, label %3897 [
    i32 212, label %3842
  ]

3568:                                             ; preds = %3425
  %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, 127
  %3573 = add i32 %3572, 1
  %3574 = load i32, ptr %3569, align 8
  %3575 = and i32 %3573, 127
  %3576 = shl i32 %3575, 24
  %3577 = and i32 %3574, -2130706433
  %3578 = or i32 %3577, %3576
  store i32 %3578, ptr %3569, align 8
  %3579 = load ptr, ptr %6, align 8, !tbaa !5
  %3580 = load i32, ptr %3579, align 8
  %3581 = lshr i32 %3580, 24
  %3582 = and i32 %3581, 127
  %3583 = zext i32 %3582 to i64
  %3584 = icmp ugt i64 %3583, 7
  br i1 %3584, label %3597, label %3585

3585:                                             ; preds = %3568
  %3586 = load i8, ptr %10, align 1, !tbaa !15
  %3587 = sext i8 %3586 to i32
  %3588 = load ptr, ptr %6, align 8, !tbaa !5
  %3589 = load i32, ptr %3588, align 8
  %3590 = lshr i32 %3589, 24
  %3591 = and i32 %3590, 127
  %3592 = zext i32 %3591 to i64
  %3593 = getelementptr inbounds [8 x i8], ptr @.str.9, i64 0, i64 %3592
  %3594 = load i8, ptr %3593, align 1, !tbaa !15
  %3595 = sext i8 %3594 to i32
  %3596 = icmp ne i32 %3587, %3595
  br i1 %3596, label %3597, label %3598

3597:                                             ; preds = %3585, %3568
  store i32 0, ptr %25, align 4, !tbaa !11
  br label %3607

3598:                                             ; preds = %3585
  %3599 = load ptr, ptr %6, align 8, !tbaa !5
  %3600 = load i32, ptr %3599, align 8
  %3601 = lshr i32 %3600, 24
  %3602 = and i32 %3601, 127
  %3603 = zext i32 %3602 to i64
  %3604 = icmp eq i64 %3603, 6
  br i1 %3604, label %3605, label %3606

3605:                                             ; preds = %3598
  store i32 19, ptr %25, align 4, !tbaa !11
  br label %3606

3606:                                             ; preds = %3605, %3598
  br label %3607

3607:                                             ; preds = %3606, %3597
  br label %3842

3608:                                             ; preds = %3425
  %3609 = load i8, ptr %10, align 1, !tbaa !15
  %3610 = sext i8 %3609 to i32
  %3611 = icmp eq i32 %3610, 107
  br i1 %3611, label %3612, label %3613

3612:                                             ; preds = %3608
  store i32 15, ptr %25, align 4, !tbaa !11
  br label %3644

3613:                                             ; preds = %3608
  %3614 = load i8, ptr %10, align 1, !tbaa !15
  %3615 = sext i8 %3614 to i32
  %3616 = icmp eq i32 %3615, 99
  br i1 %3616, label %3617, label %3618

3617:                                             ; preds = %3613
  store i32 16, ptr %25, align 4, !tbaa !11
  br label %3643

3618:                                             ; preds = %3613
  %3619 = load i8, ptr %10, align 1, !tbaa !15
  %3620 = sext i8 %3619 to i32
  %3621 = icmp eq i32 %3620, 117
  br i1 %3621, label %3622, label %3623

3622:                                             ; preds = %3618
  store i32 17, ptr %25, align 4, !tbaa !11
  br label %3642

3623:                                             ; preds = %3618
  %3624 = load i8, ptr %10, align 1, !tbaa !15
  %3625 = zext i8 %3624 to i64
  %3626 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %3625
  %3627 = load i8, ptr %3626, align 1, !tbaa !15
  %3628 = icmp ne i8 %3627, 0
  br i1 %3628, label %3629, label %3630

3629:                                             ; preds = %3623
  store i32 18, ptr %25, align 4, !tbaa !11
  br label %3641

3630:                                             ; preds = %3623
  %3631 = load i8, ptr %10, align 1, !tbaa !15
  %3632 = sext i8 %3631 to i32
  %3633 = icmp eq i32 %3632, 32
  br i1 %3633, label %3638, label %3634

3634:                                             ; preds = %3630
  %3635 = load i8, ptr %10, align 1, !tbaa !15
  %3636 = sext i8 %3635 to i32
  %3637 = icmp eq i32 %3636, 9
  br i1 %3637, label %3638, label %3639

3638:                                             ; preds = %3634, %3630
  br label %3640

3639:                                             ; preds = %3634
  store i32 0, ptr %25, align 4, !tbaa !11
  br label %3640

3640:                                             ; preds = %3639, %3638
  br label %3641

3641:                                             ; preds = %3640, %3629
  br label %3642

3642:                                             ; preds = %3641, %3622
  br label %3643

3643:                                             ; preds = %3642, %3617
  br label %3644

3644:                                             ; preds = %3643, %3612
  br label %3842

3645:                                             ; preds = %3425
  %3646 = load ptr, ptr %6, align 8, !tbaa !5
  %3647 = load i32, ptr %3646, align 8
  %3648 = lshr i32 %3647, 24
  %3649 = and i32 %3648, 127
  %3650 = add i32 %3649, 1
  %3651 = load i32, ptr %3646, align 8
  %3652 = and i32 %3650, 127
  %3653 = shl i32 %3652, 24
  %3654 = and i32 %3651, -2130706433
  %3655 = or i32 %3654, %3653
  store i32 %3655, ptr %3646, align 8
  %3656 = load ptr, ptr %6, align 8, !tbaa !5
  %3657 = load i32, ptr %3656, align 8
  %3658 = lshr i32 %3657, 24
  %3659 = and i32 %3658, 127
  %3660 = zext i32 %3659 to i64
  %3661 = icmp ugt i64 %3660, 10
  br i1 %3661, label %3674, label %3662

3662:                                             ; preds = %3645
  %3663 = load i8, ptr %10, align 1, !tbaa !15
  %3664 = sext i8 %3663 to i32
  %3665 = load ptr, ptr %6, align 8, !tbaa !5
  %3666 = load i32, ptr %3665, align 8
  %3667 = lshr i32 %3666, 24
  %3668 = and i32 %3667, 127
  %3669 = zext i32 %3668 to i64
  %3670 = getelementptr inbounds [11 x i8], ptr @.str.10, i64 0, i64 %3669
  %3671 = load i8, ptr %3670, align 1, !tbaa !15
  %3672 = sext i8 %3671 to i32
  %3673 = icmp ne i32 %3664, %3672
  br i1 %3673, label %3674, label %3675

3674:                                             ; preds = %3662, %3645
  store i32 18, ptr %25, align 4, !tbaa !11
  br label %3684

3675:                                             ; preds = %3662
  %3676 = load ptr, ptr %6, align 8, !tbaa !5
  %3677 = load i32, ptr %3676, align 8
  %3678 = lshr i32 %3677, 24
  %3679 = and i32 %3678, 127
  %3680 = zext i32 %3679 to i64
  %3681 = icmp eq i64 %3680, 9
  br i1 %3681, label %3682, label %3683

3682:                                             ; preds = %3675
  store i32 20, ptr %25, align 4, !tbaa !11
  br label %3683

3683:                                             ; preds = %3682, %3675
  br label %3684

3684:                                             ; preds = %3683, %3674
  br label %3842

3685:                                             ; preds = %3425
  %3686 = load ptr, ptr %6, align 8, !tbaa !5
  %3687 = load i32, ptr %3686, align 8
  %3688 = lshr i32 %3687, 24
  %3689 = and i32 %3688, 127
  %3690 = add i32 %3689, 1
  %3691 = load i32, ptr %3686, align 8
  %3692 = and i32 %3690, 127
  %3693 = shl i32 %3692, 24
  %3694 = and i32 %3691, -2130706433
  %3695 = or i32 %3694, %3693
  store i32 %3695, ptr %3686, align 8
  %3696 = load ptr, ptr %6, align 8, !tbaa !5
  %3697 = load i32, ptr %3696, align 8
  %3698 = lshr i32 %3697, 24
  %3699 = and i32 %3698, 127
  %3700 = zext i32 %3699 to i64
  %3701 = icmp ugt i64 %3700, 5
  br i1 %3701, label %3714, label %3702

3702:                                             ; preds = %3685
  %3703 = load i8, ptr %10, align 1, !tbaa !15
  %3704 = sext i8 %3703 to i32
  %3705 = load ptr, ptr %6, align 8, !tbaa !5
  %3706 = load i32, ptr %3705, align 8
  %3707 = lshr i32 %3706, 24
  %3708 = and i32 %3707, 127
  %3709 = zext i32 %3708 to i64
  %3710 = getelementptr inbounds [6 x i8], ptr @.str.11, i64 0, i64 %3709
  %3711 = load i8, ptr %3710, align 1, !tbaa !15
  %3712 = sext i8 %3711 to i32
  %3713 = icmp ne i32 %3704, %3712
  br i1 %3713, label %3714, label %3715

3714:                                             ; preds = %3702, %3685
  store i32 18, ptr %25, align 4, !tbaa !11
  br label %3724

3715:                                             ; preds = %3702
  %3716 = load ptr, ptr %6, align 8, !tbaa !5
  %3717 = load i32, ptr %3716, align 8
  %3718 = lshr i32 %3717, 24
  %3719 = and i32 %3718, 127
  %3720 = zext i32 %3719 to i64
  %3721 = icmp eq i64 %3720, 4
  br i1 %3721, label %3722, label %3723

3722:                                             ; preds = %3715
  store i32 21, ptr %25, align 4, !tbaa !11
  br label %3723

3723:                                             ; preds = %3722, %3715
  br label %3724

3724:                                             ; preds = %3723, %3714
  br label %3842

3725:                                             ; preds = %3425
  %3726 = load ptr, ptr %6, align 8, !tbaa !5
  %3727 = load i32, ptr %3726, align 8
  %3728 = lshr i32 %3727, 24
  %3729 = and i32 %3728, 127
  %3730 = add i32 %3729, 1
  %3731 = load i32, ptr %3726, align 8
  %3732 = and i32 %3730, 127
  %3733 = shl i32 %3732, 24
  %3734 = and i32 %3731, -2130706433
  %3735 = or i32 %3734, %3733
  store i32 %3735, ptr %3726, align 8
  %3736 = load ptr, ptr %6, align 8, !tbaa !5
  %3737 = load i32, ptr %3736, align 8
  %3738 = lshr i32 %3737, 24
  %3739 = and i32 %3738, 127
  %3740 = zext i32 %3739 to i64
  %3741 = icmp ugt i64 %3740, 7
  br i1 %3741, label %3754, label %3742

3742:                                             ; preds = %3725
  %3743 = load i8, ptr %10, align 1, !tbaa !15
  %3744 = sext i8 %3743 to i32
  %3745 = load ptr, ptr %6, align 8, !tbaa !5
  %3746 = load i32, ptr %3745, align 8
  %3747 = lshr i32 %3746, 24
  %3748 = and i32 %3747, 127
  %3749 = zext i32 %3748 to i64
  %3750 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %3749
  %3751 = load i8, ptr %3750, align 1, !tbaa !15
  %3752 = sext i8 %3751 to i32
  %3753 = icmp ne i32 %3744, %3752
  br i1 %3753, label %3754, label %3755

3754:                                             ; preds = %3742, %3725
  store i32 18, ptr %25, align 4, !tbaa !11
  br label %3764

3755:                                             ; preds = %3742
  %3756 = load ptr, ptr %6, align 8, !tbaa !5
  %3757 = load i32, ptr %3756, align 8
  %3758 = lshr i32 %3757, 24
  %3759 = and i32 %3758, 127
  %3760 = zext i32 %3759 to i64
  %3761 = icmp eq i64 %3760, 6
  br i1 %3761, label %3762, label %3763

3762:                                             ; preds = %3755
  store i32 22, ptr %25, align 4, !tbaa !11
  br label %3763

3763:                                             ; preds = %3762, %3755
  br label %3764

3764:                                             ; preds = %3763, %3754
  br label %3842

3765:                                             ; preds = %3425
  %3766 = load i8, ptr %11, align 1, !tbaa !15
  %3767 = sext i8 %3766 to i32
  %3768 = icmp eq i32 %3767, 44
  br i1 %3768, label %3769, label %3774

3769:                                             ; preds = %3765
  store i32 14, ptr %25, align 4, !tbaa !11
  %3770 = load ptr, ptr %6, align 8, !tbaa !5
  %3771 = load i32, ptr %3770, align 8
  %3772 = and i32 %3771, -2130706433
  %3773 = or i32 %3772, 0
  store i32 %3773, ptr %3770, align 8
  br label %3774

3774:                                             ; preds = %3769, %3765
  br label %3842

3775:                                             ; preds = %3425
  %3776 = load i8, ptr %11, align 1, !tbaa !15
  %3777 = sext i8 %3776 to i32
  %3778 = icmp ne i32 %3777, 32
  br i1 %3778, label %3779, label %3780

3779:                                             ; preds = %3775
  store i32 0, ptr %25, align 4, !tbaa !11
  br label %3780

3780:                                             ; preds = %3779, %3775
  br label %3842

3781:                                             ; preds = %3425, %3425, %3425
  %3782 = load i8, ptr %11, align 1, !tbaa !15
  %3783 = sext i8 %3782 to i32
  %3784 = icmp eq i32 %3783, 44
  br i1 %3784, label %3785, label %3834

3785:                                             ; preds = %3781
  %3786 = load i32, ptr %25, align 4, !tbaa !11
  %3787 = icmp eq i32 %3786, 20
  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, 2
  %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 %3829

3799:                                             ; preds = %3785
  %3800 = load i32, ptr %25, align 4, !tbaa !11
  %3801 = icmp eq i32 %3800, 21
  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, 4
  %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 %3828

3813:                                             ; preds = %3799
  %3814 = load i32, ptr %25, align 4, !tbaa !11
  %3815 = icmp eq i32 %3814, 22
  br i1 %3815, label %3816, label %3827

3816:                                             ; preds = %3813
  %3817 = load ptr, ptr %6, align 8, !tbaa !5
  %3818 = load i32, ptr %3817, align 8
  %3819 = lshr i32 %3818, 2
  %3820 = and i32 %3819, 255
  %3821 = or i32 %3820, 8
  %3822 = load i32, ptr %3817, align 8
  %3823 = and i32 %3821, 255
  %3824 = shl i32 %3823, 2
  %3825 = and i32 %3822, -1021
  %3826 = or i32 %3825, %3824
  store i32 %3826, ptr %3817, align 8
  br label %3827

3827:                                             ; preds = %3816, %3813
  br label %3828

3828:                                             ; preds = %3827, %3802
  br label %3829

3829:                                             ; preds = %3828, %3788
  store i32 14, ptr %25, align 4, !tbaa !11
  %3830 = load ptr, ptr %6, align 8, !tbaa !5
  %3831 = load i32, ptr %3830, align 8
  %3832 = and i32 %3831, -2130706433
  %3833 = or i32 %3832, 0
  store i32 %3833, ptr %3830, align 8
  br label %3840

3834:                                             ; preds = %3781
  %3835 = load i8, ptr %11, align 1, !tbaa !15
  %3836 = sext i8 %3835 to i32
  %3837 = icmp ne i32 %3836, 32
  br i1 %3837, label %3838, label %3839

3838:                                             ; preds = %3834
  store i32 18, ptr %25, align 4, !tbaa !11
  br label %3839

3839:                                             ; preds = %3838, %3834
  br label %3840

3840:                                             ; preds = %3839, %3829
  br label %3842

3841:                                             ; preds = %3425
  store i32 48, ptr %19, align 4, !tbaa !11
  store i32 0, ptr %25, align 4, !tbaa !11
  br label %3842

3842:                                             ; preds = %3841, %3840, %3780, %3774, %3764, %3724, %3684, %3644, %3607, %3566, %3482
  br label %3843

3843:                                             ; preds = %3842
  %3844 = load ptr, ptr %13, align 8, !tbaa !5
  %3845 = getelementptr inbounds i8, ptr %3844, i32 1
  store ptr %3845, ptr %13, align 8, !tbaa !5
  br label %3154, !llvm.loop !29

3846:                                             ; preds = %3260, %3154
  %3847 = load i32, ptr %25, align 4, !tbaa !11
  %3848 = load ptr, ptr %6, align 8, !tbaa !5
  %3849 = load i32, ptr %3848, align 8
  %3850 = and i32 %3847, 127
  %3851 = shl i32 %3850, 17
  %3852 = and i32 %3849, -16646145
  %3853 = or i32 %3852, %3851
  store i32 %3853, ptr %3848, align 8
  br label %3854

3854:                                             ; preds = %3846
  %3855 = load ptr, ptr %13, align 8, !tbaa !5
  %3856 = load ptr, ptr %24, align 8, !tbaa !5
  %3857 = ptrtoint ptr %3855 to i64
  %3858 = ptrtoint ptr %3856 to i64
  %3859 = sub i64 %3857, %3858
  %3860 = load ptr, ptr %6, align 8, !tbaa !5
  %3861 = getelementptr inbounds %struct.http_parser, ptr %3860, i32 0, i32 1
  %3862 = load i32, ptr %3861, align 4, !tbaa !16
  %3863 = zext i32 %3862 to i64
  %3864 = add nsw i64 %3863, %3859
  %3865 = trunc i64 %3864 to i32
  store i32 %3865, ptr %3861, align 4, !tbaa !16
  %3866 = load ptr, ptr %6, align 8, !tbaa !5
  %3867 = getelementptr inbounds %struct.http_parser, ptr %3866, i32 0, i32 1
  %3868 = load i32, ptr %3867, align 4, !tbaa !16
  %3869 = icmp ugt i32 %3868, 81920
  %3870 = xor i1 %3869, true
  %3871 = xor i1 %3870, true
  %3872 = zext i1 %3871 to i32
  %3873 = sext i32 %3872 to i64
  %3874 = call i64 @llvm.expect.i64(i64 %3873, i64 0)
  %3875 = icmp ne i64 %3874, 0
  br i1 %3875, label %3876, label %3885

3876:                                             ; preds = %3854
  br label %3877

3877:                                             ; preds = %3876
  %3878 = load ptr, ptr %6, align 8, !tbaa !5
  %3879 = getelementptr inbounds %struct.http_parser, ptr %3878, i32 0, i32 5
  %3880 = load i32, ptr %3879, align 4
  %3881 = and i32 %3880, -2130706433
  %3882 = or i32 %3881, 201326592
  store i32 %3882, ptr %3879, align 4
  br label %3883

3883:                                             ; preds = %3877
  br label %3884

3884:                                             ; preds = %3883
  store i32 17, ptr %21, align 4
  br label %3897

3885:                                             ; preds = %3854
  br label %3886

3886:                                             ; preds = %3885
  br label %3887

3887:                                             ; preds = %3886
  %3888 = load ptr, ptr %13, align 8, !tbaa !5
  %3889 = load ptr, ptr %8, align 8, !tbaa !5
  %3890 = load i64, ptr %9, align 8, !tbaa !9
  %3891 = getelementptr inbounds i8, ptr %3889, i64 %3890
  %3892 = icmp eq ptr %3888, %3891
  br i1 %3892, label %3893, label %3896

3893:                                             ; preds = %3887
  %3894 = load ptr, ptr %13, align 8, !tbaa !5
  %3895 = getelementptr inbounds i8, ptr %3894, i32 -1
  store ptr %3895, ptr %13, align 8, !tbaa !5
  br label %3896

3896:                                             ; preds = %3893, %3887
  store i32 19, ptr %21, align 4
  br label %3897

3897:                                             ; preds = %3896, %3884, %3566, %3424, %3392, %3382, %3296, %3249
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  %3898 = load i32, ptr %21, align 4
  switch i32 %3898, label %6182 [
    i32 18, label %200
    i32 19, label %5676
    i32 17, label %6150
  ]

3899:                                             ; preds = %200
  %3900 = load i8, ptr %11, align 1, !tbaa !15
  %3901 = sext i8 %3900 to i32
  %3902 = icmp ne i32 %3901, 10
  %3903 = xor i1 %3902, true
  %3904 = xor i1 %3903, true
  %3905 = zext i1 %3904 to i32
  %3906 = sext i32 %3905 to i64
  %3907 = call i64 @llvm.expect.i64(i64 %3906, i64 0)
  %3908 = icmp ne i64 %3907, 0
  br i1 %3908, label %3909, label %3918

3909:                                             ; preds = %3899
  br label %3910

3910:                                             ; preds = %3909
  %3911 = load ptr, ptr %6, align 8, !tbaa !5
  %3912 = getelementptr inbounds %struct.http_parser, ptr %3911, i32 0, i32 5
  %3913 = load i32, ptr %3912, align 4
  %3914 = and i32 %3913, -2130706433
  %3915 = or i32 %3914, 385875968
  store i32 %3915, ptr %3912, align 4
  br label %3916

3916:                                             ; preds = %3910
  br label %3917

3917:                                             ; preds = %3916
  br label %6150

3918:                                             ; preds = %3899
  store i32 49, ptr %19, align 4, !tbaa !11
  br label %5676

3919:                                             ; preds = %200
  %3920 = load i8, ptr %11, align 1, !tbaa !15
  %3921 = sext i8 %3920 to i32
  %3922 = icmp eq i32 %3921, 32
  br i1 %3922, label %3927, label %3923

3923:                                             ; preds = %3919
  %3924 = load i8, ptr %11, align 1, !tbaa !15
  %3925 = sext i8 %3924 to i32
  %3926 = icmp eq i32 %3925, 9
  br i1 %3926, label %3927, label %3928

3927:                                             ; preds = %3923, %3919
  store i32 47, ptr %19, align 4, !tbaa !11
  br label %200

3928:                                             ; preds = %3923
  %3929 = load ptr, ptr %6, align 8, !tbaa !5
  %3930 = load i32, ptr %3929, align 8
  %3931 = lshr i32 %3930, 17
  %3932 = and i32 %3931, 127
  switch i32 %3932, label %3977 [
    i32 20, label %3933
    i32 21, label %3944
    i32 19, label %3955
    i32 22, label %3966
  ]

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

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

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

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

3977:                                             ; preds = %3928
  br label %3978

3978:                                             ; preds = %3977, %3966, %3955, %3944, %3933
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %200

3979:                                             ; preds = %200
  br label %3980

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

3984:                                             ; preds = %3980
  br label %3985

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

3991:                                             ; preds = %3985
  br label %3992

3992:                                             ; preds = %3991
  br label %6150

3993:                                             ; preds = %3980
  br label %3994

3994:                                             ; preds = %3993
  br label %3995

3995:                                             ; preds = %3994
  store i32 46, ptr %19, align 4, !tbaa !11
  br label %5676

3996:                                             ; preds = %200
  %3997 = load i8, ptr %11, align 1, !tbaa !15
  %3998 = sext i8 %3997 to i32
  %3999 = icmp eq i32 %3998, 32
  br i1 %3999, label %4004, label %4000

4000:                                             ; preds = %3996
  %4001 = load i8, ptr %11, align 1, !tbaa !15
  %4002 = sext i8 %4001 to i32
  %4003 = icmp eq i32 %4002, 9
  br i1 %4003, label %4004, label %4005

4004:                                             ; preds = %4000, %3996
  store i32 44, ptr %19, align 4, !tbaa !11
  br label %5676

4005:                                             ; preds = %4000
  %4006 = load ptr, ptr %6, align 8, !tbaa !5
  %4007 = load i32, ptr %4006, align 8
  %4008 = lshr i32 %4007, 17
  %4009 = and i32 %4008, 127
  switch i32 %4009, label %4054 [
    i32 20, label %4010
    i32 21, label %4021
    i32 22, label %4032
    i32 19, label %4043
  ]

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

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

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

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

4054:                                             ; preds = %4005
  br label %4055

4055:                                             ; preds = %4054, %4043, %4032, %4021, %4010
  br label %4056

4056:                                             ; preds = %4055
  %4057 = load ptr, ptr %15, align 8, !tbaa !5
  %4058 = icmp ne ptr %4057, null
  br i1 %4058, label %4061, label %4059

4059:                                             ; preds = %4056
  %4060 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %4060, ptr %15, align 8, !tbaa !5
  br label %4061

4061:                                             ; preds = %4059, %4056
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %4064

4064:                                             ; preds = %4063
  %4065 = load ptr, ptr %6, align 8, !tbaa !5
  %4066 = getelementptr inbounds %struct.http_parser, ptr %4065, i32 0, i32 5
  %4067 = load i32, ptr %4066, align 4
  %4068 = lshr i32 %4067, 24
  %4069 = and i32 %4068, 127
  %4070 = icmp eq i32 %4069, 0
  br i1 %4070, label %4071, label %4072

4071:                                             ; preds = %4064
  br label %4073

4072:                                             ; preds = %4064
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1818, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4073:                                             ; preds = %4071
  %4074 = load ptr, ptr %15, align 8, !tbaa !5
  %4075 = icmp ne ptr %4074, null
  br i1 %4075, label %4076, label %4147

4076:                                             ; preds = %4073
  %4077 = load ptr, ptr %7, align 8, !tbaa !5
  %4078 = getelementptr inbounds %struct.http_parser_settings, ptr %4077, i32 0, i32 4
  %4079 = load ptr, ptr %4078, align 8, !tbaa !28
  %4080 = icmp ne ptr %4079, null
  %4081 = xor i1 %4080, true
  %4082 = xor i1 %4081, true
  %4083 = zext i1 %4082 to i32
  %4084 = sext i32 %4083 to i64
  %4085 = call i64 @llvm.expect.i64(i64 %4084, i64 1)
  %4086 = icmp ne i64 %4085, 0
  br i1 %4086, label %4087, label %4146

4087:                                             ; preds = %4076
  %4088 = load i32, ptr %19, align 4, !tbaa !11
  %4089 = load ptr, ptr %6, align 8, !tbaa !5
  %4090 = load i32, ptr %4089, align 8
  %4091 = and i32 %4088, 127
  %4092 = shl i32 %4091, 10
  %4093 = and i32 %4090, -130049
  %4094 = or i32 %4093, %4092
  store i32 %4094, ptr %4089, align 8
  %4095 = load ptr, ptr %7, align 8, !tbaa !5
  %4096 = getelementptr inbounds %struct.http_parser_settings, ptr %4095, i32 0, i32 4
  %4097 = load ptr, ptr %4096, align 8, !tbaa !28
  %4098 = load ptr, ptr %6, align 8, !tbaa !5
  %4099 = load ptr, ptr %15, align 8, !tbaa !5
  %4100 = load ptr, ptr %13, align 8, !tbaa !5
  %4101 = load ptr, ptr %15, align 8, !tbaa !5
  %4102 = ptrtoint ptr %4100 to i64
  %4103 = ptrtoint ptr %4101 to i64
  %4104 = sub i64 %4102, %4103
  %4105 = call i32 %4097(ptr noundef %4098, ptr noundef %4099, i64 noundef %4104)
  %4106 = icmp ne i32 0, %4105
  %4107 = xor i1 %4106, true
  %4108 = xor i1 %4107, true
  %4109 = zext i1 %4108 to i32
  %4110 = sext i32 %4109 to i64
  %4111 = call i64 @llvm.expect.i64(i64 %4110, i64 0)
  %4112 = icmp ne i64 %4111, 0
  br i1 %4112, label %4113, label %4122

4113:                                             ; preds = %4087
  br label %4114

4114:                                             ; preds = %4113
  %4115 = load ptr, ptr %6, align 8, !tbaa !5
  %4116 = getelementptr inbounds %struct.http_parser, ptr %4115, i32 0, i32 5
  %4117 = load i32, ptr %4116, align 4
  %4118 = and i32 %4117, -2130706433
  %4119 = or i32 %4118, 67108864
  store i32 %4119, ptr %4116, align 4
  br label %4120

4120:                                             ; preds = %4114
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121, %4087
  %4123 = load ptr, ptr %6, align 8, !tbaa !5
  %4124 = load i32, ptr %4123, align 8
  %4125 = lshr i32 %4124, 10
  %4126 = and i32 %4125, 127
  store i32 %4126, ptr %19, align 4, !tbaa !11
  %4127 = load ptr, ptr %6, align 8, !tbaa !5
  %4128 = getelementptr inbounds %struct.http_parser, ptr %4127, i32 0, i32 5
  %4129 = load i32, ptr %4128, align 4
  %4130 = lshr i32 %4129, 24
  %4131 = and i32 %4130, 127
  %4132 = icmp ne i32 %4131, 0
  %4133 = xor i1 %4132, true
  %4134 = xor i1 %4133, true
  %4135 = zext i1 %4134 to i32
  %4136 = sext i32 %4135 to i64
  %4137 = call i64 @llvm.expect.i64(i64 %4136, i64 0)
  %4138 = icmp ne i64 %4137, 0
  br i1 %4138, label %4139, label %4145

4139:                                             ; preds = %4122
  %4140 = load ptr, ptr %13, align 8, !tbaa !5
  %4141 = load ptr, ptr %8, align 8, !tbaa !5
  %4142 = ptrtoint ptr %4140 to i64
  %4143 = ptrtoint ptr %4141 to i64
  %4144 = sub i64 %4142, %4143
  store i64 %4144, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

4145:                                             ; preds = %4122
  br label %4146

4146:                                             ; preds = %4145, %4076
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %4147

4147:                                             ; preds = %4146, %4073
  br label %4148

4148:                                             ; preds = %4147
  br label %4149

4149:                                             ; preds = %4148
  br label %200

4150:                                             ; preds = %200
  br label %4151

4151:                                             ; preds = %4150
  %4152 = load i8, ptr %11, align 1, !tbaa !15
  %4153 = sext i8 %4152 to i32
  %4154 = icmp ne i32 %4153, 10
  br i1 %4154, label %4155, label %4164

4155:                                             ; preds = %4151
  br label %4156

4156:                                             ; preds = %4155
  %4157 = load ptr, ptr %6, align 8, !tbaa !5
  %4158 = getelementptr inbounds %struct.http_parser, ptr %4157, i32 0, i32 5
  %4159 = load i32, ptr %4158, align 4
  %4160 = and i32 %4159, -2130706433
  %4161 = or i32 %4160, 503316480
  store i32 %4161, ptr %4158, align 4
  br label %4162

4162:                                             ; preds = %4156
  br label %4163

4163:                                             ; preds = %4162
  br label %6150

4164:                                             ; preds = %4151
  br label %4165

4165:                                             ; preds = %4164
  br label %4166

4166:                                             ; preds = %4165
  %4167 = load ptr, ptr %6, align 8, !tbaa !5
  %4168 = load i32, ptr %4167, align 8
  %4169 = lshr i32 %4168, 2
  %4170 = and i32 %4169, 255
  %4171 = and i32 %4170, 16
  %4172 = icmp ne i32 %4171, 0
  br i1 %4172, label %4173, label %4250

4173:                                             ; preds = %4166
  store i32 62, ptr %19, align 4, !tbaa !11
  br label %4174

4174:                                             ; preds = %4173
  %4175 = load ptr, ptr %6, align 8, !tbaa !5
  %4176 = getelementptr inbounds %struct.http_parser, ptr %4175, i32 0, i32 5
  %4177 = load i32, ptr %4176, align 4
  %4178 = lshr i32 %4177, 24
  %4179 = and i32 %4178, 127
  %4180 = icmp eq i32 %4179, 0
  br i1 %4180, label %4181, label %4182

4181:                                             ; preds = %4174
  br label %4183

4182:                                             ; preds = %4174
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1830, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4183:                                             ; preds = %4181
  %4184 = load ptr, ptr %7, align 8, !tbaa !5
  %4185 = getelementptr inbounds %struct.http_parser_settings, ptr %4184, i32 0, i32 9
  %4186 = load ptr, ptr %4185, align 8, !tbaa !30
  %4187 = icmp ne ptr %4186, null
  %4188 = xor i1 %4187, true
  %4189 = xor i1 %4188, true
  %4190 = zext i1 %4189 to i32
  %4191 = sext i32 %4190 to i64
  %4192 = call i64 @llvm.expect.i64(i64 %4191, i64 1)
  %4193 = icmp ne i64 %4192, 0
  br i1 %4193, label %4194, label %4247

4194:                                             ; preds = %4183
  %4195 = load i32, ptr %19, align 4, !tbaa !11
  %4196 = load ptr, ptr %6, align 8, !tbaa !5
  %4197 = load i32, ptr %4196, align 8
  %4198 = and i32 %4195, 127
  %4199 = shl i32 %4198, 10
  %4200 = and i32 %4197, -130049
  %4201 = or i32 %4200, %4199
  store i32 %4201, ptr %4196, align 8
  %4202 = load ptr, ptr %7, align 8, !tbaa !5
  %4203 = getelementptr inbounds %struct.http_parser_settings, ptr %4202, i32 0, i32 9
  %4204 = load ptr, ptr %4203, align 8, !tbaa !30
  %4205 = load ptr, ptr %6, align 8, !tbaa !5
  %4206 = call i32 %4204(ptr noundef %4205)
  %4207 = icmp ne i32 0, %4206
  %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 0)
  %4213 = icmp ne i64 %4212, 0
  br i1 %4213, label %4214, label %4223

4214:                                             ; preds = %4194
  br label %4215

4215:                                             ; preds = %4214
  %4216 = load ptr, ptr %6, align 8, !tbaa !5
  %4217 = getelementptr inbounds %struct.http_parser, ptr %4216, i32 0, i32 5
  %4218 = load i32, ptr %4217, align 4
  %4219 = and i32 %4218, -2130706433
  %4220 = or i32 %4219, 167772160
  store i32 %4220, ptr %4217, align 4
  br label %4221

4221:                                             ; preds = %4215
  br label %4222

4222:                                             ; preds = %4221
  br label %4223

4223:                                             ; preds = %4222, %4194
  %4224 = load ptr, ptr %6, align 8, !tbaa !5
  %4225 = load i32, ptr %4224, align 8
  %4226 = lshr i32 %4225, 10
  %4227 = and i32 %4226, 127
  store i32 %4227, ptr %19, align 4, !tbaa !11
  %4228 = load ptr, ptr %6, align 8, !tbaa !5
  %4229 = getelementptr inbounds %struct.http_parser, ptr %4228, i32 0, i32 5
  %4230 = load i32, ptr %4229, align 4
  %4231 = lshr i32 %4230, 24
  %4232 = and i32 %4231, 127
  %4233 = icmp ne i32 %4232, 0
  %4234 = xor i1 %4233, true
  %4235 = xor i1 %4234, true
  %4236 = zext i1 %4235 to i32
  %4237 = sext i32 %4236 to i64
  %4238 = call i64 @llvm.expect.i64(i64 %4237, i64 0)
  %4239 = icmp ne i64 %4238, 0
  br i1 %4239, label %4240, label %4246

4240:                                             ; preds = %4223
  %4241 = load ptr, ptr %13, align 8, !tbaa !5
  %4242 = load ptr, ptr %8, align 8, !tbaa !5
  %4243 = ptrtoint ptr %4241 to i64
  %4244 = ptrtoint ptr %4242 to i64
  %4245 = sub i64 %4243, %4244
  store i64 %4245, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

4246:                                             ; preds = %4223
  br label %4247

4247:                                             ; preds = %4246, %4183
  br label %4248

4248:                                             ; preds = %4247
  br label %4249

4249:                                             ; preds = %4248
  br label %200

4250:                                             ; preds = %4166
  %4251 = load ptr, ptr %6, align 8, !tbaa !5
  %4252 = load i32, ptr %4251, align 8
  %4253 = lshr i32 %4252, 2
  %4254 = and i32 %4253, 255
  %4255 = and i32 %4254, 1
  %4256 = icmp ne i32 %4255, 0
  br i1 %4256, label %4257, label %4273

4257:                                             ; preds = %4250
  %4258 = load ptr, ptr %6, align 8, !tbaa !5
  %4259 = load i32, ptr %4258, align 8
  %4260 = lshr i32 %4259, 2
  %4261 = and i32 %4260, 255
  %4262 = and i32 %4261, 128
  %4263 = icmp ne i32 %4262, 0
  br i1 %4263, label %4264, label %4273

4264:                                             ; preds = %4257
  br label %4265

4265:                                             ; preds = %4264
  %4266 = load ptr, ptr %6, align 8, !tbaa !5
  %4267 = getelementptr inbounds %struct.http_parser, ptr %4266, i32 0, i32 5
  %4268 = load i32, ptr %4267, align 4
  %4269 = and i32 %4268, -2130706433
  %4270 = or i32 %4269, 436207616
  store i32 %4270, ptr %4267, align 4
  br label %4271

4271:                                             ; preds = %4265
  br label %4272

4272:                                             ; preds = %4271
  br label %6150

4273:                                             ; preds = %4257, %4250
  store i32 56, ptr %19, align 4, !tbaa !11
  %4274 = load ptr, ptr %6, align 8, !tbaa !5
  %4275 = load i32, ptr %4274, align 8
  %4276 = lshr i32 %4275, 2
  %4277 = and i32 %4276, 255
  %4278 = and i32 %4277, 40
  %4279 = icmp eq i32 %4278, 40
  br i1 %4279, label %4287, label %4280

4280:                                             ; preds = %4273
  %4281 = load ptr, ptr %6, align 8, !tbaa !5
  %4282 = getelementptr inbounds %struct.http_parser, ptr %4281, i32 0, i32 5
  %4283 = load i32, ptr %4282, align 4
  %4284 = lshr i32 %4283, 16
  %4285 = and i32 %4284, 255
  %4286 = icmp eq i32 %4285, 5
  br label %4287

4287:                                             ; preds = %4280, %4273
  %4288 = phi i1 [ true, %4273 ], [ %4286, %4280 ]
  %4289 = zext i1 %4288 to i32
  %4290 = load ptr, ptr %6, align 8, !tbaa !5
  %4291 = getelementptr inbounds %struct.http_parser, ptr %4290, i32 0, i32 5
  %4292 = load i32, ptr %4291, align 4
  %4293 = and i32 %4289, 1
  %4294 = shl i32 %4293, 31
  %4295 = and i32 %4292, 2147483647
  %4296 = or i32 %4295, %4294
  store i32 %4296, ptr %4291, align 4
  %4297 = load ptr, ptr %7, align 8, !tbaa !5
  %4298 = getelementptr inbounds %struct.http_parser_settings, ptr %4297, i32 0, i32 5
  %4299 = load ptr, ptr %4298, align 8, !tbaa !31
  %4300 = icmp ne ptr %4299, null
  br i1 %4300, label %4301, label %4343

4301:                                             ; preds = %4287
  %4302 = load ptr, ptr %7, align 8, !tbaa !5
  %4303 = getelementptr inbounds %struct.http_parser_settings, ptr %4302, i32 0, i32 5
  %4304 = load ptr, ptr %4303, align 8, !tbaa !31
  %4305 = load ptr, ptr %6, align 8, !tbaa !5
  %4306 = call i32 %4304(ptr noundef %4305)
  switch i32 %4306, label %4318 [
    i32 0, label %4342
    i32 1, label %4307
  ]

4307:                                             ; preds = %4301
  %4308 = load ptr, ptr %6, align 8, !tbaa !5
  %4309 = load i32, ptr %4308, align 8
  %4310 = lshr i32 %4309, 2
  %4311 = and i32 %4310, 255
  %4312 = or i32 %4311, 64
  %4313 = load i32, ptr %4308, align 8
  %4314 = and i32 %4312, 255
  %4315 = shl i32 %4314, 2
  %4316 = and i32 %4313, -1021
  %4317 = or i32 %4316, %4315
  store i32 %4317, ptr %4308, align 8
  br label %4342

4318:                                             ; preds = %4301
  br label %4319

4319:                                             ; preds = %4318
  %4320 = load ptr, ptr %6, align 8, !tbaa !5
  %4321 = getelementptr inbounds %struct.http_parser, ptr %4320, i32 0, i32 5
  %4322 = load i32, ptr %4321, align 4
  %4323 = and i32 %4322, -2130706433
  %4324 = or i32 %4323, 83886080
  store i32 %4324, ptr %4321, align 4
  br label %4325

4325:                                             ; preds = %4319
  br label %4326

4326:                                             ; preds = %4325
  br label %4327

4327:                                             ; preds = %4326
  %4328 = load i32, ptr %19, align 4, !tbaa !11
  %4329 = load ptr, ptr %6, align 8, !tbaa !5
  %4330 = load i32, ptr %4329, align 8
  %4331 = and i32 %4328, 127
  %4332 = shl i32 %4331, 10
  %4333 = and i32 %4330, -130049
  %4334 = or i32 %4333, %4332
  store i32 %4334, ptr %4329, align 8
  %4335 = load ptr, ptr %13, align 8, !tbaa !5
  %4336 = load ptr, ptr %8, align 8, !tbaa !5
  %4337 = ptrtoint ptr %4335 to i64
  %4338 = ptrtoint ptr %4336 to i64
  %4339 = sub i64 %4337, %4338
  store i64 %4339, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

4340:                                             ; No predecessors!
  br label %4341

4341:                                             ; preds = %4340
  br label %4342

4342:                                             ; preds = %4341, %4307, %4301
  br label %4343

4343:                                             ; preds = %4342, %4287
  %4344 = load ptr, ptr %6, align 8, !tbaa !5
  %4345 = getelementptr inbounds %struct.http_parser, ptr %4344, i32 0, i32 5
  %4346 = load i32, ptr %4345, align 4
  %4347 = lshr i32 %4346, 24
  %4348 = and i32 %4347, 127
  %4349 = icmp ne i32 %4348, 0
  br i1 %4349, label %4350, label %4366

4350:                                             ; preds = %4343
  br label %4351

4351:                                             ; preds = %4350
  %4352 = load i32, ptr %19, align 4, !tbaa !11
  %4353 = load ptr, ptr %6, align 8, !tbaa !5
  %4354 = load i32, ptr %4353, align 8
  %4355 = and i32 %4352, 127
  %4356 = shl i32 %4355, 10
  %4357 = and i32 %4354, -130049
  %4358 = or i32 %4357, %4356
  store i32 %4358, ptr %4353, align 8
  %4359 = load ptr, ptr %13, align 8, !tbaa !5
  %4360 = load ptr, ptr %8, align 8, !tbaa !5
  %4361 = ptrtoint ptr %4359 to i64
  %4362 = ptrtoint ptr %4360 to i64
  %4363 = sub i64 %4361, %4362
  store i64 %4363, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

4364:                                             ; No predecessors!
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

4366:                                             ; preds = %4365, %4343
  br label %200

4367:                                             ; preds = %200
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  br label %4368

4368:                                             ; preds = %4367
  %4369 = load i8, ptr %11, align 1, !tbaa !15
  %4370 = sext i8 %4369 to i32
  %4371 = icmp ne i32 %4370, 10
  br i1 %4371, label %4372, label %4381

4372:                                             ; preds = %4368
  br label %4373

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

4379:                                             ; preds = %4373
  br label %4380

4380:                                             ; preds = %4379
  store i32 17, ptr %21, align 4
  br label %4845

4381:                                             ; preds = %4368
  br label %4382

4382:                                             ; preds = %4381
  br label %4383

4383:                                             ; preds = %4382
  %4384 = load ptr, ptr %6, align 8, !tbaa !5
  %4385 = getelementptr inbounds %struct.http_parser, ptr %4384, i32 0, i32 1
  store i32 0, ptr %4385, align 4, !tbaa !16
  %4386 = load ptr, ptr %6, align 8, !tbaa !5
  %4387 = load i32, ptr %4386, align 8
  %4388 = lshr i32 %4387, 2
  %4389 = and i32 %4388, 255
  %4390 = and i32 %4389, 1
  %4391 = icmp ne i32 %4390, 0
  br i1 %4391, label %4404, label %4392

4392:                                             ; preds = %4383
  %4393 = load ptr, ptr %6, align 8, !tbaa !5
  %4394 = getelementptr inbounds %struct.http_parser, ptr %4393, i32 0, i32 2
  %4395 = load i64, ptr %4394, align 8, !tbaa !19
  %4396 = icmp ugt i64 %4395, 0
  br i1 %4396, label %4397, label %4402

4397:                                             ; preds = %4392
  %4398 = load ptr, ptr %6, align 8, !tbaa !5
  %4399 = getelementptr inbounds %struct.http_parser, ptr %4398, i32 0, i32 2
  %4400 = load i64, ptr %4399, align 8, !tbaa !19
  %4401 = icmp ne i64 %4400, -1
  br label %4402

4402:                                             ; preds = %4397, %4392
  %4403 = phi i1 [ false, %4392 ], [ %4401, %4397 ]
  br label %4404

4404:                                             ; preds = %4402, %4383
  %4405 = phi i1 [ true, %4383 ], [ %4403, %4402 ]
  %4406 = zext i1 %4405 to i32
  store i32 %4406, ptr %30, align 4, !tbaa !11
  %4407 = load ptr, ptr %6, align 8, !tbaa !5
  %4408 = getelementptr inbounds %struct.http_parser, ptr %4407, i32 0, i32 5
  %4409 = load i32, ptr %4408, align 4
  %4410 = lshr i32 %4409, 31
  %4411 = icmp ne i32 %4410, 0
  br i1 %4411, label %4412, label %4536

4412:                                             ; preds = %4404
  %4413 = load ptr, ptr %6, align 8, !tbaa !5
  %4414 = getelementptr inbounds %struct.http_parser, ptr %4413, i32 0, i32 5
  %4415 = load i32, ptr %4414, align 4
  %4416 = lshr i32 %4415, 16
  %4417 = and i32 %4416, 255
  %4418 = icmp eq i32 %4417, 5
  br i1 %4418, label %4429, label %4419

4419:                                             ; preds = %4412
  %4420 = load ptr, ptr %6, align 8, !tbaa !5
  %4421 = load i32, ptr %4420, align 8
  %4422 = lshr i32 %4421, 2
  %4423 = and i32 %4422, 255
  %4424 = and i32 %4423, 64
  %4425 = icmp ne i32 %4424, 0
  br i1 %4425, label %4429, label %4426

4426:                                             ; preds = %4419
  %4427 = load i32, ptr %30, align 4, !tbaa !11
  %4428 = icmp ne i32 %4427, 0
  br i1 %4428, label %4536, label %4429

4429:                                             ; preds = %4426, %4419, %4412
  %4430 = load ptr, ptr %6, align 8, !tbaa !5
  %4431 = call i32 @http_should_keep_alive(ptr noundef %4430)
  %4432 = icmp ne i32 %4431, 0
  br i1 %4432, label %4433, label %4440

4433:                                             ; preds = %4429
  %4434 = load ptr, ptr %6, align 8, !tbaa !5
  %4435 = load i32, ptr %4434, align 8
  %4436 = and i32 %4435, 3
  %4437 = icmp eq i32 %4436, 0
  %4438 = zext i1 %4437 to i64
  %4439 = select i1 %4437, i32 18, i32 4
  br label %4441

4440:                                             ; preds = %4429
  br label %4441

4441:                                             ; preds = %4440, %4433
  %4442 = phi i32 [ %4439, %4433 ], [ 1, %4440 ]
  store i32 %4442, ptr %19, align 4, !tbaa !11
  br label %4443

4443:                                             ; preds = %4441
  %4444 = load ptr, ptr %6, align 8, !tbaa !5
  %4445 = getelementptr inbounds %struct.http_parser, ptr %4444, i32 0, i32 5
  %4446 = load i32, ptr %4445, align 4
  %4447 = lshr i32 %4446, 24
  %4448 = and i32 %4447, 127
  %4449 = icmp eq i32 %4448, 0
  br i1 %4449, label %4450, label %4451

4450:                                             ; preds = %4443
  br label %4452

4451:                                             ; preds = %4443
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1894, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4452:                                             ; preds = %4450
  %4453 = load ptr, ptr %7, align 8, !tbaa !5
  %4454 = getelementptr inbounds %struct.http_parser_settings, ptr %4453, i32 0, i32 7
  %4455 = load ptr, ptr %4454, align 8, !tbaa !13
  %4456 = icmp ne ptr %4455, null
  %4457 = xor i1 %4456, true
  %4458 = xor i1 %4457, true
  %4459 = zext i1 %4458 to i32
  %4460 = sext i32 %4459 to i64
  %4461 = call i64 @llvm.expect.i64(i64 %4460, i64 1)
  %4462 = icmp ne i64 %4461, 0
  br i1 %4462, label %4463, label %4517

4463:                                             ; preds = %4452
  %4464 = load i32, ptr %19, align 4, !tbaa !11
  %4465 = load ptr, ptr %6, align 8, !tbaa !5
  %4466 = load i32, ptr %4465, align 8
  %4467 = and i32 %4464, 127
  %4468 = shl i32 %4467, 10
  %4469 = and i32 %4466, -130049
  %4470 = or i32 %4469, %4468
  store i32 %4470, ptr %4465, align 8
  %4471 = load ptr, ptr %7, align 8, !tbaa !5
  %4472 = getelementptr inbounds %struct.http_parser_settings, ptr %4471, i32 0, i32 7
  %4473 = load ptr, ptr %4472, align 8, !tbaa !13
  %4474 = load ptr, ptr %6, align 8, !tbaa !5
  %4475 = call i32 %4473(ptr noundef %4474)
  %4476 = icmp ne i32 0, %4475
  %4477 = xor i1 %4476, true
  %4478 = xor i1 %4477, true
  %4479 = zext i1 %4478 to i32
  %4480 = sext i32 %4479 to i64
  %4481 = call i64 @llvm.expect.i64(i64 %4480, i64 0)
  %4482 = icmp ne i64 %4481, 0
  br i1 %4482, label %4483, label %4492

4483:                                             ; preds = %4463
  br label %4484

4484:                                             ; preds = %4483
  %4485 = load ptr, ptr %6, align 8, !tbaa !5
  %4486 = getelementptr inbounds %struct.http_parser, ptr %4485, i32 0, i32 5
  %4487 = load i32, ptr %4486, align 4
  %4488 = and i32 %4487, -2130706433
  %4489 = or i32 %4488, 117440512
  store i32 %4489, ptr %4486, align 4
  br label %4490

4490:                                             ; preds = %4484
  br label %4491

4491:                                             ; preds = %4490
  br label %4492

4492:                                             ; preds = %4491, %4463
  %4493 = load ptr, ptr %6, align 8, !tbaa !5
  %4494 = load i32, ptr %4493, align 8
  %4495 = lshr i32 %4494, 10
  %4496 = and i32 %4495, 127
  store i32 %4496, ptr %19, align 4, !tbaa !11
  %4497 = load ptr, ptr %6, align 8, !tbaa !5
  %4498 = getelementptr inbounds %struct.http_parser, ptr %4497, i32 0, i32 5
  %4499 = load i32, ptr %4498, align 4
  %4500 = lshr i32 %4499, 24
  %4501 = and i32 %4500, 127
  %4502 = icmp ne i32 %4501, 0
  %4503 = xor i1 %4502, true
  %4504 = xor i1 %4503, true
  %4505 = zext i1 %4504 to i32
  %4506 = sext i32 %4505 to i64
  %4507 = call i64 @llvm.expect.i64(i64 %4506, i64 0)
  %4508 = icmp ne i64 %4507, 0
  br i1 %4508, label %4509, label %4516

4509:                                             ; preds = %4492
  %4510 = load ptr, ptr %13, align 8, !tbaa !5
  %4511 = load ptr, ptr %8, align 8, !tbaa !5
  %4512 = ptrtoint ptr %4510 to i64
  %4513 = ptrtoint ptr %4511 to i64
  %4514 = sub i64 %4512, %4513
  %4515 = add nsw i64 %4514, 1
  store i64 %4515, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %4845

4516:                                             ; preds = %4492
  br label %4517

4517:                                             ; preds = %4516, %4452
  br label %4518

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519
  %4521 = load i32, ptr %19, align 4, !tbaa !11
  %4522 = load ptr, ptr %6, align 8, !tbaa !5
  %4523 = load i32, ptr %4522, align 8
  %4524 = and i32 %4521, 127
  %4525 = shl i32 %4524, 10
  %4526 = and i32 %4523, -130049
  %4527 = or i32 %4526, %4525
  store i32 %4527, ptr %4522, align 8
  %4528 = load ptr, ptr %13, align 8, !tbaa !5
  %4529 = load ptr, ptr %8, align 8, !tbaa !5
  %4530 = ptrtoint ptr %4528 to i64
  %4531 = ptrtoint ptr %4529 to i64
  %4532 = sub i64 %4530, %4531
  %4533 = add nsw i64 %4532, 1
  store i64 %4533, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %4845

4534:                                             ; No predecessors!
  br label %4535

4535:                                             ; preds = %4534
  br label %4536

4536:                                             ; preds = %4535, %4426, %4404
  %4537 = load ptr, ptr %6, align 8, !tbaa !5
  %4538 = load i32, ptr %4537, align 8
  %4539 = lshr i32 %4538, 2
  %4540 = and i32 %4539, 255
  %4541 = and i32 %4540, 64
  %4542 = icmp ne i32 %4541, 0
  br i1 %4542, label %4543, label %4634

4543:                                             ; preds = %4536
  %4544 = load ptr, ptr %6, align 8, !tbaa !5
  %4545 = call i32 @http_should_keep_alive(ptr noundef %4544)
  %4546 = icmp ne i32 %4545, 0
  br i1 %4546, label %4547, label %4554

4547:                                             ; preds = %4543
  %4548 = load ptr, ptr %6, align 8, !tbaa !5
  %4549 = load i32, ptr %4548, align 8
  %4550 = and i32 %4549, 3
  %4551 = icmp eq i32 %4550, 0
  %4552 = zext i1 %4551 to i64
  %4553 = select i1 %4551, i32 18, i32 4
  br label %4555

4554:                                             ; preds = %4543
  br label %4555

4555:                                             ; preds = %4554, %4547
  %4556 = phi i32 [ %4553, %4547 ], [ 1, %4554 ]
  store i32 %4556, ptr %19, align 4, !tbaa !11
  br label %4557

4557:                                             ; preds = %4555
  %4558 = load ptr, ptr %6, align 8, !tbaa !5
  %4559 = getelementptr inbounds %struct.http_parser, ptr %4558, i32 0, i32 5
  %4560 = load i32, ptr %4559, align 4
  %4561 = lshr i32 %4560, 24
  %4562 = and i32 %4561, 127
  %4563 = icmp eq i32 %4562, 0
  br i1 %4563, label %4564, label %4565

4564:                                             ; preds = %4557
  br label %4566

4565:                                             ; preds = %4557
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1900, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4566:                                             ; preds = %4564
  %4567 = load ptr, ptr %7, align 8, !tbaa !5
  %4568 = getelementptr inbounds %struct.http_parser_settings, ptr %4567, i32 0, i32 7
  %4569 = load ptr, ptr %4568, align 8, !tbaa !13
  %4570 = icmp ne ptr %4569, null
  %4571 = xor i1 %4570, true
  %4572 = xor i1 %4571, true
  %4573 = zext i1 %4572 to i32
  %4574 = sext i32 %4573 to i64
  %4575 = call i64 @llvm.expect.i64(i64 %4574, i64 1)
  %4576 = icmp ne i64 %4575, 0
  br i1 %4576, label %4577, label %4631

4577:                                             ; preds = %4566
  %4578 = load i32, ptr %19, align 4, !tbaa !11
  %4579 = load ptr, ptr %6, align 8, !tbaa !5
  %4580 = load i32, ptr %4579, align 8
  %4581 = and i32 %4578, 127
  %4582 = shl i32 %4581, 10
  %4583 = and i32 %4580, -130049
  %4584 = or i32 %4583, %4582
  store i32 %4584, ptr %4579, align 8
  %4585 = load ptr, ptr %7, align 8, !tbaa !5
  %4586 = getelementptr inbounds %struct.http_parser_settings, ptr %4585, i32 0, i32 7
  %4587 = load ptr, ptr %4586, align 8, !tbaa !13
  %4588 = load ptr, ptr %6, align 8, !tbaa !5
  %4589 = call i32 %4587(ptr noundef %4588)
  %4590 = icmp ne i32 0, %4589
  %4591 = xor i1 %4590, true
  %4592 = xor i1 %4591, true
  %4593 = zext i1 %4592 to i32
  %4594 = sext i32 %4593 to i64
  %4595 = call i64 @llvm.expect.i64(i64 %4594, i64 0)
  %4596 = icmp ne i64 %4595, 0
  br i1 %4596, label %4597, label %4606

4597:                                             ; preds = %4577
  br label %4598

4598:                                             ; preds = %4597
  %4599 = load ptr, ptr %6, align 8, !tbaa !5
  %4600 = getelementptr inbounds %struct.http_parser, ptr %4599, i32 0, i32 5
  %4601 = load i32, ptr %4600, align 4
  %4602 = and i32 %4601, -2130706433
  %4603 = or i32 %4602, 117440512
  store i32 %4603, ptr %4600, align 4
  br label %4604

4604:                                             ; preds = %4598
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

4606:                                             ; preds = %4605, %4577
  %4607 = load ptr, ptr %6, align 8, !tbaa !5
  %4608 = load i32, ptr %4607, align 8
  %4609 = lshr i32 %4608, 10
  %4610 = and i32 %4609, 127
  store i32 %4610, ptr %19, align 4, !tbaa !11
  %4611 = load ptr, ptr %6, align 8, !tbaa !5
  %4612 = getelementptr inbounds %struct.http_parser, ptr %4611, i32 0, i32 5
  %4613 = load i32, ptr %4612, align 4
  %4614 = lshr i32 %4613, 24
  %4615 = and i32 %4614, 127
  %4616 = icmp ne i32 %4615, 0
  %4617 = xor i1 %4616, true
  %4618 = xor i1 %4617, true
  %4619 = zext i1 %4618 to i32
  %4620 = sext i32 %4619 to i64
  %4621 = call i64 @llvm.expect.i64(i64 %4620, i64 0)
  %4622 = icmp ne i64 %4621, 0
  br i1 %4622, label %4623, label %4630

4623:                                             ; preds = %4606
  %4624 = load ptr, ptr %13, align 8, !tbaa !5
  %4625 = load ptr, ptr %8, align 8, !tbaa !5
  %4626 = ptrtoint ptr %4624 to i64
  %4627 = ptrtoint ptr %4625 to i64
  %4628 = sub i64 %4626, %4627
  %4629 = add nsw i64 %4628, 1
  store i64 %4629, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %4845

4630:                                             ; preds = %4606
  br label %4631

4631:                                             ; preds = %4630, %4566
  br label %4632

4632:                                             ; preds = %4631
  br label %4633

4633:                                             ; preds = %4632
  br label %4844

4634:                                             ; preds = %4536
  %4635 = load ptr, ptr %6, align 8, !tbaa !5
  %4636 = load i32, ptr %4635, align 8
  %4637 = lshr i32 %4636, 2
  %4638 = and i32 %4637, 255
  %4639 = and i32 %4638, 1
  %4640 = icmp ne i32 %4639, 0
  br i1 %4640, label %4641, label %4642

4641:                                             ; preds = %4634
  store i32 51, ptr %19, align 4, !tbaa !11
  br label %4843

4642:                                             ; preds = %4634
  %4643 = load ptr, ptr %6, align 8, !tbaa !5
  %4644 = getelementptr inbounds %struct.http_parser, ptr %4643, i32 0, i32 2
  %4645 = load i64, ptr %4644, align 8, !tbaa !19
  %4646 = icmp eq i64 %4645, 0
  br i1 %4646, label %4647, label %4738

4647:                                             ; preds = %4642
  %4648 = load ptr, ptr %6, align 8, !tbaa !5
  %4649 = call i32 @http_should_keep_alive(ptr noundef %4648)
  %4650 = icmp ne i32 %4649, 0
  br i1 %4650, label %4651, label %4658

4651:                                             ; preds = %4647
  %4652 = load ptr, ptr %6, align 8, !tbaa !5
  %4653 = load i32, ptr %4652, align 8
  %4654 = and i32 %4653, 3
  %4655 = icmp eq i32 %4654, 0
  %4656 = zext i1 %4655 to i64
  %4657 = select i1 %4655, i32 18, i32 4
  br label %4659

4658:                                             ; preds = %4647
  br label %4659

4659:                                             ; preds = %4658, %4651
  %4660 = phi i32 [ %4657, %4651 ], [ 1, %4658 ]
  store i32 %4660, ptr %19, align 4, !tbaa !11
  br label %4661

4661:                                             ; preds = %4659
  %4662 = load ptr, ptr %6, align 8, !tbaa !5
  %4663 = getelementptr inbounds %struct.http_parser, ptr %4662, i32 0, i32 5
  %4664 = load i32, ptr %4663, align 4
  %4665 = lshr i32 %4664, 24
  %4666 = and i32 %4665, 127
  %4667 = icmp eq i32 %4666, 0
  br i1 %4667, label %4668, label %4669

4668:                                             ; preds = %4661
  br label %4670

4669:                                             ; preds = %4661
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1908, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4670:                                             ; preds = %4668
  %4671 = load ptr, ptr %7, align 8, !tbaa !5
  %4672 = getelementptr inbounds %struct.http_parser_settings, ptr %4671, i32 0, i32 7
  %4673 = load ptr, ptr %4672, align 8, !tbaa !13
  %4674 = icmp ne ptr %4673, null
  %4675 = xor i1 %4674, true
  %4676 = xor i1 %4675, true
  %4677 = zext i1 %4676 to i32
  %4678 = sext i32 %4677 to i64
  %4679 = call i64 @llvm.expect.i64(i64 %4678, i64 1)
  %4680 = icmp ne i64 %4679, 0
  br i1 %4680, label %4681, label %4735

4681:                                             ; preds = %4670
  %4682 = load i32, ptr %19, align 4, !tbaa !11
  %4683 = load ptr, ptr %6, align 8, !tbaa !5
  %4684 = load i32, ptr %4683, align 8
  %4685 = and i32 %4682, 127
  %4686 = shl i32 %4685, 10
  %4687 = and i32 %4684, -130049
  %4688 = or i32 %4687, %4686
  store i32 %4688, ptr %4683, align 8
  %4689 = load ptr, ptr %7, align 8, !tbaa !5
  %4690 = getelementptr inbounds %struct.http_parser_settings, ptr %4689, i32 0, i32 7
  %4691 = load ptr, ptr %4690, align 8, !tbaa !13
  %4692 = load ptr, ptr %6, align 8, !tbaa !5
  %4693 = call i32 %4691(ptr noundef %4692)
  %4694 = icmp ne i32 0, %4693
  %4695 = xor i1 %4694, true
  %4696 = xor i1 %4695, true
  %4697 = zext i1 %4696 to i32
  %4698 = sext i32 %4697 to i64
  %4699 = call i64 @llvm.expect.i64(i64 %4698, i64 0)
  %4700 = icmp ne i64 %4699, 0
  br i1 %4700, label %4701, label %4710

4701:                                             ; preds = %4681
  br label %4702

4702:                                             ; preds = %4701
  %4703 = load ptr, ptr %6, align 8, !tbaa !5
  %4704 = getelementptr inbounds %struct.http_parser, ptr %4703, i32 0, i32 5
  %4705 = load i32, ptr %4704, align 4
  %4706 = and i32 %4705, -2130706433
  %4707 = or i32 %4706, 117440512
  store i32 %4707, ptr %4704, align 4
  br label %4708

4708:                                             ; preds = %4702
  br label %4709

4709:                                             ; preds = %4708
  br label %4710

4710:                                             ; preds = %4709, %4681
  %4711 = load ptr, ptr %6, align 8, !tbaa !5
  %4712 = load i32, ptr %4711, align 8
  %4713 = lshr i32 %4712, 10
  %4714 = and i32 %4713, 127
  store i32 %4714, ptr %19, align 4, !tbaa !11
  %4715 = load ptr, ptr %6, align 8, !tbaa !5
  %4716 = getelementptr inbounds %struct.http_parser, ptr %4715, i32 0, i32 5
  %4717 = load i32, ptr %4716, align 4
  %4718 = lshr i32 %4717, 24
  %4719 = and i32 %4718, 127
  %4720 = icmp ne i32 %4719, 0
  %4721 = xor i1 %4720, true
  %4722 = xor i1 %4721, true
  %4723 = zext i1 %4722 to i32
  %4724 = sext i32 %4723 to i64
  %4725 = call i64 @llvm.expect.i64(i64 %4724, i64 0)
  %4726 = icmp ne i64 %4725, 0
  br i1 %4726, label %4727, label %4734

4727:                                             ; preds = %4710
  %4728 = load ptr, ptr %13, align 8, !tbaa !5
  %4729 = load ptr, ptr %8, align 8, !tbaa !5
  %4730 = ptrtoint ptr %4728 to i64
  %4731 = ptrtoint ptr %4729 to i64
  %4732 = sub i64 %4730, %4731
  %4733 = add nsw i64 %4732, 1
  store i64 %4733, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %4845

4734:                                             ; preds = %4710
  br label %4735

4735:                                             ; preds = %4734, %4670
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

4737:                                             ; preds = %4736
  br label %4842

4738:                                             ; preds = %4642
  %4739 = load ptr, ptr %6, align 8, !tbaa !5
  %4740 = getelementptr inbounds %struct.http_parser, ptr %4739, i32 0, i32 2
  %4741 = load i64, ptr %4740, align 8, !tbaa !19
  %4742 = icmp ne i64 %4741, -1
  br i1 %4742, label %4743, label %4744

4743:                                             ; preds = %4738
  store i32 60, ptr %19, align 4, !tbaa !11
  br label %4841

4744:                                             ; preds = %4738
  %4745 = load ptr, ptr %6, align 8, !tbaa !5
  %4746 = call i32 @http_message_needs_eof(ptr noundef %4745)
  %4747 = icmp ne i32 %4746, 0
  br i1 %4747, label %4839, label %4748

4748:                                             ; preds = %4744
  %4749 = load ptr, ptr %6, align 8, !tbaa !5
  %4750 = call i32 @http_should_keep_alive(ptr noundef %4749)
  %4751 = icmp ne i32 %4750, 0
  br i1 %4751, label %4752, label %4759

4752:                                             ; preds = %4748
  %4753 = load ptr, ptr %6, align 8, !tbaa !5
  %4754 = load i32, ptr %4753, align 8
  %4755 = and i32 %4754, 3
  %4756 = icmp eq i32 %4755, 0
  %4757 = zext i1 %4756 to i64
  %4758 = select i1 %4756, i32 18, i32 4
  br label %4760

4759:                                             ; preds = %4748
  br label %4760

4760:                                             ; preds = %4759, %4752
  %4761 = phi i32 [ %4758, %4752 ], [ 1, %4759 ]
  store i32 %4761, ptr %19, align 4, !tbaa !11
  br label %4762

4762:                                             ; preds = %4760
  %4763 = load ptr, ptr %6, align 8, !tbaa !5
  %4764 = getelementptr inbounds %struct.http_parser, ptr %4763, i32 0, i32 5
  %4765 = load i32, ptr %4764, align 4
  %4766 = lshr i32 %4765, 24
  %4767 = and i32 %4766, 127
  %4768 = icmp eq i32 %4767, 0
  br i1 %4768, label %4769, label %4770

4769:                                             ; preds = %4762
  br label %4771

4770:                                             ; preds = %4762
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1916, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4771:                                             ; preds = %4769
  %4772 = load ptr, ptr %7, align 8, !tbaa !5
  %4773 = getelementptr inbounds %struct.http_parser_settings, ptr %4772, i32 0, i32 7
  %4774 = load ptr, ptr %4773, align 8, !tbaa !13
  %4775 = icmp ne ptr %4774, null
  %4776 = xor i1 %4775, true
  %4777 = xor i1 %4776, true
  %4778 = zext i1 %4777 to i32
  %4779 = sext i32 %4778 to i64
  %4780 = call i64 @llvm.expect.i64(i64 %4779, i64 1)
  %4781 = icmp ne i64 %4780, 0
  br i1 %4781, label %4782, label %4836

4782:                                             ; preds = %4771
  %4783 = load i32, ptr %19, align 4, !tbaa !11
  %4784 = load ptr, ptr %6, align 8, !tbaa !5
  %4785 = load i32, ptr %4784, align 8
  %4786 = and i32 %4783, 127
  %4787 = shl i32 %4786, 10
  %4788 = and i32 %4785, -130049
  %4789 = or i32 %4788, %4787
  store i32 %4789, ptr %4784, align 8
  %4790 = load ptr, ptr %7, align 8, !tbaa !5
  %4791 = getelementptr inbounds %struct.http_parser_settings, ptr %4790, i32 0, i32 7
  %4792 = load ptr, ptr %4791, align 8, !tbaa !13
  %4793 = load ptr, ptr %6, align 8, !tbaa !5
  %4794 = call i32 %4792(ptr noundef %4793)
  %4795 = icmp ne i32 0, %4794
  %4796 = xor i1 %4795, true
  %4797 = xor i1 %4796, true
  %4798 = zext i1 %4797 to i32
  %4799 = sext i32 %4798 to i64
  %4800 = call i64 @llvm.expect.i64(i64 %4799, i64 0)
  %4801 = icmp ne i64 %4800, 0
  br i1 %4801, label %4802, label %4811

4802:                                             ; preds = %4782
  br label %4803

4803:                                             ; preds = %4802
  %4804 = load ptr, ptr %6, align 8, !tbaa !5
  %4805 = getelementptr inbounds %struct.http_parser, ptr %4804, i32 0, i32 5
  %4806 = load i32, ptr %4805, align 4
  %4807 = and i32 %4806, -2130706433
  %4808 = or i32 %4807, 117440512
  store i32 %4808, ptr %4805, align 4
  br label %4809

4809:                                             ; preds = %4803
  br label %4810

4810:                                             ; preds = %4809
  br label %4811

4811:                                             ; preds = %4810, %4782
  %4812 = load ptr, ptr %6, align 8, !tbaa !5
  %4813 = load i32, ptr %4812, align 8
  %4814 = lshr i32 %4813, 10
  %4815 = and i32 %4814, 127
  store i32 %4815, ptr %19, align 4, !tbaa !11
  %4816 = load ptr, ptr %6, align 8, !tbaa !5
  %4817 = getelementptr inbounds %struct.http_parser, ptr %4816, i32 0, i32 5
  %4818 = load i32, ptr %4817, align 4
  %4819 = lshr i32 %4818, 24
  %4820 = and i32 %4819, 127
  %4821 = icmp ne i32 %4820, 0
  %4822 = xor i1 %4821, true
  %4823 = xor i1 %4822, true
  %4824 = zext i1 %4823 to i32
  %4825 = sext i32 %4824 to i64
  %4826 = call i64 @llvm.expect.i64(i64 %4825, i64 0)
  %4827 = icmp ne i64 %4826, 0
  br i1 %4827, label %4828, label %4835

4828:                                             ; preds = %4811
  %4829 = load ptr, ptr %13, align 8, !tbaa !5
  %4830 = load ptr, ptr %8, align 8, !tbaa !5
  %4831 = ptrtoint ptr %4829 to i64
  %4832 = ptrtoint ptr %4830 to i64
  %4833 = sub i64 %4831, %4832
  %4834 = add nsw i64 %4833, 1
  store i64 %4834, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %4845

4835:                                             ; preds = %4811
  br label %4836

4836:                                             ; preds = %4835, %4771
  br label %4837

4837:                                             ; preds = %4836
  br label %4838

4838:                                             ; preds = %4837
  br label %4840

4839:                                             ; preds = %4744
  store i32 61, ptr %19, align 4, !tbaa !11
  br label %4840

4840:                                             ; preds = %4839, %4838
  br label %4841

4841:                                             ; preds = %4840, %4743
  br label %4842

4842:                                             ; preds = %4841, %4737
  br label %4843

4843:                                             ; preds = %4842, %4641
  br label %4844

4844:                                             ; preds = %4843, %4633
  store i32 19, ptr %21, align 4
  br label %4845

4845:                                             ; preds = %4844, %4828, %4727, %4623, %4520, %4509, %4380
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  %4846 = load i32, ptr %21, align 4
  switch i32 %4846, label %6182 [
    i32 19, label %5676
    i32 17, label %6150
  ]

4847:                                             ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  %4848 = load ptr, ptr %6, align 8, !tbaa !5
  %4849 = getelementptr inbounds %struct.http_parser, ptr %4848, i32 0, i32 2
  %4850 = load i64, ptr %4849, align 8, !tbaa !19
  %4851 = load ptr, ptr %8, align 8, !tbaa !5
  %4852 = load i64, ptr %9, align 8, !tbaa !9
  %4853 = getelementptr inbounds i8, ptr %4851, i64 %4852
  %4854 = load ptr, ptr %13, align 8, !tbaa !5
  %4855 = ptrtoint ptr %4853 to i64
  %4856 = ptrtoint ptr %4854 to i64
  %4857 = sub i64 %4855, %4856
  %4858 = icmp ult i64 %4850, %4857
  br i1 %4858, label %4859, label %4863

4859:                                             ; preds = %4847
  %4860 = load ptr, ptr %6, align 8, !tbaa !5
  %4861 = getelementptr inbounds %struct.http_parser, ptr %4860, i32 0, i32 2
  %4862 = load i64, ptr %4861, align 8, !tbaa !19
  br label %4871

4863:                                             ; preds = %4847
  %4864 = load ptr, ptr %8, align 8, !tbaa !5
  %4865 = load i64, ptr %9, align 8, !tbaa !9
  %4866 = getelementptr inbounds i8, ptr %4864, i64 %4865
  %4867 = load ptr, ptr %13, align 8, !tbaa !5
  %4868 = ptrtoint ptr %4866 to i64
  %4869 = ptrtoint ptr %4867 to i64
  %4870 = sub i64 %4868, %4869
  br label %4871

4871:                                             ; preds = %4863, %4859
  %4872 = phi i64 [ %4862, %4859 ], [ %4870, %4863 ]
  store i64 %4872, ptr %31, align 8, !tbaa !9
  %4873 = load ptr, ptr %6, align 8, !tbaa !5
  %4874 = getelementptr inbounds %struct.http_parser, ptr %4873, i32 0, i32 2
  %4875 = load i64, ptr %4874, align 8, !tbaa !19
  %4876 = icmp ne i64 %4875, 0
  br i1 %4876, label %4877, label %4883

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

4882:                                             ; preds = %4877
  br label %4884

4883:                                             ; preds = %4877, %4871
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 1933, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4884:                                             ; preds = %4882
  br label %4885

4885:                                             ; preds = %4884
  %4886 = load ptr, ptr %17, align 8, !tbaa !5
  %4887 = icmp ne ptr %4886, null
  br i1 %4887, label %4890, label %4888

4888:                                             ; preds = %4885
  %4889 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %4889, ptr %17, align 8, !tbaa !5
  br label %4890

4890:                                             ; preds = %4888, %4885
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891
  %4893 = load i64, ptr %31, align 8, !tbaa !9
  %4894 = load ptr, ptr %6, align 8, !tbaa !5
  %4895 = getelementptr inbounds %struct.http_parser, ptr %4894, i32 0, i32 2
  %4896 = load i64, ptr %4895, align 8, !tbaa !19
  %4897 = sub i64 %4896, %4893
  store i64 %4897, ptr %4895, align 8, !tbaa !19
  %4898 = load i64, ptr %31, align 8, !tbaa !9
  %4899 = sub i64 %4898, 1
  %4900 = load ptr, ptr %13, align 8, !tbaa !5
  %4901 = getelementptr inbounds i8, ptr %4900, i64 %4899
  store ptr %4901, ptr %13, align 8, !tbaa !5
  %4902 = load ptr, ptr %6, align 8, !tbaa !5
  %4903 = getelementptr inbounds %struct.http_parser, ptr %4902, i32 0, i32 2
  %4904 = load i64, ptr %4903, align 8, !tbaa !19
  %4905 = icmp eq i64 %4904, 0
  br i1 %4905, label %4906, label %4994

4906:                                             ; preds = %4892
  store i32 62, ptr %19, align 4, !tbaa !11
  br label %4907

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

4914:                                             ; preds = %4907
  br label %4916

4915:                                             ; preds = %4907
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1956, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

4916:                                             ; preds = %4914
  %4917 = load ptr, ptr %17, align 8, !tbaa !5
  %4918 = icmp ne ptr %4917, null
  br i1 %4918, label %4919, label %4991

4919:                                             ; preds = %4916
  %4920 = load ptr, ptr %7, align 8, !tbaa !5
  %4921 = getelementptr inbounds %struct.http_parser_settings, ptr %4920, i32 0, i32 6
  %4922 = load ptr, ptr %4921, align 8, !tbaa !32
  %4923 = icmp ne ptr %4922, null
  %4924 = xor i1 %4923, true
  %4925 = xor i1 %4924, true
  %4926 = zext i1 %4925 to i32
  %4927 = sext i32 %4926 to i64
  %4928 = call i64 @llvm.expect.i64(i64 %4927, i64 1)
  %4929 = icmp ne i64 %4928, 0
  br i1 %4929, label %4930, label %4990

4930:                                             ; preds = %4919
  %4931 = load i32, ptr %19, align 4, !tbaa !11
  %4932 = load ptr, ptr %6, align 8, !tbaa !5
  %4933 = load i32, ptr %4932, align 8
  %4934 = and i32 %4931, 127
  %4935 = shl i32 %4934, 10
  %4936 = and i32 %4933, -130049
  %4937 = or i32 %4936, %4935
  store i32 %4937, ptr %4932, align 8
  %4938 = load ptr, ptr %7, align 8, !tbaa !5
  %4939 = getelementptr inbounds %struct.http_parser_settings, ptr %4938, i32 0, i32 6
  %4940 = load ptr, ptr %4939, align 8, !tbaa !32
  %4941 = load ptr, ptr %6, align 8, !tbaa !5
  %4942 = load ptr, ptr %17, align 8, !tbaa !5
  %4943 = load ptr, ptr %13, align 8, !tbaa !5
  %4944 = load ptr, ptr %17, align 8, !tbaa !5
  %4945 = ptrtoint ptr %4943 to i64
  %4946 = ptrtoint ptr %4944 to i64
  %4947 = sub i64 %4945, %4946
  %4948 = add nsw i64 %4947, 1
  %4949 = call i32 %4940(ptr noundef %4941, ptr noundef %4942, i64 noundef %4948)
  %4950 = icmp ne i32 0, %4949
  %4951 = xor i1 %4950, true
  %4952 = xor i1 %4951, true
  %4953 = zext i1 %4952 to i32
  %4954 = sext i32 %4953 to i64
  %4955 = call i64 @llvm.expect.i64(i64 %4954, i64 0)
  %4956 = icmp ne i64 %4955, 0
  br i1 %4956, label %4957, label %4966

4957:                                             ; preds = %4930
  br label %4958

4958:                                             ; preds = %4957
  %4959 = load ptr, ptr %6, align 8, !tbaa !5
  %4960 = getelementptr inbounds %struct.http_parser, ptr %4959, i32 0, i32 5
  %4961 = load i32, ptr %4960, align 4
  %4962 = and i32 %4961, -2130706433
  %4963 = or i32 %4962, 100663296
  store i32 %4963, ptr %4960, align 4
  br label %4964

4964:                                             ; preds = %4958
  br label %4965

4965:                                             ; preds = %4964
  br label %4966

4966:                                             ; preds = %4965, %4930
  %4967 = load ptr, ptr %6, align 8, !tbaa !5
  %4968 = load i32, ptr %4967, align 8
  %4969 = lshr i32 %4968, 10
  %4970 = and i32 %4969, 127
  store i32 %4970, ptr %19, align 4, !tbaa !11
  %4971 = load ptr, ptr %6, align 8, !tbaa !5
  %4972 = getelementptr inbounds %struct.http_parser, ptr %4971, i32 0, i32 5
  %4973 = load i32, ptr %4972, align 4
  %4974 = lshr i32 %4973, 24
  %4975 = and i32 %4974, 127
  %4976 = icmp ne i32 %4975, 0
  %4977 = xor i1 %4976, true
  %4978 = xor i1 %4977, true
  %4979 = zext i1 %4978 to i32
  %4980 = sext i32 %4979 to i64
  %4981 = call i64 @llvm.expect.i64(i64 %4980, i64 0)
  %4982 = icmp ne i64 %4981, 0
  br i1 %4982, label %4983, label %4989

4983:                                             ; preds = %4966
  %4984 = load ptr, ptr %13, align 8, !tbaa !5
  %4985 = load ptr, ptr %8, align 8, !tbaa !5
  %4986 = ptrtoint ptr %4984 to i64
  %4987 = ptrtoint ptr %4985 to i64
  %4988 = sub i64 %4986, %4987
  store i64 %4988, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %4995

4989:                                             ; preds = %4966
  br label %4990

4990:                                             ; preds = %4989, %4919
  store ptr null, ptr %17, align 8, !tbaa !5
  br label %4991

4991:                                             ; preds = %4990, %4916
  br label %4992

4992:                                             ; preds = %4991
  br label %4993

4993:                                             ; preds = %4992
  store i32 18, ptr %21, align 4
  br label %4995

4994:                                             ; preds = %4892
  store i32 19, ptr %21, align 4
  br label %4995

4995:                                             ; preds = %4994, %4993, %4983
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  %4996 = load i32, ptr %21, align 4
  switch i32 %4996, label %6182 [
    i32 18, label %200
    i32 19, label %5676
  ]

4997:                                             ; preds = %200
  br label %4998

4998:                                             ; preds = %4997
  %4999 = load ptr, ptr %17, align 8, !tbaa !5
  %5000 = icmp ne ptr %4999, null
  br i1 %5000, label %5003, label %5001

5001:                                             ; preds = %4998
  %5002 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %5002, ptr %17, align 8, !tbaa !5
  br label %5003

5003:                                             ; preds = %5001, %4998
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

5005:                                             ; preds = %5004
  %5006 = load ptr, ptr %8, align 8, !tbaa !5
  %5007 = load i64, ptr %9, align 8, !tbaa !9
  %5008 = getelementptr inbounds i8, ptr %5006, i64 %5007
  %5009 = getelementptr inbounds i8, ptr %5008, i64 -1
  store ptr %5009, ptr %13, align 8, !tbaa !5
  br label %5676

5010:                                             ; preds = %200
  %5011 = load ptr, ptr %6, align 8, !tbaa !5
  %5012 = call i32 @http_should_keep_alive(ptr noundef %5011)
  %5013 = icmp ne i32 %5012, 0
  br i1 %5013, label %5014, label %5021

5014:                                             ; preds = %5010
  %5015 = load ptr, ptr %6, align 8, !tbaa !5
  %5016 = load i32, ptr %5015, align 8
  %5017 = and i32 %5016, 3
  %5018 = icmp eq i32 %5017, 0
  %5019 = zext i1 %5018 to i64
  %5020 = select i1 %5018, i32 18, i32 4
  br label %5022

5021:                                             ; preds = %5010
  br label %5022

5022:                                             ; preds = %5021, %5014
  %5023 = phi i32 [ %5020, %5014 ], [ 1, %5021 ]
  store i32 %5023, ptr %19, align 4, !tbaa !11
  br label %5024

5024:                                             ; preds = %5022
  %5025 = load ptr, ptr %6, align 8, !tbaa !5
  %5026 = getelementptr inbounds %struct.http_parser, ptr %5025, i32 0, i32 5
  %5027 = load i32, ptr %5026, align 4
  %5028 = lshr i32 %5027, 24
  %5029 = and i32 %5028, 127
  %5030 = icmp eq i32 %5029, 0
  br i1 %5030, label %5031, label %5032

5031:                                             ; preds = %5024
  br label %5033

5032:                                             ; preds = %5024
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 1972, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5033:                                             ; preds = %5031
  %5034 = load ptr, ptr %7, align 8, !tbaa !5
  %5035 = getelementptr inbounds %struct.http_parser_settings, ptr %5034, i32 0, i32 7
  %5036 = load ptr, ptr %5035, align 8, !tbaa !13
  %5037 = icmp ne ptr %5036, null
  %5038 = xor i1 %5037, true
  %5039 = xor i1 %5038, true
  %5040 = zext i1 %5039 to i32
  %5041 = sext i32 %5040 to i64
  %5042 = call i64 @llvm.expect.i64(i64 %5041, i64 1)
  %5043 = icmp ne i64 %5042, 0
  br i1 %5043, label %5044, label %5098

5044:                                             ; preds = %5033
  %5045 = load i32, ptr %19, align 4, !tbaa !11
  %5046 = load ptr, ptr %6, align 8, !tbaa !5
  %5047 = load i32, ptr %5046, align 8
  %5048 = and i32 %5045, 127
  %5049 = shl i32 %5048, 10
  %5050 = and i32 %5047, -130049
  %5051 = or i32 %5050, %5049
  store i32 %5051, ptr %5046, align 8
  %5052 = load ptr, ptr %7, align 8, !tbaa !5
  %5053 = getelementptr inbounds %struct.http_parser_settings, ptr %5052, i32 0, i32 7
  %5054 = load ptr, ptr %5053, align 8, !tbaa !13
  %5055 = load ptr, ptr %6, align 8, !tbaa !5
  %5056 = call i32 %5054(ptr noundef %5055)
  %5057 = icmp ne i32 0, %5056
  %5058 = xor i1 %5057, true
  %5059 = xor i1 %5058, true
  %5060 = zext i1 %5059 to i32
  %5061 = sext i32 %5060 to i64
  %5062 = call i64 @llvm.expect.i64(i64 %5061, i64 0)
  %5063 = icmp ne i64 %5062, 0
  br i1 %5063, label %5064, label %5073

5064:                                             ; preds = %5044
  br label %5065

5065:                                             ; preds = %5064
  %5066 = load ptr, ptr %6, align 8, !tbaa !5
  %5067 = getelementptr inbounds %struct.http_parser, ptr %5066, i32 0, i32 5
  %5068 = load i32, ptr %5067, align 4
  %5069 = and i32 %5068, -2130706433
  %5070 = or i32 %5069, 117440512
  store i32 %5070, ptr %5067, align 4
  br label %5071

5071:                                             ; preds = %5065
  br label %5072

5072:                                             ; preds = %5071
  br label %5073

5073:                                             ; preds = %5072, %5044
  %5074 = load ptr, ptr %6, align 8, !tbaa !5
  %5075 = load i32, ptr %5074, align 8
  %5076 = lshr i32 %5075, 10
  %5077 = and i32 %5076, 127
  store i32 %5077, ptr %19, align 4, !tbaa !11
  %5078 = load ptr, ptr %6, align 8, !tbaa !5
  %5079 = getelementptr inbounds %struct.http_parser, ptr %5078, i32 0, i32 5
  %5080 = load i32, ptr %5079, align 4
  %5081 = lshr i32 %5080, 24
  %5082 = and i32 %5081, 127
  %5083 = icmp ne i32 %5082, 0
  %5084 = xor i1 %5083, true
  %5085 = xor i1 %5084, true
  %5086 = zext i1 %5085 to i32
  %5087 = sext i32 %5086 to i64
  %5088 = call i64 @llvm.expect.i64(i64 %5087, i64 0)
  %5089 = icmp ne i64 %5088, 0
  br i1 %5089, label %5090, label %5097

5090:                                             ; preds = %5073
  %5091 = load ptr, ptr %13, align 8, !tbaa !5
  %5092 = load ptr, ptr %8, align 8, !tbaa !5
  %5093 = ptrtoint ptr %5091 to i64
  %5094 = ptrtoint ptr %5092 to i64
  %5095 = sub i64 %5093, %5094
  %5096 = add nsw i64 %5095, 1
  store i64 %5096, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5097:                                             ; preds = %5073
  br label %5098

5098:                                             ; preds = %5097, %5033
  br label %5099

5099:                                             ; preds = %5098
  br label %5100

5100:                                             ; preds = %5099
  %5101 = load ptr, ptr %6, align 8, !tbaa !5
  %5102 = getelementptr inbounds %struct.http_parser, ptr %5101, i32 0, i32 5
  %5103 = load i32, ptr %5102, align 4
  %5104 = lshr i32 %5103, 31
  %5105 = icmp ne i32 %5104, 0
  br i1 %5105, label %5106, label %5123

5106:                                             ; preds = %5100
  br label %5107

5107:                                             ; preds = %5106
  %5108 = load i32, ptr %19, align 4, !tbaa !11
  %5109 = load ptr, ptr %6, align 8, !tbaa !5
  %5110 = load i32, ptr %5109, align 8
  %5111 = and i32 %5108, 127
  %5112 = shl i32 %5111, 10
  %5113 = and i32 %5110, -130049
  %5114 = or i32 %5113, %5112
  store i32 %5114, ptr %5109, align 8
  %5115 = load ptr, ptr %13, align 8, !tbaa !5
  %5116 = load ptr, ptr %8, align 8, !tbaa !5
  %5117 = ptrtoint ptr %5115 to i64
  %5118 = ptrtoint ptr %5116 to i64
  %5119 = sub i64 %5117, %5118
  %5120 = add nsw i64 %5119, 1
  store i64 %5120, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5121:                                             ; No predecessors!
  br label %5122

5122:                                             ; preds = %5121
  br label %5123

5123:                                             ; preds = %5122, %5100
  br label %5676

5124:                                             ; preds = %200
  %5125 = load ptr, ptr %6, align 8, !tbaa !5
  %5126 = getelementptr inbounds %struct.http_parser, ptr %5125, i32 0, i32 1
  %5127 = load i32, ptr %5126, align 4, !tbaa !16
  %5128 = icmp eq i32 %5127, 1
  br i1 %5128, label %5129, label %5130

5129:                                             ; preds = %5124
  br label %5131

5130:                                             ; preds = %5124
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 1981, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5131:                                             ; preds = %5129
  %5132 = load ptr, ptr %6, align 8, !tbaa !5
  %5133 = load i32, ptr %5132, align 8
  %5134 = lshr i32 %5133, 2
  %5135 = and i32 %5134, 255
  %5136 = and i32 %5135, 1
  %5137 = icmp ne i32 %5136, 0
  br i1 %5137, label %5138, label %5139

5138:                                             ; preds = %5131
  br label %5140

5139:                                             ; preds = %5131
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 1982, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5140:                                             ; preds = %5138
  %5141 = load i8, ptr %11, align 1, !tbaa !15
  %5142 = zext i8 %5141 to i64
  %5143 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %5142
  %5144 = load i8, ptr %5143, align 1, !tbaa !15
  store i8 %5144, ptr %12, align 1, !tbaa !15
  %5145 = load i8, ptr %12, align 1, !tbaa !15
  %5146 = sext i8 %5145 to i32
  %5147 = icmp eq i32 %5146, -1
  %5148 = xor i1 %5147, true
  %5149 = xor i1 %5148, true
  %5150 = zext i1 %5149 to i32
  %5151 = sext i32 %5150 to i64
  %5152 = call i64 @llvm.expect.i64(i64 %5151, i64 0)
  %5153 = icmp ne i64 %5152, 0
  br i1 %5153, label %5154, label %5163

5154:                                             ; preds = %5140
  br label %5155

5155:                                             ; preds = %5154
  %5156 = load ptr, ptr %6, align 8, !tbaa !5
  %5157 = getelementptr inbounds %struct.http_parser, ptr %5156, i32 0, i32 5
  %5158 = load i32, ptr %5157, align 4
  %5159 = and i32 %5158, -2130706433
  %5160 = or i32 %5159, 452984832
  store i32 %5160, ptr %5157, align 4
  br label %5161

5161:                                             ; preds = %5155
  br label %5162

5162:                                             ; preds = %5161
  br label %6150

5163:                                             ; preds = %5140
  %5164 = load i8, ptr %12, align 1, !tbaa !15
  %5165 = sext i8 %5164 to i64
  %5166 = load ptr, ptr %6, align 8, !tbaa !5
  %5167 = getelementptr inbounds %struct.http_parser, ptr %5166, i32 0, i32 2
  store i64 %5165, ptr %5167, align 8, !tbaa !19
  store i32 52, ptr %19, align 4, !tbaa !11
  br label %5676

5168:                                             ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %5169 = load ptr, ptr %6, align 8, !tbaa !5
  %5170 = load i32, ptr %5169, align 8
  %5171 = lshr i32 %5170, 2
  %5172 = and i32 %5171, 255
  %5173 = and i32 %5172, 1
  %5174 = icmp ne i32 %5173, 0
  br i1 %5174, label %5175, label %5176

5175:                                             ; preds = %5168
  br label %5177

5176:                                             ; preds = %5168
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 1999, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5177:                                             ; preds = %5175
  %5178 = load i8, ptr %11, align 1, !tbaa !15
  %5179 = sext i8 %5178 to i32
  %5180 = icmp eq i32 %5179, 13
  br i1 %5180, label %5181, label %5182

5181:                                             ; preds = %5177
  store i32 54, ptr %19, align 4, !tbaa !11
  store i32 19, ptr %21, align 4
  br label %5241

5182:                                             ; preds = %5177
  %5183 = load i8, ptr %11, align 1, !tbaa !15
  %5184 = zext i8 %5183 to i64
  %5185 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %5184
  %5186 = load i8, ptr %5185, align 1, !tbaa !15
  store i8 %5186, ptr %12, align 1, !tbaa !15
  %5187 = load i8, ptr %12, align 1, !tbaa !15
  %5188 = sext i8 %5187 to i32
  %5189 = icmp eq i32 %5188, -1
  br i1 %5189, label %5190, label %5208

5190:                                             ; preds = %5182
  %5191 = load i8, ptr %11, align 1, !tbaa !15
  %5192 = sext i8 %5191 to i32
  %5193 = icmp eq i32 %5192, 59
  br i1 %5193, label %5198, label %5194

5194:                                             ; preds = %5190
  %5195 = load i8, ptr %11, align 1, !tbaa !15
  %5196 = sext i8 %5195 to i32
  %5197 = icmp eq i32 %5196, 32
  br i1 %5197, label %5198, label %5199

5198:                                             ; preds = %5194, %5190
  store i32 53, ptr %19, align 4, !tbaa !11
  store i32 19, ptr %21, align 4
  br label %5241

5199:                                             ; preds = %5194
  br label %5200

5200:                                             ; preds = %5199
  %5201 = load ptr, ptr %6, align 8, !tbaa !5
  %5202 = getelementptr inbounds %struct.http_parser, ptr %5201, i32 0, i32 5
  %5203 = load i32, ptr %5202, align 4
  %5204 = and i32 %5203, -2130706433
  %5205 = or i32 %5204, 452984832
  store i32 %5205, ptr %5202, align 4
  br label %5206

5206:                                             ; preds = %5200
  br label %5207

5207:                                             ; preds = %5206
  store i32 17, ptr %21, align 4
  br label %5241

5208:                                             ; preds = %5182
  %5209 = load ptr, ptr %6, align 8, !tbaa !5
  %5210 = getelementptr inbounds %struct.http_parser, ptr %5209, i32 0, i32 2
  %5211 = load i64, ptr %5210, align 8, !tbaa !19
  store i64 %5211, ptr %32, align 8, !tbaa !9
  %5212 = load i64, ptr %32, align 8, !tbaa !9
  %5213 = mul i64 %5212, 16
  store i64 %5213, ptr %32, align 8, !tbaa !9
  %5214 = load i8, ptr %12, align 1, !tbaa !15
  %5215 = sext i8 %5214 to i64
  %5216 = load i64, ptr %32, align 8, !tbaa !9
  %5217 = add i64 %5216, %5215
  store i64 %5217, ptr %32, align 8, !tbaa !9
  %5218 = load ptr, ptr %6, align 8, !tbaa !5
  %5219 = getelementptr inbounds %struct.http_parser, ptr %5218, i32 0, i32 2
  %5220 = load i64, ptr %5219, align 8, !tbaa !19
  %5221 = icmp ult i64 1152921504606846974, %5220
  %5222 = xor i1 %5221, true
  %5223 = xor i1 %5222, true
  %5224 = zext i1 %5223 to i32
  %5225 = sext i32 %5224 to i64
  %5226 = call i64 @llvm.expect.i64(i64 %5225, i64 0)
  %5227 = icmp ne i64 %5226, 0
  br i1 %5227, label %5228, label %5237

5228:                                             ; preds = %5208
  br label %5229

5229:                                             ; preds = %5228
  %5230 = load ptr, ptr %6, align 8, !tbaa !5
  %5231 = getelementptr inbounds %struct.http_parser, ptr %5230, i32 0, i32 5
  %5232 = load i32, ptr %5231, align 4
  %5233 = and i32 %5232, -2130706433
  %5234 = or i32 %5233, 419430400
  store i32 %5234, ptr %5231, align 4
  br label %5235

5235:                                             ; preds = %5229
  br label %5236

5236:                                             ; preds = %5235
  store i32 17, ptr %21, align 4
  br label %5241

5237:                                             ; preds = %5208
  %5238 = load i64, ptr %32, align 8, !tbaa !9
  %5239 = load ptr, ptr %6, align 8, !tbaa !5
  %5240 = getelementptr inbounds %struct.http_parser, ptr %5239, i32 0, i32 2
  store i64 %5238, ptr %5240, align 8, !tbaa !19
  store i32 19, ptr %21, align 4
  br label %5241

5241:                                             ; preds = %5237, %5236, %5207, %5198, %5181
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  %5242 = load i32, ptr %21, align 4
  switch i32 %5242, label %6182 [
    i32 19, label %5676
    i32 17, label %6150
  ]

5243:                                             ; preds = %200
  %5244 = load ptr, ptr %6, align 8, !tbaa !5
  %5245 = load i32, ptr %5244, align 8
  %5246 = lshr i32 %5245, 2
  %5247 = and i32 %5246, 255
  %5248 = and i32 %5247, 1
  %5249 = icmp ne i32 %5248, 0
  br i1 %5249, label %5250, label %5251

5250:                                             ; preds = %5243
  br label %5252

5251:                                             ; preds = %5243
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2034, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5252:                                             ; preds = %5250
  %5253 = load i8, ptr %11, align 1, !tbaa !15
  %5254 = sext i8 %5253 to i32
  %5255 = icmp eq i32 %5254, 13
  br i1 %5255, label %5256, label %5257

5256:                                             ; preds = %5252
  store i32 54, ptr %19, align 4, !tbaa !11
  br label %5676

5257:                                             ; preds = %5252
  br label %5676

5258:                                             ; preds = %200
  %5259 = load ptr, ptr %6, align 8, !tbaa !5
  %5260 = load i32, ptr %5259, align 8
  %5261 = lshr i32 %5260, 2
  %5262 = and i32 %5261, 255
  %5263 = and i32 %5262, 1
  %5264 = icmp ne i32 %5263, 0
  br i1 %5264, label %5265, label %5266

5265:                                             ; preds = %5258
  br label %5267

5266:                                             ; preds = %5258
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2045, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5267:                                             ; preds = %5265
  br label %5268

5268:                                             ; preds = %5267
  %5269 = load i8, ptr %11, align 1, !tbaa !15
  %5270 = sext i8 %5269 to i32
  %5271 = icmp ne i32 %5270, 10
  br i1 %5271, label %5272, label %5281

5272:                                             ; preds = %5268
  br label %5273

5273:                                             ; preds = %5272
  %5274 = load ptr, ptr %6, align 8, !tbaa !5
  %5275 = getelementptr inbounds %struct.http_parser, ptr %5274, i32 0, i32 5
  %5276 = load i32, ptr %5275, align 4
  %5277 = and i32 %5276, -2130706433
  %5278 = or i32 %5277, 503316480
  store i32 %5278, ptr %5275, align 4
  br label %5279

5279:                                             ; preds = %5273
  br label %5280

5280:                                             ; preds = %5279
  br label %6150

5281:                                             ; preds = %5268
  br label %5282

5282:                                             ; preds = %5281
  br label %5283

5283:                                             ; preds = %5282
  %5284 = load ptr, ptr %6, align 8, !tbaa !5
  %5285 = getelementptr inbounds %struct.http_parser, ptr %5284, i32 0, i32 1
  store i32 0, ptr %5285, align 4, !tbaa !16
  %5286 = load ptr, ptr %6, align 8, !tbaa !5
  %5287 = getelementptr inbounds %struct.http_parser, ptr %5286, i32 0, i32 2
  %5288 = load i64, ptr %5287, align 8, !tbaa !19
  %5289 = icmp eq i64 %5288, 0
  br i1 %5289, label %5290, label %5301

5290:                                             ; preds = %5283
  %5291 = load ptr, ptr %6, align 8, !tbaa !5
  %5292 = load i32, ptr %5291, align 8
  %5293 = lshr i32 %5292, 2
  %5294 = and i32 %5293, 255
  %5295 = or i32 %5294, 16
  %5296 = load i32, ptr %5291, align 8
  %5297 = and i32 %5295, 255
  %5298 = shl i32 %5297, 2
  %5299 = and i32 %5296, -1021
  %5300 = or i32 %5299, %5298
  store i32 %5300, ptr %5291, align 8
  store i32 42, ptr %19, align 4, !tbaa !11
  br label %5302

5301:                                             ; preds = %5283
  store i32 57, ptr %19, align 4, !tbaa !11
  br label %5302

5302:                                             ; preds = %5301, %5290
  br label %5303

5303:                                             ; preds = %5302
  %5304 = load ptr, ptr %6, align 8, !tbaa !5
  %5305 = getelementptr inbounds %struct.http_parser, ptr %5304, i32 0, i32 5
  %5306 = load i32, ptr %5305, align 4
  %5307 = lshr i32 %5306, 24
  %5308 = and i32 %5307, 127
  %5309 = icmp eq i32 %5308, 0
  br i1 %5309, label %5310, label %5311

5310:                                             ; preds = %5303
  br label %5312

5311:                                             ; preds = %5303
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2056, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5312:                                             ; preds = %5310
  %5313 = load ptr, ptr %7, align 8, !tbaa !5
  %5314 = getelementptr inbounds %struct.http_parser_settings, ptr %5313, i32 0, i32 8
  %5315 = load ptr, ptr %5314, align 8, !tbaa !33
  %5316 = icmp ne ptr %5315, null
  %5317 = xor i1 %5316, true
  %5318 = xor i1 %5317, true
  %5319 = zext i1 %5318 to i32
  %5320 = sext i32 %5319 to i64
  %5321 = call i64 @llvm.expect.i64(i64 %5320, i64 1)
  %5322 = icmp ne i64 %5321, 0
  br i1 %5322, label %5323, label %5377

5323:                                             ; preds = %5312
  %5324 = load i32, ptr %19, align 4, !tbaa !11
  %5325 = load ptr, ptr %6, align 8, !tbaa !5
  %5326 = load i32, ptr %5325, align 8
  %5327 = and i32 %5324, 127
  %5328 = shl i32 %5327, 10
  %5329 = and i32 %5326, -130049
  %5330 = or i32 %5329, %5328
  store i32 %5330, ptr %5325, align 8
  %5331 = load ptr, ptr %7, align 8, !tbaa !5
  %5332 = getelementptr inbounds %struct.http_parser_settings, ptr %5331, i32 0, i32 8
  %5333 = load ptr, ptr %5332, align 8, !tbaa !33
  %5334 = load ptr, ptr %6, align 8, !tbaa !5
  %5335 = call i32 %5333(ptr noundef %5334)
  %5336 = icmp ne i32 0, %5335
  %5337 = xor i1 %5336, true
  %5338 = xor i1 %5337, true
  %5339 = zext i1 %5338 to i32
  %5340 = sext i32 %5339 to i64
  %5341 = call i64 @llvm.expect.i64(i64 %5340, i64 0)
  %5342 = icmp ne i64 %5341, 0
  br i1 %5342, label %5343, label %5352

5343:                                             ; preds = %5323
  br label %5344

5344:                                             ; preds = %5343
  %5345 = load ptr, ptr %6, align 8, !tbaa !5
  %5346 = getelementptr inbounds %struct.http_parser, ptr %5345, i32 0, i32 5
  %5347 = load i32, ptr %5346, align 4
  %5348 = and i32 %5347, -2130706433
  %5349 = or i32 %5348, 150994944
  store i32 %5349, ptr %5346, align 4
  br label %5350

5350:                                             ; preds = %5344
  br label %5351

5351:                                             ; preds = %5350
  br label %5352

5352:                                             ; preds = %5351, %5323
  %5353 = load ptr, ptr %6, align 8, !tbaa !5
  %5354 = load i32, ptr %5353, align 8
  %5355 = lshr i32 %5354, 10
  %5356 = and i32 %5355, 127
  store i32 %5356, ptr %19, align 4, !tbaa !11
  %5357 = load ptr, ptr %6, align 8, !tbaa !5
  %5358 = getelementptr inbounds %struct.http_parser, ptr %5357, i32 0, i32 5
  %5359 = load i32, ptr %5358, align 4
  %5360 = lshr i32 %5359, 24
  %5361 = and i32 %5360, 127
  %5362 = icmp ne i32 %5361, 0
  %5363 = xor i1 %5362, true
  %5364 = xor i1 %5363, true
  %5365 = zext i1 %5364 to i32
  %5366 = sext i32 %5365 to i64
  %5367 = call i64 @llvm.expect.i64(i64 %5366, i64 0)
  %5368 = icmp ne i64 %5367, 0
  br i1 %5368, label %5369, label %5376

5369:                                             ; preds = %5352
  %5370 = load ptr, ptr %13, align 8, !tbaa !5
  %5371 = load ptr, ptr %8, align 8, !tbaa !5
  %5372 = ptrtoint ptr %5370 to i64
  %5373 = ptrtoint ptr %5371 to i64
  %5374 = sub i64 %5372, %5373
  %5375 = add nsw i64 %5374, 1
  store i64 %5375, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5376:                                             ; preds = %5352
  br label %5377

5377:                                             ; preds = %5376, %5312
  br label %5378

5378:                                             ; preds = %5377
  br label %5379

5379:                                             ; preds = %5378
  br label %5676

5380:                                             ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %5381 = load ptr, ptr %6, align 8, !tbaa !5
  %5382 = getelementptr inbounds %struct.http_parser, ptr %5381, i32 0, i32 2
  %5383 = load i64, ptr %5382, align 8, !tbaa !19
  %5384 = load ptr, ptr %8, align 8, !tbaa !5
  %5385 = load i64, ptr %9, align 8, !tbaa !9
  %5386 = getelementptr inbounds i8, ptr %5384, i64 %5385
  %5387 = load ptr, ptr %13, align 8, !tbaa !5
  %5388 = ptrtoint ptr %5386 to i64
  %5389 = ptrtoint ptr %5387 to i64
  %5390 = sub i64 %5388, %5389
  %5391 = icmp ult i64 %5383, %5390
  br i1 %5391, label %5392, label %5396

5392:                                             ; preds = %5380
  %5393 = load ptr, ptr %6, align 8, !tbaa !5
  %5394 = getelementptr inbounds %struct.http_parser, ptr %5393, i32 0, i32 2
  %5395 = load i64, ptr %5394, align 8, !tbaa !19
  br label %5404

5396:                                             ; preds = %5380
  %5397 = load ptr, ptr %8, align 8, !tbaa !5
  %5398 = load i64, ptr %9, align 8, !tbaa !9
  %5399 = getelementptr inbounds i8, ptr %5397, i64 %5398
  %5400 = load ptr, ptr %13, align 8, !tbaa !5
  %5401 = ptrtoint ptr %5399 to i64
  %5402 = ptrtoint ptr %5400 to i64
  %5403 = sub i64 %5401, %5402
  br label %5404

5404:                                             ; preds = %5396, %5392
  %5405 = phi i64 [ %5395, %5392 ], [ %5403, %5396 ]
  store i64 %5405, ptr %33, align 8, !tbaa !9
  %5406 = load ptr, ptr %6, align 8, !tbaa !5
  %5407 = load i32, ptr %5406, align 8
  %5408 = lshr i32 %5407, 2
  %5409 = and i32 %5408, 255
  %5410 = and i32 %5409, 1
  %5411 = icmp ne i32 %5410, 0
  br i1 %5411, label %5412, label %5413

5412:                                             ; preds = %5404
  br label %5414

5413:                                             ; preds = %5404
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2065, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5414:                                             ; preds = %5412
  %5415 = load ptr, ptr %6, align 8, !tbaa !5
  %5416 = getelementptr inbounds %struct.http_parser, ptr %5415, i32 0, i32 2
  %5417 = load i64, ptr %5416, align 8, !tbaa !19
  %5418 = icmp ne i64 %5417, 0
  br i1 %5418, label %5419, label %5425

5419:                                             ; preds = %5414
  %5420 = load ptr, ptr %6, align 8, !tbaa !5
  %5421 = getelementptr inbounds %struct.http_parser, ptr %5420, i32 0, i32 2
  %5422 = load i64, ptr %5421, align 8, !tbaa !19
  %5423 = icmp ne i64 %5422, -1
  br i1 %5423, label %5424, label %5425

5424:                                             ; preds = %5419
  br label %5426

5425:                                             ; preds = %5419, %5414
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2067, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5426:                                             ; preds = %5424
  br label %5427

5427:                                             ; preds = %5426
  %5428 = load ptr, ptr %17, align 8, !tbaa !5
  %5429 = icmp ne ptr %5428, null
  br i1 %5429, label %5432, label %5430

5430:                                             ; preds = %5427
  %5431 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %5431, ptr %17, align 8, !tbaa !5
  br label %5432

5432:                                             ; preds = %5430, %5427
  br label %5433

5433:                                             ; preds = %5432
  br label %5434

5434:                                             ; preds = %5433
  %5435 = load i64, ptr %33, align 8, !tbaa !9
  %5436 = load ptr, ptr %6, align 8, !tbaa !5
  %5437 = getelementptr inbounds %struct.http_parser, ptr %5436, i32 0, i32 2
  %5438 = load i64, ptr %5437, align 8, !tbaa !19
  %5439 = sub i64 %5438, %5435
  store i64 %5439, ptr %5437, align 8, !tbaa !19
  %5440 = load i64, ptr %33, align 8, !tbaa !9
  %5441 = sub i64 %5440, 1
  %5442 = load ptr, ptr %13, align 8, !tbaa !5
  %5443 = getelementptr inbounds i8, ptr %5442, i64 %5441
  store ptr %5443, ptr %13, align 8, !tbaa !5
  %5444 = load ptr, ptr %6, align 8, !tbaa !5
  %5445 = getelementptr inbounds %struct.http_parser, ptr %5444, i32 0, i32 2
  %5446 = load i64, ptr %5445, align 8, !tbaa !19
  %5447 = icmp eq i64 %5446, 0
  br i1 %5447, label %5448, label %5449

5448:                                             ; preds = %5434
  store i32 58, ptr %19, align 4, !tbaa !11
  br label %5449

5449:                                             ; preds = %5448, %5434
  store i32 19, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  br label %5676

5450:                                             ; preds = %200
  %5451 = load ptr, ptr %6, align 8, !tbaa !5
  %5452 = load i32, ptr %5451, align 8
  %5453 = lshr i32 %5452, 2
  %5454 = and i32 %5453, 255
  %5455 = and i32 %5454, 1
  %5456 = icmp ne i32 %5455, 0
  br i1 %5456, label %5457, label %5458

5457:                                             ; preds = %5450
  br label %5459

5458:                                             ; preds = %5450
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2084, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5459:                                             ; preds = %5457
  %5460 = load ptr, ptr %6, align 8, !tbaa !5
  %5461 = getelementptr inbounds %struct.http_parser, ptr %5460, i32 0, i32 2
  %5462 = load i64, ptr %5461, align 8, !tbaa !19
  %5463 = icmp eq i64 %5462, 0
  br i1 %5463, label %5464, label %5465

5464:                                             ; preds = %5459
  br label %5466

5465:                                             ; preds = %5459
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 2085, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5466:                                             ; preds = %5464
  br label %5467

5467:                                             ; preds = %5466
  %5468 = load i8, ptr %11, align 1, !tbaa !15
  %5469 = sext i8 %5468 to i32
  %5470 = icmp ne i32 %5469, 13
  br i1 %5470, label %5471, label %5480

5471:                                             ; preds = %5467
  br label %5472

5472:                                             ; preds = %5471
  %5473 = load ptr, ptr %6, align 8, !tbaa !5
  %5474 = getelementptr inbounds %struct.http_parser, ptr %5473, i32 0, i32 5
  %5475 = load i32, ptr %5474, align 4
  %5476 = and i32 %5475, -2130706433
  %5477 = or i32 %5476, 503316480
  store i32 %5477, ptr %5474, align 4
  br label %5478

5478:                                             ; preds = %5472
  br label %5479

5479:                                             ; preds = %5478
  br label %6150

5480:                                             ; preds = %5467
  br label %5481

5481:                                             ; preds = %5480
  br label %5482

5482:                                             ; preds = %5481
  store i32 59, ptr %19, align 4, !tbaa !11
  br label %5483

5483:                                             ; preds = %5482
  %5484 = load ptr, ptr %6, align 8, !tbaa !5
  %5485 = getelementptr inbounds %struct.http_parser, ptr %5484, i32 0, i32 5
  %5486 = load i32, ptr %5485, align 4
  %5487 = lshr i32 %5486, 24
  %5488 = and i32 %5487, 127
  %5489 = icmp eq i32 %5488, 0
  br i1 %5489, label %5490, label %5491

5490:                                             ; preds = %5483
  br label %5492

5491:                                             ; preds = %5483
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2088, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5492:                                             ; preds = %5490
  %5493 = load ptr, ptr %17, align 8, !tbaa !5
  %5494 = icmp ne ptr %5493, null
  br i1 %5494, label %5495, label %5567

5495:                                             ; preds = %5492
  %5496 = load ptr, ptr %7, align 8, !tbaa !5
  %5497 = getelementptr inbounds %struct.http_parser_settings, ptr %5496, i32 0, i32 6
  %5498 = load ptr, ptr %5497, align 8, !tbaa !32
  %5499 = icmp ne ptr %5498, null
  %5500 = xor i1 %5499, true
  %5501 = xor i1 %5500, true
  %5502 = zext i1 %5501 to i32
  %5503 = sext i32 %5502 to i64
  %5504 = call i64 @llvm.expect.i64(i64 %5503, i64 1)
  %5505 = icmp ne i64 %5504, 0
  br i1 %5505, label %5506, label %5566

5506:                                             ; preds = %5495
  %5507 = load i32, ptr %19, align 4, !tbaa !11
  %5508 = load ptr, ptr %6, align 8, !tbaa !5
  %5509 = load i32, ptr %5508, align 8
  %5510 = and i32 %5507, 127
  %5511 = shl i32 %5510, 10
  %5512 = and i32 %5509, -130049
  %5513 = or i32 %5512, %5511
  store i32 %5513, ptr %5508, align 8
  %5514 = load ptr, ptr %7, align 8, !tbaa !5
  %5515 = getelementptr inbounds %struct.http_parser_settings, ptr %5514, i32 0, i32 6
  %5516 = load ptr, ptr %5515, align 8, !tbaa !32
  %5517 = load ptr, ptr %6, align 8, !tbaa !5
  %5518 = load ptr, ptr %17, align 8, !tbaa !5
  %5519 = load ptr, ptr %13, align 8, !tbaa !5
  %5520 = load ptr, ptr %17, align 8, !tbaa !5
  %5521 = ptrtoint ptr %5519 to i64
  %5522 = ptrtoint ptr %5520 to i64
  %5523 = sub i64 %5521, %5522
  %5524 = call i32 %5516(ptr noundef %5517, ptr noundef %5518, i64 noundef %5523)
  %5525 = icmp ne i32 0, %5524
  %5526 = xor i1 %5525, true
  %5527 = xor i1 %5526, true
  %5528 = zext i1 %5527 to i32
  %5529 = sext i32 %5528 to i64
  %5530 = call i64 @llvm.expect.i64(i64 %5529, i64 0)
  %5531 = icmp ne i64 %5530, 0
  br i1 %5531, label %5532, label %5541

5532:                                             ; preds = %5506
  br label %5533

5533:                                             ; preds = %5532
  %5534 = load ptr, ptr %6, align 8, !tbaa !5
  %5535 = getelementptr inbounds %struct.http_parser, ptr %5534, i32 0, i32 5
  %5536 = load i32, ptr %5535, align 4
  %5537 = and i32 %5536, -2130706433
  %5538 = or i32 %5537, 100663296
  store i32 %5538, ptr %5535, align 4
  br label %5539

5539:                                             ; preds = %5533
  br label %5540

5540:                                             ; preds = %5539
  br label %5541

5541:                                             ; preds = %5540, %5506
  %5542 = load ptr, ptr %6, align 8, !tbaa !5
  %5543 = load i32, ptr %5542, align 8
  %5544 = lshr i32 %5543, 10
  %5545 = and i32 %5544, 127
  store i32 %5545, ptr %19, align 4, !tbaa !11
  %5546 = load ptr, ptr %6, align 8, !tbaa !5
  %5547 = getelementptr inbounds %struct.http_parser, ptr %5546, i32 0, i32 5
  %5548 = load i32, ptr %5547, align 4
  %5549 = lshr i32 %5548, 24
  %5550 = and i32 %5549, 127
  %5551 = icmp ne i32 %5550, 0
  %5552 = xor i1 %5551, true
  %5553 = xor i1 %5552, true
  %5554 = zext i1 %5553 to i32
  %5555 = sext i32 %5554 to i64
  %5556 = call i64 @llvm.expect.i64(i64 %5555, i64 0)
  %5557 = icmp ne i64 %5556, 0
  br i1 %5557, label %5558, label %5565

5558:                                             ; preds = %5541
  %5559 = load ptr, ptr %13, align 8, !tbaa !5
  %5560 = load ptr, ptr %8, align 8, !tbaa !5
  %5561 = ptrtoint ptr %5559 to i64
  %5562 = ptrtoint ptr %5560 to i64
  %5563 = sub i64 %5561, %5562
  %5564 = add nsw i64 %5563, 1
  store i64 %5564, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5565:                                             ; preds = %5541
  br label %5566

5566:                                             ; preds = %5565, %5495
  store ptr null, ptr %17, align 8, !tbaa !5
  br label %5567

5567:                                             ; preds = %5566, %5492
  br label %5568

5568:                                             ; preds = %5567
  br label %5569

5569:                                             ; preds = %5568
  br label %5676

5570:                                             ; preds = %200
  %5571 = load ptr, ptr %6, align 8, !tbaa !5
  %5572 = load i32, ptr %5571, align 8
  %5573 = lshr i32 %5572, 2
  %5574 = and i32 %5573, 255
  %5575 = and i32 %5574, 1
  %5576 = icmp ne i32 %5575, 0
  br i1 %5576, label %5577, label %5578

5577:                                             ; preds = %5570
  br label %5579

5578:                                             ; preds = %5570
  call void @__assert_fail(ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 2092, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5579:                                             ; preds = %5577
  br label %5580

5580:                                             ; preds = %5579
  %5581 = load i8, ptr %11, align 1, !tbaa !15
  %5582 = sext i8 %5581 to i32
  %5583 = icmp ne i32 %5582, 10
  br i1 %5583, label %5584, label %5593

5584:                                             ; preds = %5580
  br label %5585

5585:                                             ; preds = %5584
  %5586 = load ptr, ptr %6, align 8, !tbaa !5
  %5587 = getelementptr inbounds %struct.http_parser, ptr %5586, i32 0, i32 5
  %5588 = load i32, ptr %5587, align 4
  %5589 = and i32 %5588, -2130706433
  %5590 = or i32 %5589, 503316480
  store i32 %5590, ptr %5587, align 4
  br label %5591

5591:                                             ; preds = %5585
  br label %5592

5592:                                             ; preds = %5591
  br label %6150

5593:                                             ; preds = %5580
  br label %5594

5594:                                             ; preds = %5593
  br label %5595

5595:                                             ; preds = %5594
  %5596 = load ptr, ptr %6, align 8, !tbaa !5
  %5597 = getelementptr inbounds %struct.http_parser, ptr %5596, i32 0, i32 1
  store i32 0, ptr %5597, align 4, !tbaa !16
  store i32 51, ptr %19, align 4, !tbaa !11
  br label %5598

5598:                                             ; preds = %5595
  %5599 = load ptr, ptr %6, align 8, !tbaa !5
  %5600 = getelementptr inbounds %struct.http_parser, ptr %5599, i32 0, i32 5
  %5601 = load i32, ptr %5600, align 4
  %5602 = lshr i32 %5601, 24
  %5603 = and i32 %5602, 127
  %5604 = icmp eq i32 %5603, 0
  br i1 %5604, label %5605, label %5606

5605:                                             ; preds = %5598
  br label %5607

5606:                                             ; preds = %5598
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2096, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5607:                                             ; preds = %5605
  %5608 = load ptr, ptr %7, align 8, !tbaa !5
  %5609 = getelementptr inbounds %struct.http_parser_settings, ptr %5608, i32 0, i32 9
  %5610 = load ptr, ptr %5609, align 8, !tbaa !30
  %5611 = icmp ne ptr %5610, null
  %5612 = xor i1 %5611, true
  %5613 = xor i1 %5612, true
  %5614 = zext i1 %5613 to i32
  %5615 = sext i32 %5614 to i64
  %5616 = call i64 @llvm.expect.i64(i64 %5615, i64 1)
  %5617 = icmp ne i64 %5616, 0
  br i1 %5617, label %5618, label %5672

5618:                                             ; preds = %5607
  %5619 = load i32, ptr %19, align 4, !tbaa !11
  %5620 = load ptr, ptr %6, align 8, !tbaa !5
  %5621 = load i32, ptr %5620, align 8
  %5622 = and i32 %5619, 127
  %5623 = shl i32 %5622, 10
  %5624 = and i32 %5621, -130049
  %5625 = or i32 %5624, %5623
  store i32 %5625, ptr %5620, align 8
  %5626 = load ptr, ptr %7, align 8, !tbaa !5
  %5627 = getelementptr inbounds %struct.http_parser_settings, ptr %5626, i32 0, i32 9
  %5628 = load ptr, ptr %5627, align 8, !tbaa !30
  %5629 = load ptr, ptr %6, align 8, !tbaa !5
  %5630 = call i32 %5628(ptr noundef %5629)
  %5631 = icmp ne i32 0, %5630
  %5632 = xor i1 %5631, true
  %5633 = xor i1 %5632, true
  %5634 = zext i1 %5633 to i32
  %5635 = sext i32 %5634 to i64
  %5636 = call i64 @llvm.expect.i64(i64 %5635, i64 0)
  %5637 = icmp ne i64 %5636, 0
  br i1 %5637, label %5638, label %5647

5638:                                             ; preds = %5618
  br label %5639

5639:                                             ; preds = %5638
  %5640 = load ptr, ptr %6, align 8, !tbaa !5
  %5641 = getelementptr inbounds %struct.http_parser, ptr %5640, i32 0, i32 5
  %5642 = load i32, ptr %5641, align 4
  %5643 = and i32 %5642, -2130706433
  %5644 = or i32 %5643, 167772160
  store i32 %5644, ptr %5641, align 4
  br label %5645

5645:                                             ; preds = %5639
  br label %5646

5646:                                             ; preds = %5645
  br label %5647

5647:                                             ; preds = %5646, %5618
  %5648 = load ptr, ptr %6, align 8, !tbaa !5
  %5649 = load i32, ptr %5648, align 8
  %5650 = lshr i32 %5649, 10
  %5651 = and i32 %5650, 127
  store i32 %5651, ptr %19, align 4, !tbaa !11
  %5652 = load ptr, ptr %6, align 8, !tbaa !5
  %5653 = getelementptr inbounds %struct.http_parser, ptr %5652, i32 0, i32 5
  %5654 = load i32, ptr %5653, align 4
  %5655 = lshr i32 %5654, 24
  %5656 = and i32 %5655, 127
  %5657 = icmp ne i32 %5656, 0
  %5658 = xor i1 %5657, true
  %5659 = xor i1 %5658, true
  %5660 = zext i1 %5659 to i32
  %5661 = sext i32 %5660 to i64
  %5662 = call i64 @llvm.expect.i64(i64 %5661, i64 0)
  %5663 = icmp ne i64 %5662, 0
  br i1 %5663, label %5664, label %5671

5664:                                             ; preds = %5647
  %5665 = load ptr, ptr %13, align 8, !tbaa !5
  %5666 = load ptr, ptr %8, align 8, !tbaa !5
  %5667 = ptrtoint ptr %5665 to i64
  %5668 = ptrtoint ptr %5666 to i64
  %5669 = sub i64 %5667, %5668
  %5670 = add nsw i64 %5669, 1
  store i64 %5670, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5671:                                             ; preds = %5647
  br label %5672

5672:                                             ; preds = %5671, %5607
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  br label %5676

5675:                                             ; preds = %200
  call void @__assert_fail(ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 2100, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5676:                                             ; preds = %5674, %5569, %5449, %5379, %5257, %5256, %5241, %5163, %5123, %5005, %4995, %4845, %4004, %3995, %3918, %3897, %3147, %3021, %3016, %3011, %3001, %2479, %2410, %2405, %2385, %2322, %2317, %2306, %2279, %2216, %2205, %2179, %2162, %2145, %2128, %2111, %2097, %1886, %1851, %1813, %1807, %1291, %1064, %1055, %1038, %1037, %945, %849, %840, %835, %830, %787, %754, %744, %731, %668, %657, %630, %576, %565, %539, %522, %505, %488, %471, %373, %330, %236, %218
  br label %5677

5677:                                             ; preds = %5676
  %5678 = load ptr, ptr %13, align 8, !tbaa !5
  %5679 = getelementptr inbounds i8, ptr %5678, i32 1
  store ptr %5679, ptr %13, align 8, !tbaa !5
  br label %160, !llvm.loop !34

5680:                                             ; preds = %160
  %5681 = load ptr, ptr %14, align 8, !tbaa !5
  %5682 = icmp ne ptr %5681, null
  %5683 = zext i1 %5682 to i64
  %5684 = select i1 %5682, i32 1, i32 0
  %5685 = load ptr, ptr %15, align 8, !tbaa !5
  %5686 = icmp ne ptr %5685, null
  %5687 = zext i1 %5686 to i64
  %5688 = select i1 %5686, i32 1, i32 0
  %5689 = add nsw i32 %5684, %5688
  %5690 = load ptr, ptr %16, align 8, !tbaa !5
  %5691 = icmp ne ptr %5690, null
  %5692 = zext i1 %5691 to i64
  %5693 = select i1 %5691, i32 1, i32 0
  %5694 = add nsw i32 %5689, %5693
  %5695 = load ptr, ptr %17, align 8, !tbaa !5
  %5696 = icmp ne ptr %5695, null
  %5697 = zext i1 %5696 to i64
  %5698 = select i1 %5696, i32 1, i32 0
  %5699 = add nsw i32 %5694, %5698
  %5700 = load ptr, ptr %18, align 8, !tbaa !5
  %5701 = icmp ne ptr %5700, null
  %5702 = zext i1 %5701 to i64
  %5703 = select i1 %5701, i32 1, i32 0
  %5704 = add nsw i32 %5699, %5703
  %5705 = icmp sle i32 %5704, 1
  br i1 %5705, label %5706, label %5707

5706:                                             ; preds = %5680
  br label %5708

5707:                                             ; preds = %5680
  call void @__assert_fail(ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 2120, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5708:                                             ; preds = %5706
  br label %5709

5709:                                             ; preds = %5708
  %5710 = load ptr, ptr %6, align 8, !tbaa !5
  %5711 = getelementptr inbounds %struct.http_parser, ptr %5710, i32 0, i32 5
  %5712 = load i32, ptr %5711, align 4
  %5713 = lshr i32 %5712, 24
  %5714 = and i32 %5713, 127
  %5715 = icmp eq i32 %5714, 0
  br i1 %5715, label %5716, label %5717

5716:                                             ; preds = %5709
  br label %5718

5717:                                             ; preds = %5709
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2122, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5718:                                             ; preds = %5716
  %5719 = load ptr, ptr %14, align 8, !tbaa !5
  %5720 = icmp ne ptr %5719, null
  br i1 %5720, label %5721, label %5792

5721:                                             ; preds = %5718
  %5722 = load ptr, ptr %7, align 8, !tbaa !5
  %5723 = getelementptr inbounds %struct.http_parser_settings, ptr %5722, i32 0, i32 3
  %5724 = load ptr, ptr %5723, align 8, !tbaa !27
  %5725 = icmp ne ptr %5724, null
  %5726 = xor i1 %5725, true
  %5727 = xor i1 %5726, true
  %5728 = zext i1 %5727 to i32
  %5729 = sext i32 %5728 to i64
  %5730 = call i64 @llvm.expect.i64(i64 %5729, i64 1)
  %5731 = icmp ne i64 %5730, 0
  br i1 %5731, label %5732, label %5791

5732:                                             ; preds = %5721
  %5733 = load i32, ptr %19, align 4, !tbaa !11
  %5734 = load ptr, ptr %6, align 8, !tbaa !5
  %5735 = load i32, ptr %5734, align 8
  %5736 = and i32 %5733, 127
  %5737 = shl i32 %5736, 10
  %5738 = and i32 %5735, -130049
  %5739 = or i32 %5738, %5737
  store i32 %5739, ptr %5734, align 8
  %5740 = load ptr, ptr %7, align 8, !tbaa !5
  %5741 = getelementptr inbounds %struct.http_parser_settings, ptr %5740, i32 0, i32 3
  %5742 = load ptr, ptr %5741, align 8, !tbaa !27
  %5743 = load ptr, ptr %6, align 8, !tbaa !5
  %5744 = load ptr, ptr %14, align 8, !tbaa !5
  %5745 = load ptr, ptr %13, align 8, !tbaa !5
  %5746 = load ptr, ptr %14, align 8, !tbaa !5
  %5747 = ptrtoint ptr %5745 to i64
  %5748 = ptrtoint ptr %5746 to i64
  %5749 = sub i64 %5747, %5748
  %5750 = call i32 %5742(ptr noundef %5743, ptr noundef %5744, i64 noundef %5749)
  %5751 = icmp ne i32 0, %5750
  %5752 = xor i1 %5751, true
  %5753 = xor i1 %5752, true
  %5754 = zext i1 %5753 to i32
  %5755 = sext i32 %5754 to i64
  %5756 = call i64 @llvm.expect.i64(i64 %5755, i64 0)
  %5757 = icmp ne i64 %5756, 0
  br i1 %5757, label %5758, label %5767

5758:                                             ; preds = %5732
  br label %5759

5759:                                             ; preds = %5758
  %5760 = load ptr, ptr %6, align 8, !tbaa !5
  %5761 = getelementptr inbounds %struct.http_parser, ptr %5760, i32 0, i32 5
  %5762 = load i32, ptr %5761, align 4
  %5763 = and i32 %5762, -2130706433
  %5764 = or i32 %5763, 50331648
  store i32 %5764, ptr %5761, align 4
  br label %5765

5765:                                             ; preds = %5759
  br label %5766

5766:                                             ; preds = %5765
  br label %5767

5767:                                             ; preds = %5766, %5732
  %5768 = load ptr, ptr %6, align 8, !tbaa !5
  %5769 = load i32, ptr %5768, align 8
  %5770 = lshr i32 %5769, 10
  %5771 = and i32 %5770, 127
  store i32 %5771, ptr %19, align 4, !tbaa !11
  %5772 = load ptr, ptr %6, align 8, !tbaa !5
  %5773 = getelementptr inbounds %struct.http_parser, ptr %5772, i32 0, i32 5
  %5774 = load i32, ptr %5773, align 4
  %5775 = lshr i32 %5774, 24
  %5776 = and i32 %5775, 127
  %5777 = icmp ne i32 %5776, 0
  %5778 = xor i1 %5777, true
  %5779 = xor i1 %5778, true
  %5780 = zext i1 %5779 to i32
  %5781 = sext i32 %5780 to i64
  %5782 = call i64 @llvm.expect.i64(i64 %5781, i64 0)
  %5783 = icmp ne i64 %5782, 0
  br i1 %5783, label %5784, label %5790

5784:                                             ; preds = %5767
  %5785 = load ptr, ptr %13, align 8, !tbaa !5
  %5786 = load ptr, ptr %8, align 8, !tbaa !5
  %5787 = ptrtoint ptr %5785 to i64
  %5788 = ptrtoint ptr %5786 to i64
  %5789 = sub i64 %5787, %5788
  store i64 %5789, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5790:                                             ; preds = %5767
  br label %5791

5791:                                             ; preds = %5790, %5721
  store ptr null, ptr %14, align 8, !tbaa !5
  br label %5792

5792:                                             ; preds = %5791, %5718
  br label %5793

5793:                                             ; preds = %5792
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  %5796 = load ptr, ptr %6, align 8, !tbaa !5
  %5797 = getelementptr inbounds %struct.http_parser, ptr %5796, i32 0, i32 5
  %5798 = load i32, ptr %5797, align 4
  %5799 = lshr i32 %5798, 24
  %5800 = and i32 %5799, 127
  %5801 = icmp eq i32 %5800, 0
  br i1 %5801, label %5802, label %5803

5802:                                             ; preds = %5795
  br label %5804

5803:                                             ; preds = %5795
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2123, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5804:                                             ; preds = %5802
  %5805 = load ptr, ptr %15, align 8, !tbaa !5
  %5806 = icmp ne ptr %5805, null
  br i1 %5806, label %5807, label %5878

5807:                                             ; preds = %5804
  %5808 = load ptr, ptr %7, align 8, !tbaa !5
  %5809 = getelementptr inbounds %struct.http_parser_settings, ptr %5808, i32 0, i32 4
  %5810 = load ptr, ptr %5809, align 8, !tbaa !28
  %5811 = icmp ne ptr %5810, null
  %5812 = xor i1 %5811, true
  %5813 = xor i1 %5812, true
  %5814 = zext i1 %5813 to i32
  %5815 = sext i32 %5814 to i64
  %5816 = call i64 @llvm.expect.i64(i64 %5815, i64 1)
  %5817 = icmp ne i64 %5816, 0
  br i1 %5817, label %5818, label %5877

5818:                                             ; preds = %5807
  %5819 = load i32, ptr %19, align 4, !tbaa !11
  %5820 = load ptr, ptr %6, align 8, !tbaa !5
  %5821 = load i32, ptr %5820, align 8
  %5822 = and i32 %5819, 127
  %5823 = shl i32 %5822, 10
  %5824 = and i32 %5821, -130049
  %5825 = or i32 %5824, %5823
  store i32 %5825, ptr %5820, align 8
  %5826 = load ptr, ptr %7, align 8, !tbaa !5
  %5827 = getelementptr inbounds %struct.http_parser_settings, ptr %5826, i32 0, i32 4
  %5828 = load ptr, ptr %5827, align 8, !tbaa !28
  %5829 = load ptr, ptr %6, align 8, !tbaa !5
  %5830 = load ptr, ptr %15, align 8, !tbaa !5
  %5831 = load ptr, ptr %13, align 8, !tbaa !5
  %5832 = load ptr, ptr %15, align 8, !tbaa !5
  %5833 = ptrtoint ptr %5831 to i64
  %5834 = ptrtoint ptr %5832 to i64
  %5835 = sub i64 %5833, %5834
  %5836 = call i32 %5828(ptr noundef %5829, ptr noundef %5830, i64 noundef %5835)
  %5837 = icmp ne i32 0, %5836
  %5838 = xor i1 %5837, true
  %5839 = xor i1 %5838, true
  %5840 = zext i1 %5839 to i32
  %5841 = sext i32 %5840 to i64
  %5842 = call i64 @llvm.expect.i64(i64 %5841, i64 0)
  %5843 = icmp ne i64 %5842, 0
  br i1 %5843, label %5844, label %5853

5844:                                             ; preds = %5818
  br label %5845

5845:                                             ; preds = %5844
  %5846 = load ptr, ptr %6, align 8, !tbaa !5
  %5847 = getelementptr inbounds %struct.http_parser, ptr %5846, i32 0, i32 5
  %5848 = load i32, ptr %5847, align 4
  %5849 = and i32 %5848, -2130706433
  %5850 = or i32 %5849, 67108864
  store i32 %5850, ptr %5847, align 4
  br label %5851

5851:                                             ; preds = %5845
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

5853:                                             ; preds = %5852, %5818
  %5854 = load ptr, ptr %6, align 8, !tbaa !5
  %5855 = load i32, ptr %5854, align 8
  %5856 = lshr i32 %5855, 10
  %5857 = and i32 %5856, 127
  store i32 %5857, ptr %19, align 4, !tbaa !11
  %5858 = load ptr, ptr %6, align 8, !tbaa !5
  %5859 = getelementptr inbounds %struct.http_parser, ptr %5858, i32 0, i32 5
  %5860 = load i32, ptr %5859, align 4
  %5861 = lshr i32 %5860, 24
  %5862 = and i32 %5861, 127
  %5863 = icmp ne i32 %5862, 0
  %5864 = xor i1 %5863, true
  %5865 = xor i1 %5864, true
  %5866 = zext i1 %5865 to i32
  %5867 = sext i32 %5866 to i64
  %5868 = call i64 @llvm.expect.i64(i64 %5867, i64 0)
  %5869 = icmp ne i64 %5868, 0
  br i1 %5869, label %5870, label %5876

5870:                                             ; preds = %5853
  %5871 = load ptr, ptr %13, align 8, !tbaa !5
  %5872 = load ptr, ptr %8, align 8, !tbaa !5
  %5873 = ptrtoint ptr %5871 to i64
  %5874 = ptrtoint ptr %5872 to i64
  %5875 = sub i64 %5873, %5874
  store i64 %5875, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5876:                                             ; preds = %5853
  br label %5877

5877:                                             ; preds = %5876, %5807
  store ptr null, ptr %15, align 8, !tbaa !5
  br label %5878

5878:                                             ; preds = %5877, %5804
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

5881:                                             ; preds = %5880
  %5882 = load ptr, ptr %6, align 8, !tbaa !5
  %5883 = getelementptr inbounds %struct.http_parser, ptr %5882, i32 0, i32 5
  %5884 = load i32, ptr %5883, align 4
  %5885 = lshr i32 %5884, 24
  %5886 = and i32 %5885, 127
  %5887 = icmp eq i32 %5886, 0
  br i1 %5887, label %5888, label %5889

5888:                                             ; preds = %5881
  br label %5890

5889:                                             ; preds = %5881
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2124, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5890:                                             ; preds = %5888
  %5891 = load ptr, ptr %16, align 8, !tbaa !5
  %5892 = icmp ne ptr %5891, null
  br i1 %5892, label %5893, label %5964

5893:                                             ; preds = %5890
  %5894 = load ptr, ptr %7, align 8, !tbaa !5
  %5895 = getelementptr inbounds %struct.http_parser_settings, ptr %5894, i32 0, i32 1
  %5896 = load ptr, ptr %5895, align 8, !tbaa !24
  %5897 = icmp ne ptr %5896, null
  %5898 = xor i1 %5897, true
  %5899 = xor i1 %5898, true
  %5900 = zext i1 %5899 to i32
  %5901 = sext i32 %5900 to i64
  %5902 = call i64 @llvm.expect.i64(i64 %5901, i64 1)
  %5903 = icmp ne i64 %5902, 0
  br i1 %5903, label %5904, label %5963

5904:                                             ; preds = %5893
  %5905 = load i32, ptr %19, align 4, !tbaa !11
  %5906 = load ptr, ptr %6, align 8, !tbaa !5
  %5907 = load i32, ptr %5906, align 8
  %5908 = and i32 %5905, 127
  %5909 = shl i32 %5908, 10
  %5910 = and i32 %5907, -130049
  %5911 = or i32 %5910, %5909
  store i32 %5911, ptr %5906, align 8
  %5912 = load ptr, ptr %7, align 8, !tbaa !5
  %5913 = getelementptr inbounds %struct.http_parser_settings, ptr %5912, i32 0, i32 1
  %5914 = load ptr, ptr %5913, align 8, !tbaa !24
  %5915 = load ptr, ptr %6, align 8, !tbaa !5
  %5916 = load ptr, ptr %16, align 8, !tbaa !5
  %5917 = load ptr, ptr %13, align 8, !tbaa !5
  %5918 = load ptr, ptr %16, align 8, !tbaa !5
  %5919 = ptrtoint ptr %5917 to i64
  %5920 = ptrtoint ptr %5918 to i64
  %5921 = sub i64 %5919, %5920
  %5922 = call i32 %5914(ptr noundef %5915, ptr noundef %5916, i64 noundef %5921)
  %5923 = icmp ne i32 0, %5922
  %5924 = xor i1 %5923, true
  %5925 = xor i1 %5924, true
  %5926 = zext i1 %5925 to i32
  %5927 = sext i32 %5926 to i64
  %5928 = call i64 @llvm.expect.i64(i64 %5927, i64 0)
  %5929 = icmp ne i64 %5928, 0
  br i1 %5929, label %5930, label %5939

5930:                                             ; preds = %5904
  br label %5931

5931:                                             ; preds = %5930
  %5932 = load ptr, ptr %6, align 8, !tbaa !5
  %5933 = getelementptr inbounds %struct.http_parser, ptr %5932, i32 0, i32 5
  %5934 = load i32, ptr %5933, align 4
  %5935 = and i32 %5934, -2130706433
  %5936 = or i32 %5935, 33554432
  store i32 %5936, ptr %5933, align 4
  br label %5937

5937:                                             ; preds = %5931
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

5939:                                             ; preds = %5938, %5904
  %5940 = load ptr, ptr %6, align 8, !tbaa !5
  %5941 = load i32, ptr %5940, align 8
  %5942 = lshr i32 %5941, 10
  %5943 = and i32 %5942, 127
  store i32 %5943, ptr %19, align 4, !tbaa !11
  %5944 = load ptr, ptr %6, align 8, !tbaa !5
  %5945 = getelementptr inbounds %struct.http_parser, ptr %5944, i32 0, i32 5
  %5946 = load i32, ptr %5945, align 4
  %5947 = lshr i32 %5946, 24
  %5948 = and i32 %5947, 127
  %5949 = icmp ne i32 %5948, 0
  %5950 = xor i1 %5949, true
  %5951 = xor i1 %5950, true
  %5952 = zext i1 %5951 to i32
  %5953 = sext i32 %5952 to i64
  %5954 = call i64 @llvm.expect.i64(i64 %5953, i64 0)
  %5955 = icmp ne i64 %5954, 0
  br i1 %5955, label %5956, label %5962

5956:                                             ; preds = %5939
  %5957 = load ptr, ptr %13, align 8, !tbaa !5
  %5958 = load ptr, ptr %8, align 8, !tbaa !5
  %5959 = ptrtoint ptr %5957 to i64
  %5960 = ptrtoint ptr %5958 to i64
  %5961 = sub i64 %5959, %5960
  store i64 %5961, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

5962:                                             ; preds = %5939
  br label %5963

5963:                                             ; preds = %5962, %5893
  store ptr null, ptr %16, align 8, !tbaa !5
  br label %5964

5964:                                             ; preds = %5963, %5890
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  br label %5967

5967:                                             ; preds = %5966
  %5968 = load ptr, ptr %6, align 8, !tbaa !5
  %5969 = getelementptr inbounds %struct.http_parser, ptr %5968, i32 0, i32 5
  %5970 = load i32, ptr %5969, align 4
  %5971 = lshr i32 %5970, 24
  %5972 = and i32 %5971, 127
  %5973 = icmp eq i32 %5972, 0
  br i1 %5973, label %5974, label %5975

5974:                                             ; preds = %5967
  br label %5976

5975:                                             ; preds = %5967
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2125, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

5976:                                             ; preds = %5974
  %5977 = load ptr, ptr %17, align 8, !tbaa !5
  %5978 = icmp ne ptr %5977, null
  br i1 %5978, label %5979, label %6050

5979:                                             ; preds = %5976
  %5980 = load ptr, ptr %7, align 8, !tbaa !5
  %5981 = getelementptr inbounds %struct.http_parser_settings, ptr %5980, i32 0, i32 6
  %5982 = load ptr, ptr %5981, align 8, !tbaa !32
  %5983 = icmp ne ptr %5982, null
  %5984 = xor i1 %5983, true
  %5985 = xor i1 %5984, true
  %5986 = zext i1 %5985 to i32
  %5987 = sext i32 %5986 to i64
  %5988 = call i64 @llvm.expect.i64(i64 %5987, i64 1)
  %5989 = icmp ne i64 %5988, 0
  br i1 %5989, label %5990, label %6049

5990:                                             ; preds = %5979
  %5991 = load i32, ptr %19, align 4, !tbaa !11
  %5992 = load ptr, ptr %6, align 8, !tbaa !5
  %5993 = load i32, ptr %5992, align 8
  %5994 = and i32 %5991, 127
  %5995 = shl i32 %5994, 10
  %5996 = and i32 %5993, -130049
  %5997 = or i32 %5996, %5995
  store i32 %5997, ptr %5992, align 8
  %5998 = load ptr, ptr %7, align 8, !tbaa !5
  %5999 = getelementptr inbounds %struct.http_parser_settings, ptr %5998, i32 0, i32 6
  %6000 = load ptr, ptr %5999, align 8, !tbaa !32
  %6001 = load ptr, ptr %6, align 8, !tbaa !5
  %6002 = load ptr, ptr %17, align 8, !tbaa !5
  %6003 = load ptr, ptr %13, align 8, !tbaa !5
  %6004 = load ptr, ptr %17, align 8, !tbaa !5
  %6005 = ptrtoint ptr %6003 to i64
  %6006 = ptrtoint ptr %6004 to i64
  %6007 = sub i64 %6005, %6006
  %6008 = call i32 %6000(ptr noundef %6001, ptr noundef %6002, i64 noundef %6007)
  %6009 = icmp ne i32 0, %6008
  %6010 = xor i1 %6009, true
  %6011 = xor i1 %6010, true
  %6012 = zext i1 %6011 to i32
  %6013 = sext i32 %6012 to i64
  %6014 = call i64 @llvm.expect.i64(i64 %6013, i64 0)
  %6015 = icmp ne i64 %6014, 0
  br i1 %6015, label %6016, label %6025

6016:                                             ; preds = %5990
  br label %6017

6017:                                             ; preds = %6016
  %6018 = load ptr, ptr %6, align 8, !tbaa !5
  %6019 = getelementptr inbounds %struct.http_parser, ptr %6018, i32 0, i32 5
  %6020 = load i32, ptr %6019, align 4
  %6021 = and i32 %6020, -2130706433
  %6022 = or i32 %6021, 100663296
  store i32 %6022, ptr %6019, align 4
  br label %6023

6023:                                             ; preds = %6017
  br label %6024

6024:                                             ; preds = %6023
  br label %6025

6025:                                             ; preds = %6024, %5990
  %6026 = load ptr, ptr %6, align 8, !tbaa !5
  %6027 = load i32, ptr %6026, align 8
  %6028 = lshr i32 %6027, 10
  %6029 = and i32 %6028, 127
  store i32 %6029, ptr %19, align 4, !tbaa !11
  %6030 = load ptr, ptr %6, align 8, !tbaa !5
  %6031 = getelementptr inbounds %struct.http_parser, ptr %6030, i32 0, i32 5
  %6032 = load i32, ptr %6031, align 4
  %6033 = lshr i32 %6032, 24
  %6034 = and i32 %6033, 127
  %6035 = icmp ne i32 %6034, 0
  %6036 = xor i1 %6035, true
  %6037 = xor i1 %6036, true
  %6038 = zext i1 %6037 to i32
  %6039 = sext i32 %6038 to i64
  %6040 = call i64 @llvm.expect.i64(i64 %6039, i64 0)
  %6041 = icmp ne i64 %6040, 0
  br i1 %6041, label %6042, label %6048

6042:                                             ; preds = %6025
  %6043 = load ptr, ptr %13, align 8, !tbaa !5
  %6044 = load ptr, ptr %8, align 8, !tbaa !5
  %6045 = ptrtoint ptr %6043 to i64
  %6046 = ptrtoint ptr %6044 to i64
  %6047 = sub i64 %6045, %6046
  store i64 %6047, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

6048:                                             ; preds = %6025
  br label %6049

6049:                                             ; preds = %6048, %5979
  store ptr null, ptr %17, align 8, !tbaa !5
  br label %6050

6050:                                             ; preds = %6049, %5976
  br label %6051

6051:                                             ; preds = %6050
  br label %6052

6052:                                             ; preds = %6051
  br label %6053

6053:                                             ; preds = %6052
  %6054 = load ptr, ptr %6, align 8, !tbaa !5
  %6055 = getelementptr inbounds %struct.http_parser, ptr %6054, i32 0, i32 5
  %6056 = load i32, ptr %6055, align 4
  %6057 = lshr i32 %6056, 24
  %6058 = and i32 %6057, 127
  %6059 = icmp eq i32 %6058, 0
  br i1 %6059, label %6060, label %6061

6060:                                             ; preds = %6053
  br label %6062

6061:                                             ; preds = %6053
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 2126, ptr noundef @__PRETTY_FUNCTION__.http_parser_execute) #6
  unreachable

6062:                                             ; preds = %6060
  %6063 = load ptr, ptr %18, align 8, !tbaa !5
  %6064 = icmp ne ptr %6063, null
  br i1 %6064, label %6065, label %6136

6065:                                             ; preds = %6062
  %6066 = load ptr, ptr %7, align 8, !tbaa !5
  %6067 = getelementptr inbounds %struct.http_parser_settings, ptr %6066, i32 0, i32 2
  %6068 = load ptr, ptr %6067, align 8, !tbaa !23
  %6069 = icmp ne ptr %6068, null
  %6070 = xor i1 %6069, true
  %6071 = xor i1 %6070, true
  %6072 = zext i1 %6071 to i32
  %6073 = sext i32 %6072 to i64
  %6074 = call i64 @llvm.expect.i64(i64 %6073, i64 1)
  %6075 = icmp ne i64 %6074, 0
  br i1 %6075, label %6076, label %6135

6076:                                             ; preds = %6065
  %6077 = load i32, ptr %19, align 4, !tbaa !11
  %6078 = load ptr, ptr %6, align 8, !tbaa !5
  %6079 = load i32, ptr %6078, align 8
  %6080 = and i32 %6077, 127
  %6081 = shl i32 %6080, 10
  %6082 = and i32 %6079, -130049
  %6083 = or i32 %6082, %6081
  store i32 %6083, ptr %6078, align 8
  %6084 = load ptr, ptr %7, align 8, !tbaa !5
  %6085 = getelementptr inbounds %struct.http_parser_settings, ptr %6084, i32 0, i32 2
  %6086 = load ptr, ptr %6085, align 8, !tbaa !23
  %6087 = load ptr, ptr %6, align 8, !tbaa !5
  %6088 = load ptr, ptr %18, align 8, !tbaa !5
  %6089 = load ptr, ptr %13, align 8, !tbaa !5
  %6090 = load ptr, ptr %18, align 8, !tbaa !5
  %6091 = ptrtoint ptr %6089 to i64
  %6092 = ptrtoint ptr %6090 to i64
  %6093 = sub i64 %6091, %6092
  %6094 = call i32 %6086(ptr noundef %6087, ptr noundef %6088, i64 noundef %6093)
  %6095 = icmp ne i32 0, %6094
  %6096 = xor i1 %6095, true
  %6097 = xor i1 %6096, true
  %6098 = zext i1 %6097 to i32
  %6099 = sext i32 %6098 to i64
  %6100 = call i64 @llvm.expect.i64(i64 %6099, i64 0)
  %6101 = icmp ne i64 %6100, 0
  br i1 %6101, label %6102, label %6111

6102:                                             ; preds = %6076
  br label %6103

6103:                                             ; preds = %6102
  %6104 = load ptr, ptr %6, align 8, !tbaa !5
  %6105 = getelementptr inbounds %struct.http_parser, ptr %6104, i32 0, i32 5
  %6106 = load i32, ptr %6105, align 4
  %6107 = and i32 %6106, -2130706433
  %6108 = or i32 %6107, 134217728
  store i32 %6108, ptr %6105, align 4
  br label %6109

6109:                                             ; preds = %6103
  br label %6110

6110:                                             ; preds = %6109
  br label %6111

6111:                                             ; preds = %6110, %6076
  %6112 = load ptr, ptr %6, align 8, !tbaa !5
  %6113 = load i32, ptr %6112, align 8
  %6114 = lshr i32 %6113, 10
  %6115 = and i32 %6114, 127
  store i32 %6115, ptr %19, align 4, !tbaa !11
  %6116 = load ptr, ptr %6, align 8, !tbaa !5
  %6117 = getelementptr inbounds %struct.http_parser, ptr %6116, i32 0, i32 5
  %6118 = load i32, ptr %6117, align 4
  %6119 = lshr i32 %6118, 24
  %6120 = and i32 %6119, 127
  %6121 = icmp ne i32 %6120, 0
  %6122 = xor i1 %6121, true
  %6123 = xor i1 %6122, true
  %6124 = zext i1 %6123 to i32
  %6125 = sext i32 %6124 to i64
  %6126 = call i64 @llvm.expect.i64(i64 %6125, i64 0)
  %6127 = icmp ne i64 %6126, 0
  br i1 %6127, label %6128, label %6134

6128:                                             ; preds = %6111
  %6129 = load ptr, ptr %13, align 8, !tbaa !5
  %6130 = load ptr, ptr %8, align 8, !tbaa !5
  %6131 = ptrtoint ptr %6129 to i64
  %6132 = ptrtoint ptr %6130 to i64
  %6133 = sub i64 %6131, %6132
  store i64 %6133, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

6134:                                             ; preds = %6111
  br label %6135

6135:                                             ; preds = %6134, %6065
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %6136

6136:                                             ; preds = %6135, %6062
  br label %6137

6137:                                             ; preds = %6136
  br label %6138

6138:                                             ; preds = %6137
  br label %6139

6139:                                             ; preds = %6138
  %6140 = load i32, ptr %19, align 4, !tbaa !11
  %6141 = load ptr, ptr %6, align 8, !tbaa !5
  %6142 = load i32, ptr %6141, align 8
  %6143 = and i32 %6140, 127
  %6144 = shl i32 %6143, 10
  %6145 = and i32 %6142, -130049
  %6146 = or i32 %6145, %6144
  store i32 %6146, ptr %6141, align 8
  %6147 = load i64, ptr %9, align 8, !tbaa !9
  store i64 %6147, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

6148:                                             ; No predecessors!
  br label %6149

6149:                                             ; preds = %6148
  br label %6150

6150:                                             ; preds = %6149, %5592, %5479, %5280, %5241, %5162, %4845, %4272, %4163, %3992, %3917, %3897, %3099, %3001, %2438, %2404, %2384, %2348, %2305, %2278, %2242, %2204, %2176, %2159, %2142, %2125, %2110, %2095, %1884, %1863, %1850, %1807, %1213, %1102, %1052, %829, %786, %753, %730, %694, %656, %629, %593, %564, %536, %519, %502, %485, %393, %358, %227, %195
  %6151 = load ptr, ptr %6, align 8, !tbaa !5
  %6152 = getelementptr inbounds %struct.http_parser, ptr %6151, i32 0, i32 5
  %6153 = load i32, ptr %6152, align 4
  %6154 = lshr i32 %6153, 24
  %6155 = and i32 %6154, 127
  %6156 = icmp eq i32 %6155, 0
  br i1 %6156, label %6157, label %6166

6157:                                             ; preds = %6150
  br label %6158

6158:                                             ; preds = %6157
  %6159 = load ptr, ptr %6, align 8, !tbaa !5
  %6160 = getelementptr inbounds %struct.http_parser, ptr %6159, i32 0, i32 5
  %6161 = load i32, ptr %6160, align 4
  %6162 = and i32 %6161, -2130706433
  %6163 = or i32 %6162, 536870912
  store i32 %6163, ptr %6160, align 4
  br label %6164

6164:                                             ; preds = %6158
  br label %6165

6165:                                             ; preds = %6164
  br label %6166

6166:                                             ; preds = %6165, %6150
  br label %6167

6167:                                             ; preds = %6166
  %6168 = load i32, ptr %19, align 4, !tbaa !11
  %6169 = load ptr, ptr %6, align 8, !tbaa !5
  %6170 = load i32, ptr %6169, align 8
  %6171 = and i32 %6168, 127
  %6172 = shl i32 %6171, 10
  %6173 = and i32 %6170, -130049
  %6174 = or i32 %6173, %6172
  store i32 %6174, ptr %6169, align 8
  %6175 = load ptr, ptr %13, align 8, !tbaa !5
  %6176 = load ptr, ptr %8, align 8, !tbaa !5
  %6177 = ptrtoint ptr %6175 to i64
  %6178 = ptrtoint ptr %6176 to i64
  %6179 = sub i64 %6177, %6178
  store i64 %6179, ptr %5, align 8
  store i32 1, ptr %21, align 4
  br label %6182

6180:                                             ; No predecessors!
  br label %6181

6181:                                             ; preds = %6180
  store i32 0, ptr %21, align 4
  br label %6182

6182:                                             ; preds = %6181, %6167, %6139, %6128, %6042, %5956, %5870, %5784, %5664, %5558, %5369, %5241, %5107, %5090, %4995, %4845, %4351, %4327, %4240, %4139, %3897, %3001, %2063, %1966, %1807, %1281, %1026, %934, %461, %314, %140, %131, %130, %121, %48
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  %6183 = load i32, ptr %21, align 4
  switch i32 %6183, label %6186 [
    i32 0, label %6184
    i32 1, label %6184
  ]

6184:                                             ; preds = %6182, %6182
  %6185 = load i64, ptr %5, align 8
  ret i64 %6185

6186:                                             ; preds = %6182
  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 willreturn memory(read)
declare ptr @memchr(ptr noundef, i32 noundef, i64 noundef) #4

; 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 willreturn memory(read) "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 #5 = { nounwind }
attributes #6 = { noreturn nounwind }
attributes #7 = { nounwind willreturn memory(read) }

!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, !6, i64 56}
!14 = !{!"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}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !12, i64 4}
!17 = !{!"http_parser", !12, i64 0, !12, i64 0, !12, i64 1, !12, i64 2, !12, i64 3, !12, i64 3, !12, i64 4, !10, i64 8, !18, i64 16, !18, i64 18, !12, i64 20, !12, i64 22, !12, i64 23, !12, i64 23, !6, i64 24}
!18 = !{!"short", !7, i64 0}
!19 = !{!17, !10, i64 8}
!20 = !{!14, !6, i64 0}
!21 = !{!17, !18, i64 16}
!22 = !{!17, !18, i64 18}
!23 = !{!14, !6, i64 16}
!24 = !{!14, !6, i64 8}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!14, !6, i64 24}
!28 = !{!14, !6, i64 32}
!29 = distinct !{!29, !26}
!30 = !{!14, !6, i64 72}
!31 = !{!14, !6, i64 40}
!32 = !{!14, !6, i64 48}
!33 = !{!14, !6, i64 64}
!34 = distinct !{!34, !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 [92 x i8], align 1
@__PRETTY_FUNCTION__.http_parser_execute = external hidden unnamed_addr constant [94 x i8], align 1
@method_strings = external hidden local_unnamed_addr global [33 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 [19 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
@switch.table.http_parser_execute.1 = private unnamed_addr constant [4 x i32] [i32 4, 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
  %6 = lshr i32 %5, 10
  %7 = and i32 %6, 127
  %8 = getelementptr inbounds i8, ptr %0, i64 20
  %9 = load i32, ptr %8, align 4
  %10 = and i32 %9, 2130706432
  %.not = icmp eq i32 %10, 0
  br i1 %.not, label %11, label %.thread1468

11:                                               ; preds = %4
  %12 = icmp eq i64 %3, 0
  br i1 %12, label %13, label %28

13:                                               ; preds = %11
  switch i32 %7, label %26 [
    i32 61, label %14
    i32 1, label %.thread1468
    i32 2, label %.thread1468
    i32 4, label %.thread1468
    i32 18, label %.thread1468
  ]

14:                                               ; preds = %13
  %15 = getelementptr inbounds i8, ptr %1, i64 56
  %16 = load ptr, ptr %15, align 8, !tbaa !5
  %.not1401 = icmp eq ptr %16, null
  br i1 %.not1401, label %.thread1468, label %17, !prof !10

17:                                               ; preds = %14
  %18 = and i32 %5, -130049
  %19 = or disjoint i32 %18, 62464
  store i32 %19, ptr %0, align 8
  %20 = load ptr, ptr %15, align 8, !tbaa !5
  %21 = tail call i32 %20(ptr noundef nonnull %0) #4
  %.not1402 = icmp eq i32 %21, 0
  br i1 %.not1402, label %.thread1468, label %22, !prof !11

22:                                               ; preds = %17
  %23 = load i32, ptr %8, align 4
  %24 = and i32 %23, -2130706433
  %25 = or disjoint i32 %24, 117440512
  store i32 %25, ptr %8, align 4
  br label %.thread1468

26:                                               ; preds = %13
  %27 = or disjoint i32 %9, 184549376
  store i32 %27, ptr %8, align 4
  br label %.thread1468

28:                                               ; preds = %11
  %29 = icmp eq i32 %7, 43
  %spec.select = select i1 %29, ptr %2, ptr null
  %30 = icmp eq i32 %7, 48
  %.01127 = select i1 %30, ptr %2, ptr null
  switch i32 %7, label %.lr.ph2929 [
    i32 27, label %31
    i32 21, label %31
    i32 22, label %31
    i32 23, label %31
    i32 24, label %31
    i32 25, label %31
    i32 26, label %31
    i32 28, label %31
    i32 29, label %31
    i32 30, label %31
    i32 31, label %31
    i32 16, label %32
  ]

31:                                               ; preds = %28, %28, %28, %28, %28, %28, %28, %28, %28, %28, %28
  br label %.lr.ph2929

32:                                               ; preds = %28
  br label %.lr.ph2929

.lr.ph2929:                                       ; preds = %31, %32, %28
  %.01156 = phi ptr [ null, %28 ], [ %2, %32 ], [ null, %31 ]
  %.01137 = phi ptr [ null, %28 ], [ null, %32 ], [ %2, %31 ]
  %33 = getelementptr inbounds i8, ptr %2, i64 %3
  %34 = getelementptr inbounds i8, ptr %0, i64 4
  %35 = getelementptr inbounds i8, ptr %0, i64 8
  %36 = ptrtoint ptr %33 to i64
  %37 = getelementptr inbounds i8, ptr %1, i64 48
  %38 = getelementptr inbounds i8, ptr %1, i64 72
  %39 = getelementptr inbounds i8, ptr %1, i64 40
  %40 = getelementptr inbounds i8, ptr %1, i64 32
  %41 = icmp slt i32 %5, 0
  %42 = getelementptr inbounds i8, ptr %1, i64 64
  %43 = getelementptr inbounds i8, ptr %1, i64 56
  %44 = getelementptr inbounds i8, ptr %33, 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.ph2929, %.thread1441
  %.011112927 = phi ptr [ %2, %.lr.ph2929 ], [ %1713, %.thread1441 ]
  %.111202925 = phi ptr [ %spec.select, %.lr.ph2929 ], [ %.51124, %.thread1441 ]
  %.111282924 = phi ptr [ %.01127, %.lr.ph2929 ], [ %.91136, %.thread1441 ]
  %.111382922 = phi ptr [ %.01137, %.lr.ph2929 ], [ %.31140, %.thread1441 ]
  %.011412921 = phi ptr [ null, %.lr.ph2929 ], [ %.71148, %.thread1441 ]
  %.111572919 = phi ptr [ %.01156, %.lr.ph2929 ], [ %.31159, %.thread1441 ]
  %.011602918 = phi i32 [ %7, %.lr.ph2929 ], [ %.34, %.thread1441 ]
  %51 = load i8, ptr %.011112927, align 1, !tbaa !12
  %52 = icmp ult i32 %.011602918, 57
  br i1 %52, label %53, label %.backedge.preheader

.backedge.preheader:                              ; preds = %53, %50
  br label %.backedge

53:                                               ; preds = %50
  %54 = load i32, ptr %34, align 4, !tbaa !13
  %55 = add i32 %54, 1
  store i32 %55, ptr %34, align 4, !tbaa !13
  %56 = icmp ugt i32 %55, 81920
  br i1 %56, label %57, label %.backedge.preheader, !prof !10

57:                                               ; preds = %53
  %58 = load i32, ptr %8, align 4
  %59 = and i32 %58, -2130706433
  %60 = or disjoint i32 %59, 201326592
  store i32 %60, ptr %8, align 4
  br label %.thread

.backedge:                                        ; preds = %.backedge.backedge, %.backedge.preheader
  %.11161 = phi i32 [ %.011602918, %.backedge.preheader ], [ %.11161.be, %.backedge.backedge ]
  %.11142 = phi ptr [ %.011412921, %.backedge.preheader ], [ %.11142.be, %.backedge.backedge ]
  %.21129 = phi ptr [ %.111282924, %.backedge.preheader ], [ %.21129.be, %.backedge.backedge ]
  %.11112 = phi ptr [ %.011112927, %.backedge.preheader ], [ %.11112.be, %.backedge.backedge ]
  %.01105 = phi i8 [ %51, %.backedge.preheader ], [ %.01105.be, %.backedge.backedge ]
  switch i32 %.11161, label %1712 [
    i32 1, label %61
    i32 2, label %66
    i32 3, label %98
    i32 4, label %114
    i32 5, label %148
    i32 6, label %153
    i32 7, label %158
    i32 8, label %163
    i32 9, label %168
    i32 10, label %178
    i32 11, label %196
    i32 12, label %206
    i32 13, label %225
    i32 14, label %239
    i32 15, label %261
    i32 16, label %266
    i32 17, label %325
    i32 18, label %330
    i32 19, label %387
    i32 20, label %494
    i32 21, label %506
    i32 22, label %506
    i32 23, label %506
    i32 24, label %506
    i32 25, label %518
    i32 26, label %518
    i32 27, label %518
    i32 28, label %518
    i32 29, label %518
    i32 30, label %518
    i32 31, label %518
    i32 32, label %587
    i32 33, label %593
    i32 34, label %598
    i32 35, label %603
    i32 36, label %608
    i32 37, label %613
    i32 38, label %623
    i32 39, label %642
    i32 40, label %652
    i32 41, label %671
    i32 42, label %676
    i32 43, label %.preheader
    i32 44, label %894
    i32 47, label %.loopexit1536
    i32 48, label %932
    i32 50, label %1146
    i32 49, label %1151
    i32 45, label %1164
    i32 46, label %1169
    i32 55, label %1206
    i32 56, label %1280
    i32 60, label %1453
    i32 61, label %1490
    i32 62, label %1491
    i32 51, label %1536
    i32 52, label %1555
    i32 53, label %1578
    i32 54, label %1584
    i32 57, label %1625
    i32 58, label %1638
    i32 59, label %1678
  ]

.preheader:                                       ; preds = %.backedge
  %.not13442912 = icmp eq ptr %.11112, %33
  br i1 %.not13442912, label %._crit_edge, label %.lr.ph2915

61:                                               ; preds = %.backedge
  switch i8 %.01105, label %62 [
    i8 13, label %.thread1441
    i8 10, label %.thread1441
  ]

62:                                               ; preds = %61
  %63 = load i32, ptr %8, align 4
  %64 = and i32 %63, -2130706433
  %65 = or disjoint i32 %64, 218103808
  store i32 %65, ptr %8, align 4
  br label %.thread

66:                                               ; preds = %.backedge
  switch i8 %.01105, label %67 [
    i8 13, label %.thread1441
    i8 10, label %.thread1441
  ]

67:                                               ; preds = %66
  %68 = load i32, ptr %0, align 8
  %69 = and i32 %68, -1021
  store i32 %69, ptr %0, align 8
  store i64 -1, ptr %35, align 8, !tbaa !18
  %70 = icmp eq i8 %.01105, 72
  br i1 %70, label %71, label %96

71:                                               ; preds = %67
  %72 = load i32, ptr %8, 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 731, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

76:                                               ; preds = %71
  %77 = load ptr, ptr %1, align 8, !tbaa !19
  %.not1398 = icmp eq ptr %77, null
  br i1 %.not1398, label %.thread1441, label %78, !prof !10

78:                                               ; preds = %76
  %79 = and i32 %68, -131069
  %80 = or disjoint i32 %79, 3072
  store i32 %80, ptr %0, align 8
  %81 = load ptr, ptr %1, align 8, !tbaa !19
  %82 = tail call i32 %81(ptr noundef nonnull %0) #4
  %.not1399 = icmp eq i32 %82, 0
  %.pre3729 = load i32, ptr %8, align 4
  br i1 %.not1399, label %86, label %83, !prof !11

83:                                               ; preds = %78
  %84 = and i32 %.pre3729, -2130706433
  %85 = or disjoint i32 %84, 16777216
  store i32 %85, ptr %8, align 4
  br label %86

86:                                               ; preds = %83, %78
  %87 = phi i32 [ %85, %83 ], [ %.pre3729, %78 ]
  %88 = load i32, ptr %0, align 8
  %89 = lshr i32 %88, 10
  %90 = and i32 %89, 127
  %91 = and i32 %87, 2130706432
  %.not1400 = icmp eq i32 %91, 0
  br i1 %.not1400, label %.thread1441, label %92, !prof !11

92:                                               ; preds = %86
  %93 = ptrtoint ptr %.11112 to i64
  %94 = ptrtoint ptr %2 to i64
  %reass.sub2956 = sub i64 %93, %94
  %95 = add i64 %reass.sub2956, 1
  br label %.thread1468

96:                                               ; preds = %67
  %97 = and i32 %68, -1024
  br label %.backedge.sink.split

.backedge.sink.split:                             ; preds = %96, %1162, %1160, %1158, %1156
  %.sink = phi i32 [ %1157, %1156 ], [ %1159, %1158 ], [ %1161, %1160 ], [ %1163, %1162 ], [ %97, %96 ]
  %.11161.be.ph = phi i32 [ 42, %1156 ], [ 42, %1158 ], [ 42, %1160 ], [ 42, %1162 ], [ 18, %96 ]
  store i32 %.sink, ptr %0, align 8
  br label %.backedge.backedge

.backedge.backedge:                               ; preds = %.backedge.sink.split, %1468, %1482, %1467, %1219, %1229, %1183, %1197, %1184, %1152, %1151, %1151, %992, %1004, %991, %1270, %676
  %.11161.be = phi i32 [ 56, %1270 ], [ 55, %676 ], [ 50, %991 ], [ %1008, %1004 ], [ 50, %992 ], [ 47, %1151 ], [ 47, %1151 ], [ 42, %1152 ], [ 42, %1183 ], [ %1201, %1197 ], [ 42, %1184 ], [ %1233, %1229 ], [ 62, %1219 ], [ 62, %1467 ], [ %1486, %1482 ], [ 62, %1468 ], [ %.11161.be.ph, %.backedge.sink.split ]
  %.11142.be = phi ptr [ %.11142, %1270 ], [ %.11142, %676 ], [ %.11142, %991 ], [ %.11142, %1004 ], [ %.11142, %992 ], [ %.11142, %1151 ], [ %.11142, %1151 ], [ %.11142, %1152 ], [ %.11142, %1183 ], [ %.11142, %1197 ], [ %.11142, %1184 ], [ %.11142, %1229 ], [ %.11142, %1219 ], [ null, %1467 ], [ null, %1482 ], [ null, %1468 ], [ %.11142, %.backedge.sink.split ]
  %.21129.be = phi ptr [ %.21129, %1270 ], [ %.21129, %676 ], [ null, %991 ], [ null, %1004 ], [ null, %992 ], [ %.21129, %1151 ], [ %.21129, %1151 ], [ %.21129, %1152 ], [ null, %1183 ], [ null, %1197 ], [ null, %1184 ], [ %.21129, %1229 ], [ %.21129, %1219 ], [ %.21129, %1467 ], [ %.21129, %1482 ], [ %.21129, %1468 ], [ %.21129, %.backedge.sink.split ]
  %.11112.be = phi ptr [ %.11112, %1270 ], [ %.11112, %676 ], [ %.411152898, %991 ], [ %.411152898, %1004 ], [ %.411152898, %992 ], [ %.11112, %1151 ], [ %.11112, %1151 ], [ %.11112, %1152 ], [ %.11112, %1183 ], [ %.11112, %1197 ], [ %.11112, %1184 ], [ %.11112, %1229 ], [ %.11112, %1219 ], [ %1461, %1467 ], [ %1461, %1482 ], [ %1461, %1468 ], [ %.11112, %.backedge.sink.split ]
  %.01105.be = phi i8 [ 10, %1270 ], [ %.01105, %676 ], [ 10, %991 ], [ 10, %1004 ], [ 10, %992 ], [ %.01105, %1151 ], [ %.01105, %1151 ], [ %.01105, %1152 ], [ %.01105, %1183 ], [ %.01105, %1197 ], [ %.01105, %1184 ], [ 10, %1229 ], [ 10, %1219 ], [ %.01105, %1467 ], [ %.01105, %1482 ], [ %.01105, %1468 ], [ %.01105, %.backedge.sink.split ]
  br label %.backedge

98:                                               ; preds = %.backedge
  switch i8 %.01105, label %103 [
    i8 84, label %99
    i8 69, label %107
  ], !prof !20

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 %.thread1441

103:                                              ; preds = %98
  %104 = load i32, ptr %8, align 4
  %105 = and i32 %104, -2130706433
  %106 = or disjoint i32 %105, 469762048
  store i32 %106, ptr %8, align 4
  br label %.thread

107:                                              ; preds = %98
  %108 = load i32, ptr %0, align 8
  %109 = load i32, ptr %8, align 4
  %110 = and i32 %109, -16711681
  %111 = or disjoint i32 %110, 131072
  store i32 %111, ptr %8, align 4
  %112 = and i32 %108, -2130706436
  %113 = or disjoint i32 %112, 33554432
  store i32 %113, ptr %0, align 8
  br label %.thread1441

114:                                              ; preds = %.backedge
  %115 = load i32, ptr %0, align 8
  %116 = and i32 %115, -1021
  store i32 %116, ptr %0, align 8
  store i64 -1, ptr %35, align 8, !tbaa !18
  switch i8 %.01105, label %118 [
    i8 72, label %117
    i8 13, label %122
    i8 10, label %122
  ]

117:                                              ; preds = %114
  br label %122

118:                                              ; preds = %114
  %119 = load i32, ptr %8, align 4
  %120 = and i32 %119, -2130706433
  %121 = or disjoint i32 %120, 469762048
  store i32 %121, ptr %8, align 4
  br label %.thread

122:                                              ; preds = %117, %114, %114
  %.21162 = phi i32 [ 4, %114 ], [ 4, %114 ], [ 5, %117 ]
  %123 = load i32, ptr %8, align 4
  %124 = and i32 %123, 2130706432
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %127, label %126

126:                                              ; preds = %122
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 777, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

127:                                              ; preds = %122
  %128 = load ptr, ptr %1, align 8, !tbaa !19
  %.not1394 = icmp eq ptr %128, null
  br i1 %.not1394, label %.thread1441, label %129, !prof !10

129:                                              ; preds = %127
  %130 = shl nuw nsw i32 %.21162, 10
  %131 = and i32 %115, -131069
  %132 = or disjoint i32 %130, %131
  store i32 %132, ptr %0, align 8
  %133 = load ptr, ptr %1, align 8, !tbaa !19
  %134 = tail call i32 %133(ptr noundef nonnull %0) #4
  %.not1395 = icmp eq i32 %134, 0
  %.pre3728 = load i32, ptr %8, align 4
  br i1 %.not1395, label %138, label %135, !prof !11

135:                                              ; preds = %129
  %136 = and i32 %.pre3728, -2130706433
  %137 = or disjoint i32 %136, 16777216
  store i32 %137, ptr %8, align 4
  br label %138

138:                                              ; preds = %135, %129
  %139 = phi i32 [ %137, %135 ], [ %.pre3728, %129 ]
  %140 = load i32, ptr %0, align 8
  %141 = lshr i32 %140, 10
  %142 = and i32 %141, 127
  %143 = and i32 %139, 2130706432
  %.not1396 = icmp eq i32 %143, 0
  br i1 %.not1396, label %.thread1441, label %144, !prof !11

144:                                              ; preds = %138
  %145 = ptrtoint ptr %.11112 to i64
  %146 = ptrtoint ptr %2 to i64
  %reass.sub2955 = sub i64 %145, %146
  %147 = add i64 %reass.sub2955, 1
  br label %.thread1468

148:                                              ; preds = %.backedge
  %.not1393 = icmp eq i8 %.01105, 84
  br i1 %.not1393, label %.thread1441, label %149

149:                                              ; preds = %148
  %150 = load i32, ptr %8, align 4
  %151 = and i32 %150, -2130706433
  %152 = or disjoint i32 %151, 503316480
  store i32 %152, ptr %8, align 4
  br label %.thread

153:                                              ; preds = %.backedge
  %.not1392 = icmp eq i8 %.01105, 84
  br i1 %.not1392, label %.thread1441, label %154

154:                                              ; preds = %153
  %155 = load i32, ptr %8, align 4
  %156 = and i32 %155, -2130706433
  %157 = or disjoint i32 %156, 503316480
  store i32 %157, ptr %8, align 4
  br label %.thread

158:                                              ; preds = %.backedge
  %.not1391 = icmp eq i8 %.01105, 80
  br i1 %.not1391, label %.thread1441, label %159

159:                                              ; preds = %158
  %160 = load i32, ptr %8, align 4
  %161 = and i32 %160, -2130706433
  %162 = or disjoint i32 %161, 503316480
  store i32 %162, ptr %8, align 4
  br label %.thread

163:                                              ; preds = %.backedge
  %.not1390 = icmp eq i8 %.01105, 47
  br i1 %.not1390, label %.thread1441, label %164

164:                                              ; preds = %163
  %165 = load i32, ptr %8, align 4
  %166 = and i32 %165, -2130706433
  %167 = or disjoint i32 %166, 503316480
  store i32 %167, ptr %8, align 4
  br label %.thread

168:                                              ; preds = %.backedge
  %169 = add i8 %.01105, -58
  %170 = icmp ult i8 %169, -10
  br i1 %170, label %171, label %175, !prof !10

171:                                              ; preds = %168
  %172 = load i32, ptr %8, align 4
  %173 = and i32 %172, -2130706433
  %174 = or disjoint i32 %173, 234881024
  store i32 %174, ptr %8, align 4
  br label %.thread

175:                                              ; preds = %168
  %176 = zext nneg i8 %.01105 to i16
  %177 = add nsw i16 %176, -48
  store i16 %177, ptr %47, align 8, !tbaa !21
  br label %.thread1441

178:                                              ; preds = %.backedge
  %179 = icmp eq i8 %.01105, 46
  br i1 %179, label %.thread1441, label %180

180:                                              ; preds = %178
  %181 = add i8 %.01105, -48
  %or.cond5 = icmp ult i8 %181, 10
  br i1 %or.cond5, label %186, label %182

182:                                              ; preds = %180
  %183 = load i32, ptr %8, align 4
  %184 = and i32 %183, -2130706433
  %185 = or disjoint i32 %184, 234881024
  store i32 %185, ptr %8, align 4
  br label %.thread

186:                                              ; preds = %180
  %187 = load i16, ptr %47, align 8, !tbaa !21
  %188 = mul i16 %187, 10
  %189 = zext nneg i8 %181 to i16
  %190 = add i16 %188, %189
  store i16 %190, ptr %47, align 8, !tbaa !21
  %191 = icmp ugt i16 %190, 999
  br i1 %191, label %192, label %.thread1441, !prof !10

192:                                              ; preds = %186
  %193 = load i32, ptr %8, align 4
  %194 = and i32 %193, -2130706433
  %195 = or disjoint i32 %194, 234881024
  store i32 %195, ptr %8, align 4
  br label %.thread

196:                                              ; preds = %.backedge
  %197 = add i8 %.01105, -58
  %198 = icmp ult i8 %197, -10
  br i1 %198, label %199, label %203, !prof !10

199:                                              ; preds = %196
  %200 = load i32, ptr %8, align 4
  %201 = and i32 %200, -2130706433
  %202 = or disjoint i32 %201, 234881024
  store i32 %202, ptr %8, align 4
  br label %.thread

203:                                              ; preds = %196
  %204 = zext nneg i8 %.01105 to i16
  %205 = add nsw i16 %204, -48
  store i16 %205, ptr %46, align 2, !tbaa !22
  br label %.thread1441

206:                                              ; preds = %.backedge
  %207 = icmp eq i8 %.01105, 32
  br i1 %207, label %.thread1441, label %208

208:                                              ; preds = %206
  %209 = add i8 %.01105, -58
  %210 = icmp ult i8 %209, -10
  br i1 %210, label %211, label %215, !prof !10

211:                                              ; preds = %208
  %212 = load i32, ptr %8, align 4
  %213 = and i32 %212, -2130706433
  %214 = or disjoint i32 %213, 234881024
  store i32 %214, ptr %8, align 4
  br label %.thread

215:                                              ; preds = %208
  %216 = load i16, ptr %46, align 2, !tbaa !22
  %217 = mul i16 %216, 10
  %narrow1388 = add nsw i8 %.01105, -48
  %218 = zext nneg i8 %narrow1388 to i16
  %219 = add i16 %217, %218
  store i16 %219, ptr %46, align 2, !tbaa !22
  %220 = icmp ugt i16 %219, 999
  br i1 %220, label %221, label %.thread1441, !prof !10

221:                                              ; preds = %215
  %222 = load i32, ptr %8, align 4
  %223 = and i32 %222, -2130706433
  %224 = or disjoint i32 %223, 234881024
  store i32 %224, ptr %8, align 4
  br label %.thread

225:                                              ; preds = %.backedge
  %226 = add i8 %.01105, -48
  %or.cond8 = icmp ult i8 %226, 10
  br i1 %or.cond8, label %233, label %227

227:                                              ; preds = %225
  %228 = icmp eq i8 %.01105, 32
  br i1 %228, label %.thread1441, label %229

229:                                              ; preds = %227
  %230 = load i32, ptr %8, align 4
  %231 = and i32 %230, -2130706433
  %232 = or disjoint i32 %231, 251658240
  store i32 %232, ptr %8, align 4
  br label %.thread

233:                                              ; preds = %225
  %234 = load i32, ptr %8, align 4
  %235 = and i8 %.01105, 15
  %236 = zext nneg i8 %235 to i32
  %237 = and i32 %234, -65536
  %238 = or disjoint i32 %237, %236
  store i32 %238, ptr %8, align 4
  br label %.thread1441

239:                                              ; preds = %.backedge
  %240 = add i8 %.01105, -48
  %or.cond11 = icmp ult i8 %240, 10
  br i1 %or.cond11, label %248, label %241

241:                                              ; preds = %239
  switch i8 %.01105, label %244 [
    i8 32, label %.thread1441
    i8 13, label %242
    i8 10, label %243
  ]

242:                                              ; preds = %241
  br label %.thread1441

243:                                              ; preds = %241
  br label %.thread1441

244:                                              ; preds = %241
  %245 = load i32, ptr %8, align 4
  %246 = and i32 %245, -2130706433
  %247 = or disjoint i32 %246, 251658240
  store i32 %247, ptr %8, align 4
  br label %.thread

248:                                              ; preds = %239
  %249 = zext nneg i8 %.01105 to i32
  %250 = load i32, ptr %8, align 4
  %251 = mul i32 %250, 10
  %252 = and i32 %250, -65536
  %253 = add nuw nsw i32 %249, 65488
  %254 = add i32 %253, %251
  %255 = and i32 %254, 65535
  %256 = or disjoint i32 %255, %252
  store i32 %256, ptr %8, align 4
  %257 = icmp ugt i32 %255, 999
  br i1 %257, label %258, label %.thread1441, !prof !10

258:                                              ; preds = %248
  %259 = and i32 %256, -2130706433
  %260 = or disjoint i32 %259, 251658240
  store i32 %260, ptr %8, align 4
  br label %.thread

261:                                              ; preds = %.backedge
  switch i8 %.01105, label %263 [
    i8 13, label %.thread1441
    i8 10, label %262
  ]

262:                                              ; preds = %261
  br label %.thread1441

263:                                              ; preds = %261
  %.not1387 = icmp eq ptr %.111572919, null
  %spec.select1404 = select i1 %.not1387, ptr %.11112, ptr %.111572919
  %264 = load i32, ptr %0, align 8
  %265 = and i32 %264, -2130706433
  store i32 %265, ptr %0, align 8
  br label %.thread1441

266:                                              ; preds = %.backedge
  switch i8 %.01105, label %.thread1441 [
    i8 13, label %267
    i8 10, label %296
  ]

267:                                              ; preds = %266
  %268 = load i32, ptr %8, align 4
  %269 = and i32 %268, 2130706432
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %272, label %271

271:                                              ; preds = %267
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 937, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

272:                                              ; preds = %267
  %.not1383 = icmp eq ptr %.111572919, null
  br i1 %.not1383, label %.thread1441, label %273

273:                                              ; preds = %272
  %274 = load ptr, ptr %49, align 8, !tbaa !23
  %.not1384 = icmp eq ptr %274, null
  br i1 %.not1384, label %.thread1441, label %275, !prof !10

275:                                              ; preds = %273
  %276 = load i32, ptr %0, align 8
  %277 = and i32 %276, -130049
  %278 = or disjoint i32 %277, 17408
  store i32 %278, ptr %0, align 8
  %279 = load ptr, ptr %49, align 8, !tbaa !23
  %280 = ptrtoint ptr %.11112 to i64
  %281 = ptrtoint ptr %.111572919 to i64
  %282 = sub i64 %280, %281
  %283 = tail call i32 %279(ptr noundef nonnull %0, ptr noundef nonnull %.111572919, i64 noundef %282) #4
  %.not1385 = icmp eq i32 %283, 0
  %.pre3727 = load i32, ptr %8, align 4
  br i1 %.not1385, label %287, label %284, !prof !11

284:                                              ; preds = %275
  %285 = and i32 %.pre3727, -2130706433
  %286 = or disjoint i32 %285, 134217728
  store i32 %286, ptr %8, align 4
  br label %287

287:                                              ; preds = %284, %275
  %288 = phi i32 [ %286, %284 ], [ %.pre3727, %275 ]
  %289 = load i32, ptr %0, align 8
  %290 = lshr i32 %289, 10
  %291 = and i32 %290, 127
  %292 = and i32 %288, 2130706432
  %.not1386 = icmp eq i32 %292, 0
  br i1 %.not1386, label %.thread1441, label %293, !prof !11

293:                                              ; preds = %287
  %294 = ptrtoint ptr %2 to i64
  %reass.sub2954 = sub i64 %280, %294
  %295 = add i64 %reass.sub2954, 1
  br label %.thread1468

296:                                              ; preds = %266
  %297 = load i32, ptr %8, align 4
  %298 = and i32 %297, 2130706432
  %299 = icmp eq i32 %298, 0
  br i1 %299, label %301, label %300

300:                                              ; preds = %296
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 943, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

301:                                              ; preds = %296
  %.not1379 = icmp eq ptr %.111572919, null
  br i1 %.not1379, label %.thread1441, label %302

302:                                              ; preds = %301
  %303 = load ptr, ptr %49, align 8, !tbaa !23
  %.not1380 = icmp eq ptr %303, null
  br i1 %.not1380, label %.thread1441, label %304, !prof !10

304:                                              ; preds = %302
  %305 = load i32, ptr %0, align 8
  %306 = and i32 %305, -130049
  %307 = or disjoint i32 %306, 43008
  store i32 %307, ptr %0, align 8
  %308 = load ptr, ptr %49, align 8, !tbaa !23
  %309 = ptrtoint ptr %.11112 to i64
  %310 = ptrtoint ptr %.111572919 to i64
  %311 = sub i64 %309, %310
  %312 = tail call i32 %308(ptr noundef nonnull %0, ptr noundef nonnull %.111572919, i64 noundef %311) #4
  %.not1381 = icmp eq i32 %312, 0
  %.pre3726 = load i32, ptr %8, align 4
  br i1 %.not1381, label %316, label %313, !prof !11

313:                                              ; preds = %304
  %314 = and i32 %.pre3726, -2130706433
  %315 = or disjoint i32 %314, 134217728
  store i32 %315, ptr %8, align 4
  br label %316

316:                                              ; preds = %313, %304
  %317 = phi i32 [ %315, %313 ], [ %.pre3726, %304 ]
  %318 = load i32, ptr %0, align 8
  %319 = lshr i32 %318, 10
  %320 = and i32 %319, 127
  %321 = and i32 %317, 2130706432
  %.not1382 = icmp eq i32 %321, 0
  br i1 %.not1382, label %.thread1441, label %322, !prof !11

322:                                              ; preds = %316
  %323 = ptrtoint ptr %2 to i64
  %reass.sub2953 = sub i64 %309, %323
  %324 = add i64 %reass.sub2953, 1
  br label %.thread1468

325:                                              ; preds = %.backedge
  %.not1378 = icmp eq i8 %.01105, 10
  br i1 %.not1378, label %.thread1441, label %326

326:                                              ; preds = %325
  %327 = load i32, ptr %8, align 4
  %328 = and i32 %327, -2130706433
  %329 = or disjoint i32 %328, 503316480
  store i32 %329, ptr %8, align 4
  br label %.thread

330:                                              ; preds = %.backedge
  switch i8 %.01105, label %331 [
    i8 13, label %.thread1441
    i8 10, label %.thread1441
  ]

331:                                              ; preds = %330
  %332 = load i32, ptr %0, align 8
  %333 = and i32 %332, -1021
  store i32 %333, ptr %0, align 8
  store i64 -1, ptr %35, align 8, !tbaa !18
  %334 = or i8 %.01105, 32
  %335 = add i8 %334, -123
  %336 = icmp ult i8 %335, -26
  %337 = load i32, ptr %8, align 4
  br i1 %336, label %338, label %341, !prof !10

338:                                              ; preds = %331
  %339 = and i32 %337, -2130706433
  %340 = or disjoint i32 %339, 268435456
  store i32 %340, ptr %8, align 4
  br label %.thread

341:                                              ; preds = %331
  %342 = and i32 %337, -16711681
  store i32 %342, ptr %8, align 4
  %343 = and i32 %332, -2130707453
  %344 = or disjoint i32 %343, 16777216
  store i32 %344, ptr %0, align 8
  switch i8 %.01105, label %358 [
    i8 65, label %.sink.split
    i8 66, label %345
    i8 67, label %346
    i8 68, label %362
    i8 71, label %347
    i8 72, label %348
    i8 76, label %349
    i8 77, label %350
    i8 78, label %351
    i8 79, label %352
    i8 80, label %353
    i8 82, label %354
    i8 83, label %355
    i8 84, label %356
    i8 85, label %357
  ]

345:                                              ; preds = %341
  br label %.sink.split

346:                                              ; preds = %341
  br label %.sink.split

347:                                              ; preds = %341
  br label %.sink.split

348:                                              ; preds = %341
  br label %.sink.split

349:                                              ; preds = %341
  br label %.sink.split

350:                                              ; preds = %341
  br label %.sink.split

351:                                              ; preds = %341
  br label %.sink.split

352:                                              ; preds = %341
  br label %.sink.split

353:                                              ; preds = %341
  br label %.sink.split

354:                                              ; preds = %341
  br label %.sink.split

355:                                              ; preds = %341
  br label %.sink.split

356:                                              ; preds = %341
  br label %.sink.split

357:                                              ; preds = %341
  br label %.sink.split

358:                                              ; preds = %341
  %359 = and i32 %337, -2147418113
  %360 = or disjoint i32 %359, 268435456
  store i32 %360, ptr %8, align 4
  br label %.thread

.sink.split:                                      ; preds = %341, %345, %346, %347, %348, %349, %350, %351, %352, %353, %354, %355, %356, %357
  %.sink4501 = phi i32 [ 983040, %357 ], [ 458752, %356 ], [ 1703936, %355 ], [ 1310720, %354 ], [ 196608, %353 ], [ 393216, %352 ], [ 1638400, %351 ], [ 655360, %350 ], [ 589824, %349 ], [ 131072, %348 ], [ 65536, %347 ], [ 327680, %346 ], [ 1048576, %345 ], [ 1245184, %341 ]
  %361 = or disjoint i32 %342, %.sink4501
  store i32 %361, ptr %8, align 4
  br label %362

362:                                              ; preds = %.sink.split, %341
  %363 = phi i32 [ %342, %341 ], [ %361, %.sink.split ]
  %364 = and i32 %363, 2130706432
  %365 = icmp eq i32 %364, 0
  br i1 %365, label %367, label %366

366:                                              ; preds = %362
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 992, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

367:                                              ; preds = %362
  %368 = load ptr, ptr %1, align 8, !tbaa !19
  %.not1375 = icmp eq ptr %368, null
  br i1 %.not1375, label %.thread1441, label %369, !prof !10

369:                                              ; preds = %367
  %370 = and i32 %344, -2114060285
  %371 = or disjoint i32 %370, 19456
  store i32 %371, ptr %0, align 8
  %372 = load ptr, ptr %1, align 8, !tbaa !19
  %373 = tail call i32 %372(ptr noundef nonnull %0) #4
  %.not1376 = icmp eq i32 %373, 0
  %.pre3725 = load i32, ptr %8, align 4
  br i1 %.not1376, label %377, label %374, !prof !11

374:                                              ; preds = %369
  %375 = and i32 %.pre3725, -2130706433
  %376 = or disjoint i32 %375, 16777216
  store i32 %376, ptr %8, align 4
  br label %377

377:                                              ; preds = %374, %369
  %378 = phi i32 [ %376, %374 ], [ %.pre3725, %369 ]
  %379 = load i32, ptr %0, align 8
  %380 = lshr i32 %379, 10
  %381 = and i32 %380, 127
  %382 = and i32 %378, 2130706432
  %.not1377 = icmp eq i32 %382, 0
  br i1 %.not1377, label %.thread1441, label %383, !prof !11

383:                                              ; preds = %377
  %384 = ptrtoint ptr %.11112 to i64
  %385 = ptrtoint ptr %2 to i64
  %reass.sub2952 = sub i64 %384, %385
  %386 = add i64 %reass.sub2952, 1
  br label %.thread1468

387:                                              ; preds = %.backedge
  %388 = icmp eq i8 %.01105, 0
  %389 = load i32, ptr %8, align 4
  br i1 %388, label %390, label %393, !prof !10

390:                                              ; preds = %387
  %391 = and i32 %389, -2130706433
  %392 = or disjoint i32 %391, 268435456
  store i32 %392, ptr %8, align 4
  br label %.thread

393:                                              ; preds = %387
  %394 = lshr i32 %389, 16
  %395 = and i32 %394, 255
  %396 = zext nneg i32 %395 to i64
  %397 = getelementptr inbounds [33 x ptr], ptr @method_strings, i64 0, i64 %396
  %398 = load ptr, ptr %397, align 8, !tbaa !24
  %399 = icmp eq i8 %.01105, 32
  %.pre3724 = load i32, ptr %0, align 8
  %400 = lshr i32 %.pre3724, 24
  %401 = and i32 %400, 127
  %402 = zext nneg i32 %401 to i64
  br i1 %399, label %403, label %._crit_edge3736

403:                                              ; preds = %393
  %404 = getelementptr inbounds i8, ptr %398, i64 %402
  %405 = load i8, ptr %404, align 1, !tbaa !12
  %406 = icmp eq i8 %405, 0
  br i1 %406, label %489, label %._crit_edge3736

._crit_edge3736:                                  ; preds = %393, %403
  %407 = getelementptr inbounds i8, ptr %398, i64 %402
  %408 = load i8, ptr %407, align 1, !tbaa !12
  %409 = icmp eq i8 %.01105, %408
  br i1 %409, label %489, label %410

410:                                              ; preds = %._crit_edge3736
  %trunc = trunc i32 %394 to i8
  switch i8 %trunc, label %447 [
    i8 5, label %411
    i8 10, label %420
    i8 26, label %435
    i8 20, label %441
  ]

411:                                              ; preds = %410
  %412 = icmp eq i32 %401, 1
  %413 = icmp eq i8 %.01105, 72
  %or.cond17 = select i1 %412, i1 %413, i1 false
  br i1 %or.cond17, label %.sink.split4502, label %414

414:                                              ; preds = %411
  %415 = icmp eq i32 %401, 2
  %416 = icmp eq i8 %.01105, 80
  %or.cond20 = select i1 %415, i1 %416, i1 false
  br i1 %or.cond20, label %.sink.split4502, label %417

417:                                              ; preds = %414
  %418 = and i32 %389, -2130706433
  %419 = or disjoint i32 %418, 268435456
  store i32 %419, ptr %8, align 4
  br label %.thread

420:                                              ; preds = %410
  %421 = icmp eq i32 %401, 1
  %422 = icmp eq i8 %.01105, 79
  %or.cond23 = select i1 %421, i1 %422, i1 false
  br i1 %or.cond23, label %.sink.split4502, label %423

423:                                              ; preds = %420
  %424 = icmp eq i8 %.01105, 69
  %or.cond26 = select i1 %421, i1 %424, i1 false
  br i1 %or.cond26, label %.sink.split4502, label %425

425:                                              ; preds = %423
  %426 = icmp eq i8 %.01105, 45
  %or.cond29 = select i1 %421, i1 %426, i1 false
  br i1 %or.cond29, label %.sink.split4502, label %427

427:                                              ; preds = %425
  %428 = icmp eq i32 %401, 2
  %429 = icmp eq i8 %.01105, 65
  %or.cond32 = select i1 %428, i1 %429, i1 false
  br i1 %or.cond32, label %.sink.split4502, label %430

430:                                              ; preds = %427
  %431 = icmp eq i32 %401, 3
  %or.cond35 = select i1 %431, i1 %429, i1 false
  br i1 %or.cond35, label %.sink.split4502, label %432

432:                                              ; preds = %430
  %433 = and i32 %389, -2130706433
  %434 = or disjoint i32 %433, 268435456
  store i32 %434, ptr %8, align 4
  br label %.thread

435:                                              ; preds = %410
  %436 = icmp eq i32 %401, 1
  %437 = icmp eq i8 %.01105, 69
  %or.cond38 = select i1 %436, i1 %437, i1 false
  br i1 %or.cond38, label %.sink.split4502, label %438

438:                                              ; preds = %435
  %439 = and i32 %389, -2130706433
  %440 = or disjoint i32 %439, 268435456
  store i32 %440, ptr %8, align 4
  br label %.thread

441:                                              ; preds = %410
  %442 = icmp eq i32 %401, 2
  %443 = icmp eq i8 %.01105, 66
  %or.cond41 = select i1 %442, i1 %443, i1 false
  br i1 %or.cond41, label %.sink.split4502, label %444

444:                                              ; preds = %441
  %445 = and i32 %389, -2130706433
  %446 = or disjoint i32 %445, 268435456
  store i32 %446, ptr %8, align 4
  br label %.thread

447:                                              ; preds = %410
  switch i32 %401, label %477 [
    i32 1, label %448
    i32 2, label %460
    i32 4, label %474
  ]

448:                                              ; preds = %447
  switch i8 %trunc, label %489 [
    i8 3, label %449
    i8 9, label %455
  ]

449:                                              ; preds = %448
  switch i8 %.01105, label %452 [
    i8 82, label %.sink.split4502
    i8 85, label %450
    i8 65, label %451
  ]

450:                                              ; preds = %449
  br label %.sink.split4502

451:                                              ; preds = %449
  br label %.sink.split4502

452:                                              ; preds = %449
  %453 = and i32 %389, -2130706433
  %454 = or disjoint i32 %453, 268435456
  store i32 %454, ptr %8, align 4
  br label %.thread

455:                                              ; preds = %448
  %456 = icmp eq i8 %.01105, 73
  br i1 %456, label %.sink.split4502, label %457

457:                                              ; preds = %455
  %458 = and i32 %389, -2130706433
  %459 = or disjoint i32 %458, 268435456
  store i32 %459, ptr %8, align 4
  br label %.thread

460:                                              ; preds = %447
  switch i8 %trunc, label %471 [
    i8 4, label %461
    i8 15, label %466
  ]

461:                                              ; preds = %460
  %462 = icmp eq i8 %.01105, 82
  br i1 %462, label %.sink.split4502, label %463

463:                                              ; preds = %461
  %464 = and i32 %389, -2130706433
  %465 = or disjoint i32 %464, 268435456
  store i32 %465, ptr %8, align 4
  br label %.thread

466:                                              ; preds = %460
  switch i8 %.01105, label %468 [
    i8 83, label %.sink.split4502
    i8 66, label %467
  ]

467:                                              ; preds = %466
  br label %.sink.split4502

468:                                              ; preds = %466
  %469 = and i32 %389, -2130706433
  %470 = or disjoint i32 %469, 268435456
  store i32 %470, ptr %8, align 4
  br label %.thread

471:                                              ; preds = %460
  %472 = and i32 %389, -2130706433
  %473 = or disjoint i32 %472, 268435456
  store i32 %473, ptr %8, align 4
  br label %.thread

474:                                              ; preds = %447
  %475 = icmp eq i32 %395, 12
  %476 = icmp eq i8 %.01105, 80
  %or.cond44 = select i1 %475, i1 %476, i1 false
  br i1 %or.cond44, label %.sink.split4502, label %477

477:                                              ; preds = %447, %474
  %478 = and i32 %.pre3724, 2130706432
  %479 = icmp eq i32 %478, 50331648
  br i1 %479, label %480, label %484

480:                                              ; preds = %477
  %481 = and i32 %389, 16711680
  %482 = icmp eq i32 %481, 983040
  %483 = icmp eq i8 %.01105, 73
  %or.cond47 = select i1 %482, i1 %483, i1 false
  br i1 %or.cond47, label %.sink.split4502, label %484

484:                                              ; preds = %477, %480
  %485 = and i32 %389, -2130706433
  %486 = or disjoint i32 %485, 268435456
  store i32 %486, ptr %8, align 4
  br label %.thread

.sink.split4502:                                  ; preds = %480, %474, %466, %461, %455, %449, %441, %435, %430, %427, %425, %423, %420, %414, %411, %467, %450, %451
  %.sink4505 = phi i32 [ 1835008, %451 ], [ 262144, %450 ], [ 1179648, %467 ], [ 1441792, %411 ], [ 524288, %414 ], [ 720896, %420 ], [ 1507328, %423 ], [ 1572864, %425 ], [ 1376256, %427 ], [ 1966080, %430 ], [ 917504, %435 ], [ 1114112, %441 ], [ 786432, %449 ], [ 2031616, %455 ], [ 1900544, %461 ], [ 1769472, %466 ], [ 851968, %474 ], [ 2097152, %480 ]
  %487 = and i32 %389, -16711681
  %488 = or disjoint i32 %487, %.sink4505
  store i32 %488, ptr %8, align 4
  br label %489

489:                                              ; preds = %.sink.split4502, %._crit_edge3736, %403, %448
  %.51165 = phi i32 [ 19, %._crit_edge3736 ], [ 20, %403 ], [ 19, %448 ], [ 19, %.sink.split4502 ]
  %490 = add i32 %.pre3724, 16777216
  %491 = and i32 %490, 2130706432
  %492 = and i32 %.pre3724, -2130706433
  %493 = or disjoint i32 %491, %492
  store i32 %493, ptr %0, align 8
  br label %.thread1441

494:                                              ; preds = %.backedge
  %495 = icmp eq i8 %.01105, 32
  br i1 %495, label %.thread1441, label %496

496:                                              ; preds = %494
  %.not1374 = icmp eq ptr %.111382922, null
  %spec.select1406 = select i1 %.not1374, ptr %.11112, ptr %.111382922
  %497 = load i32, ptr %8, align 4
  %498 = and i32 %497, 16711680
  %499 = icmp eq i32 %498, 327680
  %.71167 = select i1 %499, i32 24, i32 20
  %500 = tail call i32 @parse_url_char(i32 noundef %.71167, i8 noundef signext %.01105)
  %501 = icmp eq i32 %500, 1
  br i1 %501, label %502, label %.thread1441, !prof !10

502:                                              ; preds = %496
  %503 = load i32, ptr %8, align 4
  %504 = and i32 %503, -2130706433
  %505 = or disjoint i32 %504, 285212672
  store i32 %505, ptr %8, align 4
  br label %.thread

506:                                              ; preds = %.backedge, %.backedge, %.backedge, %.backedge
  switch i8 %.01105, label %511 [
    i8 32, label %507
    i8 13, label %507
    i8 10, label %507
  ]

507:                                              ; preds = %506, %506, %506
  %508 = load i32, ptr %8, align 4
  %509 = and i32 %508, -2130706433
  %510 = or disjoint i32 %509, 285212672
  store i32 %510, ptr %8, align 4
  br label %.thread

511:                                              ; preds = %506
  %512 = tail call i32 @parse_url_char(i32 noundef %.11161, i8 noundef signext %.01105)
  %513 = icmp eq i32 %512, 1
  br i1 %513, label %514, label %.thread1441, !prof !10

514:                                              ; preds = %511
  %515 = load i32, ptr %8, align 4
  %516 = and i32 %515, -2130706433
  %517 = or disjoint i32 %516, 285212672
  store i32 %517, ptr %8, align 4
  br label %.thread

518:                                              ; preds = %.backedge, %.backedge, %.backedge, %.backedge, %.backedge, %.backedge, %.backedge
  switch i8 %.01105, label %580 [
    i8 32, label %519
    i8 13, label %548
    i8 10, label %548
  ]

519:                                              ; preds = %518
  %520 = load i32, ptr %8, align 4
  %521 = and i32 %520, 2130706432
  %522 = icmp eq i32 %521, 0
  br i1 %522, label %524, label %523

523:                                              ; preds = %519
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1154, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

524:                                              ; preds = %519
  %.not1370 = icmp eq ptr %.111382922, null
  br i1 %.not1370, label %.thread1441, label %525

525:                                              ; preds = %524
  %526 = load ptr, ptr %48, align 8, !tbaa !25
  %.not1371 = icmp eq ptr %526, null
  br i1 %.not1371, label %.thread1441, label %527, !prof !10

527:                                              ; preds = %525
  %528 = load i32, ptr %0, align 8
  %529 = and i32 %528, -130049
  %530 = or disjoint i32 %529, 32768
  store i32 %530, ptr %0, align 8
  %531 = load ptr, ptr %48, align 8, !tbaa !25
  %532 = ptrtoint ptr %.11112 to i64
  %533 = ptrtoint ptr %.111382922 to i64
  %534 = sub i64 %532, %533
  %535 = tail call i32 %531(ptr noundef nonnull %0, ptr noundef nonnull %.111382922, i64 noundef %534) #4
  %.not1372 = icmp eq i32 %535, 0
  %.pre3723 = load i32, ptr %8, align 4
  br i1 %.not1372, label %539, label %536, !prof !11

536:                                              ; preds = %527
  %537 = and i32 %.pre3723, -2130706433
  %538 = or disjoint i32 %537, 33554432
  store i32 %538, ptr %8, align 4
  br label %539

539:                                              ; preds = %536, %527
  %540 = phi i32 [ %538, %536 ], [ %.pre3723, %527 ]
  %541 = load i32, ptr %0, align 8
  %542 = lshr i32 %541, 10
  %543 = and i32 %542, 127
  %544 = and i32 %540, 2130706432
  %.not1373 = icmp eq i32 %544, 0
  br i1 %.not1373, label %.thread1441, label %545, !prof !11

545:                                              ; preds = %539
  %546 = ptrtoint ptr %2 to i64
  %reass.sub2951 = sub i64 %532, %546
  %547 = add i64 %reass.sub2951, 1
  br label %.thread1468

548:                                              ; preds = %518, %518
  store i16 0, ptr %47, align 8, !tbaa !21
  store i16 9, ptr %46, align 2, !tbaa !22
  %549 = icmp eq i8 %.01105, 13
  %550 = select i1 %549, i32 41, i32 42
  %551 = load i32, ptr %8, align 4
  %552 = and i32 %551, 2130706432
  %553 = icmp eq i32 %552, 0
  br i1 %553, label %555, label %554

554:                                              ; preds = %548
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1163, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

555:                                              ; preds = %548
  %.not1366 = icmp eq ptr %.111382922, null
  br i1 %.not1366, label %.thread1441, label %556

556:                                              ; preds = %555
  %557 = load ptr, ptr %48, align 8, !tbaa !25
  %.not1367 = icmp eq ptr %557, null
  br i1 %.not1367, label %.thread1441, label %558, !prof !10

558:                                              ; preds = %556
  %559 = load i32, ptr %0, align 8
  %560 = shl nuw nsw i32 %550, 10
  %561 = and i32 %559, -130049
  %562 = or disjoint i32 %561, %560
  store i32 %562, ptr %0, align 8
  %563 = load ptr, ptr %48, align 8, !tbaa !25
  %564 = ptrtoint ptr %.11112 to i64
  %565 = ptrtoint ptr %.111382922 to i64
  %566 = sub i64 %564, %565
  %567 = tail call i32 %563(ptr noundef nonnull %0, ptr noundef nonnull %.111382922, i64 noundef %566) #4
  %.not1368 = icmp eq i32 %567, 0
  %.pre3722 = load i32, ptr %8, align 4
  br i1 %.not1368, label %571, label %568, !prof !11

568:                                              ; preds = %558
  %569 = and i32 %.pre3722, -2130706433
  %570 = or disjoint i32 %569, 33554432
  store i32 %570, ptr %8, align 4
  br label %571

571:                                              ; preds = %568, %558
  %572 = phi i32 [ %570, %568 ], [ %.pre3722, %558 ]
  %573 = load i32, ptr %0, align 8
  %574 = lshr i32 %573, 10
  %575 = and i32 %574, 127
  %576 = and i32 %572, 2130706432
  %.not1369 = icmp eq i32 %576, 0
  br i1 %.not1369, label %.thread1441, label %577, !prof !11

577:                                              ; preds = %571
  %578 = ptrtoint ptr %2 to i64
  %reass.sub2950 = sub i64 %564, %578
  %579 = add i64 %reass.sub2950, 1
  br label %.thread1468

580:                                              ; preds = %518
  %581 = tail call i32 @parse_url_char(i32 noundef %.11161, i8 noundef signext %.01105)
  %582 = icmp eq i32 %581, 1
  br i1 %582, label %583, label %.thread1441, !prof !10

583:                                              ; preds = %580
  %584 = load i32, ptr %8, align 4
  %585 = and i32 %584, -2130706433
  %586 = or disjoint i32 %585, 285212672
  store i32 %586, ptr %8, align 4
  br label %.thread

587:                                              ; preds = %.backedge
  switch i8 %.01105, label %589 [
    i8 72, label %588
    i8 32, label %.thread1441
  ]

588:                                              ; preds = %587
  br label %.thread1441

589:                                              ; preds = %587
  %590 = load i32, ptr %8, align 4
  %591 = and i32 %590, -2130706433
  %592 = or disjoint i32 %591, 469762048
  store i32 %592, ptr %8, align 4
  br label %.thread

593:                                              ; preds = %.backedge
  %.not1365 = icmp eq i8 %.01105, 84
  br i1 %.not1365, label %.thread1441, label %594

594:                                              ; preds = %593
  %595 = load i32, ptr %8, align 4
  %596 = and i32 %595, -2130706433
  %597 = or disjoint i32 %596, 503316480
  store i32 %597, ptr %8, align 4
  br label %.thread

598:                                              ; preds = %.backedge
  %.not1364 = icmp eq i8 %.01105, 84
  br i1 %.not1364, label %.thread1441, label %599

599:                                              ; preds = %598
  %600 = load i32, ptr %8, align 4
  %601 = and i32 %600, -2130706433
  %602 = or disjoint i32 %601, 503316480
  store i32 %602, ptr %8, align 4
  br label %.thread

603:                                              ; preds = %.backedge
  %.not1363 = icmp eq i8 %.01105, 80
  br i1 %.not1363, label %.thread1441, label %604

604:                                              ; preds = %603
  %605 = load i32, ptr %8, align 4
  %606 = and i32 %605, -2130706433
  %607 = or disjoint i32 %606, 503316480
  store i32 %607, ptr %8, align 4
  br label %.thread

608:                                              ; preds = %.backedge
  %.not1362 = icmp eq i8 %.01105, 47
  br i1 %.not1362, label %.thread1441, label %609

609:                                              ; preds = %608
  %610 = load i32, ptr %8, align 4
  %611 = and i32 %610, -2130706433
  %612 = or disjoint i32 %611, 503316480
  store i32 %612, ptr %8, align 4
  br label %.thread

613:                                              ; preds = %.backedge
  %614 = add i8 %.01105, -58
  %615 = icmp ult i8 %614, -9
  br i1 %615, label %616, label %620, !prof !10

616:                                              ; preds = %613
  %617 = load i32, ptr %8, align 4
  %618 = and i32 %617, -2130706433
  %619 = or disjoint i32 %618, 234881024
  store i32 %619, ptr %8, align 4
  br label %.thread

620:                                              ; preds = %613
  %621 = zext nneg i8 %.01105 to i16
  %622 = add nsw i16 %621, -48
  store i16 %622, ptr %47, align 8, !tbaa !21
  br label %.thread1441

623:                                              ; preds = %.backedge
  %624 = icmp eq i8 %.01105, 46
  br i1 %624, label %.thread1441, label %625

625:                                              ; preds = %623
  %626 = add i8 %.01105, -58
  %627 = icmp ult i8 %626, -10
  br i1 %627, label %628, label %632, !prof !10

628:                                              ; preds = %625
  %629 = load i32, ptr %8, align 4
  %630 = and i32 %629, -2130706433
  %631 = or disjoint i32 %630, 234881024
  store i32 %631, ptr %8, align 4
  br label %.thread

632:                                              ; preds = %625
  %633 = load i16, ptr %47, align 8, !tbaa !21
  %634 = mul i16 %633, 10
  %narrow1361 = add nsw i8 %.01105, -48
  %635 = zext nneg i8 %narrow1361 to i16
  %636 = add i16 %634, %635
  store i16 %636, ptr %47, align 8, !tbaa !21
  %637 = icmp ugt i16 %636, 999
  br i1 %637, label %638, label %.thread1441, !prof !10

638:                                              ; preds = %632
  %639 = load i32, ptr %8, align 4
  %640 = and i32 %639, -2130706433
  %641 = or disjoint i32 %640, 234881024
  store i32 %641, ptr %8, align 4
  br label %.thread

642:                                              ; preds = %.backedge
  %643 = add i8 %.01105, -58
  %644 = icmp ult i8 %643, -10
  br i1 %644, label %645, label %649, !prof !10

645:                                              ; preds = %642
  %646 = load i32, ptr %8, align 4
  %647 = and i32 %646, -2130706433
  %648 = or disjoint i32 %647, 234881024
  store i32 %648, ptr %8, align 4
  br label %.thread

649:                                              ; preds = %642
  %650 = zext nneg i8 %.01105 to i16
  %651 = add nsw i16 %650, -48
  store i16 %651, ptr %46, align 2, !tbaa !22
  br label %.thread1441

652:                                              ; preds = %.backedge
  switch i8 %.01105, label %654 [
    i8 13, label %.thread1441
    i8 10, label %653
  ]

653:                                              ; preds = %652
  br label %.thread1441

654:                                              ; preds = %652
  %655 = add i8 %.01105, -58
  %656 = icmp ult i8 %655, -10
  br i1 %656, label %657, label %661, !prof !10

657:                                              ; preds = %654
  %658 = load i32, ptr %8, align 4
  %659 = and i32 %658, -2130706433
  %660 = or disjoint i32 %659, 234881024
  store i32 %660, ptr %8, align 4
  br label %.thread

661:                                              ; preds = %654
  %662 = load i16, ptr %46, align 2, !tbaa !22
  %663 = mul i16 %662, 10
  %narrow1360 = add nsw i8 %.01105, -48
  %664 = zext nneg i8 %narrow1360 to i16
  %665 = add i16 %663, %664
  store i16 %665, ptr %46, align 2, !tbaa !22
  %666 = icmp ugt i16 %665, 999
  br i1 %666, label %667, label %.thread1441, !prof !10

667:                                              ; preds = %661
  %668 = load i32, ptr %8, align 4
  %669 = and i32 %668, -2130706433
  %670 = or disjoint i32 %669, 234881024
  store i32 %670, ptr %8, align 4
  br label %.thread

671:                                              ; preds = %.backedge
  %.not1359 = icmp eq i8 %.01105, 10
  br i1 %.not1359, label %.thread1441, label %672, !prof !11

672:                                              ; preds = %671
  %673 = load i32, ptr %8, align 4
  %674 = and i32 %673, -2130706433
  %675 = or disjoint i32 %674, 385875968
  store i32 %675, ptr %8, align 4
  br label %.thread

676:                                              ; preds = %.backedge
  switch i8 %.01105, label %677 [
    i8 13, label %.thread1441
    i8 10, label %.backedge.backedge
  ]

677:                                              ; preds = %676
  %678 = zext i8 %.01105 to i64
  %679 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %678
  %680 = load i8, ptr %679, align 1, !tbaa !12
  %.not1357 = icmp eq i8 %680, 0
  br i1 %.not1357, label %681, label %685, !prof !10

681:                                              ; preds = %677
  %682 = load i32, ptr %8, align 4
  %683 = and i32 %682, -2130706433
  %684 = or disjoint i32 %683, 402653184
  store i32 %684, ptr %8, align 4
  br label %.thread

685:                                              ; preds = %677
  %.not1358 = icmp eq ptr %.111202925, null
  %spec.select1407 = select i1 %.not1358, ptr %.11112, ptr %.111202925
  %686 = load i32, ptr %0, align 8
  %687 = and i32 %686, -2130706433
  store i32 %687, ptr %0, align 8
  %688 = and i32 %686, -2147352577
  switch i8 %680, label %697 [
    i8 99, label %689
    i8 112, label %691
    i8 116, label %693
    i8 117, label %695
  ]

689:                                              ; preds = %685
  %690 = or disjoint i32 %688, 131072
  store i32 %690, ptr %0, align 8
  br label %.thread1441

691:                                              ; preds = %685
  %692 = or disjoint i32 %688, 655360
  store i32 %692, ptr %0, align 8
  br label %.thread1441

693:                                              ; preds = %685
  %694 = or disjoint i32 %688, 917504
  store i32 %694, ptr %0, align 8
  br label %.thread1441

695:                                              ; preds = %685
  %696 = or disjoint i32 %688, 1048576
  store i32 %696, ptr %0, align 8
  br label %.thread1441

697:                                              ; preds = %685
  store i32 %688, ptr %0, align 8
  br label %.thread1441

.lr.ph2915:                                       ; preds = %.preheader, %839
  %.211132913 = phi ptr [ %840, %839 ], [ %.11112, %.preheader ]
  %698 = load i8, ptr %.211132913, align 1, !tbaa !12
  %699 = zext i8 %698 to i64
  %700 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %699
  %701 = load i8, ptr %700, align 1, !tbaa !12
  %.not1345 = icmp eq i8 %701, 0
  br i1 %.not1345, label %.thread1434, label %702

702:                                              ; preds = %.lr.ph2915
  %703 = load i32, ptr %0, align 8
  %704 = lshr i32 %703, 17
  %705 = and i32 %704, 127
  switch i32 %705, label %838 [
    i32 0, label %839
    i32 1, label %706
    i32 2, label %714
    i32 3, label %722
    i32 4, label %732
    i32 5, label %751
    i32 6, label %770
    i32 7, label %797
    i32 8, label %816
    i32 9, label %835
    i32 10, label %835
    i32 11, label %835
    i32 12, label %835
  ]

706:                                              ; preds = %702
  %707 = add i32 %703, 16777216
  %708 = and i32 %707, 2130706432
  %709 = and i32 %703, -2147352577
  %710 = icmp eq i8 %701, 111
  %711 = select i1 %710, i32 262144, i32 0
  %712 = or disjoint i32 %709, %711
  %713 = or disjoint i32 %712, %708
  br label %.sink.split4506

714:                                              ; preds = %702
  %715 = add i32 %703, 16777216
  %716 = and i32 %715, 2130706432
  %717 = and i32 %703, -2147352577
  %718 = icmp eq i8 %701, 110
  %719 = select i1 %718, i32 393216, i32 0
  %720 = or disjoint i32 %717, %719
  %721 = or disjoint i32 %720, %716
  br label %.sink.split4506

722:                                              ; preds = %702
  %723 = add i32 %703, 16777216
  %724 = and i32 %723, 2130706432
  %725 = and i32 %703, -2130706433
  %726 = or disjoint i32 %724, %725
  store i32 %726, ptr %0, align 8
  %727 = and i32 %726, -16646145
  switch i8 %701, label %.sink.split4506 [
    i8 110, label %728
    i8 116, label %730
  ]

728:                                              ; preds = %722
  %729 = or disjoint i32 %727, 524288
  br label %.sink.split4506

730:                                              ; preds = %722
  %731 = or disjoint i32 %727, 786432
  br label %.sink.split4506

732:                                              ; preds = %702
  %733 = add i32 %703, 16777216
  %734 = and i32 %733, 2130706432
  %735 = and i32 %703, -2130706433
  %736 = or disjoint i32 %734, %735
  store i32 %736, ptr %0, align 8
  %737 = lshr i32 %733, 24
  %738 = and i32 %737, 127
  %739 = icmp ugt i32 %738, 10
  br i1 %739, label %744, label %740

740:                                              ; preds = %732
  %741 = zext nneg i32 %738 to i64
  %742 = getelementptr inbounds [11 x i8], ptr @.str.2, i64 0, i64 %741
  %743 = load i8, ptr %742, align 1, !tbaa !12
  %.not1356 = icmp eq i8 %701, %743
  br i1 %.not1356, label %746, label %744

744:                                              ; preds = %740, %732
  %745 = and i32 %736, -16646145
  br label %.sink.split4506

746:                                              ; preds = %740
  %747 = icmp eq i32 %738, 9
  br i1 %747, label %748, label %839

748:                                              ; preds = %746
  %749 = and i32 %736, -16646145
  %750 = or disjoint i32 %749, 1179648
  br label %.sink.split4506

751:                                              ; preds = %702
  %752 = add i32 %703, 16777216
  %753 = and i32 %752, 2130706432
  %754 = and i32 %703, -2130706433
  %755 = or disjoint i32 %753, %754
  store i32 %755, ptr %0, align 8
  %756 = lshr i32 %752, 24
  %757 = and i32 %756, 127
  %758 = icmp ugt i32 %757, 16
  br i1 %758, label %763, label %759

759:                                              ; preds = %751
  %760 = zext nneg i32 %757 to i64
  %761 = getelementptr inbounds [17 x i8], ptr @.str.3, i64 0, i64 %760
  %762 = load i8, ptr %761, align 1, !tbaa !12
  %.not1355 = icmp eq i8 %701, %762
  br i1 %.not1355, label %765, label %763

763:                                              ; preds = %759, %751
  %764 = and i32 %755, -16646145
  br label %.sink.split4506

765:                                              ; preds = %759
  %766 = icmp eq i32 %757, 15
  br i1 %766, label %767, label %839

767:                                              ; preds = %765
  %768 = and i32 %755, -16646145
  %769 = or disjoint i32 %768, 1179648
  br label %.sink.split4506

770:                                              ; preds = %702
  %771 = add i32 %703, 16777216
  %772 = and i32 %771, 2130706432
  %773 = and i32 %703, -2130706433
  %774 = or disjoint i32 %772, %773
  store i32 %774, ptr %0, align 8
  %775 = lshr i32 %771, 24
  %776 = and i32 %775, 127
  %777 = icmp ugt i32 %776, 14
  br i1 %777, label %782, label %778

778:                                              ; preds = %770
  %779 = zext nneg i32 %776 to i64
  %780 = getelementptr inbounds [15 x i8], ptr @.str.4, i64 0, i64 %779
  %781 = load i8, ptr %780, align 1, !tbaa !12
  %.not1353 = icmp eq i8 %701, %781
  br i1 %.not1353, label %784, label %782

782:                                              ; preds = %778, %770
  %783 = and i32 %774, -16646145
  br label %.sink.split4506

784:                                              ; preds = %778
  %785 = icmp eq i32 %776, 13
  br i1 %785, label %786, label %839

786:                                              ; preds = %784
  %787 = and i32 %703, 512
  %.not1354 = icmp eq i32 %787, 0
  br i1 %.not1354, label %792, label %788

788:                                              ; preds = %786
  %789 = load i32, ptr %8, align 4
  %790 = and i32 %789, -2130706433
  %791 = or disjoint i32 %790, 436207616
  store i32 %791, ptr %8, align 4
  br label %.thread

792:                                              ; preds = %786
  %793 = and i32 %774, -16647165
  %794 = and i32 %703, 508
  %795 = or disjoint i32 %794, %793
  %796 = or disjoint i32 %795, 1311232
  br label %.sink.split4506

797:                                              ; preds = %702
  %798 = add i32 %703, 16777216
  %799 = and i32 %798, 2130706432
  %800 = and i32 %703, -2130706433
  %801 = or disjoint i32 %799, %800
  store i32 %801, ptr %0, align 8
  %802 = lshr i32 %798, 24
  %803 = and i32 %802, 127
  %804 = icmp ugt i32 %803, 17
  br i1 %804, label %809, label %805

805:                                              ; preds = %797
  %806 = zext nneg i32 %803 to i64
  %807 = getelementptr inbounds [18 x i8], ptr @.str.5, i64 0, i64 %806
  %808 = load i8, ptr %807, align 1, !tbaa !12
  %.not1352 = icmp eq i8 %701, %808
  br i1 %.not1352, label %811, label %809

809:                                              ; preds = %805, %797
  %810 = and i32 %801, -16646145
  br label %.sink.split4506

811:                                              ; preds = %805
  %812 = icmp eq i32 %803, 16
  br i1 %812, label %813, label %839

813:                                              ; preds = %811
  %814 = and i32 %801, -16646145
  %815 = or disjoint i32 %814, 1441792
  br label %.sink.split4506

816:                                              ; preds = %702
  %817 = add i32 %703, 16777216
  %818 = and i32 %817, 2130706432
  %819 = and i32 %703, -2130706433
  %820 = or disjoint i32 %818, %819
  store i32 %820, ptr %0, align 8
  %821 = lshr i32 %817, 24
  %822 = and i32 %821, 127
  %823 = icmp ugt i32 %822, 7
  br i1 %823, label %828, label %824

824:                                              ; preds = %816
  %825 = zext nneg i32 %822 to i64
  %826 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %825
  %827 = load i8, ptr %826, align 1, !tbaa !12
  %.not1351 = icmp eq i8 %701, %827
  br i1 %.not1351, label %830, label %828

828:                                              ; preds = %824, %816
  %829 = and i32 %820, -16646145
  br label %.sink.split4506

830:                                              ; preds = %824
  %831 = icmp eq i32 %822, 6
  br i1 %831, label %832, label %839

832:                                              ; preds = %830
  %833 = and i32 %820, -16646145
  %834 = or disjoint i32 %833, 1572864
  br label %.sink.split4506

835:                                              ; preds = %702, %702, %702, %702
  %.not1350 = icmp eq i8 %698, 32
  br i1 %.not1350, label %839, label %836

836:                                              ; preds = %835
  %837 = and i32 %703, -16646145
  br label %.sink.split4506

838:                                              ; preds = %702
  tail call void @__assert_fail(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 1459, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

.sink.split4506:                                  ; preds = %722, %836, %828, %832, %809, %813, %782, %792, %763, %767, %744, %748, %728, %730, %714, %706
  %.sink4507 = phi i32 [ %713, %706 ], [ %721, %714 ], [ %731, %730 ], [ %729, %728 ], [ %750, %748 ], [ %745, %744 ], [ %769, %767 ], [ %764, %763 ], [ %796, %792 ], [ %783, %782 ], [ %815, %813 ], [ %810, %809 ], [ %834, %832 ], [ %829, %828 ], [ %837, %836 ], [ %727, %722 ]
  store i32 %.sink4507, ptr %0, align 8
  br label %839

839:                                              ; preds = %.sink.split4506, %702, %746, %765, %784, %811, %830, %835
  %840 = getelementptr inbounds i8, ptr %.211132913, i64 1
  %.not1344 = icmp eq ptr %840, %33
  br i1 %.not1344, label %._crit_edge, label %.lr.ph2915, !llvm.loop !26

._crit_edge:                                      ; preds = %839, %.preheader
  %.21113.lcssa = phi ptr [ %.11112, %.preheader ], [ %840, %839 ]
  %841 = ptrtoint ptr %.21113.lcssa to i64
  %842 = ptrtoint ptr %.11112 to i64
  %843 = sub i64 %841, %842
  %844 = load i32, ptr %34, align 4, !tbaa !13
  %845 = trunc i64 %843 to i32
  %846 = add i32 %844, %845
  store i32 %846, ptr %34, align 4, !tbaa !13
  %847 = icmp ugt i32 %846, 81920
  br i1 %847, label %855, label %859, !prof !10

.thread1434:                                      ; preds = %.lr.ph2915
  %848 = ptrtoint ptr %.211132913 to i64
  %849 = ptrtoint ptr %.11112 to i64
  %850 = sub i64 %848, %849
  %851 = load i32, ptr %34, align 4, !tbaa !13
  %852 = trunc i64 %850 to i32
  %853 = add i32 %851, %852
  store i32 %853, ptr %34, align 4, !tbaa !13
  %854 = icmp ugt i32 %853, 81920
  br i1 %854, label %855, label %861, !prof !10

855:                                              ; preds = %.thread1434, %._crit_edge
  %.211131978 = phi ptr [ %.211132913, %.thread1434 ], [ %.21113.lcssa, %._crit_edge ]
  %856 = load i32, ptr %8, align 4
  %857 = and i32 %856, -2130706433
  %858 = or disjoint i32 %857, 201326592
  store i32 %858, ptr %8, align 4
  br label %.thread

859:                                              ; preds = %._crit_edge
  %860 = getelementptr inbounds i8, ptr %.21113.lcssa, i64 -1
  br label %.thread1441

861:                                              ; preds = %.thread1434
  %862 = icmp eq i8 %698, 58
  %863 = load i32, ptr %8, align 4
  br i1 %862, label %864, label %888

864:                                              ; preds = %861
  %865 = and i32 %863, 2130706432
  %866 = icmp eq i32 %865, 0
  br i1 %866, label %868, label %867

867:                                              ; preds = %864
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1473, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

868:                                              ; preds = %864
  %.not1346 = icmp eq ptr %.111202925, null
  br i1 %.not1346, label %.thread1441, label %869

869:                                              ; preds = %868
  %870 = load ptr, ptr %45, align 8, !tbaa !28
  %.not1347 = icmp eq ptr %870, null
  br i1 %.not1347, label %.thread1441, label %871, !prof !10

871:                                              ; preds = %869
  %872 = load i32, ptr %0, align 8
  %873 = and i32 %872, -130049
  %874 = or disjoint i32 %873, 45056
  store i32 %874, ptr %0, align 8
  %875 = load ptr, ptr %45, align 8, !tbaa !28
  %876 = ptrtoint ptr %.111202925 to i64
  %877 = sub i64 %848, %876
  %878 = tail call i32 %875(ptr noundef nonnull %0, ptr noundef nonnull %.111202925, i64 noundef %877) #4
  %.not1348 = icmp eq i32 %878, 0
  %.pre3721 = load i32, ptr %8, align 4
  br i1 %.not1348, label %882, label %879, !prof !11

879:                                              ; preds = %871
  %880 = and i32 %.pre3721, -2130706433
  %881 = or disjoint i32 %880, 50331648
  store i32 %881, ptr %8, align 4
  br label %882

882:                                              ; preds = %879, %871
  %883 = phi i32 [ %881, %879 ], [ %.pre3721, %871 ]
  %884 = load i32, ptr %0, align 8
  %885 = lshr i32 %884, 10
  %886 = and i32 %885, 127
  %887 = and i32 %883, 2130706432
  %.not1349 = icmp eq i32 %887, 0
  br i1 %.not1349, label %.thread1441, label %891, !prof !11

888:                                              ; preds = %861
  %889 = and i32 %863, -2130706433
  %890 = or disjoint i32 %889, 402653184
  store i32 %890, ptr %8, align 4
  br label %.thread

891:                                              ; preds = %882
  %892 = ptrtoint ptr %2 to i64
  %reass.sub2949 = sub i64 %848, %892
  %893 = add i64 %reass.sub2949, 1
  br label %.thread1468

894:                                              ; preds = %.backedge
  switch i8 %.01105, label %.loopexit1536 [
    i8 32, label %.thread1441
    i8 9, label %.thread1441
    i8 13, label %895
    i8 10, label %896
  ]

895:                                              ; preds = %894
  br label %.thread1441

896:                                              ; preds = %894
  br label %.thread1441

.loopexit1536:                                    ; preds = %.backedge, %894
  %.not1342 = icmp eq ptr %.21129, null
  %spec.select1408 = select i1 %.not1342, ptr %.11112, ptr %.21129
  %897 = load i32, ptr %0, align 8
  %898 = and i32 %897, -2130706433
  store i32 %898, ptr %0, align 8
  %899 = or i8 %.01105, 32
  %900 = lshr i32 %897, 17
  %901 = and i32 %900, 127
  switch i32 %901, label %930 [
    i32 12, label %902
    i32 11, label %905
    i32 10, label %911
    i32 9, label %920
    i32 14, label %.thread1441
  ]

902:                                              ; preds = %.loopexit1536
  %903 = and i32 %897, -2147352705
  %904 = or disjoint i32 %903, 128
  store i32 %904, ptr %0, align 8
  br label %.thread1441

905:                                              ; preds = %.loopexit1536
  %906 = icmp eq i8 %899, 99
  %907 = and i32 %897, -2147352577
  br i1 %906, label %908, label %910

908:                                              ; preds = %905
  %909 = or disjoint i32 %907, 1703936
  store i32 %909, ptr %0, align 8
  br label %.thread1441

910:                                              ; preds = %905
  store i32 %907, ptr %0, align 8
  br label %.thread1441

911:                                              ; preds = %.loopexit1536
  %912 = add i8 %.01105, -58
  %913 = icmp ult i8 %912, -10
  br i1 %913, label %914, label %918, !prof !10

914:                                              ; preds = %911
  %915 = load i32, ptr %8, align 4
  %916 = and i32 %915, -2130706433
  %917 = or disjoint i32 %916, 419430400
  store i32 %917, ptr %8, align 4
  br label %.thread

918:                                              ; preds = %911
  %narrow1343 = add nsw i8 %.01105, -48
  %919 = zext nneg i8 %narrow1343 to i64
  store i64 %919, ptr %35, align 8, !tbaa !18
  br label %.thread1441

920:                                              ; preds = %.loopexit1536
  %921 = and i32 %897, -2147352577
  switch i8 %899, label %928 [
    i8 107, label %922
    i8 99, label %924
    i8 117, label %926
  ]

922:                                              ; preds = %920
  %923 = or disjoint i32 %921, 1966080
  store i32 %923, ptr %0, align 8
  br label %.thread1441

924:                                              ; preds = %920
  %925 = or disjoint i32 %921, 2097152
  store i32 %925, ptr %0, align 8
  br label %.thread1441

926:                                              ; preds = %920
  %927 = or disjoint i32 %921, 2228224
  store i32 %927, ptr %0, align 8
  br label %.thread1441

928:                                              ; preds = %920
  %929 = or disjoint i32 %921, 2359296
  store i32 %929, ptr %0, align 8
  br label %.thread1441

930:                                              ; preds = %.loopexit1536
  %931 = and i32 %897, -2147352577
  store i32 %931, ptr %0, align 8
  br label %.thread1441

932:                                              ; preds = %.backedge
  %933 = load i32, ptr %0, align 8
  %934 = lshr i32 %933, 17
  %935 = and i32 %934, 127
  %.not13222896 = icmp eq ptr %.11112, %33
  br i1 %.not13222896, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %932, %.thread1455
  %936 = phi i32 [ %1128, %.thread1455 ], [ %933, %932 ]
  %.411152898 = phi ptr [ %1129, %.thread1455 ], [ %.11112, %932 ]
  %.011252897 = phi i32 [ %.11126, %.thread1455 ], [ %935, %932 ]
  %937 = load i8, ptr %.411152898, align 1, !tbaa !12
  switch i8 %937, label %1013 [
    i8 13, label %938
    i8 10, label %970
  ]

938:                                              ; preds = %.lr.ph
  %939 = shl nuw nsw i32 %.011252897, 17
  %940 = and i32 %939, 16646144
  %941 = and i32 %936, -16646145
  %942 = or disjoint i32 %941, %940
  store i32 %942, ptr %0, align 8
  %943 = load i32, ptr %8, align 4
  %944 = and i32 %943, 2130706432
  %945 = icmp eq i32 %944, 0
  br i1 %945, label %947, label %946

946:                                              ; preds = %938
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1563, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

947:                                              ; preds = %938
  %.not1338 = icmp eq ptr %.21129, null
  br i1 %.not1338, label %.loopexit, label %948

948:                                              ; preds = %947
  %949 = load ptr, ptr %40, align 8, !tbaa !29
  %.not1339 = icmp eq ptr %949, null
  br i1 %.not1339, label %.loopexit, label %950, !prof !10

950:                                              ; preds = %948
  %951 = and i32 %942, -130049
  %952 = or disjoint i32 %951, 51200
  store i32 %952, ptr %0, align 8
  %953 = load ptr, ptr %40, align 8, !tbaa !29
  %954 = ptrtoint ptr %.411152898 to i64
  %955 = ptrtoint ptr %.21129 to i64
  %956 = sub i64 %954, %955
  %957 = tail call i32 %953(ptr noundef nonnull %0, ptr noundef nonnull %.21129, i64 noundef %956) #4
  %.not1340 = icmp eq i32 %957, 0
  %.pre3720 = load i32, ptr %8, align 4
  br i1 %.not1340, label %961, label %958, !prof !11

958:                                              ; preds = %950
  %959 = and i32 %.pre3720, -2130706433
  %960 = or disjoint i32 %959, 67108864
  store i32 %960, ptr %8, align 4
  br label %961

961:                                              ; preds = %958, %950
  %962 = phi i32 [ %960, %958 ], [ %.pre3720, %950 ]
  %963 = load i32, ptr %0, align 8
  %964 = lshr i32 %963, 10
  %965 = and i32 %964, 127
  %966 = and i32 %962, 2130706432
  %.not1341 = icmp eq i32 %966, 0
  br i1 %.not1341, label %.loopexit, label %967, !prof !11

967:                                              ; preds = %961
  %968 = ptrtoint ptr %2 to i64
  %reass.sub2948 = sub i64 %954, %968
  %969 = add i64 %reass.sub2948, 1
  br label %.thread1468

970:                                              ; preds = %.lr.ph
  %971 = ptrtoint ptr %.411152898 to i64
  %972 = ptrtoint ptr %.11112 to i64
  %973 = sub i64 %971, %972
  %974 = load i32, ptr %34, align 4, !tbaa !13
  %975 = trunc i64 %973 to i32
  %976 = add i32 %974, %975
  store i32 %976, ptr %34, align 4, !tbaa !13
  %977 = icmp ugt i32 %976, 81920
  br i1 %977, label %978, label %982, !prof !10

978:                                              ; preds = %970
  %979 = load i32, ptr %8, align 4
  %980 = and i32 %979, -2130706433
  %981 = or disjoint i32 %980, 201326592
  store i32 %981, ptr %8, align 4
  br label %.thread

982:                                              ; preds = %970
  %983 = shl nuw nsw i32 %.011252897, 17
  %984 = and i32 %983, 16646144
  %985 = and i32 %936, -16646145
  %986 = or disjoint i32 %985, %984
  store i32 %986, ptr %0, align 8
  %987 = load i32, ptr %8, align 4
  %988 = and i32 %987, 2130706432
  %989 = icmp eq i32 %988, 0
  br i1 %989, label %991, label %990

990:                                              ; preds = %982
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1571, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

991:                                              ; preds = %982
  %.not1334 = icmp eq ptr %.21129, null
  br i1 %.not1334, label %.backedge.backedge, label %992

992:                                              ; preds = %991
  %993 = load ptr, ptr %40, align 8, !tbaa !29
  %.not1335 = icmp eq ptr %993, null
  br i1 %.not1335, label %.backedge.backedge, label %994, !prof !10

994:                                              ; preds = %992
  %995 = and i32 %986, -130049
  %996 = or disjoint i32 %995, 51200
  store i32 %996, ptr %0, align 8
  %997 = load ptr, ptr %40, align 8, !tbaa !29
  %998 = ptrtoint ptr %.21129 to i64
  %999 = sub i64 %971, %998
  %1000 = tail call i32 %997(ptr noundef nonnull %0, ptr noundef nonnull %.21129, i64 noundef %999) #4
  %.not1336 = icmp eq i32 %1000, 0
  %.pre3719 = load i32, ptr %8, align 4
  br i1 %.not1336, label %1004, label %1001, !prof !11

1001:                                             ; preds = %994
  %1002 = and i32 %.pre3719, -2130706433
  %1003 = or disjoint i32 %1002, 67108864
  store i32 %1003, ptr %8, align 4
  br label %1004

1004:                                             ; preds = %1001, %994
  %1005 = phi i32 [ %1003, %1001 ], [ %.pre3719, %994 ]
  %1006 = load i32, ptr %0, align 8
  %1007 = lshr i32 %1006, 10
  %1008 = and i32 %1007, 127
  %1009 = and i32 %1005, 2130706432
  %.not1337 = icmp eq i32 %1009, 0
  br i1 %.not1337, label %.backedge.backedge, label %1010, !prof !11

1010:                                             ; preds = %1004
  %1011 = ptrtoint ptr %2 to i64
  %1012 = sub i64 %971, %1011
  br label %.thread1468

1013:                                             ; preds = %.lr.ph
  %1014 = icmp eq i8 %937, 9
  %or.cond59 = or i1 %41, %1014
  %1015 = add i8 %937, -32
  %or.cond62 = icmp ult i8 %1015, 95
  %or.cond = or i1 %or.cond59, %or.cond62
  br i1 %or.cond, label %1020, label %1016

1016:                                             ; preds = %1013
  %1017 = load i32, ptr %8, align 4
  %1018 = and i32 %1017, -2130706433
  %1019 = or disjoint i32 %1018, 402653184
  store i32 %1019, ptr %8, align 4
  br label %.thread

1020:                                             ; preds = %1013
  %1021 = or i8 %937, 32
  switch i32 %.011252897, label %.thread1455 [
    i32 0, label %1022
    i32 9, label %1029
    i32 11, label %1029
    i32 10, label %1030
    i32 13, label %1054
    i32 14, label %1068
    i32 15, label %1077
    i32 16, label %1091
    i32 17, label %1105
    i32 18, label %1119
    i32 19, label %1123
    i32 20, label %1124
    i32 21, label %1124
    i32 22, label %1124
  ]

1022:                                             ; preds = %1020
  %1023 = ptrtoint ptr %.411152898 to i64
  %1024 = sub i64 %36, %1023
  %1025 = tail call i64 @llvm.umin.i64(i64 %1024, i64 81920)
  %1026 = tail call ptr @memchr(ptr noundef nonnull %.411152898, i32 noundef 13, i64 noundef %1025) #6
  %1027 = tail call ptr @memchr(ptr noundef nonnull %.411152898, i32 noundef 10, i64 noundef %1025) #6
  %.not1330 = icmp eq ptr %1026, null
  %.not1331 = icmp eq ptr %1027, null
  %. = select i1 %.not1331, ptr %33, ptr %1027
  %.not1333 = icmp ult ptr %1026, %1027
  %or.cond1409 = or i1 %.not1331, %.not1333
  %spec.select1429 = select i1 %or.cond1409, ptr %1026, ptr %1027
  %.51116 = select i1 %.not1330, ptr %., ptr %spec.select1429
  %1028 = getelementptr inbounds i8, ptr %.51116, i64 -1
  br label %.thread1455

1029:                                             ; preds = %1020, %1020
  tail call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 1610, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1030:                                             ; preds = %1020
  %1031 = icmp eq i8 %937, 32
  br i1 %1031, label %.thread1455, label %1032

1032:                                             ; preds = %1030
  %1033 = add i8 %937, -58
  %1034 = icmp ult i8 %1033, -10
  br i1 %1034, label %1035, label %1041, !prof !10

1035:                                             ; preds = %1032
  %1036 = load i32, ptr %8, align 4
  %1037 = and i32 %1036, -2130706433
  %1038 = or disjoint i32 %1037, 419430400
  store i32 %1038, ptr %8, align 4
  %1039 = and i32 %936, -16646145
  %1040 = or disjoint i32 %1039, 1310720
  store i32 %1040, ptr %0, align 8
  br label %.thread

1041:                                             ; preds = %1032
  %1042 = load i64, ptr %35, align 8, !tbaa !18
  %1043 = icmp ugt i64 %1042, 1844674407370955160
  br i1 %1043, label %1044, label %1050, !prof !10

1044:                                             ; preds = %1041
  %1045 = load i32, ptr %8, align 4
  %1046 = and i32 %1045, -2130706433
  %1047 = or disjoint i32 %1046, 419430400
  store i32 %1047, ptr %8, align 4
  %1048 = and i32 %936, -16646145
  %1049 = or disjoint i32 %1048, 1310720
  store i32 %1049, ptr %0, align 8
  br label %.thread

1050:                                             ; preds = %1041
  %1051 = mul nuw i64 %1042, 10
  %narrow = add nsw i8 %937, -48
  %1052 = zext nneg i8 %narrow to i64
  %1053 = add nuw i64 %1051, %1052
  store i64 %1053, ptr %35, align 8, !tbaa !18
  br label %.thread1455

1054:                                             ; preds = %1020
  %1055 = add i32 %936, 16777216
  %1056 = and i32 %1055, 2130706432
  %1057 = and i32 %936, -2130706433
  %1058 = or disjoint i32 %1056, %1057
  store i32 %1058, ptr %0, align 8
  %1059 = lshr i32 %1055, 24
  %1060 = and i32 %1059, 127
  %1061 = icmp ugt i32 %1060, 7
  br i1 %1061, label %.thread1455, label %1062

1062:                                             ; preds = %1054
  %1063 = zext nneg i32 %1060 to i64
  %1064 = getelementptr inbounds [8 x i8], ptr @.str.9, i64 0, i64 %1063
  %1065 = load i8, ptr %1064, align 1, !tbaa !12
  %.not1329 = icmp eq i8 %1021, %1065
  br i1 %.not1329, label %1066, label %.thread1455

1066:                                             ; preds = %1062
  %1067 = icmp eq i32 %1060, 6
  %spec.select1410 = select i1 %1067, i32 19, i32 13
  br label %.thread1455

1068:                                             ; preds = %1020
  switch i8 %1021, label %1071 [
    i8 107, label %.thread1455
    i8 99, label %1069
    i8 117, label %1070
  ]

1069:                                             ; preds = %1068
  br label %.thread1455

1070:                                             ; preds = %1068
  br label %.thread1455

1071:                                             ; preds = %1068
  %1072 = zext i8 %1021 to i64
  %1073 = getelementptr inbounds [256 x i8], ptr @tokens, i64 0, i64 %1072
  %1074 = load i8, ptr %1073, align 1, !tbaa !12
  %.not1328 = icmp eq i8 %1074, 0
  br i1 %.not1328, label %1075, label %.thread1455

1075:                                             ; preds = %1071
  %1076 = icmp eq i8 %1021, 32
  %spec.select1411 = select i1 %1076, i32 14, i32 0
  br label %.thread1455

1077:                                             ; preds = %1020
  %1078 = add i32 %936, 16777216
  %1079 = and i32 %1078, 2130706432
  %1080 = and i32 %936, -2130706433
  %1081 = or disjoint i32 %1079, %1080
  store i32 %1081, ptr %0, align 8
  %1082 = lshr i32 %1078, 24
  %1083 = and i32 %1082, 127
  %1084 = icmp ugt i32 %1083, 10
  br i1 %1084, label %.thread1455, label %1085

1085:                                             ; preds = %1077
  %1086 = zext nneg i32 %1083 to i64
  %1087 = getelementptr inbounds [11 x i8], ptr @.str.10, i64 0, i64 %1086
  %1088 = load i8, ptr %1087, align 1, !tbaa !12
  %.not1327 = icmp eq i8 %1021, %1088
  br i1 %.not1327, label %1089, label %.thread1455

1089:                                             ; preds = %1085
  %1090 = icmp eq i32 %1083, 9
  %spec.select1412 = select i1 %1090, i32 20, i32 15
  br label %.thread1455

1091:                                             ; preds = %1020
  %1092 = add i32 %936, 16777216
  %1093 = and i32 %1092, 2130706432
  %1094 = and i32 %936, -2130706433
  %1095 = or disjoint i32 %1093, %1094
  store i32 %1095, ptr %0, align 8
  %1096 = lshr i32 %1092, 24
  %1097 = and i32 %1096, 127
  %1098 = icmp ugt i32 %1097, 5
  br i1 %1098, label %.thread1455, label %1099

1099:                                             ; preds = %1091
  %1100 = zext nneg i32 %1097 to i64
  %1101 = getelementptr inbounds [6 x i8], ptr @.str.11, i64 0, i64 %1100
  %1102 = load i8, ptr %1101, align 1, !tbaa !12
  %.not1326 = icmp eq i8 %1021, %1102
  br i1 %.not1326, label %1103, label %.thread1455

1103:                                             ; preds = %1099
  %1104 = icmp eq i32 %1097, 4
  %spec.select1413 = select i1 %1104, i32 21, i32 16
  br label %.thread1455

1105:                                             ; preds = %1020
  %1106 = add i32 %936, 16777216
  %1107 = and i32 %1106, 2130706432
  %1108 = and i32 %936, -2130706433
  %1109 = or disjoint i32 %1107, %1108
  store i32 %1109, ptr %0, align 8
  %1110 = lshr i32 %1106, 24
  %1111 = and i32 %1110, 127
  %1112 = icmp ugt i32 %1111, 7
  br i1 %1112, label %.thread1455, label %1113

1113:                                             ; preds = %1105
  %1114 = zext nneg i32 %1111 to i64
  %1115 = getelementptr inbounds [8 x i8], ptr @.str.6, i64 0, i64 %1114
  %1116 = load i8, ptr %1115, align 1, !tbaa !12
  %.not1325 = icmp eq i8 %1021, %1116
  br i1 %.not1325, label %1117, label %.thread1455

1117:                                             ; preds = %1113
  %1118 = icmp eq i32 %1111, 6
  %spec.select1414 = select i1 %1118, i32 22, i32 17
  br label %.thread1455

1119:                                             ; preds = %1020
  %1120 = icmp eq i8 %937, 44
  br i1 %1120, label %1121, label %.thread1455

1121:                                             ; preds = %1119
  %1122 = and i32 %936, -2130706433
  store i32 %1122, ptr %0, align 8
  br label %.thread1455

1123:                                             ; preds = %1020
  %.not1324 = icmp eq i8 %937, 32
  %spec.select1415 = select i1 %.not1324, i32 19, i32 0
  br label %.thread1455

1124:                                             ; preds = %1020, %1020, %1020
  switch i8 %937, label %1127 [
    i8 44, label %switch.lookup
    i8 32, label %.thread1455
  ]

switch.lookup:                                    ; preds = %1124
  %switch.tableidx = add nsw i32 %.011252897, -20
  %1125 = sext i32 %switch.tableidx to i64
  %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table.http_parser_execute, i64 0, i64 %1125
  %switch.load = load i32, ptr %switch.gep, align 4
  %.masked = and i32 %936, -2130706433
  %1126 = or i32 %.masked, %switch.load
  store i32 %1126, ptr %0, align 8
  br label %.thread1455

1127:                                             ; preds = %1124
  br label %.thread1455

.thread1455:                                      ; preds = %1030, %1050, %1123, %1117, %1103, %1089, %1075, %1066, %1020, %1124, %1105, %1113, %1091, %1099, %1077, %1085, %1071, %1068, %1054, %1062, %1022, %1069, %1070, %1121, %1119, %1127, %switch.lookup
  %1128 = phi i32 [ %1126, %switch.lookup ], [ %936, %1127 ], [ %1122, %1121 ], [ %936, %1119 ], [ %936, %1069 ], [ %936, %1070 ], [ %936, %1022 ], [ %1058, %1062 ], [ %1058, %1054 ], [ %1058, %1066 ], [ %936, %1068 ], [ %936, %1071 ], [ %936, %1075 ], [ %1081, %1085 ], [ %1081, %1077 ], [ %1081, %1089 ], [ %1095, %1099 ], [ %1095, %1091 ], [ %1095, %1103 ], [ %1109, %1113 ], [ %1109, %1105 ], [ %1109, %1117 ], [ %936, %1123 ], [ %936, %1124 ], [ %936, %1020 ], [ %936, %1050 ], [ %936, %1030 ]
  %.11126 = phi i32 [ 14, %switch.lookup ], [ 18, %1127 ], [ 14, %1121 ], [ 18, %1119 ], [ 16, %1069 ], [ 17, %1070 ], [ 0, %1022 ], [ 0, %1062 ], [ 0, %1054 ], [ %spec.select1410, %1066 ], [ 15, %1068 ], [ 18, %1071 ], [ %spec.select1411, %1075 ], [ 18, %1085 ], [ 18, %1077 ], [ %spec.select1412, %1089 ], [ 18, %1099 ], [ 18, %1091 ], [ %spec.select1413, %1103 ], [ 18, %1113 ], [ 18, %1105 ], [ %spec.select1414, %1117 ], [ %spec.select1415, %1123 ], [ %.011252897, %1124 ], [ 0, %1020 ], [ 10, %1050 ], [ 10, %1030 ]
  %.61117 = phi ptr [ %.411152898, %switch.lookup ], [ %.411152898, %1127 ], [ %.411152898, %1121 ], [ %.411152898, %1119 ], [ %.411152898, %1069 ], [ %.411152898, %1070 ], [ %1028, %1022 ], [ %.411152898, %1062 ], [ %.411152898, %1054 ], [ %.411152898, %1066 ], [ %.411152898, %1068 ], [ %.411152898, %1071 ], [ %.411152898, %1075 ], [ %.411152898, %1085 ], [ %.411152898, %1077 ], [ %.411152898, %1089 ], [ %.411152898, %1099 ], [ %.411152898, %1091 ], [ %.411152898, %1103 ], [ %.411152898, %1113 ], [ %.411152898, %1105 ], [ %.411152898, %1117 ], [ %.411152898, %1123 ], [ %.411152898, %1124 ], [ %.411152898, %1020 ], [ %.411152898, %1050 ], [ %.411152898, %1030 ]
  %1129 = getelementptr inbounds i8, ptr %.61117, i64 1
  %.not1322 = icmp eq ptr %1129, %33
  br i1 %.not1322, label %.loopexit, label %.lr.ph, !llvm.loop !30

.loopexit:                                        ; preds = %932, %.thread1455, %948, %961, %947
  %1130 = phi i32 [ %942, %947 ], [ %963, %961 ], [ %942, %948 ], [ %1128, %.thread1455 ], [ %933, %932 ]
  %.011251562 = phi i32 [ %.011252897, %947 ], [ %.011252897, %961 ], [ %.011252897, %948 ], [ %.11126, %.thread1455 ], [ %935, %932 ]
  %.411151552 = phi ptr [ %.411152898, %947 ], [ %.411152898, %961 ], [ %.411152898, %948 ], [ %1129, %.thread1455 ], [ %.11112, %932 ]
  %.not13221544 = phi i64 [ 0, %947 ], [ 0, %961 ], [ 0, %948 ], [ -1, %.thread1455 ], [ -1, %932 ]
  %.18 = phi i32 [ 50, %947 ], [ %965, %961 ], [ 50, %948 ], [ 48, %.thread1455 ], [ 48, %932 ]
  %.51132 = phi ptr [ null, %947 ], [ null, %961 ], [ null, %948 ], [ %.21129, %.thread1455 ], [ %.21129, %932 ]
  %1131 = shl nuw nsw i32 %.011251562, 17
  %1132 = and i32 %1131, 16646144
  %1133 = and i32 %1130, -16646145
  %1134 = or disjoint i32 %1133, %1132
  store i32 %1134, ptr %0, align 8
  %1135 = ptrtoint ptr %.411151552 to i64
  %1136 = ptrtoint ptr %.11112 to i64
  %1137 = sub i64 %1135, %1136
  %1138 = load i32, ptr %34, align 4, !tbaa !13
  %1139 = trunc i64 %1137 to i32
  %1140 = add i32 %1138, %1139
  store i32 %1140, ptr %34, align 4, !tbaa !13
  %1141 = icmp ugt i32 %1140, 81920
  br i1 %1141, label %1142, label %.thread1475, !prof !10

1142:                                             ; preds = %.loopexit
  %1143 = load i32, ptr %8, align 4
  %1144 = and i32 %1143, -2130706433
  %1145 = or disjoint i32 %1144, 201326592
  store i32 %1145, ptr %8, align 4
  br label %.thread

.thread1475:                                      ; preds = %.loopexit
  %spec.select1416 = getelementptr inbounds i8, ptr %.411151552, i64 %.not13221544
  br label %.thread1441

1146:                                             ; preds = %.backedge
  %.not1321 = icmp eq i8 %.01105, 10
  br i1 %.not1321, label %.thread1441, label %1147, !prof !11

1147:                                             ; preds = %1146
  %1148 = load i32, ptr %8, align 4
  %1149 = and i32 %1148, -2130706433
  %1150 = or disjoint i32 %1149, 385875968
  store i32 %1150, ptr %8, align 4
  br label %.thread

1151:                                             ; preds = %.backedge
  switch i8 %.01105, label %1152 [
    i8 32, label %.backedge.backedge
    i8 9, label %.backedge.backedge
  ]

1152:                                             ; preds = %1151
  %1153 = load i32, ptr %0, align 8
  %1154 = lshr i32 %1153, 17
  %1155 = and i32 %1154, 127
  switch i32 %1155, label %.backedge.backedge [
    i32 20, label %1156
    i32 21, label %1158
    i32 19, label %1160
    i32 22, label %1162
  ]

1156:                                             ; preds = %1152
  %1157 = or i32 %1153, 8
  br label %.backedge.sink.split

1158:                                             ; preds = %1152
  %1159 = or i32 %1153, 16
  br label %.backedge.sink.split

1160:                                             ; preds = %1152
  %1161 = or i32 %1153, 4
  br label %.backedge.sink.split

1162:                                             ; preds = %1152
  %1163 = or i32 %1153, 32
  br label %.backedge.sink.split

1164:                                             ; preds = %.backedge
  %.not1320 = icmp eq i8 %.01105, 10
  br i1 %.not1320, label %.thread1441, label %1165

1165:                                             ; preds = %1164
  %1166 = load i32, ptr %8, align 4
  %1167 = and i32 %1166, -2130706433
  %1168 = or disjoint i32 %1167, 503316480
  store i32 %1168, ptr %8, align 4
  br label %.thread

1169:                                             ; preds = %.backedge
  switch i8 %.01105, label %1170 [
    i8 32, label %.thread1441
    i8 9, label %.thread1441
  ]

1170:                                             ; preds = %1169
  %1171 = load i32, ptr %0, align 8
  %1172 = lshr i32 %1171, 17
  %1173 = and i32 %1172, 127
  %switch.tableidx5266 = add nsw i32 %1173, -19
  %1174 = icmp ult i32 %switch.tableidx5266, 4
  br i1 %1174, label %switch.lookup5265, label %1177

switch.lookup5265:                                ; preds = %1170
  %1175 = zext nneg i32 %switch.tableidx5266 to i64
  %switch.gep5267 = getelementptr inbounds [4 x i32], ptr @switch.table.http_parser_execute.1, i64 0, i64 %1175
  %switch.load5268 = load i32, ptr %switch.gep5267, align 4
  %1176 = or i32 %1171, %switch.load5268
  store i32 %1176, ptr %0, align 8
  br label %1177

1177:                                             ; preds = %1170, %switch.lookup5265
  %1178 = phi i32 [ %1171, %1170 ], [ %1176, %switch.lookup5265 ]
  %.not1315 = icmp eq ptr %.21129, null
  %spec.select1417 = select i1 %.not1315, ptr %.11112, ptr %.21129
  %1179 = load i32, ptr %8, align 4
  %1180 = and i32 %1179, 2130706432
  %1181 = icmp eq i32 %1180, 0
  br i1 %1181, label %1183, label %1182

1182:                                             ; preds = %1177
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1818, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1183:                                             ; preds = %1177
  %.not1316 = icmp eq ptr %spec.select1417, null
  br i1 %.not1316, label %.backedge.backedge, label %1184

1184:                                             ; preds = %1183
  %1185 = load ptr, ptr %40, align 8, !tbaa !29
  %.not1317 = icmp eq ptr %1185, null
  br i1 %.not1317, label %.backedge.backedge, label %1186, !prof !10

1186:                                             ; preds = %1184
  %1187 = and i32 %1178, -130049
  %1188 = or disjoint i32 %1187, 43008
  store i32 %1188, ptr %0, align 8
  %1189 = load ptr, ptr %40, align 8, !tbaa !29
  %1190 = ptrtoint ptr %.11112 to i64
  %1191 = ptrtoint ptr %spec.select1417 to i64
  %1192 = sub i64 %1190, %1191
  %1193 = tail call i32 %1189(ptr noundef nonnull %0, ptr noundef nonnull %spec.select1417, i64 noundef %1192) #4
  %.not1318 = icmp eq i32 %1193, 0
  %.pre3718 = load i32, ptr %8, align 4
  br i1 %.not1318, label %1197, label %1194, !prof !11

1194:                                             ; preds = %1186
  %1195 = and i32 %.pre3718, -2130706433
  %1196 = or disjoint i32 %1195, 67108864
  store i32 %1196, ptr %8, align 4
  br label %1197

1197:                                             ; preds = %1194, %1186
  %1198 = phi i32 [ %1196, %1194 ], [ %.pre3718, %1186 ]
  %1199 = load i32, ptr %0, align 8
  %1200 = lshr i32 %1199, 10
  %1201 = and i32 %1200, 127
  %1202 = and i32 %1198, 2130706432
  %.not1319 = icmp eq i32 %1202, 0
  br i1 %.not1319, label %.backedge.backedge, label %1203, !prof !11

1203:                                             ; preds = %1197
  %1204 = ptrtoint ptr %2 to i64
  %1205 = sub i64 %1190, %1204
  br label %.thread1468

1206:                                             ; preds = %.backedge
  %.not1306 = icmp eq i8 %.01105, 10
  br i1 %.not1306, label %1211, label %1207

1207:                                             ; preds = %1206
  %1208 = load i32, ptr %8, align 4
  %1209 = and i32 %1208, -2130706433
  %1210 = or disjoint i32 %1209, 503316480
  store i32 %1210, ptr %8, align 4
  br label %.thread

1211:                                             ; preds = %1206
  %1212 = load i32, ptr %0, align 8
  %1213 = and i32 %1212, 64
  %.not1307 = icmp eq i32 %1213, 0
  br i1 %.not1307, label %1239, label %1214

1214:                                             ; preds = %1211
  %1215 = load i32, ptr %8, align 4
  %1216 = and i32 %1215, 2130706432
  %1217 = icmp eq i32 %1216, 0
  br i1 %1217, label %1219, label %1218

1218:                                             ; preds = %1214
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1830, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1219:                                             ; preds = %1214
  %1220 = load ptr, ptr %38, align 8, !tbaa !31
  %.not1312 = icmp eq ptr %1220, null
  br i1 %.not1312, label %.backedge.backedge, label %1221, !prof !10

1221:                                             ; preds = %1219
  %1222 = and i32 %1212, -130049
  %1223 = or disjoint i32 %1222, 63488
  store i32 %1223, ptr %0, align 8
  %1224 = load ptr, ptr %38, align 8, !tbaa !31
  %1225 = tail call i32 %1224(ptr noundef nonnull %0) #4
  %.not1313 = icmp eq i32 %1225, 0
  %.pre3717 = load i32, ptr %8, align 4
  br i1 %.not1313, label %1229, label %1226, !prof !11

1226:                                             ; preds = %1221
  %1227 = and i32 %.pre3717, -2130706433
  %1228 = or disjoint i32 %1227, 167772160
  store i32 %1228, ptr %8, align 4
  br label %1229

1229:                                             ; preds = %1226, %1221
  %1230 = phi i32 [ %1228, %1226 ], [ %.pre3717, %1221 ]
  %1231 = load i32, ptr %0, align 8
  %1232 = lshr i32 %1231, 10
  %1233 = and i32 %1232, 127
  %1234 = and i32 %1230, 2130706432
  %.not1314 = icmp eq i32 %1234, 0
  br i1 %.not1314, label %.backedge.backedge, label %1235, !prof !11

1235:                                             ; preds = %1229
  %1236 = ptrtoint ptr %.11112 to i64
  %1237 = ptrtoint ptr %2 to i64
  %1238 = sub i64 %1236, %1237
  br label %.thread1468

1239:                                             ; preds = %1211
  %1240 = and i32 %1212, 516
  %or.cond1418.not = icmp eq i32 %1240, 516
  br i1 %or.cond1418.not, label %1241, label %.thread1482

1241:                                             ; preds = %1239
  %1242 = load i32, ptr %8, align 4
  %1243 = and i32 %1242, -2130706433
  %1244 = or disjoint i32 %1243, 436207616
  store i32 %1244, ptr %8, align 4
  br label %.thread

.thread1482:                                      ; preds = %1239
  %1245 = and i32 %1212, 160
  %1246 = icmp eq i32 %1245, 160
  %1247 = load i32, ptr %8, align 4
  %.fr1514 = freeze i32 %1247
  %1248 = and i32 %.fr1514, 16711680
  %1249 = icmp eq i32 %1248, 327680
  %1250 = or i1 %1246, %1249
  %1251 = select i1 %1250, i32 -2147483648, i32 0
  %1252 = and i32 %.fr1514, 2147483647
  %1253 = or disjoint i32 %1252, %1251
  store i32 %1253, ptr %8, align 4
  %1254 = load ptr, ptr %39, align 8, !tbaa !32
  %.not1310 = icmp eq ptr %1254, null
  br i1 %.not1310, label %1270, label %1255

1255:                                             ; preds = %.thread1482
  %1256 = tail call i32 %1254(ptr noundef nonnull %0) #4
  switch i32 %1256, label %1260 [
    i32 0, label %1270
    i32 1, label %1257
  ]

1257:                                             ; preds = %1255
  %1258 = load i32, ptr %0, align 8
  %1259 = or i32 %1258, 256
  store i32 %1259, ptr %0, align 8
  br label %1270

1260:                                             ; preds = %1255
  %1261 = load i32, ptr %8, align 4
  %1262 = and i32 %1261, -2130706433
  %1263 = or disjoint i32 %1262, 83886080
  store i32 %1263, ptr %8, align 4
  %1264 = load i32, ptr %0, align 8
  %1265 = and i32 %1264, -130049
  %1266 = or disjoint i32 %1265, 57344
  store i32 %1266, ptr %0, align 8
  %1267 = ptrtoint ptr %.11112 to i64
  %1268 = ptrtoint ptr %2 to i64
  %1269 = sub i64 %1267, %1268
  br label %.thread1468

1270:                                             ; preds = %1255, %1257, %.thread1482
  %1271 = load i32, ptr %8, align 4
  %1272 = and i32 %1271, 2130706432
  %.not1311 = icmp eq i32 %1272, 0
  br i1 %.not1311, label %.backedge.backedge, label %1273

1273:                                             ; preds = %1270
  %1274 = load i32, ptr %0, align 8
  %1275 = and i32 %1274, -130049
  %1276 = or disjoint i32 %1275, 57344
  store i32 %1276, ptr %0, align 8
  %1277 = ptrtoint ptr %.11112 to i64
  %1278 = ptrtoint ptr %2 to i64
  %1279 = sub i64 %1277, %1278
  br label %.thread1468

1280:                                             ; preds = %.backedge
  %.not1282 = icmp eq i8 %.01105, 10
  br i1 %.not1282, label %1281, label %1449

1281:                                             ; preds = %1280
  store i32 0, ptr %34, align 4, !tbaa !13
  %1282 = load i32, ptr %0, align 8
  %1283 = and i32 %1282, 4
  %.not1283 = icmp eq i32 %1283, 0
  br i1 %.not1283, label %1284, label %1287

1284:                                             ; preds = %1281
  %1285 = load i64, ptr %35, align 8, !tbaa !18
  %1286 = add i64 %1285, -1
  %spec.select1419 = icmp ult i64 %1286, -2
  br label %1287

1287:                                             ; preds = %1284, %1281
  %1288 = phi i1 [ true, %1281 ], [ %spec.select1419, %1284 ]
  %1289 = load i32, ptr %8, align 4
  %.not1285 = icmp sgt i32 %1289, -1
  br i1 %.not1285, label %1339, label %1290

1290:                                             ; preds = %1287
  %1291 = and i32 %1289, 16711680
  %1292 = icmp eq i32 %1291, 327680
  br i1 %1292, label %1296, label %1293

1293:                                             ; preds = %1290
  %1294 = and i32 %1282, 256
  %1295 = icmp eq i32 %1294, 0
  %or.cond73 = and i1 %1295, %1288
  br i1 %or.cond73, label %.thread3744, label %1296

1296:                                             ; preds = %1293, %1290
  %1297 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1302 = icmp eq i32 %1297, 0
  br i1 %.not1302, label %1303, label %1298

1298:                                             ; preds = %1296
  %1299 = load i32, ptr %0, align 8
  %1300 = and i32 %1299, 3
  %1301 = icmp eq i32 %1300, 0
  %1302 = select i1 %1301, i32 18, i32 4
  br label %1303

1303:                                             ; preds = %1296, %1298
  %1304 = phi i32 [ %1302, %1298 ], [ 1, %1296 ]
  %1305 = load i32, ptr %8, align 4
  %1306 = and i32 %1305, 2130706432
  %1307 = icmp eq i32 %1306, 0
  br i1 %1307, label %1309, label %1308

1308:                                             ; preds = %1303
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1894, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1309:                                             ; preds = %1303
  %1310 = load ptr, ptr %43, align 8, !tbaa !5
  %.not1303 = icmp eq ptr %1310, null
  %.pre3713 = load i32, ptr %0, align 8
  br i1 %.not1303, label %1330, label %1311, !prof !10

1311:                                             ; preds = %1309
  %1312 = shl nuw nsw i32 %1304, 10
  %1313 = and i32 %.pre3713, -130049
  %1314 = or disjoint i32 %1313, %1312
  store i32 %1314, ptr %0, align 8
  %1315 = load ptr, ptr %43, align 8, !tbaa !5
  %1316 = tail call i32 %1315(ptr noundef nonnull %0) #4
  %.not1304 = icmp eq i32 %1316, 0
  %.pre3712 = load i32, ptr %8, align 4
  br i1 %.not1304, label %1320, label %1317, !prof !11

1317:                                             ; preds = %1311
  %1318 = and i32 %.pre3712, -2130706433
  %1319 = or disjoint i32 %1318, 117440512
  store i32 %1319, ptr %8, align 4
  br label %1320

1320:                                             ; preds = %1317, %1311
  %1321 = phi i32 [ %1319, %1317 ], [ %.pre3712, %1311 ]
  %1322 = load i32, ptr %0, align 8
  %1323 = lshr i32 %1322, 10
  %1324 = and i32 %1323, 127
  %1325 = and i32 %1321, 2130706432
  %.not1305 = icmp eq i32 %1325, 0
  br i1 %.not1305, label %1330, label %1326, !prof !11

1326:                                             ; preds = %1320
  %1327 = ptrtoint ptr %.11112 to i64
  %1328 = ptrtoint ptr %2 to i64
  %reass.sub2943 = sub i64 %1327, %1328
  %1329 = add i64 %reass.sub2943, 1
  br label %.thread1468

1330:                                             ; preds = %1309, %1320
  %1331 = phi i32 [ %1322, %1320 ], [ %.pre3713, %1309 ]
  %.23 = phi i32 [ %1324, %1320 ], [ %1304, %1309 ]
  %1332 = shl nuw nsw i32 %.23, 10
  %1333 = and i32 %1332, 130048
  %1334 = and i32 %1331, -130049
  %1335 = or disjoint i32 %1334, %1333
  store i32 %1335, ptr %0, align 8
  %1336 = ptrtoint ptr %.11112 to i64
  %1337 = ptrtoint ptr %2 to i64
  %reass.sub2944 = sub i64 %1336, %1337
  %1338 = add i64 %reass.sub2944, 1
  br label %.thread1468

1339:                                             ; preds = %1287
  %.pre3742 = and i32 %1282, 256
  %.not1286 = icmp eq i32 %.pre3742, 0
  br i1 %.not1286, label %.thread3744, label %1340

1340:                                             ; preds = %1339
  %1341 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1298 = icmp eq i32 %1341, 0
  br i1 %.not1298, label %1347, label %1342

1342:                                             ; preds = %1340
  %1343 = load i32, ptr %0, align 8
  %1344 = and i32 %1343, 3
  %1345 = icmp eq i32 %1344, 0
  %1346 = select i1 %1345, i32 18, i32 4
  br label %1347

1347:                                             ; preds = %1340, %1342
  %1348 = phi i32 [ %1346, %1342 ], [ 1, %1340 ]
  %1349 = load i32, ptr %8, align 4
  %1350 = and i32 %1349, 2130706432
  %1351 = icmp eq i32 %1350, 0
  br i1 %1351, label %1353, label %1352

1352:                                             ; preds = %1347
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1900, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1353:                                             ; preds = %1347
  %1354 = load ptr, ptr %43, align 8, !tbaa !5
  %.not1299 = icmp eq ptr %1354, null
  br i1 %.not1299, label %.thread1441, label %1355, !prof !10

1355:                                             ; preds = %1353
  %1356 = load i32, ptr %0, align 8
  %1357 = shl nuw nsw i32 %1348, 10
  %1358 = and i32 %1356, -130049
  %1359 = or disjoint i32 %1358, %1357
  store i32 %1359, ptr %0, align 8
  %1360 = load ptr, ptr %43, align 8, !tbaa !5
  %1361 = tail call i32 %1360(ptr noundef nonnull %0) #4
  %.not1300 = icmp eq i32 %1361, 0
  %.pre3714 = load i32, ptr %8, align 4
  br i1 %.not1300, label %1365, label %1362, !prof !11

1362:                                             ; preds = %1355
  %1363 = and i32 %.pre3714, -2130706433
  %1364 = or disjoint i32 %1363, 117440512
  store i32 %1364, ptr %8, align 4
  br label %1365

1365:                                             ; preds = %1362, %1355
  %1366 = phi i32 [ %1364, %1362 ], [ %.pre3714, %1355 ]
  %1367 = load i32, ptr %0, align 8
  %1368 = lshr i32 %1367, 10
  %1369 = and i32 %1368, 127
  %1370 = and i32 %1366, 2130706432
  %.not1301 = icmp eq i32 %1370, 0
  br i1 %.not1301, label %.thread1441, label %1371, !prof !11

1371:                                             ; preds = %1365
  %1372 = ptrtoint ptr %.11112 to i64
  %1373 = ptrtoint ptr %2 to i64
  %reass.sub2945 = sub i64 %1372, %1373
  %1374 = add i64 %reass.sub2945, 1
  br label %.thread1468

.thread3744:                                      ; preds = %1293, %1339
  br i1 %.not1283, label %1375, label %.thread1441

1375:                                             ; preds = %.thread3744
  %1376 = load i64, ptr %35, align 8, !tbaa !18
  switch i64 %1376, label %.thread1441 [
    i64 0, label %1377
    i64 -1, label %1412
  ]

1377:                                             ; preds = %1375
  %1378 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1294 = icmp eq i32 %1378, 0
  br i1 %.not1294, label %1384, label %1379

1379:                                             ; preds = %1377
  %1380 = load i32, ptr %0, align 8
  %1381 = and i32 %1380, 3
  %1382 = icmp eq i32 %1381, 0
  %1383 = select i1 %1382, i32 18, i32 4
  br label %1384

1384:                                             ; preds = %1377, %1379
  %1385 = phi i32 [ %1383, %1379 ], [ 1, %1377 ]
  %1386 = load i32, ptr %8, align 4
  %1387 = and i32 %1386, 2130706432
  %1388 = icmp eq i32 %1387, 0
  br i1 %1388, label %1390, label %1389

1389:                                             ; preds = %1384
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1908, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1390:                                             ; preds = %1384
  %1391 = load ptr, ptr %43, align 8, !tbaa !5
  %.not1295 = icmp eq ptr %1391, null
  br i1 %.not1295, label %.thread1441, label %1392, !prof !10

1392:                                             ; preds = %1390
  %1393 = load i32, ptr %0, align 8
  %1394 = shl nuw nsw i32 %1385, 10
  %1395 = and i32 %1393, -130049
  %1396 = or disjoint i32 %1395, %1394
  store i32 %1396, ptr %0, align 8
  %1397 = load ptr, ptr %43, align 8, !tbaa !5
  %1398 = tail call i32 %1397(ptr noundef nonnull %0) #4
  %.not1296 = icmp eq i32 %1398, 0
  %.pre3716 = load i32, ptr %8, align 4
  br i1 %.not1296, label %1402, label %1399, !prof !11

1399:                                             ; preds = %1392
  %1400 = and i32 %.pre3716, -2130706433
  %1401 = or disjoint i32 %1400, 117440512
  store i32 %1401, ptr %8, align 4
  br label %1402

1402:                                             ; preds = %1399, %1392
  %1403 = phi i32 [ %1401, %1399 ], [ %.pre3716, %1392 ]
  %1404 = load i32, ptr %0, align 8
  %1405 = lshr i32 %1404, 10
  %1406 = and i32 %1405, 127
  %1407 = and i32 %1403, 2130706432
  %.not1297 = icmp eq i32 %1407, 0
  br i1 %.not1297, label %.thread1441, label %1408, !prof !11

1408:                                             ; preds = %1402
  %1409 = ptrtoint ptr %.11112 to i64
  %1410 = ptrtoint ptr %2 to i64
  %reass.sub2947 = sub i64 %1409, %1410
  %1411 = add i64 %reass.sub2947, 1
  br label %.thread1468

1412:                                             ; preds = %1375
  %1413 = tail call i32 @http_message_needs_eof(ptr noundef nonnull %0)
  %.not1289 = icmp eq i32 %1413, 0
  br i1 %.not1289, label %1414, label %.thread1441

1414:                                             ; preds = %1412
  %1415 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1290 = icmp eq i32 %1415, 0
  br i1 %.not1290, label %1421, label %1416

1416:                                             ; preds = %1414
  %1417 = load i32, ptr %0, align 8
  %1418 = and i32 %1417, 3
  %1419 = icmp eq i32 %1418, 0
  %1420 = select i1 %1419, i32 18, i32 4
  br label %1421

1421:                                             ; preds = %1414, %1416
  %1422 = phi i32 [ %1420, %1416 ], [ 1, %1414 ]
  %1423 = load i32, ptr %8, align 4
  %1424 = and i32 %1423, 2130706432
  %1425 = icmp eq i32 %1424, 0
  br i1 %1425, label %1427, label %1426

1426:                                             ; preds = %1421
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1916, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1427:                                             ; preds = %1421
  %1428 = load ptr, ptr %43, align 8, !tbaa !5
  %.not1291 = icmp eq ptr %1428, null
  br i1 %.not1291, label %.thread1441, label %1429, !prof !10

1429:                                             ; preds = %1427
  %1430 = load i32, ptr %0, align 8
  %1431 = shl nuw nsw i32 %1422, 10
  %1432 = and i32 %1430, -130049
  %1433 = or disjoint i32 %1432, %1431
  store i32 %1433, ptr %0, align 8
  %1434 = load ptr, ptr %43, align 8, !tbaa !5
  %1435 = tail call i32 %1434(ptr noundef nonnull %0) #4
  %.not1292 = icmp eq i32 %1435, 0
  %.pre3715 = load i32, ptr %8, align 4
  br i1 %.not1292, label %1439, label %1436, !prof !11

1436:                                             ; preds = %1429
  %1437 = and i32 %.pre3715, -2130706433
  %1438 = or disjoint i32 %1437, 117440512
  store i32 %1438, ptr %8, align 4
  br label %1439

1439:                                             ; preds = %1436, %1429
  %1440 = phi i32 [ %1438, %1436 ], [ %.pre3715, %1429 ]
  %1441 = load i32, ptr %0, align 8
  %1442 = lshr i32 %1441, 10
  %1443 = and i32 %1442, 127
  %1444 = and i32 %1440, 2130706432
  %.not1293 = icmp eq i32 %1444, 0
  br i1 %.not1293, label %.thread1441, label %1445, !prof !11

1445:                                             ; preds = %1439
  %1446 = ptrtoint ptr %.11112 to i64
  %1447 = ptrtoint ptr %2 to i64
  %reass.sub2946 = sub i64 %1446, %1447
  %1448 = add i64 %reass.sub2946, 1
  br label %.thread1468

1449:                                             ; preds = %1280
  %1450 = load i32, ptr %8, align 4
  %1451 = and i32 %1450, -2130706433
  %1452 = or disjoint i32 %1451, 503316480
  store i32 %1452, ptr %8, align 4
  br label %.thread

1453:                                             ; preds = %.backedge
  %1454 = load i64, ptr %35, align 8, !tbaa !18
  switch i64 %1454, label %1456 [
    i64 0, label %1455
    i64 -1, label %1455
  ]

1455:                                             ; preds = %1453, %1453
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 1933, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1456:                                             ; preds = %1453
  %1457 = ptrtoint ptr %.11112 to i64
  %1458 = sub i64 %36, %1457
  %.1420 = tail call i64 @llvm.umin.i64(i64 %1454, i64 %1458)
  %.not1277 = icmp eq ptr %.11142, null
  %spec.select1421 = select i1 %.not1277, ptr %.11112, ptr %.11142
  %1459 = sub i64 %1454, %.1420
  store i64 %1459, ptr %35, align 8, !tbaa !18
  %1460 = add i64 %.1420, -1
  %1461 = getelementptr inbounds i8, ptr %.11112, i64 %1460
  %.not1513 = icmp ugt i64 %1454, %1458
  br i1 %.not1513, label %.thread1441, label %1462

1462:                                             ; preds = %1456
  %1463 = load i32, ptr %8, align 4
  %1464 = and i32 %1463, 2130706432
  %1465 = icmp eq i32 %1464, 0
  br i1 %1465, label %1467, label %1466

1466:                                             ; preds = %1462
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1956, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1467:                                             ; preds = %1462
  %.not1278 = icmp eq ptr %spec.select1421, null
  br i1 %.not1278, label %.backedge.backedge, label %1468

1468:                                             ; preds = %1467
  %1469 = load ptr, ptr %37, align 8, !tbaa !33
  %.not1279 = icmp eq ptr %1469, null
  br i1 %.not1279, label %.backedge.backedge, label %1470, !prof !10

1470:                                             ; preds = %1468
  %1471 = load i32, ptr %0, align 8
  %1472 = and i32 %1471, -130049
  %1473 = or disjoint i32 %1472, 63488
  store i32 %1473, ptr %0, align 8
  %1474 = load ptr, ptr %37, align 8, !tbaa !33
  %1475 = ptrtoint ptr %1461 to i64
  %1476 = ptrtoint ptr %spec.select1421 to i64
  %reass.sub2942 = sub i64 %1475, %1476
  %1477 = add i64 %reass.sub2942, 1
  %1478 = tail call i32 %1474(ptr noundef nonnull %0, ptr noundef nonnull %spec.select1421, i64 noundef %1477) #4
  %.not1280 = icmp eq i32 %1478, 0
  %.pre3711 = load i32, ptr %8, align 4
  br i1 %.not1280, label %1482, label %1479, !prof !11

1479:                                             ; preds = %1470
  %1480 = and i32 %.pre3711, -2130706433
  %1481 = or disjoint i32 %1480, 100663296
  store i32 %1481, ptr %8, align 4
  br label %1482

1482:                                             ; preds = %1479, %1470
  %1483 = phi i32 [ %1481, %1479 ], [ %.pre3711, %1470 ]
  %1484 = load i32, ptr %0, align 8
  %1485 = lshr i32 %1484, 10
  %1486 = and i32 %1485, 127
  %1487 = and i32 %1483, 2130706432
  %.not1281 = icmp eq i32 %1487, 0
  br i1 %.not1281, label %.backedge.backedge, label %.thread1495, !prof !11

.thread1495:                                      ; preds = %1482
  %1488 = ptrtoint ptr %2 to i64
  %1489 = sub i64 %1475, %1488
  br label %.thread1468

1490:                                             ; preds = %.backedge
  %.not1274 = icmp eq ptr %.11142, null
  %spec.select1422 = select i1 %.not1274, ptr %.11112, ptr %.11142
  br label %.thread1441

1491:                                             ; preds = %.backedge
  %1492 = tail call i32 @http_should_keep_alive(ptr noundef nonnull %0)
  %.not1269 = icmp eq i32 %1492, 0
  br i1 %.not1269, label %1498, label %1493

1493:                                             ; preds = %1491
  %1494 = load i32, ptr %0, align 8
  %1495 = and i32 %1494, 3
  %1496 = icmp eq i32 %1495, 0
  %1497 = select i1 %1496, i32 18, i32 4
  br label %1498

1498:                                             ; preds = %1491, %1493
  %1499 = phi i32 [ %1497, %1493 ], [ 1, %1491 ]
  %1500 = load i32, ptr %8, align 4
  %1501 = and i32 %1500, 2130706432
  %1502 = icmp eq i32 %1501, 0
  br i1 %1502, label %1504, label %1503

1503:                                             ; preds = %1498
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1972, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1504:                                             ; preds = %1498
  %1505 = load ptr, ptr %43, align 8, !tbaa !5
  %.not1270 = icmp eq ptr %1505, null
  br i1 %.not1270, label %thread-pre-split, label %1506, !prof !10

1506:                                             ; preds = %1504
  %1507 = load i32, ptr %0, align 8
  %1508 = shl nuw nsw i32 %1499, 10
  %1509 = and i32 %1507, -130049
  %1510 = or disjoint i32 %1509, %1508
  store i32 %1510, ptr %0, align 8
  %1511 = load ptr, ptr %43, align 8, !tbaa !5
  %1512 = tail call i32 %1511(ptr noundef nonnull %0) #4
  %.not1271 = icmp eq i32 %1512, 0
  %.pre3710 = load i32, ptr %8, align 4
  br i1 %.not1271, label %1516, label %1513, !prof !11

1513:                                             ; preds = %1506
  %1514 = and i32 %.pre3710, -2130706433
  %1515 = or disjoint i32 %1514, 117440512
  store i32 %1515, ptr %8, align 4
  br label %1516

1516:                                             ; preds = %1513, %1506
  %1517 = phi i32 [ %1515, %1513 ], [ %.pre3710, %1506 ]
  %1518 = load i32, ptr %0, align 8
  %1519 = lshr i32 %1518, 10
  %1520 = and i32 %1519, 127
  %1521 = and i32 %1517, 2130706432
  %.not1272 = icmp eq i32 %1521, 0
  br i1 %.not1272, label %thread-pre-split, label %1522, !prof !11

1522:                                             ; preds = %1516
  %1523 = ptrtoint ptr %.11112 to i64
  %1524 = ptrtoint ptr %2 to i64
  %reass.sub2940 = sub i64 %1523, %1524
  %1525 = add i64 %reass.sub2940, 1
  br label %.thread1468

thread-pre-split:                                 ; preds = %1504, %1516
  %1526 = phi i32 [ %1517, %1516 ], [ %1500, %1504 ]
  %.29 = phi i32 [ %1520, %1516 ], [ %1499, %1504 ]
  %.not1273 = icmp sgt i32 %1526, -1
  br i1 %.not1273, label %.thread1441, label %1527

1527:                                             ; preds = %thread-pre-split
  %1528 = load i32, ptr %0, align 8
  %1529 = shl nuw nsw i32 %.29, 10
  %1530 = and i32 %1529, 130048
  %1531 = and i32 %1528, -130049
  %1532 = or disjoint i32 %1531, %1530
  store i32 %1532, ptr %0, align 8
  %1533 = ptrtoint ptr %.11112 to i64
  %1534 = ptrtoint ptr %2 to i64
  %reass.sub2941 = sub i64 %1533, %1534
  %1535 = add i64 %reass.sub2941, 1
  br label %.thread1468

1536:                                             ; preds = %.backedge
  %1537 = load i32, ptr %34, align 4, !tbaa !13
  %1538 = icmp eq i32 %1537, 1
  br i1 %1538, label %1540, label %1539

1539:                                             ; preds = %1536
  tail call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 1981, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1540:                                             ; preds = %1536
  %1541 = load i32, ptr %0, align 8
  %1542 = and i32 %1541, 4
  %.not1268 = icmp eq i32 %1542, 0
  br i1 %.not1268, label %1543, label %1544

1543:                                             ; preds = %1540
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 1982, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1544:                                             ; preds = %1540
  %1545 = zext i8 %.01105 to i64
  %1546 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %1545
  %1547 = load i8, ptr %1546, align 1, !tbaa !12
  %1548 = icmp eq i8 %1547, -1
  br i1 %1548, label %1549, label %1553, !prof !10

1549:                                             ; preds = %1544
  %1550 = load i32, ptr %8, align 4
  %1551 = and i32 %1550, -2130706433
  %1552 = or disjoint i32 %1551, 452984832
  store i32 %1552, ptr %8, align 4
  br label %.thread

1553:                                             ; preds = %1544
  %1554 = sext i8 %1547 to i64
  store i64 %1554, ptr %35, align 8, !tbaa !18
  br label %.thread1441

1555:                                             ; preds = %.backedge
  %1556 = load i32, ptr %0, align 8
  %1557 = and i32 %1556, 4
  %.not1267 = icmp eq i32 %1557, 0
  br i1 %.not1267, label %1558, label %1559

1558:                                             ; preds = %1555
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 1999, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1559:                                             ; preds = %1555
  %1560 = icmp eq i8 %.01105, 13
  br i1 %1560, label %.thread1441, label %1561

1561:                                             ; preds = %1559
  %1562 = zext i8 %.01105 to i64
  %1563 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %1562
  %1564 = load i8, ptr %1563, align 1, !tbaa !12
  %1565 = icmp eq i8 %1564, -1
  br i1 %1565, label %1566, label %1567

1566:                                             ; preds = %1561
  switch i8 %.01105, label %1574 [
    i8 59, label %.thread1441
    i8 32, label %.thread1441
  ]

1567:                                             ; preds = %1561
  %1568 = load i64, ptr %35, align 8, !tbaa !18
  %1569 = icmp ugt i64 %1568, 1152921504606846974
  br i1 %1569, label %1574, label %1570, !prof !10

1570:                                             ; preds = %1567
  %1571 = shl nuw i64 %1568, 4
  %1572 = sext i8 %1564 to i64
  %1573 = add i64 %1571, %1572
  store i64 %1573, ptr %35, align 8, !tbaa !18
  br label %.thread1441

1574:                                             ; preds = %1567, %1566
  %.sink4513 = phi i32 [ 452984832, %1566 ], [ 419430400, %1567 ]
  %1575 = load i32, ptr %8, align 4
  %1576 = and i32 %1575, -2130706433
  %1577 = or disjoint i32 %1576, %.sink4513
  store i32 %1577, ptr %8, align 4
  br label %.thread

1578:                                             ; preds = %.backedge
  %1579 = load i32, ptr %0, align 8
  %1580 = and i32 %1579, 4
  %.not1266 = icmp eq i32 %1580, 0
  br i1 %.not1266, label %1581, label %1582

1581:                                             ; preds = %1578
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2034, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1582:                                             ; preds = %1578
  %1583 = icmp eq i8 %.01105, 13
  %spec.select1426 = select i1 %1583, i32 54, i32 53
  br label %.thread1441

1584:                                             ; preds = %.backedge
  %1585 = load i32, ptr %0, align 8
  %1586 = and i32 %1585, 4
  %.not1261 = icmp eq i32 %1586, 0
  br i1 %.not1261, label %1587, label %1588

1587:                                             ; preds = %1584
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2045, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1588:                                             ; preds = %1584
  %.not1262 = icmp eq i8 %.01105, 10
  br i1 %.not1262, label %1593, label %1589

1589:                                             ; preds = %1588
  %1590 = load i32, ptr %8, align 4
  %1591 = and i32 %1590, -2130706433
  %1592 = or disjoint i32 %1591, 503316480
  store i32 %1592, ptr %8, align 4
  br label %.thread

1593:                                             ; preds = %1588
  store i32 0, ptr %34, align 4, !tbaa !13
  %1594 = load i64, ptr %35, align 8, !tbaa !18
  %1595 = icmp eq i64 %1594, 0
  br i1 %1595, label %1596, label %1598

1596:                                             ; preds = %1593
  %1597 = or i32 %1585, 64
  store i32 %1597, ptr %0, align 8
  br label %1598

1598:                                             ; preds = %1593, %1596
  %1599 = phi i32 [ %1597, %1596 ], [ %1585, %1593 ]
  %.31 = phi i32 [ 42, %1596 ], [ 57, %1593 ]
  %1600 = load i32, ptr %8, align 4
  %1601 = and i32 %1600, 2130706432
  %1602 = icmp eq i32 %1601, 0
  br i1 %1602, label %1604, label %1603

1603:                                             ; preds = %1598
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2056, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1604:                                             ; preds = %1598
  %1605 = load ptr, ptr %42, align 8, !tbaa !34
  %.not1263 = icmp eq ptr %1605, null
  br i1 %.not1263, label %.thread1441, label %1606, !prof !10

1606:                                             ; preds = %1604
  %1607 = shl nuw nsw i32 %.31, 10
  %1608 = and i32 %1599, -130049
  %1609 = or disjoint i32 %1608, %1607
  store i32 %1609, ptr %0, align 8
  %1610 = load ptr, ptr %42, align 8, !tbaa !34
  %1611 = tail call i32 %1610(ptr noundef nonnull %0) #4
  %.not1264 = icmp eq i32 %1611, 0
  %.pre3709 = load i32, ptr %8, align 4
  br i1 %.not1264, label %1615, label %1612, !prof !11

1612:                                             ; preds = %1606
  %1613 = and i32 %.pre3709, -2130706433
  %1614 = or disjoint i32 %1613, 150994944
  store i32 %1614, ptr %8, align 4
  br label %1615

1615:                                             ; preds = %1612, %1606
  %1616 = phi i32 [ %1614, %1612 ], [ %.pre3709, %1606 ]
  %1617 = load i32, ptr %0, align 8
  %1618 = lshr i32 %1617, 10
  %1619 = and i32 %1618, 127
  %1620 = and i32 %1616, 2130706432
  %.not1265 = icmp eq i32 %1620, 0
  br i1 %.not1265, label %.thread1441, label %1621, !prof !11

1621:                                             ; preds = %1615
  %1622 = ptrtoint ptr %.11112 to i64
  %1623 = ptrtoint ptr %2 to i64
  %reass.sub2939 = sub i64 %1622, %1623
  %1624 = add i64 %reass.sub2939, 1
  br label %.thread1468

1625:                                             ; preds = %.backedge
  %1626 = load i64, ptr %35, align 8, !tbaa !18
  %1627 = ptrtoint ptr %.11112 to i64
  %1628 = sub i64 %36, %1627
  %.1427 = tail call i64 @llvm.umin.i64(i64 %1626, i64 %1628)
  %1629 = load i32, ptr %0, align 8
  %1630 = and i32 %1629, 4
  %.not1257 = icmp eq i32 %1630, 0
  br i1 %.not1257, label %1631, label %1632

1631:                                             ; preds = %1625
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2065, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1632:                                             ; preds = %1625
  switch i64 %1626, label %1634 [
    i64 0, label %1633
    i64 -1, label %1633
  ]

1633:                                             ; preds = %1632, %1632
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2067, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1634:                                             ; preds = %1632
  %.not1260 = icmp eq ptr %.11142, null
  %spec.select1428 = select i1 %.not1260, ptr %.11112, ptr %.11142
  %1635 = sub i64 %1626, %.1427
  store i64 %1635, ptr %35, align 8, !tbaa !18
  %1636 = add i64 %.1427, -1
  %1637 = getelementptr inbounds i8, ptr %.11112, i64 %1636
  %.not1512 = icmp ugt i64 %1626, %1628
  %.32 = select i1 %.not1512, i32 57, i32 58
  br label %.thread1441

1638:                                             ; preds = %.backedge
  %1639 = load i32, ptr %0, align 8
  %1640 = and i32 %1639, 4
  %.not1251 = icmp eq i32 %1640, 0
  br i1 %.not1251, label %1641, label %1642

1641:                                             ; preds = %1638
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2084, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1642:                                             ; preds = %1638
  %1643 = load i64, ptr %35, align 8, !tbaa !18
  %1644 = icmp eq i64 %1643, 0
  br i1 %1644, label %1646, label %1645

1645:                                             ; preds = %1642
  tail call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 2085, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1646:                                             ; preds = %1642
  %.not1252 = icmp eq i8 %.01105, 13
  %1647 = load i32, ptr %8, align 4
  br i1 %.not1252, label %1651, label %1648

1648:                                             ; preds = %1646
  %1649 = and i32 %1647, -2130706433
  %1650 = or disjoint i32 %1649, 503316480
  store i32 %1650, ptr %8, align 4
  br label %.thread

1651:                                             ; preds = %1646
  %1652 = and i32 %1647, 2130706432
  %1653 = icmp eq i32 %1652, 0
  br i1 %1653, label %1655, label %1654

1654:                                             ; preds = %1651
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2088, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1655:                                             ; preds = %1651
  %.not1253 = icmp eq ptr %.11142, null
  br i1 %.not1253, label %.thread1441, label %1656

1656:                                             ; preds = %1655
  %1657 = load ptr, ptr %37, align 8, !tbaa !33
  %.not1254 = icmp eq ptr %1657, null
  br i1 %.not1254, label %.thread1441, label %1658, !prof !10

1658:                                             ; preds = %1656
  %1659 = and i32 %1639, -130049
  %1660 = or disjoint i32 %1659, 60416
  store i32 %1660, ptr %0, align 8
  %1661 = load ptr, ptr %37, align 8, !tbaa !33
  %1662 = ptrtoint ptr %.11112 to i64
  %1663 = ptrtoint ptr %.11142 to i64
  %1664 = sub i64 %1662, %1663
  %1665 = tail call i32 %1661(ptr noundef nonnull %0, ptr noundef nonnull %.11142, i64 noundef %1664) #4
  %.not1255 = icmp eq i32 %1665, 0
  %.pre3708 = load i32, ptr %8, align 4
  br i1 %.not1255, label %1669, label %1666, !prof !11

1666:                                             ; preds = %1658
  %1667 = and i32 %.pre3708, -2130706433
  %1668 = or disjoint i32 %1667, 100663296
  store i32 %1668, ptr %8, align 4
  br label %1669

1669:                                             ; preds = %1666, %1658
  %1670 = phi i32 [ %1668, %1666 ], [ %.pre3708, %1658 ]
  %1671 = load i32, ptr %0, align 8
  %1672 = lshr i32 %1671, 10
  %1673 = and i32 %1672, 127
  %1674 = and i32 %1670, 2130706432
  %.not1256 = icmp eq i32 %1674, 0
  br i1 %.not1256, label %.thread1441, label %1675, !prof !11

1675:                                             ; preds = %1669
  %1676 = ptrtoint ptr %2 to i64
  %reass.sub2938 = sub i64 %1662, %1676
  %1677 = add i64 %reass.sub2938, 1
  br label %.thread1468

1678:                                             ; preds = %.backedge
  %1679 = load i32, ptr %0, align 8
  %1680 = and i32 %1679, 4
  %.not1246 = icmp eq i32 %1680, 0
  br i1 %.not1246, label %1681, label %1682

1681:                                             ; preds = %1678
  tail call void @__assert_fail(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 2092, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1682:                                             ; preds = %1678
  %.not1247 = icmp eq i8 %.01105, 10
  br i1 %.not1247, label %1687, label %1683

1683:                                             ; preds = %1682
  %1684 = load i32, ptr %8, align 4
  %1685 = and i32 %1684, -2130706433
  %1686 = or disjoint i32 %1685, 503316480
  store i32 %1686, ptr %8, align 4
  br label %.thread

1687:                                             ; preds = %1682
  store i32 0, ptr %34, align 4, !tbaa !13
  %1688 = load i32, ptr %8, align 4
  %1689 = and i32 %1688, 2130706432
  %1690 = icmp eq i32 %1689, 0
  br i1 %1690, label %1692, label %1691

1691:                                             ; preds = %1687
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2096, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1692:                                             ; preds = %1687
  %1693 = load ptr, ptr %38, align 8, !tbaa !31
  %.not1248 = icmp eq ptr %1693, null
  br i1 %.not1248, label %.thread1441, label %1694, !prof !10

1694:                                             ; preds = %1692
  %1695 = and i32 %1679, -130049
  %1696 = or disjoint i32 %1695, 52224
  store i32 %1696, ptr %0, align 8
  %1697 = load ptr, ptr %38, align 8, !tbaa !31
  %1698 = tail call i32 %1697(ptr noundef nonnull %0) #4
  %.not1249 = icmp eq i32 %1698, 0
  %.pre = load i32, ptr %8, align 4
  br i1 %.not1249, label %1702, label %1699, !prof !11

1699:                                             ; preds = %1694
  %1700 = and i32 %.pre, -2130706433
  %1701 = or disjoint i32 %1700, 167772160
  store i32 %1701, ptr %8, align 4
  br label %1702

1702:                                             ; preds = %1699, %1694
  %1703 = phi i32 [ %1701, %1699 ], [ %.pre, %1694 ]
  %1704 = load i32, ptr %0, align 8
  %1705 = lshr i32 %1704, 10
  %1706 = and i32 %1705, 127
  %1707 = and i32 %1703, 2130706432
  %.not1250 = icmp eq i32 %1707, 0
  br i1 %.not1250, label %.thread1441, label %1708, !prof !11

1708:                                             ; preds = %1702
  %1709 = ptrtoint ptr %.11112 to i64
  %1710 = ptrtoint ptr %2 to i64
  %reass.sub = sub i64 %1709, %1710
  %1711 = add i64 %reass.sub, 1
  br label %.thread1468

1712:                                             ; preds = %.backedge
  tail call void @__assert_fail(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 2100, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

.thread1441:                                      ; preds = %1456, %1169, %1169, %676, %66, %66, %1566, %1566, %1559, %1570, %1365, %1353, %1402, %1390, %1439, %1427, %.thread3744, %1375, %1412, %868, %882, %869, %859, %.thread1475, %489, %1582, %1656, %1669, %1164, %1146, %894, %894, %671, %652, %623, %608, %603, %598, %593, %556, %571, %525, %539, %330, %330, %325, %302, %316, %266, %273, %287, %261, %241, %206, %178, %163, %158, %153, %148, %61, %61, %175, %203, %233, %262, %263, %620, %649, %653, %895, %896, %1490, %1553, %1634, %76, %86, %107, %99, %138, %127, %186, %215, %227, %243, %242, %248, %272, %301, %377, %367, %494, %496, %511, %580, %555, %524, %588, %587, %632, %661, %697, %695, %693, %691, %689, %922, %926, %928, %924, %908, %910, %930, %918, %902, %.loopexit1536, %thread-pre-split, %1615, %1604, %1655, %1702, %1692
  %.34 = phi i32 [ %1706, %1702 ], [ 51, %1692 ], [ 59, %1655 ], [ %.32, %1634 ], [ %1619, %1615 ], [ %.31, %1604 ], [ 52, %1553 ], [ %.29, %thread-pre-split ], [ 61, %1490 ], [ 48, %930 ], [ 48, %.loopexit1536 ], [ 48, %922 ], [ 48, %924 ], [ 48, %926 ], [ 48, %928 ], [ 48, %918 ], [ 48, %908 ], [ 48, %910 ], [ 48, %902 ], [ 44, %894 ], [ 45, %895 ], [ 46, %896 ], [ 43, %697 ], [ 43, %695 ], [ 43, %693 ], [ 43, %691 ], [ 43, %689 ], [ 42, %653 ], [ 40, %661 ], [ 40, %649 ], [ 38, %632 ], [ 38, %620 ], [ 32, %587 ], [ 33, %588 ], [ %581, %580 ], [ %550, %555 ], [ 32, %524 ], [ %512, %511 ], [ 20, %494 ], [ %500, %496 ], [ %.51165, %489 ], [ 18, %330 ], [ %381, %377 ], [ 19, %367 ], [ 17, %272 ], [ 42, %301 ], [ 42, %262 ], [ 16, %263 ], [ 14, %248 ], [ 42, %243 ], [ 17, %242 ], [ 14, %233 ], [ 13, %227 ], [ 12, %215 ], [ 12, %203 ], [ 10, %186 ], [ 10, %175 ], [ %142, %138 ], [ %.21162, %127 ], [ 6, %99 ], [ 19, %107 ], [ %90, %86 ], [ 3, %76 ], [ 1, %61 ], [ 1, %61 ], [ 6, %148 ], [ 7, %153 ], [ 8, %158 ], [ 9, %163 ], [ 11, %178 ], [ 13, %206 ], [ 15, %241 ], [ 17, %261 ], [ %291, %287 ], [ 17, %273 ], [ 16, %266 ], [ %320, %316 ], [ 42, %302 ], [ 42, %325 ], [ 18, %330 ], [ %543, %539 ], [ 32, %525 ], [ %575, %571 ], [ %550, %556 ], [ 34, %593 ], [ 35, %598 ], [ 36, %603 ], [ 37, %608 ], [ 39, %623 ], [ 41, %652 ], [ 42, %671 ], [ 44, %894 ], [ 49, %1146 ], [ 46, %1164 ], [ %spec.select1426, %1582 ], [ %1673, %1669 ], [ 59, %1656 ], [ %.18, %.thread1475 ], [ 44, %869 ], [ %886, %882 ], [ 44, %868 ], [ 43, %859 ], [ 61, %1412 ], [ 60, %1375 ], [ 51, %.thread3744 ], [ %1422, %1427 ], [ %1443, %1439 ], [ %1385, %1390 ], [ %1406, %1402 ], [ %1348, %1353 ], [ %1369, %1365 ], [ 53, %1566 ], [ 53, %1566 ], [ 54, %1559 ], [ 52, %1570 ], [ 60, %1456 ], [ 44, %1169 ], [ 44, %1169 ], [ 55, %676 ], [ 2, %66 ], [ 2, %66 ]
  %.31159 = phi ptr [ %.111572919, %1702 ], [ %.111572919, %1692 ], [ %.111572919, %1655 ], [ %.111572919, %1634 ], [ %.111572919, %1615 ], [ %.111572919, %1604 ], [ %.111572919, %1553 ], [ %.111572919, %thread-pre-split ], [ %.111572919, %1490 ], [ %.111572919, %930 ], [ %.111572919, %.loopexit1536 ], [ %.111572919, %922 ], [ %.111572919, %924 ], [ %.111572919, %926 ], [ %.111572919, %928 ], [ %.111572919, %918 ], [ %.111572919, %908 ], [ %.111572919, %910 ], [ %.111572919, %902 ], [ %.111572919, %894 ], [ %.111572919, %895 ], [ %.111572919, %896 ], [ %.111572919, %697 ], [ %.111572919, %695 ], [ %.111572919, %693 ], [ %.111572919, %691 ], [ %.111572919, %689 ], [ %.111572919, %653 ], [ %.111572919, %661 ], [ %.111572919, %649 ], [ %.111572919, %632 ], [ %.111572919, %620 ], [ %.111572919, %587 ], [ %.111572919, %588 ], [ %.111572919, %580 ], [ %.111572919, %555 ], [ %.111572919, %524 ], [ %.111572919, %511 ], [ %.111572919, %494 ], [ %.111572919, %496 ], [ %.111572919, %489 ], [ %.111572919, %330 ], [ %.111572919, %377 ], [ %.111572919, %367 ], [ null, %272 ], [ null, %301 ], [ %.111572919, %262 ], [ %spec.select1404, %263 ], [ %.111572919, %248 ], [ %.111572919, %243 ], [ %.111572919, %242 ], [ %.111572919, %233 ], [ %.111572919, %227 ], [ %.111572919, %215 ], [ %.111572919, %203 ], [ %.111572919, %186 ], [ %.111572919, %175 ], [ %.111572919, %138 ], [ %.111572919, %127 ], [ %.111572919, %99 ], [ %.111572919, %107 ], [ %.111572919, %86 ], [ %.111572919, %76 ], [ %.111572919, %61 ], [ %.111572919, %61 ], [ %.111572919, %148 ], [ %.111572919, %153 ], [ %.111572919, %158 ], [ %.111572919, %163 ], [ %.111572919, %178 ], [ %.111572919, %206 ], [ %.111572919, %241 ], [ %.111572919, %261 ], [ null, %287 ], [ null, %273 ], [ %.111572919, %266 ], [ null, %316 ], [ null, %302 ], [ %.111572919, %325 ], [ %.111572919, %330 ], [ %.111572919, %539 ], [ %.111572919, %525 ], [ %.111572919, %571 ], [ %.111572919, %556 ], [ %.111572919, %593 ], [ %.111572919, %598 ], [ %.111572919, %603 ], [ %.111572919, %608 ], [ %.111572919, %623 ], [ %.111572919, %652 ], [ %.111572919, %671 ], [ %.111572919, %894 ], [ %.111572919, %1146 ], [ %.111572919, %1164 ], [ %.111572919, %1582 ], [ %.111572919, %1669 ], [ %.111572919, %1656 ], [ %.111572919, %.thread1475 ], [ %.111572919, %869 ], [ %.111572919, %882 ], [ %.111572919, %868 ], [ %.111572919, %859 ], [ %.111572919, %1412 ], [ %.111572919, %1375 ], [ %.111572919, %.thread3744 ], [ %.111572919, %1427 ], [ %.111572919, %1439 ], [ %.111572919, %1390 ], [ %.111572919, %1402 ], [ %.111572919, %1353 ], [ %.111572919, %1365 ], [ %.111572919, %1566 ], [ %.111572919, %1566 ], [ %.111572919, %1559 ], [ %.111572919, %1570 ], [ %.111572919, %66 ], [ %.111572919, %66 ], [ %.111572919, %676 ], [ %.111572919, %1169 ], [ %.111572919, %1169 ], [ %.111572919, %1456 ]
  %.71148 = phi ptr [ %.11142, %1702 ], [ %.11142, %1692 ], [ null, %1655 ], [ %spec.select1428, %1634 ], [ %.11142, %1615 ], [ %.11142, %1604 ], [ %.11142, %1553 ], [ %.11142, %thread-pre-split ], [ %spec.select1422, %1490 ], [ %.11142, %930 ], [ %.11142, %.loopexit1536 ], [ %.11142, %922 ], [ %.11142, %924 ], [ %.11142, %926 ], [ %.11142, %928 ], [ %.11142, %918 ], [ %.11142, %908 ], [ %.11142, %910 ], [ %.11142, %902 ], [ %.11142, %894 ], [ %.11142, %895 ], [ %.11142, %896 ], [ %.11142, %697 ], [ %.11142, %695 ], [ %.11142, %693 ], [ %.11142, %691 ], [ %.11142, %689 ], [ %.11142, %653 ], [ %.11142, %661 ], [ %.11142, %649 ], [ %.11142, %632 ], [ %.11142, %620 ], [ %.11142, %587 ], [ %.11142, %588 ], [ %.11142, %580 ], [ %.11142, %555 ], [ %.11142, %524 ], [ %.11142, %511 ], [ %.11142, %494 ], [ %.11142, %496 ], [ %.11142, %489 ], [ %.11142, %330 ], [ %.11142, %377 ], [ %.11142, %367 ], [ %.11142, %272 ], [ %.11142, %301 ], [ %.11142, %262 ], [ %.11142, %263 ], [ %.11142, %248 ], [ %.11142, %243 ], [ %.11142, %242 ], [ %.11142, %233 ], [ %.11142, %227 ], [ %.11142, %215 ], [ %.11142, %203 ], [ %.11142, %186 ], [ %.11142, %175 ], [ %.11142, %138 ], [ %.11142, %127 ], [ %.11142, %99 ], [ %.11142, %107 ], [ %.11142, %86 ], [ %.11142, %76 ], [ %.11142, %61 ], [ %.11142, %61 ], [ %.11142, %148 ], [ %.11142, %153 ], [ %.11142, %158 ], [ %.11142, %163 ], [ %.11142, %178 ], [ %.11142, %206 ], [ %.11142, %241 ], [ %.11142, %261 ], [ %.11142, %287 ], [ %.11142, %273 ], [ %.11142, %266 ], [ %.11142, %316 ], [ %.11142, %302 ], [ %.11142, %325 ], [ %.11142, %330 ], [ %.11142, %539 ], [ %.11142, %525 ], [ %.11142, %571 ], [ %.11142, %556 ], [ %.11142, %593 ], [ %.11142, %598 ], [ %.11142, %603 ], [ %.11142, %608 ], [ %.11142, %623 ], [ %.11142, %652 ], [ %.11142, %671 ], [ %.11142, %894 ], [ %.11142, %1146 ], [ %.11142, %1164 ], [ %.11142, %1582 ], [ null, %1669 ], [ null, %1656 ], [ %.11142, %.thread1475 ], [ %.11142, %869 ], [ %.11142, %882 ], [ %.11142, %868 ], [ %.11142, %859 ], [ %.11142, %1412 ], [ %.11142, %1375 ], [ %.11142, %.thread3744 ], [ %.11142, %1427 ], [ %.11142, %1439 ], [ %.11142, %1390 ], [ %.11142, %1402 ], [ %.11142, %1353 ], [ %.11142, %1365 ], [ %.11142, %1566 ], [ %.11142, %1566 ], [ %.11142, %1559 ], [ %.11142, %1570 ], [ %spec.select1421, %1456 ], [ %.11142, %1169 ], [ %.11142, %1169 ], [ %.11142, %676 ], [ %.11142, %66 ], [ %.11142, %66 ]
  %.31140 = phi ptr [ %.111382922, %1702 ], [ %.111382922, %1692 ], [ %.111382922, %1655 ], [ %.111382922, %1634 ], [ %.111382922, %1615 ], [ %.111382922, %1604 ], [ %.111382922, %1553 ], [ %.111382922, %thread-pre-split ], [ %.111382922, %1490 ], [ %.111382922, %930 ], [ %.111382922, %.loopexit1536 ], [ %.111382922, %922 ], [ %.111382922, %924 ], [ %.111382922, %926 ], [ %.111382922, %928 ], [ %.111382922, %918 ], [ %.111382922, %908 ], [ %.111382922, %910 ], [ %.111382922, %902 ], [ %.111382922, %894 ], [ %.111382922, %895 ], [ %.111382922, %896 ], [ %.111382922, %697 ], [ %.111382922, %695 ], [ %.111382922, %693 ], [ %.111382922, %691 ], [ %.111382922, %689 ], [ %.111382922, %653 ], [ %.111382922, %661 ], [ %.111382922, %649 ], [ %.111382922, %632 ], [ %.111382922, %620 ], [ %.111382922, %587 ], [ %.111382922, %588 ], [ %.111382922, %580 ], [ null, %555 ], [ null, %524 ], [ %.111382922, %511 ], [ %.111382922, %494 ], [ %spec.select1406, %496 ], [ %.111382922, %489 ], [ %.111382922, %330 ], [ %.111382922, %377 ], [ %.111382922, %367 ], [ %.111382922, %272 ], [ %.111382922, %301 ], [ %.111382922, %262 ], [ %.111382922, %263 ], [ %.111382922, %248 ], [ %.111382922, %243 ], [ %.111382922, %242 ], [ %.111382922, %233 ], [ %.111382922, %227 ], [ %.111382922, %215 ], [ %.111382922, %203 ], [ %.111382922, %186 ], [ %.111382922, %175 ], [ %.111382922, %138 ], [ %.111382922, %127 ], [ %.111382922, %99 ], [ %.111382922, %107 ], [ %.111382922, %86 ], [ %.111382922, %76 ], [ %.111382922, %61 ], [ %.111382922, %61 ], [ %.111382922, %148 ], [ %.111382922, %153 ], [ %.111382922, %158 ], [ %.111382922, %163 ], [ %.111382922, %178 ], [ %.111382922, %206 ], [ %.111382922, %241 ], [ %.111382922, %261 ], [ %.111382922, %287 ], [ %.111382922, %273 ], [ %.111382922, %266 ], [ %.111382922, %316 ], [ %.111382922, %302 ], [ %.111382922, %325 ], [ %.111382922, %330 ], [ null, %539 ], [ null, %525 ], [ null, %571 ], [ null, %556 ], [ %.111382922, %593 ], [ %.111382922, %598 ], [ %.111382922, %603 ], [ %.111382922, %608 ], [ %.111382922, %623 ], [ %.111382922, %652 ], [ %.111382922, %671 ], [ %.111382922, %894 ], [ %.111382922, %1146 ], [ %.111382922, %1164 ], [ %.111382922, %1582 ], [ %.111382922, %1669 ], [ %.111382922, %1656 ], [ %.111382922, %.thread1475 ], [ %.111382922, %869 ], [ %.111382922, %882 ], [ %.111382922, %868 ], [ %.111382922, %859 ], [ %.111382922, %1412 ], [ %.111382922, %1375 ], [ %.111382922, %.thread3744 ], [ %.111382922, %1427 ], [ %.111382922, %1439 ], [ %.111382922, %1390 ], [ %.111382922, %1402 ], [ %.111382922, %1353 ], [ %.111382922, %1365 ], [ %.111382922, %1566 ], [ %.111382922, %1566 ], [ %.111382922, %1559 ], [ %.111382922, %1570 ], [ %.111382922, %66 ], [ %.111382922, %66 ], [ %.111382922, %676 ], [ %.111382922, %1169 ], [ %.111382922, %1169 ], [ %.111382922, %1456 ]
  %.91136 = phi ptr [ %.21129, %1702 ], [ %.21129, %1692 ], [ %.21129, %1655 ], [ %.21129, %1634 ], [ %.21129, %1615 ], [ %.21129, %1604 ], [ %.21129, %1553 ], [ %.21129, %thread-pre-split ], [ %.21129, %1490 ], [ %spec.select1408, %930 ], [ %spec.select1408, %.loopexit1536 ], [ %spec.select1408, %922 ], [ %spec.select1408, %924 ], [ %spec.select1408, %926 ], [ %spec.select1408, %928 ], [ %spec.select1408, %918 ], [ %spec.select1408, %908 ], [ %spec.select1408, %910 ], [ %spec.select1408, %902 ], [ %.21129, %894 ], [ %.21129, %895 ], [ %.21129, %896 ], [ %.21129, %697 ], [ %.21129, %695 ], [ %.21129, %693 ], [ %.21129, %691 ], [ %.21129, %689 ], [ %.21129, %653 ], [ %.21129, %661 ], [ %.21129, %649 ], [ %.21129, %632 ], [ %.21129, %620 ], [ %.21129, %587 ], [ %.21129, %588 ], [ %.21129, %580 ], [ %.21129, %555 ], [ %.21129, %524 ], [ %.21129, %511 ], [ %.21129, %494 ], [ %.21129, %496 ], [ %.21129, %489 ], [ %.21129, %330 ], [ %.21129, %377 ], [ %.21129, %367 ], [ %.21129, %272 ], [ %.21129, %301 ], [ %.21129, %262 ], [ %.21129, %263 ], [ %.21129, %248 ], [ %.21129, %243 ], [ %.21129, %242 ], [ %.21129, %233 ], [ %.21129, %227 ], [ %.21129, %215 ], [ %.21129, %203 ], [ %.21129, %186 ], [ %.21129, %175 ], [ %.21129, %138 ], [ %.21129, %127 ], [ %.21129, %99 ], [ %.21129, %107 ], [ %.21129, %86 ], [ %.21129, %76 ], [ %.21129, %61 ], [ %.21129, %61 ], [ %.21129, %148 ], [ %.21129, %153 ], [ %.21129, %158 ], [ %.21129, %163 ], [ %.21129, %178 ], [ %.21129, %206 ], [ %.21129, %241 ], [ %.21129, %261 ], [ %.21129, %287 ], [ %.21129, %273 ], [ %.21129, %266 ], [ %.21129, %316 ], [ %.21129, %302 ], [ %.21129, %325 ], [ %.21129, %330 ], [ %.21129, %539 ], [ %.21129, %525 ], [ %.21129, %571 ], [ %.21129, %556 ], [ %.21129, %593 ], [ %.21129, %598 ], [ %.21129, %603 ], [ %.21129, %608 ], [ %.21129, %623 ], [ %.21129, %652 ], [ %.21129, %671 ], [ %.21129, %894 ], [ %.21129, %1146 ], [ %.21129, %1164 ], [ %.21129, %1582 ], [ %.21129, %1669 ], [ %.21129, %1656 ], [ %.51132, %.thread1475 ], [ %.21129, %869 ], [ %.21129, %882 ], [ %.21129, %868 ], [ %.21129, %859 ], [ %.21129, %1412 ], [ %.21129, %1375 ], [ %.21129, %.thread3744 ], [ %.21129, %1427 ], [ %.21129, %1439 ], [ %.21129, %1390 ], [ %.21129, %1402 ], [ %.21129, %1353 ], [ %.21129, %1365 ], [ %.21129, %1566 ], [ %.21129, %1566 ], [ %.21129, %1559 ], [ %.21129, %1570 ], [ %.21129, %66 ], [ %.21129, %66 ], [ %.21129, %676 ], [ %.21129, %1169 ], [ %.21129, %1169 ], [ %.21129, %1456 ]
  %.51124 = phi ptr [ %.111202925, %1702 ], [ %.111202925, %1692 ], [ %.111202925, %1655 ], [ %.111202925, %1634 ], [ %.111202925, %1615 ], [ %.111202925, %1604 ], [ %.111202925, %1553 ], [ %.111202925, %thread-pre-split ], [ %.111202925, %1490 ], [ %.111202925, %930 ], [ %.111202925, %.loopexit1536 ], [ %.111202925, %922 ], [ %.111202925, %924 ], [ %.111202925, %926 ], [ %.111202925, %928 ], [ %.111202925, %918 ], [ %.111202925, %908 ], [ %.111202925, %910 ], [ %.111202925, %902 ], [ %.111202925, %894 ], [ %.111202925, %895 ], [ %.111202925, %896 ], [ %spec.select1407, %697 ], [ %spec.select1407, %695 ], [ %spec.select1407, %693 ], [ %spec.select1407, %691 ], [ %spec.select1407, %689 ], [ %.111202925, %653 ], [ %.111202925, %661 ], [ %.111202925, %649 ], [ %.111202925, %632 ], [ %.111202925, %620 ], [ %.111202925, %587 ], [ %.111202925, %588 ], [ %.111202925, %580 ], [ %.111202925, %555 ], [ %.111202925, %524 ], [ %.111202925, %511 ], [ %.111202925, %494 ], [ %.111202925, %496 ], [ %.111202925, %489 ], [ %.111202925, %330 ], [ %.111202925, %377 ], [ %.111202925, %367 ], [ %.111202925, %272 ], [ %.111202925, %301 ], [ %.111202925, %262 ], [ %.111202925, %263 ], [ %.111202925, %248 ], [ %.111202925, %243 ], [ %.111202925, %242 ], [ %.111202925, %233 ], [ %.111202925, %227 ], [ %.111202925, %215 ], [ %.111202925, %203 ], [ %.111202925, %186 ], [ %.111202925, %175 ], [ %.111202925, %138 ], [ %.111202925, %127 ], [ %.111202925, %99 ], [ %.111202925, %107 ], [ %.111202925, %86 ], [ %.111202925, %76 ], [ %.111202925, %61 ], [ %.111202925, %61 ], [ %.111202925, %148 ], [ %.111202925, %153 ], [ %.111202925, %158 ], [ %.111202925, %163 ], [ %.111202925, %178 ], [ %.111202925, %206 ], [ %.111202925, %241 ], [ %.111202925, %261 ], [ %.111202925, %287 ], [ %.111202925, %273 ], [ %.111202925, %266 ], [ %.111202925, %316 ], [ %.111202925, %302 ], [ %.111202925, %325 ], [ %.111202925, %330 ], [ %.111202925, %539 ], [ %.111202925, %525 ], [ %.111202925, %571 ], [ %.111202925, %556 ], [ %.111202925, %593 ], [ %.111202925, %598 ], [ %.111202925, %603 ], [ %.111202925, %608 ], [ %.111202925, %623 ], [ %.111202925, %652 ], [ %.111202925, %671 ], [ %.111202925, %894 ], [ %.111202925, %1146 ], [ %.111202925, %1164 ], [ %.111202925, %1582 ], [ %.111202925, %1669 ], [ %.111202925, %1656 ], [ %.111202925, %.thread1475 ], [ null, %869 ], [ null, %882 ], [ null, %868 ], [ %.111202925, %859 ], [ %.111202925, %1412 ], [ %.111202925, %1375 ], [ %.111202925, %.thread3744 ], [ %.111202925, %1427 ], [ %.111202925, %1439 ], [ %.111202925, %1390 ], [ %.111202925, %1402 ], [ %.111202925, %1353 ], [ %.111202925, %1365 ], [ %.111202925, %1566 ], [ %.111202925, %1566 ], [ %.111202925, %1559 ], [ %.111202925, %1570 ], [ %.111202925, %66 ], [ %.111202925, %66 ], [ %.111202925, %676 ], [ %.111202925, %1169 ], [ %.111202925, %1169 ], [ %.111202925, %1456 ]
  %.9 = phi ptr [ %.11112, %1702 ], [ %.11112, %1692 ], [ %.11112, %1655 ], [ %1637, %1634 ], [ %.11112, %1615 ], [ %.11112, %1604 ], [ %.11112, %1553 ], [ %.11112, %thread-pre-split ], [ %44, %1490 ], [ %.11112, %930 ], [ %.11112, %.loopexit1536 ], [ %.11112, %922 ], [ %.11112, %924 ], [ %.11112, %926 ], [ %.11112, %928 ], [ %.11112, %918 ], [ %.11112, %908 ], [ %.11112, %910 ], [ %.11112, %902 ], [ %.11112, %894 ], [ %.11112, %895 ], [ %.11112, %896 ], [ %.11112, %697 ], [ %.11112, %695 ], [ %.11112, %693 ], [ %.11112, %691 ], [ %.11112, %689 ], [ %.11112, %653 ], [ %.11112, %661 ], [ %.11112, %649 ], [ %.11112, %632 ], [ %.11112, %620 ], [ %.11112, %587 ], [ %.11112, %588 ], [ %.11112, %580 ], [ %.11112, %555 ], [ %.11112, %524 ], [ %.11112, %511 ], [ %.11112, %494 ], [ %.11112, %496 ], [ %.11112, %489 ], [ %.11112, %330 ], [ %.11112, %377 ], [ %.11112, %367 ], [ %.11112, %272 ], [ %.11112, %301 ], [ %.11112, %262 ], [ %.11112, %263 ], [ %.11112, %248 ], [ %.11112, %243 ], [ %.11112, %242 ], [ %.11112, %233 ], [ %.11112, %227 ], [ %.11112, %215 ], [ %.11112, %203 ], [ %.11112, %186 ], [ %.11112, %175 ], [ %.11112, %138 ], [ %.11112, %127 ], [ %.11112, %99 ], [ %.11112, %107 ], [ %.11112, %86 ], [ %.11112, %76 ], [ %.11112, %61 ], [ %.11112, %61 ], [ %.11112, %148 ], [ %.11112, %153 ], [ %.11112, %158 ], [ %.11112, %163 ], [ %.11112, %178 ], [ %.11112, %206 ], [ %.11112, %241 ], [ %.11112, %261 ], [ %.11112, %287 ], [ %.11112, %273 ], [ %.11112, %266 ], [ %.11112, %316 ], [ %.11112, %302 ], [ %.11112, %325 ], [ %.11112, %330 ], [ %.11112, %539 ], [ %.11112, %525 ], [ %.11112, %571 ], [ %.11112, %556 ], [ %.11112, %593 ], [ %.11112, %598 ], [ %.11112, %603 ], [ %.11112, %608 ], [ %.11112, %623 ], [ %.11112, %652 ], [ %.11112, %671 ], [ %.11112, %894 ], [ %.11112, %1146 ], [ %.11112, %1164 ], [ %.11112, %1582 ], [ %.11112, %1669 ], [ %.11112, %1656 ], [ %spec.select1416, %.thread1475 ], [ %.211132913, %869 ], [ %.211132913, %882 ], [ %.211132913, %868 ], [ %860, %859 ], [ %.11112, %1412 ], [ %.11112, %1375 ], [ %.11112, %.thread3744 ], [ %.11112, %1427 ], [ %.11112, %1439 ], [ %.11112, %1390 ], [ %.11112, %1402 ], [ %.11112, %1353 ], [ %.11112, %1365 ], [ %.11112, %1566 ], [ %.11112, %1566 ], [ %.11112, %1559 ], [ %.11112, %1570 ], [ %1461, %1456 ], [ %.11112, %1169 ], [ %.11112, %1169 ], [ %.11112, %676 ], [ %.11112, %66 ], [ %.11112, %66 ]
  %1713 = getelementptr inbounds i8, ptr %.9, i64 1
  %.not1225 = icmp eq ptr %1713, %33
  br i1 %.not1225, label %._crit_edge2930, label %50, !llvm.loop !35

._crit_edge2930:                                  ; preds = %.thread1441
  %.not1226 = icmp ne ptr %.51124, null
  %1714 = zext i1 %.not1226 to i32
  %.not1227 = icmp ne ptr %.91136, null
  %1715 = zext i1 %.not1227 to i32
  %.not1228 = icmp ne ptr %.31140, null
  %1716 = zext i1 %.not1228 to i32
  %.not1229 = icmp ne ptr %.71148, null
  %1717 = zext i1 %.not1229 to i32
  %.not1230 = icmp ne ptr %.31159, null
  %1718 = zext i1 %.not1230 to i32
  %1719 = add nuw nsw i32 %1717, %1718
  %1720 = add nuw nsw i32 %1719, %1716
  %1721 = add nuw nsw i32 %1720, %1715
  %1722 = add nuw nsw i32 %1721, %1714
  %1723 = icmp ult i32 %1722, 2
  br i1 %1723, label %1725, label %1724

1724:                                             ; preds = %._crit_edge2930
  tail call void @__assert_fail(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 2120, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1725:                                             ; preds = %._crit_edge2930
  %1726 = load i32, ptr %8, align 4
  %1727 = and i32 %1726, 2130706432
  %1728 = icmp eq i32 %1727, 0
  br i1 %1728, label %1730, label %1729

1729:                                             ; preds = %1725
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2122, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1730:                                             ; preds = %1725
  br i1 %.not1226, label %1731, label %1753

1731:                                             ; preds = %1730
  %1732 = getelementptr inbounds i8, ptr %1, i64 24
  %1733 = load ptr, ptr %1732, align 8, !tbaa !28
  %.not1231 = icmp eq ptr %1733, null
  br i1 %.not1231, label %1753, label %1734, !prof !10

1734:                                             ; preds = %1731
  %1735 = load i32, ptr %0, align 8
  %1736 = shl i32 %.34, 10
  %1737 = and i32 %1736, 130048
  %1738 = and i32 %1735, -130049
  %1739 = or disjoint i32 %1738, %1737
  store i32 %1739, ptr %0, align 8
  %1740 = load ptr, ptr %1732, align 8, !tbaa !28
  %1741 = ptrtoint ptr %33 to i64
  %1742 = ptrtoint ptr %.51124 to i64
  %1743 = sub i64 %1741, %1742
  %1744 = tail call i32 %1740(ptr noundef nonnull %0, ptr noundef nonnull %.51124, i64 noundef %1743) #4
  %.not1232 = icmp eq i32 %1744, 0
  %.pre3730 = load i32, ptr %8, align 4
  br i1 %.not1232, label %1748, label %1745, !prof !11

1745:                                             ; preds = %1734
  %1746 = and i32 %.pre3730, -2130706433
  %1747 = or disjoint i32 %1746, 50331648
  store i32 %1747, ptr %8, align 4
  br label %1748

1748:                                             ; preds = %1745, %1734
  %1749 = phi i32 [ %1747, %1745 ], [ %.pre3730, %1734 ]
  %1750 = load i32, ptr %0, align 8
  %1751 = lshr i32 %1750, 10
  %1752 = and i32 %1749, 2130706432
  %.not1233 = icmp eq i32 %1752, 0
  br i1 %.not1233, label %1753, label %.thread1468, !prof !11

1753:                                             ; preds = %1731, %1748, %1730
  %1754 = phi i32 [ %1726, %1730 ], [ %1749, %1748 ], [ %1726, %1731 ]
  %.36 = phi i32 [ %.34, %1730 ], [ %1751, %1748 ], [ %.34, %1731 ]
  %1755 = and i32 %1754, 2130706432
  %1756 = icmp eq i32 %1755, 0
  br i1 %1756, label %1758, label %1757

1757:                                             ; preds = %1753
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2123, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1758:                                             ; preds = %1753
  br i1 %.not1227, label %1759, label %1781

1759:                                             ; preds = %1758
  %1760 = getelementptr inbounds i8, ptr %1, i64 32
  %1761 = load ptr, ptr %1760, align 8, !tbaa !29
  %.not1234 = icmp eq ptr %1761, null
  br i1 %.not1234, label %1781, label %1762, !prof !10

1762:                                             ; preds = %1759
  %1763 = load i32, ptr %0, align 8
  %1764 = shl i32 %.36, 10
  %1765 = and i32 %1764, 130048
  %1766 = and i32 %1763, -130049
  %1767 = or disjoint i32 %1766, %1765
  store i32 %1767, ptr %0, align 8
  %1768 = load ptr, ptr %1760, align 8, !tbaa !29
  %1769 = ptrtoint ptr %33 to i64
  %1770 = ptrtoint ptr %.91136 to i64
  %1771 = sub i64 %1769, %1770
  %1772 = tail call i32 %1768(ptr noundef nonnull %0, ptr noundef nonnull %.91136, i64 noundef %1771) #4
  %.not1235 = icmp eq i32 %1772, 0
  %.pre3731 = load i32, ptr %8, align 4
  br i1 %.not1235, label %1776, label %1773, !prof !11

1773:                                             ; preds = %1762
  %1774 = and i32 %.pre3731, -2130706433
  %1775 = or disjoint i32 %1774, 67108864
  store i32 %1775, ptr %8, align 4
  br label %1776

1776:                                             ; preds = %1773, %1762
  %1777 = phi i32 [ %1775, %1773 ], [ %.pre3731, %1762 ]
  %1778 = load i32, ptr %0, align 8
  %1779 = lshr i32 %1778, 10
  %1780 = and i32 %1777, 2130706432
  %.not1236 = icmp eq i32 %1780, 0
  br i1 %.not1236, label %1781, label %.thread1468, !prof !11

1781:                                             ; preds = %1759, %1776, %1758
  %1782 = phi i32 [ %1754, %1758 ], [ %1777, %1776 ], [ %1754, %1759 ]
  %.38 = phi i32 [ %.36, %1758 ], [ %1779, %1776 ], [ %.36, %1759 ]
  %1783 = and i32 %1782, 2130706432
  %1784 = icmp eq i32 %1783, 0
  br i1 %1784, label %1786, label %1785

1785:                                             ; preds = %1781
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2124, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1786:                                             ; preds = %1781
  br i1 %.not1228, label %1787, label %1809

1787:                                             ; preds = %1786
  %1788 = getelementptr inbounds i8, ptr %1, i64 8
  %1789 = load ptr, ptr %1788, align 8, !tbaa !25
  %.not1237 = icmp eq ptr %1789, null
  br i1 %.not1237, label %1809, label %1790, !prof !10

1790:                                             ; preds = %1787
  %1791 = load i32, ptr %0, align 8
  %1792 = shl i32 %.38, 10
  %1793 = and i32 %1792, 130048
  %1794 = and i32 %1791, -130049
  %1795 = or disjoint i32 %1794, %1793
  store i32 %1795, ptr %0, align 8
  %1796 = load ptr, ptr %1788, align 8, !tbaa !25
  %1797 = ptrtoint ptr %33 to i64
  %1798 = ptrtoint ptr %.31140 to i64
  %1799 = sub i64 %1797, %1798
  %1800 = tail call i32 %1796(ptr noundef nonnull %0, ptr noundef nonnull %.31140, i64 noundef %1799) #4
  %.not1238 = icmp eq i32 %1800, 0
  %.pre3732 = load i32, ptr %8, align 4
  br i1 %.not1238, label %1804, label %1801, !prof !11

1801:                                             ; preds = %1790
  %1802 = and i32 %.pre3732, -2130706433
  %1803 = or disjoint i32 %1802, 33554432
  store i32 %1803, ptr %8, align 4
  br label %1804

1804:                                             ; preds = %1801, %1790
  %1805 = phi i32 [ %1803, %1801 ], [ %.pre3732, %1790 ]
  %1806 = load i32, ptr %0, align 8
  %1807 = lshr i32 %1806, 10
  %1808 = and i32 %1805, 2130706432
  %.not1239 = icmp eq i32 %1808, 0
  br i1 %.not1239, label %1809, label %.thread1468, !prof !11

1809:                                             ; preds = %1787, %1804, %1786
  %1810 = phi i32 [ %1782, %1786 ], [ %1805, %1804 ], [ %1782, %1787 ]
  %.40 = phi i32 [ %.38, %1786 ], [ %1807, %1804 ], [ %.38, %1787 ]
  %1811 = and i32 %1810, 2130706432
  %1812 = icmp eq i32 %1811, 0
  br i1 %1812, label %1814, label %1813

1813:                                             ; preds = %1809
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2125, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1814:                                             ; preds = %1809
  br i1 %.not1229, label %1815, label %1837

1815:                                             ; preds = %1814
  %1816 = getelementptr inbounds i8, ptr %1, i64 48
  %1817 = load ptr, ptr %1816, align 8, !tbaa !33
  %.not1240 = icmp eq ptr %1817, null
  br i1 %.not1240, label %1837, label %1818, !prof !10

1818:                                             ; preds = %1815
  %1819 = load i32, ptr %0, align 8
  %1820 = shl i32 %.40, 10
  %1821 = and i32 %1820, 130048
  %1822 = and i32 %1819, -130049
  %1823 = or disjoint i32 %1822, %1821
  store i32 %1823, ptr %0, align 8
  %1824 = load ptr, ptr %1816, align 8, !tbaa !33
  %1825 = ptrtoint ptr %33 to i64
  %1826 = ptrtoint ptr %.71148 to i64
  %1827 = sub i64 %1825, %1826
  %1828 = tail call i32 %1824(ptr noundef nonnull %0, ptr noundef nonnull %.71148, i64 noundef %1827) #4
  %.not1241 = icmp eq i32 %1828, 0
  %.pre3733 = load i32, ptr %8, align 4
  br i1 %.not1241, label %1832, label %1829, !prof !11

1829:                                             ; preds = %1818
  %1830 = and i32 %.pre3733, -2130706433
  %1831 = or disjoint i32 %1830, 100663296
  store i32 %1831, ptr %8, align 4
  br label %1832

1832:                                             ; preds = %1829, %1818
  %1833 = phi i32 [ %1831, %1829 ], [ %.pre3733, %1818 ]
  %1834 = load i32, ptr %0, align 8
  %1835 = lshr i32 %1834, 10
  %1836 = and i32 %1833, 2130706432
  %.not1242 = icmp eq i32 %1836, 0
  br i1 %.not1242, label %1837, label %.thread1468, !prof !11

1837:                                             ; preds = %1815, %1832, %1814
  %1838 = phi i32 [ %1810, %1814 ], [ %1833, %1832 ], [ %1810, %1815 ]
  %.42 = phi i32 [ %.40, %1814 ], [ %1835, %1832 ], [ %.40, %1815 ]
  %1839 = and i32 %1838, 2130706432
  %1840 = icmp eq i32 %1839, 0
  br i1 %1840, label %1842, label %1841

1841:                                             ; preds = %1837
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 2126, ptr noundef nonnull @__PRETTY_FUNCTION__.http_parser_execute) #5
  unreachable

1842:                                             ; preds = %1837
  br i1 %.not1230, label %1843, label %1865

1843:                                             ; preds = %1842
  %1844 = getelementptr inbounds i8, ptr %1, i64 16
  %1845 = load ptr, ptr %1844, align 8, !tbaa !23
  %.not1243 = icmp eq ptr %1845, null
  br i1 %.not1243, label %1865, label %1846, !prof !10

1846:                                             ; preds = %1843
  %1847 = load i32, ptr %0, align 8
  %1848 = shl i32 %.42, 10
  %1849 = and i32 %1848, 130048
  %1850 = and i32 %1847, -130049
  %1851 = or disjoint i32 %1850, %1849
  store i32 %1851, ptr %0, align 8
  %1852 = load ptr, ptr %1844, align 8, !tbaa !23
  %1853 = ptrtoint ptr %33 to i64
  %1854 = ptrtoint ptr %.31159 to i64
  %1855 = sub i64 %1853, %1854
  %1856 = tail call i32 %1852(ptr noundef nonnull %0, ptr noundef nonnull %.31159, i64 noundef %1855) #4
  %.not1244 = icmp eq i32 %1856, 0
  %.pre3734 = load i32, ptr %8, align 4
  br i1 %.not1244, label %1860, label %1857, !prof !11

1857:                                             ; preds = %1846
  %1858 = and i32 %.pre3734, -2130706433
  %1859 = or disjoint i32 %1858, 134217728
  store i32 %1859, ptr %8, align 4
  br label %1860

1860:                                             ; preds = %1857, %1846
  %1861 = phi i32 [ %1859, %1857 ], [ %.pre3734, %1846 ]
  %1862 = load i32, ptr %0, align 8
  %1863 = lshr i32 %1862, 10
  %1864 = and i32 %1861, 2130706432
  %.not1245 = icmp eq i32 %1864, 0
  br i1 %.not1245, label %1865, label %.thread1468, !prof !11

1865:                                             ; preds = %1843, %1860, %1842
  %.44 = phi i32 [ %.42, %1842 ], [ %1863, %1860 ], [ %.42, %1843 ]
  %1866 = load i32, ptr %0, align 8
  %1867 = shl i32 %.44, 10
  %1868 = and i32 %1867, 130048
  %1869 = and i32 %1866, -130049
  %1870 = or disjoint i32 %1869, %1868
  store i32 %1870, ptr %0, align 8
  br label %.thread1468

.thread:                                          ; preds = %1044, %1035, %1016, %978, %1142, %888, %855, %788, %484, %471, %468, %463, %457, %452, %444, %438, %432, %417, %390, %1574, %1449, %1683, %1648, %1589, %1549, %1241, %1207, %1165, %1147, %914, %681, %672, %667, %657, %645, %638, %628, %616, %609, %604, %599, %594, %589, %583, %514, %507, %502, %358, %338, %326, %258, %244, %229, %221, %211, %199, %192, %182, %171, %164, %159, %154, %149, %118, %103, %62, %57
  %1871 = phi i32 [ %60, %57 ], [ %1686, %1683 ], [ %1650, %1648 ], [ %1592, %1589 ], [ %1577, %1574 ], [ %1552, %1549 ], [ %1452, %1449 ], [ %1210, %1207 ], [ %1244, %1241 ], [ %1168, %1165 ], [ %1150, %1147 ], [ %917, %914 ], [ %684, %681 ], [ %675, %672 ], [ %660, %657 ], [ %670, %667 ], [ %648, %645 ], [ %631, %628 ], [ %641, %638 ], [ %619, %616 ], [ %612, %609 ], [ %607, %604 ], [ %602, %599 ], [ %597, %594 ], [ %592, %589 ], [ %586, %583 ], [ %517, %514 ], [ %510, %507 ], [ %505, %502 ], [ %340, %338 ], [ %360, %358 ], [ %329, %326 ], [ %260, %258 ], [ %247, %244 ], [ %232, %229 ], [ %214, %211 ], [ %224, %221 ], [ %202, %199 ], [ %195, %192 ], [ %185, %182 ], [ %174, %171 ], [ %167, %164 ], [ %162, %159 ], [ %157, %154 ], [ %152, %149 ], [ %121, %118 ], [ %106, %103 ], [ %65, %62 ], [ %392, %390 ], [ %419, %417 ], [ %434, %432 ], [ %440, %438 ], [ %446, %444 ], [ %454, %452 ], [ %459, %457 ], [ %465, %463 ], [ %470, %468 ], [ %473, %471 ], [ %486, %484 ], [ %791, %788 ], [ %858, %855 ], [ %890, %888 ], [ %1038, %1035 ], [ %1047, %1044 ], [ %1019, %1016 ], [ %981, %978 ], [ %1145, %1142 ]
  %.45 = phi i32 [ %.011602918, %57 ], [ 59, %1683 ], [ 58, %1648 ], [ 54, %1589 ], [ 52, %1574 ], [ 51, %1549 ], [ 56, %1449 ], [ 55, %1207 ], [ 55, %1241 ], [ 45, %1165 ], [ 50, %1147 ], [ 48, %914 ], [ 42, %681 ], [ 41, %672 ], [ 40, %657 ], [ 40, %667 ], [ 39, %645 ], [ 38, %628 ], [ 38, %638 ], [ 37, %616 ], [ 36, %609 ], [ 35, %604 ], [ 34, %599 ], [ 33, %594 ], [ 32, %589 ], [ 1, %583 ], [ 1, %514 ], [ %.11161, %507 ], [ 1, %502 ], [ 18, %338 ], [ 18, %358 ], [ 17, %326 ], [ 14, %258 ], [ 14, %244 ], [ 13, %229 ], [ 12, %211 ], [ 12, %221 ], [ 11, %199 ], [ 10, %192 ], [ 10, %182 ], [ 9, %171 ], [ 8, %164 ], [ 7, %159 ], [ 6, %154 ], [ 5, %149 ], [ 4, %118 ], [ 3, %103 ], [ 1, %62 ], [ 19, %390 ], [ 19, %417 ], [ 19, %432 ], [ 19, %438 ], [ 19, %444 ], [ 19, %452 ], [ 19, %457 ], [ 19, %463 ], [ 19, %468 ], [ 19, %471 ], [ 19, %484 ], [ 43, %788 ], [ 43, %855 ], [ 43, %888 ], [ 48, %1035 ], [ 48, %1044 ], [ 48, %1016 ], [ 50, %978 ], [ %.18, %1142 ]
  %.10 = phi ptr [ %.011112927, %57 ], [ %.11112, %1683 ], [ %.11112, %1648 ], [ %.11112, %1589 ], [ %.11112, %1574 ], [ %.11112, %1549 ], [ %.11112, %1449 ], [ %.11112, %1207 ], [ %.11112, %1241 ], [ %.11112, %1165 ], [ %.11112, %1147 ], [ %.11112, %914 ], [ %.11112, %681 ], [ %.11112, %672 ], [ %.11112, %657 ], [ %.11112, %667 ], [ %.11112, %645 ], [ %.11112, %628 ], [ %.11112, %638 ], [ %.11112, %616 ], [ %.11112, %609 ], [ %.11112, %604 ], [ %.11112, %599 ], [ %.11112, %594 ], [ %.11112, %589 ], [ %.11112, %583 ], [ %.11112, %514 ], [ %.11112, %507 ], [ %.11112, %502 ], [ %.11112, %338 ], [ %.11112, %358 ], [ %.11112, %326 ], [ %.11112, %258 ], [ %.11112, %244 ], [ %.11112, %229 ], [ %.11112, %211 ], [ %.11112, %221 ], [ %.11112, %199 ], [ %.11112, %192 ], [ %.11112, %182 ], [ %.11112, %171 ], [ %.11112, %164 ], [ %.11112, %159 ], [ %.11112, %154 ], [ %.11112, %149 ], [ %.11112, %118 ], [ %.11112, %103 ], [ %.11112, %62 ], [ %.11112, %390 ], [ %.11112, %417 ], [ %.11112, %432 ], [ %.11112, %438 ], [ %.11112, %444 ], [ %.11112, %452 ], [ %.11112, %457 ], [ %.11112, %463 ], [ %.11112, %468 ], [ %.11112, %471 ], [ %.11112, %484 ], [ %.211132913, %788 ], [ %.211131978, %855 ], [ %.211132913, %888 ], [ %.411152898, %1035 ], [ %.411152898, %1044 ], [ %.411152898, %1016 ], [ %.411152898, %978 ], [ %.411151552, %1142 ]
  %1872 = and i32 %1871, 2130706432
  %1873 = icmp eq i32 %1872, 0
  br i1 %1873, label %1874, label %1876

1874:                                             ; preds = %.thread
  %1875 = or disjoint i32 %1871, 536870912
  store i32 %1875, ptr %8, align 4
  br label %1876

1876:                                             ; preds = %.thread, %1874
  %1877 = load i32, ptr %0, align 8
  %1878 = shl nuw nsw i32 %.45, 10
  %1879 = and i32 %1878, 130048
  %1880 = and i32 %1877, -130049
  %1881 = or disjoint i32 %1880, %1879
  store i32 %1881, ptr %0, align 8
  %1882 = ptrtoint ptr %.10 to i64
  %1883 = ptrtoint ptr %2 to i64
  %1884 = sub i64 %1882, %1883
  br label %.thread1468

.thread1468:                                      ; preds = %1860, %1832, %1804, %1776, %1748, %1445, %1408, %1371, %1330, %1326, %1010, %967, %.thread1495, %891, %17, %22, %13, %13, %13, %13, %14, %4, %1876, %1865, %1708, %1675, %1621, %1527, %1522, %1273, %1260, %1235, %1203, %577, %545, %383, %322, %293, %144, %92, %26
  %.7 = phi i64 [ 1, %26 ], [ %1884, %1876 ], [ %1711, %1708 ], [ %1677, %1675 ], [ %1624, %1621 ], [ %1525, %1522 ], [ %1535, %1527 ], [ %1238, %1235 ], [ %1269, %1260 ], [ %1279, %1273 ], [ %1205, %1203 ], [ %893, %891 ], [ %579, %577 ], [ %547, %545 ], [ %386, %383 ], [ %295, %293 ], [ %324, %322 ], [ %147, %144 ], [ %95, %92 ], [ %3, %1865 ], [ 0, %4 ], [ 0, %14 ], [ 0, %13 ], [ 0, %13 ], [ 0, %13 ], [ 0, %13 ], [ 0, %22 ], [ 0, %17 ], [ %1489, %.thread1495 ], [ %1012, %1010 ], [ %969, %967 ], [ %1448, %1445 ], [ %1411, %1408 ], [ %1374, %1371 ], [ %1338, %1330 ], [ %1329, %1326 ], [ %3, %1748 ], [ %3, %1776 ], [ %3, %1804 ], [ %3, %1832 ], [ %3, %1860 ]
  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: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @memchr(ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #2

; 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) #3

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 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 speculatable willreturn memory(none) }
attributes #4 = { nounwind }
attributes #5 = { noreturn nounwind }
attributes #6 = { nounwind willreturn memory(read) }

!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 56}
!6 = !{!"http_parser_settings", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"branch_weights", !"expected", i32 1, i32 2000}
!11 = !{!"branch_weights", !"expected", i32 2000, i32 1}
!12 = !{!8, !8, i64 0}
!13 = !{!14, !15, i64 4}
!14 = !{!"http_parser", !15, i64 0, !15, i64 0, !15, i64 1, !15, i64 2, !15, i64 3, !15, i64 3, !15, i64 4, !16, i64 8, !17, i64 16, !17, i64 18, !15, i64 20, !15, i64 22, !15, i64 23, !15, i64 23, !7, i64 24}
!15 = !{!"int", !8, i64 0}
!16 = !{!"long", !8, i64 0}
!17 = !{!"short", !8, i64 0}
!18 = !{!14, !16, i64 8}
!19 = !{!6, !7, i64 0}
!20 = !{!"branch_weights", i32 1, i32 2001, i32 2000}
!21 = !{!14, !17, i64 16}
!22 = !{!14, !17, i64 18}
!23 = !{!6, !7, i64 16}
!24 = !{!7, !7, i64 0}
!25 = !{!6, !7, i64 8}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!6, !7, i64 24}
!29 = !{!6, !7, i64 32}
!30 = distinct !{!30, !27}
!31 = !{!6, !7, i64 72}
!32 = !{!6, !7, i64 40}
!33 = !{!6, !7, i64 48}
!34 = !{!6, !7, i64 64}
!35 = distinct !{!35, !27}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LowerExpectIntrinsicPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass