; LLVM IR from buaazp/zimg :: deps/libevhtp (htparse)

; 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.htparser = type { i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i64, i64, i64, i64, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, [8192 x i8] }

@usual = external hidden global [8 x i32], align 16
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@unhex = external hidden global <{ [128 x i8], [128 x i8] }>, align 16

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
define dso_local i64 @htparser_run(ptr noundef %0, ptr noundef %1, ptr noundef %2, i64 noundef %3) #1 {
  %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 i64, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i64, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i64, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store i64 %3, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  br label %29

29:                                               ; preds = %4
  br label %30

30:                                               ; preds = %29
  br label %31

31:                                               ; preds = %30
  br label %32

32:                                               ; preds = %31
  br label %33

33:                                               ; preds = %32
  br label %34

34:                                               ; preds = %33
  %35 = load ptr, ptr %6, align 8, !tbaa !5
  %36 = getelementptr inbounds %struct.htparser, ptr %35, i32 0, i32 0
  store i32 0, ptr %36, align 8, !tbaa !11
  %37 = load ptr, ptr %6, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.htparser, ptr %37, i32 0, i32 12
  store i64 0, ptr %38, align 8, !tbaa !14
  store i64 0, ptr %12, align 8, !tbaa !9
  br label %39

39:                                               ; preds = %3064, %34
  %40 = load i64, ptr %12, align 8, !tbaa !9
  %41 = load i64, ptr %9, align 8, !tbaa !9
  %42 = icmp ult i64 %40, %41
  br i1 %42, label %43, label %3067

43:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  %44 = load ptr, ptr %8, align 8, !tbaa !5
  %45 = load i64, ptr %12, align 8, !tbaa !9
  %46 = getelementptr inbounds i8, ptr %44, i64 %45
  %47 = load i8, ptr %46, align 1, !tbaa !15
  store i8 %47, ptr %10, align 1, !tbaa !15
  br label %48

48:                                               ; preds = %43
  br label %49

49:                                               ; preds = %48
  br label %50

50:                                               ; preds = %49
  %51 = load ptr, ptr %6, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.htparser, ptr %51, i32 0, i32 22
  %53 = load i32, ptr %52, align 8, !tbaa !16
  %54 = zext i32 %53 to i64
  %55 = icmp uge i64 %54, 8192
  br i1 %55, label %56, label %61

56:                                               ; preds = %50
  %57 = load ptr, ptr %6, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct.htparser, ptr %57, i32 0, i32 0
  store i32 1, ptr %58, align 8, !tbaa !11
  %59 = load i64, ptr %12, align 8, !tbaa !9
  %60 = add i64 %59, 1
  store i64 %60, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

61:                                               ; preds = %50
  %62 = load ptr, ptr %6, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.htparser, ptr %62, i32 0, i32 13
  %64 = load i64, ptr %63, align 8, !tbaa !17
  %65 = add i64 %64, 1
  store i64 %65, ptr %63, align 8, !tbaa !17
  %66 = load ptr, ptr %6, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.htparser, ptr %66, i32 0, i32 12
  %68 = load i64, ptr %67, align 8, !tbaa !14
  %69 = add i64 %68, 1
  store i64 %69, ptr %67, align 8, !tbaa !14
  %70 = load ptr, ptr %6, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.htparser, ptr %70, i32 0, i32 1
  %72 = load i32, ptr %71, align 4, !tbaa !18
  switch i32 %72, label %3052 [
    i32 0, label %73
    i32 1, label %186
    i32 2, label %442
    i32 3, label %522
    i32 4, label %662
    i32 5, label %693
    i32 6, label %733
    i32 8, label %855
    i32 7, label %939
    i32 9, label %1039
    i32 10, label %1140
    i32 11, label %1323
    i32 12, label %1534
    i32 13, label %1718
    i32 14, label %1749
    i32 15, label %1764
    i32 16, label %1776
    i32 17, label %1788
    i32 18, label %1800
    i32 19, label %1822
    i32 20, label %1855
    i32 21, label %1877
    i32 40, label %1933
    i32 41, label %1979
    i32 42, label %1997
    i32 22, label %2008
    i32 23, label %2023
    i32 24, label %2079
    i32 25, label %2091
    i32 28, label %2125
    i32 29, label %2245
    i32 30, label %2296
    i32 26, label %2521
    i32 27, label %2556
    i32 31, label %2642
    i32 32, label %2722
    i32 34, label %2781
    i32 35, label %2801
    i32 36, label %2832
    i32 37, label %2876
    i32 38, label %2939
    i32 39, label %2951
    i32 33, label %2975
  ]

73:                                               ; preds = %61
  br label %74

74:                                               ; preds = %73
  br label %75

75:                                               ; preds = %74
  br label %76

76:                                               ; preds = %75
  %77 = load ptr, ptr %6, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.htparser, ptr %77, i32 0, i32 2
  store i32 0, ptr %78, align 8, !tbaa !19
  %79 = load ptr, ptr %6, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.htparser, ptr %79, i32 0, i32 0
  store i32 0, ptr %80, align 8, !tbaa !11
  %81 = load ptr, ptr %6, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.htparser, ptr %81, i32 0, i32 6
  store i32 16, ptr %82, align 8, !tbaa !20
  %83 = load ptr, ptr %6, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.htparser, ptr %83, i32 0, i32 7
  store i8 0, ptr %84, align 4, !tbaa !21
  %85 = load ptr, ptr %6, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.htparser, ptr %85, i32 0, i32 8
  store i8 0, ptr %86, align 1, !tbaa !22
  %87 = load ptr, ptr %6, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.htparser, ptr %87, i32 0, i32 9
  store i8 0, ptr %88, align 2, !tbaa !23
  %89 = load ptr, ptr %6, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.htparser, ptr %89, i32 0, i32 10
  store i64 0, ptr %90, align 8, !tbaa !24
  %91 = load ptr, ptr %6, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.htparser, ptr %91, i32 0, i32 11
  store i64 0, ptr %92, align 8, !tbaa !25
  %93 = load ptr, ptr %6, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.htparser, ptr %93, i32 0, i32 14
  store i32 0, ptr %94, align 8, !tbaa !26
  %95 = load ptr, ptr %6, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.htparser, ptr %95, i32 0, i32 15
  store i32 0, ptr %96, align 4, !tbaa !27
  %97 = load ptr, ptr %6, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.htparser, ptr %97, i32 0, i32 16
  store ptr null, ptr %98, align 8, !tbaa !28
  %99 = load ptr, ptr %6, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.htparser, ptr %99, i32 0, i32 17
  store ptr null, ptr %100, align 8, !tbaa !29
  %101 = load ptr, ptr %6, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.htparser, ptr %101, i32 0, i32 18
  store ptr null, ptr %102, align 8, !tbaa !30
  %103 = load ptr, ptr %6, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.htparser, ptr %103, i32 0, i32 19
  store ptr null, ptr %104, align 8, !tbaa !31
  %105 = load ptr, ptr %6, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.htparser, ptr %105, i32 0, i32 20
  store ptr null, ptr %106, align 8, !tbaa !32
  %107 = load i8, ptr %10, align 1, !tbaa !15
  %108 = zext i8 %107 to i32
  %109 = icmp eq i32 %108, 13
  br i1 %109, label %114, label %110

110:                                              ; preds = %76
  %111 = load i8, ptr %10, align 1, !tbaa !15
  %112 = zext i8 %111 to i32
  %113 = icmp eq i32 %112, 10
  br i1 %113, label %114, label %115

114:                                              ; preds = %110, %76
  br label %3060

115:                                              ; preds = %110
  %116 = load i8, ptr %10, align 1, !tbaa !15
  %117 = zext i8 %116 to i32
  %118 = icmp slt i32 %117, 65
  br i1 %118, label %123, label %119

119:                                              ; preds = %115
  %120 = load i8, ptr %10, align 1, !tbaa !15
  %121 = zext i8 %120 to i32
  %122 = icmp sgt i32 %121, 90
  br i1 %122, label %123, label %132

123:                                              ; preds = %119, %115
  %124 = load i8, ptr %10, align 1, !tbaa !15
  %125 = zext i8 %124 to i32
  %126 = icmp ne i32 %125, 95
  br i1 %126, label %127, label %132

127:                                              ; preds = %123
  %128 = load ptr, ptr %6, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.htparser, ptr %128, i32 0, i32 0
  store i32 3, ptr %129, align 8, !tbaa !11
  %130 = load i64, ptr %12, align 8, !tbaa !9
  %131 = add i64 %130, 1
  store i64 %131, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

132:                                              ; preds = %123, %119
  %133 = load ptr, ptr %6, align 8, !tbaa !5
  %134 = load ptr, ptr %7, align 8, !tbaa !5
  %135 = call i32 @hook_on_msg_begin_run(ptr noundef %133, ptr noundef %134)
  store i32 %135, ptr %13, align 4, !tbaa !33
  %136 = load i8, ptr %10, align 1, !tbaa !15
  %137 = load ptr, ptr %6, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.htparser, ptr %137, i32 0, i32 23
  %139 = load ptr, ptr %6, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.htparser, ptr %139, i32 0, i32 22
  %141 = load i32, ptr %140, align 8, !tbaa !16
  %142 = add i32 %141, 1
  store i32 %142, ptr %140, align 8, !tbaa !16
  %143 = zext i32 %141 to i64
  %144 = getelementptr inbounds [8192 x i8], ptr %138, i64 0, i64 %143
  store i8 %136, ptr %144, align 1, !tbaa !15
  %145 = load ptr, ptr %6, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.htparser, ptr %145, i32 0, i32 23
  %147 = load ptr, ptr %6, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.htparser, ptr %147, i32 0, i32 22
  %149 = load i32, ptr %148, align 8, !tbaa !16
  %150 = zext i32 %149 to i64
  %151 = getelementptr inbounds [8192 x i8], ptr %146, i64 0, i64 %150
  store i8 0, ptr %151, align 1, !tbaa !15
  %152 = load ptr, ptr %6, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.htparser, ptr %152, i32 0, i32 4
  %154 = load i32, ptr %153, align 8, !tbaa !34
  %155 = icmp eq i32 %154, 0
  br i1 %155, label %156, label %159

156:                                              ; preds = %132
  %157 = load ptr, ptr %6, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.htparser, ptr %157, i32 0, i32 1
  store i32 1, ptr %158, align 4, !tbaa !18
  br label %177

159:                                              ; preds = %132
  %160 = load ptr, ptr %6, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.htparser, ptr %160, i32 0, i32 4
  %162 = load i32, ptr %161, align 8, !tbaa !34
  %163 = icmp eq i32 %162, 1
  br i1 %163, label %164, label %171

164:                                              ; preds = %159
  %165 = load i8, ptr %10, align 1, !tbaa !15
  %166 = zext i8 %165 to i32
  %167 = icmp eq i32 %166, 72
  br i1 %167, label %168, label %171

168:                                              ; preds = %164
  %169 = load ptr, ptr %6, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.htparser, ptr %169, i32 0, i32 1
  store i32 14, ptr %170, align 4, !tbaa !18
  br label %176

171:                                              ; preds = %164, %159
  %172 = load ptr, ptr %6, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.htparser, ptr %172, i32 0, i32 0
  store i32 3, ptr %173, align 8, !tbaa !11
  %174 = load i64, ptr %12, align 8, !tbaa !9
  %175 = add i64 %174, 1
  store i64 %175, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

176:                                              ; preds = %168
  br label %177

177:                                              ; preds = %176, %156
  %178 = load i32, ptr %13, align 4, !tbaa !33
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %185

180:                                              ; preds = %177
  %181 = load ptr, ptr %6, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.htparser, ptr %181, i32 0, i32 0
  store i32 11, ptr %182, align 8, !tbaa !11
  %183 = load i64, ptr %12, align 8, !tbaa !9
  %184 = add i64 %183, 1
  store i64 %184, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

185:                                              ; preds = %177
  br label %3060

186:                                              ; preds = %61
  br label %187

187:                                              ; preds = %186
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %188
  %190 = load i8, ptr %10, align 1, !tbaa !15
  %191 = zext i8 %190 to i32
  %192 = icmp eq i32 %191, 32
  br i1 %192, label %193, label %408

193:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  %194 = load ptr, ptr %6, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.htparser, ptr %194, i32 0, i32 23
  %196 = getelementptr inbounds [8192 x i8], ptr %195, i64 0, i64 0
  store ptr %196, ptr %16, align 8, !tbaa !5
  %197 = load ptr, ptr %6, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.htparser, ptr %197, i32 0, i32 22
  %199 = load i32, ptr %198, align 8, !tbaa !16
  switch i32 %199, label %383 [
    i32 3, label %200
    i32 4, label %215
    i32 5, label %259
    i32 6, label %299
    i32 7, label %326
    i32 8, label %351
    i32 9, label %364
  ]

200:                                              ; preds = %193
  %201 = load ptr, ptr %16, align 8, !tbaa !5
  %202 = load i32, ptr %201, align 4, !tbaa !33
  %203 = icmp eq i32 %202, 5522759
  br i1 %203, label %204, label %207

204:                                              ; preds = %200
  %205 = load ptr, ptr %6, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.htparser, ptr %205, i32 0, i32 6
  store i32 0, ptr %206, align 8, !tbaa !20
  br label %383

207:                                              ; preds = %200
  %208 = load ptr, ptr %16, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !33
  %210 = icmp eq i32 %209, 5526864
  br i1 %210, label %211, label %214

211:                                              ; preds = %207
  %212 = load ptr, ptr %6, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.htparser, ptr %212, i32 0, i32 6
  store i32 3, ptr %213, align 8, !tbaa !20
  br label %383

214:                                              ; preds = %207
  br label %383

215:                                              ; preds = %193
  %216 = load ptr, ptr %16, align 8, !tbaa !5
  %217 = getelementptr inbounds i8, ptr %216, i64 1
  %218 = load i8, ptr %217, align 1, !tbaa !15
  %219 = sext i8 %218 to i32
  %220 = icmp eq i32 %219, 79
  br i1 %220, label %221, label %250

221:                                              ; preds = %215
  %222 = load ptr, ptr %16, align 8, !tbaa !5
  %223 = load i32, ptr %222, align 4, !tbaa !33
  %224 = icmp eq i32 %223, 1414745936
  br i1 %224, label %225, label %228

225:                                              ; preds = %221
  %226 = load ptr, ptr %6, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.htparser, ptr %226, i32 0, i32 6
  store i32 2, ptr %227, align 8, !tbaa !20
  br label %383

228:                                              ; preds = %221
  %229 = load ptr, ptr %16, align 8, !tbaa !5
  %230 = load i32, ptr %229, align 4, !tbaa !33
  %231 = icmp eq i32 %230, 1498435395
  br i1 %231, label %232, label %235

232:                                              ; preds = %228
  %233 = load ptr, ptr %6, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.htparser, ptr %233, i32 0, i32 6
  store i32 6, ptr %234, align 8, !tbaa !20
  br label %383

235:                                              ; preds = %228
  %236 = load ptr, ptr %16, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !33
  %238 = icmp eq i32 %237, 1163284301
  br i1 %238, label %239, label %242

239:                                              ; preds = %235
  %240 = load ptr, ptr %6, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.htparser, ptr %240, i32 0, i32 6
  store i32 7, ptr %241, align 8, !tbaa !20
  br label %383

242:                                              ; preds = %235
  %243 = load ptr, ptr %16, align 8, !tbaa !5
  %244 = load i32, ptr %243, align 4, !tbaa !33
  %245 = icmp eq i32 %244, 1262702412
  br i1 %245, label %246, label %249

246:                                              ; preds = %242
  %247 = load ptr, ptr %6, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.htparser, ptr %247, i32 0, i32 6
  store i32 11, ptr %248, align 8, !tbaa !20
  br label %383

249:                                              ; preds = %242
  br label %258

250:                                              ; preds = %215
  %251 = load ptr, ptr %16, align 8, !tbaa !5
  %252 = load i32, ptr %251, align 4, !tbaa !33
  %253 = icmp eq i32 %252, 1145128264
  br i1 %253, label %254, label %257

254:                                              ; preds = %250
  %255 = load ptr, ptr %6, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.htparser, ptr %255, i32 0, i32 6
  store i32 1, ptr %256, align 8, !tbaa !20
  br label %383

257:                                              ; preds = %250
  br label %258

258:                                              ; preds = %257, %249
  br label %383

259:                                              ; preds = %193
  %260 = load ptr, ptr %16, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !33
  %262 = icmp eq i32 %261, 1329810253
  br i1 %262, label %263, label %272

263:                                              ; preds = %259
  %264 = load ptr, ptr %16, align 8, !tbaa !5
  %265 = getelementptr inbounds i8, ptr %264, i64 4
  %266 = load i8, ptr %265, align 1, !tbaa !15
  %267 = sext i8 %266 to i32
  %268 = icmp eq i32 %267, 76
  br i1 %268, label %269, label %272

269:                                              ; preds = %263
  %270 = load ptr, ptr %6, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.htparser, ptr %270, i32 0, i32 6
  store i32 5, ptr %271, align 8, !tbaa !20
  br label %383

272:                                              ; preds = %263, %259
  %273 = load ptr, ptr %16, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !33
  %275 = icmp eq i32 %274, 1128354388
  br i1 %275, label %276, label %285

276:                                              ; preds = %272
  %277 = load ptr, ptr %16, align 8, !tbaa !5
  %278 = getelementptr inbounds i8, ptr %277, i64 4
  %279 = load i8, ptr %278, align 1, !tbaa !15
  %280 = sext i8 %279 to i32
  %281 = icmp eq i32 %280, 69
  br i1 %281, label %282, label %285

282:                                              ; preds = %276
  %283 = load ptr, ptr %6, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.htparser, ptr %283, i32 0, i32 6
  store i32 13, ptr %284, align 8, !tbaa !20
  br label %383

285:                                              ; preds = %276, %272
  %286 = load ptr, ptr %16, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !33
  %288 = icmp eq i32 %287, 1129595216
  br i1 %288, label %289, label %298

289:                                              ; preds = %285
  %290 = load ptr, ptr %16, align 8, !tbaa !5
  %291 = getelementptr inbounds i8, ptr %290, i64 4
  %292 = load i8, ptr %291, align 1, !tbaa !15
  %293 = sext i8 %292 to i32
  %294 = icmp eq i32 %293, 72
  br i1 %294, label %295, label %298

295:                                              ; preds = %289
  %296 = load ptr, ptr %6, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.htparser, ptr %296, i32 0, i32 6
  store i32 15, ptr %297, align 8, !tbaa !20
  br label %383

298:                                              ; preds = %289, %285
  br label %383

299:                                              ; preds = %193
  %300 = load ptr, ptr %16, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !33
  %302 = icmp eq i32 %301, 1162626372
  br i1 %302, label %303, label %312

303:                                              ; preds = %299
  %304 = load ptr, ptr %16, align 8, !tbaa !5
  %305 = getelementptr inbounds i32, ptr %304, i64 1
  %306 = load i32, ptr %305, align 4, !tbaa !33
  %307 = and i32 %306, 65535
  %308 = icmp eq i32 %307, 17748
  br i1 %308, label %309, label %312

309:                                              ; preds = %303
  %310 = load ptr, ptr %6, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.htparser, ptr %310, i32 0, i32 6
  store i32 4, ptr %311, align 8, !tbaa !20
  br label %383

312:                                              ; preds = %303, %299
  %313 = load ptr, ptr %16, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !33
  %315 = icmp eq i32 %314, 1330400853
  br i1 %315, label %316, label %325

316:                                              ; preds = %312
  %317 = load ptr, ptr %16, align 8, !tbaa !5
  %318 = getelementptr inbounds i32, ptr %317, i64 1
  %319 = load i32, ptr %318, align 4, !tbaa !33
  %320 = and i32 %319, 65535
  %321 = icmp eq i32 %320, 19267
  br i1 %321, label %322, label %325

322:                                              ; preds = %316
  %323 = load ptr, ptr %6, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.htparser, ptr %323, i32 0, i32 6
  store i32 12, ptr %324, align 8, !tbaa !20
  br label %383

325:                                              ; preds = %316, %312
  br label %383

326:                                              ; preds = %193
  %327 = load ptr, ptr %16, align 8, !tbaa !5
  %328 = load i32, ptr %327, align 4, !tbaa !33
  %329 = icmp eq i32 %328, 1230262351
  br i1 %329, label %330, label %338

330:                                              ; preds = %326
  %331 = load ptr, ptr %16, align 8, !tbaa !5
  %332 = getelementptr inbounds i32, ptr %331, i64 1
  %333 = load i32, ptr %332, align 4, !tbaa !33
  %334 = icmp eq i32 %333, 5459535
  br i1 %334, label %335, label %338

335:                                              ; preds = %330
  %336 = load ptr, ptr %6, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.htparser, ptr %336, i32 0, i32 6
  store i32 8, ptr %337, align 8, !tbaa !20
  br label %338

338:                                              ; preds = %335, %330, %326
  %339 = load ptr, ptr %16, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !33
  %341 = icmp eq i32 %340, 1313754947
  br i1 %341, label %342, label %350

342:                                              ; preds = %338
  %343 = load ptr, ptr %16, align 8, !tbaa !5
  %344 = getelementptr inbounds i32, ptr %343, i64 1
  %345 = load i32, ptr %344, align 4, !tbaa !33
  %346 = icmp eq i32 %345, 5522245
  br i1 %346, label %347, label %350

347:                                              ; preds = %342
  %348 = load ptr, ptr %6, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.htparser, ptr %348, i32 0, i32 6
  store i32 14, ptr %349, align 8, !tbaa !20
  br label %350

350:                                              ; preds = %347, %342, %338
  br label %383

351:                                              ; preds = %193
  %352 = load ptr, ptr %16, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !33
  %354 = icmp eq i32 %353, 1347375696
  br i1 %354, label %355, label %363

355:                                              ; preds = %351
  %356 = load ptr, ptr %16, align 8, !tbaa !5
  %357 = getelementptr inbounds i32, ptr %356, i64 1
  %358 = load i32, ptr %357, align 4, !tbaa !33
  %359 = icmp eq i32 %358, 1145981254
  br i1 %359, label %360, label %363

360:                                              ; preds = %355
  %361 = load ptr, ptr %6, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.htparser, ptr %361, i32 0, i32 6
  store i32 9, ptr %362, align 8, !tbaa !20
  br label %363

363:                                              ; preds = %360, %355, %351
  br label %383

364:                                              ; preds = %193
  %365 = load ptr, ptr %16, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !33
  %367 = icmp eq i32 %366, 1347375696
  br i1 %367, label %368, label %382

368:                                              ; preds = %364
  %369 = load ptr, ptr %16, align 8, !tbaa !5
  %370 = getelementptr inbounds i32, ptr %369, i64 1
  %371 = load i32, ptr %370, align 4, !tbaa !33
  %372 = icmp eq i32 %371, 1129595216
  br i1 %372, label %373, label %382

373:                                              ; preds = %368
  %374 = load ptr, ptr %16, align 8, !tbaa !5
  %375 = getelementptr inbounds i8, ptr %374, i64 8
  %376 = load i8, ptr %375, align 1, !tbaa !15
  %377 = sext i8 %376 to i32
  %378 = icmp eq i32 %377, 72
  br i1 %378, label %379, label %382

379:                                              ; preds = %373
  %380 = load ptr, ptr %6, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.htparser, ptr %380, i32 0, i32 6
  store i32 10, ptr %381, align 8, !tbaa !20
  br label %382

382:                                              ; preds = %379, %373, %368, %364
  br label %383

383:                                              ; preds = %382, %363, %350, %325, %322, %309, %298, %295, %282, %269, %258, %254, %246, %239, %232, %225, %214, %211, %204, %193
  %384 = load ptr, ptr %6, align 8, !tbaa !5
  %385 = load ptr, ptr %7, align 8, !tbaa !5
  %386 = load ptr, ptr %6, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.htparser, ptr %386, i32 0, i32 23
  %388 = getelementptr inbounds [8192 x i8], ptr %387, i64 0, i64 0
  %389 = load ptr, ptr %6, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.htparser, ptr %389, i32 0, i32 22
  %391 = load i32, ptr %390, align 8, !tbaa !16
  %392 = zext i32 %391 to i64
  %393 = call i32 @hook_method_run(ptr noundef %384, ptr noundef %385, ptr noundef %388, i64 noundef %392)
  store i32 %393, ptr %13, align 4, !tbaa !33
  %394 = load ptr, ptr %6, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.htparser, ptr %394, i32 0, i32 22
  store i32 0, ptr %395, align 8, !tbaa !16
  %396 = load ptr, ptr %6, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.htparser, ptr %396, i32 0, i32 1
  store i32 2, ptr %397, align 4, !tbaa !18
  %398 = load i32, ptr %13, align 4, !tbaa !33
  %399 = icmp ne i32 %398, 0
  br i1 %399, label %400, label %405

400:                                              ; preds = %383
  %401 = load ptr, ptr %6, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.htparser, ptr %401, i32 0, i32 0
  store i32 11, ptr %402, align 8, !tbaa !11
  %403 = load i64, ptr %12, align 8, !tbaa !9
  %404 = add i64 %403, 1
  store i64 %404, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %406

405:                                              ; preds = %383
  store i32 11, ptr %15, align 4
  br label %406

406:                                              ; preds = %405, %400
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  %407 = load i32, ptr %15, align 4
  switch i32 %407, label %3061 [
    i32 11, label %3060
  ]

408:                                              ; preds = %189
  %409 = load i8, ptr %10, align 1, !tbaa !15
  %410 = zext i8 %409 to i32
  %411 = icmp slt i32 %410, 65
  br i1 %411, label %416, label %412

412:                                              ; preds = %408
  %413 = load i8, ptr %10, align 1, !tbaa !15
  %414 = zext i8 %413 to i32
  %415 = icmp sgt i32 %414, 90
  br i1 %415, label %416, label %425

416:                                              ; preds = %412, %408
  %417 = load i8, ptr %10, align 1, !tbaa !15
  %418 = zext i8 %417 to i32
  %419 = icmp ne i32 %418, 95
  br i1 %419, label %420, label %425

420:                                              ; preds = %416
  %421 = load ptr, ptr %6, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.htparser, ptr %421, i32 0, i32 0
  store i32 2, ptr %422, align 8, !tbaa !11
  %423 = load i64, ptr %12, align 8, !tbaa !9
  %424 = add i64 %423, 1
  store i64 %424, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

425:                                              ; preds = %416, %412
  %426 = load i8, ptr %10, align 1, !tbaa !15
  %427 = load ptr, ptr %6, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.htparser, ptr %427, i32 0, i32 23
  %429 = load ptr, ptr %6, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.htparser, ptr %429, i32 0, i32 22
  %431 = load i32, ptr %430, align 8, !tbaa !16
  %432 = add i32 %431, 1
  store i32 %432, ptr %430, align 8, !tbaa !16
  %433 = zext i32 %431 to i64
  %434 = getelementptr inbounds [8192 x i8], ptr %428, i64 0, i64 %433
  store i8 %426, ptr %434, align 1, !tbaa !15
  %435 = load ptr, ptr %6, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.htparser, ptr %435, i32 0, i32 23
  %437 = load ptr, ptr %6, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.htparser, ptr %437, i32 0, i32 22
  %439 = load i32, ptr %438, align 8, !tbaa !16
  %440 = zext i32 %439 to i64
  %441 = getelementptr inbounds [8192 x i8], ptr %436, i64 0, i64 %440
  store i8 0, ptr %441, align 1, !tbaa !15
  br label %3060

442:                                              ; preds = %61
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  %446 = load i8, ptr %10, align 1, !tbaa !15
  %447 = zext i8 %446 to i32
  switch i32 %447, label %476 [
    i32 32, label %521
    i32 47, label %448
  ]

448:                                              ; preds = %445
  %449 = load ptr, ptr %6, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.htparser, ptr %449, i32 0, i32 23
  %451 = load ptr, ptr %6, align 8, !tbaa !5
  %452 = getelementptr inbounds %struct.htparser, ptr %451, i32 0, i32 22
  %453 = load i32, ptr %452, align 8, !tbaa !16
  %454 = zext i32 %453 to i64
  %455 = getelementptr inbounds [8192 x i8], ptr %450, i64 0, i64 %454
  %456 = load ptr, ptr %6, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.htparser, ptr %456, i32 0, i32 19
  store ptr %455, ptr %457, align 8, !tbaa !31
  %458 = load i8, ptr %10, align 1, !tbaa !15
  %459 = load ptr, ptr %6, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.htparser, ptr %459, i32 0, i32 23
  %461 = load ptr, ptr %6, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.htparser, ptr %461, i32 0, i32 22
  %463 = load i32, ptr %462, align 8, !tbaa !16
  %464 = add i32 %463, 1
  store i32 %464, ptr %462, align 8, !tbaa !16
  %465 = zext i32 %463 to i64
  %466 = getelementptr inbounds [8192 x i8], ptr %460, i64 0, i64 %465
  store i8 %458, ptr %466, align 1, !tbaa !15
  %467 = load ptr, ptr %6, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.htparser, ptr %467, i32 0, i32 23
  %469 = load ptr, ptr %6, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.htparser, ptr %469, i32 0, i32 22
  %471 = load i32, ptr %470, align 8, !tbaa !16
  %472 = zext i32 %471 to i64
  %473 = getelementptr inbounds [8192 x i8], ptr %468, i64 0, i64 %472
  store i8 0, ptr %473, align 1, !tbaa !15
  %474 = load ptr, ptr %6, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.htparser, ptr %474, i32 0, i32 1
  store i32 10, ptr %475, align 4, !tbaa !18
  br label %521

476:                                              ; preds = %445
  %477 = load i8, ptr %10, align 1, !tbaa !15
  %478 = zext i8 %477 to i32
  %479 = or i32 %478, 32
  %480 = trunc i32 %479 to i8
  store i8 %480, ptr %11, align 1, !tbaa !15
  %481 = load i8, ptr %11, align 1, !tbaa !15
  %482 = sext i8 %481 to i32
  %483 = icmp sge i32 %482, 97
  br i1 %483, label %484, label %516

484:                                              ; preds = %476
  %485 = load i8, ptr %11, align 1, !tbaa !15
  %486 = sext i8 %485 to i32
  %487 = icmp sle i32 %486, 122
  br i1 %487, label %488, label %516

488:                                              ; preds = %484
  %489 = load ptr, ptr %6, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.htparser, ptr %489, i32 0, i32 23
  %491 = load ptr, ptr %6, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.htparser, ptr %491, i32 0, i32 22
  %493 = load i32, ptr %492, align 8, !tbaa !16
  %494 = zext i32 %493 to i64
  %495 = getelementptr inbounds [8192 x i8], ptr %490, i64 0, i64 %494
  %496 = load ptr, ptr %6, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.htparser, ptr %496, i32 0, i32 16
  store ptr %495, ptr %497, align 8, !tbaa !28
  %498 = load i8, ptr %10, align 1, !tbaa !15
  %499 = load ptr, ptr %6, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.htparser, ptr %499, i32 0, i32 23
  %501 = load ptr, ptr %6, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.htparser, ptr %501, i32 0, i32 22
  %503 = load i32, ptr %502, align 8, !tbaa !16
  %504 = add i32 %503, 1
  store i32 %504, ptr %502, align 8, !tbaa !16
  %505 = zext i32 %503 to i64
  %506 = getelementptr inbounds [8192 x i8], ptr %500, i64 0, i64 %505
  store i8 %498, ptr %506, align 1, !tbaa !15
  %507 = load ptr, ptr %6, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.htparser, ptr %507, i32 0, i32 23
  %509 = load ptr, ptr %6, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.htparser, ptr %509, i32 0, i32 22
  %511 = load i32, ptr %510, align 8, !tbaa !16
  %512 = zext i32 %511 to i64
  %513 = getelementptr inbounds [8192 x i8], ptr %508, i64 0, i64 %512
  store i8 0, ptr %513, align 1, !tbaa !15
  %514 = load ptr, ptr %6, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.htparser, ptr %514, i32 0, i32 1
  store i32 3, ptr %515, align 4, !tbaa !18
  br label %521

516:                                              ; preds = %484, %476
  %517 = load ptr, ptr %6, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.htparser, ptr %517, i32 0, i32 0
  store i32 3, ptr %518, align 8, !tbaa !11
  %519 = load i64, ptr %12, align 8, !tbaa !9
  %520 = add i64 %519, 1
  store i64 %520, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

521:                                              ; preds = %488, %448, %445
  br label %3060

522:                                              ; preds = %61
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  %526 = load i8, ptr %10, align 1, !tbaa !15
  %527 = zext i8 %526 to i32
  %528 = or i32 %527, 32
  %529 = trunc i32 %528 to i8
  store i8 %529, ptr %11, align 1, !tbaa !15
  %530 = load i8, ptr %11, align 1, !tbaa !15
  %531 = sext i8 %530 to i32
  %532 = icmp sge i32 %531, 97
  br i1 %532, label %533, label %554

533:                                              ; preds = %525
  %534 = load i8, ptr %11, align 1, !tbaa !15
  %535 = sext i8 %534 to i32
  %536 = icmp sle i32 %535, 122
  br i1 %536, label %537, label %554

537:                                              ; preds = %533
  %538 = load i8, ptr %10, align 1, !tbaa !15
  %539 = load ptr, ptr %6, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.htparser, ptr %539, i32 0, i32 23
  %541 = load ptr, ptr %6, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.htparser, ptr %541, i32 0, i32 22
  %543 = load i32, ptr %542, align 8, !tbaa !16
  %544 = add i32 %543, 1
  store i32 %544, ptr %542, align 8, !tbaa !16
  %545 = zext i32 %543 to i64
  %546 = getelementptr inbounds [8192 x i8], ptr %540, i64 0, i64 %545
  store i8 %538, ptr %546, align 1, !tbaa !15
  %547 = load ptr, ptr %6, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.htparser, ptr %547, i32 0, i32 23
  %549 = load ptr, ptr %6, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.htparser, ptr %549, i32 0, i32 22
  %551 = load i32, ptr %550, align 8, !tbaa !16
  %552 = zext i32 %551 to i64
  %553 = getelementptr inbounds [8192 x i8], ptr %548, i64 0, i64 %552
  store i8 0, ptr %553, align 1, !tbaa !15
  br label %3060

554:                                              ; preds = %533, %525
  %555 = load i8, ptr %10, align 1, !tbaa !15
  %556 = zext i8 %555 to i32
  switch i32 %556, label %656 [
    i32 58, label %557
  ]

557:                                              ; preds = %554
  %558 = load ptr, ptr %6, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.htparser, ptr %558, i32 0, i32 5
  store i32 5, ptr %559, align 4, !tbaa !35
  %560 = load ptr, ptr %6, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.htparser, ptr %560, i32 0, i32 22
  %562 = load i32, ptr %561, align 8, !tbaa !16
  switch i32 %562, label %610 [
    i32 3, label %563
    i32 4, label %582
    i32 5, label %592
  ]

563:                                              ; preds = %557
  %564 = load ptr, ptr %6, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.htparser, ptr %564, i32 0, i32 16
  %566 = load ptr, ptr %565, align 8, !tbaa !28
  %567 = load i32, ptr %566, align 4, !tbaa !33
  %568 = icmp eq i32 %567, 7369830
  br i1 %568, label %569, label %572

569:                                              ; preds = %563
  %570 = load ptr, ptr %6, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.htparser, ptr %570, i32 0, i32 5
  store i32 1, ptr %571, align 4, !tbaa !35
  br label %610

572:                                              ; preds = %563
  %573 = load ptr, ptr %6, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.htparser, ptr %573, i32 0, i32 16
  %575 = load ptr, ptr %574, align 8, !tbaa !28
  %576 = load i32, ptr %575, align 4, !tbaa !33
  %577 = icmp eq i32 %576, 7562862
  br i1 %577, label %578, label %581

578:                                              ; preds = %572
  %579 = load ptr, ptr %6, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.htparser, ptr %579, i32 0, i32 5
  store i32 4, ptr %580, align 4, !tbaa !35
  br label %610

581:                                              ; preds = %572
  br label %610

582:                                              ; preds = %557
  %583 = load ptr, ptr %6, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.htparser, ptr %583, i32 0, i32 16
  %585 = load ptr, ptr %584, align 8, !tbaa !28
  %586 = load i32, ptr %585, align 4, !tbaa !33
  %587 = icmp eq i32 %586, 1886680168
  br i1 %587, label %588, label %591

588:                                              ; preds = %582
  %589 = load ptr, ptr %6, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.htparser, ptr %589, i32 0, i32 5
  store i32 2, ptr %590, align 4, !tbaa !35
  br label %610

591:                                              ; preds = %582
  br label %610

592:                                              ; preds = %557
  %593 = load ptr, ptr %6, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.htparser, ptr %593, i32 0, i32 16
  %595 = load ptr, ptr %594, align 8, !tbaa !28
  %596 = load i32, ptr %595, align 4, !tbaa !33
  %597 = icmp eq i32 %596, 1886680168
  br i1 %597, label %598, label %609

598:                                              ; preds = %592
  %599 = load ptr, ptr %6, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.htparser, ptr %599, i32 0, i32 16
  %601 = load ptr, ptr %600, align 8, !tbaa !28
  %602 = getelementptr inbounds i8, ptr %601, i64 4
  %603 = load i8, ptr %602, align 1, !tbaa !15
  %604 = sext i8 %603 to i32
  %605 = icmp eq i32 %604, 115
  br i1 %605, label %606, label %609

606:                                              ; preds = %598
  %607 = load ptr, ptr %6, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.htparser, ptr %607, i32 0, i32 5
  store i32 3, ptr %608, align 4, !tbaa !35
  br label %610

609:                                              ; preds = %598, %592
  br label %610

610:                                              ; preds = %609, %606, %591, %588, %581, %578, %569, %557
  %611 = load ptr, ptr %6, align 8, !tbaa !5
  %612 = load ptr, ptr %7, align 8, !tbaa !5
  %613 = load ptr, ptr %6, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.htparser, ptr %613, i32 0, i32 16
  %615 = load ptr, ptr %614, align 8, !tbaa !28
  %616 = load ptr, ptr %6, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.htparser, ptr %616, i32 0, i32 23
  %618 = load ptr, ptr %6, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.htparser, ptr %618, i32 0, i32 22
  %620 = load i32, ptr %619, align 8, !tbaa !16
  %621 = zext i32 %620 to i64
  %622 = getelementptr inbounds [8192 x i8], ptr %617, i64 0, i64 %621
  %623 = load ptr, ptr %6, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.htparser, ptr %623, i32 0, i32 16
  %625 = load ptr, ptr %624, align 8, !tbaa !28
  %626 = ptrtoint ptr %622 to i64
  %627 = ptrtoint ptr %625 to i64
  %628 = sub i64 %626, %627
  %629 = call i32 @hook_scheme_run(ptr noundef %611, ptr noundef %612, ptr noundef %615, i64 noundef %628)
  store i32 %629, ptr %13, align 4, !tbaa !33
  %630 = load i8, ptr %10, align 1, !tbaa !15
  %631 = load ptr, ptr %6, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.htparser, ptr %631, i32 0, i32 23
  %633 = load ptr, ptr %6, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.htparser, ptr %633, i32 0, i32 22
  %635 = load i32, ptr %634, align 8, !tbaa !16
  %636 = add i32 %635, 1
  store i32 %636, ptr %634, align 8, !tbaa !16
  %637 = zext i32 %635 to i64
  %638 = getelementptr inbounds [8192 x i8], ptr %632, i64 0, i64 %637
  store i8 %630, ptr %638, align 1, !tbaa !15
  %639 = load ptr, ptr %6, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.htparser, ptr %639, i32 0, i32 23
  %641 = load ptr, ptr %6, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.htparser, ptr %641, i32 0, i32 22
  %643 = load i32, ptr %642, align 8, !tbaa !16
  %644 = zext i32 %643 to i64
  %645 = getelementptr inbounds [8192 x i8], ptr %640, i64 0, i64 %644
  store i8 0, ptr %645, align 1, !tbaa !15
  %646 = load ptr, ptr %6, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.htparser, ptr %646, i32 0, i32 1
  store i32 4, ptr %647, align 4, !tbaa !18
  %648 = load i32, ptr %13, align 4, !tbaa !33
  %649 = icmp ne i32 %648, 0
  br i1 %649, label %650, label %655

650:                                              ; preds = %610
  %651 = load ptr, ptr %6, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.htparser, ptr %651, i32 0, i32 0
  store i32 11, ptr %652, align 8, !tbaa !11
  %653 = load i64, ptr %12, align 8, !tbaa !9
  %654 = add i64 %653, 1
  store i64 %654, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

655:                                              ; preds = %610
  br label %661

656:                                              ; preds = %554
  %657 = load ptr, ptr %6, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.htparser, ptr %657, i32 0, i32 0
  store i32 4, ptr %658, align 8, !tbaa !11
  %659 = load i64, ptr %12, align 8, !tbaa !9
  %660 = add i64 %659, 1
  store i64 %660, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

661:                                              ; preds = %655
  br label %3060

662:                                              ; preds = %61
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663
  br label %665

665:                                              ; preds = %664
  %666 = load i8, ptr %10, align 1, !tbaa !15
  %667 = zext i8 %666 to i32
  switch i32 %667, label %687 [
    i32 47, label %668
  ]

668:                                              ; preds = %665
  %669 = load i8, ptr %10, align 1, !tbaa !15
  %670 = load ptr, ptr %6, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.htparser, ptr %670, i32 0, i32 23
  %672 = load ptr, ptr %6, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.htparser, ptr %672, i32 0, i32 22
  %674 = load i32, ptr %673, align 8, !tbaa !16
  %675 = add i32 %674, 1
  store i32 %675, ptr %673, align 8, !tbaa !16
  %676 = zext i32 %674 to i64
  %677 = getelementptr inbounds [8192 x i8], ptr %671, i64 0, i64 %676
  store i8 %669, ptr %677, align 1, !tbaa !15
  %678 = load ptr, ptr %6, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.htparser, ptr %678, i32 0, i32 23
  %680 = load ptr, ptr %6, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.htparser, ptr %680, i32 0, i32 22
  %682 = load i32, ptr %681, align 8, !tbaa !16
  %683 = zext i32 %682 to i64
  %684 = getelementptr inbounds [8192 x i8], ptr %679, i64 0, i64 %683
  store i8 0, ptr %684, align 1, !tbaa !15
  %685 = load ptr, ptr %6, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.htparser, ptr %685, i32 0, i32 1
  store i32 5, ptr %686, align 4, !tbaa !18
  br label %692

687:                                              ; preds = %665
  %688 = load ptr, ptr %6, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.htparser, ptr %688, i32 0, i32 0
  store i32 4, ptr %689, align 8, !tbaa !11
  %690 = load i64, ptr %12, align 8, !tbaa !9
  %691 = add i64 %690, 1
  store i64 %691, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

692:                                              ; preds = %668
  br label %3060

693:                                              ; preds = %61
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  %697 = load i8, ptr %10, align 1, !tbaa !15
  %698 = zext i8 %697 to i32
  switch i32 %698, label %727 [
    i32 47, label %699
  ]

699:                                              ; preds = %696
  %700 = load i8, ptr %10, align 1, !tbaa !15
  %701 = load ptr, ptr %6, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.htparser, ptr %701, i32 0, i32 23
  %703 = load ptr, ptr %6, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.htparser, ptr %703, i32 0, i32 22
  %705 = load i32, ptr %704, align 8, !tbaa !16
  %706 = add i32 %705, 1
  store i32 %706, ptr %704, align 8, !tbaa !16
  %707 = zext i32 %705 to i64
  %708 = getelementptr inbounds [8192 x i8], ptr %702, i64 0, i64 %707
  store i8 %700, ptr %708, align 1, !tbaa !15
  %709 = load ptr, ptr %6, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.htparser, ptr %709, i32 0, i32 23
  %711 = load ptr, ptr %6, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.htparser, ptr %711, i32 0, i32 22
  %713 = load i32, ptr %712, align 8, !tbaa !16
  %714 = zext i32 %713 to i64
  %715 = getelementptr inbounds [8192 x i8], ptr %710, i64 0, i64 %714
  store i8 0, ptr %715, align 1, !tbaa !15
  %716 = load ptr, ptr %6, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.htparser, ptr %716, i32 0, i32 23
  %718 = load ptr, ptr %6, align 8, !tbaa !5
  %719 = getelementptr inbounds %struct.htparser, ptr %718, i32 0, i32 22
  %720 = load i32, ptr %719, align 8, !tbaa !16
  %721 = zext i32 %720 to i64
  %722 = getelementptr inbounds [8192 x i8], ptr %717, i64 0, i64 %721
  %723 = load ptr, ptr %6, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.htparser, ptr %723, i32 0, i32 17
  store ptr %722, ptr %724, align 8, !tbaa !29
  %725 = load ptr, ptr %6, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.htparser, ptr %725, i32 0, i32 1
  store i32 6, ptr %726, align 4, !tbaa !18
  br label %732

727:                                              ; preds = %696
  %728 = load ptr, ptr %6, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.htparser, ptr %728, i32 0, i32 0
  store i32 4, ptr %729, align 8, !tbaa !11
  %730 = load i64, ptr %12, align 8, !tbaa !9
  %731 = add i64 %730, 1
  store i64 %731, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

732:                                              ; preds = %699
  br label %3060

733:                                              ; preds = %61
  %734 = load i8, ptr %10, align 1, !tbaa !15
  %735 = zext i8 %734 to i32
  %736 = icmp eq i32 %735, 91
  br i1 %736, label %737, label %765

737:                                              ; preds = %733
  %738 = load i8, ptr %10, align 1, !tbaa !15
  %739 = load ptr, ptr %6, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.htparser, ptr %739, i32 0, i32 23
  %741 = load ptr, ptr %6, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.htparser, ptr %741, i32 0, i32 22
  %743 = load i32, ptr %742, align 8, !tbaa !16
  %744 = add i32 %743, 1
  store i32 %744, ptr %742, align 8, !tbaa !16
  %745 = zext i32 %743 to i64
  %746 = getelementptr inbounds [8192 x i8], ptr %740, i64 0, i64 %745
  store i8 %738, ptr %746, align 1, !tbaa !15
  %747 = load ptr, ptr %6, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.htparser, ptr %747, i32 0, i32 23
  %749 = load ptr, ptr %6, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.htparser, ptr %749, i32 0, i32 22
  %751 = load i32, ptr %750, align 8, !tbaa !16
  %752 = zext i32 %751 to i64
  %753 = getelementptr inbounds [8192 x i8], ptr %748, i64 0, i64 %752
  store i8 0, ptr %753, align 1, !tbaa !15
  %754 = load ptr, ptr %6, align 8, !tbaa !5
  %755 = getelementptr inbounds %struct.htparser, ptr %754, i32 0, i32 23
  %756 = load ptr, ptr %6, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.htparser, ptr %756, i32 0, i32 22
  %758 = load i32, ptr %757, align 8, !tbaa !16
  %759 = zext i32 %758 to i64
  %760 = getelementptr inbounds [8192 x i8], ptr %755, i64 0, i64 %759
  %761 = load ptr, ptr %6, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.htparser, ptr %761, i32 0, i32 17
  store ptr %760, ptr %762, align 8, !tbaa !29
  %763 = load ptr, ptr %6, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.htparser, ptr %763, i32 0, i32 1
  store i32 7, ptr %764, align 4, !tbaa !18
  br label %3060

765:                                              ; preds = %733
  %766 = load i8, ptr %10, align 1, !tbaa !15
  %767 = zext i8 %766 to i32
  %768 = or i32 %767, 32
  %769 = trunc i32 %768 to i8
  store i8 %769, ptr %11, align 1, !tbaa !15
  %770 = load i8, ptr %11, align 1, !tbaa !15
  %771 = sext i8 %770 to i32
  %772 = icmp sge i32 %771, 97
  br i1 %772, label %773, label %794

773:                                              ; preds = %765
  %774 = load i8, ptr %11, align 1, !tbaa !15
  %775 = sext i8 %774 to i32
  %776 = icmp sle i32 %775, 122
  br i1 %776, label %777, label %794

777:                                              ; preds = %773
  %778 = load i8, ptr %10, align 1, !tbaa !15
  %779 = load ptr, ptr %6, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.htparser, ptr %779, i32 0, i32 23
  %781 = load ptr, ptr %6, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.htparser, ptr %781, i32 0, i32 22
  %783 = load i32, ptr %782, align 8, !tbaa !16
  %784 = add i32 %783, 1
  store i32 %784, ptr %782, align 8, !tbaa !16
  %785 = zext i32 %783 to i64
  %786 = getelementptr inbounds [8192 x i8], ptr %780, i64 0, i64 %785
  store i8 %778, ptr %786, align 1, !tbaa !15
  %787 = load ptr, ptr %6, align 8, !tbaa !5
  %788 = getelementptr inbounds %struct.htparser, ptr %787, i32 0, i32 23
  %789 = load ptr, ptr %6, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.htparser, ptr %789, i32 0, i32 22
  %791 = load i32, ptr %790, align 8, !tbaa !16
  %792 = zext i32 %791 to i64
  %793 = getelementptr inbounds [8192 x i8], ptr %788, i64 0, i64 %792
  store i8 0, ptr %793, align 1, !tbaa !15
  br label %3060

794:                                              ; preds = %773, %765
  %795 = load i8, ptr %10, align 1, !tbaa !15
  %796 = zext i8 %795 to i32
  %797 = icmp sge i32 %796, 48
  br i1 %797, label %798, label %802

798:                                              ; preds = %794
  %799 = load i8, ptr %10, align 1, !tbaa !15
  %800 = zext i8 %799 to i32
  %801 = icmp sle i32 %800, 57
  br i1 %801, label %810, label %802

802:                                              ; preds = %798, %794
  %803 = load i8, ptr %10, align 1, !tbaa !15
  %804 = zext i8 %803 to i32
  %805 = icmp eq i32 %804, 46
  br i1 %805, label %810, label %806

806:                                              ; preds = %802
  %807 = load i8, ptr %10, align 1, !tbaa !15
  %808 = zext i8 %807 to i32
  %809 = icmp eq i32 %808, 45
  br i1 %809, label %810, label %827

810:                                              ; preds = %806, %802, %798
  %811 = load i8, ptr %10, align 1, !tbaa !15
  %812 = load ptr, ptr %6, align 8, !tbaa !5
  %813 = getelementptr inbounds %struct.htparser, ptr %812, i32 0, i32 23
  %814 = load ptr, ptr %6, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.htparser, ptr %814, i32 0, i32 22
  %816 = load i32, ptr %815, align 8, !tbaa !16
  %817 = add i32 %816, 1
  store i32 %817, ptr %815, align 8, !tbaa !16
  %818 = zext i32 %816 to i64
  %819 = getelementptr inbounds [8192 x i8], ptr %813, i64 0, i64 %818
  store i8 %811, ptr %819, align 1, !tbaa !15
  %820 = load ptr, ptr %6, align 8, !tbaa !5
  %821 = getelementptr inbounds %struct.htparser, ptr %820, i32 0, i32 23
  %822 = load ptr, ptr %6, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.htparser, ptr %822, i32 0, i32 22
  %824 = load i32, ptr %823, align 8, !tbaa !16
  %825 = zext i32 %824 to i64
  %826 = getelementptr inbounds [8192 x i8], ptr %821, i64 0, i64 %825
  store i8 0, ptr %826, align 1, !tbaa !15
  br label %3060

827:                                              ; preds = %806
  %828 = load ptr, ptr %6, align 8, !tbaa !5
  %829 = load ptr, ptr %7, align 8, !tbaa !5
  %830 = load ptr, ptr %6, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.htparser, ptr %830, i32 0, i32 17
  %832 = load ptr, ptr %831, align 8, !tbaa !29
  %833 = load ptr, ptr %6, align 8, !tbaa !5
  %834 = getelementptr inbounds %struct.htparser, ptr %833, i32 0, i32 23
  %835 = load ptr, ptr %6, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.htparser, ptr %835, i32 0, i32 22
  %837 = load i32, ptr %836, align 8, !tbaa !16
  %838 = zext i32 %837 to i64
  %839 = getelementptr inbounds [8192 x i8], ptr %834, i64 0, i64 %838
  %840 = load ptr, ptr %6, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.htparser, ptr %840, i32 0, i32 17
  %842 = load ptr, ptr %841, align 8, !tbaa !29
  %843 = ptrtoint ptr %839 to i64
  %844 = ptrtoint ptr %842 to i64
  %845 = sub i64 %843, %844
  %846 = call i32 @hook_host_run(ptr noundef %828, ptr noundef %829, ptr noundef %832, i64 noundef %845)
  store i32 %846, ptr %13, align 4, !tbaa !33
  %847 = load i32, ptr %13, align 4, !tbaa !33
  %848 = icmp ne i32 %847, 0
  br i1 %848, label %849, label %854

849:                                              ; preds = %827
  %850 = load ptr, ptr %6, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.htparser, ptr %850, i32 0, i32 0
  store i32 11, ptr %851, align 8, !tbaa !11
  %852 = load i64, ptr %12, align 8, !tbaa !9
  %853 = add i64 %852, 1
  store i64 %853, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

854:                                              ; preds = %827
  br label %855

855:                                              ; preds = %854, %61
  store i32 0, ptr %13, align 4, !tbaa !33
  %856 = load i8, ptr %10, align 1, !tbaa !15
  %857 = zext i8 %856 to i32
  switch i32 %857, label %925 [
    i32 58, label %858
    i32 32, label %886
    i32 47, label %897
  ]

858:                                              ; preds = %855
  %859 = load i8, ptr %10, align 1, !tbaa !15
  %860 = load ptr, ptr %6, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.htparser, ptr %860, i32 0, i32 23
  %862 = load ptr, ptr %6, align 8, !tbaa !5
  %863 = getelementptr inbounds %struct.htparser, ptr %862, i32 0, i32 22
  %864 = load i32, ptr %863, align 8, !tbaa !16
  %865 = add i32 %864, 1
  store i32 %865, ptr %863, align 8, !tbaa !16
  %866 = zext i32 %864 to i64
  %867 = getelementptr inbounds [8192 x i8], ptr %861, i64 0, i64 %866
  store i8 %859, ptr %867, align 1, !tbaa !15
  %868 = load ptr, ptr %6, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.htparser, ptr %868, i32 0, i32 23
  %870 = load ptr, ptr %6, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.htparser, ptr %870, i32 0, i32 22
  %872 = load i32, ptr %871, align 8, !tbaa !16
  %873 = zext i32 %872 to i64
  %874 = getelementptr inbounds [8192 x i8], ptr %869, i64 0, i64 %873
  store i8 0, ptr %874, align 1, !tbaa !15
  %875 = load ptr, ptr %6, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.htparser, ptr %875, i32 0, i32 23
  %877 = load ptr, ptr %6, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.htparser, ptr %877, i32 0, i32 22
  %879 = load i32, ptr %878, align 8, !tbaa !16
  %880 = zext i32 %879 to i64
  %881 = getelementptr inbounds [8192 x i8], ptr %876, i64 0, i64 %880
  %882 = load ptr, ptr %6, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.htparser, ptr %882, i32 0, i32 18
  store ptr %881, ptr %883, align 8, !tbaa !30
  %884 = load ptr, ptr %6, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.htparser, ptr %884, i32 0, i32 1
  store i32 9, ptr %885, align 4, !tbaa !18
  br label %930

886:                                              ; preds = %855
  %887 = load i64, ptr %12, align 8, !tbaa !9
  %888 = icmp eq i64 %887, 0
  br i1 %888, label %889, label %894

889:                                              ; preds = %886
  %890 = load ptr, ptr %6, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.htparser, ptr %890, i32 0, i32 0
  store i32 10, ptr %891, align 8, !tbaa !11
  %892 = load i64, ptr %12, align 8, !tbaa !9
  %893 = add i64 %892, 1
  store i64 %893, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

894:                                              ; preds = %886
  %895 = load i64, ptr %12, align 8, !tbaa !9
  %896 = add i64 %895, -1
  store i64 %896, ptr %12, align 8, !tbaa !9
  store i8 47, ptr %10, align 1, !tbaa !15
  br label %897

897:                                              ; preds = %894, %855
  %898 = load ptr, ptr %6, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.htparser, ptr %898, i32 0, i32 23
  %900 = load ptr, ptr %6, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.htparser, ptr %900, i32 0, i32 22
  %902 = load i32, ptr %901, align 8, !tbaa !16
  %903 = zext i32 %902 to i64
  %904 = getelementptr inbounds [8192 x i8], ptr %899, i64 0, i64 %903
  %905 = load ptr, ptr %6, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.htparser, ptr %905, i32 0, i32 19
  store ptr %904, ptr %906, align 8, !tbaa !31
  %907 = load i8, ptr %10, align 1, !tbaa !15
  %908 = load ptr, ptr %6, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.htparser, ptr %908, i32 0, i32 23
  %910 = load ptr, ptr %6, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.htparser, ptr %910, i32 0, i32 22
  %912 = load i32, ptr %911, align 8, !tbaa !16
  %913 = add i32 %912, 1
  store i32 %913, ptr %911, align 8, !tbaa !16
  %914 = zext i32 %912 to i64
  %915 = getelementptr inbounds [8192 x i8], ptr %909, i64 0, i64 %914
  store i8 %907, ptr %915, align 1, !tbaa !15
  %916 = load ptr, ptr %6, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.htparser, ptr %916, i32 0, i32 23
  %918 = load ptr, ptr %6, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.htparser, ptr %918, i32 0, i32 22
  %920 = load i32, ptr %919, align 8, !tbaa !16
  %921 = zext i32 %920 to i64
  %922 = getelementptr inbounds [8192 x i8], ptr %917, i64 0, i64 %921
  store i8 0, ptr %922, align 1, !tbaa !15
  %923 = load ptr, ptr %6, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.htparser, ptr %923, i32 0, i32 1
  store i32 10, ptr %924, align 4, !tbaa !18
  br label %930

925:                                              ; preds = %855
  %926 = load ptr, ptr %6, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.htparser, ptr %926, i32 0, i32 0
  store i32 4, ptr %927, align 8, !tbaa !11
  %928 = load i64, ptr %12, align 8, !tbaa !9
  %929 = add i64 %928, 1
  store i64 %929, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

930:                                              ; preds = %897, %858
  %931 = load i32, ptr %13, align 4, !tbaa !33
  %932 = icmp ne i32 %931, 0
  br i1 %932, label %933, label %938

933:                                              ; preds = %930
  %934 = load ptr, ptr %6, align 8, !tbaa !5
  %935 = getelementptr inbounds %struct.htparser, ptr %934, i32 0, i32 0
  store i32 11, ptr %935, align 8, !tbaa !11
  %936 = load i64, ptr %12, align 8, !tbaa !9
  %937 = add i64 %936, 1
  store i64 %937, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

938:                                              ; preds = %930
  br label %3060

939:                                              ; preds = %61
  %940 = load i8, ptr %10, align 1, !tbaa !15
  %941 = zext i8 %940 to i32
  %942 = or i32 %941, 32
  %943 = trunc i32 %942 to i8
  store i8 %943, ptr %11, align 1, !tbaa !15
  %944 = load i8, ptr %11, align 1, !tbaa !15
  %945 = sext i8 %944 to i32
  %946 = icmp sge i32 %945, 97
  br i1 %946, label %947, label %951

947:                                              ; preds = %939
  %948 = load i8, ptr %11, align 1, !tbaa !15
  %949 = sext i8 %948 to i32
  %950 = icmp sle i32 %949, 102
  br i1 %950, label %967, label %951

951:                                              ; preds = %947, %939
  %952 = load i8, ptr %10, align 1, !tbaa !15
  %953 = zext i8 %952 to i32
  %954 = icmp sge i32 %953, 48
  br i1 %954, label %955, label %959

955:                                              ; preds = %951
  %956 = load i8, ptr %10, align 1, !tbaa !15
  %957 = zext i8 %956 to i32
  %958 = icmp sle i32 %957, 57
  br i1 %958, label %967, label %959

959:                                              ; preds = %955, %951
  %960 = load i8, ptr %10, align 1, !tbaa !15
  %961 = zext i8 %960 to i32
  %962 = icmp eq i32 %961, 58
  br i1 %962, label %967, label %963

963:                                              ; preds = %959
  %964 = load i8, ptr %10, align 1, !tbaa !15
  %965 = zext i8 %964 to i32
  %966 = icmp eq i32 %965, 46
  br i1 %966, label %967, label %984

967:                                              ; preds = %963, %959, %955, %947
  %968 = load i8, ptr %10, align 1, !tbaa !15
  %969 = load ptr, ptr %6, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.htparser, ptr %969, i32 0, i32 23
  %971 = load ptr, ptr %6, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.htparser, ptr %971, i32 0, i32 22
  %973 = load i32, ptr %972, align 8, !tbaa !16
  %974 = add i32 %973, 1
  store i32 %974, ptr %972, align 8, !tbaa !16
  %975 = zext i32 %973 to i64
  %976 = getelementptr inbounds [8192 x i8], ptr %970, i64 0, i64 %975
  store i8 %968, ptr %976, align 1, !tbaa !15
  %977 = load ptr, ptr %6, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.htparser, ptr %977, i32 0, i32 23
  %979 = load ptr, ptr %6, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.htparser, ptr %979, i32 0, i32 22
  %981 = load i32, ptr %980, align 8, !tbaa !16
  %982 = zext i32 %981 to i64
  %983 = getelementptr inbounds [8192 x i8], ptr %978, i64 0, i64 %982
  store i8 0, ptr %983, align 1, !tbaa !15
  br label %3060

984:                                              ; preds = %963
  %985 = load i8, ptr %10, align 1, !tbaa !15
  %986 = zext i8 %985 to i32
  switch i32 %986, label %1033 [
    i32 93, label %987
  ]

987:                                              ; preds = %984
  %988 = load ptr, ptr %6, align 8, !tbaa !5
  %989 = load ptr, ptr %7, align 8, !tbaa !5
  %990 = load ptr, ptr %6, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.htparser, ptr %990, i32 0, i32 17
  %992 = load ptr, ptr %991, align 8, !tbaa !29
  %993 = load ptr, ptr %6, align 8, !tbaa !5
  %994 = getelementptr inbounds %struct.htparser, ptr %993, i32 0, i32 23
  %995 = load ptr, ptr %6, align 8, !tbaa !5
  %996 = getelementptr inbounds %struct.htparser, ptr %995, i32 0, i32 22
  %997 = load i32, ptr %996, align 8, !tbaa !16
  %998 = zext i32 %997 to i64
  %999 = getelementptr inbounds [8192 x i8], ptr %994, i64 0, i64 %998
  %1000 = load ptr, ptr %6, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.htparser, ptr %1000, i32 0, i32 17
  %1002 = load ptr, ptr %1001, align 8, !tbaa !29
  %1003 = ptrtoint ptr %999 to i64
  %1004 = ptrtoint ptr %1002 to i64
  %1005 = sub i64 %1003, %1004
  %1006 = call i32 @hook_host_run(ptr noundef %988, ptr noundef %989, ptr noundef %992, i64 noundef %1005)
  store i32 %1006, ptr %13, align 4, !tbaa !33
  %1007 = load i32, ptr %13, align 4, !tbaa !33
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1009, label %1014

1009:                                             ; preds = %987
  %1010 = load ptr, ptr %6, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.htparser, ptr %1010, i32 0, i32 0
  store i32 11, ptr %1011, align 8, !tbaa !11
  %1012 = load i64, ptr %12, align 8, !tbaa !9
  %1013 = add i64 %1012, 1
  store i64 %1013, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1014:                                             ; preds = %987
  %1015 = load i8, ptr %10, align 1, !tbaa !15
  %1016 = load ptr, ptr %6, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.htparser, ptr %1016, i32 0, i32 23
  %1018 = load ptr, ptr %6, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.htparser, ptr %1018, i32 0, i32 22
  %1020 = load i32, ptr %1019, align 8, !tbaa !16
  %1021 = add i32 %1020, 1
  store i32 %1021, ptr %1019, align 8, !tbaa !16
  %1022 = zext i32 %1020 to i64
  %1023 = getelementptr inbounds [8192 x i8], ptr %1017, i64 0, i64 %1022
  store i8 %1015, ptr %1023, align 1, !tbaa !15
  %1024 = load ptr, ptr %6, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.htparser, ptr %1024, i32 0, i32 23
  %1026 = load ptr, ptr %6, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.htparser, ptr %1026, i32 0, i32 22
  %1028 = load i32, ptr %1027, align 8, !tbaa !16
  %1029 = zext i32 %1028 to i64
  %1030 = getelementptr inbounds [8192 x i8], ptr %1025, i64 0, i64 %1029
  store i8 0, ptr %1030, align 1, !tbaa !15
  %1031 = load ptr, ptr %6, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.htparser, ptr %1031, i32 0, i32 1
  store i32 8, ptr %1032, align 4, !tbaa !18
  br label %1038

1033:                                             ; preds = %984
  %1034 = load ptr, ptr %6, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.htparser, ptr %1034, i32 0, i32 0
  store i32 4, ptr %1035, align 8, !tbaa !11
  %1036 = load i64, ptr %12, align 8, !tbaa !9
  %1037 = add i64 %1036, 1
  store i64 %1037, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1038:                                             ; preds = %1014
  br label %3060

1039:                                             ; preds = %61
  store i32 0, ptr %13, align 4, !tbaa !33
  %1040 = load i8, ptr %10, align 1, !tbaa !15
  %1041 = zext i8 %1040 to i32
  %1042 = icmp sge i32 %1041, 48
  br i1 %1042, label %1043, label %1064

1043:                                             ; preds = %1039
  %1044 = load i8, ptr %10, align 1, !tbaa !15
  %1045 = zext i8 %1044 to i32
  %1046 = icmp sle i32 %1045, 57
  br i1 %1046, label %1047, label %1064

1047:                                             ; preds = %1043
  %1048 = load i8, ptr %10, align 1, !tbaa !15
  %1049 = load ptr, ptr %6, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.htparser, ptr %1049, i32 0, i32 23
  %1051 = load ptr, ptr %6, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.htparser, ptr %1051, i32 0, i32 22
  %1053 = load i32, ptr %1052, align 8, !tbaa !16
  %1054 = add i32 %1053, 1
  store i32 %1054, ptr %1052, align 8, !tbaa !16
  %1055 = zext i32 %1053 to i64
  %1056 = getelementptr inbounds [8192 x i8], ptr %1050, i64 0, i64 %1055
  store i8 %1048, ptr %1056, align 1, !tbaa !15
  %1057 = load ptr, ptr %6, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.htparser, ptr %1057, i32 0, i32 23
  %1059 = load ptr, ptr %6, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.htparser, ptr %1059, i32 0, i32 22
  %1061 = load i32, ptr %1060, align 8, !tbaa !16
  %1062 = zext i32 %1061 to i64
  %1063 = getelementptr inbounds [8192 x i8], ptr %1058, i64 0, i64 %1062
  store i8 0, ptr %1063, align 1, !tbaa !15
  br label %3060

1064:                                             ; preds = %1043, %1039
  %1065 = load ptr, ptr %6, align 8, !tbaa !5
  %1066 = load ptr, ptr %7, align 8, !tbaa !5
  %1067 = load ptr, ptr %6, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.htparser, ptr %1067, i32 0, i32 18
  %1069 = load ptr, ptr %1068, align 8, !tbaa !30
  %1070 = load ptr, ptr %6, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.htparser, ptr %1070, i32 0, i32 23
  %1072 = load ptr, ptr %6, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.htparser, ptr %1072, i32 0, i32 22
  %1074 = load i32, ptr %1073, align 8, !tbaa !16
  %1075 = zext i32 %1074 to i64
  %1076 = getelementptr inbounds [8192 x i8], ptr %1071, i64 0, i64 %1075
  %1077 = load ptr, ptr %6, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.htparser, ptr %1077, i32 0, i32 18
  %1079 = load ptr, ptr %1078, align 8, !tbaa !30
  %1080 = ptrtoint ptr %1076 to i64
  %1081 = ptrtoint ptr %1079 to i64
  %1082 = sub i64 %1080, %1081
  %1083 = call i32 @hook_port_run(ptr noundef %1065, ptr noundef %1066, ptr noundef %1069, i64 noundef %1082)
  store i32 %1083, ptr %13, align 4, !tbaa !33
  %1084 = load i8, ptr %10, align 1, !tbaa !15
  %1085 = zext i8 %1084 to i32
  switch i32 %1085, label %1126 [
    i32 32, label %1086
    i32 47, label %1097
  ]

1086:                                             ; preds = %1064
  %1087 = load i64, ptr %12, align 8, !tbaa !9
  %1088 = icmp eq i64 %1087, 0
  br i1 %1088, label %1089, label %1094

1089:                                             ; preds = %1086
  %1090 = load ptr, ptr %6, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.htparser, ptr %1090, i32 0, i32 0
  store i32 10, ptr %1091, align 8, !tbaa !11
  %1092 = load i64, ptr %12, align 8, !tbaa !9
  %1093 = add i64 %1092, 1
  store i64 %1093, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1094:                                             ; preds = %1086
  %1095 = load i64, ptr %12, align 8, !tbaa !9
  %1096 = add i64 %1095, -1
  store i64 %1096, ptr %12, align 8, !tbaa !9
  store i8 47, ptr %10, align 1, !tbaa !15
  br label %1097

1097:                                             ; preds = %1094, %1064
  %1098 = load i8, ptr %10, align 1, !tbaa !15
  %1099 = load ptr, ptr %6, align 8, !tbaa !5
  %1100 = getelementptr inbounds %struct.htparser, ptr %1099, i32 0, i32 23
  %1101 = load ptr, ptr %6, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.htparser, ptr %1101, i32 0, i32 22
  %1103 = load i32, ptr %1102, align 8, !tbaa !16
  %1104 = add i32 %1103, 1
  store i32 %1104, ptr %1102, align 8, !tbaa !16
  %1105 = zext i32 %1103 to i64
  %1106 = getelementptr inbounds [8192 x i8], ptr %1100, i64 0, i64 %1105
  store i8 %1098, ptr %1106, align 1, !tbaa !15
  %1107 = load ptr, ptr %6, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.htparser, ptr %1107, i32 0, i32 23
  %1109 = load ptr, ptr %6, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.htparser, ptr %1109, i32 0, i32 22
  %1111 = load i32, ptr %1110, align 8, !tbaa !16
  %1112 = zext i32 %1111 to i64
  %1113 = getelementptr inbounds [8192 x i8], ptr %1108, i64 0, i64 %1112
  store i8 0, ptr %1113, align 1, !tbaa !15
  %1114 = load ptr, ptr %6, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.htparser, ptr %1114, i32 0, i32 23
  %1116 = load ptr, ptr %6, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.htparser, ptr %1116, i32 0, i32 22
  %1118 = load i32, ptr %1117, align 8, !tbaa !16
  %1119 = sub i32 %1118, 1
  %1120 = zext i32 %1119 to i64
  %1121 = getelementptr inbounds [8192 x i8], ptr %1115, i64 0, i64 %1120
  %1122 = load ptr, ptr %6, align 8, !tbaa !5
  %1123 = getelementptr inbounds %struct.htparser, ptr %1122, i32 0, i32 19
  store ptr %1121, ptr %1123, align 8, !tbaa !31
  %1124 = load ptr, ptr %6, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.htparser, ptr %1124, i32 0, i32 1
  store i32 10, ptr %1125, align 4, !tbaa !18
  br label %1131

1126:                                             ; preds = %1064
  %1127 = load ptr, ptr %6, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.htparser, ptr %1127, i32 0, i32 0
  store i32 3, ptr %1128, align 8, !tbaa !11
  %1129 = load i64, ptr %12, align 8, !tbaa !9
  %1130 = add i64 %1129, 1
  store i64 %1130, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1131:                                             ; preds = %1097
  %1132 = load i32, ptr %13, align 4, !tbaa !33
  %1133 = icmp ne i32 %1132, 0
  br i1 %1133, label %1134, label %1139

1134:                                             ; preds = %1131
  %1135 = load ptr, ptr %6, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.htparser, ptr %1135, i32 0, i32 0
  store i32 11, ptr %1136, align 8, !tbaa !11
  %1137 = load i64, ptr %12, align 8, !tbaa !9
  %1138 = add i64 %1137, 1
  store i64 %1138, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1139:                                             ; preds = %1131
  br label %3060

1140:                                             ; preds = %61
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  store i32 0, ptr %13, align 4, !tbaa !33
  %1144 = load i8, ptr %10, align 1, !tbaa !15
  %1145 = zext i8 %1144 to i32
  %1146 = ashr i32 %1145, 5
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds [8 x i32], ptr @usual, i64 0, i64 %1147
  %1149 = load i32, ptr %1148, align 4, !tbaa !33
  %1150 = load i8, ptr %10, align 1, !tbaa !15
  %1151 = zext i8 %1150 to i32
  %1152 = and i32 %1151, 31
  %1153 = shl i32 1, %1152
  %1154 = and i32 %1149, %1153
  %1155 = icmp ne i32 %1154, 0
  br i1 %1155, label %1156, label %1175

1156:                                             ; preds = %1143
  %1157 = load i8, ptr %10, align 1, !tbaa !15
  %1158 = load ptr, ptr %6, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.htparser, ptr %1158, i32 0, i32 23
  %1160 = load ptr, ptr %6, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.htparser, ptr %1160, i32 0, i32 22
  %1162 = load i32, ptr %1161, align 8, !tbaa !16
  %1163 = add i32 %1162, 1
  store i32 %1163, ptr %1161, align 8, !tbaa !16
  %1164 = zext i32 %1162 to i64
  %1165 = getelementptr inbounds [8192 x i8], ptr %1159, i64 0, i64 %1164
  store i8 %1157, ptr %1165, align 1, !tbaa !15
  %1166 = load ptr, ptr %6, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.htparser, ptr %1166, i32 0, i32 23
  %1168 = load ptr, ptr %6, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.htparser, ptr %1168, i32 0, i32 22
  %1170 = load i32, ptr %1169, align 8, !tbaa !16
  %1171 = zext i32 %1170 to i64
  %1172 = getelementptr inbounds [8192 x i8], ptr %1167, i64 0, i64 %1171
  store i8 0, ptr %1172, align 1, !tbaa !15
  %1173 = load ptr, ptr %6, align 8, !tbaa !5
  %1174 = getelementptr inbounds %struct.htparser, ptr %1173, i32 0, i32 1
  store i32 11, ptr %1174, align 4, !tbaa !18
  br label %3060

1175:                                             ; preds = %1143
  %1176 = load i8, ptr %10, align 1, !tbaa !15
  %1177 = zext i8 %1176 to i32
  switch i32 %1177, label %1295 [
    i32 32, label %1178
    i32 13, label %1219
    i32 10, label %1224
    i32 46, label %1229
    i32 37, label %1229
    i32 47, label %1229
    i32 35, label %1229
    i32 63, label %1248
  ]

1178:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %1179 = load ptr, ptr %6, align 8, !tbaa !5
  %1180 = load ptr, ptr %7, align 8, !tbaa !5
  %1181 = load ptr, ptr %6, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.htparser, ptr %1181, i32 0, i32 19
  %1183 = load ptr, ptr %1182, align 8, !tbaa !31
  %1184 = load ptr, ptr %6, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.htparser, ptr %1184, i32 0, i32 23
  %1186 = load ptr, ptr %6, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.htparser, ptr %1186, i32 0, i32 22
  %1188 = load i32, ptr %1187, align 8, !tbaa !16
  %1189 = zext i32 %1188 to i64
  %1190 = getelementptr inbounds [8192 x i8], ptr %1185, i64 0, i64 %1189
  %1191 = load ptr, ptr %6, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.htparser, ptr %1191, i32 0, i32 19
  %1193 = load ptr, ptr %1192, align 8, !tbaa !31
  %1194 = ptrtoint ptr %1190 to i64
  %1195 = ptrtoint ptr %1193 to i64
  %1196 = sub i64 %1194, %1195
  %1197 = call i32 @hook_path_run(ptr noundef %1179, ptr noundef %1180, ptr noundef %1183, i64 noundef %1196)
  store i32 %1197, ptr %17, align 4, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  %1198 = load ptr, ptr %6, align 8, !tbaa !5
  %1199 = load ptr, ptr %7, align 8, !tbaa !5
  %1200 = load ptr, ptr %6, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.htparser, ptr %1200, i32 0, i32 23
  %1202 = getelementptr inbounds [8192 x i8], ptr %1201, i64 0, i64 0
  %1203 = load ptr, ptr %6, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.htparser, ptr %1203, i32 0, i32 22
  %1205 = load i32, ptr %1204, align 8, !tbaa !16
  %1206 = zext i32 %1205 to i64
  %1207 = call i32 @hook_uri_run(ptr noundef %1198, ptr noundef %1199, ptr noundef %1202, i64 noundef %1206)
  store i32 %1207, ptr %18, align 4, !tbaa !33
  %1208 = load ptr, ptr %6, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.htparser, ptr %1208, i32 0, i32 1
  store i32 13, ptr %1209, align 4, !tbaa !18
  %1210 = load ptr, ptr %6, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.htparser, ptr %1210, i32 0, i32 22
  store i32 0, ptr %1211, align 8, !tbaa !16
  %1212 = load i32, ptr %17, align 4, !tbaa !33
  %1213 = icmp ne i32 %1212, 0
  br i1 %1213, label %1217, label %1214

1214:                                             ; preds = %1178
  %1215 = load i32, ptr %18, align 4, !tbaa !33
  %1216 = icmp ne i32 %1215, 0
  br i1 %1216, label %1217, label %1218

1217:                                             ; preds = %1214, %1178
  store i32 1, ptr %13, align 4, !tbaa !33
  br label %1218

1218:                                             ; preds = %1217, %1214
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br label %1314

1219:                                             ; preds = %1175
  %1220 = load ptr, ptr %6, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.htparser, ptr %1220, i32 0, i32 9
  store i8 9, ptr %1221, align 2, !tbaa !23
  %1222 = load ptr, ptr %6, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.htparser, ptr %1222, i32 0, i32 1
  store i32 23, ptr %1223, align 4, !tbaa !18
  br label %1314

1224:                                             ; preds = %1175
  %1225 = load ptr, ptr %6, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.htparser, ptr %1225, i32 0, i32 9
  store i8 9, ptr %1226, align 2, !tbaa !23
  %1227 = load ptr, ptr %6, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.htparser, ptr %1227, i32 0, i32 1
  store i32 25, ptr %1228, align 4, !tbaa !18
  br label %1314

1229:                                             ; preds = %1175, %1175, %1175, %1175
  %1230 = load i8, ptr %10, align 1, !tbaa !15
  %1231 = load ptr, ptr %6, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.htparser, ptr %1231, i32 0, i32 23
  %1233 = load ptr, ptr %6, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.htparser, ptr %1233, i32 0, i32 22
  %1235 = load i32, ptr %1234, align 8, !tbaa !16
  %1236 = add i32 %1235, 1
  store i32 %1236, ptr %1234, align 8, !tbaa !16
  %1237 = zext i32 %1235 to i64
  %1238 = getelementptr inbounds [8192 x i8], ptr %1232, i64 0, i64 %1237
  store i8 %1230, ptr %1238, align 1, !tbaa !15
  %1239 = load ptr, ptr %6, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.htparser, ptr %1239, i32 0, i32 23
  %1241 = load ptr, ptr %6, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.htparser, ptr %1241, i32 0, i32 22
  %1243 = load i32, ptr %1242, align 8, !tbaa !16
  %1244 = zext i32 %1243 to i64
  %1245 = getelementptr inbounds [8192 x i8], ptr %1240, i64 0, i64 %1244
  store i8 0, ptr %1245, align 1, !tbaa !15
  %1246 = load ptr, ptr %6, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.htparser, ptr %1246, i32 0, i32 1
  store i32 12, ptr %1247, align 4, !tbaa !18
  br label %1314

1248:                                             ; preds = %1175
  %1249 = load ptr, ptr %6, align 8, !tbaa !5
  %1250 = load ptr, ptr %7, align 8, !tbaa !5
  %1251 = load ptr, ptr %6, align 8, !tbaa !5
  %1252 = getelementptr inbounds %struct.htparser, ptr %1251, i32 0, i32 19
  %1253 = load ptr, ptr %1252, align 8, !tbaa !31
  %1254 = load ptr, ptr %6, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.htparser, ptr %1254, i32 0, i32 23
  %1256 = load ptr, ptr %6, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.htparser, ptr %1256, i32 0, i32 22
  %1258 = load i32, ptr %1257, align 8, !tbaa !16
  %1259 = zext i32 %1258 to i64
  %1260 = getelementptr inbounds [8192 x i8], ptr %1255, i64 0, i64 %1259
  %1261 = load ptr, ptr %6, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.htparser, ptr %1261, i32 0, i32 19
  %1263 = load ptr, ptr %1262, align 8, !tbaa !31
  %1264 = ptrtoint ptr %1260 to i64
  %1265 = ptrtoint ptr %1263 to i64
  %1266 = sub i64 %1264, %1265
  %1267 = call i32 @hook_path_run(ptr noundef %1249, ptr noundef %1250, ptr noundef %1253, i64 noundef %1266)
  store i32 %1267, ptr %13, align 4, !tbaa !33
  %1268 = load i8, ptr %10, align 1, !tbaa !15
  %1269 = load ptr, ptr %6, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.htparser, ptr %1269, i32 0, i32 23
  %1271 = load ptr, ptr %6, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.htparser, ptr %1271, i32 0, i32 22
  %1273 = load i32, ptr %1272, align 8, !tbaa !16
  %1274 = add i32 %1273, 1
  store i32 %1274, ptr %1272, align 8, !tbaa !16
  %1275 = zext i32 %1273 to i64
  %1276 = getelementptr inbounds [8192 x i8], ptr %1270, i64 0, i64 %1275
  store i8 %1268, ptr %1276, align 1, !tbaa !15
  %1277 = load ptr, ptr %6, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.htparser, ptr %1277, i32 0, i32 23
  %1279 = load ptr, ptr %6, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.htparser, ptr %1279, i32 0, i32 22
  %1281 = load i32, ptr %1280, align 8, !tbaa !16
  %1282 = zext i32 %1281 to i64
  %1283 = getelementptr inbounds [8192 x i8], ptr %1278, i64 0, i64 %1282
  store i8 0, ptr %1283, align 1, !tbaa !15
  %1284 = load ptr, ptr %6, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.htparser, ptr %1284, i32 0, i32 23
  %1286 = load ptr, ptr %6, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.htparser, ptr %1286, i32 0, i32 22
  %1288 = load i32, ptr %1287, align 8, !tbaa !16
  %1289 = zext i32 %1288 to i64
  %1290 = getelementptr inbounds [8192 x i8], ptr %1285, i64 0, i64 %1289
  %1291 = load ptr, ptr %6, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.htparser, ptr %1291, i32 0, i32 20
  store ptr %1290, ptr %1292, align 8, !tbaa !32
  %1293 = load ptr, ptr %6, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.htparser, ptr %1293, i32 0, i32 1
  store i32 12, ptr %1294, align 4, !tbaa !18
  br label %1314

1295:                                             ; preds = %1175
  %1296 = load i8, ptr %10, align 1, !tbaa !15
  %1297 = load ptr, ptr %6, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.htparser, ptr %1297, i32 0, i32 23
  %1299 = load ptr, ptr %6, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.htparser, ptr %1299, i32 0, i32 22
  %1301 = load i32, ptr %1300, align 8, !tbaa !16
  %1302 = add i32 %1301, 1
  store i32 %1302, ptr %1300, align 8, !tbaa !16
  %1303 = zext i32 %1301 to i64
  %1304 = getelementptr inbounds [8192 x i8], ptr %1298, i64 0, i64 %1303
  store i8 %1296, ptr %1304, align 1, !tbaa !15
  %1305 = load ptr, ptr %6, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.htparser, ptr %1305, i32 0, i32 23
  %1307 = load ptr, ptr %6, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.htparser, ptr %1307, i32 0, i32 22
  %1309 = load i32, ptr %1308, align 8, !tbaa !16
  %1310 = zext i32 %1309 to i64
  %1311 = getelementptr inbounds [8192 x i8], ptr %1306, i64 0, i64 %1310
  store i8 0, ptr %1311, align 1, !tbaa !15
  %1312 = load ptr, ptr %6, align 8, !tbaa !5
  %1313 = getelementptr inbounds %struct.htparser, ptr %1312, i32 0, i32 1
  store i32 11, ptr %1313, align 4, !tbaa !18
  br label %1314

1314:                                             ; preds = %1295, %1248, %1229, %1224, %1219, %1218
  %1315 = load i32, ptr %13, align 4, !tbaa !33
  %1316 = icmp ne i32 %1315, 0
  br i1 %1316, label %1317, label %1322

1317:                                             ; preds = %1314
  %1318 = load ptr, ptr %6, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.htparser, ptr %1318, i32 0, i32 0
  store i32 11, ptr %1319, align 8, !tbaa !11
  %1320 = load i64, ptr %12, align 8, !tbaa !9
  %1321 = add i64 %1320, 1
  store i64 %1321, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1322:                                             ; preds = %1314
  br label %3060

1323:                                             ; preds = %61
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

1326:                                             ; preds = %1325
  store i32 0, ptr %13, align 4, !tbaa !33
  %1327 = load i8, ptr %10, align 1, !tbaa !15
  %1328 = zext i8 %1327 to i32
  %1329 = ashr i32 %1328, 5
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds [8 x i32], ptr @usual, i64 0, i64 %1330
  %1332 = load i32, ptr %1331, align 4, !tbaa !33
  %1333 = load i8, ptr %10, align 1, !tbaa !15
  %1334 = zext i8 %1333 to i32
  %1335 = and i32 %1334, 31
  %1336 = shl i32 1, %1335
  %1337 = and i32 %1332, %1336
  %1338 = icmp ne i32 %1337, 0
  br i1 %1338, label %1339, label %1356

1339:                                             ; preds = %1326
  %1340 = load i8, ptr %10, align 1, !tbaa !15
  %1341 = load ptr, ptr %6, align 8, !tbaa !5
  %1342 = getelementptr inbounds %struct.htparser, ptr %1341, i32 0, i32 23
  %1343 = load ptr, ptr %6, align 8, !tbaa !5
  %1344 = getelementptr inbounds %struct.htparser, ptr %1343, i32 0, i32 22
  %1345 = load i32, ptr %1344, align 8, !tbaa !16
  %1346 = add i32 %1345, 1
  store i32 %1346, ptr %1344, align 8, !tbaa !16
  %1347 = zext i32 %1345 to i64
  %1348 = getelementptr inbounds [8192 x i8], ptr %1342, i64 0, i64 %1347
  store i8 %1340, ptr %1348, align 1, !tbaa !15
  %1349 = load ptr, ptr %6, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.htparser, ptr %1349, i32 0, i32 23
  %1351 = load ptr, ptr %6, align 8, !tbaa !5
  %1352 = getelementptr inbounds %struct.htparser, ptr %1351, i32 0, i32 22
  %1353 = load i32, ptr %1352, align 8, !tbaa !16
  %1354 = zext i32 %1353 to i64
  %1355 = getelementptr inbounds [8192 x i8], ptr %1350, i64 0, i64 %1354
  store i8 0, ptr %1355, align 1, !tbaa !15
  br label %3060

1356:                                             ; preds = %1326
  %1357 = load i8, ptr %10, align 1, !tbaa !15
  %1358 = zext i8 %1357 to i32
  switch i32 %1358, label %1506 [
    i32 32, label %1359
    i32 47, label %1426
    i32 13, label %1445
    i32 10, label %1452
    i32 63, label %1459
  ]

1359:                                             ; preds = %1356
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 0, ptr %19, align 4, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 0, ptr %20, align 4, !tbaa !33
  %1360 = load ptr, ptr %6, align 8, !tbaa !5
  %1361 = getelementptr inbounds %struct.htparser, ptr %1360, i32 0, i32 20
  %1362 = load ptr, ptr %1361, align 8, !tbaa !32
  %1363 = icmp ne ptr %1362, null
  br i1 %1363, label %1364, label %1384

1364:                                             ; preds = %1359
  %1365 = load ptr, ptr %6, align 8, !tbaa !5
  %1366 = load ptr, ptr %7, align 8, !tbaa !5
  %1367 = load ptr, ptr %6, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.htparser, ptr %1367, i32 0, i32 20
  %1369 = load ptr, ptr %1368, align 8, !tbaa !32
  %1370 = load ptr, ptr %6, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.htparser, ptr %1370, i32 0, i32 23
  %1372 = load ptr, ptr %6, align 8, !tbaa !5
  %1373 = getelementptr inbounds %struct.htparser, ptr %1372, i32 0, i32 22
  %1374 = load i32, ptr %1373, align 8, !tbaa !16
  %1375 = zext i32 %1374 to i64
  %1376 = getelementptr inbounds [8192 x i8], ptr %1371, i64 0, i64 %1375
  %1377 = load ptr, ptr %6, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.htparser, ptr %1377, i32 0, i32 20
  %1379 = load ptr, ptr %1378, align 8, !tbaa !32
  %1380 = ptrtoint ptr %1376 to i64
  %1381 = ptrtoint ptr %1379 to i64
  %1382 = sub i64 %1380, %1381
  %1383 = call i32 @hook_args_run(ptr noundef %1365, ptr noundef %1366, ptr noundef %1369, i64 noundef %1382)
  store i32 %1383, ptr %19, align 4, !tbaa !33
  br label %1404

1384:                                             ; preds = %1359
  %1385 = load ptr, ptr %6, align 8, !tbaa !5
  %1386 = load ptr, ptr %7, align 8, !tbaa !5
  %1387 = load ptr, ptr %6, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.htparser, ptr %1387, i32 0, i32 19
  %1389 = load ptr, ptr %1388, align 8, !tbaa !31
  %1390 = load ptr, ptr %6, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.htparser, ptr %1390, i32 0, i32 23
  %1392 = load ptr, ptr %6, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.htparser, ptr %1392, i32 0, i32 22
  %1394 = load i32, ptr %1393, align 8, !tbaa !16
  %1395 = zext i32 %1394 to i64
  %1396 = getelementptr inbounds [8192 x i8], ptr %1391, i64 0, i64 %1395
  %1397 = load ptr, ptr %6, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.htparser, ptr %1397, i32 0, i32 19
  %1399 = load ptr, ptr %1398, align 8, !tbaa !31
  %1400 = ptrtoint ptr %1396 to i64
  %1401 = ptrtoint ptr %1399 to i64
  %1402 = sub i64 %1400, %1401
  %1403 = call i32 @hook_path_run(ptr noundef %1385, ptr noundef %1386, ptr noundef %1389, i64 noundef %1402)
  store i32 %1403, ptr %19, align 4, !tbaa !33
  br label %1404

1404:                                             ; preds = %1384, %1364
  %1405 = load ptr, ptr %6, align 8, !tbaa !5
  %1406 = load ptr, ptr %7, align 8, !tbaa !5
  %1407 = load ptr, ptr %6, align 8, !tbaa !5
  %1408 = getelementptr inbounds %struct.htparser, ptr %1407, i32 0, i32 23
  %1409 = getelementptr inbounds [8192 x i8], ptr %1408, i64 0, i64 0
  %1410 = load ptr, ptr %6, align 8, !tbaa !5
  %1411 = getelementptr inbounds %struct.htparser, ptr %1410, i32 0, i32 22
  %1412 = load i32, ptr %1411, align 8, !tbaa !16
  %1413 = zext i32 %1412 to i64
  %1414 = call i32 @hook_uri_run(ptr noundef %1405, ptr noundef %1406, ptr noundef %1409, i64 noundef %1413)
  store i32 %1414, ptr %20, align 4, !tbaa !33
  %1415 = load ptr, ptr %6, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.htparser, ptr %1415, i32 0, i32 22
  store i32 0, ptr %1416, align 8, !tbaa !16
  %1417 = load ptr, ptr %6, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.htparser, ptr %1417, i32 0, i32 1
  store i32 13, ptr %1418, align 4, !tbaa !18
  %1419 = load i32, ptr %19, align 4, !tbaa !33
  %1420 = icmp ne i32 %1419, 0
  br i1 %1420, label %1424, label %1421

1421:                                             ; preds = %1404
  %1422 = load i32, ptr %20, align 4, !tbaa !33
  %1423 = icmp ne i32 %1422, 0
  br i1 %1423, label %1424, label %1425

1424:                                             ; preds = %1421, %1404
  store i32 1, ptr %13, align 4, !tbaa !33
  br label %1425

1425:                                             ; preds = %1424, %1421
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  br label %1525

1426:                                             ; preds = %1356
  %1427 = load i8, ptr %10, align 1, !tbaa !15
  %1428 = load ptr, ptr %6, align 8, !tbaa !5
  %1429 = getelementptr inbounds %struct.htparser, ptr %1428, i32 0, i32 23
  %1430 = load ptr, ptr %6, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.htparser, ptr %1430, i32 0, i32 22
  %1432 = load i32, ptr %1431, align 8, !tbaa !16
  %1433 = add i32 %1432, 1
  store i32 %1433, ptr %1431, align 8, !tbaa !16
  %1434 = zext i32 %1432 to i64
  %1435 = getelementptr inbounds [8192 x i8], ptr %1429, i64 0, i64 %1434
  store i8 %1427, ptr %1435, align 1, !tbaa !15
  %1436 = load ptr, ptr %6, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.htparser, ptr %1436, i32 0, i32 23
  %1438 = load ptr, ptr %6, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.htparser, ptr %1438, i32 0, i32 22
  %1440 = load i32, ptr %1439, align 8, !tbaa !16
  %1441 = zext i32 %1440 to i64
  %1442 = getelementptr inbounds [8192 x i8], ptr %1437, i64 0, i64 %1441
  store i8 0, ptr %1442, align 1, !tbaa !15
  %1443 = load ptr, ptr %6, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.htparser, ptr %1443, i32 0, i32 1
  store i32 10, ptr %1444, align 4, !tbaa !18
  br label %1525

1445:                                             ; preds = %1356
  %1446 = load ptr, ptr %6, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.htparser, ptr %1446, i32 0, i32 9
  store i8 9, ptr %1447, align 2, !tbaa !23
  %1448 = load ptr, ptr %6, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.htparser, ptr %1448, i32 0, i32 22
  store i32 0, ptr %1449, align 8, !tbaa !16
  %1450 = load ptr, ptr %6, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.htparser, ptr %1450, i32 0, i32 1
  store i32 23, ptr %1451, align 4, !tbaa !18
  br label %1525

1452:                                             ; preds = %1356
  %1453 = load ptr, ptr %6, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.htparser, ptr %1453, i32 0, i32 9
  store i8 9, ptr %1454, align 2, !tbaa !23
  %1455 = load ptr, ptr %6, align 8, !tbaa !5
  %1456 = getelementptr inbounds %struct.htparser, ptr %1455, i32 0, i32 22
  store i32 0, ptr %1456, align 8, !tbaa !16
  %1457 = load ptr, ptr %6, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.htparser, ptr %1457, i32 0, i32 1
  store i32 25, ptr %1458, align 4, !tbaa !18
  br label %1525

1459:                                             ; preds = %1356
  %1460 = load ptr, ptr %6, align 8, !tbaa !5
  %1461 = load ptr, ptr %7, align 8, !tbaa !5
  %1462 = load ptr, ptr %6, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.htparser, ptr %1462, i32 0, i32 19
  %1464 = load ptr, ptr %1463, align 8, !tbaa !31
  %1465 = load ptr, ptr %6, align 8, !tbaa !5
  %1466 = getelementptr inbounds %struct.htparser, ptr %1465, i32 0, i32 23
  %1467 = load ptr, ptr %6, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.htparser, ptr %1467, i32 0, i32 22
  %1469 = load i32, ptr %1468, align 8, !tbaa !16
  %1470 = zext i32 %1469 to i64
  %1471 = getelementptr inbounds [8192 x i8], ptr %1466, i64 0, i64 %1470
  %1472 = load ptr, ptr %6, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.htparser, ptr %1472, i32 0, i32 19
  %1474 = load ptr, ptr %1473, align 8, !tbaa !31
  %1475 = ptrtoint ptr %1471 to i64
  %1476 = ptrtoint ptr %1474 to i64
  %1477 = sub i64 %1475, %1476
  %1478 = call i32 @hook_path_run(ptr noundef %1460, ptr noundef %1461, ptr noundef %1464, i64 noundef %1477)
  store i32 %1478, ptr %13, align 4, !tbaa !33
  %1479 = load i8, ptr %10, align 1, !tbaa !15
  %1480 = load ptr, ptr %6, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.htparser, ptr %1480, i32 0, i32 23
  %1482 = load ptr, ptr %6, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.htparser, ptr %1482, i32 0, i32 22
  %1484 = load i32, ptr %1483, align 8, !tbaa !16
  %1485 = add i32 %1484, 1
  store i32 %1485, ptr %1483, align 8, !tbaa !16
  %1486 = zext i32 %1484 to i64
  %1487 = getelementptr inbounds [8192 x i8], ptr %1481, i64 0, i64 %1486
  store i8 %1479, ptr %1487, align 1, !tbaa !15
  %1488 = load ptr, ptr %6, align 8, !tbaa !5
  %1489 = getelementptr inbounds %struct.htparser, ptr %1488, i32 0, i32 23
  %1490 = load ptr, ptr %6, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.htparser, ptr %1490, i32 0, i32 22
  %1492 = load i32, ptr %1491, align 8, !tbaa !16
  %1493 = zext i32 %1492 to i64
  %1494 = getelementptr inbounds [8192 x i8], ptr %1489, i64 0, i64 %1493
  store i8 0, ptr %1494, align 1, !tbaa !15
  %1495 = load ptr, ptr %6, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.htparser, ptr %1495, i32 0, i32 23
  %1497 = load ptr, ptr %6, align 8, !tbaa !5
  %1498 = getelementptr inbounds %struct.htparser, ptr %1497, i32 0, i32 22
  %1499 = load i32, ptr %1498, align 8, !tbaa !16
  %1500 = zext i32 %1499 to i64
  %1501 = getelementptr inbounds [8192 x i8], ptr %1496, i64 0, i64 %1500
  %1502 = load ptr, ptr %6, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.htparser, ptr %1502, i32 0, i32 20
  store ptr %1501, ptr %1503, align 8, !tbaa !32
  %1504 = load ptr, ptr %6, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.htparser, ptr %1504, i32 0, i32 1
  store i32 12, ptr %1505, align 4, !tbaa !18
  br label %1525

1506:                                             ; preds = %1356
  %1507 = load i8, ptr %10, align 1, !tbaa !15
  %1508 = load ptr, ptr %6, align 8, !tbaa !5
  %1509 = getelementptr inbounds %struct.htparser, ptr %1508, i32 0, i32 23
  %1510 = load ptr, ptr %6, align 8, !tbaa !5
  %1511 = getelementptr inbounds %struct.htparser, ptr %1510, i32 0, i32 22
  %1512 = load i32, ptr %1511, align 8, !tbaa !16
  %1513 = add i32 %1512, 1
  store i32 %1513, ptr %1511, align 8, !tbaa !16
  %1514 = zext i32 %1512 to i64
  %1515 = getelementptr inbounds [8192 x i8], ptr %1509, i64 0, i64 %1514
  store i8 %1507, ptr %1515, align 1, !tbaa !15
  %1516 = load ptr, ptr %6, align 8, !tbaa !5
  %1517 = getelementptr inbounds %struct.htparser, ptr %1516, i32 0, i32 23
  %1518 = load ptr, ptr %6, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.htparser, ptr %1518, i32 0, i32 22
  %1520 = load i32, ptr %1519, align 8, !tbaa !16
  %1521 = zext i32 %1520 to i64
  %1522 = getelementptr inbounds [8192 x i8], ptr %1517, i64 0, i64 %1521
  store i8 0, ptr %1522, align 1, !tbaa !15
  %1523 = load ptr, ptr %6, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.htparser, ptr %1523, i32 0, i32 1
  store i32 12, ptr %1524, align 4, !tbaa !18
  br label %1525

1525:                                             ; preds = %1506, %1459, %1452, %1445, %1426, %1425
  %1526 = load i32, ptr %13, align 4, !tbaa !33
  %1527 = icmp ne i32 %1526, 0
  br i1 %1527, label %1528, label %1533

1528:                                             ; preds = %1525
  %1529 = load ptr, ptr %6, align 8, !tbaa !5
  %1530 = getelementptr inbounds %struct.htparser, ptr %1529, i32 0, i32 0
  store i32 11, ptr %1530, align 8, !tbaa !11
  %1531 = load i64, ptr %12, align 8, !tbaa !9
  %1532 = add i64 %1531, 1
  store i64 %1532, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1533:                                             ; preds = %1525
  br label %3060

1534:                                             ; preds = %61
  br label %1535

1535:                                             ; preds = %1534
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  store i32 0, ptr %13, align 4, !tbaa !33
  %1538 = load i8, ptr %10, align 1, !tbaa !15
  %1539 = zext i8 %1538 to i32
  %1540 = ashr i32 %1539, 5
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds [8 x i32], ptr @usual, i64 0, i64 %1541
  %1543 = load i32, ptr %1542, align 4, !tbaa !33
  %1544 = load i8, ptr %10, align 1, !tbaa !15
  %1545 = zext i8 %1544 to i32
  %1546 = and i32 %1545, 31
  %1547 = shl i32 1, %1546
  %1548 = and i32 %1543, %1547
  %1549 = icmp ne i32 %1548, 0
  br i1 %1549, label %1550, label %1567

1550:                                             ; preds = %1537
  %1551 = load i8, ptr %10, align 1, !tbaa !15
  %1552 = load ptr, ptr %6, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.htparser, ptr %1552, i32 0, i32 23
  %1554 = load ptr, ptr %6, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.htparser, ptr %1554, i32 0, i32 22
  %1556 = load i32, ptr %1555, align 8, !tbaa !16
  %1557 = add i32 %1556, 1
  store i32 %1557, ptr %1555, align 8, !tbaa !16
  %1558 = zext i32 %1556 to i64
  %1559 = getelementptr inbounds [8192 x i8], ptr %1553, i64 0, i64 %1558
  store i8 %1551, ptr %1559, align 1, !tbaa !15
  %1560 = load ptr, ptr %6, align 8, !tbaa !5
  %1561 = getelementptr inbounds %struct.htparser, ptr %1560, i32 0, i32 23
  %1562 = load ptr, ptr %6, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.htparser, ptr %1562, i32 0, i32 22
  %1564 = load i32, ptr %1563, align 8, !tbaa !16
  %1565 = zext i32 %1564 to i64
  %1566 = getelementptr inbounds [8192 x i8], ptr %1561, i64 0, i64 %1565
  store i8 0, ptr %1566, align 1, !tbaa !15
  br label %3060

1567:                                             ; preds = %1537
  %1568 = load i8, ptr %10, align 1, !tbaa !15
  %1569 = zext i8 %1568 to i32
  switch i32 %1569, label %1692 [
    i32 32, label %1570
    i32 13, label %1627
    i32 10, label %1634
    i32 63, label %1641
  ]

1570:                                             ; preds = %1567
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 0, ptr %21, align 4, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !33
  %1571 = load ptr, ptr %6, align 8, !tbaa !5
  %1572 = getelementptr inbounds %struct.htparser, ptr %1571, i32 0, i32 20
  %1573 = load ptr, ptr %1572, align 8, !tbaa !32
  %1574 = icmp ne ptr %1573, null
  br i1 %1574, label %1575, label %1595

1575:                                             ; preds = %1570
  %1576 = load ptr, ptr %6, align 8, !tbaa !5
  %1577 = load ptr, ptr %7, align 8, !tbaa !5
  %1578 = load ptr, ptr %6, align 8, !tbaa !5
  %1579 = getelementptr inbounds %struct.htparser, ptr %1578, i32 0, i32 20
  %1580 = load ptr, ptr %1579, align 8, !tbaa !32
  %1581 = load ptr, ptr %6, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.htparser, ptr %1581, i32 0, i32 23
  %1583 = load ptr, ptr %6, align 8, !tbaa !5
  %1584 = getelementptr inbounds %struct.htparser, ptr %1583, i32 0, i32 22
  %1585 = load i32, ptr %1584, align 8, !tbaa !16
  %1586 = zext i32 %1585 to i64
  %1587 = getelementptr inbounds [8192 x i8], ptr %1582, i64 0, i64 %1586
  %1588 = load ptr, ptr %6, align 8, !tbaa !5
  %1589 = getelementptr inbounds %struct.htparser, ptr %1588, i32 0, i32 20
  %1590 = load ptr, ptr %1589, align 8, !tbaa !32
  %1591 = ptrtoint ptr %1587 to i64
  %1592 = ptrtoint ptr %1590 to i64
  %1593 = sub i64 %1591, %1592
  %1594 = call i32 @hook_args_run(ptr noundef %1576, ptr noundef %1577, ptr noundef %1580, i64 noundef %1593)
  store i32 %1594, ptr %21, align 4, !tbaa !33
  br label %1615

1595:                                             ; preds = %1570
  %1596 = load ptr, ptr %6, align 8, !tbaa !5
  %1597 = load ptr, ptr %7, align 8, !tbaa !5
  %1598 = load ptr, ptr %6, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.htparser, ptr %1598, i32 0, i32 19
  %1600 = load ptr, ptr %1599, align 8, !tbaa !31
  %1601 = load ptr, ptr %6, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.htparser, ptr %1601, i32 0, i32 23
  %1603 = load ptr, ptr %6, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.htparser, ptr %1603, i32 0, i32 22
  %1605 = load i32, ptr %1604, align 8, !tbaa !16
  %1606 = zext i32 %1605 to i64
  %1607 = getelementptr inbounds [8192 x i8], ptr %1602, i64 0, i64 %1606
  %1608 = load ptr, ptr %6, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.htparser, ptr %1608, i32 0, i32 19
  %1610 = load ptr, ptr %1609, align 8, !tbaa !31
  %1611 = ptrtoint ptr %1607 to i64
  %1612 = ptrtoint ptr %1610 to i64
  %1613 = sub i64 %1611, %1612
  %1614 = call i32 @hook_path_run(ptr noundef %1596, ptr noundef %1597, ptr noundef %1600, i64 noundef %1613)
  store i32 %1614, ptr %21, align 4, !tbaa !33
  br label %1615

1615:                                             ; preds = %1595, %1575
  %1616 = load ptr, ptr %6, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.htparser, ptr %1616, i32 0, i32 22
  store i32 0, ptr %1617, align 8, !tbaa !16
  %1618 = load ptr, ptr %6, align 8, !tbaa !5
  %1619 = getelementptr inbounds %struct.htparser, ptr %1618, i32 0, i32 1
  store i32 13, ptr %1619, align 4, !tbaa !18
  %1620 = load i32, ptr %21, align 4, !tbaa !33
  %1621 = icmp ne i32 %1620, 0
  br i1 %1621, label %1625, label %1622

1622:                                             ; preds = %1615
  %1623 = load i32, ptr %22, align 4, !tbaa !33
  %1624 = icmp ne i32 %1623, 0
  br i1 %1624, label %1625, label %1626

1625:                                             ; preds = %1622, %1615
  store i32 1, ptr %13, align 4, !tbaa !33
  br label %1626

1626:                                             ; preds = %1625, %1622
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  br label %1709

1627:                                             ; preds = %1567
  %1628 = load ptr, ptr %6, align 8, !tbaa !5
  %1629 = getelementptr inbounds %struct.htparser, ptr %1628, i32 0, i32 9
  store i8 9, ptr %1629, align 2, !tbaa !23
  %1630 = load ptr, ptr %6, align 8, !tbaa !5
  %1631 = getelementptr inbounds %struct.htparser, ptr %1630, i32 0, i32 22
  store i32 0, ptr %1631, align 8, !tbaa !16
  %1632 = load ptr, ptr %6, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.htparser, ptr %1632, i32 0, i32 1
  store i32 23, ptr %1633, align 4, !tbaa !18
  br label %1709

1634:                                             ; preds = %1567
  %1635 = load ptr, ptr %6, align 8, !tbaa !5
  %1636 = getelementptr inbounds %struct.htparser, ptr %1635, i32 0, i32 9
  store i8 9, ptr %1636, align 2, !tbaa !23
  %1637 = load ptr, ptr %6, align 8, !tbaa !5
  %1638 = getelementptr inbounds %struct.htparser, ptr %1637, i32 0, i32 22
  store i32 0, ptr %1638, align 8, !tbaa !16
  %1639 = load ptr, ptr %6, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.htparser, ptr %1639, i32 0, i32 1
  store i32 25, ptr %1640, align 4, !tbaa !18
  br label %1709

1641:                                             ; preds = %1567
  %1642 = load ptr, ptr %6, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.htparser, ptr %1642, i32 0, i32 20
  %1644 = load ptr, ptr %1643, align 8, !tbaa !32
  %1645 = icmp ne ptr %1644, null
  br i1 %1645, label %1691, label %1646

1646:                                             ; preds = %1641
  %1647 = load ptr, ptr %6, align 8, !tbaa !5
  %1648 = load ptr, ptr %7, align 8, !tbaa !5
  %1649 = load ptr, ptr %6, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.htparser, ptr %1649, i32 0, i32 19
  %1651 = load ptr, ptr %1650, align 8, !tbaa !31
  %1652 = load ptr, ptr %6, align 8, !tbaa !5
  %1653 = getelementptr inbounds %struct.htparser, ptr %1652, i32 0, i32 23
  %1654 = load ptr, ptr %6, align 8, !tbaa !5
  %1655 = getelementptr inbounds %struct.htparser, ptr %1654, i32 0, i32 22
  %1656 = load i32, ptr %1655, align 8, !tbaa !16
  %1657 = zext i32 %1656 to i64
  %1658 = getelementptr inbounds [8192 x i8], ptr %1653, i64 0, i64 %1657
  %1659 = load ptr, ptr %6, align 8, !tbaa !5
  %1660 = getelementptr inbounds %struct.htparser, ptr %1659, i32 0, i32 19
  %1661 = load ptr, ptr %1660, align 8, !tbaa !31
  %1662 = ptrtoint ptr %1658 to i64
  %1663 = ptrtoint ptr %1661 to i64
  %1664 = sub i64 %1662, %1663
  %1665 = call i32 @hook_path_run(ptr noundef %1647, ptr noundef %1648, ptr noundef %1651, i64 noundef %1664)
  store i32 %1665, ptr %13, align 4, !tbaa !33
  %1666 = load i8, ptr %10, align 1, !tbaa !15
  %1667 = load ptr, ptr %6, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.htparser, ptr %1667, i32 0, i32 23
  %1669 = load ptr, ptr %6, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.htparser, ptr %1669, i32 0, i32 22
  %1671 = load i32, ptr %1670, align 8, !tbaa !16
  %1672 = add i32 %1671, 1
  store i32 %1672, ptr %1670, align 8, !tbaa !16
  %1673 = zext i32 %1671 to i64
  %1674 = getelementptr inbounds [8192 x i8], ptr %1668, i64 0, i64 %1673
  store i8 %1666, ptr %1674, align 1, !tbaa !15
  %1675 = load ptr, ptr %6, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.htparser, ptr %1675, i32 0, i32 23
  %1677 = load ptr, ptr %6, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.htparser, ptr %1677, i32 0, i32 22
  %1679 = load i32, ptr %1678, align 8, !tbaa !16
  %1680 = zext i32 %1679 to i64
  %1681 = getelementptr inbounds [8192 x i8], ptr %1676, i64 0, i64 %1680
  store i8 0, ptr %1681, align 1, !tbaa !15
  %1682 = load ptr, ptr %6, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.htparser, ptr %1682, i32 0, i32 23
  %1684 = load ptr, ptr %6, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.htparser, ptr %1684, i32 0, i32 22
  %1686 = load i32, ptr %1685, align 8, !tbaa !16
  %1687 = zext i32 %1686 to i64
  %1688 = getelementptr inbounds [8192 x i8], ptr %1683, i64 0, i64 %1687
  %1689 = load ptr, ptr %6, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.htparser, ptr %1689, i32 0, i32 20
  store ptr %1688, ptr %1690, align 8, !tbaa !32
  br label %1709

1691:                                             ; preds = %1641
  br label %1692

1692:                                             ; preds = %1691, %1567
  %1693 = load i8, ptr %10, align 1, !tbaa !15
  %1694 = load ptr, ptr %6, align 8, !tbaa !5
  %1695 = getelementptr inbounds %struct.htparser, ptr %1694, i32 0, i32 23
  %1696 = load ptr, ptr %6, align 8, !tbaa !5
  %1697 = getelementptr inbounds %struct.htparser, ptr %1696, i32 0, i32 22
  %1698 = load i32, ptr %1697, align 8, !tbaa !16
  %1699 = add i32 %1698, 1
  store i32 %1699, ptr %1697, align 8, !tbaa !16
  %1700 = zext i32 %1698 to i64
  %1701 = getelementptr inbounds [8192 x i8], ptr %1695, i64 0, i64 %1700
  store i8 %1693, ptr %1701, align 1, !tbaa !15
  %1702 = load ptr, ptr %6, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.htparser, ptr %1702, i32 0, i32 23
  %1704 = load ptr, ptr %6, align 8, !tbaa !5
  %1705 = getelementptr inbounds %struct.htparser, ptr %1704, i32 0, i32 22
  %1706 = load i32, ptr %1705, align 8, !tbaa !16
  %1707 = zext i32 %1706 to i64
  %1708 = getelementptr inbounds [8192 x i8], ptr %1703, i64 0, i64 %1707
  store i8 0, ptr %1708, align 1, !tbaa !15
  br label %1709

1709:                                             ; preds = %1692, %1646, %1634, %1627, %1626
  %1710 = load i32, ptr %13, align 4, !tbaa !33
  %1711 = icmp ne i32 %1710, 0
  br i1 %1711, label %1712, label %1717

1712:                                             ; preds = %1709
  %1713 = load ptr, ptr %6, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.htparser, ptr %1713, i32 0, i32 0
  store i32 11, ptr %1714, align 8, !tbaa !11
  %1715 = load i64, ptr %12, align 8, !tbaa !9
  %1716 = add i64 %1715, 1
  store i64 %1716, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1717:                                             ; preds = %1709
  br label %3060

1718:                                             ; preds = %61
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  %1722 = load i8, ptr %10, align 1, !tbaa !15
  %1723 = zext i8 %1722 to i32
  switch i32 %1723, label %1743 [
    i32 32, label %1748
    i32 13, label %1724
    i32 10, label %1731
    i32 72, label %1738
  ]

1724:                                             ; preds = %1721
  %1725 = load ptr, ptr %6, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.htparser, ptr %1725, i32 0, i32 9
  store i8 9, ptr %1726, align 2, !tbaa !23
  %1727 = load ptr, ptr %6, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.htparser, ptr %1727, i32 0, i32 22
  store i32 0, ptr %1728, align 8, !tbaa !16
  %1729 = load ptr, ptr %6, align 8, !tbaa !5
  %1730 = getelementptr inbounds %struct.htparser, ptr %1729, i32 0, i32 1
  store i32 23, ptr %1730, align 4, !tbaa !18
  br label %1748

1731:                                             ; preds = %1721
  %1732 = load ptr, ptr %6, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.htparser, ptr %1732, i32 0, i32 9
  store i8 9, ptr %1733, align 2, !tbaa !23
  %1734 = load ptr, ptr %6, align 8, !tbaa !5
  %1735 = getelementptr inbounds %struct.htparser, ptr %1734, i32 0, i32 22
  store i32 0, ptr %1735, align 8, !tbaa !16
  %1736 = load ptr, ptr %6, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.htparser, ptr %1736, i32 0, i32 1
  store i32 25, ptr %1737, align 4, !tbaa !18
  br label %1748

1738:                                             ; preds = %1721
  %1739 = load ptr, ptr %6, align 8, !tbaa !5
  %1740 = getelementptr inbounds %struct.htparser, ptr %1739, i32 0, i32 22
  store i32 0, ptr %1740, align 8, !tbaa !16
  %1741 = load ptr, ptr %6, align 8, !tbaa !5
  %1742 = getelementptr inbounds %struct.htparser, ptr %1741, i32 0, i32 1
  store i32 14, ptr %1742, align 4, !tbaa !18
  br label %1748

1743:                                             ; preds = %1721
  %1744 = load ptr, ptr %6, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.htparser, ptr %1744, i32 0, i32 0
  store i32 5, ptr %1745, align 8, !tbaa !11
  %1746 = load i64, ptr %12, align 8, !tbaa !9
  %1747 = add i64 %1746, 1
  store i64 %1747, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1748:                                             ; preds = %1738, %1731, %1724, %1721
  br label %3060

1749:                                             ; preds = %61
  br label %1750

1750:                                             ; preds = %1749
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  %1753 = load i8, ptr %10, align 1, !tbaa !15
  %1754 = zext i8 %1753 to i32
  switch i32 %1754, label %1758 [
    i32 84, label %1755
  ]

1755:                                             ; preds = %1752
  %1756 = load ptr, ptr %6, align 8, !tbaa !5
  %1757 = getelementptr inbounds %struct.htparser, ptr %1756, i32 0, i32 1
  store i32 15, ptr %1757, align 4, !tbaa !18
  br label %1763

1758:                                             ; preds = %1752
  %1759 = load ptr, ptr %6, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.htparser, ptr %1759, i32 0, i32 0
  store i32 5, ptr %1760, align 8, !tbaa !11
  %1761 = load i64, ptr %12, align 8, !tbaa !9
  %1762 = add i64 %1761, 1
  store i64 %1762, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1763:                                             ; preds = %1755
  br label %3060

1764:                                             ; preds = %61
  %1765 = load i8, ptr %10, align 1, !tbaa !15
  %1766 = zext i8 %1765 to i32
  switch i32 %1766, label %1770 [
    i32 84, label %1767
  ]

1767:                                             ; preds = %1764
  %1768 = load ptr, ptr %6, align 8, !tbaa !5
  %1769 = getelementptr inbounds %struct.htparser, ptr %1768, i32 0, i32 1
  store i32 16, ptr %1769, align 4, !tbaa !18
  br label %1775

1770:                                             ; preds = %1764
  %1771 = load ptr, ptr %6, align 8, !tbaa !5
  %1772 = getelementptr inbounds %struct.htparser, ptr %1771, i32 0, i32 0
  store i32 5, ptr %1772, align 8, !tbaa !11
  %1773 = load i64, ptr %12, align 8, !tbaa !9
  %1774 = add i64 %1773, 1
  store i64 %1774, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1775:                                             ; preds = %1767
  br label %3060

1776:                                             ; preds = %61
  %1777 = load i8, ptr %10, align 1, !tbaa !15
  %1778 = zext i8 %1777 to i32
  switch i32 %1778, label %1782 [
    i32 80, label %1779
  ]

1779:                                             ; preds = %1776
  %1780 = load ptr, ptr %6, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.htparser, ptr %1780, i32 0, i32 1
  store i32 17, ptr %1781, align 4, !tbaa !18
  br label %1787

1782:                                             ; preds = %1776
  %1783 = load ptr, ptr %6, align 8, !tbaa !5
  %1784 = getelementptr inbounds %struct.htparser, ptr %1783, i32 0, i32 0
  store i32 5, ptr %1784, align 8, !tbaa !11
  %1785 = load i64, ptr %12, align 8, !tbaa !9
  %1786 = add i64 %1785, 1
  store i64 %1786, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1787:                                             ; preds = %1779
  br label %3060

1788:                                             ; preds = %61
  %1789 = load i8, ptr %10, align 1, !tbaa !15
  %1790 = zext i8 %1789 to i32
  switch i32 %1790, label %1794 [
    i32 47, label %1791
  ]

1791:                                             ; preds = %1788
  %1792 = load ptr, ptr %6, align 8, !tbaa !5
  %1793 = getelementptr inbounds %struct.htparser, ptr %1792, i32 0, i32 1
  store i32 18, ptr %1793, align 4, !tbaa !18
  br label %1799

1794:                                             ; preds = %1788
  %1795 = load ptr, ptr %6, align 8, !tbaa !5
  %1796 = getelementptr inbounds %struct.htparser, ptr %1795, i32 0, i32 0
  store i32 5, ptr %1796, align 8, !tbaa !11
  %1797 = load i64, ptr %12, align 8, !tbaa !9
  %1798 = add i64 %1797, 1
  store i64 %1798, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1799:                                             ; preds = %1791
  br label %3060

1800:                                             ; preds = %61
  %1801 = load i8, ptr %10, align 1, !tbaa !15
  %1802 = zext i8 %1801 to i32
  %1803 = icmp slt i32 %1802, 49
  br i1 %1803, label %1808, label %1804

1804:                                             ; preds = %1800
  %1805 = load i8, ptr %10, align 1, !tbaa !15
  %1806 = zext i8 %1805 to i32
  %1807 = icmp sgt i32 %1806, 57
  br i1 %1807, label %1808, label %1813

1808:                                             ; preds = %1804, %1800
  %1809 = load ptr, ptr %6, align 8, !tbaa !5
  %1810 = getelementptr inbounds %struct.htparser, ptr %1809, i32 0, i32 0
  store i32 6, ptr %1810, align 8, !tbaa !11
  %1811 = load i64, ptr %12, align 8, !tbaa !9
  %1812 = add i64 %1811, 1
  store i64 %1812, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1813:                                             ; preds = %1804
  %1814 = load i8, ptr %10, align 1, !tbaa !15
  %1815 = zext i8 %1814 to i32
  %1816 = sub nsw i32 %1815, 48
  %1817 = trunc i32 %1816 to i8
  %1818 = load ptr, ptr %6, align 8, !tbaa !5
  %1819 = getelementptr inbounds %struct.htparser, ptr %1818, i32 0, i32 8
  store i8 %1817, ptr %1819, align 1, !tbaa !22
  %1820 = load ptr, ptr %6, align 8, !tbaa !5
  %1821 = getelementptr inbounds %struct.htparser, ptr %1820, i32 0, i32 1
  store i32 19, ptr %1821, align 4, !tbaa !18
  br label %3060

1822:                                             ; preds = %61
  %1823 = load i8, ptr %10, align 1, !tbaa !15
  %1824 = zext i8 %1823 to i32
  %1825 = icmp eq i32 %1824, 46
  br i1 %1825, label %1826, label %1829

1826:                                             ; preds = %1822
  %1827 = load ptr, ptr %6, align 8, !tbaa !5
  %1828 = getelementptr inbounds %struct.htparser, ptr %1827, i32 0, i32 1
  store i32 20, ptr %1828, align 4, !tbaa !18
  br label %3060

1829:                                             ; preds = %1822
  %1830 = load i8, ptr %10, align 1, !tbaa !15
  %1831 = zext i8 %1830 to i32
  %1832 = icmp slt i32 %1831, 48
  br i1 %1832, label %1837, label %1833

1833:                                             ; preds = %1829
  %1834 = load i8, ptr %10, align 1, !tbaa !15
  %1835 = zext i8 %1834 to i32
  %1836 = icmp sgt i32 %1835, 57
  br i1 %1836, label %1837, label %1842

1837:                                             ; preds = %1833, %1829
  %1838 = load ptr, ptr %6, align 8, !tbaa !5
  %1839 = getelementptr inbounds %struct.htparser, ptr %1838, i32 0, i32 0
  store i32 6, ptr %1839, align 8, !tbaa !11
  %1840 = load i64, ptr %12, align 8, !tbaa !9
  %1841 = add i64 %1840, 1
  store i64 %1841, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1842:                                             ; preds = %1833
  %1843 = load ptr, ptr %6, align 8, !tbaa !5
  %1844 = getelementptr inbounds %struct.htparser, ptr %1843, i32 0, i32 8
  %1845 = load i8, ptr %1844, align 1, !tbaa !22
  %1846 = zext i8 %1845 to i32
  %1847 = mul nsw i32 %1846, 10
  %1848 = load i8, ptr %10, align 1, !tbaa !15
  %1849 = zext i8 %1848 to i32
  %1850 = add nsw i32 %1847, %1849
  %1851 = sub nsw i32 %1850, 48
  %1852 = trunc i32 %1851 to i8
  %1853 = load ptr, ptr %6, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.htparser, ptr %1853, i32 0, i32 8
  store i8 %1852, ptr %1854, align 1, !tbaa !22
  br label %3060

1855:                                             ; preds = %61
  %1856 = load i8, ptr %10, align 1, !tbaa !15
  %1857 = zext i8 %1856 to i32
  %1858 = icmp slt i32 %1857, 48
  br i1 %1858, label %1863, label %1859

1859:                                             ; preds = %1855
  %1860 = load i8, ptr %10, align 1, !tbaa !15
  %1861 = zext i8 %1860 to i32
  %1862 = icmp sgt i32 %1861, 57
  br i1 %1862, label %1863, label %1868

1863:                                             ; preds = %1859, %1855
  %1864 = load ptr, ptr %6, align 8, !tbaa !5
  %1865 = getelementptr inbounds %struct.htparser, ptr %1864, i32 0, i32 0
  store i32 6, ptr %1865, align 8, !tbaa !11
  %1866 = load i64, ptr %12, align 8, !tbaa !9
  %1867 = add i64 %1866, 1
  store i64 %1867, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1868:                                             ; preds = %1859
  %1869 = load i8, ptr %10, align 1, !tbaa !15
  %1870 = zext i8 %1869 to i32
  %1871 = sub nsw i32 %1870, 48
  %1872 = trunc i32 %1871 to i8
  %1873 = load ptr, ptr %6, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.htparser, ptr %1873, i32 0, i32 9
  store i8 %1872, ptr %1874, align 2, !tbaa !23
  %1875 = load ptr, ptr %6, align 8, !tbaa !5
  %1876 = getelementptr inbounds %struct.htparser, ptr %1875, i32 0, i32 1
  store i32 21, ptr %1876, align 4, !tbaa !18
  br label %3060

1877:                                             ; preds = %61
  %1878 = load i8, ptr %10, align 1, !tbaa !15
  %1879 = zext i8 %1878 to i32
  switch i32 %1879, label %1906 [
    i32 32, label %1880
    i32 13, label %1898
    i32 10, label %1901
  ]

1880:                                             ; preds = %1877
  %1881 = load ptr, ptr %6, align 8, !tbaa !5
  %1882 = getelementptr inbounds %struct.htparser, ptr %1881, i32 0, i32 4
  %1883 = load i32, ptr %1882, align 8, !tbaa !34
  %1884 = icmp eq i32 %1883, 0
  br i1 %1884, label %1885, label %1888

1885:                                             ; preds = %1880
  %1886 = load ptr, ptr %6, align 8, !tbaa !5
  %1887 = getelementptr inbounds %struct.htparser, ptr %1886, i32 0, i32 1
  store i32 22, ptr %1887, align 4, !tbaa !18
  br label %1897

1888:                                             ; preds = %1880
  %1889 = load ptr, ptr %6, align 8, !tbaa !5
  %1890 = getelementptr inbounds %struct.htparser, ptr %1889, i32 0, i32 4
  %1891 = load i32, ptr %1890, align 8, !tbaa !34
  %1892 = icmp eq i32 %1891, 1
  br i1 %1892, label %1893, label %1896

1893:                                             ; preds = %1888
  %1894 = load ptr, ptr %6, align 8, !tbaa !5
  %1895 = getelementptr inbounds %struct.htparser, ptr %1894, i32 0, i32 1
  store i32 40, ptr %1895, align 4, !tbaa !18
  br label %1896

1896:                                             ; preds = %1893, %1888
  br label %1897

1897:                                             ; preds = %1896, %1885
  br label %1932

1898:                                             ; preds = %1877
  %1899 = load ptr, ptr %6, align 8, !tbaa !5
  %1900 = getelementptr inbounds %struct.htparser, ptr %1899, i32 0, i32 1
  store i32 23, ptr %1900, align 4, !tbaa !18
  br label %1932

1901:                                             ; preds = %1877
  %1902 = load ptr, ptr %6, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.htparser, ptr %1902, i32 0, i32 0
  store i32 3, ptr %1903, align 8, !tbaa !11
  %1904 = load i64, ptr %12, align 8, !tbaa !9
  %1905 = add i64 %1904, 1
  store i64 %1905, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1906:                                             ; preds = %1877
  %1907 = load i8, ptr %10, align 1, !tbaa !15
  %1908 = zext i8 %1907 to i32
  %1909 = icmp slt i32 %1908, 48
  br i1 %1909, label %1914, label %1910

1910:                                             ; preds = %1906
  %1911 = load i8, ptr %10, align 1, !tbaa !15
  %1912 = zext i8 %1911 to i32
  %1913 = icmp sgt i32 %1912, 57
  br i1 %1913, label %1914, label %1919

1914:                                             ; preds = %1910, %1906
  %1915 = load ptr, ptr %6, align 8, !tbaa !5
  %1916 = getelementptr inbounds %struct.htparser, ptr %1915, i32 0, i32 0
  store i32 6, ptr %1916, align 8, !tbaa !11
  %1917 = load i64, ptr %12, align 8, !tbaa !9
  %1918 = add i64 %1917, 1
  store i64 %1918, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1919:                                             ; preds = %1910
  %1920 = load ptr, ptr %6, align 8, !tbaa !5
  %1921 = getelementptr inbounds %struct.htparser, ptr %1920, i32 0, i32 9
  %1922 = load i8, ptr %1921, align 2, !tbaa !23
  %1923 = zext i8 %1922 to i32
  %1924 = mul nsw i32 %1923, 10
  %1925 = load i8, ptr %10, align 1, !tbaa !15
  %1926 = zext i8 %1925 to i32
  %1927 = add nsw i32 %1924, %1926
  %1928 = sub nsw i32 %1927, 48
  %1929 = trunc i32 %1928 to i8
  %1930 = load ptr, ptr %6, align 8, !tbaa !5
  %1931 = getelementptr inbounds %struct.htparser, ptr %1930, i32 0, i32 9
  store i8 %1929, ptr %1931, align 2, !tbaa !23
  br label %1932

1932:                                             ; preds = %1919, %1898, %1897
  br label %3060

1933:                                             ; preds = %61
  %1934 = load i8, ptr %10, align 1, !tbaa !15
  %1935 = zext i8 %1934 to i32
  %1936 = icmp eq i32 %1935, 32
  br i1 %1936, label %1937, label %1946

1937:                                             ; preds = %1933
  %1938 = load ptr, ptr %6, align 8, !tbaa !5
  %1939 = getelementptr inbounds %struct.htparser, ptr %1938, i32 0, i32 14
  %1940 = load i32, ptr %1939, align 8, !tbaa !26
  %1941 = icmp ne i32 %1940, 0
  br i1 %1941, label %1942, label %1945

1942:                                             ; preds = %1937
  %1943 = load ptr, ptr %6, align 8, !tbaa !5
  %1944 = getelementptr inbounds %struct.htparser, ptr %1943, i32 0, i32 1
  store i32 42, ptr %1944, align 4, !tbaa !18
  br label %1945

1945:                                             ; preds = %1942, %1937
  br label %3060

1946:                                             ; preds = %1933
  %1947 = load i8, ptr %10, align 1, !tbaa !15
  %1948 = zext i8 %1947 to i32
  %1949 = icmp slt i32 %1948, 48
  br i1 %1949, label %1954, label %1950

1950:                                             ; preds = %1946
  %1951 = load i8, ptr %10, align 1, !tbaa !15
  %1952 = zext i8 %1951 to i32
  %1953 = icmp sgt i32 %1952, 57
  br i1 %1953, label %1954, label %1959

1954:                                             ; preds = %1950, %1946
  %1955 = load ptr, ptr %6, align 8, !tbaa !5
  %1956 = getelementptr inbounds %struct.htparser, ptr %1955, i32 0, i32 0
  store i32 12, ptr %1956, align 8, !tbaa !11
  %1957 = load i64, ptr %12, align 8, !tbaa !9
  %1958 = add i64 %1957, 1
  store i64 %1958, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1959:                                             ; preds = %1950
  %1960 = load ptr, ptr %6, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.htparser, ptr %1960, i32 0, i32 14
  %1962 = load i32, ptr %1961, align 8, !tbaa !26
  %1963 = mul i32 %1962, 10
  %1964 = load i8, ptr %10, align 1, !tbaa !15
  %1965 = zext i8 %1964 to i32
  %1966 = add i32 %1963, %1965
  %1967 = sub i32 %1966, 48
  %1968 = load ptr, ptr %6, align 8, !tbaa !5
  %1969 = getelementptr inbounds %struct.htparser, ptr %1968, i32 0, i32 14
  store i32 %1967, ptr %1969, align 8, !tbaa !26
  %1970 = load ptr, ptr %6, align 8, !tbaa !5
  %1971 = getelementptr inbounds %struct.htparser, ptr %1970, i32 0, i32 15
  %1972 = load i32, ptr %1971, align 4, !tbaa !27
  %1973 = add i32 %1972, 1
  store i32 %1973, ptr %1971, align 4, !tbaa !27
  %1974 = icmp eq i32 %1973, 3
  br i1 %1974, label %1975, label %1978

1975:                                             ; preds = %1959
  %1976 = load ptr, ptr %6, align 8, !tbaa !5
  %1977 = getelementptr inbounds %struct.htparser, ptr %1976, i32 0, i32 1
  store i32 41, ptr %1977, align 4, !tbaa !18
  br label %1978

1978:                                             ; preds = %1975, %1959
  br label %3060

1979:                                             ; preds = %61
  %1980 = load i8, ptr %10, align 1, !tbaa !15
  %1981 = zext i8 %1980 to i32
  switch i32 %1981, label %1991 [
    i32 32, label %1982
    i32 13, label %1985
    i32 10, label %1988
  ]

1982:                                             ; preds = %1979
  %1983 = load ptr, ptr %6, align 8, !tbaa !5
  %1984 = getelementptr inbounds %struct.htparser, ptr %1983, i32 0, i32 1
  store i32 42, ptr %1984, align 4, !tbaa !18
  br label %1996

1985:                                             ; preds = %1979
  %1986 = load ptr, ptr %6, align 8, !tbaa !5
  %1987 = getelementptr inbounds %struct.htparser, ptr %1986, i32 0, i32 1
  store i32 23, ptr %1987, align 4, !tbaa !18
  br label %1996

1988:                                             ; preds = %1979
  %1989 = load ptr, ptr %6, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.htparser, ptr %1989, i32 0, i32 1
  store i32 25, ptr %1990, align 4, !tbaa !18
  br label %1996

1991:                                             ; preds = %1979
  %1992 = load ptr, ptr %6, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.htparser, ptr %1992, i32 0, i32 0
  store i32 13, ptr %1993, align 8, !tbaa !11
  %1994 = load i64, ptr %12, align 8, !tbaa !9
  %1995 = add i64 %1994, 1
  store i64 %1995, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

1996:                                             ; preds = %1988, %1985, %1982
  br label %3060

1997:                                             ; preds = %61
  %1998 = load i8, ptr %10, align 1, !tbaa !15
  %1999 = zext i8 %1998 to i32
  switch i32 %1999, label %2006 [
    i32 13, label %2000
    i32 10, label %2003
  ]

2000:                                             ; preds = %1997
  %2001 = load ptr, ptr %6, align 8, !tbaa !5
  %2002 = getelementptr inbounds %struct.htparser, ptr %2001, i32 0, i32 1
  store i32 23, ptr %2002, align 4, !tbaa !18
  br label %2007

2003:                                             ; preds = %1997
  %2004 = load ptr, ptr %6, align 8, !tbaa !5
  %2005 = getelementptr inbounds %struct.htparser, ptr %2004, i32 0, i32 1
  store i32 25, ptr %2005, align 4, !tbaa !18
  br label %2007

2006:                                             ; preds = %1997
  br label %2007

2007:                                             ; preds = %2006, %2003, %2000
  br label %3060

2008:                                             ; preds = %61
  %2009 = load i8, ptr %10, align 1, !tbaa !15
  %2010 = zext i8 %2009 to i32
  switch i32 %2010, label %2017 [
    i32 32, label %2022
    i32 13, label %2011
    i32 10, label %2014
  ]

2011:                                             ; preds = %2008
  %2012 = load ptr, ptr %6, align 8, !tbaa !5
  %2013 = getelementptr inbounds %struct.htparser, ptr %2012, i32 0, i32 1
  store i32 23, ptr %2013, align 4, !tbaa !18
  br label %2022

2014:                                             ; preds = %2008
  %2015 = load ptr, ptr %6, align 8, !tbaa !5
  %2016 = getelementptr inbounds %struct.htparser, ptr %2015, i32 0, i32 1
  store i32 25, ptr %2016, align 4, !tbaa !18
  br label %2022

2017:                                             ; preds = %2008
  %2018 = load ptr, ptr %6, align 8, !tbaa !5
  %2019 = getelementptr inbounds %struct.htparser, ptr %2018, i32 0, i32 0
  store i32 6, ptr %2019, align 8, !tbaa !11
  %2020 = load i64, ptr %12, align 8, !tbaa !9
  %2021 = add i64 %2020, 1
  store i64 %2021, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2022:                                             ; preds = %2014, %2011, %2008
  br label %3060

2023:                                             ; preds = %61
  %2024 = load i8, ptr %10, align 1, !tbaa !15
  %2025 = zext i8 %2024 to i32
  switch i32 %2025, label %2073 [
    i32 10, label %2026
  ]

2026:                                             ; preds = %2023
  %2027 = load ptr, ptr %6, align 8, !tbaa !5
  %2028 = getelementptr inbounds %struct.htparser, ptr %2027, i32 0, i32 4
  %2029 = load i32, ptr %2028, align 8, !tbaa !34
  %2030 = icmp eq i32 %2029, 1
  br i1 %2030, label %2031, label %2059

2031:                                             ; preds = %2026
  %2032 = load ptr, ptr %6, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.htparser, ptr %2032, i32 0, i32 14
  %2034 = load i32, ptr %2033, align 8, !tbaa !26
  %2035 = icmp uge i32 %2034, 100
  br i1 %2035, label %2036, label %2059

2036:                                             ; preds = %2031
  %2037 = load ptr, ptr %6, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.htparser, ptr %2037, i32 0, i32 14
  %2039 = load i32, ptr %2038, align 8, !tbaa !26
  %2040 = icmp ult i32 %2039, 200
  br i1 %2040, label %2041, label %2059

2041:                                             ; preds = %2036
  %2042 = load ptr, ptr %6, align 8, !tbaa !5
  %2043 = load ptr, ptr %7, align 8, !tbaa !5
  %2044 = call i32 @hook_on_hdrs_begin_run(ptr noundef %2042, ptr noundef %2043)
  store i32 %2044, ptr %13, align 4, !tbaa !33
  %2045 = load i32, ptr %13, align 4, !tbaa !33
  %2046 = icmp ne i32 %2045, 0
  br i1 %2046, label %2047, label %2052

2047:                                             ; preds = %2041
  %2048 = load ptr, ptr %6, align 8, !tbaa !5
  %2049 = getelementptr inbounds %struct.htparser, ptr %2048, i32 0, i32 0
  store i32 11, ptr %2049, align 8, !tbaa !11
  %2050 = load i64, ptr %12, align 8, !tbaa !9
  %2051 = add i64 %2050, 1
  store i64 %2051, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2052:                                             ; preds = %2041
  %2053 = load ptr, ptr %6, align 8, !tbaa !5
  %2054 = getelementptr inbounds %struct.htparser, ptr %2053, i32 0, i32 14
  store i32 0, ptr %2054, align 8, !tbaa !26
  %2055 = load ptr, ptr %6, align 8, !tbaa !5
  %2056 = getelementptr inbounds %struct.htparser, ptr %2055, i32 0, i32 15
  store i32 0, ptr %2056, align 4, !tbaa !27
  %2057 = load ptr, ptr %6, align 8, !tbaa !5
  %2058 = getelementptr inbounds %struct.htparser, ptr %2057, i32 0, i32 1
  store i32 0, ptr %2058, align 4, !tbaa !18
  br label %2078

2059:                                             ; preds = %2036, %2031, %2026
  %2060 = load ptr, ptr %6, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.htparser, ptr %2060, i32 0, i32 1
  store i32 24, ptr %2061, align 4, !tbaa !18
  %2062 = load ptr, ptr %6, align 8, !tbaa !5
  %2063 = load ptr, ptr %7, align 8, !tbaa !5
  %2064 = call i32 @hook_on_hdrs_begin_run(ptr noundef %2062, ptr noundef %2063)
  store i32 %2064, ptr %13, align 4, !tbaa !33
  %2065 = load i32, ptr %13, align 4, !tbaa !33
  %2066 = icmp ne i32 %2065, 0
  br i1 %2066, label %2067, label %2072

2067:                                             ; preds = %2059
  %2068 = load ptr, ptr %6, align 8, !tbaa !5
  %2069 = getelementptr inbounds %struct.htparser, ptr %2068, i32 0, i32 0
  store i32 11, ptr %2069, align 8, !tbaa !11
  %2070 = load i64, ptr %12, align 8, !tbaa !9
  %2071 = add i64 %2070, 1
  store i64 %2071, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2072:                                             ; preds = %2059
  br label %2078

2073:                                             ; preds = %2023
  %2074 = load ptr, ptr %6, align 8, !tbaa !5
  %2075 = getelementptr inbounds %struct.htparser, ptr %2074, i32 0, i32 0
  store i32 3, ptr %2075, align 8, !tbaa !11
  %2076 = load i64, ptr %12, align 8, !tbaa !9
  %2077 = add i64 %2076, 1
  store i64 %2077, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2078:                                             ; preds = %2072, %2052
  br label %3060

2079:                                             ; preds = %61
  %2080 = load i8, ptr %10, align 1, !tbaa !15
  %2081 = zext i8 %2080 to i32
  switch i32 %2081, label %2088 [
    i32 13, label %2082
    i32 10, label %2085
  ]

2082:                                             ; preds = %2079
  %2083 = load ptr, ptr %6, align 8, !tbaa !5
  %2084 = getelementptr inbounds %struct.htparser, ptr %2083, i32 0, i32 1
  store i32 31, ptr %2084, align 4, !tbaa !18
  br label %2089

2085:                                             ; preds = %2079
  %2086 = load i64, ptr %12, align 8, !tbaa !9
  %2087 = add i64 %2086, 1
  store i64 %2087, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2088:                                             ; preds = %2079
  br label %2090

2089:                                             ; preds = %2082
  br label %3060

2090:                                             ; preds = %2088
  br label %2091

2091:                                             ; preds = %2090, %61
  br label %2092

2092:                                             ; preds = %2091
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

2094:                                             ; preds = %2093
  %2095 = load ptr, ptr %6, align 8, !tbaa !5
  %2096 = getelementptr inbounds %struct.htparser, ptr %2095, i32 0, i32 22
  store i32 0, ptr %2096, align 8, !tbaa !16
  %2097 = load i8, ptr %10, align 1, !tbaa !15
  %2098 = zext i8 %2097 to i32
  switch i32 %2098, label %2105 [
    i32 13, label %2099
    i32 10, label %2102
  ]

2099:                                             ; preds = %2094
  %2100 = load ptr, ptr %6, align 8, !tbaa !5
  %2101 = getelementptr inbounds %struct.htparser, ptr %2100, i32 0, i32 1
  store i32 26, ptr %2101, align 4, !tbaa !18
  br label %2124

2102:                                             ; preds = %2094
  %2103 = load ptr, ptr %6, align 8, !tbaa !5
  %2104 = getelementptr inbounds %struct.htparser, ptr %2103, i32 0, i32 1
  store i32 27, ptr %2104, align 4, !tbaa !18
  br label %2124

2105:                                             ; preds = %2094
  %2106 = load i8, ptr %10, align 1, !tbaa !15
  %2107 = load ptr, ptr %6, align 8, !tbaa !5
  %2108 = getelementptr inbounds %struct.htparser, ptr %2107, i32 0, i32 23
  %2109 = load ptr, ptr %6, align 8, !tbaa !5
  %2110 = getelementptr inbounds %struct.htparser, ptr %2109, i32 0, i32 22
  %2111 = load i32, ptr %2110, align 8, !tbaa !16
  %2112 = add i32 %2111, 1
  store i32 %2112, ptr %2110, align 8, !tbaa !16
  %2113 = zext i32 %2111 to i64
  %2114 = getelementptr inbounds [8192 x i8], ptr %2108, i64 0, i64 %2113
  store i8 %2106, ptr %2114, align 1, !tbaa !15
  %2115 = load ptr, ptr %6, align 8, !tbaa !5
  %2116 = getelementptr inbounds %struct.htparser, ptr %2115, i32 0, i32 23
  %2117 = load ptr, ptr %6, align 8, !tbaa !5
  %2118 = getelementptr inbounds %struct.htparser, ptr %2117, i32 0, i32 22
  %2119 = load i32, ptr %2118, align 8, !tbaa !16
  %2120 = zext i32 %2119 to i64
  %2121 = getelementptr inbounds [8192 x i8], ptr %2116, i64 0, i64 %2120
  store i8 0, ptr %2121, align 1, !tbaa !15
  %2122 = load ptr, ptr %6, align 8, !tbaa !5
  %2123 = getelementptr inbounds %struct.htparser, ptr %2122, i32 0, i32 1
  store i32 28, ptr %2123, align 4, !tbaa !18
  br label %2124

2124:                                             ; preds = %2105, %2102, %2099
  br label %3060

2125:                                             ; preds = %61
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127
  store i32 0, ptr %13, align 4, !tbaa !33
  %2129 = load i8, ptr %10, align 1, !tbaa !15
  %2130 = zext i8 %2129 to i32
  switch i32 %2130, label %2219 [
    i32 58, label %2131
    i32 13, label %2213
    i32 10, label %2216
  ]

2131:                                             ; preds = %2128
  %2132 = load ptr, ptr %6, align 8, !tbaa !5
  %2133 = load ptr, ptr %7, align 8, !tbaa !5
  %2134 = load ptr, ptr %6, align 8, !tbaa !5
  %2135 = getelementptr inbounds %struct.htparser, ptr %2134, i32 0, i32 23
  %2136 = getelementptr inbounds [8192 x i8], ptr %2135, i64 0, i64 0
  %2137 = load ptr, ptr %6, align 8, !tbaa !5
  %2138 = getelementptr inbounds %struct.htparser, ptr %2137, i32 0, i32 22
  %2139 = load i32, ptr %2138, align 8, !tbaa !16
  %2140 = zext i32 %2139 to i64
  %2141 = call i32 @hook_hdr_key_run(ptr noundef %2132, ptr noundef %2133, ptr noundef %2136, i64 noundef %2140)
  store i32 %2141, ptr %13, align 4, !tbaa !33
  %2142 = load ptr, ptr %6, align 8, !tbaa !5
  %2143 = getelementptr inbounds %struct.htparser, ptr %2142, i32 0, i32 3
  store i32 0, ptr %2143, align 4, !tbaa !36
  %2144 = load ptr, ptr %6, align 8, !tbaa !5
  %2145 = getelementptr inbounds %struct.htparser, ptr %2144, i32 0, i32 22
  %2146 = load i32, ptr %2145, align 8, !tbaa !16
  %2147 = add i32 %2146, 1
  switch i32 %2147, label %2208 [
    i32 5, label %2148
    i32 11, label %2158
    i32 13, label %2168
    i32 15, label %2178
    i32 17, label %2188
    i32 18, label %2198
  ]

2148:                                             ; preds = %2131
  %2149 = load ptr, ptr %6, align 8, !tbaa !5
  %2150 = getelementptr inbounds %struct.htparser, ptr %2149, i32 0, i32 23
  %2151 = getelementptr inbounds [8192 x i8], ptr %2150, i64 0, i64 0
  %2152 = call i32 @strcasecmp(ptr noundef %2151, ptr noundef @.str.1) #5
  %2153 = icmp ne i32 %2152, 0
  br i1 %2153, label %2157, label %2154

2154:                                             ; preds = %2148
  %2155 = load ptr, ptr %6, align 8, !tbaa !5
  %2156 = getelementptr inbounds %struct.htparser, ptr %2155, i32 0, i32 3
  store i32 5, ptr %2156, align 4, !tbaa !36
  br label %2157

2157:                                             ; preds = %2154, %2148
  br label %2208

2158:                                             ; preds = %2131
  %2159 = load ptr, ptr %6, align 8, !tbaa !5
  %2160 = getelementptr inbounds %struct.htparser, ptr %2159, i32 0, i32 23
  %2161 = getelementptr inbounds [8192 x i8], ptr %2160, i64 0, i64 0
  %2162 = call i32 @strcasecmp(ptr noundef %2161, ptr noundef @.str.2) #5
  %2163 = icmp ne i32 %2162, 0
  br i1 %2163, label %2167, label %2164

2164:                                             ; preds = %2158
  %2165 = load ptr, ptr %6, align 8, !tbaa !5
  %2166 = getelementptr inbounds %struct.htparser, ptr %2165, i32 0, i32 3
  store i32 1, ptr %2166, align 4, !tbaa !36
  br label %2167

2167:                                             ; preds = %2164, %2158
  br label %2208

2168:                                             ; preds = %2131
  %2169 = load ptr, ptr %6, align 8, !tbaa !5
  %2170 = getelementptr inbounds %struct.htparser, ptr %2169, i32 0, i32 23
  %2171 = getelementptr inbounds [8192 x i8], ptr %2170, i64 0, i64 0
  %2172 = call i32 @strcasecmp(ptr noundef %2171, ptr noundef @.str.3) #5
  %2173 = icmp ne i32 %2172, 0
  br i1 %2173, label %2177, label %2174

2174:                                             ; preds = %2168
  %2175 = load ptr, ptr %6, align 8, !tbaa !5
  %2176 = getelementptr inbounds %struct.htparser, ptr %2175, i32 0, i32 3
  store i32 6, ptr %2176, align 4, !tbaa !36
  br label %2177

2177:                                             ; preds = %2174, %2168
  br label %2208

2178:                                             ; preds = %2131
  %2179 = load ptr, ptr %6, align 8, !tbaa !5
  %2180 = getelementptr inbounds %struct.htparser, ptr %2179, i32 0, i32 23
  %2181 = getelementptr inbounds [8192 x i8], ptr %2180, i64 0, i64 0
  %2182 = call i32 @strcasecmp(ptr noundef %2181, ptr noundef @.str.4) #5
  %2183 = icmp ne i32 %2182, 0
  br i1 %2183, label %2187, label %2184

2184:                                             ; preds = %2178
  %2185 = load ptr, ptr %6, align 8, !tbaa !5
  %2186 = getelementptr inbounds %struct.htparser, ptr %2185, i32 0, i32 3
  store i32 3, ptr %2186, align 4, !tbaa !36
  br label %2187

2187:                                             ; preds = %2184, %2178
  br label %2208

2188:                                             ; preds = %2131
  %2189 = load ptr, ptr %6, align 8, !tbaa !5
  %2190 = getelementptr inbounds %struct.htparser, ptr %2189, i32 0, i32 23
  %2191 = getelementptr inbounds [8192 x i8], ptr %2190, i64 0, i64 0
  %2192 = call i32 @strcasecmp(ptr noundef %2191, ptr noundef @.str.5) #5
  %2193 = icmp ne i32 %2192, 0
  br i1 %2193, label %2197, label %2194

2194:                                             ; preds = %2188
  %2195 = load ptr, ptr %6, align 8, !tbaa !5
  %2196 = getelementptr inbounds %struct.htparser, ptr %2195, i32 0, i32 3
  store i32 2, ptr %2196, align 4, !tbaa !36
  br label %2197

2197:                                             ; preds = %2194, %2188
  br label %2208

2198:                                             ; preds = %2131
  %2199 = load ptr, ptr %6, align 8, !tbaa !5
  %2200 = getelementptr inbounds %struct.htparser, ptr %2199, i32 0, i32 23
  %2201 = getelementptr inbounds [8192 x i8], ptr %2200, i64 0, i64 0
  %2202 = call i32 @strcasecmp(ptr noundef %2201, ptr noundef @.str.6) #5
  %2203 = icmp ne i32 %2202, 0
  br i1 %2203, label %2207, label %2204

2204:                                             ; preds = %2198
  %2205 = load ptr, ptr %6, align 8, !tbaa !5
  %2206 = getelementptr inbounds %struct.htparser, ptr %2205, i32 0, i32 3
  store i32 4, ptr %2206, align 4, !tbaa !36
  br label %2207

2207:                                             ; preds = %2204, %2198
  br label %2208

2208:                                             ; preds = %2207, %2197, %2187, %2177, %2167, %2157, %2131
  %2209 = load ptr, ptr %6, align 8, !tbaa !5
  %2210 = getelementptr inbounds %struct.htparser, ptr %2209, i32 0, i32 22
  store i32 0, ptr %2210, align 8, !tbaa !16
  %2211 = load ptr, ptr %6, align 8, !tbaa !5
  %2212 = getelementptr inbounds %struct.htparser, ptr %2211, i32 0, i32 1
  store i32 29, ptr %2212, align 4, !tbaa !18
  br label %2236

2213:                                             ; preds = %2128
  %2214 = load ptr, ptr %6, align 8, !tbaa !5
  %2215 = getelementptr inbounds %struct.htparser, ptr %2214, i32 0, i32 1
  store i32 26, ptr %2215, align 4, !tbaa !18
  br label %2236

2216:                                             ; preds = %2128
  %2217 = load ptr, ptr %6, align 8, !tbaa !5
  %2218 = getelementptr inbounds %struct.htparser, ptr %2217, i32 0, i32 1
  store i32 27, ptr %2218, align 4, !tbaa !18
  br label %2236

2219:                                             ; preds = %2128
  %2220 = load i8, ptr %10, align 1, !tbaa !15
  %2221 = load ptr, ptr %6, align 8, !tbaa !5
  %2222 = getelementptr inbounds %struct.htparser, ptr %2221, i32 0, i32 23
  %2223 = load ptr, ptr %6, align 8, !tbaa !5
  %2224 = getelementptr inbounds %struct.htparser, ptr %2223, i32 0, i32 22
  %2225 = load i32, ptr %2224, align 8, !tbaa !16
  %2226 = add i32 %2225, 1
  store i32 %2226, ptr %2224, align 8, !tbaa !16
  %2227 = zext i32 %2225 to i64
  %2228 = getelementptr inbounds [8192 x i8], ptr %2222, i64 0, i64 %2227
  store i8 %2220, ptr %2228, align 1, !tbaa !15
  %2229 = load ptr, ptr %6, align 8, !tbaa !5
  %2230 = getelementptr inbounds %struct.htparser, ptr %2229, i32 0, i32 23
  %2231 = load ptr, ptr %6, align 8, !tbaa !5
  %2232 = getelementptr inbounds %struct.htparser, ptr %2231, i32 0, i32 22
  %2233 = load i32, ptr %2232, align 8, !tbaa !16
  %2234 = zext i32 %2233 to i64
  %2235 = getelementptr inbounds [8192 x i8], ptr %2230, i64 0, i64 %2234
  store i8 0, ptr %2235, align 1, !tbaa !15
  br label %2236

2236:                                             ; preds = %2219, %2216, %2213, %2208
  %2237 = load i32, ptr %13, align 4, !tbaa !33
  %2238 = icmp ne i32 %2237, 0
  br i1 %2238, label %2239, label %2244

2239:                                             ; preds = %2236
  %2240 = load ptr, ptr %6, align 8, !tbaa !5
  %2241 = getelementptr inbounds %struct.htparser, ptr %2240, i32 0, i32 0
  store i32 11, ptr %2241, align 8, !tbaa !11
  %2242 = load i64, ptr %12, align 8, !tbaa !9
  %2243 = add i64 %2242, 1
  store i64 %2243, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2244:                                             ; preds = %2236
  br label %3060

2245:                                             ; preds = %61
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2247
  %2249 = load i8, ptr %10, align 1, !tbaa !15
  %2250 = zext i8 %2249 to i32
  switch i32 %2250, label %2276 [
    i32 32, label %2295
    i32 13, label %2251
    i32 10, label %2271
  ]

2251:                                             ; preds = %2248
  %2252 = load ptr, ptr %6, align 8, !tbaa !5
  %2253 = getelementptr inbounds %struct.htparser, ptr %2252, i32 0, i32 23
  %2254 = load ptr, ptr %6, align 8, !tbaa !5
  %2255 = getelementptr inbounds %struct.htparser, ptr %2254, i32 0, i32 22
  %2256 = load i32, ptr %2255, align 8, !tbaa !16
  %2257 = add i32 %2256, 1
  store i32 %2257, ptr %2255, align 8, !tbaa !16
  %2258 = zext i32 %2256 to i64
  %2259 = getelementptr inbounds [8192 x i8], ptr %2253, i64 0, i64 %2258
  store i8 32, ptr %2259, align 1, !tbaa !15
  %2260 = load ptr, ptr %6, align 8, !tbaa !5
  %2261 = getelementptr inbounds %struct.htparser, ptr %2260, i32 0, i32 23
  %2262 = load ptr, ptr %6, align 8, !tbaa !5
  %2263 = getelementptr inbounds %struct.htparser, ptr %2262, i32 0, i32 22
  %2264 = load i32, ptr %2263, align 8, !tbaa !16
  %2265 = zext i32 %2264 to i64
  %2266 = getelementptr inbounds [8192 x i8], ptr %2261, i64 0, i64 %2265
  store i8 0, ptr %2266, align 1, !tbaa !15
  %2267 = load ptr, ptr %6, align 8, !tbaa !5
  %2268 = getelementptr inbounds %struct.htparser, ptr %2267, i32 0, i32 1
  store i32 30, ptr %2268, align 4, !tbaa !18
  %2269 = load i64, ptr %12, align 8, !tbaa !9
  %2270 = add i64 %2269, -1
  store i64 %2270, ptr %12, align 8, !tbaa !9
  br label %2295

2271:                                             ; preds = %2248
  %2272 = load ptr, ptr %6, align 8, !tbaa !5
  %2273 = getelementptr inbounds %struct.htparser, ptr %2272, i32 0, i32 0
  store i32 7, ptr %2273, align 8, !tbaa !11
  %2274 = load i64, ptr %12, align 8, !tbaa !9
  %2275 = add i64 %2274, 1
  store i64 %2275, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2276:                                             ; preds = %2248
  %2277 = load i8, ptr %10, align 1, !tbaa !15
  %2278 = load ptr, ptr %6, align 8, !tbaa !5
  %2279 = getelementptr inbounds %struct.htparser, ptr %2278, i32 0, i32 23
  %2280 = load ptr, ptr %6, align 8, !tbaa !5
  %2281 = getelementptr inbounds %struct.htparser, ptr %2280, i32 0, i32 22
  %2282 = load i32, ptr %2281, align 8, !tbaa !16
  %2283 = add i32 %2282, 1
  store i32 %2283, ptr %2281, align 8, !tbaa !16
  %2284 = zext i32 %2282 to i64
  %2285 = getelementptr inbounds [8192 x i8], ptr %2279, i64 0, i64 %2284
  store i8 %2277, ptr %2285, align 1, !tbaa !15
  %2286 = load ptr, ptr %6, align 8, !tbaa !5
  %2287 = getelementptr inbounds %struct.htparser, ptr %2286, i32 0, i32 23
  %2288 = load ptr, ptr %6, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.htparser, ptr %2288, i32 0, i32 22
  %2290 = load i32, ptr %2289, align 8, !tbaa !16
  %2291 = zext i32 %2290 to i64
  %2292 = getelementptr inbounds [8192 x i8], ptr %2287, i64 0, i64 %2291
  store i8 0, ptr %2292, align 1, !tbaa !15
  %2293 = load ptr, ptr %6, align 8, !tbaa !5
  %2294 = getelementptr inbounds %struct.htparser, ptr %2293, i32 0, i32 1
  store i32 30, ptr %2294, align 4, !tbaa !18
  br label %2295

2295:                                             ; preds = %2276, %2251, %2248
  br label %3060

2296:                                             ; preds = %61
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  store i32 0, ptr %14, align 4, !tbaa !33
  store i32 0, ptr %13, align 4, !tbaa !33
  %2300 = load i8, ptr %10, align 1, !tbaa !15
  %2301 = zext i8 %2300 to i32
  switch i32 %2301, label %2495 [
    i32 13, label %2302
    i32 10, label %2490
  ]

2302:                                             ; preds = %2299
  %2303 = load ptr, ptr %6, align 8, !tbaa !5
  %2304 = getelementptr inbounds %struct.htparser, ptr %2303, i32 0, i32 3
  %2305 = load i32, ptr %2304, align 4, !tbaa !36
  switch i32 %2305, label %2486 [
    i32 0, label %2487
    i32 5, label %2306
    i32 3, label %2317
    i32 1, label %2344
    i32 4, label %2412
    i32 6, label %2453
    i32 2, label %2485
  ]

2306:                                             ; preds = %2302
  %2307 = load ptr, ptr %6, align 8, !tbaa !5
  %2308 = load ptr, ptr %7, align 8, !tbaa !5
  %2309 = load ptr, ptr %6, align 8, !tbaa !5
  %2310 = getelementptr inbounds %struct.htparser, ptr %2309, i32 0, i32 23
  %2311 = getelementptr inbounds [8192 x i8], ptr %2310, i64 0, i64 0
  %2312 = load ptr, ptr %6, align 8, !tbaa !5
  %2313 = getelementptr inbounds %struct.htparser, ptr %2312, i32 0, i32 22
  %2314 = load i32, ptr %2313, align 8, !tbaa !16
  %2315 = zext i32 %2314 to i64
  %2316 = call i32 @hook_hostname_run(ptr noundef %2307, ptr noundef %2308, ptr noundef %2311, i64 noundef %2315)
  store i32 %2316, ptr %13, align 4, !tbaa !33
  br label %2487

2317:                                             ; preds = %2302
  %2318 = load ptr, ptr %6, align 8, !tbaa !5
  %2319 = getelementptr inbounds %struct.htparser, ptr %2318, i32 0, i32 23
  %2320 = getelementptr inbounds [8192 x i8], ptr %2319, i64 0, i64 0
  %2321 = load ptr, ptr %6, align 8, !tbaa !5
  %2322 = getelementptr inbounds %struct.htparser, ptr %2321, i32 0, i32 22
  %2323 = load i32, ptr %2322, align 8, !tbaa !16
  %2324 = zext i32 %2323 to i64
  %2325 = call i64 @str_to_uint64(ptr noundef %2320, i64 noundef %2324, ptr noundef %14)
  %2326 = load ptr, ptr %6, align 8, !tbaa !5
  %2327 = getelementptr inbounds %struct.htparser, ptr %2326, i32 0, i32 10
  store i64 %2325, ptr %2327, align 8, !tbaa !24
  %2328 = load ptr, ptr %6, align 8, !tbaa !5
  %2329 = getelementptr inbounds %struct.htparser, ptr %2328, i32 0, i32 10
  %2330 = load i64, ptr %2329, align 8, !tbaa !24
  %2331 = load ptr, ptr %6, align 8, !tbaa !5
  %2332 = getelementptr inbounds %struct.htparser, ptr %2331, i32 0, i32 11
  store i64 %2330, ptr %2332, align 8, !tbaa !25
  br label %2333

2333:                                             ; preds = %2317
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334
  %2336 = load i32, ptr %14, align 4, !tbaa !33
  %2337 = icmp eq i32 %2336, 1
  br i1 %2337, label %2338, label %2343

2338:                                             ; preds = %2335
  %2339 = load ptr, ptr %6, align 8, !tbaa !5
  %2340 = getelementptr inbounds %struct.htparser, ptr %2339, i32 0, i32 0
  store i32 1, ptr %2340, align 8, !tbaa !11
  %2341 = load i64, ptr %12, align 8, !tbaa !9
  %2342 = add i64 %2341, 1
  store i64 %2342, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2343:                                             ; preds = %2335
  br label %2487

2344:                                             ; preds = %2302
  %2345 = load ptr, ptr %6, align 8, !tbaa !5
  %2346 = getelementptr inbounds %struct.htparser, ptr %2345, i32 0, i32 23
  %2347 = getelementptr inbounds [8192 x i8], ptr %2346, i64 0, i64 0
  %2348 = load i8, ptr %2347, align 4, !tbaa !15
  %2349 = sext i8 %2348 to i32
  switch i32 %2349, label %2411 [
    i32 75, label %2350
    i32 107, label %2350
    i32 99, label %2386
    i32 67, label %2386
  ]

2350:                                             ; preds = %2344, %2344
  %2351 = load ptr, ptr %6, align 8, !tbaa !5
  %2352 = getelementptr inbounds %struct.htparser, ptr %2351, i32 0, i32 22
  %2353 = load i32, ptr %2352, align 8, !tbaa !16
  %2354 = icmp ne i32 %2353, 10
  br i1 %2354, label %2355, label %2356

2355:                                             ; preds = %2350
  br label %2411

2356:                                             ; preds = %2350
  %2357 = load ptr, ptr %6, align 8, !tbaa !5
  %2358 = getelementptr inbounds %struct.htparser, ptr %2357, i32 0, i32 23
  %2359 = getelementptr inbounds [8192 x i8], ptr %2358, i64 0, i64 0
  %2360 = getelementptr inbounds i8, ptr %2359, i64 1
  %2361 = load i32, ptr %2360, align 4, !tbaa !33
  %2362 = icmp eq i32 %2361, 762340709
  br i1 %2362, label %2363, label %2385

2363:                                             ; preds = %2356
  %2364 = load ptr, ptr %6, align 8, !tbaa !5
  %2365 = getelementptr inbounds %struct.htparser, ptr %2364, i32 0, i32 23
  %2366 = getelementptr inbounds [8192 x i8], ptr %2365, i64 0, i64 0
  %2367 = getelementptr inbounds i8, ptr %2366, i64 1
  %2368 = getelementptr inbounds i32, ptr %2367, i64 1
  %2369 = load i32, ptr %2368, align 4, !tbaa !33
  %2370 = icmp eq i32 %2369, 1986620481
  br i1 %2370, label %2371, label %2385

2371:                                             ; preds = %2363
  %2372 = load ptr, ptr %6, align 8, !tbaa !5
  %2373 = getelementptr inbounds %struct.htparser, ptr %2372, i32 0, i32 23
  %2374 = getelementptr inbounds [8192 x i8], ptr %2373, i64 0, i64 0
  %2375 = getelementptr inbounds i8, ptr %2374, i64 1
  %2376 = getelementptr inbounds i8, ptr %2375, i64 8
  %2377 = load i8, ptr %2376, align 1, !tbaa !15
  %2378 = sext i8 %2377 to i32
  %2379 = icmp eq i32 %2378, 101
  br i1 %2379, label %2380, label %2385

2380:                                             ; preds = %2371
  %2381 = load ptr, ptr %6, align 8, !tbaa !5
  %2382 = getelementptr inbounds %struct.htparser, ptr %2381, i32 0, i32 2
  %2383 = load i32, ptr %2382, align 8, !tbaa !19
  %2384 = or i32 %2383, 2
  store i32 %2384, ptr %2382, align 8, !tbaa !19
  br label %2385

2385:                                             ; preds = %2380, %2371, %2363, %2356
  br label %2411

2386:                                             ; preds = %2344, %2344
  %2387 = load ptr, ptr %6, align 8, !tbaa !5
  %2388 = getelementptr inbounds %struct.htparser, ptr %2387, i32 0, i32 22
  %2389 = load i32, ptr %2388, align 8, !tbaa !16
  %2390 = icmp ne i32 %2389, 5
  br i1 %2390, label %2391, label %2392

2391:                                             ; preds = %2386
  br label %2411

2392:                                             ; preds = %2386
  %2393 = load ptr, ptr %6, align 8, !tbaa !5
  %2394 = getelementptr inbounds %struct.htparser, ptr %2393, i32 0, i32 23
  %2395 = getelementptr inbounds [8192 x i8], ptr %2394, i64 0, i64 0
  %2396 = load i32, ptr %2395, align 4, !tbaa !33
  %2397 = icmp eq i32 %2396, 1936682083
  br i1 %2397, label %2398, label %2410

2398:                                             ; preds = %2392
  %2399 = load ptr, ptr %6, align 8, !tbaa !5
  %2400 = getelementptr inbounds %struct.htparser, ptr %2399, i32 0, i32 23
  %2401 = getelementptr inbounds [8192 x i8], ptr %2400, i64 0, i64 4
  %2402 = load i8, ptr %2401, align 4, !tbaa !15
  %2403 = sext i8 %2402 to i32
  %2404 = icmp eq i32 %2403, 101
  br i1 %2404, label %2405, label %2410

2405:                                             ; preds = %2398
  %2406 = load ptr, ptr %6, align 8, !tbaa !5
  %2407 = getelementptr inbounds %struct.htparser, ptr %2406, i32 0, i32 2
  %2408 = load i32, ptr %2407, align 8, !tbaa !19
  %2409 = or i32 %2408, 4
  store i32 %2409, ptr %2407, align 8, !tbaa !19
  br label %2410

2410:                                             ; preds = %2405, %2398, %2392
  br label %2411

2411:                                             ; preds = %2410, %2391, %2385, %2355, %2344
  br label %2487

2412:                                             ; preds = %2302
  %2413 = load ptr, ptr %6, align 8, !tbaa !5
  %2414 = getelementptr inbounds %struct.htparser, ptr %2413, i32 0, i32 22
  %2415 = load i32, ptr %2414, align 8, !tbaa !16
  %2416 = icmp ne i32 %2415, 7
  br i1 %2416, label %2417, label %2418

2417:                                             ; preds = %2412
  br label %2487

2418:                                             ; preds = %2412
  %2419 = load ptr, ptr %6, align 8, !tbaa !5
  %2420 = getelementptr inbounds %struct.htparser, ptr %2419, i32 0, i32 23
  %2421 = getelementptr inbounds [8192 x i8], ptr %2420, i64 0, i64 0
  %2422 = load i8, ptr %2421, align 4, !tbaa !15
  %2423 = sext i8 %2422 to i32
  switch i32 %2423, label %2452 [
    i32 99, label %2424
    i32 67, label %2424
  ]

2424:                                             ; preds = %2418, %2418
  %2425 = load ptr, ptr %6, align 8, !tbaa !5
  %2426 = getelementptr inbounds %struct.htparser, ptr %2425, i32 0, i32 22
  %2427 = load i32, ptr %2426, align 8, !tbaa !16
  %2428 = icmp ne i32 %2427, 7
  br i1 %2428, label %2429, label %2430

2429:                                             ; preds = %2424
  br label %2452

2430:                                             ; preds = %2424
  %2431 = load ptr, ptr %6, align 8, !tbaa !5
  %2432 = getelementptr inbounds %struct.htparser, ptr %2431, i32 0, i32 23
  %2433 = getelementptr inbounds [8192 x i8], ptr %2432, i64 0, i64 0
  %2434 = getelementptr inbounds i8, ptr %2433, i64 1
  %2435 = load i32, ptr %2434, align 4, !tbaa !33
  %2436 = icmp eq i32 %2435, 1802401128
  br i1 %2436, label %2437, label %2451

2437:                                             ; preds = %2430
  %2438 = load ptr, ptr %6, align 8, !tbaa !5
  %2439 = getelementptr inbounds %struct.htparser, ptr %2438, i32 0, i32 23
  %2440 = getelementptr inbounds [8192 x i8], ptr %2439, i64 0, i64 0
  %2441 = getelementptr inbounds i8, ptr %2440, i64 1
  %2442 = getelementptr inbounds i32, ptr %2441, i64 1
  %2443 = load i32, ptr %2442, align 4, !tbaa !33
  %2444 = and i32 %2443, 65535
  %2445 = icmp eq i32 %2444, 25701
  br i1 %2445, label %2446, label %2451

2446:                                             ; preds = %2437
  %2447 = load ptr, ptr %6, align 8, !tbaa !5
  %2448 = getelementptr inbounds %struct.htparser, ptr %2447, i32 0, i32 2
  %2449 = load i32, ptr %2448, align 8, !tbaa !19
  %2450 = or i32 %2449, 1
  store i32 %2450, ptr %2448, align 8, !tbaa !19
  br label %2451

2451:                                             ; preds = %2446, %2437, %2430
  br label %2452

2452:                                             ; preds = %2451, %2429, %2418
  br label %2487

2453:                                             ; preds = %2302
  %2454 = load ptr, ptr %6, align 8, !tbaa !5
  %2455 = getelementptr inbounds %struct.htparser, ptr %2454, i32 0, i32 22
  %2456 = load i32, ptr %2455, align 8, !tbaa !16
  %2457 = icmp ne i32 %2456, 9
  br i1 %2457, label %2458, label %2459

2458:                                             ; preds = %2453
  br label %2487

2459:                                             ; preds = %2453
  %2460 = load ptr, ptr %6, align 8, !tbaa !5
  %2461 = getelementptr inbounds %struct.htparser, ptr %2460, i32 0, i32 23
  %2462 = getelementptr inbounds [8192 x i8], ptr %2461, i64 0, i64 0
  %2463 = load i8, ptr %2462, align 4, !tbaa !15
  %2464 = sext i8 %2463 to i32
  switch i32 %2464, label %2484 [
    i32 109, label %2465
    i32 77, label %2465
  ]

2465:                                             ; preds = %2459, %2459
  %2466 = load ptr, ptr %6, align 8, !tbaa !5
  %2467 = getelementptr inbounds %struct.htparser, ptr %2466, i32 0, i32 23
  %2468 = getelementptr inbounds [8192 x i8], ptr %2467, i64 0, i64 0
  %2469 = getelementptr inbounds i8, ptr %2468, i64 1
  %2470 = load i32, ptr %2469, align 4, !tbaa !33
  %2471 = icmp eq i32 %2470, 1769237621
  br i1 %2471, label %2472, label %2483

2472:                                             ; preds = %2465
  %2473 = load ptr, ptr %6, align 8, !tbaa !5
  %2474 = getelementptr inbounds %struct.htparser, ptr %2473, i32 0, i32 23
  %2475 = getelementptr inbounds [8192 x i8], ptr %2474, i64 0, i64 0
  %2476 = getelementptr inbounds i8, ptr %2475, i64 1
  %2477 = getelementptr inbounds i32, ptr %2476, i64 1
  %2478 = load i32, ptr %2477, align 4, !tbaa !33
  %2479 = icmp eq i32 %2478, 1953653104
  br i1 %2479, label %2480, label %2483

2480:                                             ; preds = %2472
  %2481 = load ptr, ptr %6, align 8, !tbaa !5
  %2482 = getelementptr inbounds %struct.htparser, ptr %2481, i32 0, i32 7
  store i8 1, ptr %2482, align 4, !tbaa !21
  br label %2483

2483:                                             ; preds = %2480, %2472, %2465
  br label %2484

2484:                                             ; preds = %2483, %2459
  br label %2487

2485:                                             ; preds = %2302
  br label %2486

2486:                                             ; preds = %2485, %2302
  br label %2487

2487:                                             ; preds = %2486, %2484, %2458, %2452, %2417, %2411, %2343, %2306, %2302
  %2488 = load ptr, ptr %6, align 8, !tbaa !5
  %2489 = getelementptr inbounds %struct.htparser, ptr %2488, i32 0, i32 1
  store i32 26, ptr %2489, align 4, !tbaa !18
  br label %2512

2490:                                             ; preds = %2299
  %2491 = load ptr, ptr %6, align 8, !tbaa !5
  %2492 = getelementptr inbounds %struct.htparser, ptr %2491, i32 0, i32 0
  store i32 7, ptr %2492, align 8, !tbaa !11
  %2493 = load i64, ptr %12, align 8, !tbaa !9
  %2494 = add i64 %2493, 1
  store i64 %2494, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2495:                                             ; preds = %2299
  %2496 = load i8, ptr %10, align 1, !tbaa !15
  %2497 = load ptr, ptr %6, align 8, !tbaa !5
  %2498 = getelementptr inbounds %struct.htparser, ptr %2497, i32 0, i32 23
  %2499 = load ptr, ptr %6, align 8, !tbaa !5
  %2500 = getelementptr inbounds %struct.htparser, ptr %2499, i32 0, i32 22
  %2501 = load i32, ptr %2500, align 8, !tbaa !16
  %2502 = add i32 %2501, 1
  store i32 %2502, ptr %2500, align 8, !tbaa !16
  %2503 = zext i32 %2501 to i64
  %2504 = getelementptr inbounds [8192 x i8], ptr %2498, i64 0, i64 %2503
  store i8 %2496, ptr %2504, align 1, !tbaa !15
  %2505 = load ptr, ptr %6, align 8, !tbaa !5
  %2506 = getelementptr inbounds %struct.htparser, ptr %2505, i32 0, i32 23
  %2507 = load ptr, ptr %6, align 8, !tbaa !5
  %2508 = getelementptr inbounds %struct.htparser, ptr %2507, i32 0, i32 22
  %2509 = load i32, ptr %2508, align 8, !tbaa !16
  %2510 = zext i32 %2509 to i64
  %2511 = getelementptr inbounds [8192 x i8], ptr %2506, i64 0, i64 %2510
  store i8 0, ptr %2511, align 1, !tbaa !15
  br label %2512

2512:                                             ; preds = %2495, %2487
  %2513 = load i32, ptr %13, align 4, !tbaa !33
  %2514 = icmp ne i32 %2513, 0
  br i1 %2514, label %2515, label %2520

2515:                                             ; preds = %2512
  %2516 = load ptr, ptr %6, align 8, !tbaa !5
  %2517 = getelementptr inbounds %struct.htparser, ptr %2516, i32 0, i32 0
  store i32 11, ptr %2517, align 8, !tbaa !11
  %2518 = load i64, ptr %12, align 8, !tbaa !9
  %2519 = add i64 %2518, 1
  store i64 %2519, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2520:                                             ; preds = %2512
  br label %3060

2521:                                             ; preds = %61
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

2524:                                             ; preds = %2523
  store i32 0, ptr %13, align 4, !tbaa !33
  %2525 = load i8, ptr %10, align 1, !tbaa !15
  %2526 = zext i8 %2525 to i32
  switch i32 %2526, label %2542 [
    i32 10, label %2527
  ]

2527:                                             ; preds = %2524
  %2528 = load ptr, ptr %6, align 8, !tbaa !5
  %2529 = getelementptr inbounds %struct.htparser, ptr %2528, i32 0, i32 2
  %2530 = load i32, ptr %2529, align 8, !tbaa !19
  %2531 = and i32 %2530, 8
  %2532 = icmp ne i32 %2531, 0
  br i1 %2532, label %2533, label %2539

2533:                                             ; preds = %2527
  %2534 = load ptr, ptr %6, align 8, !tbaa !5
  %2535 = load ptr, ptr %7, align 8, !tbaa !5
  %2536 = call i32 @hook_on_msg_complete_run(ptr noundef %2534, ptr noundef %2535)
  store i32 %2536, ptr %13, align 4, !tbaa !33
  %2537 = load ptr, ptr %6, align 8, !tbaa !5
  %2538 = getelementptr inbounds %struct.htparser, ptr %2537, i32 0, i32 1
  store i32 0, ptr %2538, align 4, !tbaa !18
  br label %2547

2539:                                             ; preds = %2527
  %2540 = load ptr, ptr %6, align 8, !tbaa !5
  %2541 = getelementptr inbounds %struct.htparser, ptr %2540, i32 0, i32 1
  store i32 27, ptr %2541, align 4, !tbaa !18
  br label %2547

2542:                                             ; preds = %2524
  %2543 = load ptr, ptr %6, align 8, !tbaa !5
  %2544 = getelementptr inbounds %struct.htparser, ptr %2543, i32 0, i32 0
  store i32 7, ptr %2544, align 8, !tbaa !11
  %2545 = load i64, ptr %12, align 8, !tbaa !9
  %2546 = add i64 %2545, 1
  store i64 %2546, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2547:                                             ; preds = %2539, %2533
  %2548 = load i32, ptr %13, align 4, !tbaa !33
  %2549 = icmp ne i32 %2548, 0
  br i1 %2549, label %2550, label %2555

2550:                                             ; preds = %2547
  %2551 = load ptr, ptr %6, align 8, !tbaa !5
  %2552 = getelementptr inbounds %struct.htparser, ptr %2551, i32 0, i32 0
  store i32 11, ptr %2552, align 8, !tbaa !11
  %2553 = load i64, ptr %12, align 8, !tbaa !9
  %2554 = add i64 %2553, 1
  store i64 %2554, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2555:                                             ; preds = %2547
  br label %3060

2556:                                             ; preds = %61
  br label %2557

2557:                                             ; preds = %2556
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558
  %2560 = load i8, ptr %10, align 1, !tbaa !15
  %2561 = zext i8 %2560 to i32
  switch i32 %2561, label %2602 [
    i32 13, label %2562
    i32 10, label %2594
    i32 9, label %2599
  ]

2562:                                             ; preds = %2559
  %2563 = load ptr, ptr %6, align 8, !tbaa !5
  %2564 = load ptr, ptr %7, align 8, !tbaa !5
  %2565 = load ptr, ptr %6, align 8, !tbaa !5
  %2566 = getelementptr inbounds %struct.htparser, ptr %2565, i32 0, i32 23
  %2567 = getelementptr inbounds [8192 x i8], ptr %2566, i64 0, i64 0
  %2568 = load ptr, ptr %6, align 8, !tbaa !5
  %2569 = getelementptr inbounds %struct.htparser, ptr %2568, i32 0, i32 22
  %2570 = load i32, ptr %2569, align 8, !tbaa !16
  %2571 = zext i32 %2570 to i64
  %2572 = call i32 @hook_hdr_val_run(ptr noundef %2563, ptr noundef %2564, ptr noundef %2567, i64 noundef %2571)
  store i32 %2572, ptr %13, align 4, !tbaa !33
  %2573 = load ptr, ptr %6, align 8, !tbaa !5
  %2574 = getelementptr inbounds %struct.htparser, ptr %2573, i32 0, i32 1
  store i32 31, ptr %2574, align 4, !tbaa !18
  %2575 = load i32, ptr %13, align 4, !tbaa !33
  %2576 = icmp ne i32 %2575, 0
  br i1 %2576, label %2577, label %2582

2577:                                             ; preds = %2562
  %2578 = load ptr, ptr %6, align 8, !tbaa !5
  %2579 = getelementptr inbounds %struct.htparser, ptr %2578, i32 0, i32 0
  store i32 11, ptr %2579, align 8, !tbaa !11
  %2580 = load i64, ptr %12, align 8, !tbaa !9
  %2581 = add i64 %2580, 1
  store i64 %2581, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2582:                                             ; preds = %2562
  %2583 = load ptr, ptr %6, align 8, !tbaa !5
  %2584 = load ptr, ptr %7, align 8, !tbaa !5
  %2585 = call i32 @hook_on_hdrs_complete_run(ptr noundef %2583, ptr noundef %2584)
  store i32 %2585, ptr %13, align 4, !tbaa !33
  %2586 = load i32, ptr %13, align 4, !tbaa !33
  %2587 = icmp ne i32 %2586, 0
  br i1 %2587, label %2588, label %2593

2588:                                             ; preds = %2582
  %2589 = load ptr, ptr %6, align 8, !tbaa !5
  %2590 = getelementptr inbounds %struct.htparser, ptr %2589, i32 0, i32 0
  store i32 11, ptr %2590, align 8, !tbaa !11
  %2591 = load i64, ptr %12, align 8, !tbaa !9
  %2592 = add i64 %2591, 1
  store i64 %2592, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2593:                                             ; preds = %2582
  br label %2641

2594:                                             ; preds = %2559
  %2595 = load ptr, ptr %6, align 8, !tbaa !5
  %2596 = getelementptr inbounds %struct.htparser, ptr %2595, i32 0, i32 0
  store i32 7, ptr %2596, align 8, !tbaa !11
  %2597 = load i64, ptr %12, align 8, !tbaa !9
  %2598 = add i64 %2597, 1
  store i64 %2598, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2599:                                             ; preds = %2559
  %2600 = load ptr, ptr %6, align 8, !tbaa !5
  %2601 = getelementptr inbounds %struct.htparser, ptr %2600, i32 0, i32 1
  store i32 30, ptr %2601, align 4, !tbaa !18
  br label %2641

2602:                                             ; preds = %2559
  %2603 = load ptr, ptr %6, align 8, !tbaa !5
  %2604 = load ptr, ptr %7, align 8, !tbaa !5
  %2605 = load ptr, ptr %6, align 8, !tbaa !5
  %2606 = getelementptr inbounds %struct.htparser, ptr %2605, i32 0, i32 23
  %2607 = getelementptr inbounds [8192 x i8], ptr %2606, i64 0, i64 0
  %2608 = load ptr, ptr %6, align 8, !tbaa !5
  %2609 = getelementptr inbounds %struct.htparser, ptr %2608, i32 0, i32 22
  %2610 = load i32, ptr %2609, align 8, !tbaa !16
  %2611 = zext i32 %2610 to i64
  %2612 = call i32 @hook_hdr_val_run(ptr noundef %2603, ptr noundef %2604, ptr noundef %2607, i64 noundef %2611)
  store i32 %2612, ptr %13, align 4, !tbaa !33
  %2613 = load ptr, ptr %6, align 8, !tbaa !5
  %2614 = getelementptr inbounds %struct.htparser, ptr %2613, i32 0, i32 22
  store i32 0, ptr %2614, align 8, !tbaa !16
  %2615 = load i8, ptr %10, align 1, !tbaa !15
  %2616 = load ptr, ptr %6, align 8, !tbaa !5
  %2617 = getelementptr inbounds %struct.htparser, ptr %2616, i32 0, i32 23
  %2618 = load ptr, ptr %6, align 8, !tbaa !5
  %2619 = getelementptr inbounds %struct.htparser, ptr %2618, i32 0, i32 22
  %2620 = load i32, ptr %2619, align 8, !tbaa !16
  %2621 = add i32 %2620, 1
  store i32 %2621, ptr %2619, align 8, !tbaa !16
  %2622 = zext i32 %2620 to i64
  %2623 = getelementptr inbounds [8192 x i8], ptr %2617, i64 0, i64 %2622
  store i8 %2615, ptr %2623, align 1, !tbaa !15
  %2624 = load ptr, ptr %6, align 8, !tbaa !5
  %2625 = getelementptr inbounds %struct.htparser, ptr %2624, i32 0, i32 23
  %2626 = load ptr, ptr %6, align 8, !tbaa !5
  %2627 = getelementptr inbounds %struct.htparser, ptr %2626, i32 0, i32 22
  %2628 = load i32, ptr %2627, align 8, !tbaa !16
  %2629 = zext i32 %2628 to i64
  %2630 = getelementptr inbounds [8192 x i8], ptr %2625, i64 0, i64 %2629
  store i8 0, ptr %2630, align 1, !tbaa !15
  %2631 = load ptr, ptr %6, align 8, !tbaa !5
  %2632 = getelementptr inbounds %struct.htparser, ptr %2631, i32 0, i32 1
  store i32 28, ptr %2632, align 4, !tbaa !18
  %2633 = load i32, ptr %13, align 4, !tbaa !33
  %2634 = icmp ne i32 %2633, 0
  br i1 %2634, label %2635, label %2640

2635:                                             ; preds = %2602
  %2636 = load ptr, ptr %6, align 8, !tbaa !5
  %2637 = getelementptr inbounds %struct.htparser, ptr %2636, i32 0, i32 0
  store i32 11, ptr %2637, align 8, !tbaa !11
  %2638 = load i64, ptr %12, align 8, !tbaa !9
  %2639 = add i64 %2638, 1
  store i64 %2639, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2640:                                             ; preds = %2602
  br label %2641

2641:                                             ; preds = %2640, %2599, %2593
  br label %3060

2642:                                             ; preds = %61
  br label %2643

2643:                                             ; preds = %2642
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

2645:                                             ; preds = %2644
  store i32 0, ptr %13, align 4, !tbaa !33
  %2646 = load i8, ptr %10, align 1, !tbaa !15
  %2647 = zext i8 %2646 to i32
  switch i32 %2647, label %2708 [
    i32 10, label %2648
  ]

2648:                                             ; preds = %2645
  %2649 = load ptr, ptr %6, align 8, !tbaa !5
  %2650 = getelementptr inbounds %struct.htparser, ptr %2649, i32 0, i32 22
  store i32 0, ptr %2650, align 8, !tbaa !16
  br label %2651

2651:                                             ; preds = %2648
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

2653:                                             ; preds = %2652
  %2654 = load ptr, ptr %6, align 8, !tbaa !5
  %2655 = getelementptr inbounds %struct.htparser, ptr %2654, i32 0, i32 2
  %2656 = load i32, ptr %2655, align 8, !tbaa !19
  %2657 = and i32 %2656, 8
  %2658 = icmp ne i32 %2657, 0
  br i1 %2658, label %2659, label %2665

2659:                                             ; preds = %2653
  %2660 = load ptr, ptr %6, align 8, !tbaa !5
  %2661 = load ptr, ptr %7, align 8, !tbaa !5
  %2662 = call i32 @hook_on_msg_complete_run(ptr noundef %2660, ptr noundef %2661)
  store i32 %2662, ptr %13, align 4, !tbaa !33
  %2663 = load ptr, ptr %6, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.htparser, ptr %2663, i32 0, i32 1
  store i32 0, ptr %2664, align 4, !tbaa !18
  br label %2699

2665:                                             ; preds = %2653
  %2666 = load ptr, ptr %6, align 8, !tbaa !5
  %2667 = getelementptr inbounds %struct.htparser, ptr %2666, i32 0, i32 2
  %2668 = load i32, ptr %2667, align 8, !tbaa !19
  %2669 = and i32 %2668, 1
  %2670 = icmp ne i32 %2669, 0
  br i1 %2670, label %2671, label %2674

2671:                                             ; preds = %2665
  %2672 = load ptr, ptr %6, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.htparser, ptr %2672, i32 0, i32 1
  store i32 34, ptr %2673, align 4, !tbaa !18
  br label %2698

2674:                                             ; preds = %2665
  %2675 = load ptr, ptr %6, align 8, !tbaa !5
  %2676 = getelementptr inbounds %struct.htparser, ptr %2675, i32 0, i32 10
  %2677 = load i64, ptr %2676, align 8, !tbaa !24
  %2678 = icmp ugt i64 %2677, 0
  br i1 %2678, label %2679, label %2682

2679:                                             ; preds = %2674
  %2680 = load ptr, ptr %6, align 8, !tbaa !5
  %2681 = getelementptr inbounds %struct.htparser, ptr %2680, i32 0, i32 1
  store i32 33, ptr %2681, align 4, !tbaa !18
  br label %2697

2682:                                             ; preds = %2674
  %2683 = load ptr, ptr %6, align 8, !tbaa !5
  %2684 = getelementptr inbounds %struct.htparser, ptr %2683, i32 0, i32 10
  %2685 = load i64, ptr %2684, align 8, !tbaa !24
  %2686 = icmp eq i64 %2685, 0
  br i1 %2686, label %2687, label %2693

2687:                                             ; preds = %2682
  %2688 = load ptr, ptr %6, align 8, !tbaa !5
  %2689 = load ptr, ptr %7, align 8, !tbaa !5
  %2690 = call i32 @hook_on_msg_complete_run(ptr noundef %2688, ptr noundef %2689)
  store i32 %2690, ptr %13, align 4, !tbaa !33
  %2691 = load ptr, ptr %6, align 8, !tbaa !5
  %2692 = getelementptr inbounds %struct.htparser, ptr %2691, i32 0, i32 1
  store i32 0, ptr %2692, align 4, !tbaa !18
  br label %2696

2693:                                             ; preds = %2682
  %2694 = load ptr, ptr %6, align 8, !tbaa !5
  %2695 = getelementptr inbounds %struct.htparser, ptr %2694, i32 0, i32 1
  store i32 32, ptr %2695, align 4, !tbaa !18
  br label %2696

2696:                                             ; preds = %2693, %2687
  br label %2697

2697:                                             ; preds = %2696, %2679
  br label %2698

2698:                                             ; preds = %2697, %2671
  br label %2699

2699:                                             ; preds = %2698, %2659
  %2700 = load i32, ptr %13, align 4, !tbaa !33
  %2701 = icmp ne i32 %2700, 0
  br i1 %2701, label %2702, label %2707

2702:                                             ; preds = %2699
  %2703 = load ptr, ptr %6, align 8, !tbaa !5
  %2704 = getelementptr inbounds %struct.htparser, ptr %2703, i32 0, i32 0
  store i32 11, ptr %2704, align 8, !tbaa !11
  %2705 = load i64, ptr %12, align 8, !tbaa !9
  %2706 = add i64 %2705, 1
  store i64 %2706, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2707:                                             ; preds = %2699
  br label %2713

2708:                                             ; preds = %2645
  %2709 = load ptr, ptr %6, align 8, !tbaa !5
  %2710 = getelementptr inbounds %struct.htparser, ptr %2709, i32 0, i32 0
  store i32 7, ptr %2710, align 8, !tbaa !11
  %2711 = load i64, ptr %12, align 8, !tbaa !9
  %2712 = add i64 %2711, 1
  store i64 %2712, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2713:                                             ; preds = %2707
  %2714 = load i32, ptr %13, align 4, !tbaa !33
  %2715 = icmp ne i32 %2714, 0
  br i1 %2715, label %2716, label %2721

2716:                                             ; preds = %2713
  %2717 = load ptr, ptr %6, align 8, !tbaa !5
  %2718 = getelementptr inbounds %struct.htparser, ptr %2717, i32 0, i32 0
  store i32 11, ptr %2718, align 8, !tbaa !11
  %2719 = load i64, ptr %12, align 8, !tbaa !9
  %2720 = add i64 %2719, 1
  store i64 %2720, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2721:                                             ; preds = %2713
  br label %3060

2722:                                             ; preds = %61
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

2725:                                             ; preds = %2724
  store i32 0, ptr %13, align 4, !tbaa !33
  %2726 = load ptr, ptr %6, align 8, !tbaa !5
  %2727 = getelementptr inbounds %struct.htparser, ptr %2726, i32 0, i32 2
  %2728 = load i32, ptr %2727, align 8, !tbaa !19
  %2729 = and i32 %2728, 8
  %2730 = icmp ne i32 %2729, 0
  br i1 %2730, label %2731, label %2737

2731:                                             ; preds = %2725
  %2732 = load ptr, ptr %6, align 8, !tbaa !5
  %2733 = load ptr, ptr %7, align 8, !tbaa !5
  %2734 = call i32 @hook_on_msg_complete_run(ptr noundef %2732, ptr noundef %2733)
  store i32 %2734, ptr %13, align 4, !tbaa !33
  %2735 = load ptr, ptr %6, align 8, !tbaa !5
  %2736 = getelementptr inbounds %struct.htparser, ptr %2735, i32 0, i32 1
  store i32 0, ptr %2736, align 4, !tbaa !18
  br label %3060

2737:                                             ; preds = %2725
  %2738 = load ptr, ptr %6, align 8, !tbaa !5
  %2739 = getelementptr inbounds %struct.htparser, ptr %2738, i32 0, i32 2
  %2740 = load i32, ptr %2739, align 8, !tbaa !19
  %2741 = and i32 %2740, 1
  %2742 = icmp ne i32 %2741, 0
  br i1 %2742, label %2743, label %2748

2743:                                             ; preds = %2737
  %2744 = load ptr, ptr %6, align 8, !tbaa !5
  %2745 = getelementptr inbounds %struct.htparser, ptr %2744, i32 0, i32 1
  store i32 34, ptr %2745, align 4, !tbaa !18
  %2746 = load i64, ptr %12, align 8, !tbaa !9
  %2747 = add i64 %2746, -1
  store i64 %2747, ptr %12, align 8, !tbaa !9
  br label %2771

2748:                                             ; preds = %2737
  %2749 = load ptr, ptr %6, align 8, !tbaa !5
  %2750 = getelementptr inbounds %struct.htparser, ptr %2749, i32 0, i32 10
  %2751 = load i64, ptr %2750, align 8, !tbaa !24
  %2752 = icmp ugt i64 %2751, 0
  br i1 %2752, label %2753, label %2758

2753:                                             ; preds = %2748
  %2754 = load ptr, ptr %6, align 8, !tbaa !5
  %2755 = getelementptr inbounds %struct.htparser, ptr %2754, i32 0, i32 1
  store i32 33, ptr %2755, align 4, !tbaa !18
  %2756 = load i64, ptr %12, align 8, !tbaa !9
  %2757 = add i64 %2756, -1
  store i64 %2757, ptr %12, align 8, !tbaa !9
  br label %2770

2758:                                             ; preds = %2748
  %2759 = load ptr, ptr %6, align 8, !tbaa !5
  %2760 = getelementptr inbounds %struct.htparser, ptr %2759, i32 0, i32 10
  %2761 = load i64, ptr %2760, align 8, !tbaa !24
  %2762 = icmp eq i64 %2761, 0
  br i1 %2762, label %2763, label %2769

2763:                                             ; preds = %2758
  %2764 = load ptr, ptr %6, align 8, !tbaa !5
  %2765 = load ptr, ptr %7, align 8, !tbaa !5
  %2766 = call i32 @hook_on_msg_complete_run(ptr noundef %2764, ptr noundef %2765)
  store i32 %2766, ptr %13, align 4, !tbaa !33
  %2767 = load ptr, ptr %6, align 8, !tbaa !5
  %2768 = getelementptr inbounds %struct.htparser, ptr %2767, i32 0, i32 1
  store i32 0, ptr %2768, align 4, !tbaa !18
  br label %2769

2769:                                             ; preds = %2763, %2758
  br label %2770

2770:                                             ; preds = %2769, %2753
  br label %2771

2771:                                             ; preds = %2770, %2743
  br label %2772

2772:                                             ; preds = %2771
  %2773 = load i32, ptr %13, align 4, !tbaa !33
  %2774 = icmp ne i32 %2773, 0
  br i1 %2774, label %2775, label %2780

2775:                                             ; preds = %2772
  %2776 = load ptr, ptr %6, align 8, !tbaa !5
  %2777 = getelementptr inbounds %struct.htparser, ptr %2776, i32 0, i32 0
  store i32 11, ptr %2777, align 8, !tbaa !11
  %2778 = load i64, ptr %12, align 8, !tbaa !9
  %2779 = add i64 %2778, 1
  store i64 %2779, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2780:                                             ; preds = %2772
  br label %3060

2781:                                             ; preds = %61
  %2782 = load i8, ptr %10, align 1, !tbaa !15
  %2783 = zext i8 %2782 to i64
  %2784 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %2783
  %2785 = load i8, ptr %2784, align 1, !tbaa !15
  store i8 %2785, ptr %11, align 1, !tbaa !15
  %2786 = load i8, ptr %11, align 1, !tbaa !15
  %2787 = sext i8 %2786 to i32
  %2788 = icmp eq i32 %2787, -1
  br i1 %2788, label %2789, label %2794

2789:                                             ; preds = %2781
  %2790 = load ptr, ptr %6, align 8, !tbaa !5
  %2791 = getelementptr inbounds %struct.htparser, ptr %2790, i32 0, i32 0
  store i32 8, ptr %2791, align 8, !tbaa !11
  %2792 = load i64, ptr %12, align 8, !tbaa !9
  %2793 = add i64 %2792, 1
  store i64 %2793, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2794:                                             ; preds = %2781
  %2795 = load i8, ptr %11, align 1, !tbaa !15
  %2796 = sext i8 %2795 to i64
  %2797 = load ptr, ptr %6, align 8, !tbaa !5
  %2798 = getelementptr inbounds %struct.htparser, ptr %2797, i32 0, i32 10
  store i64 %2796, ptr %2798, align 8, !tbaa !24
  %2799 = load ptr, ptr %6, align 8, !tbaa !5
  %2800 = getelementptr inbounds %struct.htparser, ptr %2799, i32 0, i32 1
  store i32 35, ptr %2800, align 4, !tbaa !18
  br label %3060

2801:                                             ; preds = %61
  %2802 = load i8, ptr %10, align 1, !tbaa !15
  %2803 = zext i8 %2802 to i32
  %2804 = icmp eq i32 %2803, 13
  br i1 %2804, label %2805, label %2808

2805:                                             ; preds = %2801
  %2806 = load ptr, ptr %6, align 8, !tbaa !5
  %2807 = getelementptr inbounds %struct.htparser, ptr %2806, i32 0, i32 1
  store i32 36, ptr %2807, align 4, !tbaa !18
  br label %3060

2808:                                             ; preds = %2801
  %2809 = load i8, ptr %10, align 1, !tbaa !15
  %2810 = zext i8 %2809 to i64
  %2811 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %2810
  %2812 = load i8, ptr %2811, align 1, !tbaa !15
  store i8 %2812, ptr %11, align 1, !tbaa !15
  %2813 = load i8, ptr %11, align 1, !tbaa !15
  %2814 = sext i8 %2813 to i32
  %2815 = icmp eq i32 %2814, -1
  br i1 %2815, label %2816, label %2821

2816:                                             ; preds = %2808
  %2817 = load ptr, ptr %6, align 8, !tbaa !5
  %2818 = getelementptr inbounds %struct.htparser, ptr %2817, i32 0, i32 0
  store i32 8, ptr %2818, align 8, !tbaa !11
  %2819 = load i64, ptr %12, align 8, !tbaa !9
  %2820 = add i64 %2819, 1
  store i64 %2820, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2821:                                             ; preds = %2808
  %2822 = load ptr, ptr %6, align 8, !tbaa !5
  %2823 = getelementptr inbounds %struct.htparser, ptr %2822, i32 0, i32 10
  %2824 = load i64, ptr %2823, align 8, !tbaa !24
  %2825 = mul i64 %2824, 16
  store i64 %2825, ptr %2823, align 8, !tbaa !24
  %2826 = load i8, ptr %11, align 1, !tbaa !15
  %2827 = sext i8 %2826 to i64
  %2828 = load ptr, ptr %6, align 8, !tbaa !5
  %2829 = getelementptr inbounds %struct.htparser, ptr %2828, i32 0, i32 10
  %2830 = load i64, ptr %2829, align 8, !tbaa !24
  %2831 = add i64 %2830, %2827
  store i64 %2831, ptr %2829, align 8, !tbaa !24
  br label %3060

2832:                                             ; preds = %61
  store i32 0, ptr %13, align 4, !tbaa !33
  %2833 = load i8, ptr %10, align 1, !tbaa !15
  %2834 = zext i8 %2833 to i32
  %2835 = icmp ne i32 %2834, 10
  br i1 %2835, label %2836, label %2841

2836:                                             ; preds = %2832
  %2837 = load ptr, ptr %6, align 8, !tbaa !5
  %2838 = getelementptr inbounds %struct.htparser, ptr %2837, i32 0, i32 0
  store i32 8, ptr %2838, align 8, !tbaa !11
  %2839 = load i64, ptr %12, align 8, !tbaa !9
  %2840 = add i64 %2839, 1
  store i64 %2840, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2841:                                             ; preds = %2832
  %2842 = load ptr, ptr %6, align 8, !tbaa !5
  %2843 = getelementptr inbounds %struct.htparser, ptr %2842, i32 0, i32 10
  %2844 = load i64, ptr %2843, align 8, !tbaa !24
  %2845 = load ptr, ptr %6, align 8, !tbaa !5
  %2846 = getelementptr inbounds %struct.htparser, ptr %2845, i32 0, i32 11
  store i64 %2844, ptr %2846, align 8, !tbaa !25
  %2847 = load ptr, ptr %6, align 8, !tbaa !5
  %2848 = getelementptr inbounds %struct.htparser, ptr %2847, i32 0, i32 10
  %2849 = load i64, ptr %2848, align 8, !tbaa !24
  %2850 = icmp eq i64 %2849, 0
  br i1 %2850, label %2851, label %2861

2851:                                             ; preds = %2841
  %2852 = load ptr, ptr %6, align 8, !tbaa !5
  %2853 = load ptr, ptr %7, align 8, !tbaa !5
  %2854 = call i32 @hook_on_chunks_complete_run(ptr noundef %2852, ptr noundef %2853)
  store i32 %2854, ptr %13, align 4, !tbaa !33
  %2855 = load ptr, ptr %6, align 8, !tbaa !5
  %2856 = getelementptr inbounds %struct.htparser, ptr %2855, i32 0, i32 2
  %2857 = load i32, ptr %2856, align 8, !tbaa !19
  %2858 = or i32 %2857, 8
  store i32 %2858, ptr %2856, align 8, !tbaa !19
  %2859 = load ptr, ptr %6, align 8, !tbaa !5
  %2860 = getelementptr inbounds %struct.htparser, ptr %2859, i32 0, i32 1
  store i32 25, ptr %2860, align 4, !tbaa !18
  br label %2867

2861:                                             ; preds = %2841
  %2862 = load ptr, ptr %6, align 8, !tbaa !5
  %2863 = load ptr, ptr %7, align 8, !tbaa !5
  %2864 = call i32 @hook_on_new_chunk_run(ptr noundef %2862, ptr noundef %2863)
  store i32 %2864, ptr %13, align 4, !tbaa !33
  %2865 = load ptr, ptr %6, align 8, !tbaa !5
  %2866 = getelementptr inbounds %struct.htparser, ptr %2865, i32 0, i32 1
  store i32 37, ptr %2866, align 4, !tbaa !18
  br label %2867

2867:                                             ; preds = %2861, %2851
  %2868 = load i32, ptr %13, align 4, !tbaa !33
  %2869 = icmp ne i32 %2868, 0
  br i1 %2869, label %2870, label %2875

2870:                                             ; preds = %2867
  %2871 = load ptr, ptr %6, align 8, !tbaa !5
  %2872 = getelementptr inbounds %struct.htparser, ptr %2871, i32 0, i32 0
  store i32 11, ptr %2872, align 8, !tbaa !11
  %2873 = load i64, ptr %12, align 8, !tbaa !9
  %2874 = add i64 %2873, 1
  store i64 %2874, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2875:                                             ; preds = %2867
  br label %3060

2876:                                             ; preds = %61
  store i32 0, ptr %13, align 4, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  %2877 = load ptr, ptr %8, align 8, !tbaa !5
  %2878 = load i64, ptr %12, align 8, !tbaa !9
  %2879 = getelementptr inbounds i8, ptr %2877, i64 %2878
  store ptr %2879, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  %2880 = load ptr, ptr %8, align 8, !tbaa !5
  %2881 = load i64, ptr %9, align 8, !tbaa !9
  %2882 = getelementptr inbounds i8, ptr %2880, i64 %2881
  store ptr %2882, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  %2883 = load ptr, ptr %24, align 8, !tbaa !5
  %2884 = load ptr, ptr %23, align 8, !tbaa !5
  %2885 = ptrtoint ptr %2883 to i64
  %2886 = ptrtoint ptr %2884 to i64
  %2887 = sub i64 %2885, %2886
  %2888 = load ptr, ptr %6, align 8, !tbaa !5
  %2889 = getelementptr inbounds %struct.htparser, ptr %2888, i32 0, i32 10
  %2890 = load i64, ptr %2889, align 8, !tbaa !24
  %2891 = icmp ult i64 %2887, %2890
  br i1 %2891, label %2892, label %2898

2892:                                             ; preds = %2876
  %2893 = load ptr, ptr %24, align 8, !tbaa !5
  %2894 = load ptr, ptr %23, align 8, !tbaa !5
  %2895 = ptrtoint ptr %2893 to i64
  %2896 = ptrtoint ptr %2894 to i64
  %2897 = sub i64 %2895, %2896
  br label %2902

2898:                                             ; preds = %2876
  %2899 = load ptr, ptr %6, align 8, !tbaa !5
  %2900 = getelementptr inbounds %struct.htparser, ptr %2899, i32 0, i32 10
  %2901 = load i64, ptr %2900, align 8, !tbaa !24
  br label %2902

2902:                                             ; preds = %2898, %2892
  %2903 = phi i64 [ %2897, %2892 ], [ %2901, %2898 ]
  store i64 %2903, ptr %25, align 8, !tbaa !9
  %2904 = load i64, ptr %25, align 8, !tbaa !9
  %2905 = icmp ugt i64 %2904, 0
  br i1 %2905, label %2906, label %2916

2906:                                             ; preds = %2902
  %2907 = load ptr, ptr %6, align 8, !tbaa !5
  %2908 = load ptr, ptr %7, align 8, !tbaa !5
  %2909 = load ptr, ptr %23, align 8, !tbaa !5
  %2910 = load i64, ptr %25, align 8, !tbaa !9
  %2911 = call i32 @hook_body_run(ptr noundef %2907, ptr noundef %2908, ptr noundef %2909, i64 noundef %2910)
  store i32 %2911, ptr %13, align 4, !tbaa !33
  %2912 = load i64, ptr %25, align 8, !tbaa !9
  %2913 = sub i64 %2912, 1
  %2914 = load i64, ptr %12, align 8, !tbaa !9
  %2915 = add i64 %2914, %2913
  store i64 %2915, ptr %12, align 8, !tbaa !9
  br label %2916

2916:                                             ; preds = %2906, %2902
  %2917 = load i64, ptr %25, align 8, !tbaa !9
  %2918 = load ptr, ptr %6, align 8, !tbaa !5
  %2919 = getelementptr inbounds %struct.htparser, ptr %2918, i32 0, i32 10
  %2920 = load i64, ptr %2919, align 8, !tbaa !24
  %2921 = icmp eq i64 %2917, %2920
  br i1 %2921, label %2922, label %2925

2922:                                             ; preds = %2916
  %2923 = load ptr, ptr %6, align 8, !tbaa !5
  %2924 = getelementptr inbounds %struct.htparser, ptr %2923, i32 0, i32 1
  store i32 38, ptr %2924, align 4, !tbaa !18
  br label %2925

2925:                                             ; preds = %2922, %2916
  %2926 = load i64, ptr %25, align 8, !tbaa !9
  %2927 = load ptr, ptr %6, align 8, !tbaa !5
  %2928 = getelementptr inbounds %struct.htparser, ptr %2927, i32 0, i32 10
  %2929 = load i64, ptr %2928, align 8, !tbaa !24
  %2930 = sub i64 %2929, %2926
  store i64 %2930, ptr %2928, align 8, !tbaa !24
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  %2931 = load i32, ptr %13, align 4, !tbaa !33
  %2932 = icmp ne i32 %2931, 0
  br i1 %2932, label %2933, label %2938

2933:                                             ; preds = %2925
  %2934 = load ptr, ptr %6, align 8, !tbaa !5
  %2935 = getelementptr inbounds %struct.htparser, ptr %2934, i32 0, i32 0
  store i32 11, ptr %2935, align 8, !tbaa !11
  %2936 = load i64, ptr %12, align 8, !tbaa !9
  %2937 = add i64 %2936, 1
  store i64 %2937, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2938:                                             ; preds = %2925
  br label %3060

2939:                                             ; preds = %61
  %2940 = load i8, ptr %10, align 1, !tbaa !15
  %2941 = zext i8 %2940 to i32
  %2942 = icmp ne i32 %2941, 13
  br i1 %2942, label %2943, label %2948

2943:                                             ; preds = %2939
  %2944 = load ptr, ptr %6, align 8, !tbaa !5
  %2945 = getelementptr inbounds %struct.htparser, ptr %2944, i32 0, i32 0
  store i32 9, ptr %2945, align 8, !tbaa !11
  %2946 = load i64, ptr %12, align 8, !tbaa !9
  %2947 = add i64 %2946, 1
  store i64 %2947, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2948:                                             ; preds = %2939
  %2949 = load ptr, ptr %6, align 8, !tbaa !5
  %2950 = getelementptr inbounds %struct.htparser, ptr %2949, i32 0, i32 1
  store i32 39, ptr %2950, align 4, !tbaa !18
  br label %3060

2951:                                             ; preds = %61
  %2952 = load i8, ptr %10, align 1, !tbaa !15
  %2953 = zext i8 %2952 to i32
  %2954 = icmp ne i32 %2953, 10
  br i1 %2954, label %2955, label %2960

2955:                                             ; preds = %2951
  %2956 = load ptr, ptr %6, align 8, !tbaa !5
  %2957 = getelementptr inbounds %struct.htparser, ptr %2956, i32 0, i32 0
  store i32 9, ptr %2957, align 8, !tbaa !11
  %2958 = load i64, ptr %12, align 8, !tbaa !9
  %2959 = add i64 %2958, 1
  store i64 %2959, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2960:                                             ; preds = %2951
  %2961 = load ptr, ptr %6, align 8, !tbaa !5
  %2962 = getelementptr inbounds %struct.htparser, ptr %2961, i32 0, i32 11
  store i64 0, ptr %2962, align 8, !tbaa !25
  %2963 = load ptr, ptr %6, align 8, !tbaa !5
  %2964 = getelementptr inbounds %struct.htparser, ptr %2963, i32 0, i32 1
  store i32 34, ptr %2964, align 4, !tbaa !18
  %2965 = load ptr, ptr %6, align 8, !tbaa !5
  %2966 = load ptr, ptr %7, align 8, !tbaa !5
  %2967 = call i32 @hook_on_chunk_complete_run(ptr noundef %2965, ptr noundef %2966)
  %2968 = icmp ne i32 %2967, 0
  br i1 %2968, label %2969, label %2974

2969:                                             ; preds = %2960
  %2970 = load ptr, ptr %6, align 8, !tbaa !5
  %2971 = getelementptr inbounds %struct.htparser, ptr %2970, i32 0, i32 0
  store i32 11, ptr %2971, align 8, !tbaa !11
  %2972 = load i64, ptr %12, align 8, !tbaa !9
  %2973 = add i64 %2972, 1
  store i64 %2973, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

2974:                                             ; preds = %2960
  br label %3060

2975:                                             ; preds = %61
  store i32 0, ptr %13, align 4, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  %2976 = load ptr, ptr %8, align 8, !tbaa !5
  %2977 = load i64, ptr %12, align 8, !tbaa !9
  %2978 = getelementptr inbounds i8, ptr %2976, i64 %2977
  store ptr %2978, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  %2979 = load ptr, ptr %8, align 8, !tbaa !5
  %2980 = load i64, ptr %9, align 8, !tbaa !9
  %2981 = getelementptr inbounds i8, ptr %2979, i64 %2980
  store ptr %2981, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  %2982 = load ptr, ptr %27, align 8, !tbaa !5
  %2983 = load ptr, ptr %26, align 8, !tbaa !5
  %2984 = ptrtoint ptr %2982 to i64
  %2985 = ptrtoint ptr %2983 to i64
  %2986 = sub i64 %2984, %2985
  %2987 = load ptr, ptr %6, align 8, !tbaa !5
  %2988 = getelementptr inbounds %struct.htparser, ptr %2987, i32 0, i32 10
  %2989 = load i64, ptr %2988, align 8, !tbaa !24
  %2990 = icmp ult i64 %2986, %2989
  br i1 %2990, label %2991, label %2997

2991:                                             ; preds = %2975
  %2992 = load ptr, ptr %27, align 8, !tbaa !5
  %2993 = load ptr, ptr %26, align 8, !tbaa !5
  %2994 = ptrtoint ptr %2992 to i64
  %2995 = ptrtoint ptr %2993 to i64
  %2996 = sub i64 %2994, %2995
  br label %3001

2997:                                             ; preds = %2975
  %2998 = load ptr, ptr %6, align 8, !tbaa !5
  %2999 = getelementptr inbounds %struct.htparser, ptr %2998, i32 0, i32 10
  %3000 = load i64, ptr %2999, align 8, !tbaa !24
  br label %3001

3001:                                             ; preds = %2997, %2991
  %3002 = phi i64 [ %2996, %2991 ], [ %3000, %2997 ]
  store i64 %3002, ptr %28, align 8, !tbaa !9
  br label %3003

3003:                                             ; preds = %3001
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  %3006 = load i64, ptr %28, align 8, !tbaa !9
  %3007 = icmp ugt i64 %3006, 0
  br i1 %3007, label %3008, label %3037

3008:                                             ; preds = %3005
  %3009 = load ptr, ptr %6, align 8, !tbaa !5
  %3010 = load ptr, ptr %7, align 8, !tbaa !5
  %3011 = load ptr, ptr %26, align 8, !tbaa !5
  %3012 = load i64, ptr %28, align 8, !tbaa !9
  %3013 = call i32 @hook_body_run(ptr noundef %3009, ptr noundef %3010, ptr noundef %3011, i64 noundef %3012)
  store i32 %3013, ptr %13, align 4, !tbaa !33
  %3014 = load i64, ptr %28, align 8, !tbaa !9
  %3015 = sub i64 %3014, 1
  %3016 = load i64, ptr %12, align 8, !tbaa !9
  %3017 = add i64 %3016, %3015
  store i64 %3017, ptr %12, align 8, !tbaa !9
  %3018 = load i64, ptr %28, align 8, !tbaa !9
  %3019 = load ptr, ptr %6, align 8, !tbaa !5
  %3020 = getelementptr inbounds %struct.htparser, ptr %3019, i32 0, i32 10
  %3021 = load i64, ptr %3020, align 8, !tbaa !24
  %3022 = sub i64 %3021, %3018
  store i64 %3022, ptr %3020, align 8, !tbaa !24
  br label %3023

3023:                                             ; preds = %3008
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

3025:                                             ; preds = %3024
  %3026 = load ptr, ptr %6, align 8, !tbaa !5
  %3027 = getelementptr inbounds %struct.htparser, ptr %3026, i32 0, i32 10
  %3028 = load i64, ptr %3027, align 8, !tbaa !24
  %3029 = icmp eq i64 %3028, 0
  br i1 %3029, label %3030, label %3036

3030:                                             ; preds = %3025
  %3031 = load ptr, ptr %6, align 8, !tbaa !5
  %3032 = load ptr, ptr %7, align 8, !tbaa !5
  %3033 = call i32 @hook_on_msg_complete_run(ptr noundef %3031, ptr noundef %3032)
  store i32 %3033, ptr %13, align 4, !tbaa !33
  %3034 = load ptr, ptr %6, align 8, !tbaa !5
  %3035 = getelementptr inbounds %struct.htparser, ptr %3034, i32 0, i32 1
  store i32 0, ptr %3035, align 4, !tbaa !18
  br label %3036

3036:                                             ; preds = %3030, %3025
  br label %3043

3037:                                             ; preds = %3005
  %3038 = load ptr, ptr %6, align 8, !tbaa !5
  %3039 = load ptr, ptr %7, align 8, !tbaa !5
  %3040 = call i32 @hook_on_msg_complete_run(ptr noundef %3038, ptr noundef %3039)
  store i32 %3040, ptr %13, align 4, !tbaa !33
  %3041 = load ptr, ptr %6, align 8, !tbaa !5
  %3042 = getelementptr inbounds %struct.htparser, ptr %3041, i32 0, i32 1
  store i32 0, ptr %3042, align 4, !tbaa !18
  br label %3043

3043:                                             ; preds = %3037, %3036
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  %3044 = load i32, ptr %13, align 4, !tbaa !33
  %3045 = icmp ne i32 %3044, 0
  br i1 %3045, label %3046, label %3051

3046:                                             ; preds = %3043
  %3047 = load ptr, ptr %6, align 8, !tbaa !5
  %3048 = getelementptr inbounds %struct.htparser, ptr %3047, i32 0, i32 0
  store i32 11, ptr %3048, align 8, !tbaa !11
  %3049 = load i64, ptr %12, align 8, !tbaa !9
  %3050 = add i64 %3049, 1
  store i64 %3050, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

3051:                                             ; preds = %3043
  br label %3060

3052:                                             ; preds = %61
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

3055:                                             ; preds = %3054
  %3056 = load ptr, ptr %6, align 8, !tbaa !5
  %3057 = getelementptr inbounds %struct.htparser, ptr %3056, i32 0, i32 0
  store i32 10, ptr %3057, align 8, !tbaa !11
  %3058 = load i64, ptr %12, align 8, !tbaa !9
  %3059 = add i64 %3058, 1
  store i64 %3059, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3061

3060:                                             ; preds = %3051, %2974, %2948, %2938, %2875, %2821, %2805, %2794, %2780, %2731, %2721, %2641, %2555, %2520, %2295, %2244, %2124, %2089, %2078, %2022, %2007, %1996, %1978, %1945, %1932, %1868, %1842, %1826, %1813, %1799, %1787, %1775, %1763, %1748, %1717, %1550, %1533, %1339, %1322, %1156, %1139, %1047, %1038, %967, %938, %810, %777, %737, %732, %692, %661, %537, %521, %425, %406, %185, %114
  store i32 0, ptr %15, align 4
  br label %3061

3061:                                             ; preds = %3060, %3055, %3046, %2969, %2955, %2943, %2933, %2870, %2836, %2816, %2789, %2775, %2716, %2708, %2702, %2635, %2594, %2588, %2577, %2550, %2542, %2515, %2490, %2338, %2271, %2239, %2085, %2073, %2067, %2047, %2017, %1991, %1954, %1914, %1901, %1863, %1837, %1808, %1794, %1782, %1770, %1758, %1743, %1712, %1528, %1317, %1134, %1126, %1089, %1033, %1009, %933, %925, %889, %849, %727, %687, %656, %650, %516, %420, %406, %180, %171, %127, %56
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  %3062 = load i32, ptr %15, align 4
  switch i32 %3062, label %3069 [
    i32 0, label %3063
  ]

3063:                                             ; preds = %3061
  br label %3064

3064:                                             ; preds = %3063
  %3065 = load i64, ptr %12, align 8, !tbaa !9
  %3066 = add i64 %3065, 1
  store i64 %3066, ptr %12, align 8, !tbaa !9
  br label %39, !llvm.loop !37

3067:                                             ; preds = %39
  %3068 = load i64, ptr %12, align 8, !tbaa !9
  store i64 %3068, ptr %5, align 8
  store i32 1, ptr %15, align 4
  br label %3069

3069:                                             ; preds = %3067, %3061
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #4
  %3070 = load i64, ptr %5, align 8
  ret i64 %3070
}

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_msg_begin_run(ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_method_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_scheme_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_host_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_port_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_path_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_uri_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_args_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_hdrs_begin_run(ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_hdr_key_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcasecmp(ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_hostname_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @str_to_uint64(ptr noundef, i64 noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_msg_complete_run(ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_hdr_val_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_hdrs_complete_run(ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_chunks_complete_run(ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_new_chunk_run(ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_body_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_chunk_complete_run(ptr noundef, ptr noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { inlinehint 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 #3 = { 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 #4 = { nounwind }
attributes #5 = { 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, !13, i64 0}
!12 = !{!"htparser", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !7, i64 28, !7, i64 29, !7, i64 30, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !13, i64 64, !13, i64 68, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !13, i64 120, !7, i64 124}
!13 = !{!"int", !7, i64 0}
!14 = !{!12, !10, i64 48}
!15 = !{!7, !7, i64 0}
!16 = !{!12, !13, i64 120}
!17 = !{!12, !10, i64 56}
!18 = !{!12, !13, i64 4}
!19 = !{!12, !13, i64 8}
!20 = !{!12, !13, i64 24}
!21 = !{!12, !7, i64 28}
!22 = !{!12, !7, i64 29}
!23 = !{!12, !7, i64 30}
!24 = !{!12, !10, i64 32}
!25 = !{!12, !10, i64 40}
!26 = !{!12, !13, i64 64}
!27 = !{!12, !13, i64 68}
!28 = !{!12, !6, i64 72}
!29 = !{!12, !6, i64 80}
!30 = !{!12, !6, i64 88}
!31 = !{!12, !6, i64 96}
!32 = !{!12, !6, i64 104}
!33 = !{!13, !13, i64 0}
!34 = !{!12, !13, i64 16}
!35 = !{!12, !13, i64 20}
!36 = !{!12, !13, i64 12}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}


; 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"

@usual = external hidden local_unnamed_addr global [8 x i32], align 16
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@unhex = external hidden local_unnamed_addr global <{ [128 x i8], [128 x i8] }>, align 16

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
define dso_local i64 @htparser_run(ptr noundef %0, ptr noundef %1, ptr noundef %2, i64 noundef %3) local_unnamed_addr #1 {
  %5 = alloca i32, align 4
  store i32 0, ptr %0, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %0, i64 48
  store i64 0, ptr %6, align 8, !tbaa !12
  %.not1211 = icmp eq i64 %3, 0
  br i1 %.not1211, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %4
  %7 = getelementptr inbounds i8, ptr %0, i64 120
  %8 = getelementptr inbounds i8, ptr %0, i64 4
  %9 = getelementptr inbounds i8, ptr %0, i64 32
  %10 = getelementptr inbounds i8, ptr %0, i64 40
  %11 = getelementptr inbounds i8, ptr %0, i64 8
  %12 = getelementptr inbounds i8, ptr %0, i64 124
  %13 = getelementptr inbounds i8, ptr %0, i64 125
  %14 = getelementptr inbounds i8, ptr %0, i64 12
  %15 = getelementptr inbounds i8, ptr %0, i64 129
  %16 = getelementptr inbounds i8, ptr %0, i64 128
  %17 = getelementptr inbounds i8, ptr %0, i64 133
  %18 = getelementptr inbounds i8, ptr %0, i64 28
  %19 = getelementptr inbounds i8, ptr %0, i64 16
  %20 = getelementptr inbounds i8, ptr %0, i64 64
  %21 = getelementptr inbounds i8, ptr %0, i64 68
  %22 = getelementptr inbounds i8, ptr %0, i64 30
  %23 = getelementptr inbounds i8, ptr %0, i64 29
  %24 = getelementptr inbounds i8, ptr %0, i64 104
  %25 = getelementptr inbounds i8, ptr %0, i64 96
  %26 = getelementptr inbounds i8, ptr %0, i64 88
  %27 = getelementptr inbounds i8, ptr %0, i64 80
  %28 = getelementptr inbounds i8, ptr %0, i64 20
  %29 = getelementptr inbounds i8, ptr %0, i64 72
  %30 = getelementptr inbounds i8, ptr %0, i64 132
  %31 = getelementptr inbounds i8, ptr %0, i64 24
  br label %32

32:                                               ; preds = %.lr.ph, %.thread1094
  %.09871210 = phi i64 [ 0, %.lr.ph ], [ %907, %.thread1094 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #6
  %33 = getelementptr inbounds i8, ptr %2, i64 %.09871210
  %34 = load i8, ptr %33, align 1, !tbaa !13
  %35 = load i32, ptr %7, align 8, !tbaa !14
  %36 = icmp ugt i32 %35, 8191
  br i1 %36, label %37, label %39

37:                                               ; preds = %32
  store i32 1, ptr %0, align 8, !tbaa !5
  %38 = add nuw i64 %.09871210, 1
  br label %906

39:                                               ; preds = %32
  %40 = load <2 x i64>, ptr %6, align 8, !tbaa !15
  %41 = add <2 x i64> %40, <i64 1, i64 1>
  store <2 x i64> %41, ptr %6, align 8, !tbaa !15
  %42 = load i32, ptr %8, align 4, !tbaa !16
  switch i32 %42, label %904 [
    i32 0, label %43
    i32 1, label %67
    i32 2, label %142
    i32 3, label %160
    i32 4, label %200
    i32 5, label %209
    i32 6, label %218
    i32 8, label %255
    i32 7, label %278
    i32 9, label %310
    i32 10, label %342
    i32 11, label %400
    i32 12, label %468
    i32 13, label %527
    i32 14, label %533
    i32 15, label %537
    i32 16, label %541
    i32 17, label %545
    i32 18, label %549
    i32 19, label %555
    i32 20, label %567
    i32 21, label %573
    i32 40, label %590
    i32 41, label %609
    i32 42, label %615
    i32 22, label %618
    i32 23, label %623
    i32 24, label %641
    i32 25, label %645
    i32 28, label %649
    i32 29, label %677
    i32 30, label %693
    i32 26, label %766
    i32 27, label %776
    i32 31, label %794
    i32 32, label %810
    i32 34, label %827
    i32 35, label %836
    i32 36, label %851
    i32 37, label %866
    i32 38, label %880
    i32 39, label %884
    i32 33, label %891
  ]

43:                                               ; preds = %39
  store i32 0, ptr %11, align 8, !tbaa !17
  store i32 0, ptr %0, align 8, !tbaa !5
  store i32 16, ptr %31, align 8, !tbaa !18
  store i8 0, ptr %18, align 4, !tbaa !19
  store i8 0, ptr %23, align 1, !tbaa !20
  store i8 0, ptr %22, align 2, !tbaa !21
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %9, i8 0, i64 16, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %20, i8 0, i64 48, i1 false)
  switch i8 %34, label %44 [
    i8 13, label %.thread1094
    i8 10, label %.thread1094
  ]

44:                                               ; preds = %43
  %45 = add i8 %34, -91
  %or.cond17 = icmp ult i8 %45, -26
  %46 = icmp ne i8 %34, 95
  %or.cond20 = and i1 %46, %or.cond17
  br i1 %or.cond20, label %47, label %49

47:                                               ; preds = %44
  store i32 3, ptr %0, align 8, !tbaa !5
  %48 = add nuw i64 %.09871210, 1
  br label %906

49:                                               ; preds = %44
  %50 = call i32 @hook_on_msg_begin_run(ptr noundef nonnull %0, ptr noundef %1)
  %51 = load i32, ptr %7, align 8, !tbaa !14
  %52 = add i32 %51, 1
  store i32 %52, ptr %7, align 8, !tbaa !14
  %53 = zext i32 %51 to i64
  %54 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %53
  store i8 %34, ptr %54, align 1, !tbaa !13
  %55 = zext i32 %52 to i64
  %56 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %55
  store i8 0, ptr %56, align 1, !tbaa !13
  %57 = load i32, ptr %19, align 8, !tbaa !22
  %58 = icmp eq i32 %57, 0
  br i1 %58, label %64, label %59

59:                                               ; preds = %49
  %60 = icmp eq i32 %57, 1
  %61 = icmp eq i8 %34, 72
  %or.cond23 = select i1 %60, i1 %61, i1 false
  br i1 %or.cond23, label %64, label %62

62:                                               ; preds = %59
  store i32 3, ptr %0, align 8, !tbaa !5
  %63 = add nuw i64 %.09871210, 1
  br label %906

64:                                               ; preds = %59, %49
  %storemerge1084 = phi i32 [ 1, %49 ], [ 14, %59 ]
  store i32 %storemerge1084, ptr %8, align 4, !tbaa !16
  %.not1085 = icmp eq i32 %50, 0
  br i1 %.not1085, label %.thread1094, label %65

65:                                               ; preds = %64
  store i32 11, ptr %0, align 8, !tbaa !5
  %66 = add nuw i64 %.09871210, 1
  br label %906

67:                                               ; preds = %39
  %68 = icmp eq i8 %34, 32
  br i1 %68, label %69, label %131

69:                                               ; preds = %67
  switch i32 %35, label %.thread1089 [
    i32 3, label %70
    i32 4, label %73
    i32 5, label %83
    i32 6, label %94
    i32 7, label %104
    i32 8, label %112
    i32 9, label %118
  ]

70:                                               ; preds = %69
  %71 = load i32, ptr %12, align 4, !tbaa !23
  switch i32 %71, label %.thread1089 [
    i32 5522759, label %.thread1089.sink.split
    i32 5526864, label %72
  ]

72:                                               ; preds = %70
  br label %.thread1089.sink.split

73:                                               ; preds = %69
  %74 = load i8, ptr %13, align 1, !tbaa !13
  %75 = icmp eq i8 %74, 79
  %76 = load i32, ptr %12, align 4, !tbaa !23
  br i1 %75, label %77, label %81

77:                                               ; preds = %73
  switch i32 %76, label %.thread1089 [
    i32 1414745936, label %.thread1089.sink.split
    i32 1498435395, label %78
    i32 1163284301, label %79
    i32 1262702412, label %80
  ]

78:                                               ; preds = %77
  br label %.thread1089.sink.split

79:                                               ; preds = %77
  br label %.thread1089.sink.split

80:                                               ; preds = %77
  br label %.thread1089.sink.split

81:                                               ; preds = %73
  %82 = icmp eq i32 %76, 1145128264
  br i1 %82, label %.thread1089.sink.split, label %.thread1089

83:                                               ; preds = %69
  %84 = load i32, ptr %12, align 4, !tbaa !23
  switch i32 %84, label %.thread1089 [
    i32 1329810253, label %85
    i32 1128354388, label %88
    i32 1129595216, label %91
  ]

85:                                               ; preds = %83
  %86 = load i8, ptr %16, align 1, !tbaa !13
  %87 = icmp eq i8 %86, 76
  br i1 %87, label %.thread1089.sink.split, label %.thread1089

88:                                               ; preds = %83
  %89 = load i8, ptr %16, align 1, !tbaa !13
  %90 = icmp eq i8 %89, 69
  br i1 %90, label %.thread1089.sink.split, label %.thread1089

91:                                               ; preds = %83
  %92 = load i8, ptr %16, align 1, !tbaa !13
  %93 = icmp eq i8 %92, 72
  br i1 %93, label %.thread1089.sink.split, label %.thread1089

94:                                               ; preds = %69
  %95 = load i32, ptr %12, align 4, !tbaa !23
  switch i32 %95, label %.thread1089 [
    i32 1162626372, label %96
    i32 1330400853, label %100
  ]

96:                                               ; preds = %94
  %97 = load i32, ptr %16, align 4, !tbaa !23
  %98 = and i32 %97, 65535
  %99 = icmp eq i32 %98, 17748
  br i1 %99, label %.thread1089.sink.split, label %.thread1089

100:                                              ; preds = %94
  %101 = load i32, ptr %16, align 4, !tbaa !23
  %102 = and i32 %101, 65535
  %103 = icmp eq i32 %102, 19267
  br i1 %103, label %.thread1089.sink.split, label %.thread1089

104:                                              ; preds = %69
  %105 = load i32, ptr %12, align 4, !tbaa !23
  switch i32 %105, label %.thread1089 [
    i32 1230262351, label %106
    i32 1313754947, label %109
  ]

106:                                              ; preds = %104
  %107 = load i32, ptr %16, align 4, !tbaa !23
  %108 = icmp eq i32 %107, 5459535
  br i1 %108, label %.thread1089.sink.split, label %.thread1089

109:                                              ; preds = %104
  %110 = load i32, ptr %16, align 4, !tbaa !23
  %111 = icmp eq i32 %110, 5522245
  br i1 %111, label %.thread1089.sink.split, label %.thread1089

112:                                              ; preds = %69
  %113 = load i32, ptr %12, align 4, !tbaa !23
  %114 = icmp eq i32 %113, 1347375696
  br i1 %114, label %115, label %.thread1089

115:                                              ; preds = %112
  %116 = load i32, ptr %16, align 4, !tbaa !23
  %117 = icmp eq i32 %116, 1145981254
  br i1 %117, label %.thread1089.sink.split, label %.thread1089

118:                                              ; preds = %69
  %119 = load i32, ptr %12, align 4, !tbaa !23
  %120 = icmp eq i32 %119, 1347375696
  br i1 %120, label %121, label %.thread1089

121:                                              ; preds = %118
  %122 = load i32, ptr %16, align 4, !tbaa !23
  %123 = icmp eq i32 %122, 1129595216
  br i1 %123, label %124, label %.thread1089

124:                                              ; preds = %121
  %125 = load i8, ptr %30, align 1, !tbaa !13
  %126 = icmp eq i8 %125, 72
  br i1 %126, label %.thread1089.sink.split, label %.thread1089

.thread1089.sink.split:                           ; preds = %124, %115, %109, %106, %100, %96, %91, %88, %85, %81, %77, %70, %72, %78, %79, %80
  %.sink = phi i32 [ 11, %80 ], [ 7, %79 ], [ 6, %78 ], [ 3, %72 ], [ 0, %70 ], [ 2, %77 ], [ 1, %81 ], [ 5, %85 ], [ 13, %88 ], [ 15, %91 ], [ 4, %96 ], [ 12, %100 ], [ 8, %106 ], [ 14, %109 ], [ 9, %115 ], [ 10, %124 ]
  store i32 %.sink, ptr %31, align 8, !tbaa !18
  br label %.thread1089

.thread1089:                                      ; preds = %.thread1089.sink.split, %104, %94, %83, %106, %96, %85, %88, %77, %70, %118, %121, %124, %112, %115, %109, %100, %91, %81, %69
  %127 = zext nneg i32 %35 to i64
  %128 = call i32 @hook_method_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %12, i64 noundef %127)
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 2, ptr %8, align 4, !tbaa !16
  %.not1083 = icmp eq i32 %128, 0
  br i1 %.not1083, label %.thread1094, label %129

129:                                              ; preds = %.thread1089
  store i32 11, ptr %0, align 8, !tbaa !5
  %130 = add nuw i64 %.09871210, 1
  br label %906

131:                                              ; preds = %67
  %132 = add i8 %34, -91
  %or.cond26 = icmp ult i8 %132, -26
  %133 = icmp ne i8 %34, 95
  %or.cond29 = and i1 %133, %or.cond26
  br i1 %or.cond29, label %134, label %136

134:                                              ; preds = %131
  store i32 2, ptr %0, align 8, !tbaa !5
  %135 = add nuw i64 %.09871210, 1
  br label %906

136:                                              ; preds = %131
  %137 = add nuw nsw i32 %35, 1
  store i32 %137, ptr %7, align 8, !tbaa !14
  %138 = zext nneg i32 %35 to i64
  %139 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %138
  store i8 %34, ptr %139, align 1, !tbaa !13
  %140 = zext nneg i32 %137 to i64
  %141 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %140
  store i8 0, ptr %141, align 1, !tbaa !13
  br label %.thread1094

142:                                              ; preds = %39
  switch i8 %34, label %149 [
    i8 32, label %.thread1094
    i8 47, label %143
  ]

143:                                              ; preds = %142
  %144 = zext nneg i32 %35 to i64
  %145 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %144
  store ptr %145, ptr %25, align 8, !tbaa !24
  %146 = add nuw nsw i32 %35, 1
  store i32 %146, ptr %7, align 8, !tbaa !14
  store i8 47, ptr %145, align 1, !tbaa !13
  %147 = zext nneg i32 %146 to i64
  %148 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %147
  store i8 0, ptr %148, align 1, !tbaa !13
  store i32 10, ptr %8, align 4, !tbaa !16
  br label %.thread1094

149:                                              ; preds = %142
  %150 = or i8 %34, 32
  %151 = add i8 %150, -97
  %or.cond32 = icmp ult i8 %151, 26
  br i1 %or.cond32, label %152, label %158

152:                                              ; preds = %149
  %153 = zext nneg i32 %35 to i64
  %154 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %153
  store ptr %154, ptr %29, align 8, !tbaa !25
  %155 = add nuw nsw i32 %35, 1
  store i32 %155, ptr %7, align 8, !tbaa !14
  store i8 %34, ptr %154, align 1, !tbaa !13
  %156 = zext nneg i32 %155 to i64
  %157 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %156
  store i8 0, ptr %157, align 1, !tbaa !13
  store i32 3, ptr %8, align 4, !tbaa !16
  br label %.thread1094

158:                                              ; preds = %149
  store i32 3, ptr %0, align 8, !tbaa !5
  %159 = add nuw i64 %.09871210, 1
  br label %906

160:                                              ; preds = %39
  %161 = or i8 %34, 32
  %162 = add i8 %161, -97
  %or.cond35 = icmp ult i8 %162, 26
  br i1 %or.cond35, label %163, label %169

163:                                              ; preds = %160
  %164 = add nuw nsw i32 %35, 1
  store i32 %164, ptr %7, align 8, !tbaa !14
  %165 = zext nneg i32 %35 to i64
  %166 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %165
  store i8 %34, ptr %166, align 1, !tbaa !13
  %167 = zext nneg i32 %164 to i64
  %168 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %167
  store i8 0, ptr %168, align 1, !tbaa !13
  br label %.thread1094

169:                                              ; preds = %160
  %cond11 = icmp eq i8 %34, 58
  br i1 %cond11, label %170, label %198

170:                                              ; preds = %169
  store i32 5, ptr %28, align 4, !tbaa !26
  %.pre1275 = load ptr, ptr %29, align 8, !tbaa !25
  switch i32 %35, label %._crit_edge [
    i32 3, label %171
    i32 4, label %174
    i32 5, label %177
  ]

171:                                              ; preds = %170
  %172 = load i32, ptr %.pre1275, align 4, !tbaa !23
  switch i32 %172, label %._crit_edge [
    i32 7369830, label %._crit_edge.sink.split
    i32 7562862, label %173
  ]

173:                                              ; preds = %171
  br label %._crit_edge.sink.split

174:                                              ; preds = %170
  %175 = load i32, ptr %.pre1275, align 4, !tbaa !23
  %176 = icmp eq i32 %175, 1886680168
  br i1 %176, label %._crit_edge.sink.split, label %._crit_edge

177:                                              ; preds = %170
  %178 = load i32, ptr %.pre1275, align 4, !tbaa !23
  %179 = icmp eq i32 %178, 1886680168
  br i1 %179, label %180, label %._crit_edge

180:                                              ; preds = %177
  %181 = getelementptr inbounds i8, ptr %.pre1275, i64 4
  %182 = load i8, ptr %181, align 1, !tbaa !13
  %183 = icmp eq i8 %182, 115
  br i1 %183, label %._crit_edge.sink.split, label %._crit_edge

._crit_edge.sink.split:                           ; preds = %180, %174, %171, %173
  %.sink1339 = phi i32 [ 4, %173 ], [ 1, %171 ], [ 2, %174 ], [ 3, %180 ]
  store i32 %.sink1339, ptr %28, align 4, !tbaa !26
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.sink.split, %170, %171, %177, %180, %174
  %184 = zext nneg i32 %35 to i64
  %185 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %184
  %186 = ptrtoint ptr %185 to i64
  %187 = ptrtoint ptr %.pre1275 to i64
  %188 = sub i64 %186, %187
  %189 = call i32 @hook_scheme_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %.pre1275, i64 noundef %188)
  %190 = load i32, ptr %7, align 8, !tbaa !14
  %191 = add i32 %190, 1
  store i32 %191, ptr %7, align 8, !tbaa !14
  %192 = zext i32 %190 to i64
  %193 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %192
  store i8 58, ptr %193, align 1, !tbaa !13
  %194 = zext i32 %191 to i64
  %195 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %194
  store i8 0, ptr %195, align 1, !tbaa !13
  store i32 4, ptr %8, align 4, !tbaa !16
  %.not1082 = icmp eq i32 %189, 0
  br i1 %.not1082, label %.thread1094, label %196

196:                                              ; preds = %._crit_edge
  store i32 11, ptr %0, align 8, !tbaa !5
  %197 = add nuw i64 %.09871210, 1
  br label %906

198:                                              ; preds = %169
  store i32 4, ptr %0, align 8, !tbaa !5
  %199 = add nuw i64 %.09871210, 1
  br label %906

200:                                              ; preds = %39
  %cond10 = icmp eq i8 %34, 47
  br i1 %cond10, label %201, label %207

201:                                              ; preds = %200
  %202 = add nuw nsw i32 %35, 1
  store i32 %202, ptr %7, align 8, !tbaa !14
  %203 = zext nneg i32 %35 to i64
  %204 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %203
  store i8 47, ptr %204, align 1, !tbaa !13
  %205 = zext nneg i32 %202 to i64
  %206 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %205
  store i8 0, ptr %206, align 1, !tbaa !13
  store i32 5, ptr %8, align 4, !tbaa !16
  br label %.thread1094

207:                                              ; preds = %200
  store i32 4, ptr %0, align 8, !tbaa !5
  %208 = add nuw i64 %.09871210, 1
  br label %906

209:                                              ; preds = %39
  %cond9 = icmp eq i8 %34, 47
  br i1 %cond9, label %210, label %216

210:                                              ; preds = %209
  %211 = add nuw nsw i32 %35, 1
  store i32 %211, ptr %7, align 8, !tbaa !14
  %212 = zext nneg i32 %35 to i64
  %213 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %212
  store i8 47, ptr %213, align 1, !tbaa !13
  %214 = zext nneg i32 %211 to i64
  %215 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %214
  store i8 0, ptr %215, align 1, !tbaa !13
  store ptr %215, ptr %27, align 8, !tbaa !27
  store i32 6, ptr %8, align 4, !tbaa !16
  br label %.thread1094

216:                                              ; preds = %209
  store i32 4, ptr %0, align 8, !tbaa !5
  %217 = add nuw i64 %.09871210, 1
  br label %906

218:                                              ; preds = %39
  %219 = icmp eq i8 %34, 91
  br i1 %219, label %220, label %226

220:                                              ; preds = %218
  %221 = add nuw nsw i32 %35, 1
  store i32 %221, ptr %7, align 8, !tbaa !14
  %222 = zext nneg i32 %35 to i64
  %223 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %222
  store i8 91, ptr %223, align 1, !tbaa !13
  %224 = zext nneg i32 %221 to i64
  %225 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %224
  store i8 0, ptr %225, align 1, !tbaa !13
  store ptr %225, ptr %27, align 8, !tbaa !27
  store i32 7, ptr %8, align 4, !tbaa !16
  br label %.thread1094

226:                                              ; preds = %218
  %227 = or i8 %34, 32
  %228 = add i8 %227, -97
  %or.cond38 = icmp ult i8 %228, 26
  br i1 %or.cond38, label %229, label %235

229:                                              ; preds = %226
  %230 = add nuw nsw i32 %35, 1
  store i32 %230, ptr %7, align 8, !tbaa !14
  %231 = zext nneg i32 %35 to i64
  %232 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %231
  store i8 %34, ptr %232, align 1, !tbaa !13
  %233 = zext nneg i32 %230 to i64
  %234 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %233
  store i8 0, ptr %234, align 1, !tbaa !13
  br label %.thread1094

235:                                              ; preds = %226
  %236 = add i8 %34, -48
  %or.cond41 = icmp ult i8 %236, 10
  %237 = add i8 %34, -45
  %238 = icmp ult i8 %237, 2
  %or.cond47 = or i1 %or.cond41, %238
  br i1 %or.cond47, label %239, label %245

239:                                              ; preds = %235
  %240 = add nuw nsw i32 %35, 1
  store i32 %240, ptr %7, align 8, !tbaa !14
  %241 = zext nneg i32 %35 to i64
  %242 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %241
  store i8 %34, ptr %242, align 1, !tbaa !13
  %243 = zext nneg i32 %240 to i64
  %244 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %243
  store i8 0, ptr %244, align 1, !tbaa !13
  br label %.thread1094

245:                                              ; preds = %235
  %246 = load ptr, ptr %27, align 8, !tbaa !27
  %247 = zext nneg i32 %35 to i64
  %248 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %247
  %249 = ptrtoint ptr %248 to i64
  %250 = ptrtoint ptr %246 to i64
  %251 = sub i64 %249, %250
  %252 = call i32 @hook_host_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %246, i64 noundef %251)
  %.not1080 = icmp eq i32 %252, 0
  br i1 %.not1080, label %255, label %253

253:                                              ; preds = %245
  store i32 11, ptr %0, align 8, !tbaa !5
  %254 = add nuw i64 %.09871210, 1
  br label %906

255:                                              ; preds = %245, %39
  switch i8 %34, label %275 [
    i8 58, label %256
    i8 32, label %263
    i8 47, label %268
  ]

256:                                              ; preds = %255
  %257 = load i32, ptr %7, align 8, !tbaa !14
  %258 = add i32 %257, 1
  store i32 %258, ptr %7, align 8, !tbaa !14
  %259 = zext i32 %257 to i64
  %260 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %259
  store i8 58, ptr %260, align 1, !tbaa !13
  %261 = zext i32 %258 to i64
  %262 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %261
  store i8 0, ptr %262, align 1, !tbaa !13
  store ptr %262, ptr %26, align 8, !tbaa !28
  br label %277

263:                                              ; preds = %255
  %264 = icmp eq i64 %.09871210, 0
  br i1 %264, label %265, label %266

265:                                              ; preds = %263
  store i32 10, ptr %0, align 8, !tbaa !5
  br label %906

266:                                              ; preds = %263
  %267 = add i64 %.09871210, -1
  br label %268

268:                                              ; preds = %266, %255
  %.1988 = phi i64 [ %.09871210, %255 ], [ %267, %266 ]
  %269 = load i32, ptr %7, align 8, !tbaa !14
  %270 = zext i32 %269 to i64
  %271 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %270
  store ptr %271, ptr %25, align 8, !tbaa !24
  %272 = add i32 %269, 1
  store i32 %272, ptr %7, align 8, !tbaa !14
  store i8 47, ptr %271, align 1, !tbaa !13
  %273 = zext i32 %272 to i64
  %274 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %273
  store i8 0, ptr %274, align 1, !tbaa !13
  br label %277

275:                                              ; preds = %255
  store i32 4, ptr %0, align 8, !tbaa !5
  %276 = add i64 %.09871210, 1
  br label %906

277:                                              ; preds = %268, %256
  %storemerge1081 = phi i32 [ 10, %268 ], [ 9, %256 ]
  %.2989 = phi i64 [ %.1988, %268 ], [ %.09871210, %256 ]
  store i32 %storemerge1081, ptr %8, align 4, !tbaa !16
  br label %.thread1094

278:                                              ; preds = %39
  %279 = or i8 %34, 32
  %280 = add i8 %279, -97
  %or.cond50 = icmp ult i8 %280, 6
  br i1 %or.cond50, label %284, label %281

281:                                              ; preds = %278
  %282 = add i8 %34, -48
  %or.cond56 = icmp ult i8 %282, 11
  %283 = icmp eq i8 %34, 46
  %or.cond59 = or i1 %283, %or.cond56
  br i1 %or.cond59, label %284, label %290

284:                                              ; preds = %281, %278
  %285 = add nuw nsw i32 %35, 1
  store i32 %285, ptr %7, align 8, !tbaa !14
  %286 = zext nneg i32 %35 to i64
  %287 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %286
  store i8 %34, ptr %287, align 1, !tbaa !13
  %288 = zext nneg i32 %285 to i64
  %289 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %288
  store i8 0, ptr %289, align 1, !tbaa !13
  br label %.thread1094

290:                                              ; preds = %281
  %cond8 = icmp eq i8 %34, 93
  br i1 %cond8, label %291, label %308

291:                                              ; preds = %290
  %292 = load ptr, ptr %27, align 8, !tbaa !27
  %293 = zext nneg i32 %35 to i64
  %294 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %293
  %295 = ptrtoint ptr %294 to i64
  %296 = ptrtoint ptr %292 to i64
  %297 = sub i64 %295, %296
  %298 = call i32 @hook_host_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %292, i64 noundef %297)
  %.not1079 = icmp eq i32 %298, 0
  br i1 %.not1079, label %301, label %299

299:                                              ; preds = %291
  store i32 11, ptr %0, align 8, !tbaa !5
  %300 = add nuw i64 %.09871210, 1
  br label %906

301:                                              ; preds = %291
  %302 = load i32, ptr %7, align 8, !tbaa !14
  %303 = add i32 %302, 1
  store i32 %303, ptr %7, align 8, !tbaa !14
  %304 = zext i32 %302 to i64
  %305 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %304
  store i8 93, ptr %305, align 1, !tbaa !13
  %306 = zext i32 %303 to i64
  %307 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %306
  store i8 0, ptr %307, align 1, !tbaa !13
  store i32 8, ptr %8, align 4, !tbaa !16
  br label %.thread1094

308:                                              ; preds = %290
  store i32 4, ptr %0, align 8, !tbaa !5
  %309 = add nuw i64 %.09871210, 1
  br label %906

310:                                              ; preds = %39
  %311 = add i8 %34, -48
  %or.cond62 = icmp ult i8 %311, 10
  br i1 %or.cond62, label %312, label %318

312:                                              ; preds = %310
  %313 = add nuw nsw i32 %35, 1
  store i32 %313, ptr %7, align 8, !tbaa !14
  %314 = zext nneg i32 %35 to i64
  %315 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %314
  store i8 %34, ptr %315, align 1, !tbaa !13
  %316 = zext nneg i32 %313 to i64
  %317 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %316
  store i8 0, ptr %317, align 1, !tbaa !13
  br label %.thread1094

318:                                              ; preds = %310
  %319 = load ptr, ptr %26, align 8, !tbaa !28
  %320 = zext nneg i32 %35 to i64
  %321 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %320
  %322 = ptrtoint ptr %321 to i64
  %323 = ptrtoint ptr %319 to i64
  %324 = sub i64 %322, %323
  %325 = call i32 @hook_port_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %319, i64 noundef %324)
  switch i8 %34, label %338 [
    i8 32, label %326
    i8 47, label %331
  ]

326:                                              ; preds = %318
  %327 = icmp eq i64 %.09871210, 0
  br i1 %327, label %328, label %329

328:                                              ; preds = %326
  store i32 10, ptr %0, align 8, !tbaa !5
  br label %906

329:                                              ; preds = %326
  %330 = add i64 %.09871210, -1
  br label %331

331:                                              ; preds = %329, %318
  %.3990 = phi i64 [ %.09871210, %318 ], [ %330, %329 ]
  %332 = load i32, ptr %7, align 8, !tbaa !14
  %333 = add i32 %332, 1
  store i32 %333, ptr %7, align 8, !tbaa !14
  %334 = zext i32 %332 to i64
  %335 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %334
  store i8 47, ptr %335, align 1, !tbaa !13
  %336 = zext i32 %333 to i64
  %337 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %336
  store i8 0, ptr %337, align 1, !tbaa !13
  store ptr %335, ptr %25, align 8, !tbaa !24
  store i32 10, ptr %8, align 4, !tbaa !16
  %.not1078 = icmp eq i32 %325, 0
  br i1 %.not1078, label %.thread1094, label %340

338:                                              ; preds = %318
  store i32 3, ptr %0, align 8, !tbaa !5
  %339 = add nuw i64 %.09871210, 1
  br label %906

340:                                              ; preds = %331
  store i32 11, ptr %0, align 8, !tbaa !5
  %341 = add nuw i64 %.3990, 1
  br label %906

342:                                              ; preds = %39
  %343 = zext i8 %34 to i32
  %344 = lshr i32 %343, 5
  %345 = zext nneg i32 %344 to i64
  %346 = getelementptr inbounds [8 x i32], ptr @usual, i64 0, i64 %345
  %347 = load i32, ptr %346, align 4, !tbaa !23
  %348 = and i32 %343, 31
  %349 = shl nuw i32 1, %348
  %350 = and i32 %347, %349
  %.not1076 = icmp eq i32 %350, 0
  br i1 %.not1076, label %357, label %351

351:                                              ; preds = %342
  %352 = add nuw nsw i32 %35, 1
  store i32 %352, ptr %7, align 8, !tbaa !14
  %353 = zext nneg i32 %35 to i64
  %354 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %353
  store i8 %34, ptr %354, align 1, !tbaa !13
  %355 = zext nneg i32 %352 to i64
  %356 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %355
  store i8 0, ptr %356, align 1, !tbaa !13
  store i32 11, ptr %8, align 4, !tbaa !16
  br label %.thread1094

357:                                              ; preds = %342
  switch i8 %34, label %379 [
    i8 32, label %358
    i8 13, label %371
    i8 10, label %372
    i8 46, label %373
    i8 37, label %373
    i8 47, label %373
    i8 35, label %373
    i8 63, label %385
  ]

358:                                              ; preds = %357
  %359 = load ptr, ptr %25, align 8, !tbaa !24
  %360 = zext nneg i32 %35 to i64
  %361 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %360
  %362 = ptrtoint ptr %361 to i64
  %363 = ptrtoint ptr %359 to i64
  %364 = sub i64 %362, %363
  %365 = call i32 @hook_path_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %359, i64 noundef %364)
  %366 = load i32, ptr %7, align 8, !tbaa !14
  %367 = zext i32 %366 to i64
  %368 = call i32 @hook_uri_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %12, i64 noundef %367)
  store i32 13, ptr %8, align 4, !tbaa !16
  store i32 0, ptr %7, align 8, !tbaa !14
  %369 = icmp ne i32 %365, 0
  %370 = icmp ne i32 %368, 0
  %or.cond64 = select i1 %369, i1 true, i1 %370
  br i1 %or.cond64, label %.thread1097, label %.thread1094

371:                                              ; preds = %357
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

372:                                              ; preds = %357
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 25, ptr %8, align 4, !tbaa !16
  br label %.thread1094

373:                                              ; preds = %357, %357, %357, %357
  %374 = add nuw nsw i32 %35, 1
  store i32 %374, ptr %7, align 8, !tbaa !14
  %375 = zext nneg i32 %35 to i64
  %376 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %375
  store i8 %34, ptr %376, align 1, !tbaa !13
  %377 = zext nneg i32 %374 to i64
  %378 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %377
  store i8 0, ptr %378, align 1, !tbaa !13
  store i32 12, ptr %8, align 4, !tbaa !16
  br label %.thread1094

379:                                              ; preds = %357
  %380 = add nuw nsw i32 %35, 1
  store i32 %380, ptr %7, align 8, !tbaa !14
  %381 = zext nneg i32 %35 to i64
  %382 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %381
  store i8 %34, ptr %382, align 1, !tbaa !13
  %383 = zext nneg i32 %380 to i64
  %384 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %383
  store i8 0, ptr %384, align 1, !tbaa !13
  store i32 11, ptr %8, align 4, !tbaa !16
  br label %.thread1094

385:                                              ; preds = %357
  %386 = load ptr, ptr %25, align 8, !tbaa !24
  %387 = zext nneg i32 %35 to i64
  %388 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %387
  %389 = ptrtoint ptr %388 to i64
  %390 = ptrtoint ptr %386 to i64
  %391 = sub i64 %389, %390
  %392 = call i32 @hook_path_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %386, i64 noundef %391)
  %393 = load i32, ptr %7, align 8, !tbaa !14
  %394 = add i32 %393, 1
  store i32 %394, ptr %7, align 8, !tbaa !14
  %395 = zext i32 %393 to i64
  %396 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %395
  store i8 63, ptr %396, align 1, !tbaa !13
  %397 = zext i32 %394 to i64
  %398 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %397
  store i8 0, ptr %398, align 1, !tbaa !13
  store ptr %398, ptr %24, align 8, !tbaa !29
  store i32 12, ptr %8, align 4, !tbaa !16
  %.not1077 = icmp eq i32 %392, 0
  br i1 %.not1077, label %.thread1094, label %.thread1097

.thread1097:                                      ; preds = %358, %385
  store i32 11, ptr %0, align 8, !tbaa !5
  %399 = add nuw i64 %.09871210, 1
  br label %906

400:                                              ; preds = %39
  %401 = zext i8 %34 to i32
  %402 = lshr i32 %401, 5
  %403 = zext nneg i32 %402 to i64
  %404 = getelementptr inbounds [8 x i32], ptr @usual, i64 0, i64 %403
  %405 = load i32, ptr %404, align 4, !tbaa !23
  %406 = and i32 %401, 31
  %407 = shl nuw i32 1, %406
  %408 = and i32 %405, %407
  %.not1073 = icmp eq i32 %408, 0
  br i1 %.not1073, label %415, label %409

409:                                              ; preds = %400
  %410 = add nuw nsw i32 %35, 1
  store i32 %410, ptr %7, align 8, !tbaa !14
  %411 = zext nneg i32 %35 to i64
  %412 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %411
  store i8 %34, ptr %412, align 1, !tbaa !13
  %413 = zext nneg i32 %410 to i64
  %414 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %413
  store i8 0, ptr %414, align 1, !tbaa !13
  br label %.thread1094

415:                                              ; preds = %400
  switch i8 %34, label %447 [
    i8 32, label %416
    i8 47, label %439
    i8 13, label %445
    i8 10, label %446
    i8 63, label %453
  ]

416:                                              ; preds = %415
  %417 = load ptr, ptr %24, align 8, !tbaa !29
  %.not1074 = icmp eq ptr %417, null
  br i1 %.not1074, label %425, label %418

418:                                              ; preds = %416
  %419 = zext nneg i32 %35 to i64
  %420 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %419
  %421 = ptrtoint ptr %420 to i64
  %422 = ptrtoint ptr %417 to i64
  %423 = sub i64 %421, %422
  %424 = call i32 @hook_args_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %417, i64 noundef %423)
  br label %433

425:                                              ; preds = %416
  %426 = load ptr, ptr %25, align 8, !tbaa !24
  %427 = zext nneg i32 %35 to i64
  %428 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %427
  %429 = ptrtoint ptr %428 to i64
  %430 = ptrtoint ptr %426 to i64
  %431 = sub i64 %429, %430
  %432 = call i32 @hook_path_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %426, i64 noundef %431)
  br label %433

433:                                              ; preds = %425, %418
  %.01003 = phi i32 [ %424, %418 ], [ %432, %425 ]
  %434 = load i32, ptr %7, align 8, !tbaa !14
  %435 = zext i32 %434 to i64
  %436 = call i32 @hook_uri_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %12, i64 noundef %435)
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 13, ptr %8, align 4, !tbaa !16
  %437 = icmp ne i32 %.01003, 0
  %438 = icmp ne i32 %436, 0
  %or.cond66 = select i1 %437, i1 true, i1 %438
  br i1 %or.cond66, label %.thread1105, label %.thread1094

439:                                              ; preds = %415
  %440 = add nuw nsw i32 %35, 1
  store i32 %440, ptr %7, align 8, !tbaa !14
  %441 = zext nneg i32 %35 to i64
  %442 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %441
  store i8 47, ptr %442, align 1, !tbaa !13
  %443 = zext nneg i32 %440 to i64
  %444 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %443
  store i8 0, ptr %444, align 1, !tbaa !13
  store i32 10, ptr %8, align 4, !tbaa !16
  br label %.thread1094

445:                                              ; preds = %415
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

446:                                              ; preds = %415
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 25, ptr %8, align 4, !tbaa !16
  br label %.thread1094

447:                                              ; preds = %415
  %448 = add nuw nsw i32 %35, 1
  store i32 %448, ptr %7, align 8, !tbaa !14
  %449 = zext nneg i32 %35 to i64
  %450 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %449
  store i8 %34, ptr %450, align 1, !tbaa !13
  %451 = zext nneg i32 %448 to i64
  %452 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %451
  store i8 0, ptr %452, align 1, !tbaa !13
  store i32 12, ptr %8, align 4, !tbaa !16
  br label %.thread1094

453:                                              ; preds = %415
  %454 = load ptr, ptr %25, align 8, !tbaa !24
  %455 = zext nneg i32 %35 to i64
  %456 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %455
  %457 = ptrtoint ptr %456 to i64
  %458 = ptrtoint ptr %454 to i64
  %459 = sub i64 %457, %458
  %460 = call i32 @hook_path_run(ptr noundef %0, ptr noundef %1, ptr noundef %454, i64 noundef %459)
  %461 = load i32, ptr %7, align 8, !tbaa !14
  %462 = add i32 %461, 1
  store i32 %462, ptr %7, align 8, !tbaa !14
  %463 = zext i32 %461 to i64
  %464 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %463
  store i8 63, ptr %464, align 1, !tbaa !13
  %465 = zext i32 %462 to i64
  %466 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %465
  store i8 0, ptr %466, align 1, !tbaa !13
  store ptr %466, ptr %24, align 8, !tbaa !29
  store i32 12, ptr %8, align 4, !tbaa !16
  %.not1075 = icmp eq i32 %460, 0
  br i1 %.not1075, label %.thread1094, label %.thread1105

.thread1105:                                      ; preds = %433, %453
  store i32 11, ptr %0, align 8, !tbaa !5
  %467 = add nuw i64 %.09871210, 1
  br label %906

468:                                              ; preds = %39
  %469 = zext i8 %34 to i32
  %470 = lshr i32 %469, 5
  %471 = zext nneg i32 %470 to i64
  %472 = getelementptr inbounds [8 x i32], ptr @usual, i64 0, i64 %471
  %473 = load i32, ptr %472, align 4, !tbaa !23
  %474 = and i32 %469, 31
  %475 = shl nuw i32 1, %474
  %476 = and i32 %473, %475
  %.not1068 = icmp eq i32 %476, 0
  br i1 %.not1068, label %483, label %477

477:                                              ; preds = %468
  %478 = add nuw nsw i32 %35, 1
  store i32 %478, ptr %7, align 8, !tbaa !14
  %479 = zext nneg i32 %35 to i64
  %480 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %479
  store i8 %34, ptr %480, align 1, !tbaa !13
  %481 = zext nneg i32 %478 to i64
  %482 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %481
  store i8 0, ptr %482, align 1, !tbaa !13
  br label %.thread1094

483:                                              ; preds = %468
  switch i8 %34, label %506 [
    i8 32, label %484
    i8 13, label %502
    i8 10, label %503
    i8 63, label %504
  ]

484:                                              ; preds = %483
  %485 = load ptr, ptr %24, align 8, !tbaa !29
  %.not1070 = icmp eq ptr %485, null
  br i1 %.not1070, label %493, label %486

486:                                              ; preds = %484
  %487 = zext nneg i32 %35 to i64
  %488 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %487
  %489 = ptrtoint ptr %488 to i64
  %490 = ptrtoint ptr %485 to i64
  %491 = sub i64 %489, %490
  %492 = call i32 @hook_args_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %485, i64 noundef %491)
  br label %501

493:                                              ; preds = %484
  %494 = load ptr, ptr %25, align 8, !tbaa !24
  %495 = zext nneg i32 %35 to i64
  %496 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %495
  %497 = ptrtoint ptr %496 to i64
  %498 = ptrtoint ptr %494 to i64
  %499 = sub i64 %497, %498
  %500 = call i32 @hook_path_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %494, i64 noundef %499)
  br label %501

501:                                              ; preds = %493, %486
  %.01004 = phi i32 [ %492, %486 ], [ %500, %493 ]
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 13, ptr %8, align 4, !tbaa !16
  %.not1071 = icmp eq i32 %.01004, 0
  br i1 %.not1071, label %.thread1094, label %.thread1113

502:                                              ; preds = %483
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

503:                                              ; preds = %483
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 25, ptr %8, align 4, !tbaa !16
  br label %.thread1094

504:                                              ; preds = %483
  %505 = load ptr, ptr %24, align 8, !tbaa !29
  %.not1069 = icmp eq ptr %505, null
  br i1 %.not1069, label %512, label %506

506:                                              ; preds = %504, %483
  %507 = add nuw nsw i32 %35, 1
  store i32 %507, ptr %7, align 8, !tbaa !14
  %508 = zext nneg i32 %35 to i64
  %509 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %508
  store i8 %34, ptr %509, align 1, !tbaa !13
  %510 = zext nneg i32 %507 to i64
  %511 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %510
  store i8 0, ptr %511, align 1, !tbaa !13
  br label %.thread1094

512:                                              ; preds = %504
  %513 = load ptr, ptr %25, align 8, !tbaa !24
  %514 = zext nneg i32 %35 to i64
  %515 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %514
  %516 = ptrtoint ptr %515 to i64
  %517 = ptrtoint ptr %513 to i64
  %518 = sub i64 %516, %517
  %519 = call i32 @hook_path_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %513, i64 noundef %518)
  %520 = load i32, ptr %7, align 8, !tbaa !14
  %521 = add i32 %520, 1
  store i32 %521, ptr %7, align 8, !tbaa !14
  %522 = zext i32 %520 to i64
  %523 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %522
  store i8 63, ptr %523, align 1, !tbaa !13
  %524 = zext i32 %521 to i64
  %525 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %524
  store i8 0, ptr %525, align 1, !tbaa !13
  store ptr %525, ptr %24, align 8, !tbaa !29
  %.not1072 = icmp eq i32 %519, 0
  br i1 %.not1072, label %.thread1094, label %.thread1113

.thread1113:                                      ; preds = %501, %512
  store i32 11, ptr %0, align 8, !tbaa !5
  %526 = add nuw i64 %.09871210, 1
  br label %906

527:                                              ; preds = %39
  switch i8 %34, label %531 [
    i8 32, label %.thread1094
    i8 13, label %528
    i8 10, label %529
    i8 72, label %530
  ]

528:                                              ; preds = %527
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

529:                                              ; preds = %527
  store i8 9, ptr %22, align 2, !tbaa !21
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 25, ptr %8, align 4, !tbaa !16
  br label %.thread1094

530:                                              ; preds = %527
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 14, ptr %8, align 4, !tbaa !16
  br label %.thread1094

531:                                              ; preds = %527
  store i32 5, ptr %0, align 8, !tbaa !5
  %532 = add nuw i64 %.09871210, 1
  br label %906

533:                                              ; preds = %39
  %cond7 = icmp eq i8 %34, 84
  br i1 %cond7, label %534, label %535

534:                                              ; preds = %533
  store i32 15, ptr %8, align 4, !tbaa !16
  br label %.thread1094

535:                                              ; preds = %533
  store i32 5, ptr %0, align 8, !tbaa !5
  %536 = add nuw i64 %.09871210, 1
  br label %906

537:                                              ; preds = %39
  %cond6 = icmp eq i8 %34, 84
  br i1 %cond6, label %538, label %539

538:                                              ; preds = %537
  store i32 16, ptr %8, align 4, !tbaa !16
  br label %.thread1094

539:                                              ; preds = %537
  store i32 5, ptr %0, align 8, !tbaa !5
  %540 = add nuw i64 %.09871210, 1
  br label %906

541:                                              ; preds = %39
  %cond5 = icmp eq i8 %34, 80
  br i1 %cond5, label %542, label %543

542:                                              ; preds = %541
  store i32 17, ptr %8, align 4, !tbaa !16
  br label %.thread1094

543:                                              ; preds = %541
  store i32 5, ptr %0, align 8, !tbaa !5
  %544 = add nuw i64 %.09871210, 1
  br label %906

545:                                              ; preds = %39
  %cond4 = icmp eq i8 %34, 47
  br i1 %cond4, label %546, label %547

546:                                              ; preds = %545
  store i32 18, ptr %8, align 4, !tbaa !16
  br label %.thread1094

547:                                              ; preds = %545
  store i32 5, ptr %0, align 8, !tbaa !5
  %548 = add nuw i64 %.09871210, 1
  br label %906

549:                                              ; preds = %39
  %550 = add i8 %34, -58
  %or.cond71 = icmp ult i8 %550, -9
  br i1 %or.cond71, label %551, label %553

551:                                              ; preds = %549
  store i32 6, ptr %0, align 8, !tbaa !5
  %552 = add nuw i64 %.09871210, 1
  br label %906

553:                                              ; preds = %549
  %554 = add nsw i8 %34, -48
  store i8 %554, ptr %23, align 1, !tbaa !20
  store i32 19, ptr %8, align 4, !tbaa !16
  br label %.thread1094

555:                                              ; preds = %39
  %556 = icmp eq i8 %34, 46
  br i1 %556, label %557, label %558

557:                                              ; preds = %555
  store i32 20, ptr %8, align 4, !tbaa !16
  br label %.thread1094

558:                                              ; preds = %555
  %559 = add i8 %34, -58
  %or.cond74 = icmp ult i8 %559, -10
  br i1 %or.cond74, label %560, label %562

560:                                              ; preds = %558
  store i32 6, ptr %0, align 8, !tbaa !5
  %561 = add nuw i64 %.09871210, 1
  br label %906

562:                                              ; preds = %558
  %563 = load i8, ptr %23, align 1, !tbaa !20
  %564 = mul i8 %563, 10
  %565 = add nsw i8 %34, -48
  %566 = add i8 %565, %564
  store i8 %566, ptr %23, align 1, !tbaa !20
  br label %.thread1094

567:                                              ; preds = %39
  %568 = add i8 %34, -58
  %or.cond77 = icmp ult i8 %568, -10
  br i1 %or.cond77, label %569, label %571

569:                                              ; preds = %567
  store i32 6, ptr %0, align 8, !tbaa !5
  %570 = add nuw i64 %.09871210, 1
  br label %906

571:                                              ; preds = %567
  %572 = add nsw i8 %34, -48
  store i8 %572, ptr %22, align 2, !tbaa !21
  store i32 21, ptr %8, align 4, !tbaa !16
  br label %.thread1094

573:                                              ; preds = %39
  switch i8 %34, label %581 [
    i8 32, label %574
    i8 13, label %578
    i8 10, label %579
  ]

574:                                              ; preds = %573
  %575 = load i32, ptr %19, align 8, !tbaa !22
  switch i32 %575, label %.thread1094 [
    i32 0, label %576
    i32 1, label %577
  ]

576:                                              ; preds = %574
  store i32 22, ptr %8, align 4, !tbaa !16
  br label %.thread1094

577:                                              ; preds = %574
  store i32 40, ptr %8, align 4, !tbaa !16
  br label %.thread1094

578:                                              ; preds = %573
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

579:                                              ; preds = %573
  store i32 3, ptr %0, align 8, !tbaa !5
  %580 = add nuw i64 %.09871210, 1
  br label %906

581:                                              ; preds = %573
  %582 = add i8 %34, -58
  %or.cond80 = icmp ult i8 %582, -10
  br i1 %or.cond80, label %583, label %585

583:                                              ; preds = %581
  store i32 6, ptr %0, align 8, !tbaa !5
  %584 = add nuw i64 %.09871210, 1
  br label %906

585:                                              ; preds = %581
  %586 = load i8, ptr %22, align 2, !tbaa !21
  %587 = mul i8 %586, 10
  %588 = add nsw i8 %34, -48
  %589 = add i8 %588, %587
  store i8 %589, ptr %22, align 2, !tbaa !21
  br label %.thread1094

590:                                              ; preds = %39
  %591 = zext i8 %34 to i32
  %592 = icmp eq i8 %34, 32
  br i1 %592, label %593, label %596

593:                                              ; preds = %590
  %594 = load i32, ptr %20, align 8, !tbaa !30
  %.not1067 = icmp eq i32 %594, 0
  br i1 %.not1067, label %.thread1094, label %595

595:                                              ; preds = %593
  store i32 42, ptr %8, align 4, !tbaa !16
  br label %.thread1094

596:                                              ; preds = %590
  %597 = add i8 %34, -58
  %or.cond83 = icmp ult i8 %597, -10
  br i1 %or.cond83, label %598, label %600

598:                                              ; preds = %596
  store i32 12, ptr %0, align 8, !tbaa !5
  %599 = add nuw i64 %.09871210, 1
  br label %906

600:                                              ; preds = %596
  %601 = load i32, ptr %20, align 8, !tbaa !30
  %602 = mul i32 %601, 10
  %603 = add nsw i32 %591, -48
  %604 = add i32 %603, %602
  store i32 %604, ptr %20, align 8, !tbaa !30
  %605 = load i32, ptr %21, align 4, !tbaa !31
  %606 = add i32 %605, 1
  store i32 %606, ptr %21, align 4, !tbaa !31
  %607 = icmp eq i32 %606, 3
  br i1 %607, label %608, label %.thread1094

608:                                              ; preds = %600
  store i32 41, ptr %8, align 4, !tbaa !16
  br label %.thread1094

609:                                              ; preds = %39
  switch i8 %34, label %613 [
    i8 32, label %610
    i8 13, label %611
    i8 10, label %612
  ]

610:                                              ; preds = %609
  store i32 42, ptr %8, align 4, !tbaa !16
  br label %.thread1094

611:                                              ; preds = %609
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

612:                                              ; preds = %609
  store i32 25, ptr %8, align 4, !tbaa !16
  br label %.thread1094

613:                                              ; preds = %609
  store i32 13, ptr %0, align 8, !tbaa !5
  %614 = add nuw i64 %.09871210, 1
  br label %906

615:                                              ; preds = %39
  switch i8 %34, label %.thread1094 [
    i8 13, label %616
    i8 10, label %617
  ]

616:                                              ; preds = %615
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

617:                                              ; preds = %615
  store i32 25, ptr %8, align 4, !tbaa !16
  br label %.thread1094

618:                                              ; preds = %39
  switch i8 %34, label %621 [
    i8 32, label %.thread1094
    i8 13, label %619
    i8 10, label %620
  ]

619:                                              ; preds = %618
  store i32 23, ptr %8, align 4, !tbaa !16
  br label %.thread1094

620:                                              ; preds = %618
  store i32 25, ptr %8, align 4, !tbaa !16
  br label %.thread1094

621:                                              ; preds = %618
  store i32 6, ptr %0, align 8, !tbaa !5
  %622 = add nuw i64 %.09871210, 1
  br label %906

623:                                              ; preds = %39
  %cond3 = icmp eq i8 %34, 10
  br i1 %cond3, label %624, label %639

624:                                              ; preds = %623
  %625 = load i32, ptr %19, align 8, !tbaa !22
  %626 = icmp eq i32 %625, 1
  br i1 %626, label %627, label %635

627:                                              ; preds = %624
  %628 = load i32, ptr %20, align 8, !tbaa !30
  %629 = add i32 %628, -100
  %or.cond = icmp ult i32 %629, 100
  br i1 %or.cond, label %630, label %635

630:                                              ; preds = %627
  %631 = call i32 @hook_on_hdrs_begin_run(ptr noundef nonnull %0, ptr noundef %1)
  %.not1066 = icmp eq i32 %631, 0
  br i1 %.not1066, label %634, label %632

632:                                              ; preds = %630
  store i32 11, ptr %0, align 8, !tbaa !5
  %633 = add nuw i64 %.09871210, 1
  br label %906

634:                                              ; preds = %630
  store i32 0, ptr %20, align 8, !tbaa !30
  store i32 0, ptr %21, align 4, !tbaa !31
  store i32 0, ptr %8, align 4, !tbaa !16
  br label %.thread1094

635:                                              ; preds = %627, %624
  store i32 24, ptr %8, align 4, !tbaa !16
  %636 = call i32 @hook_on_hdrs_begin_run(ptr noundef nonnull %0, ptr noundef %1)
  %.not1065 = icmp eq i32 %636, 0
  br i1 %.not1065, label %.thread1094, label %637

637:                                              ; preds = %635
  store i32 11, ptr %0, align 8, !tbaa !5
  %638 = add nuw i64 %.09871210, 1
  br label %906

639:                                              ; preds = %623
  store i32 3, ptr %0, align 8, !tbaa !5
  %640 = add nuw i64 %.09871210, 1
  br label %906

641:                                              ; preds = %39
  switch i8 %34, label %645 [
    i8 13, label %642
    i8 10, label %643
  ]

642:                                              ; preds = %641
  store i32 31, ptr %8, align 4, !tbaa !16
  br label %.thread1094

643:                                              ; preds = %641
  %644 = add nuw i64 %.09871210, 1
  br label %906

645:                                              ; preds = %39, %641
  store i32 0, ptr %7, align 8, !tbaa !14
  switch i8 %34, label %648 [
    i8 13, label %646
    i8 10, label %647
  ]

646:                                              ; preds = %645
  store i32 26, ptr %8, align 4, !tbaa !16
  br label %.thread1094

647:                                              ; preds = %645
  store i32 27, ptr %8, align 4, !tbaa !16
  br label %.thread1094

648:                                              ; preds = %645
  store i32 1, ptr %7, align 8, !tbaa !14
  store i8 %34, ptr %12, align 1, !tbaa !13
  store i8 0, ptr %13, align 1, !tbaa !13
  store i32 28, ptr %8, align 4, !tbaa !16
  br label %.thread1094

649:                                              ; preds = %39
  switch i8 %34, label %668 [
    i8 58, label %650
    i8 13, label %666
    i8 10, label %667
  ]

650:                                              ; preds = %649
  %651 = zext nneg i32 %35 to i64
  %652 = call i32 @hook_hdr_key_run(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %12, i64 noundef %651)
  store i32 0, ptr %14, align 4, !tbaa !32
  %653 = load i32, ptr %7, align 8, !tbaa !14
  switch i32 %653, label %674 [
    i32 4, label %654
    i32 10, label %656
    i32 12, label %658
    i32 14, label %660
    i32 16, label %662
    i32 17, label %664
  ]

654:                                              ; preds = %650
  %655 = call i32 @strcasecmp(ptr noundef nonnull %12, ptr noundef nonnull @.str.1) #7
  %.not1063 = icmp eq i32 %655, 0
  br i1 %.not1063, label %.sink.split, label %674

656:                                              ; preds = %650
  %657 = call i32 @strcasecmp(ptr noundef nonnull %12, ptr noundef nonnull @.str.2) #7
  %.not1062 = icmp eq i32 %657, 0
  br i1 %.not1062, label %.sink.split, label %674

658:                                              ; preds = %650
  %659 = call i32 @strcasecmp(ptr noundef nonnull %12, ptr noundef nonnull @.str.3) #7
  %.not1061 = icmp eq i32 %659, 0
  br i1 %.not1061, label %.sink.split, label %674

660:                                              ; preds = %650
  %661 = call i32 @strcasecmp(ptr noundef nonnull %12, ptr noundef nonnull @.str.4) #7
  %.not1060 = icmp eq i32 %661, 0
  br i1 %.not1060, label %.sink.split, label %674

662:                                              ; preds = %650
  %663 = call i32 @strcasecmp(ptr noundef nonnull %12, ptr noundef nonnull @.str.5) #7
  %.not1059 = icmp eq i32 %663, 0
  br i1 %.not1059, label %.sink.split, label %674

664:                                              ; preds = %650
  %665 = call i32 @strcasecmp(ptr noundef nonnull %12, ptr noundef nonnull @.str.6) #7
  %.not1058 = icmp eq i32 %665, 0
  br i1 %.not1058, label %.sink.split, label %674

666:                                              ; preds = %649
  store i32 26, ptr %8, align 4, !tbaa !16
  br label %.thread1094

667:                                              ; preds = %649
  store i32 27, ptr %8, align 4, !tbaa !16
  br label %.thread1094

668:                                              ; preds = %649
  %669 = add nuw nsw i32 %35, 1
  store i32 %669, ptr %7, align 8, !tbaa !14
  %670 = zext nneg i32 %35 to i64
  %671 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %670
  store i8 %34, ptr %671, align 1, !tbaa !13
  %672 = zext nneg i32 %669 to i64
  %673 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %672
  store i8 0, ptr %673, align 1, !tbaa !13
  br label %.thread1094

.sink.split:                                      ; preds = %664, %662, %660, %658, %656, %654
  %.sink1340 = phi i32 [ 5, %654 ], [ 1, %656 ], [ 6, %658 ], [ 3, %660 ], [ 2, %662 ], [ 4, %664 ]
  store i32 %.sink1340, ptr %14, align 4, !tbaa !32
  br label %674

674:                                              ; preds = %.sink.split, %650, %654, %656, %658, %660, %662, %664
  store i32 0, ptr %7, align 8, !tbaa !14
  store i32 29, ptr %8, align 4, !tbaa !16
  %.not1064 = icmp eq i32 %652, 0
  br i1 %.not1064, label %.thread1094, label %675

675:                                              ; preds = %674
  store i32 11, ptr %0, align 8, !tbaa !5
  %676 = add nuw i64 %.09871210, 1
  br label %906

677:                                              ; preds = %39
  switch i8 %34, label %687 [
    i8 32, label %.thread1094
    i8 13, label %678
    i8 10, label %685
  ]

678:                                              ; preds = %677
  %679 = add nuw nsw i32 %35, 1
  store i32 %679, ptr %7, align 8, !tbaa !14
  %680 = zext nneg i32 %35 to i64
  %681 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %680
  store i8 32, ptr %681, align 1, !tbaa !13
  %682 = zext nneg i32 %679 to i64
  %683 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %682
  store i8 0, ptr %683, align 1, !tbaa !13
  store i32 30, ptr %8, align 4, !tbaa !16
  %684 = add i64 %.09871210, -1
  br label %.thread1094

685:                                              ; preds = %677
  store i32 7, ptr %0, align 8, !tbaa !5
  %686 = add nuw i64 %.09871210, 1
  br label %906

687:                                              ; preds = %677
  %688 = add nuw nsw i32 %35, 1
  store i32 %688, ptr %7, align 8, !tbaa !14
  %689 = zext nneg i32 %35 to i64
  %690 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %689
  store i8 %34, ptr %690, align 1, !tbaa !13
  %691 = zext nneg i32 %688 to i64
  %692 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %691
  store i8 0, ptr %692, align 1, !tbaa !13
  store i32 30, ptr %8, align 4, !tbaa !16
  br label %.thread1094

693:                                              ; preds = %39
  store i32 0, ptr %5, align 4, !tbaa !23
  switch i8 %34, label %.thread1120 [
    i8 13, label %694
    i8 10, label %754
  ]

694:                                              ; preds = %693
  %695 = load i32, ptr %14, align 4, !tbaa !32
  switch i32 %695, label %.thread1124 [
    i32 6, label %744
    i32 5, label %761
    i32 3, label %696
    i32 1, label %703
    i32 4, label %731
  ]

696:                                              ; preds = %694
  %697 = zext nneg i32 %35 to i64
  %698 = call i64 @str_to_uint64(ptr noundef nonnull %12, i64 noundef %697, ptr noundef nonnull %5)
  store i64 %698, ptr %9, align 8, !tbaa !33
  store i64 %698, ptr %10, align 8, !tbaa !34
  %699 = load i32, ptr %5, align 4, !tbaa !23
  %700 = icmp eq i32 %699, 1
  br i1 %700, label %701, label %.thread1124

701:                                              ; preds = %696
  store i32 1, ptr %0, align 8, !tbaa !5
  %702 = add nuw i64 %.09871210, 1
  br label %906

703:                                              ; preds = %694
  %704 = load i8, ptr %12, align 4, !tbaa !13
  %705 = sext i8 %704 to i32
  %706 = add nsw i32 %705, -67
  %707 = call i32 @llvm.fshl.i32(i32 %706, i32 %706, i32 29)
  switch i32 %707, label %.thread1124 [
    i32 1, label %708
    i32 5, label %708
    i32 4, label %721
    i32 0, label %721
  ]

708:                                              ; preds = %703, %703
  %.not1055 = icmp eq i32 %35, 10
  br i1 %.not1055, label %709, label %.thread1124

709:                                              ; preds = %708
  %710 = load i32, ptr %13, align 4, !tbaa !23
  %711 = icmp eq i32 %710, 762340709
  br i1 %711, label %712, label %.thread1124

712:                                              ; preds = %709
  %713 = load i32, ptr %15, align 4, !tbaa !23
  %714 = icmp eq i32 %713, 1986620481
  br i1 %714, label %715, label %.thread1124

715:                                              ; preds = %712
  %716 = load i8, ptr %17, align 1, !tbaa !13
  %717 = icmp eq i8 %716, 101
  br i1 %717, label %718, label %.thread1124

718:                                              ; preds = %715
  %719 = load i32, ptr %11, align 8, !tbaa !17
  %720 = or i32 %719, 2
  store i32 %720, ptr %11, align 8, !tbaa !17
  br label %.thread1124

721:                                              ; preds = %703, %703
  %.not1054 = icmp eq i32 %35, 5
  br i1 %.not1054, label %722, label %.thread1124

722:                                              ; preds = %721
  %723 = load i32, ptr %12, align 4, !tbaa !23
  %724 = icmp eq i32 %723, 1936682083
  br i1 %724, label %725, label %.thread1124

725:                                              ; preds = %722
  %726 = load i8, ptr %16, align 4, !tbaa !13
  %727 = icmp eq i8 %726, 101
  br i1 %727, label %728, label %.thread1124

728:                                              ; preds = %725
  %729 = load i32, ptr %11, align 8, !tbaa !17
  %730 = or i32 %729, 4
  store i32 %730, ptr %11, align 8, !tbaa !17
  br label %.thread1124

731:                                              ; preds = %694
  %.not1052 = icmp eq i32 %35, 7
  br i1 %.not1052, label %732, label %.thread1124

732:                                              ; preds = %731
  %733 = load i8, ptr %12, align 4, !tbaa !13
  switch i8 %733, label %.thread1124 [
    i8 99, label %734
    i8 67, label %734
  ]

734:                                              ; preds = %732, %732
  %735 = load i32, ptr %13, align 4, !tbaa !23
  %736 = icmp eq i32 %735, 1802401128
  br i1 %736, label %737, label %.thread1124

737:                                              ; preds = %734
  %738 = load i32, ptr %15, align 4, !tbaa !23
  %739 = and i32 %738, 65535
  %740 = icmp eq i32 %739, 25701
  br i1 %740, label %741, label %.thread1124

741:                                              ; preds = %737
  %742 = load i32, ptr %11, align 8, !tbaa !17
  %743 = or i32 %742, 1
  store i32 %743, ptr %11, align 8, !tbaa !17
  br label %.thread1124

744:                                              ; preds = %694
  %.not1056 = icmp eq i32 %35, 9
  br i1 %.not1056, label %745, label %.thread1124

745:                                              ; preds = %744
  %746 = load i8, ptr %12, align 4, !tbaa !13
  switch i8 %746, label %.thread1124 [
    i8 109, label %747
    i8 77, label %747
  ]

747:                                              ; preds = %745, %745
  %748 = load i32, ptr %13, align 4, !tbaa !23
  %749 = icmp eq i32 %748, 1769237621
  br i1 %749, label %750, label %.thread1124

750:                                              ; preds = %747
  %751 = load i32, ptr %15, align 4, !tbaa !23
  %752 = icmp eq i32 %751, 1953653104
  br i1 %752, label %753, label %.thread1124

753:                                              ; preds = %750
  store i8 1, ptr %18, align 4, !tbaa !19
  br label %.thread1124

754:                                              ; preds = %693
  store i32 7, ptr %0, align 8, !tbaa !5
  %755 = add nuw i64 %.09871210, 1
  br label %906

.thread1120:                                      ; preds = %693
  %756 = add nuw nsw i32 %35, 1
  store i32 %756, ptr %7, align 8, !tbaa !14
  %757 = zext nneg i32 %35 to i64
  %758 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %757
  store i8 %34, ptr %758, align 1, !tbaa !13
  %759 = zext nneg i32 %756 to i64
  %760 = getelementptr inbounds [8192 x i8], ptr %12, i64 0, i64 %759
  store i8 0, ptr %760, align 1, !tbaa !13
  br label %.thread1094

.thread1124:                                      ; preds = %694, %731, %732, %741, %737, %734, %703, %721, %728, %725, %722, %708, %718, %715, %712, %709, %696, %744, %745, %753, %750, %747
  store i32 26, ptr %8, align 4, !tbaa !16
  br label %.thread1094

761:                                              ; preds = %694
  %762 = zext nneg i32 %35 to i64
  %763 = call i32 @hook_hostname_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %12, i64 noundef %762)
  store i32 26, ptr %8, align 4, !tbaa !16
  %.not1057 = icmp eq i32 %763, 0
  br i1 %.not1057, label %.thread1094, label %764

764:                                              ; preds = %761
  store i32 11, ptr %0, align 8, !tbaa !5
  %765 = add nuw i64 %.09871210, 1
  br label %906

766:                                              ; preds = %39
  %cond2 = icmp eq i8 %34, 10
  br i1 %cond2, label %767, label %770

767:                                              ; preds = %766
  %768 = load i32, ptr %11, align 8, !tbaa !17
  %769 = and i32 %768, 8
  %.not1049 = icmp eq i32 %769, 0
  br i1 %.not1049, label %.thread1127, label %772

.thread1127:                                      ; preds = %767
  store i32 27, ptr %8, align 4, !tbaa !16
  br label %.thread1094

770:                                              ; preds = %766
  store i32 7, ptr %0, align 8, !tbaa !5
  %771 = add nuw i64 %.09871210, 1
  br label %906

772:                                              ; preds = %767
  %773 = call i32 @hook_on_msg_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  store i32 0, ptr %8, align 4, !tbaa !16
  %.not1051 = icmp eq i32 %773, 0
  br i1 %.not1051, label %.thread1094, label %774

774:                                              ; preds = %772
  store i32 11, ptr %0, align 8, !tbaa !5
  %775 = add nuw i64 %.09871210, 1
  br label %906

776:                                              ; preds = %39
  switch i8 %34, label %789 [
    i8 13, label %777
    i8 10, label %786
    i8 9, label %788
  ]

777:                                              ; preds = %776
  %778 = zext nneg i32 %35 to i64
  %779 = call i32 @hook_hdr_val_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %12, i64 noundef %778)
  store i32 31, ptr %8, align 4, !tbaa !16
  %.not1046 = icmp eq i32 %779, 0
  br i1 %.not1046, label %782, label %780

780:                                              ; preds = %777
  store i32 11, ptr %0, align 8, !tbaa !5
  %781 = add nuw i64 %.09871210, 1
  br label %906

782:                                              ; preds = %777
  %783 = call i32 @hook_on_hdrs_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  %.not1047 = icmp eq i32 %783, 0
  br i1 %.not1047, label %.thread1094, label %784

784:                                              ; preds = %782
  store i32 11, ptr %0, align 8, !tbaa !5
  %785 = add nuw i64 %.09871210, 1
  br label %906

786:                                              ; preds = %776
  store i32 7, ptr %0, align 8, !tbaa !5
  %787 = add nuw i64 %.09871210, 1
  br label %906

788:                                              ; preds = %776
  store i32 30, ptr %8, align 4, !tbaa !16
  br label %.thread1094

789:                                              ; preds = %776
  %790 = zext nneg i32 %35 to i64
  %791 = call i32 @hook_hdr_val_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %12, i64 noundef %790)
  store i32 1, ptr %7, align 8, !tbaa !14
  store i8 %34, ptr %12, align 1, !tbaa !13
  store i8 0, ptr %13, align 1, !tbaa !13
  store i32 28, ptr %8, align 4, !tbaa !16
  %.not1048 = icmp eq i32 %791, 0
  br i1 %.not1048, label %.thread1094, label %792

792:                                              ; preds = %789
  store i32 11, ptr %0, align 8, !tbaa !5
  %793 = add nuw i64 %.09871210, 1
  br label %906

794:                                              ; preds = %39
  %cond1 = icmp eq i8 %34, 10
  br i1 %cond1, label %795, label %808

795:                                              ; preds = %794
  store i32 0, ptr %7, align 8, !tbaa !14
  %796 = load i32, ptr %11, align 8, !tbaa !17
  %797 = and i32 %796, 8
  %.not1042 = icmp eq i32 %797, 0
  br i1 %.not1042, label %798, label %804

798:                                              ; preds = %795
  %799 = and i32 %796, 1
  %.not1043 = icmp eq i32 %799, 0
  br i1 %.not1043, label %801, label %800

800:                                              ; preds = %798
  store i32 34, ptr %8, align 4, !tbaa !16
  br label %.thread1094

801:                                              ; preds = %798
  %802 = load i64, ptr %9, align 8, !tbaa !33
  %.not1044 = icmp eq i64 %802, 0
  br i1 %.not1044, label %804, label %803

803:                                              ; preds = %801
  store i32 33, ptr %8, align 4, !tbaa !16
  br label %.thread1094

804:                                              ; preds = %801, %795
  %805 = call i32 @hook_on_msg_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  store i32 0, ptr %8, align 4, !tbaa !16
  %.not1045 = icmp eq i32 %805, 0
  br i1 %.not1045, label %.thread1094, label %806

806:                                              ; preds = %804
  store i32 11, ptr %0, align 8, !tbaa !5
  %807 = add nuw i64 %.09871210, 1
  br label %906

808:                                              ; preds = %794
  store i32 7, ptr %0, align 8, !tbaa !5
  %809 = add nuw i64 %.09871210, 1
  br label %906

810:                                              ; preds = %39
  %811 = load i32, ptr %11, align 8, !tbaa !17
  %812 = and i32 %811, 8
  %.not1038 = icmp eq i32 %812, 0
  br i1 %.not1038, label %815, label %813

813:                                              ; preds = %810
  %814 = call i32 @hook_on_msg_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  store i32 0, ptr %8, align 4, !tbaa !16
  br label %.thread1094

815:                                              ; preds = %810
  %816 = and i32 %811, 1
  %.not1039 = icmp eq i32 %816, 0
  br i1 %.not1039, label %819, label %817

817:                                              ; preds = %815
  store i32 34, ptr %8, align 4, !tbaa !16
  %818 = add i64 %.09871210, -1
  br label %.thread1094

819:                                              ; preds = %815
  %820 = load i64, ptr %9, align 8, !tbaa !33
  %.not1040 = icmp eq i64 %820, 0
  br i1 %.not1040, label %823, label %821

821:                                              ; preds = %819
  store i32 33, ptr %8, align 4, !tbaa !16
  %822 = add i64 %.09871210, -1
  br label %.thread1094

823:                                              ; preds = %819
  %824 = call i32 @hook_on_msg_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  store i32 0, ptr %8, align 4, !tbaa !16
  %.not1041 = icmp eq i32 %824, 0
  br i1 %.not1041, label %.thread1094, label %825

825:                                              ; preds = %823
  store i32 11, ptr %0, align 8, !tbaa !5
  %826 = add nuw i64 %.09871210, 1
  br label %906

827:                                              ; preds = %39
  %828 = zext i8 %34 to i64
  %829 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %828
  %830 = load i8, ptr %829, align 1, !tbaa !13
  %831 = icmp eq i8 %830, -1
  br i1 %831, label %832, label %834

832:                                              ; preds = %827
  store i32 8, ptr %0, align 8, !tbaa !5
  %833 = add nuw i64 %.09871210, 1
  br label %906

834:                                              ; preds = %827
  %835 = sext i8 %830 to i64
  store i64 %835, ptr %9, align 8, !tbaa !33
  store i32 35, ptr %8, align 4, !tbaa !16
  br label %.thread1094

836:                                              ; preds = %39
  %837 = icmp eq i8 %34, 13
  br i1 %837, label %838, label %839

838:                                              ; preds = %836
  store i32 36, ptr %8, align 4, !tbaa !16
  br label %.thread1094

839:                                              ; preds = %836
  %840 = zext i8 %34 to i64
  %841 = getelementptr inbounds [256 x i8], ptr @unhex, i64 0, i64 %840
  %842 = load i8, ptr %841, align 1, !tbaa !13
  %843 = icmp eq i8 %842, -1
  br i1 %843, label %844, label %846

844:                                              ; preds = %839
  store i32 8, ptr %0, align 8, !tbaa !5
  %845 = add nuw i64 %.09871210, 1
  br label %906

846:                                              ; preds = %839
  %847 = load i64, ptr %9, align 8, !tbaa !33
  %848 = shl i64 %847, 4
  %849 = sext i8 %842 to i64
  %850 = add i64 %848, %849
  store i64 %850, ptr %9, align 8, !tbaa !33
  br label %.thread1094

851:                                              ; preds = %39
  %.not1036 = icmp eq i8 %34, 10
  br i1 %.not1036, label %854, label %852

852:                                              ; preds = %851
  store i32 8, ptr %0, align 8, !tbaa !5
  %853 = add nuw i64 %.09871210, 1
  br label %906

854:                                              ; preds = %851
  %855 = load i64, ptr %9, align 8, !tbaa !33
  store i64 %855, ptr %10, align 8, !tbaa !34
  %856 = icmp eq i64 %855, 0
  br i1 %856, label %857, label %861

857:                                              ; preds = %854
  %858 = call i32 @hook_on_chunks_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  %859 = load i32, ptr %11, align 8, !tbaa !17
  %860 = or i32 %859, 8
  store i32 %860, ptr %11, align 8, !tbaa !17
  br label %863

861:                                              ; preds = %854
  %862 = call i32 @hook_on_new_chunk_run(ptr noundef nonnull %0, ptr noundef %1)
  br label %863

863:                                              ; preds = %861, %857
  %storemerge = phi i32 [ 37, %861 ], [ 25, %857 ]
  %.12 = phi i32 [ %862, %861 ], [ %858, %857 ]
  store i32 %storemerge, ptr %8, align 4, !tbaa !16
  %.not1037 = icmp eq i32 %.12, 0
  br i1 %.not1037, label %.thread1094, label %864

864:                                              ; preds = %863
  store i32 11, ptr %0, align 8, !tbaa !5
  %865 = add nuw i64 %.09871210, 1
  br label %906

866:                                              ; preds = %39
  %gepdiff1033 = sub nsw i64 %3, %.09871210
  %867 = load i64, ptr %9, align 8, !tbaa !33
  %gepdiff1033. = call i64 @llvm.umin.i64(i64 %gepdiff1033, i64 %867)
  %.not1034 = icmp eq i64 %gepdiff1033., 0
  br i1 %.not1034, label %872, label %868

868:                                              ; preds = %866
  %869 = call i32 @hook_body_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %33, i64 noundef %gepdiff1033.)
  %870 = add i64 %.09871210, -1
  %871 = add i64 %870, %gepdiff1033.
  %.pre = load i64, ptr %9, align 8, !tbaa !33
  br label %872

872:                                              ; preds = %868, %866
  %873 = phi i64 [ %.pre, %868 ], [ %867, %866 ]
  %.13 = phi i32 [ %869, %868 ], [ 0, %866 ]
  %.5 = phi i64 [ %871, %868 ], [ %.09871210, %866 ]
  %874 = icmp eq i64 %gepdiff1033., %873
  br i1 %874, label %875, label %876

875:                                              ; preds = %872
  store i32 38, ptr %8, align 4, !tbaa !16
  br label %876

876:                                              ; preds = %875, %872
  %877 = sub i64 %873, %gepdiff1033.
  store i64 %877, ptr %9, align 8, !tbaa !33
  %.not1035 = icmp eq i32 %.13, 0
  br i1 %.not1035, label %.thread1094, label %878

878:                                              ; preds = %876
  store i32 11, ptr %0, align 8, !tbaa !5
  %879 = add i64 %.5, 1
  br label %906

880:                                              ; preds = %39
  %.not1032 = icmp eq i8 %34, 13
  br i1 %.not1032, label %883, label %881

881:                                              ; preds = %880
  store i32 9, ptr %0, align 8, !tbaa !5
  %882 = add nuw i64 %.09871210, 1
  br label %906

883:                                              ; preds = %880
  store i32 39, ptr %8, align 4, !tbaa !16
  br label %.thread1094

884:                                              ; preds = %39
  %.not1030 = icmp eq i8 %34, 10
  br i1 %.not1030, label %887, label %885

885:                                              ; preds = %884
  store i32 9, ptr %0, align 8, !tbaa !5
  %886 = add nuw i64 %.09871210, 1
  br label %906

887:                                              ; preds = %884
  store i64 0, ptr %10, align 8, !tbaa !34
  store i32 34, ptr %8, align 4, !tbaa !16
  %888 = call i32 @hook_on_chunk_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  %.not1031 = icmp eq i32 %888, 0
  br i1 %.not1031, label %.thread1094, label %889

889:                                              ; preds = %887
  store i32 11, ptr %0, align 8, !tbaa !5
  %890 = add nuw i64 %.09871210, 1
  br label %906

891:                                              ; preds = %39
  %gepdiff = sub nsw i64 %3, %.09871210
  %892 = load i64, ptr %9, align 8, !tbaa !33
  %gepdiff. = call i64 @llvm.umin.i64(i64 %gepdiff, i64 %892)
  %.not = icmp eq i64 %gepdiff., 0
  br i1 %.not, label %.sink.split1341, label %893

893:                                              ; preds = %891
  %894 = call i32 @hook_body_run(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %33, i64 noundef %gepdiff.)
  %895 = add i64 %.09871210, -1
  %896 = add i64 %895, %gepdiff.
  %897 = load i64, ptr %9, align 8, !tbaa !33
  %898 = sub i64 %897, %gepdiff.
  store i64 %898, ptr %9, align 8, !tbaa !33
  %899 = icmp eq i64 %897, %gepdiff.
  br i1 %899, label %.sink.split1341, label %901

.sink.split1341:                                  ; preds = %891, %893
  %.6.ph = phi i64 [ %896, %893 ], [ %.09871210, %891 ]
  %900 = call i32 @hook_on_msg_complete_run(ptr noundef nonnull %0, ptr noundef %1)
  store i32 0, ptr %8, align 4, !tbaa !16
  br label %901

901:                                              ; preds = %.sink.split1341, %893
  %.14 = phi i32 [ %894, %893 ], [ %900, %.sink.split1341 ]
  %.6 = phi i64 [ %896, %893 ], [ %.6.ph, %.sink.split1341 ]
  %.not1029 = icmp eq i32 %.14, 0
  br i1 %.not1029, label %.thread1094, label %902

902:                                              ; preds = %901
  store i32 11, ptr %0, align 8, !tbaa !5
  %903 = add i64 %.6, 1
  br label %906

904:                                              ; preds = %39
  store i32 10, ptr %0, align 8, !tbaa !5
  %905 = add nuw i64 %.09871210, 1
  br label %906

906:                                              ; preds = %129, %904, %902, %889, %885, %881, %878, %864, %852, %844, %832, %825, %808, %806, %792, %786, %784, %780, %774, %770, %764, %754, %701, %685, %675, %643, %639, %637, %632, %621, %613, %598, %583, %579, %569, %560, %551, %547, %543, %539, %535, %531, %.thread1113, %.thread1105, %.thread1097, %340, %338, %328, %308, %299, %275, %265, %253, %216, %207, %198, %196, %158, %134, %65, %62, %47, %37
  %.3 = phi i64 [ %38, %37 ], [ %905, %904 ], [ %903, %902 ], [ %886, %885 ], [ %890, %889 ], [ %882, %881 ], [ %879, %878 ], [ %853, %852 ], [ %865, %864 ], [ %845, %844 ], [ %833, %832 ], [ %826, %825 ], [ %807, %806 ], [ %809, %808 ], [ %793, %792 ], [ %787, %786 ], [ %781, %780 ], [ %785, %784 ], [ %775, %774 ], [ %771, %770 ], [ %765, %764 ], [ %755, %754 ], [ %702, %701 ], [ %686, %685 ], [ %676, %675 ], [ %644, %643 ], [ %633, %632 ], [ %638, %637 ], [ %640, %639 ], [ %622, %621 ], [ %614, %613 ], [ %599, %598 ], [ %584, %583 ], [ %580, %579 ], [ %570, %569 ], [ %561, %560 ], [ %552, %551 ], [ %548, %547 ], [ %544, %543 ], [ %540, %539 ], [ %536, %535 ], [ %532, %531 ], [ %526, %.thread1113 ], [ %467, %.thread1105 ], [ %399, %.thread1097 ], [ %339, %338 ], [ %341, %340 ], [ 1, %328 ], [ %300, %299 ], [ %309, %308 ], [ %276, %275 ], [ 1, %265 ], [ %254, %253 ], [ %217, %216 ], [ %208, %207 ], [ %197, %196 ], [ %199, %198 ], [ %159, %158 ], [ %135, %134 ], [ %48, %47 ], [ %66, %65 ], [ %63, %62 ], [ %130, %129 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #6
  br label %.loopexit

.thread1094:                                      ; preds = %821, %817, %803, %800, %666, %667, %668, %501, %502, %503, %506, %433, %439, %445, %446, %447, %358, %371, %372, %373, %379, %804, %574, %43, %43, %277, %901, %887, %876, %863, %823, %788, %782, %789, %772, %761, %677, %678, %687, %674, %646, %647, %648, %634, %635, %618, %619, %620, %616, %617, %615, %610, %611, %612, %600, %608, %593, %595, %578, %585, %577, %576, %527, %528, %529, %530, %512, %453, %385, %331, %._crit_edge, %142, %143, %152, %64, %883, %846, %838, %834, %813, %642, %571, %562, %557, %553, %546, %542, %538, %534, %477, %409, %351, %312, %301, %284, %239, %229, %220, %210, %201, %163, %136, %.thread1089, %.thread1120, %.thread1124, %.thread1127
  %.8.ph = phi i64 [ %.09871210, %.thread1127 ], [ %.09871210, %.thread1124 ], [ %.09871210, %.thread1120 ], [ %.09871210, %.thread1089 ], [ %.09871210, %804 ], [ %.09871210, %574 ], [ %.09871210, %43 ], [ %.09871210, %64 ], [ %.09871210, %43 ], [ %.09871210, %136 ], [ %.09871210, %142 ], [ %.09871210, %143 ], [ %.09871210, %152 ], [ %.09871210, %._crit_edge ], [ %.09871210, %163 ], [ %.09871210, %201 ], [ %.09871210, %210 ], [ %.09871210, %239 ], [ %.09871210, %229 ], [ %.09871210, %220 ], [ %.2989, %277 ], [ %.09871210, %301 ], [ %.09871210, %284 ], [ %.3990, %331 ], [ %.09871210, %312 ], [ %.09871210, %385 ], [ %.09871210, %351 ], [ %.09871210, %453 ], [ %.09871210, %409 ], [ %.09871210, %512 ], [ %.09871210, %477 ], [ %.09871210, %527 ], [ %.09871210, %528 ], [ %.09871210, %529 ], [ %.09871210, %530 ], [ %.09871210, %534 ], [ %.09871210, %538 ], [ %.09871210, %542 ], [ %.09871210, %546 ], [ %.09871210, %553 ], [ %.09871210, %562 ], [ %.09871210, %557 ], [ %.09871210, %571 ], [ %.09871210, %577 ], [ %.09871210, %576 ], [ %.09871210, %578 ], [ %.09871210, %585 ], [ %.09871210, %600 ], [ %.09871210, %608 ], [ %.09871210, %593 ], [ %.09871210, %595 ], [ %.09871210, %610 ], [ %.09871210, %611 ], [ %.09871210, %612 ], [ %.09871210, %616 ], [ %.09871210, %617 ], [ %.09871210, %615 ], [ %.09871210, %618 ], [ %.09871210, %619 ], [ %.09871210, %620 ], [ %.09871210, %635 ], [ %.09871210, %634 ], [ %.09871210, %642 ], [ %.09871210, %646 ], [ %.09871210, %647 ], [ %.09871210, %648 ], [ %.09871210, %674 ], [ %.09871210, %677 ], [ %684, %678 ], [ %.09871210, %687 ], [ %.09871210, %761 ], [ %.09871210, %772 ], [ %.09871210, %782 ], [ %.09871210, %788 ], [ %.09871210, %789 ], [ %.09871210, %823 ], [ %.09871210, %813 ], [ %.09871210, %834 ], [ %.09871210, %846 ], [ %.09871210, %838 ], [ %.09871210, %863 ], [ %.5, %876 ], [ %.09871210, %883 ], [ %.09871210, %887 ], [ %.6, %901 ], [ %.09871210, %379 ], [ %.09871210, %373 ], [ %.09871210, %372 ], [ %.09871210, %371 ], [ %.09871210, %358 ], [ %.09871210, %447 ], [ %.09871210, %446 ], [ %.09871210, %445 ], [ %.09871210, %439 ], [ %.09871210, %433 ], [ %.09871210, %506 ], [ %.09871210, %503 ], [ %.09871210, %502 ], [ %.09871210, %501 ], [ %.09871210, %668 ], [ %.09871210, %667 ], [ %.09871210, %666 ], [ %.09871210, %800 ], [ %.09871210, %803 ], [ %822, %821 ], [ %818, %817 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #6
  %907 = add i64 %.8.ph, 1
  %908 = icmp ult i64 %907, %3
  br i1 %908, label %32, label %.loopexit, !llvm.loop !35

.loopexit:                                        ; preds = %.thread1094, %4, %906
  %.4 = phi i64 [ %.3, %906 ], [ 0, %4 ], [ %907, %.thread1094 ]
  ret i64 %.4
}

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_msg_begin_run(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_method_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_scheme_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_host_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_port_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_path_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_uri_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_args_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_hdrs_begin_run(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_hdr_key_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @strcasecmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_hostname_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @str_to_uint64(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_msg_complete_run(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_hdr_val_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_hdrs_complete_run(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_chunks_complete_run(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_new_chunk_run(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_body_run(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @hook_on_chunk_complete_run(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.fshl.i32(i32, i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umin.i64(i64, i64) #4

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { inlinehint 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 #3 = { mustprogress nofree 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { 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, !7, i64 0}
!6 = !{!"htparser", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !8, i64 28, !8, i64 29, !8, i64 30, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !7, i64 64, !7, i64 68, !11, i64 72, !11, i64 80, !11, i64 88, !11, i64 96, !11, i64 104, !11, i64 112, !7, i64 120, !8, i64 124}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!6, !10, i64 48}
!13 = !{!8, !8, i64 0}
!14 = !{!6, !7, i64 120}
!15 = !{!10, !10, i64 0}
!16 = !{!6, !7, i64 4}
!17 = !{!6, !7, i64 8}
!18 = !{!6, !7, i64 24}
!19 = !{!6, !8, i64 28}
!20 = !{!6, !8, i64 29}
!21 = !{!6, !8, i64 30}
!22 = !{!6, !7, i64 16}
!23 = !{!7, !7, i64 0}
!24 = !{!6, !11, i64 96}
!25 = !{!6, !11, i64 72}
!26 = !{!6, !7, i64 20}
!27 = !{!6, !11, i64 80}
!28 = !{!6, !11, i64 88}
!29 = !{!6, !11, i64 104}
!30 = !{!6, !7, i64 64}
!31 = !{!6, !7, i64 68}
!32 = !{!6, !7, i64 12}
!33 = !{!6, !10, i64 32}
!34 = !{!6, !10, i64 40}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass