; LLVM IR from itchio/go-brotli :: enc (static_dict)

; 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.DictWord = type { i8, i8, i16 }
%struct.BrotliDictionary = type { [32 x i8], [32 x i32], i64, ptr }

@kStaticDictionaryBuckets = external hidden constant [32768 x i16], align 16
@kStaticDictionaryWords = external hidden constant [31705 x %struct.DictWord], align 16
@kOmitLastNTransforms = external hidden constant [10 x i8], align 1

; Function Attrs: nounwind uwtable
define hidden i32 @BrotliFindAllStaticDictionaryMatches(ptr noundef %0, ptr noundef %1, i64 noundef %2, i64 noundef %3, ptr noundef %4) #0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i64, align 8
  %13 = alloca i32, align 4
  %14 = alloca %struct.DictWord, align 2
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i64, align 8
  %28 = alloca i32, align 4
  %29 = alloca %struct.DictWord, align 2
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca i64, align 8
  %37 = alloca i32, align 4
  %38 = alloca %struct.DictWord, align 2
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i32, align 4
  %45 = alloca %struct.DictWord, align 2
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca ptr, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i64 %2, ptr %8, align 8, !tbaa !9
  store i64 %3, ptr %9, align 8, !tbaa !9
  store ptr %4, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  store i32 0, ptr %11, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  %50 = load ptr, ptr %7, align 8, !tbaa !5
  %51 = call i32 @Hash(ptr noundef %50)
  %52 = zext i32 %51 to i64
  %53 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %52
  %54 = load i16, ptr %53, align 2, !tbaa !13
  %55 = zext i16 %54 to i64
  store i64 %55, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  %56 = load i64, ptr %12, align 8, !tbaa !9
  %57 = icmp ne i64 %56, 0
  %58 = xor i1 %57, true
  %59 = zext i1 %58 to i32
  store i32 %59, ptr %13, align 4, !tbaa !11
  br label %60

60:                                               ; preds = %1588, %1586, %5
  %61 = load i32, ptr %13, align 4, !tbaa !11
  %62 = icmp ne i32 %61, 0
  %63 = xor i1 %62, true
  br i1 %63, label %64, label %1589

64:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  %65 = load i64, ptr %12, align 8, !tbaa !9
  %66 = add i64 %65, 1
  store i64 %66, ptr %12, align 8, !tbaa !9
  %67 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %65
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %14, ptr align 4 %67, i64 4, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  %68 = getelementptr inbounds %struct.DictWord, ptr %14, i32 0, i32 0
  %69 = load i8, ptr %68, align 2, !tbaa !17
  %70 = zext i8 %69 to i32
  %71 = and i32 %70, 31
  %72 = sext i32 %71 to i64
  store i64 %72, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.BrotliDictionary, ptr %73, i32 0, i32 0
  %75 = load i64, ptr %15, align 8, !tbaa !9
  %76 = getelementptr inbounds [32 x i8], ptr %74, i64 0, i64 %75
  %77 = load i8, ptr %76, align 1, !tbaa !16
  %78 = zext i8 %77 to i32
  %79 = zext i32 %78 to i64
  %80 = shl i64 1, %79
  store i64 %80, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  %81 = getelementptr inbounds %struct.DictWord, ptr %14, i32 0, i32 2
  %82 = load i16, ptr %81, align 2, !tbaa !19
  %83 = zext i16 %82 to i64
  store i64 %83, ptr %17, align 8, !tbaa !9
  %84 = getelementptr inbounds %struct.DictWord, ptr %14, i32 0, i32 0
  %85 = load i8, ptr %84, align 2, !tbaa !17
  %86 = zext i8 %85 to i32
  %87 = and i32 %86, 128
  %88 = icmp ne i32 %87, 0
  %89 = xor i1 %88, true
  %90 = xor i1 %89, true
  %91 = zext i1 %90 to i32
  store i32 %91, ptr %13, align 4, !tbaa !11
  %92 = load i64, ptr %15, align 8, !tbaa !9
  %93 = trunc i64 %92 to i8
  %94 = getelementptr inbounds %struct.DictWord, ptr %14, i32 0, i32 0
  store i8 %93, ptr %94, align 2, !tbaa !17
  %95 = getelementptr inbounds %struct.DictWord, ptr %14, i32 0, i32 1
  %96 = load i8, ptr %95, align 1, !tbaa !20
  %97 = zext i8 %96 to i32
  %98 = icmp eq i32 %97, 0
  br i1 %98, label %99, label %1310

99:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  %100 = load ptr, ptr %6, align 8, !tbaa !5
  %101 = load ptr, ptr %7, align 8, !tbaa !5
  %102 = load i64, ptr %17, align 8, !tbaa !9
  %103 = load i64, ptr %15, align 8, !tbaa !9
  %104 = load i64, ptr %9, align 8, !tbaa !9
  %105 = call i64 @DictMatchLength(ptr noundef %100, ptr noundef %101, i64 noundef %102, i64 noundef %103, i64 noundef %104)
  store i64 %105, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #4
  %106 = load i64, ptr %18, align 8, !tbaa !9
  %107 = load i64, ptr %15, align 8, !tbaa !9
  %108 = icmp eq i64 %106, %107
  br i1 %108, label %109, label %114

109:                                              ; preds = %99
  %110 = load i64, ptr %17, align 8, !tbaa !9
  %111 = load i64, ptr %15, align 8, !tbaa !9
  %112 = load i64, ptr %15, align 8, !tbaa !9
  %113 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %110, i64 noundef %111, i64 noundef %112, ptr noundef %113)
  store i32 1, ptr %11, align 4, !tbaa !11
  br label %114

114:                                              ; preds = %109, %99
  %115 = load i64, ptr %18, align 8, !tbaa !9
  %116 = load i64, ptr %15, align 8, !tbaa !9
  %117 = sub i64 %116, 1
  %118 = icmp uge i64 %115, %117
  br i1 %118, label %119, label %173

119:                                              ; preds = %114
  %120 = load i64, ptr %17, align 8, !tbaa !9
  %121 = load i64, ptr %16, align 8, !tbaa !9
  %122 = mul i64 12, %121
  %123 = add i64 %120, %122
  %124 = load i64, ptr %15, align 8, !tbaa !9
  %125 = sub i64 %124, 1
  %126 = load i64, ptr %15, align 8, !tbaa !9
  %127 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %123, i64 noundef %125, i64 noundef %126, ptr noundef %127)
  %128 = load i64, ptr %15, align 8, !tbaa !9
  %129 = add i64 %128, 2
  %130 = load i64, ptr %9, align 8, !tbaa !9
  %131 = icmp ult i64 %129, %130
  br i1 %131, label %132, label %172

132:                                              ; preds = %119
  %133 = load ptr, ptr %7, align 8, !tbaa !5
  %134 = load i64, ptr %15, align 8, !tbaa !9
  %135 = sub i64 %134, 1
  %136 = getelementptr inbounds i8, ptr %133, i64 %135
  %137 = load i8, ptr %136, align 1, !tbaa !16
  %138 = zext i8 %137 to i32
  %139 = icmp eq i32 %138, 105
  br i1 %139, label %140, label %172

140:                                              ; preds = %132
  %141 = load ptr, ptr %7, align 8, !tbaa !5
  %142 = load i64, ptr %15, align 8, !tbaa !9
  %143 = getelementptr inbounds i8, ptr %141, i64 %142
  %144 = load i8, ptr %143, align 1, !tbaa !16
  %145 = zext i8 %144 to i32
  %146 = icmp eq i32 %145, 110
  br i1 %146, label %147, label %172

147:                                              ; preds = %140
  %148 = load ptr, ptr %7, align 8, !tbaa !5
  %149 = load i64, ptr %15, align 8, !tbaa !9
  %150 = add i64 %149, 1
  %151 = getelementptr inbounds i8, ptr %148, i64 %150
  %152 = load i8, ptr %151, align 1, !tbaa !16
  %153 = zext i8 %152 to i32
  %154 = icmp eq i32 %153, 103
  br i1 %154, label %155, label %172

155:                                              ; preds = %147
  %156 = load ptr, ptr %7, align 8, !tbaa !5
  %157 = load i64, ptr %15, align 8, !tbaa !9
  %158 = add i64 %157, 2
  %159 = getelementptr inbounds i8, ptr %156, i64 %158
  %160 = load i8, ptr %159, align 1, !tbaa !16
  %161 = zext i8 %160 to i32
  %162 = icmp eq i32 %161, 32
  br i1 %162, label %163, label %172

163:                                              ; preds = %155
  %164 = load i64, ptr %17, align 8, !tbaa !9
  %165 = load i64, ptr %16, align 8, !tbaa !9
  %166 = mul i64 49, %165
  %167 = add i64 %164, %166
  %168 = load i64, ptr %15, align 8, !tbaa !9
  %169 = add i64 %168, 3
  %170 = load i64, ptr %15, align 8, !tbaa !9
  %171 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %167, i64 noundef %169, i64 noundef %170, ptr noundef %171)
  br label %172

172:                                              ; preds = %163, %155, %147, %140, %132, %119
  store i32 1, ptr %11, align 4, !tbaa !11
  br label %173

173:                                              ; preds = %172, %114
  %174 = load i64, ptr %8, align 8, !tbaa !9
  store i64 %174, ptr %20, align 8, !tbaa !9
  %175 = load i64, ptr %15, align 8, !tbaa !9
  %176 = icmp ugt i64 %175, 9
  br i1 %176, label %177, label %182

177:                                              ; preds = %173
  %178 = load i64, ptr %20, align 8, !tbaa !9
  %179 = load i64, ptr %15, align 8, !tbaa !9
  %180 = sub i64 %179, 9
  %181 = call i64 @brotli_max_size_t(i64 noundef %178, i64 noundef %180)
  store i64 %181, ptr %20, align 8, !tbaa !9
  br label %182

182:                                              ; preds = %177, %173
  %183 = load i64, ptr %18, align 8, !tbaa !9
  %184 = load i64, ptr %15, align 8, !tbaa !9
  %185 = sub i64 %184, 2
  %186 = call i64 @brotli_min_size_t(i64 noundef %183, i64 noundef %185)
  store i64 %186, ptr %21, align 8, !tbaa !9
  %187 = load i64, ptr %20, align 8, !tbaa !9
  store i64 %187, ptr %22, align 8, !tbaa !9
  br label %188

188:                                              ; preds = %206, %182
  %189 = load i64, ptr %22, align 8, !tbaa !9
  %190 = load i64, ptr %21, align 8, !tbaa !9
  %191 = icmp ule i64 %189, %190
  br i1 %191, label %192, label %209

192:                                              ; preds = %188
  %193 = load i64, ptr %17, align 8, !tbaa !9
  %194 = load i64, ptr %15, align 8, !tbaa !9
  %195 = load i64, ptr %22, align 8, !tbaa !9
  %196 = sub i64 %194, %195
  %197 = getelementptr inbounds [10 x i8], ptr @kOmitLastNTransforms, i64 0, i64 %196
  %198 = load i8, ptr %197, align 1, !tbaa !16
  %199 = zext i8 %198 to i64
  %200 = load i64, ptr %16, align 8, !tbaa !9
  %201 = mul i64 %199, %200
  %202 = add i64 %193, %201
  %203 = load i64, ptr %22, align 8, !tbaa !9
  %204 = load i64, ptr %15, align 8, !tbaa !9
  %205 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %202, i64 noundef %203, i64 noundef %204, ptr noundef %205)
  store i32 1, ptr %11, align 4, !tbaa !11
  br label %206

206:                                              ; preds = %192
  %207 = load i64, ptr %22, align 8, !tbaa !9
  %208 = add i64 %207, 1
  store i64 %208, ptr %22, align 8, !tbaa !9
  br label %188, !llvm.loop !21

209:                                              ; preds = %188
  %210 = load i64, ptr %18, align 8, !tbaa !9
  %211 = load i64, ptr %15, align 8, !tbaa !9
  %212 = icmp ult i64 %210, %211
  br i1 %212, label %218, label %213

213:                                              ; preds = %209
  %214 = load i64, ptr %15, align 8, !tbaa !9
  %215 = add i64 %214, 6
  %216 = load i64, ptr %9, align 8, !tbaa !9
  %217 = icmp uge i64 %215, %216
  br i1 %217, label %218, label %219

218:                                              ; preds = %213, %209
  store i32 2, ptr %23, align 4
  br label %1307, !llvm.loop !23

219:                                              ; preds = %213
  %220 = load ptr, ptr %7, align 8, !tbaa !5
  %221 = load i64, ptr %15, align 8, !tbaa !9
  %222 = getelementptr inbounds i8, ptr %220, i64 %221
  store ptr %222, ptr %19, align 8, !tbaa !5
  %223 = load ptr, ptr %19, align 8, !tbaa !5
  %224 = getelementptr inbounds i8, ptr %223, i64 0
  %225 = load i8, ptr %224, align 1, !tbaa !16
  %226 = zext i8 %225 to i32
  %227 = icmp eq i32 %226, 32
  br i1 %227, label %228, label %704

228:                                              ; preds = %219
  %229 = load i64, ptr %17, align 8, !tbaa !9
  %230 = load i64, ptr %16, align 8, !tbaa !9
  %231 = add i64 %229, %230
  %232 = load i64, ptr %15, align 8, !tbaa !9
  %233 = add i64 %232, 1
  %234 = load i64, ptr %15, align 8, !tbaa !9
  %235 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %231, i64 noundef %233, i64 noundef %234, ptr noundef %235)
  %236 = load ptr, ptr %19, align 8, !tbaa !5
  %237 = getelementptr inbounds i8, ptr %236, i64 1
  %238 = load i8, ptr %237, align 1, !tbaa !16
  %239 = zext i8 %238 to i32
  %240 = icmp eq i32 %239, 97
  br i1 %240, label %241, label %332

241:                                              ; preds = %228
  %242 = load ptr, ptr %19, align 8, !tbaa !5
  %243 = getelementptr inbounds i8, ptr %242, i64 2
  %244 = load i8, ptr %243, align 1, !tbaa !16
  %245 = zext i8 %244 to i32
  %246 = icmp eq i32 %245, 32
  br i1 %246, label %247, label %256

247:                                              ; preds = %241
  %248 = load i64, ptr %17, align 8, !tbaa !9
  %249 = load i64, ptr %16, align 8, !tbaa !9
  %250 = mul i64 28, %249
  %251 = add i64 %248, %250
  %252 = load i64, ptr %15, align 8, !tbaa !9
  %253 = add i64 %252, 3
  %254 = load i64, ptr %15, align 8, !tbaa !9
  %255 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %251, i64 noundef %253, i64 noundef %254, ptr noundef %255)
  br label %331

256:                                              ; preds = %241
  %257 = load ptr, ptr %19, align 8, !tbaa !5
  %258 = getelementptr inbounds i8, ptr %257, i64 2
  %259 = load i8, ptr %258, align 1, !tbaa !16
  %260 = zext i8 %259 to i32
  %261 = icmp eq i32 %260, 115
  br i1 %261, label %262, label %278

262:                                              ; preds = %256
  %263 = load ptr, ptr %19, align 8, !tbaa !5
  %264 = getelementptr inbounds i8, ptr %263, i64 3
  %265 = load i8, ptr %264, align 1, !tbaa !16
  %266 = zext i8 %265 to i32
  %267 = icmp eq i32 %266, 32
  br i1 %267, label %268, label %277

268:                                              ; preds = %262
  %269 = load i64, ptr %17, align 8, !tbaa !9
  %270 = load i64, ptr %16, align 8, !tbaa !9
  %271 = mul i64 46, %270
  %272 = add i64 %269, %271
  %273 = load i64, ptr %15, align 8, !tbaa !9
  %274 = add i64 %273, 4
  %275 = load i64, ptr %15, align 8, !tbaa !9
  %276 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %272, i64 noundef %274, i64 noundef %275, ptr noundef %276)
  br label %277

277:                                              ; preds = %268, %262
  br label %330

278:                                              ; preds = %256
  %279 = load ptr, ptr %19, align 8, !tbaa !5
  %280 = getelementptr inbounds i8, ptr %279, i64 2
  %281 = load i8, ptr %280, align 1, !tbaa !16
  %282 = zext i8 %281 to i32
  %283 = icmp eq i32 %282, 116
  br i1 %283, label %284, label %300

284:                                              ; preds = %278
  %285 = load ptr, ptr %19, align 8, !tbaa !5
  %286 = getelementptr inbounds i8, ptr %285, i64 3
  %287 = load i8, ptr %286, align 1, !tbaa !16
  %288 = zext i8 %287 to i32
  %289 = icmp eq i32 %288, 32
  br i1 %289, label %290, label %299

290:                                              ; preds = %284
  %291 = load i64, ptr %17, align 8, !tbaa !9
  %292 = load i64, ptr %16, align 8, !tbaa !9
  %293 = mul i64 60, %292
  %294 = add i64 %291, %293
  %295 = load i64, ptr %15, align 8, !tbaa !9
  %296 = add i64 %295, 4
  %297 = load i64, ptr %15, align 8, !tbaa !9
  %298 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %294, i64 noundef %296, i64 noundef %297, ptr noundef %298)
  br label %299

299:                                              ; preds = %290, %284
  br label %329

300:                                              ; preds = %278
  %301 = load ptr, ptr %19, align 8, !tbaa !5
  %302 = getelementptr inbounds i8, ptr %301, i64 2
  %303 = load i8, ptr %302, align 1, !tbaa !16
  %304 = zext i8 %303 to i32
  %305 = icmp eq i32 %304, 110
  br i1 %305, label %306, label %328

306:                                              ; preds = %300
  %307 = load ptr, ptr %19, align 8, !tbaa !5
  %308 = getelementptr inbounds i8, ptr %307, i64 3
  %309 = load i8, ptr %308, align 1, !tbaa !16
  %310 = zext i8 %309 to i32
  %311 = icmp eq i32 %310, 100
  br i1 %311, label %312, label %327

312:                                              ; preds = %306
  %313 = load ptr, ptr %19, align 8, !tbaa !5
  %314 = getelementptr inbounds i8, ptr %313, i64 4
  %315 = load i8, ptr %314, align 1, !tbaa !16
  %316 = zext i8 %315 to i32
  %317 = icmp eq i32 %316, 32
  br i1 %317, label %318, label %327

318:                                              ; preds = %312
  %319 = load i64, ptr %17, align 8, !tbaa !9
  %320 = load i64, ptr %16, align 8, !tbaa !9
  %321 = mul i64 10, %320
  %322 = add i64 %319, %321
  %323 = load i64, ptr %15, align 8, !tbaa !9
  %324 = add i64 %323, 5
  %325 = load i64, ptr %15, align 8, !tbaa !9
  %326 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %322, i64 noundef %324, i64 noundef %325, ptr noundef %326)
  br label %327

327:                                              ; preds = %318, %312, %306
  br label %328

328:                                              ; preds = %327, %300
  br label %329

329:                                              ; preds = %328, %299
  br label %330

330:                                              ; preds = %329, %277
  br label %331

331:                                              ; preds = %330, %247
  br label %703

332:                                              ; preds = %228
  %333 = load ptr, ptr %19, align 8, !tbaa !5
  %334 = getelementptr inbounds i8, ptr %333, i64 1
  %335 = load i8, ptr %334, align 1, !tbaa !16
  %336 = zext i8 %335 to i32
  %337 = icmp eq i32 %336, 98
  br i1 %337, label %338, label %360

338:                                              ; preds = %332
  %339 = load ptr, ptr %19, align 8, !tbaa !5
  %340 = getelementptr inbounds i8, ptr %339, i64 2
  %341 = load i8, ptr %340, align 1, !tbaa !16
  %342 = zext i8 %341 to i32
  %343 = icmp eq i32 %342, 121
  br i1 %343, label %344, label %359

344:                                              ; preds = %338
  %345 = load ptr, ptr %19, align 8, !tbaa !5
  %346 = getelementptr inbounds i8, ptr %345, i64 3
  %347 = load i8, ptr %346, align 1, !tbaa !16
  %348 = zext i8 %347 to i32
  %349 = icmp eq i32 %348, 32
  br i1 %349, label %350, label %359

350:                                              ; preds = %344
  %351 = load i64, ptr %17, align 8, !tbaa !9
  %352 = load i64, ptr %16, align 8, !tbaa !9
  %353 = mul i64 38, %352
  %354 = add i64 %351, %353
  %355 = load i64, ptr %15, align 8, !tbaa !9
  %356 = add i64 %355, 4
  %357 = load i64, ptr %15, align 8, !tbaa !9
  %358 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %354, i64 noundef %356, i64 noundef %357, ptr noundef %358)
  br label %359

359:                                              ; preds = %350, %344, %338
  br label %702

360:                                              ; preds = %332
  %361 = load ptr, ptr %19, align 8, !tbaa !5
  %362 = getelementptr inbounds i8, ptr %361, i64 1
  %363 = load i8, ptr %362, align 1, !tbaa !16
  %364 = zext i8 %363 to i32
  %365 = icmp eq i32 %364, 105
  br i1 %365, label %366, label %412

366:                                              ; preds = %360
  %367 = load ptr, ptr %19, align 8, !tbaa !5
  %368 = getelementptr inbounds i8, ptr %367, i64 2
  %369 = load i8, ptr %368, align 1, !tbaa !16
  %370 = zext i8 %369 to i32
  %371 = icmp eq i32 %370, 110
  br i1 %371, label %372, label %388

372:                                              ; preds = %366
  %373 = load ptr, ptr %19, align 8, !tbaa !5
  %374 = getelementptr inbounds i8, ptr %373, i64 3
  %375 = load i8, ptr %374, align 1, !tbaa !16
  %376 = zext i8 %375 to i32
  %377 = icmp eq i32 %376, 32
  br i1 %377, label %378, label %387

378:                                              ; preds = %372
  %379 = load i64, ptr %17, align 8, !tbaa !9
  %380 = load i64, ptr %16, align 8, !tbaa !9
  %381 = mul i64 16, %380
  %382 = add i64 %379, %381
  %383 = load i64, ptr %15, align 8, !tbaa !9
  %384 = add i64 %383, 4
  %385 = load i64, ptr %15, align 8, !tbaa !9
  %386 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %382, i64 noundef %384, i64 noundef %385, ptr noundef %386)
  br label %387

387:                                              ; preds = %378, %372
  br label %411

388:                                              ; preds = %366
  %389 = load ptr, ptr %19, align 8, !tbaa !5
  %390 = getelementptr inbounds i8, ptr %389, i64 2
  %391 = load i8, ptr %390, align 1, !tbaa !16
  %392 = zext i8 %391 to i32
  %393 = icmp eq i32 %392, 115
  br i1 %393, label %394, label %410

394:                                              ; preds = %388
  %395 = load ptr, ptr %19, align 8, !tbaa !5
  %396 = getelementptr inbounds i8, ptr %395, i64 3
  %397 = load i8, ptr %396, align 1, !tbaa !16
  %398 = zext i8 %397 to i32
  %399 = icmp eq i32 %398, 32
  br i1 %399, label %400, label %409

400:                                              ; preds = %394
  %401 = load i64, ptr %17, align 8, !tbaa !9
  %402 = load i64, ptr %16, align 8, !tbaa !9
  %403 = mul i64 47, %402
  %404 = add i64 %401, %403
  %405 = load i64, ptr %15, align 8, !tbaa !9
  %406 = add i64 %405, 4
  %407 = load i64, ptr %15, align 8, !tbaa !9
  %408 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %404, i64 noundef %406, i64 noundef %407, ptr noundef %408)
  br label %409

409:                                              ; preds = %400, %394
  br label %410

410:                                              ; preds = %409, %388
  br label %411

411:                                              ; preds = %410, %387
  br label %701

412:                                              ; preds = %360
  %413 = load ptr, ptr %19, align 8, !tbaa !5
  %414 = getelementptr inbounds i8, ptr %413, i64 1
  %415 = load i8, ptr %414, align 1, !tbaa !16
  %416 = zext i8 %415 to i32
  %417 = icmp eq i32 %416, 102
  br i1 %417, label %418, label %482

418:                                              ; preds = %412
  %419 = load ptr, ptr %19, align 8, !tbaa !5
  %420 = getelementptr inbounds i8, ptr %419, i64 2
  %421 = load i8, ptr %420, align 1, !tbaa !16
  %422 = zext i8 %421 to i32
  %423 = icmp eq i32 %422, 111
  br i1 %423, label %424, label %446

424:                                              ; preds = %418
  %425 = load ptr, ptr %19, align 8, !tbaa !5
  %426 = getelementptr inbounds i8, ptr %425, i64 3
  %427 = load i8, ptr %426, align 1, !tbaa !16
  %428 = zext i8 %427 to i32
  %429 = icmp eq i32 %428, 114
  br i1 %429, label %430, label %445

430:                                              ; preds = %424
  %431 = load ptr, ptr %19, align 8, !tbaa !5
  %432 = getelementptr inbounds i8, ptr %431, i64 4
  %433 = load i8, ptr %432, align 1, !tbaa !16
  %434 = zext i8 %433 to i32
  %435 = icmp eq i32 %434, 32
  br i1 %435, label %436, label %445

436:                                              ; preds = %430
  %437 = load i64, ptr %17, align 8, !tbaa !9
  %438 = load i64, ptr %16, align 8, !tbaa !9
  %439 = mul i64 25, %438
  %440 = add i64 %437, %439
  %441 = load i64, ptr %15, align 8, !tbaa !9
  %442 = add i64 %441, 5
  %443 = load i64, ptr %15, align 8, !tbaa !9
  %444 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %440, i64 noundef %442, i64 noundef %443, ptr noundef %444)
  br label %445

445:                                              ; preds = %436, %430, %424
  br label %481

446:                                              ; preds = %418
  %447 = load ptr, ptr %19, align 8, !tbaa !5
  %448 = getelementptr inbounds i8, ptr %447, i64 2
  %449 = load i8, ptr %448, align 1, !tbaa !16
  %450 = zext i8 %449 to i32
  %451 = icmp eq i32 %450, 114
  br i1 %451, label %452, label %480

452:                                              ; preds = %446
  %453 = load ptr, ptr %19, align 8, !tbaa !5
  %454 = getelementptr inbounds i8, ptr %453, i64 3
  %455 = load i8, ptr %454, align 1, !tbaa !16
  %456 = zext i8 %455 to i32
  %457 = icmp eq i32 %456, 111
  br i1 %457, label %458, label %479

458:                                              ; preds = %452
  %459 = load ptr, ptr %19, align 8, !tbaa !5
  %460 = getelementptr inbounds i8, ptr %459, i64 4
  %461 = load i8, ptr %460, align 1, !tbaa !16
  %462 = zext i8 %461 to i32
  %463 = icmp eq i32 %462, 109
  br i1 %463, label %464, label %479

464:                                              ; preds = %458
  %465 = load ptr, ptr %19, align 8, !tbaa !5
  %466 = getelementptr inbounds i8, ptr %465, i64 5
  %467 = load i8, ptr %466, align 1, !tbaa !16
  %468 = zext i8 %467 to i32
  %469 = icmp eq i32 %468, 32
  br i1 %469, label %470, label %479

470:                                              ; preds = %464
  %471 = load i64, ptr %17, align 8, !tbaa !9
  %472 = load i64, ptr %16, align 8, !tbaa !9
  %473 = mul i64 37, %472
  %474 = add i64 %471, %473
  %475 = load i64, ptr %15, align 8, !tbaa !9
  %476 = add i64 %475, 6
  %477 = load i64, ptr %15, align 8, !tbaa !9
  %478 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %474, i64 noundef %476, i64 noundef %477, ptr noundef %478)
  br label %479

479:                                              ; preds = %470, %464, %458, %452
  br label %480

480:                                              ; preds = %479, %446
  br label %481

481:                                              ; preds = %480, %445
  br label %700

482:                                              ; preds = %412
  %483 = load ptr, ptr %19, align 8, !tbaa !5
  %484 = getelementptr inbounds i8, ptr %483, i64 1
  %485 = load i8, ptr %484, align 1, !tbaa !16
  %486 = zext i8 %485 to i32
  %487 = icmp eq i32 %486, 111
  br i1 %487, label %488, label %534

488:                                              ; preds = %482
  %489 = load ptr, ptr %19, align 8, !tbaa !5
  %490 = getelementptr inbounds i8, ptr %489, i64 2
  %491 = load i8, ptr %490, align 1, !tbaa !16
  %492 = zext i8 %491 to i32
  %493 = icmp eq i32 %492, 102
  br i1 %493, label %494, label %510

494:                                              ; preds = %488
  %495 = load ptr, ptr %19, align 8, !tbaa !5
  %496 = getelementptr inbounds i8, ptr %495, i64 3
  %497 = load i8, ptr %496, align 1, !tbaa !16
  %498 = zext i8 %497 to i32
  %499 = icmp eq i32 %498, 32
  br i1 %499, label %500, label %509

500:                                              ; preds = %494
  %501 = load i64, ptr %17, align 8, !tbaa !9
  %502 = load i64, ptr %16, align 8, !tbaa !9
  %503 = mul i64 8, %502
  %504 = add i64 %501, %503
  %505 = load i64, ptr %15, align 8, !tbaa !9
  %506 = add i64 %505, 4
  %507 = load i64, ptr %15, align 8, !tbaa !9
  %508 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %504, i64 noundef %506, i64 noundef %507, ptr noundef %508)
  br label %509

509:                                              ; preds = %500, %494
  br label %533

510:                                              ; preds = %488
  %511 = load ptr, ptr %19, align 8, !tbaa !5
  %512 = getelementptr inbounds i8, ptr %511, i64 2
  %513 = load i8, ptr %512, align 1, !tbaa !16
  %514 = zext i8 %513 to i32
  %515 = icmp eq i32 %514, 110
  br i1 %515, label %516, label %532

516:                                              ; preds = %510
  %517 = load ptr, ptr %19, align 8, !tbaa !5
  %518 = getelementptr inbounds i8, ptr %517, i64 3
  %519 = load i8, ptr %518, align 1, !tbaa !16
  %520 = zext i8 %519 to i32
  %521 = icmp eq i32 %520, 32
  br i1 %521, label %522, label %531

522:                                              ; preds = %516
  %523 = load i64, ptr %17, align 8, !tbaa !9
  %524 = load i64, ptr %16, align 8, !tbaa !9
  %525 = mul i64 45, %524
  %526 = add i64 %523, %525
  %527 = load i64, ptr %15, align 8, !tbaa !9
  %528 = add i64 %527, 4
  %529 = load i64, ptr %15, align 8, !tbaa !9
  %530 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %526, i64 noundef %528, i64 noundef %529, ptr noundef %530)
  br label %531

531:                                              ; preds = %522, %516
  br label %532

532:                                              ; preds = %531, %510
  br label %533

533:                                              ; preds = %532, %509
  br label %699

534:                                              ; preds = %482
  %535 = load ptr, ptr %19, align 8, !tbaa !5
  %536 = getelementptr inbounds i8, ptr %535, i64 1
  %537 = load i8, ptr %536, align 1, !tbaa !16
  %538 = zext i8 %537 to i32
  %539 = icmp eq i32 %538, 110
  br i1 %539, label %540, label %568

540:                                              ; preds = %534
  %541 = load ptr, ptr %19, align 8, !tbaa !5
  %542 = getelementptr inbounds i8, ptr %541, i64 2
  %543 = load i8, ptr %542, align 1, !tbaa !16
  %544 = zext i8 %543 to i32
  %545 = icmp eq i32 %544, 111
  br i1 %545, label %546, label %567

546:                                              ; preds = %540
  %547 = load ptr, ptr %19, align 8, !tbaa !5
  %548 = getelementptr inbounds i8, ptr %547, i64 3
  %549 = load i8, ptr %548, align 1, !tbaa !16
  %550 = zext i8 %549 to i32
  %551 = icmp eq i32 %550, 116
  br i1 %551, label %552, label %567

552:                                              ; preds = %546
  %553 = load ptr, ptr %19, align 8, !tbaa !5
  %554 = getelementptr inbounds i8, ptr %553, i64 4
  %555 = load i8, ptr %554, align 1, !tbaa !16
  %556 = zext i8 %555 to i32
  %557 = icmp eq i32 %556, 32
  br i1 %557, label %558, label %567

558:                                              ; preds = %552
  %559 = load i64, ptr %17, align 8, !tbaa !9
  %560 = load i64, ptr %16, align 8, !tbaa !9
  %561 = mul i64 80, %560
  %562 = add i64 %559, %561
  %563 = load i64, ptr %15, align 8, !tbaa !9
  %564 = add i64 %563, 5
  %565 = load i64, ptr %15, align 8, !tbaa !9
  %566 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %562, i64 noundef %564, i64 noundef %565, ptr noundef %566)
  br label %567

567:                                              ; preds = %558, %552, %546, %540
  br label %698

568:                                              ; preds = %534
  %569 = load ptr, ptr %19, align 8, !tbaa !5
  %570 = getelementptr inbounds i8, ptr %569, i64 1
  %571 = load i8, ptr %570, align 1, !tbaa !16
  %572 = zext i8 %571 to i32
  %573 = icmp eq i32 %572, 116
  br i1 %573, label %574, label %656

574:                                              ; preds = %568
  %575 = load ptr, ptr %19, align 8, !tbaa !5
  %576 = getelementptr inbounds i8, ptr %575, i64 2
  %577 = load i8, ptr %576, align 1, !tbaa !16
  %578 = zext i8 %577 to i32
  %579 = icmp eq i32 %578, 104
  br i1 %579, label %580, label %632

580:                                              ; preds = %574
  %581 = load ptr, ptr %19, align 8, !tbaa !5
  %582 = getelementptr inbounds i8, ptr %581, i64 3
  %583 = load i8, ptr %582, align 1, !tbaa !16
  %584 = zext i8 %583 to i32
  %585 = icmp eq i32 %584, 101
  br i1 %585, label %586, label %602

586:                                              ; preds = %580
  %587 = load ptr, ptr %19, align 8, !tbaa !5
  %588 = getelementptr inbounds i8, ptr %587, i64 4
  %589 = load i8, ptr %588, align 1, !tbaa !16
  %590 = zext i8 %589 to i32
  %591 = icmp eq i32 %590, 32
  br i1 %591, label %592, label %601

592:                                              ; preds = %586
  %593 = load i64, ptr %17, align 8, !tbaa !9
  %594 = load i64, ptr %16, align 8, !tbaa !9
  %595 = mul i64 5, %594
  %596 = add i64 %593, %595
  %597 = load i64, ptr %15, align 8, !tbaa !9
  %598 = add i64 %597, 5
  %599 = load i64, ptr %15, align 8, !tbaa !9
  %600 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %596, i64 noundef %598, i64 noundef %599, ptr noundef %600)
  br label %601

601:                                              ; preds = %592, %586
  br label %631

602:                                              ; preds = %580
  %603 = load ptr, ptr %19, align 8, !tbaa !5
  %604 = getelementptr inbounds i8, ptr %603, i64 3
  %605 = load i8, ptr %604, align 1, !tbaa !16
  %606 = zext i8 %605 to i32
  %607 = icmp eq i32 %606, 97
  br i1 %607, label %608, label %630

608:                                              ; preds = %602
  %609 = load ptr, ptr %19, align 8, !tbaa !5
  %610 = getelementptr inbounds i8, ptr %609, i64 4
  %611 = load i8, ptr %610, align 1, !tbaa !16
  %612 = zext i8 %611 to i32
  %613 = icmp eq i32 %612, 116
  br i1 %613, label %614, label %629

614:                                              ; preds = %608
  %615 = load ptr, ptr %19, align 8, !tbaa !5
  %616 = getelementptr inbounds i8, ptr %615, i64 5
  %617 = load i8, ptr %616, align 1, !tbaa !16
  %618 = zext i8 %617 to i32
  %619 = icmp eq i32 %618, 32
  br i1 %619, label %620, label %629

620:                                              ; preds = %614
  %621 = load i64, ptr %17, align 8, !tbaa !9
  %622 = load i64, ptr %16, align 8, !tbaa !9
  %623 = mul i64 29, %622
  %624 = add i64 %621, %623
  %625 = load i64, ptr %15, align 8, !tbaa !9
  %626 = add i64 %625, 6
  %627 = load i64, ptr %15, align 8, !tbaa !9
  %628 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %624, i64 noundef %626, i64 noundef %627, ptr noundef %628)
  br label %629

629:                                              ; preds = %620, %614, %608
  br label %630

630:                                              ; preds = %629, %602
  br label %631

631:                                              ; preds = %630, %601
  br label %655

632:                                              ; preds = %574
  %633 = load ptr, ptr %19, align 8, !tbaa !5
  %634 = getelementptr inbounds i8, ptr %633, i64 2
  %635 = load i8, ptr %634, align 1, !tbaa !16
  %636 = zext i8 %635 to i32
  %637 = icmp eq i32 %636, 111
  br i1 %637, label %638, label %654

638:                                              ; preds = %632
  %639 = load ptr, ptr %19, align 8, !tbaa !5
  %640 = getelementptr inbounds i8, ptr %639, i64 3
  %641 = load i8, ptr %640, align 1, !tbaa !16
  %642 = zext i8 %641 to i32
  %643 = icmp eq i32 %642, 32
  br i1 %643, label %644, label %653

644:                                              ; preds = %638
  %645 = load i64, ptr %17, align 8, !tbaa !9
  %646 = load i64, ptr %16, align 8, !tbaa !9
  %647 = mul i64 17, %646
  %648 = add i64 %645, %647
  %649 = load i64, ptr %15, align 8, !tbaa !9
  %650 = add i64 %649, 4
  %651 = load i64, ptr %15, align 8, !tbaa !9
  %652 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %648, i64 noundef %650, i64 noundef %651, ptr noundef %652)
  br label %653

653:                                              ; preds = %644, %638
  br label %654

654:                                              ; preds = %653, %632
  br label %655

655:                                              ; preds = %654, %631
  br label %697

656:                                              ; preds = %568
  %657 = load ptr, ptr %19, align 8, !tbaa !5
  %658 = getelementptr inbounds i8, ptr %657, i64 1
  %659 = load i8, ptr %658, align 1, !tbaa !16
  %660 = zext i8 %659 to i32
  %661 = icmp eq i32 %660, 119
  br i1 %661, label %662, label %696

662:                                              ; preds = %656
  %663 = load ptr, ptr %19, align 8, !tbaa !5
  %664 = getelementptr inbounds i8, ptr %663, i64 2
  %665 = load i8, ptr %664, align 1, !tbaa !16
  %666 = zext i8 %665 to i32
  %667 = icmp eq i32 %666, 105
  br i1 %667, label %668, label %695

668:                                              ; preds = %662
  %669 = load ptr, ptr %19, align 8, !tbaa !5
  %670 = getelementptr inbounds i8, ptr %669, i64 3
  %671 = load i8, ptr %670, align 1, !tbaa !16
  %672 = zext i8 %671 to i32
  %673 = icmp eq i32 %672, 116
  br i1 %673, label %674, label %695

674:                                              ; preds = %668
  %675 = load ptr, ptr %19, align 8, !tbaa !5
  %676 = getelementptr inbounds i8, ptr %675, i64 4
  %677 = load i8, ptr %676, align 1, !tbaa !16
  %678 = zext i8 %677 to i32
  %679 = icmp eq i32 %678, 104
  br i1 %679, label %680, label %695

680:                                              ; preds = %674
  %681 = load ptr, ptr %19, align 8, !tbaa !5
  %682 = getelementptr inbounds i8, ptr %681, i64 5
  %683 = load i8, ptr %682, align 1, !tbaa !16
  %684 = zext i8 %683 to i32
  %685 = icmp eq i32 %684, 32
  br i1 %685, label %686, label %695

686:                                              ; preds = %680
  %687 = load i64, ptr %17, align 8, !tbaa !9
  %688 = load i64, ptr %16, align 8, !tbaa !9
  %689 = mul i64 35, %688
  %690 = add i64 %687, %689
  %691 = load i64, ptr %15, align 8, !tbaa !9
  %692 = add i64 %691, 6
  %693 = load i64, ptr %15, align 8, !tbaa !9
  %694 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %690, i64 noundef %692, i64 noundef %693, ptr noundef %694)
  br label %695

695:                                              ; preds = %686, %680, %674, %668, %662
  br label %696

696:                                              ; preds = %695, %656
  br label %697

697:                                              ; preds = %696, %655
  br label %698

698:                                              ; preds = %697, %567
  br label %699

699:                                              ; preds = %698, %533
  br label %700

700:                                              ; preds = %699, %481
  br label %701

701:                                              ; preds = %700, %411
  br label %702

702:                                              ; preds = %701, %359
  br label %703

703:                                              ; preds = %702, %331
  br label %1306

704:                                              ; preds = %219
  %705 = load ptr, ptr %19, align 8, !tbaa !5
  %706 = getelementptr inbounds i8, ptr %705, i64 0
  %707 = load i8, ptr %706, align 1, !tbaa !16
  %708 = zext i8 %707 to i32
  %709 = icmp eq i32 %708, 34
  br i1 %709, label %710, label %734

710:                                              ; preds = %704
  %711 = load i64, ptr %17, align 8, !tbaa !9
  %712 = load i64, ptr %16, align 8, !tbaa !9
  %713 = mul i64 19, %712
  %714 = add i64 %711, %713
  %715 = load i64, ptr %15, align 8, !tbaa !9
  %716 = add i64 %715, 1
  %717 = load i64, ptr %15, align 8, !tbaa !9
  %718 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %714, i64 noundef %716, i64 noundef %717, ptr noundef %718)
  %719 = load ptr, ptr %19, align 8, !tbaa !5
  %720 = getelementptr inbounds i8, ptr %719, i64 1
  %721 = load i8, ptr %720, align 1, !tbaa !16
  %722 = zext i8 %721 to i32
  %723 = icmp eq i32 %722, 62
  br i1 %723, label %724, label %733

724:                                              ; preds = %710
  %725 = load i64, ptr %17, align 8, !tbaa !9
  %726 = load i64, ptr %16, align 8, !tbaa !9
  %727 = mul i64 21, %726
  %728 = add i64 %725, %727
  %729 = load i64, ptr %15, align 8, !tbaa !9
  %730 = add i64 %729, 2
  %731 = load i64, ptr %15, align 8, !tbaa !9
  %732 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %728, i64 noundef %730, i64 noundef %731, ptr noundef %732)
  br label %733

733:                                              ; preds = %724, %710
  br label %1305

734:                                              ; preds = %704
  %735 = load ptr, ptr %19, align 8, !tbaa !5
  %736 = getelementptr inbounds i8, ptr %735, i64 0
  %737 = load i8, ptr %736, align 1, !tbaa !16
  %738 = zext i8 %737 to i32
  %739 = icmp eq i32 %738, 46
  br i1 %739, label %740, label %828

740:                                              ; preds = %734
  %741 = load i64, ptr %17, align 8, !tbaa !9
  %742 = load i64, ptr %16, align 8, !tbaa !9
  %743 = mul i64 20, %742
  %744 = add i64 %741, %743
  %745 = load i64, ptr %15, align 8, !tbaa !9
  %746 = add i64 %745, 1
  %747 = load i64, ptr %15, align 8, !tbaa !9
  %748 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %744, i64 noundef %746, i64 noundef %747, ptr noundef %748)
  %749 = load ptr, ptr %19, align 8, !tbaa !5
  %750 = getelementptr inbounds i8, ptr %749, i64 1
  %751 = load i8, ptr %750, align 1, !tbaa !16
  %752 = zext i8 %751 to i32
  %753 = icmp eq i32 %752, 32
  br i1 %753, label %754, label %827

754:                                              ; preds = %740
  %755 = load i64, ptr %17, align 8, !tbaa !9
  %756 = load i64, ptr %16, align 8, !tbaa !9
  %757 = mul i64 31, %756
  %758 = add i64 %755, %757
  %759 = load i64, ptr %15, align 8, !tbaa !9
  %760 = add i64 %759, 2
  %761 = load i64, ptr %15, align 8, !tbaa !9
  %762 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %758, i64 noundef %760, i64 noundef %761, ptr noundef %762)
  %763 = load ptr, ptr %19, align 8, !tbaa !5
  %764 = getelementptr inbounds i8, ptr %763, i64 2
  %765 = load i8, ptr %764, align 1, !tbaa !16
  %766 = zext i8 %765 to i32
  %767 = icmp eq i32 %766, 84
  br i1 %767, label %768, label %826

768:                                              ; preds = %754
  %769 = load ptr, ptr %19, align 8, !tbaa !5
  %770 = getelementptr inbounds i8, ptr %769, i64 3
  %771 = load i8, ptr %770, align 1, !tbaa !16
  %772 = zext i8 %771 to i32
  %773 = icmp eq i32 %772, 104
  br i1 %773, label %774, label %826

774:                                              ; preds = %768
  %775 = load ptr, ptr %19, align 8, !tbaa !5
  %776 = getelementptr inbounds i8, ptr %775, i64 4
  %777 = load i8, ptr %776, align 1, !tbaa !16
  %778 = zext i8 %777 to i32
  %779 = icmp eq i32 %778, 101
  br i1 %779, label %780, label %796

780:                                              ; preds = %774
  %781 = load ptr, ptr %19, align 8, !tbaa !5
  %782 = getelementptr inbounds i8, ptr %781, i64 5
  %783 = load i8, ptr %782, align 1, !tbaa !16
  %784 = zext i8 %783 to i32
  %785 = icmp eq i32 %784, 32
  br i1 %785, label %786, label %795

786:                                              ; preds = %780
  %787 = load i64, ptr %17, align 8, !tbaa !9
  %788 = load i64, ptr %16, align 8, !tbaa !9
  %789 = mul i64 43, %788
  %790 = add i64 %787, %789
  %791 = load i64, ptr %15, align 8, !tbaa !9
  %792 = add i64 %791, 6
  %793 = load i64, ptr %15, align 8, !tbaa !9
  %794 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %790, i64 noundef %792, i64 noundef %793, ptr noundef %794)
  br label %795

795:                                              ; preds = %786, %780
  br label %825

796:                                              ; preds = %774
  %797 = load ptr, ptr %19, align 8, !tbaa !5
  %798 = getelementptr inbounds i8, ptr %797, i64 4
  %799 = load i8, ptr %798, align 1, !tbaa !16
  %800 = zext i8 %799 to i32
  %801 = icmp eq i32 %800, 105
  br i1 %801, label %802, label %824

802:                                              ; preds = %796
  %803 = load ptr, ptr %19, align 8, !tbaa !5
  %804 = getelementptr inbounds i8, ptr %803, i64 5
  %805 = load i8, ptr %804, align 1, !tbaa !16
  %806 = zext i8 %805 to i32
  %807 = icmp eq i32 %806, 115
  br i1 %807, label %808, label %823

808:                                              ; preds = %802
  %809 = load ptr, ptr %19, align 8, !tbaa !5
  %810 = getelementptr inbounds i8, ptr %809, i64 6
  %811 = load i8, ptr %810, align 1, !tbaa !16
  %812 = zext i8 %811 to i32
  %813 = icmp eq i32 %812, 32
  br i1 %813, label %814, label %823

814:                                              ; preds = %808
  %815 = load i64, ptr %17, align 8, !tbaa !9
  %816 = load i64, ptr %16, align 8, !tbaa !9
  %817 = mul i64 75, %816
  %818 = add i64 %815, %817
  %819 = load i64, ptr %15, align 8, !tbaa !9
  %820 = add i64 %819, 7
  %821 = load i64, ptr %15, align 8, !tbaa !9
  %822 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %818, i64 noundef %820, i64 noundef %821, ptr noundef %822)
  br label %823

823:                                              ; preds = %814, %808, %802
  br label %824

824:                                              ; preds = %823, %796
  br label %825

825:                                              ; preds = %824, %795
  br label %826

826:                                              ; preds = %825, %768, %754
  br label %827

827:                                              ; preds = %826, %740
  br label %1304

828:                                              ; preds = %734
  %829 = load ptr, ptr %19, align 8, !tbaa !5
  %830 = getelementptr inbounds i8, ptr %829, i64 0
  %831 = load i8, ptr %830, align 1, !tbaa !16
  %832 = zext i8 %831 to i32
  %833 = icmp eq i32 %832, 44
  br i1 %833, label %834, label %858

834:                                              ; preds = %828
  %835 = load i64, ptr %17, align 8, !tbaa !9
  %836 = load i64, ptr %16, align 8, !tbaa !9
  %837 = mul i64 76, %836
  %838 = add i64 %835, %837
  %839 = load i64, ptr %15, align 8, !tbaa !9
  %840 = add i64 %839, 1
  %841 = load i64, ptr %15, align 8, !tbaa !9
  %842 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %838, i64 noundef %840, i64 noundef %841, ptr noundef %842)
  %843 = load ptr, ptr %19, align 8, !tbaa !5
  %844 = getelementptr inbounds i8, ptr %843, i64 1
  %845 = load i8, ptr %844, align 1, !tbaa !16
  %846 = zext i8 %845 to i32
  %847 = icmp eq i32 %846, 32
  br i1 %847, label %848, label %857

848:                                              ; preds = %834
  %849 = load i64, ptr %17, align 8, !tbaa !9
  %850 = load i64, ptr %16, align 8, !tbaa !9
  %851 = mul i64 14, %850
  %852 = add i64 %849, %851
  %853 = load i64, ptr %15, align 8, !tbaa !9
  %854 = add i64 %853, 2
  %855 = load i64, ptr %15, align 8, !tbaa !9
  %856 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %852, i64 noundef %854, i64 noundef %855, ptr noundef %856)
  br label %857

857:                                              ; preds = %848, %834
  br label %1303

858:                                              ; preds = %828
  %859 = load ptr, ptr %19, align 8, !tbaa !5
  %860 = getelementptr inbounds i8, ptr %859, i64 0
  %861 = load i8, ptr %860, align 1, !tbaa !16
  %862 = zext i8 %861 to i32
  %863 = icmp eq i32 %862, 10
  br i1 %863, label %864, label %888

864:                                              ; preds = %858
  %865 = load i64, ptr %17, align 8, !tbaa !9
  %866 = load i64, ptr %16, align 8, !tbaa !9
  %867 = mul i64 22, %866
  %868 = add i64 %865, %867
  %869 = load i64, ptr %15, align 8, !tbaa !9
  %870 = add i64 %869, 1
  %871 = load i64, ptr %15, align 8, !tbaa !9
  %872 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %868, i64 noundef %870, i64 noundef %871, ptr noundef %872)
  %873 = load ptr, ptr %19, align 8, !tbaa !5
  %874 = getelementptr inbounds i8, ptr %873, i64 1
  %875 = load i8, ptr %874, align 1, !tbaa !16
  %876 = zext i8 %875 to i32
  %877 = icmp eq i32 %876, 9
  br i1 %877, label %878, label %887

878:                                              ; preds = %864
  %879 = load i64, ptr %17, align 8, !tbaa !9
  %880 = load i64, ptr %16, align 8, !tbaa !9
  %881 = mul i64 50, %880
  %882 = add i64 %879, %881
  %883 = load i64, ptr %15, align 8, !tbaa !9
  %884 = add i64 %883, 2
  %885 = load i64, ptr %15, align 8, !tbaa !9
  %886 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %882, i64 noundef %884, i64 noundef %885, ptr noundef %886)
  br label %887

887:                                              ; preds = %878, %864
  br label %1302

888:                                              ; preds = %858
  %889 = load ptr, ptr %19, align 8, !tbaa !5
  %890 = getelementptr inbounds i8, ptr %889, i64 0
  %891 = load i8, ptr %890, align 1, !tbaa !16
  %892 = zext i8 %891 to i32
  %893 = icmp eq i32 %892, 93
  br i1 %893, label %894, label %903

894:                                              ; preds = %888
  %895 = load i64, ptr %17, align 8, !tbaa !9
  %896 = load i64, ptr %16, align 8, !tbaa !9
  %897 = mul i64 24, %896
  %898 = add i64 %895, %897
  %899 = load i64, ptr %15, align 8, !tbaa !9
  %900 = add i64 %899, 1
  %901 = load i64, ptr %15, align 8, !tbaa !9
  %902 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %898, i64 noundef %900, i64 noundef %901, ptr noundef %902)
  br label %1301

903:                                              ; preds = %888
  %904 = load ptr, ptr %19, align 8, !tbaa !5
  %905 = getelementptr inbounds i8, ptr %904, i64 0
  %906 = load i8, ptr %905, align 1, !tbaa !16
  %907 = zext i8 %906 to i32
  %908 = icmp eq i32 %907, 39
  br i1 %908, label %909, label %918

909:                                              ; preds = %903
  %910 = load i64, ptr %17, align 8, !tbaa !9
  %911 = load i64, ptr %16, align 8, !tbaa !9
  %912 = mul i64 36, %911
  %913 = add i64 %910, %912
  %914 = load i64, ptr %15, align 8, !tbaa !9
  %915 = add i64 %914, 1
  %916 = load i64, ptr %15, align 8, !tbaa !9
  %917 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %913, i64 noundef %915, i64 noundef %916, ptr noundef %917)
  br label %1300

918:                                              ; preds = %903
  %919 = load ptr, ptr %19, align 8, !tbaa !5
  %920 = getelementptr inbounds i8, ptr %919, i64 0
  %921 = load i8, ptr %920, align 1, !tbaa !16
  %922 = zext i8 %921 to i32
  %923 = icmp eq i32 %922, 58
  br i1 %923, label %924, label %933

924:                                              ; preds = %918
  %925 = load i64, ptr %17, align 8, !tbaa !9
  %926 = load i64, ptr %16, align 8, !tbaa !9
  %927 = mul i64 51, %926
  %928 = add i64 %925, %927
  %929 = load i64, ptr %15, align 8, !tbaa !9
  %930 = add i64 %929, 1
  %931 = load i64, ptr %15, align 8, !tbaa !9
  %932 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %928, i64 noundef %930, i64 noundef %931, ptr noundef %932)
  br label %1299

933:                                              ; preds = %918
  %934 = load ptr, ptr %19, align 8, !tbaa !5
  %935 = getelementptr inbounds i8, ptr %934, i64 0
  %936 = load i8, ptr %935, align 1, !tbaa !16
  %937 = zext i8 %936 to i32
  %938 = icmp eq i32 %937, 40
  br i1 %938, label %939, label %948

939:                                              ; preds = %933
  %940 = load i64, ptr %17, align 8, !tbaa !9
  %941 = load i64, ptr %16, align 8, !tbaa !9
  %942 = mul i64 57, %941
  %943 = add i64 %940, %942
  %944 = load i64, ptr %15, align 8, !tbaa !9
  %945 = add i64 %944, 1
  %946 = load i64, ptr %15, align 8, !tbaa !9
  %947 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %943, i64 noundef %945, i64 noundef %946, ptr noundef %947)
  br label %1298

948:                                              ; preds = %933
  %949 = load ptr, ptr %19, align 8, !tbaa !5
  %950 = getelementptr inbounds i8, ptr %949, i64 0
  %951 = load i8, ptr %950, align 1, !tbaa !16
  %952 = zext i8 %951 to i32
  %953 = icmp eq i32 %952, 61
  br i1 %953, label %954, label %986

954:                                              ; preds = %948
  %955 = load ptr, ptr %19, align 8, !tbaa !5
  %956 = getelementptr inbounds i8, ptr %955, i64 1
  %957 = load i8, ptr %956, align 1, !tbaa !16
  %958 = zext i8 %957 to i32
  %959 = icmp eq i32 %958, 34
  br i1 %959, label %960, label %969

960:                                              ; preds = %954
  %961 = load i64, ptr %17, align 8, !tbaa !9
  %962 = load i64, ptr %16, align 8, !tbaa !9
  %963 = mul i64 70, %962
  %964 = add i64 %961, %963
  %965 = load i64, ptr %15, align 8, !tbaa !9
  %966 = add i64 %965, 2
  %967 = load i64, ptr %15, align 8, !tbaa !9
  %968 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %964, i64 noundef %966, i64 noundef %967, ptr noundef %968)
  br label %985

969:                                              ; preds = %954
  %970 = load ptr, ptr %19, align 8, !tbaa !5
  %971 = getelementptr inbounds i8, ptr %970, i64 1
  %972 = load i8, ptr %971, align 1, !tbaa !16
  %973 = zext i8 %972 to i32
  %974 = icmp eq i32 %973, 39
  br i1 %974, label %975, label %984

975:                                              ; preds = %969
  %976 = load i64, ptr %17, align 8, !tbaa !9
  %977 = load i64, ptr %16, align 8, !tbaa !9
  %978 = mul i64 86, %977
  %979 = add i64 %976, %978
  %980 = load i64, ptr %15, align 8, !tbaa !9
  %981 = add i64 %980, 2
  %982 = load i64, ptr %15, align 8, !tbaa !9
  %983 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %979, i64 noundef %981, i64 noundef %982, ptr noundef %983)
  br label %984

984:                                              ; preds = %975, %969
  br label %985

985:                                              ; preds = %984, %960
  br label %1297

986:                                              ; preds = %948
  %987 = load ptr, ptr %19, align 8, !tbaa !5
  %988 = getelementptr inbounds i8, ptr %987, i64 0
  %989 = load i8, ptr %988, align 1, !tbaa !16
  %990 = zext i8 %989 to i32
  %991 = icmp eq i32 %990, 97
  br i1 %991, label %992, label %1014

992:                                              ; preds = %986
  %993 = load ptr, ptr %19, align 8, !tbaa !5
  %994 = getelementptr inbounds i8, ptr %993, i64 1
  %995 = load i8, ptr %994, align 1, !tbaa !16
  %996 = zext i8 %995 to i32
  %997 = icmp eq i32 %996, 108
  br i1 %997, label %998, label %1013

998:                                              ; preds = %992
  %999 = load ptr, ptr %19, align 8, !tbaa !5
  %1000 = getelementptr inbounds i8, ptr %999, i64 2
  %1001 = load i8, ptr %1000, align 1, !tbaa !16
  %1002 = zext i8 %1001 to i32
  %1003 = icmp eq i32 %1002, 32
  br i1 %1003, label %1004, label %1013

1004:                                             ; preds = %998
  %1005 = load i64, ptr %17, align 8, !tbaa !9
  %1006 = load i64, ptr %16, align 8, !tbaa !9
  %1007 = mul i64 84, %1006
  %1008 = add i64 %1005, %1007
  %1009 = load i64, ptr %15, align 8, !tbaa !9
  %1010 = add i64 %1009, 3
  %1011 = load i64, ptr %15, align 8, !tbaa !9
  %1012 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1008, i64 noundef %1010, i64 noundef %1011, ptr noundef %1012)
  br label %1013

1013:                                             ; preds = %1004, %998, %992
  br label %1296

1014:                                             ; preds = %986
  %1015 = load ptr, ptr %19, align 8, !tbaa !5
  %1016 = getelementptr inbounds i8, ptr %1015, i64 0
  %1017 = load i8, ptr %1016, align 1, !tbaa !16
  %1018 = zext i8 %1017 to i32
  %1019 = icmp eq i32 %1018, 101
  br i1 %1019, label %1020, label %1095

1020:                                             ; preds = %1014
  %1021 = load ptr, ptr %19, align 8, !tbaa !5
  %1022 = getelementptr inbounds i8, ptr %1021, i64 1
  %1023 = load i8, ptr %1022, align 1, !tbaa !16
  %1024 = zext i8 %1023 to i32
  %1025 = icmp eq i32 %1024, 100
  br i1 %1025, label %1026, label %1042

1026:                                             ; preds = %1020
  %1027 = load ptr, ptr %19, align 8, !tbaa !5
  %1028 = getelementptr inbounds i8, ptr %1027, i64 2
  %1029 = load i8, ptr %1028, align 1, !tbaa !16
  %1030 = zext i8 %1029 to i32
  %1031 = icmp eq i32 %1030, 32
  br i1 %1031, label %1032, label %1041

1032:                                             ; preds = %1026
  %1033 = load i64, ptr %17, align 8, !tbaa !9
  %1034 = load i64, ptr %16, align 8, !tbaa !9
  %1035 = mul i64 53, %1034
  %1036 = add i64 %1033, %1035
  %1037 = load i64, ptr %15, align 8, !tbaa !9
  %1038 = add i64 %1037, 3
  %1039 = load i64, ptr %15, align 8, !tbaa !9
  %1040 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1036, i64 noundef %1038, i64 noundef %1039, ptr noundef %1040)
  br label %1041

1041:                                             ; preds = %1032, %1026
  br label %1094

1042:                                             ; preds = %1020
  %1043 = load ptr, ptr %19, align 8, !tbaa !5
  %1044 = getelementptr inbounds i8, ptr %1043, i64 1
  %1045 = load i8, ptr %1044, align 1, !tbaa !16
  %1046 = zext i8 %1045 to i32
  %1047 = icmp eq i32 %1046, 114
  br i1 %1047, label %1048, label %1064

1048:                                             ; preds = %1042
  %1049 = load ptr, ptr %19, align 8, !tbaa !5
  %1050 = getelementptr inbounds i8, ptr %1049, i64 2
  %1051 = load i8, ptr %1050, align 1, !tbaa !16
  %1052 = zext i8 %1051 to i32
  %1053 = icmp eq i32 %1052, 32
  br i1 %1053, label %1054, label %1063

1054:                                             ; preds = %1048
  %1055 = load i64, ptr %17, align 8, !tbaa !9
  %1056 = load i64, ptr %16, align 8, !tbaa !9
  %1057 = mul i64 82, %1056
  %1058 = add i64 %1055, %1057
  %1059 = load i64, ptr %15, align 8, !tbaa !9
  %1060 = add i64 %1059, 3
  %1061 = load i64, ptr %15, align 8, !tbaa !9
  %1062 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1058, i64 noundef %1060, i64 noundef %1061, ptr noundef %1062)
  br label %1063

1063:                                             ; preds = %1054, %1048
  br label %1093

1064:                                             ; preds = %1042
  %1065 = load ptr, ptr %19, align 8, !tbaa !5
  %1066 = getelementptr inbounds i8, ptr %1065, i64 1
  %1067 = load i8, ptr %1066, align 1, !tbaa !16
  %1068 = zext i8 %1067 to i32
  %1069 = icmp eq i32 %1068, 115
  br i1 %1069, label %1070, label %1092

1070:                                             ; preds = %1064
  %1071 = load ptr, ptr %19, align 8, !tbaa !5
  %1072 = getelementptr inbounds i8, ptr %1071, i64 2
  %1073 = load i8, ptr %1072, align 1, !tbaa !16
  %1074 = zext i8 %1073 to i32
  %1075 = icmp eq i32 %1074, 116
  br i1 %1075, label %1076, label %1091

1076:                                             ; preds = %1070
  %1077 = load ptr, ptr %19, align 8, !tbaa !5
  %1078 = getelementptr inbounds i8, ptr %1077, i64 3
  %1079 = load i8, ptr %1078, align 1, !tbaa !16
  %1080 = zext i8 %1079 to i32
  %1081 = icmp eq i32 %1080, 32
  br i1 %1081, label %1082, label %1091

1082:                                             ; preds = %1076
  %1083 = load i64, ptr %17, align 8, !tbaa !9
  %1084 = load i64, ptr %16, align 8, !tbaa !9
  %1085 = mul i64 95, %1084
  %1086 = add i64 %1083, %1085
  %1087 = load i64, ptr %15, align 8, !tbaa !9
  %1088 = add i64 %1087, 4
  %1089 = load i64, ptr %15, align 8, !tbaa !9
  %1090 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1086, i64 noundef %1088, i64 noundef %1089, ptr noundef %1090)
  br label %1091

1091:                                             ; preds = %1082, %1076, %1070
  br label %1092

1092:                                             ; preds = %1091, %1064
  br label %1093

1093:                                             ; preds = %1092, %1063
  br label %1094

1094:                                             ; preds = %1093, %1041
  br label %1295

1095:                                             ; preds = %1014
  %1096 = load ptr, ptr %19, align 8, !tbaa !5
  %1097 = getelementptr inbounds i8, ptr %1096, i64 0
  %1098 = load i8, ptr %1097, align 1, !tbaa !16
  %1099 = zext i8 %1098 to i32
  %1100 = icmp eq i32 %1099, 102
  br i1 %1100, label %1101, label %1129

1101:                                             ; preds = %1095
  %1102 = load ptr, ptr %19, align 8, !tbaa !5
  %1103 = getelementptr inbounds i8, ptr %1102, i64 1
  %1104 = load i8, ptr %1103, align 1, !tbaa !16
  %1105 = zext i8 %1104 to i32
  %1106 = icmp eq i32 %1105, 117
  br i1 %1106, label %1107, label %1128

1107:                                             ; preds = %1101
  %1108 = load ptr, ptr %19, align 8, !tbaa !5
  %1109 = getelementptr inbounds i8, ptr %1108, i64 2
  %1110 = load i8, ptr %1109, align 1, !tbaa !16
  %1111 = zext i8 %1110 to i32
  %1112 = icmp eq i32 %1111, 108
  br i1 %1112, label %1113, label %1128

1113:                                             ; preds = %1107
  %1114 = load ptr, ptr %19, align 8, !tbaa !5
  %1115 = getelementptr inbounds i8, ptr %1114, i64 3
  %1116 = load i8, ptr %1115, align 1, !tbaa !16
  %1117 = zext i8 %1116 to i32
  %1118 = icmp eq i32 %1117, 32
  br i1 %1118, label %1119, label %1128

1119:                                             ; preds = %1113
  %1120 = load i64, ptr %17, align 8, !tbaa !9
  %1121 = load i64, ptr %16, align 8, !tbaa !9
  %1122 = mul i64 90, %1121
  %1123 = add i64 %1120, %1122
  %1124 = load i64, ptr %15, align 8, !tbaa !9
  %1125 = add i64 %1124, 4
  %1126 = load i64, ptr %15, align 8, !tbaa !9
  %1127 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1123, i64 noundef %1125, i64 noundef %1126, ptr noundef %1127)
  br label %1128

1128:                                             ; preds = %1119, %1113, %1107, %1101
  br label %1294

1129:                                             ; preds = %1095
  %1130 = load ptr, ptr %19, align 8, !tbaa !5
  %1131 = getelementptr inbounds i8, ptr %1130, i64 0
  %1132 = load i8, ptr %1131, align 1, !tbaa !16
  %1133 = zext i8 %1132 to i32
  %1134 = icmp eq i32 %1133, 105
  br i1 %1134, label %1135, label %1193

1135:                                             ; preds = %1129
  %1136 = load ptr, ptr %19, align 8, !tbaa !5
  %1137 = getelementptr inbounds i8, ptr %1136, i64 1
  %1138 = load i8, ptr %1137, align 1, !tbaa !16
  %1139 = zext i8 %1138 to i32
  %1140 = icmp eq i32 %1139, 118
  br i1 %1140, label %1141, label %1163

1141:                                             ; preds = %1135
  %1142 = load ptr, ptr %19, align 8, !tbaa !5
  %1143 = getelementptr inbounds i8, ptr %1142, i64 2
  %1144 = load i8, ptr %1143, align 1, !tbaa !16
  %1145 = zext i8 %1144 to i32
  %1146 = icmp eq i32 %1145, 101
  br i1 %1146, label %1147, label %1162

1147:                                             ; preds = %1141
  %1148 = load ptr, ptr %19, align 8, !tbaa !5
  %1149 = getelementptr inbounds i8, ptr %1148, i64 3
  %1150 = load i8, ptr %1149, align 1, !tbaa !16
  %1151 = zext i8 %1150 to i32
  %1152 = icmp eq i32 %1151, 32
  br i1 %1152, label %1153, label %1162

1153:                                             ; preds = %1147
  %1154 = load i64, ptr %17, align 8, !tbaa !9
  %1155 = load i64, ptr %16, align 8, !tbaa !9
  %1156 = mul i64 92, %1155
  %1157 = add i64 %1154, %1156
  %1158 = load i64, ptr %15, align 8, !tbaa !9
  %1159 = add i64 %1158, 4
  %1160 = load i64, ptr %15, align 8, !tbaa !9
  %1161 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1157, i64 noundef %1159, i64 noundef %1160, ptr noundef %1161)
  br label %1162

1162:                                             ; preds = %1153, %1147, %1141
  br label %1192

1163:                                             ; preds = %1135
  %1164 = load ptr, ptr %19, align 8, !tbaa !5
  %1165 = getelementptr inbounds i8, ptr %1164, i64 1
  %1166 = load i8, ptr %1165, align 1, !tbaa !16
  %1167 = zext i8 %1166 to i32
  %1168 = icmp eq i32 %1167, 122
  br i1 %1168, label %1169, label %1191

1169:                                             ; preds = %1163
  %1170 = load ptr, ptr %19, align 8, !tbaa !5
  %1171 = getelementptr inbounds i8, ptr %1170, i64 2
  %1172 = load i8, ptr %1171, align 1, !tbaa !16
  %1173 = zext i8 %1172 to i32
  %1174 = icmp eq i32 %1173, 101
  br i1 %1174, label %1175, label %1190

1175:                                             ; preds = %1169
  %1176 = load ptr, ptr %19, align 8, !tbaa !5
  %1177 = getelementptr inbounds i8, ptr %1176, i64 3
  %1178 = load i8, ptr %1177, align 1, !tbaa !16
  %1179 = zext i8 %1178 to i32
  %1180 = icmp eq i32 %1179, 32
  br i1 %1180, label %1181, label %1190

1181:                                             ; preds = %1175
  %1182 = load i64, ptr %17, align 8, !tbaa !9
  %1183 = load i64, ptr %16, align 8, !tbaa !9
  %1184 = mul i64 100, %1183
  %1185 = add i64 %1182, %1184
  %1186 = load i64, ptr %15, align 8, !tbaa !9
  %1187 = add i64 %1186, 4
  %1188 = load i64, ptr %15, align 8, !tbaa !9
  %1189 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1185, i64 noundef %1187, i64 noundef %1188, ptr noundef %1189)
  br label %1190

1190:                                             ; preds = %1181, %1175, %1169
  br label %1191

1191:                                             ; preds = %1190, %1163
  br label %1192

1192:                                             ; preds = %1191, %1162
  br label %1293

1193:                                             ; preds = %1129
  %1194 = load ptr, ptr %19, align 8, !tbaa !5
  %1195 = getelementptr inbounds i8, ptr %1194, i64 0
  %1196 = load i8, ptr %1195, align 1, !tbaa !16
  %1197 = zext i8 %1196 to i32
  %1198 = icmp eq i32 %1197, 108
  br i1 %1198, label %1199, label %1257

1199:                                             ; preds = %1193
  %1200 = load ptr, ptr %19, align 8, !tbaa !5
  %1201 = getelementptr inbounds i8, ptr %1200, i64 1
  %1202 = load i8, ptr %1201, align 1, !tbaa !16
  %1203 = zext i8 %1202 to i32
  %1204 = icmp eq i32 %1203, 101
  br i1 %1204, label %1205, label %1233

1205:                                             ; preds = %1199
  %1206 = load ptr, ptr %19, align 8, !tbaa !5
  %1207 = getelementptr inbounds i8, ptr %1206, i64 2
  %1208 = load i8, ptr %1207, align 1, !tbaa !16
  %1209 = zext i8 %1208 to i32
  %1210 = icmp eq i32 %1209, 115
  br i1 %1210, label %1211, label %1232

1211:                                             ; preds = %1205
  %1212 = load ptr, ptr %19, align 8, !tbaa !5
  %1213 = getelementptr inbounds i8, ptr %1212, i64 3
  %1214 = load i8, ptr %1213, align 1, !tbaa !16
  %1215 = zext i8 %1214 to i32
  %1216 = icmp eq i32 %1215, 115
  br i1 %1216, label %1217, label %1232

1217:                                             ; preds = %1211
  %1218 = load ptr, ptr %19, align 8, !tbaa !5
  %1219 = getelementptr inbounds i8, ptr %1218, i64 4
  %1220 = load i8, ptr %1219, align 1, !tbaa !16
  %1221 = zext i8 %1220 to i32
  %1222 = icmp eq i32 %1221, 32
  br i1 %1222, label %1223, label %1232

1223:                                             ; preds = %1217
  %1224 = load i64, ptr %17, align 8, !tbaa !9
  %1225 = load i64, ptr %16, align 8, !tbaa !9
  %1226 = mul i64 93, %1225
  %1227 = add i64 %1224, %1226
  %1228 = load i64, ptr %15, align 8, !tbaa !9
  %1229 = add i64 %1228, 5
  %1230 = load i64, ptr %15, align 8, !tbaa !9
  %1231 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1227, i64 noundef %1229, i64 noundef %1230, ptr noundef %1231)
  br label %1232

1232:                                             ; preds = %1223, %1217, %1211, %1205
  br label %1256

1233:                                             ; preds = %1199
  %1234 = load ptr, ptr %19, align 8, !tbaa !5
  %1235 = getelementptr inbounds i8, ptr %1234, i64 1
  %1236 = load i8, ptr %1235, align 1, !tbaa !16
  %1237 = zext i8 %1236 to i32
  %1238 = icmp eq i32 %1237, 121
  br i1 %1238, label %1239, label %1255

1239:                                             ; preds = %1233
  %1240 = load ptr, ptr %19, align 8, !tbaa !5
  %1241 = getelementptr inbounds i8, ptr %1240, i64 2
  %1242 = load i8, ptr %1241, align 1, !tbaa !16
  %1243 = zext i8 %1242 to i32
  %1244 = icmp eq i32 %1243, 32
  br i1 %1244, label %1245, label %1254

1245:                                             ; preds = %1239
  %1246 = load i64, ptr %17, align 8, !tbaa !9
  %1247 = load i64, ptr %16, align 8, !tbaa !9
  %1248 = mul i64 61, %1247
  %1249 = add i64 %1246, %1248
  %1250 = load i64, ptr %15, align 8, !tbaa !9
  %1251 = add i64 %1250, 3
  %1252 = load i64, ptr %15, align 8, !tbaa !9
  %1253 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1249, i64 noundef %1251, i64 noundef %1252, ptr noundef %1253)
  br label %1254

1254:                                             ; preds = %1245, %1239
  br label %1255

1255:                                             ; preds = %1254, %1233
  br label %1256

1256:                                             ; preds = %1255, %1232
  br label %1292

1257:                                             ; preds = %1193
  %1258 = load ptr, ptr %19, align 8, !tbaa !5
  %1259 = getelementptr inbounds i8, ptr %1258, i64 0
  %1260 = load i8, ptr %1259, align 1, !tbaa !16
  %1261 = zext i8 %1260 to i32
  %1262 = icmp eq i32 %1261, 111
  br i1 %1262, label %1263, label %1291

1263:                                             ; preds = %1257
  %1264 = load ptr, ptr %19, align 8, !tbaa !5
  %1265 = getelementptr inbounds i8, ptr %1264, i64 1
  %1266 = load i8, ptr %1265, align 1, !tbaa !16
  %1267 = zext i8 %1266 to i32
  %1268 = icmp eq i32 %1267, 117
  br i1 %1268, label %1269, label %1290

1269:                                             ; preds = %1263
  %1270 = load ptr, ptr %19, align 8, !tbaa !5
  %1271 = getelementptr inbounds i8, ptr %1270, i64 2
  %1272 = load i8, ptr %1271, align 1, !tbaa !16
  %1273 = zext i8 %1272 to i32
  %1274 = icmp eq i32 %1273, 115
  br i1 %1274, label %1275, label %1290

1275:                                             ; preds = %1269
  %1276 = load ptr, ptr %19, align 8, !tbaa !5
  %1277 = getelementptr inbounds i8, ptr %1276, i64 3
  %1278 = load i8, ptr %1277, align 1, !tbaa !16
  %1279 = zext i8 %1278 to i32
  %1280 = icmp eq i32 %1279, 32
  br i1 %1280, label %1281, label %1290

1281:                                             ; preds = %1275
  %1282 = load i64, ptr %17, align 8, !tbaa !9
  %1283 = load i64, ptr %16, align 8, !tbaa !9
  %1284 = mul i64 106, %1283
  %1285 = add i64 %1282, %1284
  %1286 = load i64, ptr %15, align 8, !tbaa !9
  %1287 = add i64 %1286, 4
  %1288 = load i64, ptr %15, align 8, !tbaa !9
  %1289 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1285, i64 noundef %1287, i64 noundef %1288, ptr noundef %1289)
  br label %1290

1290:                                             ; preds = %1281, %1275, %1269, %1263
  br label %1291

1291:                                             ; preds = %1290, %1257
  br label %1292

1292:                                             ; preds = %1291, %1256
  br label %1293

1293:                                             ; preds = %1292, %1192
  br label %1294

1294:                                             ; preds = %1293, %1128
  br label %1295

1295:                                             ; preds = %1294, %1094
  br label %1296

1296:                                             ; preds = %1295, %1013
  br label %1297

1297:                                             ; preds = %1296, %985
  br label %1298

1298:                                             ; preds = %1297, %939
  br label %1299

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

1300:                                             ; preds = %1299, %909
  br label %1301

1301:                                             ; preds = %1300, %894
  br label %1302

1302:                                             ; preds = %1301, %887
  br label %1303

1303:                                             ; preds = %1302, %857
  br label %1304

1304:                                             ; preds = %1303, %827
  br label %1305

1305:                                             ; preds = %1304, %733
  br label %1306

1306:                                             ; preds = %1305, %703
  store i32 0, ptr %23, align 4
  br label %1307

1307:                                             ; preds = %1306, %218
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  %1308 = load i32, ptr %23, align 4
  switch i32 %1308, label %1586 [
    i32 0, label %1309
  ]

1309:                                             ; preds = %1307
  br label %1585

1310:                                             ; preds = %64
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  %1311 = getelementptr inbounds %struct.DictWord, ptr %14, i32 0, i32 1
  %1312 = load i8, ptr %1311, align 1, !tbaa !20
  %1313 = zext i8 %1312 to i32
  %1314 = icmp ne i32 %1313, 10
  %1315 = xor i1 %1314, true
  %1316 = xor i1 %1315, true
  %1317 = zext i1 %1316 to i64
  %1318 = select i1 %1316, i32 1, i32 0
  store i32 %1318, ptr %24, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  %1319 = load ptr, ptr %6, align 8, !tbaa !5
  %1320 = load ptr, ptr %7, align 8, !tbaa !5
  %1321 = load i64, ptr %9, align 8, !tbaa !9
  %1322 = load i32, ptr %14, align 2
  %1323 = call i32 @IsMatch(ptr noundef %1319, i32 %1322, ptr noundef %1320, i64 noundef %1321)
  %1324 = icmp ne i32 %1323, 0
  br i1 %1324, label %1326, label %1325

1325:                                             ; preds = %1310
  store i32 2, ptr %23, align 4
  br label %1582, !llvm.loop !23

1326:                                             ; preds = %1310
  %1327 = load i64, ptr %17, align 8, !tbaa !9
  %1328 = load i32, ptr %24, align 4, !tbaa !11
  %1329 = icmp ne i32 %1328, 0
  %1330 = zext i1 %1329 to i64
  %1331 = select i1 %1329, i32 44, i32 9
  %1332 = sext i32 %1331 to i64
  %1333 = load i64, ptr %16, align 8, !tbaa !9
  %1334 = mul i64 %1332, %1333
  %1335 = add i64 %1327, %1334
  %1336 = load i64, ptr %15, align 8, !tbaa !9
  %1337 = load i64, ptr %15, align 8, !tbaa !9
  %1338 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1335, i64 noundef %1336, i64 noundef %1337, ptr noundef %1338)
  store i32 1, ptr %11, align 4, !tbaa !11
  %1339 = load i64, ptr %15, align 8, !tbaa !9
  %1340 = add i64 %1339, 1
  %1341 = load i64, ptr %9, align 8, !tbaa !9
  %1342 = icmp uge i64 %1340, %1341
  br i1 %1342, label %1343, label %1344

1343:                                             ; preds = %1326
  store i32 2, ptr %23, align 4
  br label %1582, !llvm.loop !23

1344:                                             ; preds = %1326
  %1345 = load ptr, ptr %7, align 8, !tbaa !5
  %1346 = load i64, ptr %15, align 8, !tbaa !9
  %1347 = getelementptr inbounds i8, ptr %1345, i64 %1346
  store ptr %1347, ptr %25, align 8, !tbaa !5
  %1348 = load ptr, ptr %25, align 8, !tbaa !5
  %1349 = getelementptr inbounds i8, ptr %1348, i64 0
  %1350 = load i8, ptr %1349, align 1, !tbaa !16
  %1351 = zext i8 %1350 to i32
  %1352 = icmp eq i32 %1351, 32
  br i1 %1352, label %1353, label %1367

1353:                                             ; preds = %1344
  %1354 = load i64, ptr %17, align 8, !tbaa !9
  %1355 = load i32, ptr %24, align 4, !tbaa !11
  %1356 = icmp ne i32 %1355, 0
  %1357 = zext i1 %1356 to i64
  %1358 = select i1 %1356, i32 68, i32 4
  %1359 = sext i32 %1358 to i64
  %1360 = load i64, ptr %16, align 8, !tbaa !9
  %1361 = mul i64 %1359, %1360
  %1362 = add i64 %1354, %1361
  %1363 = load i64, ptr %15, align 8, !tbaa !9
  %1364 = add i64 %1363, 1
  %1365 = load i64, ptr %15, align 8, !tbaa !9
  %1366 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1362, i64 noundef %1364, i64 noundef %1365, ptr noundef %1366)
  br label %1581

1367:                                             ; preds = %1344
  %1368 = load ptr, ptr %25, align 8, !tbaa !5
  %1369 = getelementptr inbounds i8, ptr %1368, i64 0
  %1370 = load i8, ptr %1369, align 1, !tbaa !16
  %1371 = zext i8 %1370 to i32
  %1372 = icmp eq i32 %1371, 34
  br i1 %1372, label %1373, label %1407

1373:                                             ; preds = %1367
  %1374 = load i64, ptr %17, align 8, !tbaa !9
  %1375 = load i32, ptr %24, align 4, !tbaa !11
  %1376 = icmp ne i32 %1375, 0
  %1377 = zext i1 %1376 to i64
  %1378 = select i1 %1376, i32 87, i32 66
  %1379 = sext i32 %1378 to i64
  %1380 = load i64, ptr %16, align 8, !tbaa !9
  %1381 = mul i64 %1379, %1380
  %1382 = add i64 %1374, %1381
  %1383 = load i64, ptr %15, align 8, !tbaa !9
  %1384 = add i64 %1383, 1
  %1385 = load i64, ptr %15, align 8, !tbaa !9
  %1386 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1382, i64 noundef %1384, i64 noundef %1385, ptr noundef %1386)
  %1387 = load ptr, ptr %25, align 8, !tbaa !5
  %1388 = getelementptr inbounds i8, ptr %1387, i64 1
  %1389 = load i8, ptr %1388, align 1, !tbaa !16
  %1390 = zext i8 %1389 to i32
  %1391 = icmp eq i32 %1390, 62
  br i1 %1391, label %1392, label %1406

1392:                                             ; preds = %1373
  %1393 = load i64, ptr %17, align 8, !tbaa !9
  %1394 = load i32, ptr %24, align 4, !tbaa !11
  %1395 = icmp ne i32 %1394, 0
  %1396 = zext i1 %1395 to i64
  %1397 = select i1 %1395, i32 97, i32 69
  %1398 = sext i32 %1397 to i64
  %1399 = load i64, ptr %16, align 8, !tbaa !9
  %1400 = mul i64 %1398, %1399
  %1401 = add i64 %1393, %1400
  %1402 = load i64, ptr %15, align 8, !tbaa !9
  %1403 = add i64 %1402, 2
  %1404 = load i64, ptr %15, align 8, !tbaa !9
  %1405 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1401, i64 noundef %1403, i64 noundef %1404, ptr noundef %1405)
  br label %1406

1406:                                             ; preds = %1392, %1373
  br label %1580

1407:                                             ; preds = %1367
  %1408 = load ptr, ptr %25, align 8, !tbaa !5
  %1409 = getelementptr inbounds i8, ptr %1408, i64 0
  %1410 = load i8, ptr %1409, align 1, !tbaa !16
  %1411 = zext i8 %1410 to i32
  %1412 = icmp eq i32 %1411, 46
  br i1 %1412, label %1413, label %1447

1413:                                             ; preds = %1407
  %1414 = load i64, ptr %17, align 8, !tbaa !9
  %1415 = load i32, ptr %24, align 4, !tbaa !11
  %1416 = icmp ne i32 %1415, 0
  %1417 = zext i1 %1416 to i64
  %1418 = select i1 %1416, i32 101, i32 79
  %1419 = sext i32 %1418 to i64
  %1420 = load i64, ptr %16, align 8, !tbaa !9
  %1421 = mul i64 %1419, %1420
  %1422 = add i64 %1414, %1421
  %1423 = load i64, ptr %15, align 8, !tbaa !9
  %1424 = add i64 %1423, 1
  %1425 = load i64, ptr %15, align 8, !tbaa !9
  %1426 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1422, i64 noundef %1424, i64 noundef %1425, ptr noundef %1426)
  %1427 = load ptr, ptr %25, align 8, !tbaa !5
  %1428 = getelementptr inbounds i8, ptr %1427, i64 1
  %1429 = load i8, ptr %1428, align 1, !tbaa !16
  %1430 = zext i8 %1429 to i32
  %1431 = icmp eq i32 %1430, 32
  br i1 %1431, label %1432, label %1446

1432:                                             ; preds = %1413
  %1433 = load i64, ptr %17, align 8, !tbaa !9
  %1434 = load i32, ptr %24, align 4, !tbaa !11
  %1435 = icmp ne i32 %1434, 0
  %1436 = zext i1 %1435 to i64
  %1437 = select i1 %1435, i32 114, i32 88
  %1438 = sext i32 %1437 to i64
  %1439 = load i64, ptr %16, align 8, !tbaa !9
  %1440 = mul i64 %1438, %1439
  %1441 = add i64 %1433, %1440
  %1442 = load i64, ptr %15, align 8, !tbaa !9
  %1443 = add i64 %1442, 2
  %1444 = load i64, ptr %15, align 8, !tbaa !9
  %1445 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1441, i64 noundef %1443, i64 noundef %1444, ptr noundef %1445)
  br label %1446

1446:                                             ; preds = %1432, %1413
  br label %1579

1447:                                             ; preds = %1407
  %1448 = load ptr, ptr %25, align 8, !tbaa !5
  %1449 = getelementptr inbounds i8, ptr %1448, i64 0
  %1450 = load i8, ptr %1449, align 1, !tbaa !16
  %1451 = zext i8 %1450 to i32
  %1452 = icmp eq i32 %1451, 44
  br i1 %1452, label %1453, label %1487

1453:                                             ; preds = %1447
  %1454 = load i64, ptr %17, align 8, !tbaa !9
  %1455 = load i32, ptr %24, align 4, !tbaa !11
  %1456 = icmp ne i32 %1455, 0
  %1457 = zext i1 %1456 to i64
  %1458 = select i1 %1456, i32 112, i32 99
  %1459 = sext i32 %1458 to i64
  %1460 = load i64, ptr %16, align 8, !tbaa !9
  %1461 = mul i64 %1459, %1460
  %1462 = add i64 %1454, %1461
  %1463 = load i64, ptr %15, align 8, !tbaa !9
  %1464 = add i64 %1463, 1
  %1465 = load i64, ptr %15, align 8, !tbaa !9
  %1466 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1462, i64 noundef %1464, i64 noundef %1465, ptr noundef %1466)
  %1467 = load ptr, ptr %25, align 8, !tbaa !5
  %1468 = getelementptr inbounds i8, ptr %1467, i64 1
  %1469 = load i8, ptr %1468, align 1, !tbaa !16
  %1470 = zext i8 %1469 to i32
  %1471 = icmp eq i32 %1470, 32
  br i1 %1471, label %1472, label %1486

1472:                                             ; preds = %1453
  %1473 = load i64, ptr %17, align 8, !tbaa !9
  %1474 = load i32, ptr %24, align 4, !tbaa !11
  %1475 = icmp ne i32 %1474, 0
  %1476 = zext i1 %1475 to i64
  %1477 = select i1 %1475, i32 107, i32 58
  %1478 = sext i32 %1477 to i64
  %1479 = load i64, ptr %16, align 8, !tbaa !9
  %1480 = mul i64 %1478, %1479
  %1481 = add i64 %1473, %1480
  %1482 = load i64, ptr %15, align 8, !tbaa !9
  %1483 = add i64 %1482, 2
  %1484 = load i64, ptr %15, align 8, !tbaa !9
  %1485 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1481, i64 noundef %1483, i64 noundef %1484, ptr noundef %1485)
  br label %1486

1486:                                             ; preds = %1472, %1453
  br label %1578

1487:                                             ; preds = %1447
  %1488 = load ptr, ptr %25, align 8, !tbaa !5
  %1489 = getelementptr inbounds i8, ptr %1488, i64 0
  %1490 = load i8, ptr %1489, align 1, !tbaa !16
  %1491 = zext i8 %1490 to i32
  %1492 = icmp eq i32 %1491, 39
  br i1 %1492, label %1493, label %1507

1493:                                             ; preds = %1487
  %1494 = load i64, ptr %17, align 8, !tbaa !9
  %1495 = load i32, ptr %24, align 4, !tbaa !11
  %1496 = icmp ne i32 %1495, 0
  %1497 = zext i1 %1496 to i64
  %1498 = select i1 %1496, i32 94, i32 74
  %1499 = sext i32 %1498 to i64
  %1500 = load i64, ptr %16, align 8, !tbaa !9
  %1501 = mul i64 %1499, %1500
  %1502 = add i64 %1494, %1501
  %1503 = load i64, ptr %15, align 8, !tbaa !9
  %1504 = add i64 %1503, 1
  %1505 = load i64, ptr %15, align 8, !tbaa !9
  %1506 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1502, i64 noundef %1504, i64 noundef %1505, ptr noundef %1506)
  br label %1577

1507:                                             ; preds = %1487
  %1508 = load ptr, ptr %25, align 8, !tbaa !5
  %1509 = getelementptr inbounds i8, ptr %1508, i64 0
  %1510 = load i8, ptr %1509, align 1, !tbaa !16
  %1511 = zext i8 %1510 to i32
  %1512 = icmp eq i32 %1511, 40
  br i1 %1512, label %1513, label %1527

1513:                                             ; preds = %1507
  %1514 = load i64, ptr %17, align 8, !tbaa !9
  %1515 = load i32, ptr %24, align 4, !tbaa !11
  %1516 = icmp ne i32 %1515, 0
  %1517 = zext i1 %1516 to i64
  %1518 = select i1 %1516, i32 113, i32 78
  %1519 = sext i32 %1518 to i64
  %1520 = load i64, ptr %16, align 8, !tbaa !9
  %1521 = mul i64 %1519, %1520
  %1522 = add i64 %1514, %1521
  %1523 = load i64, ptr %15, align 8, !tbaa !9
  %1524 = add i64 %1523, 1
  %1525 = load i64, ptr %15, align 8, !tbaa !9
  %1526 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1522, i64 noundef %1524, i64 noundef %1525, ptr noundef %1526)
  br label %1576

1527:                                             ; preds = %1507
  %1528 = load ptr, ptr %25, align 8, !tbaa !5
  %1529 = getelementptr inbounds i8, ptr %1528, i64 0
  %1530 = load i8, ptr %1529, align 1, !tbaa !16
  %1531 = zext i8 %1530 to i32
  %1532 = icmp eq i32 %1531, 61
  br i1 %1532, label %1533, label %1575

1533:                                             ; preds = %1527
  %1534 = load ptr, ptr %25, align 8, !tbaa !5
  %1535 = getelementptr inbounds i8, ptr %1534, i64 1
  %1536 = load i8, ptr %1535, align 1, !tbaa !16
  %1537 = zext i8 %1536 to i32
  %1538 = icmp eq i32 %1537, 34
  br i1 %1538, label %1539, label %1553

1539:                                             ; preds = %1533
  %1540 = load i64, ptr %17, align 8, !tbaa !9
  %1541 = load i32, ptr %24, align 4, !tbaa !11
  %1542 = icmp ne i32 %1541, 0
  %1543 = zext i1 %1542 to i64
  %1544 = select i1 %1542, i32 105, i32 104
  %1545 = sext i32 %1544 to i64
  %1546 = load i64, ptr %16, align 8, !tbaa !9
  %1547 = mul i64 %1545, %1546
  %1548 = add i64 %1540, %1547
  %1549 = load i64, ptr %15, align 8, !tbaa !9
  %1550 = add i64 %1549, 2
  %1551 = load i64, ptr %15, align 8, !tbaa !9
  %1552 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1548, i64 noundef %1550, i64 noundef %1551, ptr noundef %1552)
  br label %1574

1553:                                             ; preds = %1533
  %1554 = load ptr, ptr %25, align 8, !tbaa !5
  %1555 = getelementptr inbounds i8, ptr %1554, i64 1
  %1556 = load i8, ptr %1555, align 1, !tbaa !16
  %1557 = zext i8 %1556 to i32
  %1558 = icmp eq i32 %1557, 39
  br i1 %1558, label %1559, label %1573

1559:                                             ; preds = %1553
  %1560 = load i64, ptr %17, align 8, !tbaa !9
  %1561 = load i32, ptr %24, align 4, !tbaa !11
  %1562 = icmp ne i32 %1561, 0
  %1563 = zext i1 %1562 to i64
  %1564 = select i1 %1562, i32 116, i32 108
  %1565 = sext i32 %1564 to i64
  %1566 = load i64, ptr %16, align 8, !tbaa !9
  %1567 = mul i64 %1565, %1566
  %1568 = add i64 %1560, %1567
  %1569 = load i64, ptr %15, align 8, !tbaa !9
  %1570 = add i64 %1569, 2
  %1571 = load i64, ptr %15, align 8, !tbaa !9
  %1572 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1568, i64 noundef %1570, i64 noundef %1571, ptr noundef %1572)
  br label %1573

1573:                                             ; preds = %1559, %1553
  br label %1574

1574:                                             ; preds = %1573, %1539
  br label %1575

1575:                                             ; preds = %1574, %1527
  br label %1576

1576:                                             ; preds = %1575, %1513
  br label %1577

1577:                                             ; preds = %1576, %1493
  br label %1578

1578:                                             ; preds = %1577, %1486
  br label %1579

1579:                                             ; preds = %1578, %1446
  br label %1580

1580:                                             ; preds = %1579, %1406
  br label %1581

1581:                                             ; preds = %1580, %1353
  store i32 0, ptr %23, align 4
  br label %1582

1582:                                             ; preds = %1581, %1343, %1325
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  %1583 = load i32, ptr %23, align 4
  switch i32 %1583, label %1586 [
    i32 0, label %1584
  ]

1584:                                             ; preds = %1582
  br label %1585

1585:                                             ; preds = %1584, %1309
  store i32 0, ptr %23, align 4
  br label %1586

1586:                                             ; preds = %1585, %1582, %1307
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  %1587 = load i32, ptr %23, align 4
  switch i32 %1587, label %2448 [
    i32 0, label %1588
    i32 2, label %60
  ]

1588:                                             ; preds = %1586
  br label %60, !llvm.loop !23

1589:                                             ; preds = %60
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  %1590 = load i64, ptr %9, align 8, !tbaa !9
  %1591 = icmp uge i64 %1590, 5
  br i1 %1591, label %1592, label %2051

1592:                                             ; preds = %1589
  %1593 = load ptr, ptr %7, align 8, !tbaa !5
  %1594 = getelementptr inbounds i8, ptr %1593, i64 0
  %1595 = load i8, ptr %1594, align 1, !tbaa !16
  %1596 = zext i8 %1595 to i32
  %1597 = icmp eq i32 %1596, 32
  br i1 %1597, label %1604, label %1598

1598:                                             ; preds = %1592
  %1599 = load ptr, ptr %7, align 8, !tbaa !5
  %1600 = getelementptr inbounds i8, ptr %1599, i64 0
  %1601 = load i8, ptr %1600, align 1, !tbaa !16
  %1602 = zext i8 %1601 to i32
  %1603 = icmp eq i32 %1602, 46
  br i1 %1603, label %1604, label %2051

1604:                                             ; preds = %1598, %1592
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  %1605 = load ptr, ptr %7, align 8, !tbaa !5
  %1606 = getelementptr inbounds i8, ptr %1605, i64 0
  %1607 = load i8, ptr %1606, align 1, !tbaa !16
  %1608 = zext i8 %1607 to i32
  %1609 = icmp eq i32 %1608, 32
  %1610 = xor i1 %1609, true
  %1611 = xor i1 %1610, true
  %1612 = zext i1 %1611 to i64
  %1613 = select i1 %1611, i32 1, i32 0
  store i32 %1613, ptr %26, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  %1614 = load ptr, ptr %7, align 8, !tbaa !5
  %1615 = getelementptr inbounds i8, ptr %1614, i64 1
  %1616 = call i32 @Hash(ptr noundef %1615)
  %1617 = zext i32 %1616 to i64
  %1618 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %1617
  %1619 = load i16, ptr %1618, align 2, !tbaa !13
  %1620 = zext i16 %1619 to i64
  store i64 %1620, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  %1621 = load i64, ptr %27, align 8, !tbaa !9
  %1622 = icmp ne i64 %1621, 0
  %1623 = xor i1 %1622, true
  %1624 = zext i1 %1623 to i32
  store i32 %1624, ptr %28, align 4, !tbaa !11
  br label %1625

1625:                                             ; preds = %2049, %2047, %1604
  %1626 = load i32, ptr %28, align 4, !tbaa !11
  %1627 = icmp ne i32 %1626, 0
  %1628 = xor i1 %1627, true
  br i1 %1628, label %1629, label %2050

1629:                                             ; preds = %1625
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  %1630 = load i64, ptr %27, align 8, !tbaa !9
  %1631 = add i64 %1630, 1
  store i64 %1631, ptr %27, align 8, !tbaa !9
  %1632 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %1630
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %29, ptr align 4 %1632, i64 4, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  %1633 = getelementptr inbounds %struct.DictWord, ptr %29, i32 0, i32 0
  %1634 = load i8, ptr %1633, align 2, !tbaa !17
  %1635 = zext i8 %1634 to i32
  %1636 = and i32 %1635, 31
  %1637 = sext i32 %1636 to i64
  store i64 %1637, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  %1638 = load ptr, ptr %6, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.BrotliDictionary, ptr %1638, i32 0, i32 0
  %1640 = load i64, ptr %30, align 8, !tbaa !9
  %1641 = getelementptr inbounds [32 x i8], ptr %1639, i64 0, i64 %1640
  %1642 = load i8, ptr %1641, align 1, !tbaa !16
  %1643 = zext i8 %1642 to i32
  %1644 = zext i32 %1643 to i64
  %1645 = shl i64 1, %1644
  store i64 %1645, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  %1646 = getelementptr inbounds %struct.DictWord, ptr %29, i32 0, i32 2
  %1647 = load i16, ptr %1646, align 2, !tbaa !19
  %1648 = zext i16 %1647 to i64
  store i64 %1648, ptr %32, align 8, !tbaa !9
  %1649 = getelementptr inbounds %struct.DictWord, ptr %29, i32 0, i32 0
  %1650 = load i8, ptr %1649, align 2, !tbaa !17
  %1651 = zext i8 %1650 to i32
  %1652 = and i32 %1651, 128
  %1653 = icmp ne i32 %1652, 0
  %1654 = xor i1 %1653, true
  %1655 = xor i1 %1654, true
  %1656 = zext i1 %1655 to i32
  store i32 %1656, ptr %28, align 4, !tbaa !11
  %1657 = load i64, ptr %30, align 8, !tbaa !9
  %1658 = trunc i64 %1657 to i8
  %1659 = getelementptr inbounds %struct.DictWord, ptr %29, i32 0, i32 0
  store i8 %1658, ptr %1659, align 2, !tbaa !17
  %1660 = getelementptr inbounds %struct.DictWord, ptr %29, i32 0, i32 1
  %1661 = load i8, ptr %1660, align 1, !tbaa !20
  %1662 = zext i8 %1661 to i32
  %1663 = icmp eq i32 %1662, 0
  br i1 %1663, label %1664, label %1847

1664:                                             ; preds = %1629
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  %1665 = load ptr, ptr %6, align 8, !tbaa !5
  %1666 = load ptr, ptr %7, align 8, !tbaa !5
  %1667 = getelementptr inbounds i8, ptr %1666, i64 1
  %1668 = load i64, ptr %9, align 8, !tbaa !9
  %1669 = sub i64 %1668, 1
  %1670 = load i32, ptr %29, align 2
  %1671 = call i32 @IsMatch(ptr noundef %1665, i32 %1670, ptr noundef %1667, i64 noundef %1669)
  %1672 = icmp ne i32 %1671, 0
  br i1 %1672, label %1674, label %1673

1673:                                             ; preds = %1664
  store i32 7, ptr %23, align 4
  br label %1844, !llvm.loop !24

1674:                                             ; preds = %1664
  %1675 = load i64, ptr %32, align 8, !tbaa !9
  %1676 = load i32, ptr %26, align 4, !tbaa !11
  %1677 = icmp ne i32 %1676, 0
  %1678 = zext i1 %1677 to i64
  %1679 = select i1 %1677, i32 6, i32 32
  %1680 = sext i32 %1679 to i64
  %1681 = load i64, ptr %31, align 8, !tbaa !9
  %1682 = mul i64 %1680, %1681
  %1683 = add i64 %1675, %1682
  %1684 = load i64, ptr %30, align 8, !tbaa !9
  %1685 = add i64 %1684, 1
  %1686 = load i64, ptr %30, align 8, !tbaa !9
  %1687 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1683, i64 noundef %1685, i64 noundef %1686, ptr noundef %1687)
  store i32 1, ptr %11, align 4, !tbaa !11
  %1688 = load i64, ptr %30, align 8, !tbaa !9
  %1689 = add i64 %1688, 2
  %1690 = load i64, ptr %9, align 8, !tbaa !9
  %1691 = icmp uge i64 %1689, %1690
  br i1 %1691, label %1692, label %1693

1692:                                             ; preds = %1674
  store i32 7, ptr %23, align 4
  br label %1844, !llvm.loop !24

1693:                                             ; preds = %1674
  %1694 = load ptr, ptr %7, align 8, !tbaa !5
  %1695 = load i64, ptr %30, align 8, !tbaa !9
  %1696 = add i64 %1695, 1
  %1697 = getelementptr inbounds i8, ptr %1694, i64 %1696
  store ptr %1697, ptr %33, align 8, !tbaa !5
  %1698 = load ptr, ptr %33, align 8, !tbaa !5
  %1699 = getelementptr inbounds i8, ptr %1698, i64 0
  %1700 = load i8, ptr %1699, align 1, !tbaa !16
  %1701 = zext i8 %1700 to i32
  %1702 = icmp eq i32 %1701, 32
  br i1 %1702, label %1703, label %1717

1703:                                             ; preds = %1693
  %1704 = load i64, ptr %32, align 8, !tbaa !9
  %1705 = load i32, ptr %26, align 4, !tbaa !11
  %1706 = icmp ne i32 %1705, 0
  %1707 = zext i1 %1706 to i64
  %1708 = select i1 %1706, i32 2, i32 77
  %1709 = sext i32 %1708 to i64
  %1710 = load i64, ptr %31, align 8, !tbaa !9
  %1711 = mul i64 %1709, %1710
  %1712 = add i64 %1704, %1711
  %1713 = load i64, ptr %30, align 8, !tbaa !9
  %1714 = add i64 %1713, 2
  %1715 = load i64, ptr %30, align 8, !tbaa !9
  %1716 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1712, i64 noundef %1714, i64 noundef %1715, ptr noundef %1716)
  br label %1843

1717:                                             ; preds = %1693
  %1718 = load ptr, ptr %33, align 8, !tbaa !5
  %1719 = getelementptr inbounds i8, ptr %1718, i64 0
  %1720 = load i8, ptr %1719, align 1, !tbaa !16
  %1721 = zext i8 %1720 to i32
  %1722 = icmp eq i32 %1721, 40
  br i1 %1722, label %1723, label %1737

1723:                                             ; preds = %1717
  %1724 = load i64, ptr %32, align 8, !tbaa !9
  %1725 = load i32, ptr %26, align 4, !tbaa !11
  %1726 = icmp ne i32 %1725, 0
  %1727 = zext i1 %1726 to i64
  %1728 = select i1 %1726, i32 89, i32 67
  %1729 = sext i32 %1728 to i64
  %1730 = load i64, ptr %31, align 8, !tbaa !9
  %1731 = mul i64 %1729, %1730
  %1732 = add i64 %1724, %1731
  %1733 = load i64, ptr %30, align 8, !tbaa !9
  %1734 = add i64 %1733, 2
  %1735 = load i64, ptr %30, align 8, !tbaa !9
  %1736 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1732, i64 noundef %1734, i64 noundef %1735, ptr noundef %1736)
  br label %1842

1737:                                             ; preds = %1717
  %1738 = load i32, ptr %26, align 4, !tbaa !11
  %1739 = icmp ne i32 %1738, 0
  br i1 %1739, label %1740, label %1841

1740:                                             ; preds = %1737
  %1741 = load ptr, ptr %33, align 8, !tbaa !5
  %1742 = getelementptr inbounds i8, ptr %1741, i64 0
  %1743 = load i8, ptr %1742, align 1, !tbaa !16
  %1744 = zext i8 %1743 to i32
  %1745 = icmp eq i32 %1744, 44
  br i1 %1745, label %1746, label %1770

1746:                                             ; preds = %1740
  %1747 = load i64, ptr %32, align 8, !tbaa !9
  %1748 = load i64, ptr %31, align 8, !tbaa !9
  %1749 = mul i64 103, %1748
  %1750 = add i64 %1747, %1749
  %1751 = load i64, ptr %30, align 8, !tbaa !9
  %1752 = add i64 %1751, 2
  %1753 = load i64, ptr %30, align 8, !tbaa !9
  %1754 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1750, i64 noundef %1752, i64 noundef %1753, ptr noundef %1754)
  %1755 = load ptr, ptr %33, align 8, !tbaa !5
  %1756 = getelementptr inbounds i8, ptr %1755, i64 1
  %1757 = load i8, ptr %1756, align 1, !tbaa !16
  %1758 = zext i8 %1757 to i32
  %1759 = icmp eq i32 %1758, 32
  br i1 %1759, label %1760, label %1769

1760:                                             ; preds = %1746
  %1761 = load i64, ptr %32, align 8, !tbaa !9
  %1762 = load i64, ptr %31, align 8, !tbaa !9
  %1763 = mul i64 33, %1762
  %1764 = add i64 %1761, %1763
  %1765 = load i64, ptr %30, align 8, !tbaa !9
  %1766 = add i64 %1765, 3
  %1767 = load i64, ptr %30, align 8, !tbaa !9
  %1768 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1764, i64 noundef %1766, i64 noundef %1767, ptr noundef %1768)
  br label %1769

1769:                                             ; preds = %1760, %1746
  br label %1840

1770:                                             ; preds = %1740
  %1771 = load ptr, ptr %33, align 8, !tbaa !5
  %1772 = getelementptr inbounds i8, ptr %1771, i64 0
  %1773 = load i8, ptr %1772, align 1, !tbaa !16
  %1774 = zext i8 %1773 to i32
  %1775 = icmp eq i32 %1774, 46
  br i1 %1775, label %1776, label %1800

1776:                                             ; preds = %1770
  %1777 = load i64, ptr %32, align 8, !tbaa !9
  %1778 = load i64, ptr %31, align 8, !tbaa !9
  %1779 = mul i64 71, %1778
  %1780 = add i64 %1777, %1779
  %1781 = load i64, ptr %30, align 8, !tbaa !9
  %1782 = add i64 %1781, 2
  %1783 = load i64, ptr %30, align 8, !tbaa !9
  %1784 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1780, i64 noundef %1782, i64 noundef %1783, ptr noundef %1784)
  %1785 = load ptr, ptr %33, align 8, !tbaa !5
  %1786 = getelementptr inbounds i8, ptr %1785, i64 1
  %1787 = load i8, ptr %1786, align 1, !tbaa !16
  %1788 = zext i8 %1787 to i32
  %1789 = icmp eq i32 %1788, 32
  br i1 %1789, label %1790, label %1799

1790:                                             ; preds = %1776
  %1791 = load i64, ptr %32, align 8, !tbaa !9
  %1792 = load i64, ptr %31, align 8, !tbaa !9
  %1793 = mul i64 52, %1792
  %1794 = add i64 %1791, %1793
  %1795 = load i64, ptr %30, align 8, !tbaa !9
  %1796 = add i64 %1795, 3
  %1797 = load i64, ptr %30, align 8, !tbaa !9
  %1798 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1794, i64 noundef %1796, i64 noundef %1797, ptr noundef %1798)
  br label %1799

1799:                                             ; preds = %1790, %1776
  br label %1839

1800:                                             ; preds = %1770
  %1801 = load ptr, ptr %33, align 8, !tbaa !5
  %1802 = getelementptr inbounds i8, ptr %1801, i64 0
  %1803 = load i8, ptr %1802, align 1, !tbaa !16
  %1804 = zext i8 %1803 to i32
  %1805 = icmp eq i32 %1804, 61
  br i1 %1805, label %1806, label %1838

1806:                                             ; preds = %1800
  %1807 = load ptr, ptr %33, align 8, !tbaa !5
  %1808 = getelementptr inbounds i8, ptr %1807, i64 1
  %1809 = load i8, ptr %1808, align 1, !tbaa !16
  %1810 = zext i8 %1809 to i32
  %1811 = icmp eq i32 %1810, 34
  br i1 %1811, label %1812, label %1821

1812:                                             ; preds = %1806
  %1813 = load i64, ptr %32, align 8, !tbaa !9
  %1814 = load i64, ptr %31, align 8, !tbaa !9
  %1815 = mul i64 81, %1814
  %1816 = add i64 %1813, %1815
  %1817 = load i64, ptr %30, align 8, !tbaa !9
  %1818 = add i64 %1817, 3
  %1819 = load i64, ptr %30, align 8, !tbaa !9
  %1820 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1816, i64 noundef %1818, i64 noundef %1819, ptr noundef %1820)
  br label %1837

1821:                                             ; preds = %1806
  %1822 = load ptr, ptr %33, align 8, !tbaa !5
  %1823 = getelementptr inbounds i8, ptr %1822, i64 1
  %1824 = load i8, ptr %1823, align 1, !tbaa !16
  %1825 = zext i8 %1824 to i32
  %1826 = icmp eq i32 %1825, 39
  br i1 %1826, label %1827, label %1836

1827:                                             ; preds = %1821
  %1828 = load i64, ptr %32, align 8, !tbaa !9
  %1829 = load i64, ptr %31, align 8, !tbaa !9
  %1830 = mul i64 98, %1829
  %1831 = add i64 %1828, %1830
  %1832 = load i64, ptr %30, align 8, !tbaa !9
  %1833 = add i64 %1832, 3
  %1834 = load i64, ptr %30, align 8, !tbaa !9
  %1835 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1831, i64 noundef %1833, i64 noundef %1834, ptr noundef %1835)
  br label %1836

1836:                                             ; preds = %1827, %1821
  br label %1837

1837:                                             ; preds = %1836, %1812
  br label %1838

1838:                                             ; preds = %1837, %1800
  br label %1839

1839:                                             ; preds = %1838, %1799
  br label %1840

1840:                                             ; preds = %1839, %1769
  br label %1841

1841:                                             ; preds = %1840, %1737
  br label %1842

1842:                                             ; preds = %1841, %1723
  br label %1843

1843:                                             ; preds = %1842, %1703
  store i32 0, ptr %23, align 4
  br label %1844

1844:                                             ; preds = %1843, %1692, %1673
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  %1845 = load i32, ptr %23, align 4
  switch i32 %1845, label %2047 [
    i32 0, label %1846
  ]

1846:                                             ; preds = %1844
  br label %2046

1847:                                             ; preds = %1629
  %1848 = load i32, ptr %26, align 4, !tbaa !11
  %1849 = icmp ne i32 %1848, 0
  br i1 %1849, label %1850, label %2045

1850:                                             ; preds = %1847
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  %1851 = getelementptr inbounds %struct.DictWord, ptr %29, i32 0, i32 1
  %1852 = load i8, ptr %1851, align 1, !tbaa !20
  %1853 = zext i8 %1852 to i32
  %1854 = icmp ne i32 %1853, 10
  %1855 = xor i1 %1854, true
  %1856 = xor i1 %1855, true
  %1857 = zext i1 %1856 to i64
  %1858 = select i1 %1856, i32 1, i32 0
  store i32 %1858, ptr %34, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  %1859 = load ptr, ptr %6, align 8, !tbaa !5
  %1860 = load ptr, ptr %7, align 8, !tbaa !5
  %1861 = getelementptr inbounds i8, ptr %1860, i64 1
  %1862 = load i64, ptr %9, align 8, !tbaa !9
  %1863 = sub i64 %1862, 1
  %1864 = load i32, ptr %29, align 2
  %1865 = call i32 @IsMatch(ptr noundef %1859, i32 %1864, ptr noundef %1861, i64 noundef %1863)
  %1866 = icmp ne i32 %1865, 0
  br i1 %1866, label %1868, label %1867

1867:                                             ; preds = %1850
  store i32 7, ptr %23, align 4
  br label %2042, !llvm.loop !24

1868:                                             ; preds = %1850
  %1869 = load i64, ptr %32, align 8, !tbaa !9
  %1870 = load i32, ptr %34, align 4, !tbaa !11
  %1871 = icmp ne i32 %1870, 0
  %1872 = zext i1 %1871 to i64
  %1873 = select i1 %1871, i32 85, i32 30
  %1874 = sext i32 %1873 to i64
  %1875 = load i64, ptr %31, align 8, !tbaa !9
  %1876 = mul i64 %1874, %1875
  %1877 = add i64 %1869, %1876
  %1878 = load i64, ptr %30, align 8, !tbaa !9
  %1879 = add i64 %1878, 1
  %1880 = load i64, ptr %30, align 8, !tbaa !9
  %1881 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1877, i64 noundef %1879, i64 noundef %1880, ptr noundef %1881)
  store i32 1, ptr %11, align 4, !tbaa !11
  %1882 = load i64, ptr %30, align 8, !tbaa !9
  %1883 = add i64 %1882, 2
  %1884 = load i64, ptr %9, align 8, !tbaa !9
  %1885 = icmp uge i64 %1883, %1884
  br i1 %1885, label %1886, label %1887

1886:                                             ; preds = %1868
  store i32 7, ptr %23, align 4
  br label %2042, !llvm.loop !24

1887:                                             ; preds = %1868
  %1888 = load ptr, ptr %7, align 8, !tbaa !5
  %1889 = load i64, ptr %30, align 8, !tbaa !9
  %1890 = add i64 %1889, 1
  %1891 = getelementptr inbounds i8, ptr %1888, i64 %1890
  store ptr %1891, ptr %35, align 8, !tbaa !5
  %1892 = load ptr, ptr %35, align 8, !tbaa !5
  %1893 = getelementptr inbounds i8, ptr %1892, i64 0
  %1894 = load i8, ptr %1893, align 1, !tbaa !16
  %1895 = zext i8 %1894 to i32
  %1896 = icmp eq i32 %1895, 32
  br i1 %1896, label %1897, label %1911

1897:                                             ; preds = %1887
  %1898 = load i64, ptr %32, align 8, !tbaa !9
  %1899 = load i32, ptr %34, align 4, !tbaa !11
  %1900 = icmp ne i32 %1899, 0
  %1901 = zext i1 %1900 to i64
  %1902 = select i1 %1900, i32 83, i32 15
  %1903 = sext i32 %1902 to i64
  %1904 = load i64, ptr %31, align 8, !tbaa !9
  %1905 = mul i64 %1903, %1904
  %1906 = add i64 %1898, %1905
  %1907 = load i64, ptr %30, align 8, !tbaa !9
  %1908 = add i64 %1907, 2
  %1909 = load i64, ptr %30, align 8, !tbaa !9
  %1910 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1906, i64 noundef %1908, i64 noundef %1909, ptr noundef %1910)
  br label %2041

1911:                                             ; preds = %1887
  %1912 = load ptr, ptr %35, align 8, !tbaa !5
  %1913 = getelementptr inbounds i8, ptr %1912, i64 0
  %1914 = load i8, ptr %1913, align 1, !tbaa !16
  %1915 = zext i8 %1914 to i32
  %1916 = icmp eq i32 %1915, 44
  br i1 %1916, label %1917, label %1950

1917:                                             ; preds = %1911
  %1918 = load i32, ptr %34, align 4, !tbaa !11
  %1919 = icmp ne i32 %1918, 0
  br i1 %1919, label %1929, label %1920

1920:                                             ; preds = %1917
  %1921 = load i64, ptr %32, align 8, !tbaa !9
  %1922 = load i64, ptr %31, align 8, !tbaa !9
  %1923 = mul i64 109, %1922
  %1924 = add i64 %1921, %1923
  %1925 = load i64, ptr %30, align 8, !tbaa !9
  %1926 = add i64 %1925, 2
  %1927 = load i64, ptr %30, align 8, !tbaa !9
  %1928 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1924, i64 noundef %1926, i64 noundef %1927, ptr noundef %1928)
  br label %1929

1929:                                             ; preds = %1920, %1917
  %1930 = load ptr, ptr %35, align 8, !tbaa !5
  %1931 = getelementptr inbounds i8, ptr %1930, i64 1
  %1932 = load i8, ptr %1931, align 1, !tbaa !16
  %1933 = zext i8 %1932 to i32
  %1934 = icmp eq i32 %1933, 32
  br i1 %1934, label %1935, label %1949

1935:                                             ; preds = %1929
  %1936 = load i64, ptr %32, align 8, !tbaa !9
  %1937 = load i32, ptr %34, align 4, !tbaa !11
  %1938 = icmp ne i32 %1937, 0
  %1939 = zext i1 %1938 to i64
  %1940 = select i1 %1938, i32 111, i32 65
  %1941 = sext i32 %1940 to i64
  %1942 = load i64, ptr %31, align 8, !tbaa !9
  %1943 = mul i64 %1941, %1942
  %1944 = add i64 %1936, %1943
  %1945 = load i64, ptr %30, align 8, !tbaa !9
  %1946 = add i64 %1945, 3
  %1947 = load i64, ptr %30, align 8, !tbaa !9
  %1948 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1944, i64 noundef %1946, i64 noundef %1947, ptr noundef %1948)
  br label %1949

1949:                                             ; preds = %1935, %1929
  br label %2040

1950:                                             ; preds = %1911
  %1951 = load ptr, ptr %35, align 8, !tbaa !5
  %1952 = getelementptr inbounds i8, ptr %1951, i64 0
  %1953 = load i8, ptr %1952, align 1, !tbaa !16
  %1954 = zext i8 %1953 to i32
  %1955 = icmp eq i32 %1954, 46
  br i1 %1955, label %1956, label %1990

1956:                                             ; preds = %1950
  %1957 = load i64, ptr %32, align 8, !tbaa !9
  %1958 = load i32, ptr %34, align 4, !tbaa !11
  %1959 = icmp ne i32 %1958, 0
  %1960 = zext i1 %1959 to i64
  %1961 = select i1 %1959, i32 115, i32 96
  %1962 = sext i32 %1961 to i64
  %1963 = load i64, ptr %31, align 8, !tbaa !9
  %1964 = mul i64 %1962, %1963
  %1965 = add i64 %1957, %1964
  %1966 = load i64, ptr %30, align 8, !tbaa !9
  %1967 = add i64 %1966, 2
  %1968 = load i64, ptr %30, align 8, !tbaa !9
  %1969 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1965, i64 noundef %1967, i64 noundef %1968, ptr noundef %1969)
  %1970 = load ptr, ptr %35, align 8, !tbaa !5
  %1971 = getelementptr inbounds i8, ptr %1970, i64 1
  %1972 = load i8, ptr %1971, align 1, !tbaa !16
  %1973 = zext i8 %1972 to i32
  %1974 = icmp eq i32 %1973, 32
  br i1 %1974, label %1975, label %1989

1975:                                             ; preds = %1956
  %1976 = load i64, ptr %32, align 8, !tbaa !9
  %1977 = load i32, ptr %34, align 4, !tbaa !11
  %1978 = icmp ne i32 %1977, 0
  %1979 = zext i1 %1978 to i64
  %1980 = select i1 %1978, i32 117, i32 91
  %1981 = sext i32 %1980 to i64
  %1982 = load i64, ptr %31, align 8, !tbaa !9
  %1983 = mul i64 %1981, %1982
  %1984 = add i64 %1976, %1983
  %1985 = load i64, ptr %30, align 8, !tbaa !9
  %1986 = add i64 %1985, 3
  %1987 = load i64, ptr %30, align 8, !tbaa !9
  %1988 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %1984, i64 noundef %1986, i64 noundef %1987, ptr noundef %1988)
  br label %1989

1989:                                             ; preds = %1975, %1956
  br label %2039

1990:                                             ; preds = %1950
  %1991 = load ptr, ptr %35, align 8, !tbaa !5
  %1992 = getelementptr inbounds i8, ptr %1991, i64 0
  %1993 = load i8, ptr %1992, align 1, !tbaa !16
  %1994 = zext i8 %1993 to i32
  %1995 = icmp eq i32 %1994, 61
  br i1 %1995, label %1996, label %2038

1996:                                             ; preds = %1990
  %1997 = load ptr, ptr %35, align 8, !tbaa !5
  %1998 = getelementptr inbounds i8, ptr %1997, i64 1
  %1999 = load i8, ptr %1998, align 1, !tbaa !16
  %2000 = zext i8 %1999 to i32
  %2001 = icmp eq i32 %2000, 34
  br i1 %2001, label %2002, label %2016

2002:                                             ; preds = %1996
  %2003 = load i64, ptr %32, align 8, !tbaa !9
  %2004 = load i32, ptr %34, align 4, !tbaa !11
  %2005 = icmp ne i32 %2004, 0
  %2006 = zext i1 %2005 to i64
  %2007 = select i1 %2005, i32 110, i32 118
  %2008 = sext i32 %2007 to i64
  %2009 = load i64, ptr %31, align 8, !tbaa !9
  %2010 = mul i64 %2008, %2009
  %2011 = add i64 %2003, %2010
  %2012 = load i64, ptr %30, align 8, !tbaa !9
  %2013 = add i64 %2012, 3
  %2014 = load i64, ptr %30, align 8, !tbaa !9
  %2015 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %2011, i64 noundef %2013, i64 noundef %2014, ptr noundef %2015)
  br label %2037

2016:                                             ; preds = %1996
  %2017 = load ptr, ptr %35, align 8, !tbaa !5
  %2018 = getelementptr inbounds i8, ptr %2017, i64 1
  %2019 = load i8, ptr %2018, align 1, !tbaa !16
  %2020 = zext i8 %2019 to i32
  %2021 = icmp eq i32 %2020, 39
  br i1 %2021, label %2022, label %2036

2022:                                             ; preds = %2016
  %2023 = load i64, ptr %32, align 8, !tbaa !9
  %2024 = load i32, ptr %34, align 4, !tbaa !11
  %2025 = icmp ne i32 %2024, 0
  %2026 = zext i1 %2025 to i64
  %2027 = select i1 %2025, i32 119, i32 120
  %2028 = sext i32 %2027 to i64
  %2029 = load i64, ptr %31, align 8, !tbaa !9
  %2030 = mul i64 %2028, %2029
  %2031 = add i64 %2023, %2030
  %2032 = load i64, ptr %30, align 8, !tbaa !9
  %2033 = add i64 %2032, 3
  %2034 = load i64, ptr %30, align 8, !tbaa !9
  %2035 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %2031, i64 noundef %2033, i64 noundef %2034, ptr noundef %2035)
  br label %2036

2036:                                             ; preds = %2022, %2016
  br label %2037

2037:                                             ; preds = %2036, %2002
  br label %2038

2038:                                             ; preds = %2037, %1990
  br label %2039

2039:                                             ; preds = %2038, %1989
  br label %2040

2040:                                             ; preds = %2039, %1949
  br label %2041

2041:                                             ; preds = %2040, %1897
  store i32 0, ptr %23, align 4
  br label %2042

2042:                                             ; preds = %2041, %1886, %1867
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  %2043 = load i32, ptr %23, align 4
  switch i32 %2043, label %2047 [
    i32 0, label %2044
  ]

2044:                                             ; preds = %2042
  br label %2045

2045:                                             ; preds = %2044, %1847
  br label %2046

2046:                                             ; preds = %2045, %1846
  store i32 0, ptr %23, align 4
  br label %2047

2047:                                             ; preds = %2046, %2042, %1844
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  %2048 = load i32, ptr %23, align 4
  switch i32 %2048, label %2448 [
    i32 0, label %2049
    i32 7, label %1625
  ]

2049:                                             ; preds = %2047
  br label %1625, !llvm.loop !24

2050:                                             ; preds = %1625
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  br label %2051

2051:                                             ; preds = %2050, %1598, %1589
  %2052 = load i64, ptr %9, align 8, !tbaa !9
  %2053 = icmp uge i64 %2052, 6
  br i1 %2053, label %2054, label %2210

2054:                                             ; preds = %2051
  %2055 = load ptr, ptr %7, align 8, !tbaa !5
  %2056 = getelementptr inbounds i8, ptr %2055, i64 1
  %2057 = load i8, ptr %2056, align 1, !tbaa !16
  %2058 = zext i8 %2057 to i32
  %2059 = icmp eq i32 %2058, 32
  br i1 %2059, label %2060, label %2078

2060:                                             ; preds = %2054
  %2061 = load ptr, ptr %7, align 8, !tbaa !5
  %2062 = getelementptr inbounds i8, ptr %2061, i64 0
  %2063 = load i8, ptr %2062, align 1, !tbaa !16
  %2064 = zext i8 %2063 to i32
  %2065 = icmp eq i32 %2064, 101
  br i1 %2065, label %2090, label %2066

2066:                                             ; preds = %2060
  %2067 = load ptr, ptr %7, align 8, !tbaa !5
  %2068 = getelementptr inbounds i8, ptr %2067, i64 0
  %2069 = load i8, ptr %2068, align 1, !tbaa !16
  %2070 = zext i8 %2069 to i32
  %2071 = icmp eq i32 %2070, 115
  br i1 %2071, label %2090, label %2072

2072:                                             ; preds = %2066
  %2073 = load ptr, ptr %7, align 8, !tbaa !5
  %2074 = getelementptr inbounds i8, ptr %2073, i64 0
  %2075 = load i8, ptr %2074, align 1, !tbaa !16
  %2076 = zext i8 %2075 to i32
  %2077 = icmp eq i32 %2076, 44
  br i1 %2077, label %2090, label %2078

2078:                                             ; preds = %2072, %2054
  %2079 = load ptr, ptr %7, align 8, !tbaa !5
  %2080 = getelementptr inbounds i8, ptr %2079, i64 0
  %2081 = load i8, ptr %2080, align 1, !tbaa !16
  %2082 = zext i8 %2081 to i32
  %2083 = icmp eq i32 %2082, 194
  br i1 %2083, label %2084, label %2209

2084:                                             ; preds = %2078
  %2085 = load ptr, ptr %7, align 8, !tbaa !5
  %2086 = getelementptr inbounds i8, ptr %2085, i64 1
  %2087 = load i8, ptr %2086, align 1, !tbaa !16
  %2088 = zext i8 %2087 to i32
  %2089 = icmp eq i32 %2088, 160
  br i1 %2089, label %2090, label %2209

2090:                                             ; preds = %2084, %2072, %2066, %2060
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  %2091 = load ptr, ptr %7, align 8, !tbaa !5
  %2092 = getelementptr inbounds i8, ptr %2091, i64 2
  %2093 = call i32 @Hash(ptr noundef %2092)
  %2094 = zext i32 %2093 to i64
  %2095 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %2094
  %2096 = load i16, ptr %2095, align 2, !tbaa !13
  %2097 = zext i16 %2096 to i64
  store i64 %2097, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  %2098 = load i64, ptr %36, align 8, !tbaa !9
  %2099 = icmp ne i64 %2098, 0
  %2100 = xor i1 %2099, true
  %2101 = zext i1 %2100 to i32
  store i32 %2101, ptr %37, align 4, !tbaa !11
  br label %2102

2102:                                             ; preds = %2207, %2090
  %2103 = load i32, ptr %37, align 4, !tbaa !11
  %2104 = icmp ne i32 %2103, 0
  %2105 = xor i1 %2104, true
  br i1 %2105, label %2106, label %2208

2106:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  %2107 = load i64, ptr %36, align 8, !tbaa !9
  %2108 = add i64 %2107, 1
  store i64 %2108, ptr %36, align 8, !tbaa !9
  %2109 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %2107
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %38, ptr align 4 %2109, i64 4, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  %2110 = getelementptr inbounds %struct.DictWord, ptr %38, i32 0, i32 0
  %2111 = load i8, ptr %2110, align 2, !tbaa !17
  %2112 = zext i8 %2111 to i32
  %2113 = and i32 %2112, 31
  %2114 = sext i32 %2113 to i64
  store i64 %2114, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  %2115 = load ptr, ptr %6, align 8, !tbaa !5
  %2116 = getelementptr inbounds %struct.BrotliDictionary, ptr %2115, i32 0, i32 0
  %2117 = load i64, ptr %39, align 8, !tbaa !9
  %2118 = getelementptr inbounds [32 x i8], ptr %2116, i64 0, i64 %2117
  %2119 = load i8, ptr %2118, align 1, !tbaa !16
  %2120 = zext i8 %2119 to i32
  %2121 = zext i32 %2120 to i64
  %2122 = shl i64 1, %2121
  store i64 %2122, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #4
  %2123 = getelementptr inbounds %struct.DictWord, ptr %38, i32 0, i32 2
  %2124 = load i16, ptr %2123, align 2, !tbaa !19
  %2125 = zext i16 %2124 to i64
  store i64 %2125, ptr %41, align 8, !tbaa !9
  %2126 = getelementptr inbounds %struct.DictWord, ptr %38, i32 0, i32 0
  %2127 = load i8, ptr %2126, align 2, !tbaa !17
  %2128 = zext i8 %2127 to i32
  %2129 = and i32 %2128, 128
  %2130 = icmp ne i32 %2129, 0
  %2131 = xor i1 %2130, true
  %2132 = xor i1 %2131, true
  %2133 = zext i1 %2132 to i32
  store i32 %2133, ptr %37, align 4, !tbaa !11
  %2134 = load i64, ptr %39, align 8, !tbaa !9
  %2135 = trunc i64 %2134 to i8
  %2136 = getelementptr inbounds %struct.DictWord, ptr %38, i32 0, i32 0
  store i8 %2135, ptr %2136, align 2, !tbaa !17
  %2137 = getelementptr inbounds %struct.DictWord, ptr %38, i32 0, i32 1
  %2138 = load i8, ptr %2137, align 1, !tbaa !20
  %2139 = zext i8 %2138 to i32
  %2140 = icmp eq i32 %2139, 0
  br i1 %2140, label %2141, label %2207

2141:                                             ; preds = %2106
  %2142 = load ptr, ptr %6, align 8, !tbaa !5
  %2143 = load ptr, ptr %7, align 8, !tbaa !5
  %2144 = getelementptr inbounds i8, ptr %2143, i64 2
  %2145 = load i64, ptr %9, align 8, !tbaa !9
  %2146 = sub i64 %2145, 2
  %2147 = load i32, ptr %38, align 2
  %2148 = call i32 @IsMatch(ptr noundef %2142, i32 %2147, ptr noundef %2144, i64 noundef %2146)
  %2149 = icmp ne i32 %2148, 0
  br i1 %2149, label %2150, label %2207

2150:                                             ; preds = %2141
  %2151 = load ptr, ptr %7, align 8, !tbaa !5
  %2152 = getelementptr inbounds i8, ptr %2151, i64 0
  %2153 = load i8, ptr %2152, align 1, !tbaa !16
  %2154 = zext i8 %2153 to i32
  %2155 = icmp eq i32 %2154, 194
  br i1 %2155, label %2156, label %2165

2156:                                             ; preds = %2150
  %2157 = load i64, ptr %41, align 8, !tbaa !9
  %2158 = load i64, ptr %40, align 8, !tbaa !9
  %2159 = mul i64 102, %2158
  %2160 = add i64 %2157, %2159
  %2161 = load i64, ptr %39, align 8, !tbaa !9
  %2162 = add i64 %2161, 2
  %2163 = load i64, ptr %39, align 8, !tbaa !9
  %2164 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %2160, i64 noundef %2162, i64 noundef %2163, ptr noundef %2164)
  store i32 1, ptr %11, align 4, !tbaa !11
  br label %2206

2165:                                             ; preds = %2150
  %2166 = load i64, ptr %39, align 8, !tbaa !9
  %2167 = add i64 %2166, 2
  %2168 = load i64, ptr %9, align 8, !tbaa !9
  %2169 = icmp ult i64 %2167, %2168
  br i1 %2169, label %2170, label %2205

2170:                                             ; preds = %2165
  %2171 = load ptr, ptr %7, align 8, !tbaa !5
  %2172 = load i64, ptr %39, align 8, !tbaa !9
  %2173 = add i64 %2172, 2
  %2174 = getelementptr inbounds i8, ptr %2171, i64 %2173
  %2175 = load i8, ptr %2174, align 1, !tbaa !16
  %2176 = zext i8 %2175 to i32
  %2177 = icmp eq i32 %2176, 32
  br i1 %2177, label %2178, label %2205

2178:                                             ; preds = %2170
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #4
  %2179 = load ptr, ptr %7, align 8, !tbaa !5
  %2180 = getelementptr inbounds i8, ptr %2179, i64 0
  %2181 = load i8, ptr %2180, align 1, !tbaa !16
  %2182 = zext i8 %2181 to i32
  %2183 = icmp eq i32 %2182, 101
  br i1 %2183, label %2184, label %2185

2184:                                             ; preds = %2178
  br label %2193

2185:                                             ; preds = %2178
  %2186 = load ptr, ptr %7, align 8, !tbaa !5
  %2187 = getelementptr inbounds i8, ptr %2186, i64 0
  %2188 = load i8, ptr %2187, align 1, !tbaa !16
  %2189 = zext i8 %2188 to i32
  %2190 = icmp eq i32 %2189, 115
  %2191 = zext i1 %2190 to i64
  %2192 = select i1 %2190, i32 7, i32 13
  br label %2193

2193:                                             ; preds = %2185, %2184
  %2194 = phi i32 [ 18, %2184 ], [ %2192, %2185 ]
  %2195 = sext i32 %2194 to i64
  store i64 %2195, ptr %42, align 8, !tbaa !9
  %2196 = load i64, ptr %41, align 8, !tbaa !9
  %2197 = load i64, ptr %42, align 8, !tbaa !9
  %2198 = load i64, ptr %40, align 8, !tbaa !9
  %2199 = mul i64 %2197, %2198
  %2200 = add i64 %2196, %2199
  %2201 = load i64, ptr %39, align 8, !tbaa !9
  %2202 = add i64 %2201, 3
  %2203 = load i64, ptr %39, align 8, !tbaa !9
  %2204 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %2200, i64 noundef %2202, i64 noundef %2203, ptr noundef %2204)
  store i32 1, ptr %11, align 4, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  br label %2205

2205:                                             ; preds = %2193, %2170, %2165
  br label %2206

2206:                                             ; preds = %2205, %2156
  br label %2207

2207:                                             ; preds = %2206, %2141, %2106
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  br label %2102, !llvm.loop !25

2208:                                             ; preds = %2102
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  br label %2209

2209:                                             ; preds = %2208, %2084, %2078
  br label %2210

2210:                                             ; preds = %2209, %2051
  %2211 = load i64, ptr %9, align 8, !tbaa !9
  %2212 = icmp uge i64 %2211, 9
  br i1 %2212, label %2213, label %2446

2213:                                             ; preds = %2210
  %2214 = load ptr, ptr %7, align 8, !tbaa !5
  %2215 = getelementptr inbounds i8, ptr %2214, i64 0
  %2216 = load i8, ptr %2215, align 1, !tbaa !16
  %2217 = zext i8 %2216 to i32
  %2218 = icmp eq i32 %2217, 32
  br i1 %2218, label %2219, label %2243

2219:                                             ; preds = %2213
  %2220 = load ptr, ptr %7, align 8, !tbaa !5
  %2221 = getelementptr inbounds i8, ptr %2220, i64 1
  %2222 = load i8, ptr %2221, align 1, !tbaa !16
  %2223 = zext i8 %2222 to i32
  %2224 = icmp eq i32 %2223, 116
  br i1 %2224, label %2225, label %2243

2225:                                             ; preds = %2219
  %2226 = load ptr, ptr %7, align 8, !tbaa !5
  %2227 = getelementptr inbounds i8, ptr %2226, i64 2
  %2228 = load i8, ptr %2227, align 1, !tbaa !16
  %2229 = zext i8 %2228 to i32
  %2230 = icmp eq i32 %2229, 104
  br i1 %2230, label %2231, label %2243

2231:                                             ; preds = %2225
  %2232 = load ptr, ptr %7, align 8, !tbaa !5
  %2233 = getelementptr inbounds i8, ptr %2232, i64 3
  %2234 = load i8, ptr %2233, align 1, !tbaa !16
  %2235 = zext i8 %2234 to i32
  %2236 = icmp eq i32 %2235, 101
  br i1 %2236, label %2237, label %2243

2237:                                             ; preds = %2231
  %2238 = load ptr, ptr %7, align 8, !tbaa !5
  %2239 = getelementptr inbounds i8, ptr %2238, i64 4
  %2240 = load i8, ptr %2239, align 1, !tbaa !16
  %2241 = zext i8 %2240 to i32
  %2242 = icmp eq i32 %2241, 32
  br i1 %2242, label %2273, label %2243

2243:                                             ; preds = %2237, %2231, %2225, %2219, %2213
  %2244 = load ptr, ptr %7, align 8, !tbaa !5
  %2245 = getelementptr inbounds i8, ptr %2244, i64 0
  %2246 = load i8, ptr %2245, align 1, !tbaa !16
  %2247 = zext i8 %2246 to i32
  %2248 = icmp eq i32 %2247, 46
  br i1 %2248, label %2249, label %2445

2249:                                             ; preds = %2243
  %2250 = load ptr, ptr %7, align 8, !tbaa !5
  %2251 = getelementptr inbounds i8, ptr %2250, i64 1
  %2252 = load i8, ptr %2251, align 1, !tbaa !16
  %2253 = zext i8 %2252 to i32
  %2254 = icmp eq i32 %2253, 99
  br i1 %2254, label %2255, label %2445

2255:                                             ; preds = %2249
  %2256 = load ptr, ptr %7, align 8, !tbaa !5
  %2257 = getelementptr inbounds i8, ptr %2256, i64 2
  %2258 = load i8, ptr %2257, align 1, !tbaa !16
  %2259 = zext i8 %2258 to i32
  %2260 = icmp eq i32 %2259, 111
  br i1 %2260, label %2261, label %2445

2261:                                             ; preds = %2255
  %2262 = load ptr, ptr %7, align 8, !tbaa !5
  %2263 = getelementptr inbounds i8, ptr %2262, i64 3
  %2264 = load i8, ptr %2263, align 1, !tbaa !16
  %2265 = zext i8 %2264 to i32
  %2266 = icmp eq i32 %2265, 109
  br i1 %2266, label %2267, label %2445

2267:                                             ; preds = %2261
  %2268 = load ptr, ptr %7, align 8, !tbaa !5
  %2269 = getelementptr inbounds i8, ptr %2268, i64 4
  %2270 = load i8, ptr %2269, align 1, !tbaa !16
  %2271 = zext i8 %2270 to i32
  %2272 = icmp eq i32 %2271, 47
  br i1 %2272, label %2273, label %2445

2273:                                             ; preds = %2267, %2237
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #4
  %2274 = load ptr, ptr %7, align 8, !tbaa !5
  %2275 = getelementptr inbounds i8, ptr %2274, i64 5
  %2276 = call i32 @Hash(ptr noundef %2275)
  %2277 = zext i32 %2276 to i64
  %2278 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %2277
  %2279 = load i16, ptr %2278, align 2, !tbaa !13
  %2280 = zext i16 %2279 to i64
  store i64 %2280, ptr %43, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  %2281 = load i64, ptr %43, align 8, !tbaa !9
  %2282 = icmp ne i64 %2281, 0
  %2283 = xor i1 %2282, true
  %2284 = zext i1 %2283 to i32
  store i32 %2284, ptr %44, align 4, !tbaa !11
  br label %2285

2285:                                             ; preds = %2443, %2273
  %2286 = load i32, ptr %44, align 4, !tbaa !11
  %2287 = icmp ne i32 %2286, 0
  %2288 = xor i1 %2287, true
  br i1 %2288, label %2289, label %2444

2289:                                             ; preds = %2285
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  %2290 = load i64, ptr %43, align 8, !tbaa !9
  %2291 = add i64 %2290, 1
  store i64 %2291, ptr %43, align 8, !tbaa !9
  %2292 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %2290
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %45, ptr align 4 %2292, i64 4, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #4
  %2293 = getelementptr inbounds %struct.DictWord, ptr %45, i32 0, i32 0
  %2294 = load i8, ptr %2293, align 2, !tbaa !17
  %2295 = zext i8 %2294 to i32
  %2296 = and i32 %2295, 31
  %2297 = sext i32 %2296 to i64
  store i64 %2297, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #4
  %2298 = load ptr, ptr %6, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.BrotliDictionary, ptr %2298, i32 0, i32 0
  %2300 = load i64, ptr %46, align 8, !tbaa !9
  %2301 = getelementptr inbounds [32 x i8], ptr %2299, i64 0, i64 %2300
  %2302 = load i8, ptr %2301, align 1, !tbaa !16
  %2303 = zext i8 %2302 to i32
  %2304 = zext i32 %2303 to i64
  %2305 = shl i64 1, %2304
  store i64 %2305, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #4
  %2306 = getelementptr inbounds %struct.DictWord, ptr %45, i32 0, i32 2
  %2307 = load i16, ptr %2306, align 2, !tbaa !19
  %2308 = zext i16 %2307 to i64
  store i64 %2308, ptr %48, align 8, !tbaa !9
  %2309 = getelementptr inbounds %struct.DictWord, ptr %45, i32 0, i32 0
  %2310 = load i8, ptr %2309, align 2, !tbaa !17
  %2311 = zext i8 %2310 to i32
  %2312 = and i32 %2311, 128
  %2313 = icmp ne i32 %2312, 0
  %2314 = xor i1 %2313, true
  %2315 = xor i1 %2314, true
  %2316 = zext i1 %2315 to i32
  store i32 %2316, ptr %44, align 4, !tbaa !11
  %2317 = load i64, ptr %46, align 8, !tbaa !9
  %2318 = trunc i64 %2317 to i8
  %2319 = getelementptr inbounds %struct.DictWord, ptr %45, i32 0, i32 0
  store i8 %2318, ptr %2319, align 2, !tbaa !17
  %2320 = getelementptr inbounds %struct.DictWord, ptr %45, i32 0, i32 1
  %2321 = load i8, ptr %2320, align 1, !tbaa !20
  %2322 = zext i8 %2321 to i32
  %2323 = icmp eq i32 %2322, 0
  br i1 %2323, label %2324, label %2443

2324:                                             ; preds = %2289
  %2325 = load ptr, ptr %6, align 8, !tbaa !5
  %2326 = load ptr, ptr %7, align 8, !tbaa !5
  %2327 = getelementptr inbounds i8, ptr %2326, i64 5
  %2328 = load i64, ptr %9, align 8, !tbaa !9
  %2329 = sub i64 %2328, 5
  %2330 = load i32, ptr %45, align 2
  %2331 = call i32 @IsMatch(ptr noundef %2325, i32 %2330, ptr noundef %2327, i64 noundef %2329)
  %2332 = icmp ne i32 %2331, 0
  br i1 %2332, label %2333, label %2443

2333:                                             ; preds = %2324
  %2334 = load i64, ptr %48, align 8, !tbaa !9
  %2335 = load ptr, ptr %7, align 8, !tbaa !5
  %2336 = getelementptr inbounds i8, ptr %2335, i64 0
  %2337 = load i8, ptr %2336, align 1, !tbaa !16
  %2338 = zext i8 %2337 to i32
  %2339 = icmp eq i32 %2338, 32
  %2340 = zext i1 %2339 to i64
  %2341 = select i1 %2339, i32 41, i32 72
  %2342 = sext i32 %2341 to i64
  %2343 = load i64, ptr %47, align 8, !tbaa !9
  %2344 = mul i64 %2342, %2343
  %2345 = add i64 %2334, %2344
  %2346 = load i64, ptr %46, align 8, !tbaa !9
  %2347 = add i64 %2346, 5
  %2348 = load i64, ptr %46, align 8, !tbaa !9
  %2349 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %2345, i64 noundef %2347, i64 noundef %2348, ptr noundef %2349)
  store i32 1, ptr %11, align 4, !tbaa !11
  %2350 = load i64, ptr %46, align 8, !tbaa !9
  %2351 = add i64 %2350, 5
  %2352 = load i64, ptr %9, align 8, !tbaa !9
  %2353 = icmp ult i64 %2351, %2352
  br i1 %2353, label %2354, label %2442

2354:                                             ; preds = %2333
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #4
  %2355 = load ptr, ptr %7, align 8, !tbaa !5
  %2356 = load i64, ptr %46, align 8, !tbaa !9
  %2357 = add i64 %2356, 5
  %2358 = getelementptr inbounds i8, ptr %2355, i64 %2357
  store ptr %2358, ptr %49, align 8, !tbaa !5
  %2359 = load ptr, ptr %7, align 8, !tbaa !5
  %2360 = getelementptr inbounds i8, ptr %2359, i64 0
  %2361 = load i8, ptr %2360, align 1, !tbaa !16
  %2362 = zext i8 %2361 to i32
  %2363 = icmp eq i32 %2362, 32
  br i1 %2363, label %2364, label %2441

2364:                                             ; preds = %2354
  %2365 = load i64, ptr %46, align 8, !tbaa !9
  %2366 = add i64 %2365, 8
  %2367 = load i64, ptr %9, align 8, !tbaa !9
  %2368 = icmp ult i64 %2366, %2367
  br i1 %2368, label %2369, label %2440

2369:                                             ; preds = %2364
  %2370 = load ptr, ptr %49, align 8, !tbaa !5
  %2371 = getelementptr inbounds i8, ptr %2370, i64 0
  %2372 = load i8, ptr %2371, align 1, !tbaa !16
  %2373 = zext i8 %2372 to i32
  %2374 = icmp eq i32 %2373, 32
  br i1 %2374, label %2375, label %2440

2375:                                             ; preds = %2369
  %2376 = load ptr, ptr %49, align 8, !tbaa !5
  %2377 = getelementptr inbounds i8, ptr %2376, i64 1
  %2378 = load i8, ptr %2377, align 1, !tbaa !16
  %2379 = zext i8 %2378 to i32
  %2380 = icmp eq i32 %2379, 111
  br i1 %2380, label %2381, label %2440

2381:                                             ; preds = %2375
  %2382 = load ptr, ptr %49, align 8, !tbaa !5
  %2383 = getelementptr inbounds i8, ptr %2382, i64 2
  %2384 = load i8, ptr %2383, align 1, !tbaa !16
  %2385 = zext i8 %2384 to i32
  %2386 = icmp eq i32 %2385, 102
  br i1 %2386, label %2387, label %2440

2387:                                             ; preds = %2381
  %2388 = load ptr, ptr %49, align 8, !tbaa !5
  %2389 = getelementptr inbounds i8, ptr %2388, i64 3
  %2390 = load i8, ptr %2389, align 1, !tbaa !16
  %2391 = zext i8 %2390 to i32
  %2392 = icmp eq i32 %2391, 32
  br i1 %2392, label %2393, label %2440

2393:                                             ; preds = %2387
  %2394 = load i64, ptr %48, align 8, !tbaa !9
  %2395 = load i64, ptr %47, align 8, !tbaa !9
  %2396 = mul i64 62, %2395
  %2397 = add i64 %2394, %2396
  %2398 = load i64, ptr %46, align 8, !tbaa !9
  %2399 = add i64 %2398, 9
  %2400 = load i64, ptr %46, align 8, !tbaa !9
  %2401 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %2397, i64 noundef %2399, i64 noundef %2400, ptr noundef %2401)
  %2402 = load i64, ptr %46, align 8, !tbaa !9
  %2403 = add i64 %2402, 12
  %2404 = load i64, ptr %9, align 8, !tbaa !9
  %2405 = icmp ult i64 %2403, %2404
  br i1 %2405, label %2406, label %2439

2406:                                             ; preds = %2393
  %2407 = load ptr, ptr %49, align 8, !tbaa !5
  %2408 = getelementptr inbounds i8, ptr %2407, i64 4
  %2409 = load i8, ptr %2408, align 1, !tbaa !16
  %2410 = zext i8 %2409 to i32
  %2411 = icmp eq i32 %2410, 116
  br i1 %2411, label %2412, label %2439

2412:                                             ; preds = %2406
  %2413 = load ptr, ptr %49, align 8, !tbaa !5
  %2414 = getelementptr inbounds i8, ptr %2413, i64 5
  %2415 = load i8, ptr %2414, align 1, !tbaa !16
  %2416 = zext i8 %2415 to i32
  %2417 = icmp eq i32 %2416, 104
  br i1 %2417, label %2418, label %2439

2418:                                             ; preds = %2412
  %2419 = load ptr, ptr %49, align 8, !tbaa !5
  %2420 = getelementptr inbounds i8, ptr %2419, i64 6
  %2421 = load i8, ptr %2420, align 1, !tbaa !16
  %2422 = zext i8 %2421 to i32
  %2423 = icmp eq i32 %2422, 101
  br i1 %2423, label %2424, label %2439

2424:                                             ; preds = %2418
  %2425 = load ptr, ptr %49, align 8, !tbaa !5
  %2426 = getelementptr inbounds i8, ptr %2425, i64 7
  %2427 = load i8, ptr %2426, align 1, !tbaa !16
  %2428 = zext i8 %2427 to i32
  %2429 = icmp eq i32 %2428, 32
  br i1 %2429, label %2430, label %2439

2430:                                             ; preds = %2424
  %2431 = load i64, ptr %48, align 8, !tbaa !9
  %2432 = load i64, ptr %47, align 8, !tbaa !9
  %2433 = mul i64 73, %2432
  %2434 = add i64 %2431, %2433
  %2435 = load i64, ptr %46, align 8, !tbaa !9
  %2436 = add i64 %2435, 13
  %2437 = load i64, ptr %46, align 8, !tbaa !9
  %2438 = load ptr, ptr %10, align 8, !tbaa !5
  call void @AddMatch(i64 noundef %2434, i64 noundef %2436, i64 noundef %2437, ptr noundef %2438)
  br label %2439

2439:                                             ; preds = %2430, %2424, %2418, %2412, %2406, %2393
  br label %2440

2440:                                             ; preds = %2439, %2387, %2381, %2375, %2369, %2364
  br label %2441

2441:                                             ; preds = %2440, %2354
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  br label %2442

2442:                                             ; preds = %2441, %2333
  br label %2443

2443:                                             ; preds = %2442, %2324, %2289
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  br label %2285, !llvm.loop !26

2444:                                             ; preds = %2285
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  br label %2445

2445:                                             ; preds = %2444, %2267, %2261, %2255, %2249, %2243
  br label %2446

2446:                                             ; preds = %2445, %2210
  %2447 = load i32, ptr %11, align 4, !tbaa !11
  store i32 1, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  ret i32 %2447

2448:                                             ; preds = %2047, %1586
  unreachable
}

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

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i32 @Hash(ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

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

; Function Attrs: alwaysinline nounwind uwtable
declare hidden void @AddMatch(i64 noundef, i64 noundef, i64 noundef, ptr noundef) #2

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i64 @brotli_max_size_t(i64 noundef, i64 noundef) #2

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i64 @brotli_min_size_t(i64 noundef, i64 noundef) #2

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { alwaysinline 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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"short", !7, i64 0}
!15 = !{i64 0, i64 1, !16, i64 1, i64 1, !16, i64 2, i64 2, !13}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !7, i64 0}
!18 = !{!"DictWord", !7, i64 0, !7, i64 1, !14, i64 2}
!19 = !{!18, !14, i64 2}
!20 = !{!18, !7, i64 1}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = distinct !{!24, !22}
!25 = distinct !{!25, !22}
!26 = distinct !{!26, !22}


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

%struct.DictWord = type { i8, i8, i16 }

@kStaticDictionaryBuckets = external hidden local_unnamed_addr constant [32768 x i16], align 16
@kStaticDictionaryWords = external hidden local_unnamed_addr constant [31705 x %struct.DictWord], align 16
@kOmitLastNTransforms = external hidden local_unnamed_addr constant [10 x i8], align 1

; Function Attrs: nounwind uwtable
define hidden i32 @BrotliFindAllStaticDictionaryMatches(ptr noundef %0, ptr noundef %1, i64 noundef %2, i64 noundef %3, ptr noundef %4) local_unnamed_addr #0 {
  %6 = tail call i32 @Hash(ptr noundef %1)
  %7 = zext i32 %6 to i64
  %8 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %7
  %9 = load i16, ptr %8, align 2, !tbaa !5
  %.not = icmp eq i16 %9, 0
  br i1 %.not, label %._crit_edge827, label %.lr.ph826.preheader

.lr.ph826.preheader:                              ; preds = %5
  %10 = zext i16 %9 to i64
  br label %.lr.ph826

.lr.ph826:                                        ; preds = %.lr.ph826.preheader, %.critedge
  %.0824 = phi i32 [ %.6, %.critedge ], [ 0, %.lr.ph826.preheader ]
  %.0740823 = phi i64 [ %11, %.critedge ], [ %10, %.lr.ph826.preheader ]
  %11 = add i64 %.0740823, 1
  %12 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %.0740823
  %.sroa.0577.0.copyload = load i8, ptr %12, align 4, !tbaa !9
  %.sroa.7580.0..sroa_idx = getelementptr inbounds i8, ptr %12, i64 1
  %.sroa.7580.0.copyload = load i8, ptr %.sroa.7580.0..sroa_idx, align 1, !tbaa !9
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %12, i64 2
  %.sroa.9.0.copyload = load i16, ptr %.sroa.9.0..sroa_idx, align 2, !tbaa !5
  %13 = and i8 %.sroa.0577.0.copyload, 31
  %14 = zext nneg i8 %13 to i64
  %15 = getelementptr inbounds [32 x i8], ptr %0, i64 0, i64 %14
  %16 = load i8, ptr %15, align 1, !tbaa !9
  %17 = zext nneg i8 %16 to i64
  %18 = shl nuw i64 1, %17
  %19 = zext i16 %.sroa.9.0.copyload to i64
  %20 = icmp slt i8 %.sroa.0577.0.copyload, 0
  %21 = icmp eq i8 %.sroa.7580.0.copyload, 0
  br i1 %21, label %22, label %491

22:                                               ; preds = %.lr.ph826
  %23 = tail call i64 @DictMatchLength(ptr noundef nonnull %0, ptr noundef %1, i64 noundef %19, i64 noundef %14, i64 noundef %3)
  %24 = icmp eq i64 %23, %14
  br i1 %24, label %25, label %26

25:                                               ; preds = %22
  tail call void @AddMatch(i64 noundef %19, i64 noundef %14, i64 noundef %14, ptr noundef %4)
  br label %26

26:                                               ; preds = %25, %22
  %.1 = phi i32 [ 1, %25 ], [ %.0824, %22 ]
  %27 = add nsw i64 %14, -1
  %.not808 = icmp ult i64 %23, %27
  br i1 %.not808, label %53, label %28

28:                                               ; preds = %26
  %29 = shl i64 12, %17
  %30 = add nuw i64 %29, %19
  tail call void @AddMatch(i64 noundef %30, i64 noundef %27, i64 noundef %14, ptr noundef %4)
  %31 = add nuw nsw i64 %14, 2
  %32 = icmp ult i64 %31, %3
  br i1 %32, label %33, label %53

33:                                               ; preds = %28
  %34 = getelementptr inbounds i8, ptr %1, i64 %27
  %35 = load i8, ptr %34, align 1, !tbaa !9
  %36 = icmp eq i8 %35, 105
  br i1 %36, label %37, label %53

37:                                               ; preds = %33
  %38 = getelementptr inbounds i8, ptr %1, i64 %14
  %39 = load i8, ptr %38, align 1, !tbaa !9
  %40 = icmp eq i8 %39, 110
  br i1 %40, label %41, label %53

41:                                               ; preds = %37
  %42 = getelementptr inbounds i8, ptr %38, i64 1
  %43 = load i8, ptr %42, align 1, !tbaa !9
  %44 = icmp eq i8 %43, 103
  br i1 %44, label %45, label %53

45:                                               ; preds = %41
  %46 = getelementptr inbounds i8, ptr %1, i64 %31
  %47 = load i8, ptr %46, align 1, !tbaa !9
  %48 = icmp eq i8 %47, 32
  br i1 %48, label %49, label %53

49:                                               ; preds = %45
  %50 = shl i64 49, %17
  %51 = add nuw i64 %50, %19
  %52 = add nuw nsw i64 %14, 3
  tail call void @AddMatch(i64 noundef %51, i64 noundef %52, i64 noundef %14, ptr noundef %4)
  br label %53

53:                                               ; preds = %28, %33, %37, %41, %45, %49, %26
  %.2 = phi i32 [ %.1, %26 ], [ 1, %49 ], [ 1, %45 ], [ 1, %41 ], [ 1, %37 ], [ 1, %33 ], [ 1, %28 ]
  %54 = icmp ugt i8 %13, 9
  br i1 %54, label %55, label %58

55:                                               ; preds = %53
  %56 = add nsw i64 %14, -9
  %57 = tail call i64 @brotli_max_size_t(i64 noundef %2, i64 noundef %56)
  br label %58

58:                                               ; preds = %55, %53
  %.0742 = phi i64 [ %57, %55 ], [ %2, %53 ]
  %59 = add nsw i64 %14, -2
  %60 = tail call i64 @brotli_min_size_t(i64 noundef %23, i64 noundef %59)
  %.not809821 = icmp ugt i64 %.0742, %60
  br i1 %.not809821, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %58, %.lr.ph
  %.0743822 = phi i64 [ %67, %.lr.ph ], [ %.0742, %58 ]
  %61 = sub i64 %14, %.0743822
  %62 = getelementptr inbounds [10 x i8], ptr @kOmitLastNTransforms, i64 0, i64 %61
  %63 = load i8, ptr %62, align 1, !tbaa !9
  %64 = zext i8 %63 to i64
  %65 = shl i64 %64, %17
  %66 = add i64 %65, %19
  tail call void @AddMatch(i64 noundef %66, i64 noundef %.0743822, i64 noundef %14, ptr noundef %4)
  %67 = add i64 %.0743822, 1
  %.not809 = icmp ugt i64 %67, %60
  br i1 %.not809, label %._crit_edge, label %.lr.ph, !llvm.loop !10

._crit_edge:                                      ; preds = %.lr.ph, %58
  %.3.lcssa = phi i32 [ %.2, %58 ], [ 1, %.lr.ph ]
  %68 = icmp ult i64 %23, %14
  br i1 %68, label %.critedge, label %69, !llvm.loop !12

69:                                               ; preds = %._crit_edge
  %70 = add nuw nsw i64 %14, 6
  %.not810 = icmp ult i64 %70, %3
  br i1 %.not810, label %71, label %.critedge, !llvm.loop !12

71:                                               ; preds = %69
  %72 = getelementptr inbounds i8, ptr %1, i64 %14
  %73 = load i8, ptr %72, align 1, !tbaa !9
  switch i8 %73, label %.critedge [
    i8 32, label %74
    i8 34, label %262
    i8 46, label %273
    i8 44, label %313
    i8 10, label %324
    i8 93, label %335
    i8 39, label %339
    i8 58, label %343
    i8 40, label %347
    i8 61, label %351
    i8 97, label %362
    i8 101, label %374
    i8 102, label %405
    i8 105, label %421
    i8 108, label %448
    i8 111, label %475
  ]

74:                                               ; preds = %71
  %75 = add nuw i64 %18, %19
  %76 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %75, i64 noundef %76, i64 noundef %14, ptr noundef %4)
  %77 = getelementptr inbounds i8, ptr %72, i64 1
  %78 = load i8, ptr %77, align 1, !tbaa !9
  switch i8 %78, label %.critedge [
    i8 97, label %79
    i8 98, label %114
    i8 105, label %126
    i8 102, label %145
    i8 111, label %175
    i8 110, label %194
    i8 116, label %210
    i8 119, label %243
  ]

79:                                               ; preds = %74
  %80 = getelementptr inbounds i8, ptr %72, i64 2
  %81 = load i8, ptr %80, align 1, !tbaa !9
  switch i8 %81, label %.critedge [
    i8 32, label %82
    i8 115, label %86
    i8 116, label %94
    i8 110, label %102
  ]

82:                                               ; preds = %79
  %83 = shl i64 28, %17
  %84 = add nuw i64 %83, %19
  %85 = add nuw nsw i64 %14, 3
  tail call void @AddMatch(i64 noundef %84, i64 noundef %85, i64 noundef %14, ptr noundef %4)
  br label %.critedge

86:                                               ; preds = %79
  %87 = getelementptr inbounds i8, ptr %72, i64 3
  %88 = load i8, ptr %87, align 1, !tbaa !9
  %89 = icmp eq i8 %88, 32
  br i1 %89, label %90, label %.critedge

90:                                               ; preds = %86
  %91 = shl i64 46, %17
  %92 = add nuw i64 %91, %19
  %93 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %92, i64 noundef %93, i64 noundef %14, ptr noundef %4)
  br label %.critedge

94:                                               ; preds = %79
  %95 = getelementptr inbounds i8, ptr %72, i64 3
  %96 = load i8, ptr %95, align 1, !tbaa !9
  %97 = icmp eq i8 %96, 32
  br i1 %97, label %98, label %.critedge

98:                                               ; preds = %94
  %99 = shl i64 60, %17
  %100 = add nuw i64 %99, %19
  %101 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %100, i64 noundef %101, i64 noundef %14, ptr noundef %4)
  br label %.critedge

102:                                              ; preds = %79
  %103 = getelementptr inbounds i8, ptr %72, i64 3
  %104 = load i8, ptr %103, align 1, !tbaa !9
  %105 = icmp eq i8 %104, 100
  br i1 %105, label %106, label %.critedge

106:                                              ; preds = %102
  %107 = getelementptr inbounds i8, ptr %72, i64 4
  %108 = load i8, ptr %107, align 1, !tbaa !9
  %109 = icmp eq i8 %108, 32
  br i1 %109, label %110, label %.critedge

110:                                              ; preds = %106
  %111 = shl i64 10, %17
  %112 = add nuw i64 %111, %19
  %113 = add nuw nsw i64 %14, 5
  tail call void @AddMatch(i64 noundef %112, i64 noundef %113, i64 noundef %14, ptr noundef %4)
  br label %.critedge

114:                                              ; preds = %74
  %115 = getelementptr inbounds i8, ptr %72, i64 2
  %116 = load i8, ptr %115, align 1, !tbaa !9
  %117 = icmp eq i8 %116, 121
  br i1 %117, label %118, label %.critedge

118:                                              ; preds = %114
  %119 = getelementptr inbounds i8, ptr %72, i64 3
  %120 = load i8, ptr %119, align 1, !tbaa !9
  %121 = icmp eq i8 %120, 32
  br i1 %121, label %122, label %.critedge

122:                                              ; preds = %118
  %123 = shl i64 38, %17
  %124 = add nuw i64 %123, %19
  %125 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %124, i64 noundef %125, i64 noundef %14, ptr noundef %4)
  br label %.critedge

126:                                              ; preds = %74
  %127 = getelementptr inbounds i8, ptr %72, i64 2
  %128 = load i8, ptr %127, align 1, !tbaa !9
  switch i8 %128, label %.critedge [
    i8 110, label %129
    i8 115, label %137
  ]

129:                                              ; preds = %126
  %130 = getelementptr inbounds i8, ptr %72, i64 3
  %131 = load i8, ptr %130, align 1, !tbaa !9
  %132 = icmp eq i8 %131, 32
  br i1 %132, label %133, label %.critedge

133:                                              ; preds = %129
  %134 = shl i64 16, %17
  %135 = add nuw i64 %134, %19
  %136 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %135, i64 noundef %136, i64 noundef %14, ptr noundef %4)
  br label %.critedge

137:                                              ; preds = %126
  %138 = getelementptr inbounds i8, ptr %72, i64 3
  %139 = load i8, ptr %138, align 1, !tbaa !9
  %140 = icmp eq i8 %139, 32
  br i1 %140, label %141, label %.critedge

141:                                              ; preds = %137
  %142 = shl i64 47, %17
  %143 = add nuw i64 %142, %19
  %144 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %143, i64 noundef %144, i64 noundef %14, ptr noundef %4)
  br label %.critedge

145:                                              ; preds = %74
  %146 = getelementptr inbounds i8, ptr %72, i64 2
  %147 = load i8, ptr %146, align 1, !tbaa !9
  switch i8 %147, label %.critedge [
    i8 111, label %148
    i8 114, label %160
  ]

148:                                              ; preds = %145
  %149 = getelementptr inbounds i8, ptr %72, i64 3
  %150 = load i8, ptr %149, align 1, !tbaa !9
  %151 = icmp eq i8 %150, 114
  br i1 %151, label %152, label %.critedge

152:                                              ; preds = %148
  %153 = getelementptr inbounds i8, ptr %72, i64 4
  %154 = load i8, ptr %153, align 1, !tbaa !9
  %155 = icmp eq i8 %154, 32
  br i1 %155, label %156, label %.critedge

156:                                              ; preds = %152
  %157 = shl i64 25, %17
  %158 = add nuw i64 %157, %19
  %159 = add nuw nsw i64 %14, 5
  tail call void @AddMatch(i64 noundef %158, i64 noundef %159, i64 noundef %14, ptr noundef %4)
  br label %.critedge

160:                                              ; preds = %145
  %161 = getelementptr inbounds i8, ptr %72, i64 3
  %162 = load i8, ptr %161, align 1, !tbaa !9
  %163 = icmp eq i8 %162, 111
  br i1 %163, label %164, label %.critedge

164:                                              ; preds = %160
  %165 = getelementptr inbounds i8, ptr %72, i64 4
  %166 = load i8, ptr %165, align 1, !tbaa !9
  %167 = icmp eq i8 %166, 109
  br i1 %167, label %168, label %.critedge

168:                                              ; preds = %164
  %169 = getelementptr inbounds i8, ptr %72, i64 5
  %170 = load i8, ptr %169, align 1, !tbaa !9
  %171 = icmp eq i8 %170, 32
  br i1 %171, label %172, label %.critedge

172:                                              ; preds = %168
  %173 = shl i64 37, %17
  %174 = add nuw i64 %173, %19
  tail call void @AddMatch(i64 noundef %174, i64 noundef %70, i64 noundef %14, ptr noundef %4)
  br label %.critedge

175:                                              ; preds = %74
  %176 = getelementptr inbounds i8, ptr %72, i64 2
  %177 = load i8, ptr %176, align 1, !tbaa !9
  switch i8 %177, label %.critedge [
    i8 102, label %178
    i8 110, label %186
  ]

178:                                              ; preds = %175
  %179 = getelementptr inbounds i8, ptr %72, i64 3
  %180 = load i8, ptr %179, align 1, !tbaa !9
  %181 = icmp eq i8 %180, 32
  br i1 %181, label %182, label %.critedge

182:                                              ; preds = %178
  %183 = shl i64 8, %17
  %184 = add nuw i64 %183, %19
  %185 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %184, i64 noundef %185, i64 noundef %14, ptr noundef %4)
  br label %.critedge

186:                                              ; preds = %175
  %187 = getelementptr inbounds i8, ptr %72, i64 3
  %188 = load i8, ptr %187, align 1, !tbaa !9
  %189 = icmp eq i8 %188, 32
  br i1 %189, label %190, label %.critedge

190:                                              ; preds = %186
  %191 = shl i64 45, %17
  %192 = add nuw i64 %191, %19
  %193 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %192, i64 noundef %193, i64 noundef %14, ptr noundef %4)
  br label %.critedge

194:                                              ; preds = %74
  %195 = getelementptr inbounds i8, ptr %72, i64 2
  %196 = load i8, ptr %195, align 1, !tbaa !9
  %197 = icmp eq i8 %196, 111
  br i1 %197, label %198, label %.critedge

198:                                              ; preds = %194
  %199 = getelementptr inbounds i8, ptr %72, i64 3
  %200 = load i8, ptr %199, align 1, !tbaa !9
  %201 = icmp eq i8 %200, 116
  br i1 %201, label %202, label %.critedge

202:                                              ; preds = %198
  %203 = getelementptr inbounds i8, ptr %72, i64 4
  %204 = load i8, ptr %203, align 1, !tbaa !9
  %205 = icmp eq i8 %204, 32
  br i1 %205, label %206, label %.critedge

206:                                              ; preds = %202
  %207 = shl i64 80, %17
  %208 = add nuw i64 %207, %19
  %209 = add nuw nsw i64 %14, 5
  tail call void @AddMatch(i64 noundef %208, i64 noundef %209, i64 noundef %14, ptr noundef %4)
  br label %.critedge

210:                                              ; preds = %74
  %211 = getelementptr inbounds i8, ptr %72, i64 2
  %212 = load i8, ptr %211, align 1, !tbaa !9
  switch i8 %212, label %.critedge [
    i8 104, label %213
    i8 111, label %235
  ]

213:                                              ; preds = %210
  %214 = getelementptr inbounds i8, ptr %72, i64 3
  %215 = load i8, ptr %214, align 1, !tbaa !9
  switch i8 %215, label %.critedge [
    i8 101, label %216
    i8 97, label %224
  ]

216:                                              ; preds = %213
  %217 = getelementptr inbounds i8, ptr %72, i64 4
  %218 = load i8, ptr %217, align 1, !tbaa !9
  %219 = icmp eq i8 %218, 32
  br i1 %219, label %220, label %.critedge

220:                                              ; preds = %216
  %221 = shl i64 5, %17
  %222 = add nuw i64 %221, %19
  %223 = add nuw nsw i64 %14, 5
  tail call void @AddMatch(i64 noundef %222, i64 noundef %223, i64 noundef %14, ptr noundef %4)
  br label %.critedge

224:                                              ; preds = %213
  %225 = getelementptr inbounds i8, ptr %72, i64 4
  %226 = load i8, ptr %225, align 1, !tbaa !9
  %227 = icmp eq i8 %226, 116
  br i1 %227, label %228, label %.critedge

228:                                              ; preds = %224
  %229 = getelementptr inbounds i8, ptr %72, i64 5
  %230 = load i8, ptr %229, align 1, !tbaa !9
  %231 = icmp eq i8 %230, 32
  br i1 %231, label %232, label %.critedge

232:                                              ; preds = %228
  %233 = shl i64 29, %17
  %234 = add nuw i64 %233, %19
  tail call void @AddMatch(i64 noundef %234, i64 noundef %70, i64 noundef %14, ptr noundef %4)
  br label %.critedge

235:                                              ; preds = %210
  %236 = getelementptr inbounds i8, ptr %72, i64 3
  %237 = load i8, ptr %236, align 1, !tbaa !9
  %238 = icmp eq i8 %237, 32
  br i1 %238, label %239, label %.critedge

239:                                              ; preds = %235
  %240 = shl i64 17, %17
  %241 = add nuw i64 %240, %19
  %242 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %241, i64 noundef %242, i64 noundef %14, ptr noundef %4)
  br label %.critedge

243:                                              ; preds = %74
  %244 = getelementptr inbounds i8, ptr %72, i64 2
  %245 = load i8, ptr %244, align 1, !tbaa !9
  %246 = icmp eq i8 %245, 105
  br i1 %246, label %247, label %.critedge

247:                                              ; preds = %243
  %248 = getelementptr inbounds i8, ptr %72, i64 3
  %249 = load i8, ptr %248, align 1, !tbaa !9
  %250 = icmp eq i8 %249, 116
  br i1 %250, label %251, label %.critedge

251:                                              ; preds = %247
  %252 = getelementptr inbounds i8, ptr %72, i64 4
  %253 = load i8, ptr %252, align 1, !tbaa !9
  %254 = icmp eq i8 %253, 104
  br i1 %254, label %255, label %.critedge

255:                                              ; preds = %251
  %256 = getelementptr inbounds i8, ptr %72, i64 5
  %257 = load i8, ptr %256, align 1, !tbaa !9
  %258 = icmp eq i8 %257, 32
  br i1 %258, label %259, label %.critedge

259:                                              ; preds = %255
  %260 = shl i64 35, %17
  %261 = add nuw i64 %260, %19
  tail call void @AddMatch(i64 noundef %261, i64 noundef %70, i64 noundef %14, ptr noundef %4)
  br label %.critedge

262:                                              ; preds = %71
  %263 = shl i64 19, %17
  %264 = add nuw i64 %263, %19
  %265 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %264, i64 noundef %265, i64 noundef %14, ptr noundef %4)
  %266 = getelementptr inbounds i8, ptr %72, i64 1
  %267 = load i8, ptr %266, align 1, !tbaa !9
  %268 = icmp eq i8 %267, 62
  br i1 %268, label %269, label %.critedge

269:                                              ; preds = %262
  %270 = shl i64 21, %17
  %271 = add nuw i64 %270, %19
  %272 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %271, i64 noundef %272, i64 noundef %14, ptr noundef %4)
  br label %.critedge

273:                                              ; preds = %71
  %274 = shl i64 20, %17
  %275 = add nuw i64 %274, %19
  %276 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %275, i64 noundef %276, i64 noundef %14, ptr noundef %4)
  %277 = getelementptr inbounds i8, ptr %72, i64 1
  %278 = load i8, ptr %277, align 1, !tbaa !9
  %279 = icmp eq i8 %278, 32
  br i1 %279, label %280, label %.critedge

280:                                              ; preds = %273
  %281 = shl i64 31, %17
  %282 = add nuw i64 %281, %19
  %283 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %282, i64 noundef %283, i64 noundef %14, ptr noundef %4)
  %284 = getelementptr inbounds i8, ptr %72, i64 2
  %285 = load i8, ptr %284, align 1, !tbaa !9
  %286 = icmp eq i8 %285, 84
  br i1 %286, label %287, label %.critedge

287:                                              ; preds = %280
  %288 = getelementptr inbounds i8, ptr %72, i64 3
  %289 = load i8, ptr %288, align 1, !tbaa !9
  %290 = icmp eq i8 %289, 104
  br i1 %290, label %291, label %.critedge

291:                                              ; preds = %287
  %292 = getelementptr inbounds i8, ptr %72, i64 4
  %293 = load i8, ptr %292, align 1, !tbaa !9
  switch i8 %293, label %.critedge [
    i8 101, label %294
    i8 105, label %301
  ]

294:                                              ; preds = %291
  %295 = getelementptr inbounds i8, ptr %72, i64 5
  %296 = load i8, ptr %295, align 1, !tbaa !9
  %297 = icmp eq i8 %296, 32
  br i1 %297, label %298, label %.critedge

298:                                              ; preds = %294
  %299 = shl i64 43, %17
  %300 = add nuw i64 %299, %19
  tail call void @AddMatch(i64 noundef %300, i64 noundef %70, i64 noundef %14, ptr noundef %4)
  br label %.critedge

301:                                              ; preds = %291
  %302 = getelementptr inbounds i8, ptr %72, i64 5
  %303 = load i8, ptr %302, align 1, !tbaa !9
  %304 = icmp eq i8 %303, 115
  br i1 %304, label %305, label %.critedge

305:                                              ; preds = %301
  %306 = getelementptr inbounds i8, ptr %72, i64 6
  %307 = load i8, ptr %306, align 1, !tbaa !9
  %308 = icmp eq i8 %307, 32
  br i1 %308, label %309, label %.critedge

309:                                              ; preds = %305
  %310 = shl i64 75, %17
  %311 = add nuw i64 %310, %19
  %312 = add nuw nsw i64 %14, 7
  tail call void @AddMatch(i64 noundef %311, i64 noundef %312, i64 noundef %14, ptr noundef %4)
  br label %.critedge

313:                                              ; preds = %71
  %314 = shl i64 76, %17
  %315 = add nuw i64 %314, %19
  %316 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %315, i64 noundef %316, i64 noundef %14, ptr noundef %4)
  %317 = getelementptr inbounds i8, ptr %72, i64 1
  %318 = load i8, ptr %317, align 1, !tbaa !9
  %319 = icmp eq i8 %318, 32
  br i1 %319, label %320, label %.critedge

320:                                              ; preds = %313
  %321 = shl i64 14, %17
  %322 = add nuw i64 %321, %19
  %323 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %322, i64 noundef %323, i64 noundef %14, ptr noundef %4)
  br label %.critedge

324:                                              ; preds = %71
  %325 = shl i64 22, %17
  %326 = add nuw i64 %325, %19
  %327 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %326, i64 noundef %327, i64 noundef %14, ptr noundef %4)
  %328 = getelementptr inbounds i8, ptr %72, i64 1
  %329 = load i8, ptr %328, align 1, !tbaa !9
  %330 = icmp eq i8 %329, 9
  br i1 %330, label %331, label %.critedge

331:                                              ; preds = %324
  %332 = shl i64 50, %17
  %333 = add nuw i64 %332, %19
  %334 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %333, i64 noundef %334, i64 noundef %14, ptr noundef %4)
  br label %.critedge

335:                                              ; preds = %71
  %336 = shl i64 24, %17
  %337 = add nuw i64 %336, %19
  %338 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %337, i64 noundef %338, i64 noundef %14, ptr noundef %4)
  br label %.critedge

339:                                              ; preds = %71
  %340 = shl i64 36, %17
  %341 = add nuw i64 %340, %19
  %342 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %341, i64 noundef %342, i64 noundef %14, ptr noundef %4)
  br label %.critedge

343:                                              ; preds = %71
  %344 = shl i64 51, %17
  %345 = add nuw i64 %344, %19
  %346 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %345, i64 noundef %346, i64 noundef %14, ptr noundef %4)
  br label %.critedge

347:                                              ; preds = %71
  %348 = shl i64 57, %17
  %349 = add nuw i64 %348, %19
  %350 = add nuw nsw i64 %14, 1
  tail call void @AddMatch(i64 noundef %349, i64 noundef %350, i64 noundef %14, ptr noundef %4)
  br label %.critedge

351:                                              ; preds = %71
  %352 = getelementptr inbounds i8, ptr %72, i64 1
  %353 = load i8, ptr %352, align 1, !tbaa !9
  switch i8 %353, label %.critedge [
    i8 34, label %354
    i8 39, label %358
  ]

354:                                              ; preds = %351
  %355 = shl i64 70, %17
  %356 = add nuw i64 %355, %19
  %357 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %356, i64 noundef %357, i64 noundef %14, ptr noundef %4)
  br label %.critedge

358:                                              ; preds = %351
  %359 = shl i64 86, %17
  %360 = add nuw i64 %359, %19
  %361 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %360, i64 noundef %361, i64 noundef %14, ptr noundef %4)
  br label %.critedge

362:                                              ; preds = %71
  %363 = getelementptr inbounds i8, ptr %72, i64 1
  %364 = load i8, ptr %363, align 1, !tbaa !9
  %365 = icmp eq i8 %364, 108
  br i1 %365, label %366, label %.critedge

366:                                              ; preds = %362
  %367 = getelementptr inbounds i8, ptr %72, i64 2
  %368 = load i8, ptr %367, align 1, !tbaa !9
  %369 = icmp eq i8 %368, 32
  br i1 %369, label %370, label %.critedge

370:                                              ; preds = %366
  %371 = shl i64 84, %17
  %372 = add nuw i64 %371, %19
  %373 = add nuw nsw i64 %14, 3
  tail call void @AddMatch(i64 noundef %372, i64 noundef %373, i64 noundef %14, ptr noundef %4)
  br label %.critedge

374:                                              ; preds = %71
  %375 = getelementptr inbounds i8, ptr %72, i64 1
  %376 = load i8, ptr %375, align 1, !tbaa !9
  switch i8 %376, label %.critedge [
    i8 100, label %377
    i8 114, label %385
    i8 115, label %393
  ]

377:                                              ; preds = %374
  %378 = getelementptr inbounds i8, ptr %72, i64 2
  %379 = load i8, ptr %378, align 1, !tbaa !9
  %380 = icmp eq i8 %379, 32
  br i1 %380, label %381, label %.critedge

381:                                              ; preds = %377
  %382 = shl i64 53, %17
  %383 = add nuw i64 %382, %19
  %384 = add nuw nsw i64 %14, 3
  tail call void @AddMatch(i64 noundef %383, i64 noundef %384, i64 noundef %14, ptr noundef %4)
  br label %.critedge

385:                                              ; preds = %374
  %386 = getelementptr inbounds i8, ptr %72, i64 2
  %387 = load i8, ptr %386, align 1, !tbaa !9
  %388 = icmp eq i8 %387, 32
  br i1 %388, label %389, label %.critedge

389:                                              ; preds = %385
  %390 = shl i64 82, %17
  %391 = add nuw i64 %390, %19
  %392 = add nuw nsw i64 %14, 3
  tail call void @AddMatch(i64 noundef %391, i64 noundef %392, i64 noundef %14, ptr noundef %4)
  br label %.critedge

393:                                              ; preds = %374
  %394 = getelementptr inbounds i8, ptr %72, i64 2
  %395 = load i8, ptr %394, align 1, !tbaa !9
  %396 = icmp eq i8 %395, 116
  br i1 %396, label %397, label %.critedge

397:                                              ; preds = %393
  %398 = getelementptr inbounds i8, ptr %72, i64 3
  %399 = load i8, ptr %398, align 1, !tbaa !9
  %400 = icmp eq i8 %399, 32
  br i1 %400, label %401, label %.critedge

401:                                              ; preds = %397
  %402 = shl i64 95, %17
  %403 = add nuw i64 %402, %19
  %404 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %403, i64 noundef %404, i64 noundef %14, ptr noundef %4)
  br label %.critedge

405:                                              ; preds = %71
  %406 = getelementptr inbounds i8, ptr %72, i64 1
  %407 = load i8, ptr %406, align 1, !tbaa !9
  %408 = icmp eq i8 %407, 117
  br i1 %408, label %409, label %.critedge

409:                                              ; preds = %405
  %410 = getelementptr inbounds i8, ptr %72, i64 2
  %411 = load i8, ptr %410, align 1, !tbaa !9
  %412 = icmp eq i8 %411, 108
  br i1 %412, label %413, label %.critedge

413:                                              ; preds = %409
  %414 = getelementptr inbounds i8, ptr %72, i64 3
  %415 = load i8, ptr %414, align 1, !tbaa !9
  %416 = icmp eq i8 %415, 32
  br i1 %416, label %417, label %.critedge

417:                                              ; preds = %413
  %418 = shl i64 90, %17
  %419 = add nuw i64 %418, %19
  %420 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %419, i64 noundef %420, i64 noundef %14, ptr noundef %4)
  br label %.critedge

421:                                              ; preds = %71
  %422 = getelementptr inbounds i8, ptr %72, i64 1
  %423 = load i8, ptr %422, align 1, !tbaa !9
  switch i8 %423, label %.critedge [
    i8 118, label %424
    i8 122, label %436
  ]

424:                                              ; preds = %421
  %425 = getelementptr inbounds i8, ptr %72, i64 2
  %426 = load i8, ptr %425, align 1, !tbaa !9
  %427 = icmp eq i8 %426, 101
  br i1 %427, label %428, label %.critedge

428:                                              ; preds = %424
  %429 = getelementptr inbounds i8, ptr %72, i64 3
  %430 = load i8, ptr %429, align 1, !tbaa !9
  %431 = icmp eq i8 %430, 32
  br i1 %431, label %432, label %.critedge

432:                                              ; preds = %428
  %433 = shl i64 92, %17
  %434 = add nuw i64 %433, %19
  %435 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %434, i64 noundef %435, i64 noundef %14, ptr noundef %4)
  br label %.critedge

436:                                              ; preds = %421
  %437 = getelementptr inbounds i8, ptr %72, i64 2
  %438 = load i8, ptr %437, align 1, !tbaa !9
  %439 = icmp eq i8 %438, 101
  br i1 %439, label %440, label %.critedge

440:                                              ; preds = %436
  %441 = getelementptr inbounds i8, ptr %72, i64 3
  %442 = load i8, ptr %441, align 1, !tbaa !9
  %443 = icmp eq i8 %442, 32
  br i1 %443, label %444, label %.critedge

444:                                              ; preds = %440
  %445 = shl i64 100, %17
  %446 = add nuw i64 %445, %19
  %447 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %446, i64 noundef %447, i64 noundef %14, ptr noundef %4)
  br label %.critedge

448:                                              ; preds = %71
  %449 = getelementptr inbounds i8, ptr %72, i64 1
  %450 = load i8, ptr %449, align 1, !tbaa !9
  switch i8 %450, label %.critedge [
    i8 101, label %451
    i8 121, label %467
  ]

451:                                              ; preds = %448
  %452 = getelementptr inbounds i8, ptr %72, i64 2
  %453 = load i8, ptr %452, align 1, !tbaa !9
  %454 = icmp eq i8 %453, 115
  br i1 %454, label %455, label %.critedge

455:                                              ; preds = %451
  %456 = getelementptr inbounds i8, ptr %72, i64 3
  %457 = load i8, ptr %456, align 1, !tbaa !9
  %458 = icmp eq i8 %457, 115
  br i1 %458, label %459, label %.critedge

459:                                              ; preds = %455
  %460 = getelementptr inbounds i8, ptr %72, i64 4
  %461 = load i8, ptr %460, align 1, !tbaa !9
  %462 = icmp eq i8 %461, 32
  br i1 %462, label %463, label %.critedge

463:                                              ; preds = %459
  %464 = shl i64 93, %17
  %465 = add nuw i64 %464, %19
  %466 = add nuw nsw i64 %14, 5
  tail call void @AddMatch(i64 noundef %465, i64 noundef %466, i64 noundef %14, ptr noundef %4)
  br label %.critedge

467:                                              ; preds = %448
  %468 = getelementptr inbounds i8, ptr %72, i64 2
  %469 = load i8, ptr %468, align 1, !tbaa !9
  %470 = icmp eq i8 %469, 32
  br i1 %470, label %471, label %.critedge

471:                                              ; preds = %467
  %472 = shl i64 61, %17
  %473 = add nuw i64 %472, %19
  %474 = add nuw nsw i64 %14, 3
  tail call void @AddMatch(i64 noundef %473, i64 noundef %474, i64 noundef %14, ptr noundef %4)
  br label %.critedge

475:                                              ; preds = %71
  %476 = getelementptr inbounds i8, ptr %72, i64 1
  %477 = load i8, ptr %476, align 1, !tbaa !9
  %478 = icmp eq i8 %477, 117
  br i1 %478, label %479, label %.critedge

479:                                              ; preds = %475
  %480 = getelementptr inbounds i8, ptr %72, i64 2
  %481 = load i8, ptr %480, align 1, !tbaa !9
  %482 = icmp eq i8 %481, 115
  br i1 %482, label %483, label %.critedge

483:                                              ; preds = %479
  %484 = getelementptr inbounds i8, ptr %72, i64 3
  %485 = load i8, ptr %484, align 1, !tbaa !9
  %486 = icmp eq i8 %485, 32
  br i1 %486, label %487, label %.critedge

487:                                              ; preds = %483
  %488 = shl i64 106, %17
  %489 = add nuw i64 %488, %19
  %490 = add nuw nsw i64 %14, 4
  tail call void @AddMatch(i64 noundef %489, i64 noundef %490, i64 noundef %14, ptr noundef %4)
  br label %.critedge

491:                                              ; preds = %.lr.ph826
  %492 = zext i8 %.sroa.7580.0.copyload to i32
  %.not805 = icmp eq i8 %.sroa.7580.0.copyload, 10
  %.sroa.9.0.insert.ext = zext i16 %.sroa.9.0.copyload to i32
  %.sroa.9.0.insert.shift = shl nuw i32 %.sroa.9.0.insert.ext, 16
  %.sroa.7580.0.insert.shift = shl nuw nsw i32 %492, 8
  %.sroa.0577.0.insert.ext = zext nneg i8 %13 to i32
  %.sroa.7580.0.insert.insert = or disjoint i32 %.sroa.7580.0.insert.shift, %.sroa.0577.0.insert.ext
  %.sroa.0577.0.insert.insert = or disjoint i32 %.sroa.7580.0.insert.insert, %.sroa.9.0.insert.shift
  %493 = tail call i32 @IsMatch(ptr noundef nonnull %0, i32 %.sroa.0577.0.insert.insert, ptr noundef %1, i64 noundef %3)
  %.not806 = icmp eq i32 %493, 0
  br i1 %.not806, label %.critedge, label %494, !llvm.loop !12

494:                                              ; preds = %491
  %495 = select i1 %.not805, i64 9, i64 44
  %496 = shl i64 %495, %17
  %497 = add i64 %496, %19
  tail call void @AddMatch(i64 noundef %497, i64 noundef %14, i64 noundef %14, ptr noundef %4)
  %498 = add nuw nsw i64 %14, 1
  %.not807 = icmp ult i64 %498, %3
  br i1 %.not807, label %499, label %.critedge, !llvm.loop !12

499:                                              ; preds = %494
  %500 = getelementptr inbounds i8, ptr %1, i64 %14
  %501 = load i8, ptr %500, align 1, !tbaa !9
  switch i8 %501, label %.critedge [
    i8 32, label %502
    i8 34, label %506
    i8 46, label %518
    i8 44, label %530
    i8 39, label %542
    i8 40, label %546
    i8 61, label %550
  ]

502:                                              ; preds = %499
  %503 = select i1 %.not805, i64 4, i64 68
  %504 = shl i64 %503, %17
  %505 = add i64 %504, %19
  tail call void @AddMatch(i64 noundef %505, i64 noundef %498, i64 noundef %14, ptr noundef %4)
  br label %.critedge

506:                                              ; preds = %499
  %507 = select i1 %.not805, i64 66, i64 87
  %508 = shl i64 %507, %17
  %509 = add i64 %508, %19
  tail call void @AddMatch(i64 noundef %509, i64 noundef %498, i64 noundef %14, ptr noundef %4)
  %510 = getelementptr inbounds i8, ptr %500, i64 1
  %511 = load i8, ptr %510, align 1, !tbaa !9
  %512 = icmp eq i8 %511, 62
  br i1 %512, label %513, label %.critedge

513:                                              ; preds = %506
  %514 = select i1 %.not805, i64 69, i64 97
  %515 = shl i64 %514, %17
  %516 = add i64 %515, %19
  %517 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %516, i64 noundef %517, i64 noundef %14, ptr noundef %4)
  br label %.critedge

518:                                              ; preds = %499
  %519 = select i1 %.not805, i64 79, i64 101
  %520 = shl i64 %519, %17
  %521 = add i64 %520, %19
  tail call void @AddMatch(i64 noundef %521, i64 noundef %498, i64 noundef %14, ptr noundef %4)
  %522 = getelementptr inbounds i8, ptr %500, i64 1
  %523 = load i8, ptr %522, align 1, !tbaa !9
  %524 = icmp eq i8 %523, 32
  br i1 %524, label %525, label %.critedge

525:                                              ; preds = %518
  %526 = select i1 %.not805, i64 88, i64 114
  %527 = shl i64 %526, %17
  %528 = add i64 %527, %19
  %529 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %528, i64 noundef %529, i64 noundef %14, ptr noundef %4)
  br label %.critedge

530:                                              ; preds = %499
  %531 = select i1 %.not805, i64 99, i64 112
  %532 = shl i64 %531, %17
  %533 = add i64 %532, %19
  tail call void @AddMatch(i64 noundef %533, i64 noundef %498, i64 noundef %14, ptr noundef %4)
  %534 = getelementptr inbounds i8, ptr %500, i64 1
  %535 = load i8, ptr %534, align 1, !tbaa !9
  %536 = icmp eq i8 %535, 32
  br i1 %536, label %537, label %.critedge

537:                                              ; preds = %530
  %538 = select i1 %.not805, i64 58, i64 107
  %539 = shl i64 %538, %17
  %540 = add i64 %539, %19
  %541 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %540, i64 noundef %541, i64 noundef %14, ptr noundef %4)
  br label %.critedge

542:                                              ; preds = %499
  %543 = select i1 %.not805, i64 74, i64 94
  %544 = shl i64 %543, %17
  %545 = add i64 %544, %19
  tail call void @AddMatch(i64 noundef %545, i64 noundef %498, i64 noundef %14, ptr noundef %4)
  br label %.critedge

546:                                              ; preds = %499
  %547 = select i1 %.not805, i64 78, i64 113
  %548 = shl i64 %547, %17
  %549 = add i64 %548, %19
  tail call void @AddMatch(i64 noundef %549, i64 noundef %498, i64 noundef %14, ptr noundef %4)
  br label %.critedge

550:                                              ; preds = %499
  %551 = getelementptr inbounds i8, ptr %500, i64 1
  %552 = load i8, ptr %551, align 1, !tbaa !9
  switch i8 %552, label %.critedge [
    i8 34, label %553
    i8 39, label %558
  ]

553:                                              ; preds = %550
  %554 = select i1 %.not805, i64 104, i64 105
  %555 = shl i64 %554, %17
  %556 = add i64 %555, %19
  %557 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %556, i64 noundef %557, i64 noundef %14, ptr noundef %4)
  br label %.critedge

558:                                              ; preds = %550
  %559 = select i1 %.not805, i64 108, i64 116
  %560 = shl i64 %559, %17
  %561 = add i64 %560, %19
  %562 = add nuw nsw i64 %14, 2
  tail call void @AddMatch(i64 noundef %561, i64 noundef %562, i64 noundef %14, ptr noundef %4)
  br label %.critedge

.critedge:                                        ; preds = %491, %494, %550, %499, %513, %506, %537, %530, %546, %553, %558, %542, %518, %525, %502, %69, %._crit_edge, %122, %118, %114, %172, %168, %164, %160, %148, %152, %156, %206, %202, %198, %194, %259, %255, %251, %247, %243, %232, %228, %224, %216, %220, %235, %239, %182, %178, %186, %190, %133, %129, %137, %141, %82, %98, %94, %102, %106, %110, %86, %90, %280, %287, %309, %305, %301, %294, %298, %273, %331, %324, %339, %347, %370, %366, %362, %417, %413, %409, %405, %471, %467, %451, %455, %459, %463, %475, %479, %483, %487, %432, %428, %424, %436, %440, %444, %381, %377, %401, %397, %393, %385, %389, %354, %358, %343, %335, %313, %320, %262, %269, %79, %126, %145, %175, %213, %210, %74, %291, %351, %374, %421, %448, %71
  %.6 = phi i32 [ %.3.lcssa, %122 ], [ %.3.lcssa, %118 ], [ %.3.lcssa, %114 ], [ %.3.lcssa, %172 ], [ %.3.lcssa, %168 ], [ %.3.lcssa, %164 ], [ %.3.lcssa, %160 ], [ %.3.lcssa, %148 ], [ %.3.lcssa, %152 ], [ %.3.lcssa, %156 ], [ %.3.lcssa, %206 ], [ %.3.lcssa, %202 ], [ %.3.lcssa, %198 ], [ %.3.lcssa, %194 ], [ %.3.lcssa, %259 ], [ %.3.lcssa, %255 ], [ %.3.lcssa, %251 ], [ %.3.lcssa, %247 ], [ %.3.lcssa, %243 ], [ %.3.lcssa, %232 ], [ %.3.lcssa, %228 ], [ %.3.lcssa, %224 ], [ %.3.lcssa, %216 ], [ %.3.lcssa, %220 ], [ %.3.lcssa, %235 ], [ %.3.lcssa, %239 ], [ %.3.lcssa, %182 ], [ %.3.lcssa, %178 ], [ %.3.lcssa, %186 ], [ %.3.lcssa, %190 ], [ %.3.lcssa, %133 ], [ %.3.lcssa, %129 ], [ %.3.lcssa, %137 ], [ %.3.lcssa, %141 ], [ %.3.lcssa, %82 ], [ %.3.lcssa, %98 ], [ %.3.lcssa, %94 ], [ %.3.lcssa, %102 ], [ %.3.lcssa, %106 ], [ %.3.lcssa, %110 ], [ %.3.lcssa, %86 ], [ %.3.lcssa, %90 ], [ %.3.lcssa, %280 ], [ %.3.lcssa, %287 ], [ %.3.lcssa, %309 ], [ %.3.lcssa, %305 ], [ %.3.lcssa, %301 ], [ %.3.lcssa, %294 ], [ %.3.lcssa, %298 ], [ %.3.lcssa, %273 ], [ %.3.lcssa, %331 ], [ %.3.lcssa, %324 ], [ %.3.lcssa, %339 ], [ %.3.lcssa, %347 ], [ %.3.lcssa, %370 ], [ %.3.lcssa, %366 ], [ %.3.lcssa, %362 ], [ %.3.lcssa, %417 ], [ %.3.lcssa, %413 ], [ %.3.lcssa, %409 ], [ %.3.lcssa, %405 ], [ %.3.lcssa, %471 ], [ %.3.lcssa, %467 ], [ %.3.lcssa, %451 ], [ %.3.lcssa, %455 ], [ %.3.lcssa, %459 ], [ %.3.lcssa, %463 ], [ %.3.lcssa, %475 ], [ %.3.lcssa, %479 ], [ %.3.lcssa, %483 ], [ %.3.lcssa, %487 ], [ %.3.lcssa, %432 ], [ %.3.lcssa, %428 ], [ %.3.lcssa, %424 ], [ %.3.lcssa, %436 ], [ %.3.lcssa, %440 ], [ %.3.lcssa, %444 ], [ %.3.lcssa, %381 ], [ %.3.lcssa, %377 ], [ %.3.lcssa, %401 ], [ %.3.lcssa, %397 ], [ %.3.lcssa, %393 ], [ %.3.lcssa, %385 ], [ %.3.lcssa, %389 ], [ %.3.lcssa, %354 ], [ %.3.lcssa, %358 ], [ %.3.lcssa, %343 ], [ %.3.lcssa, %335 ], [ %.3.lcssa, %313 ], [ %.3.lcssa, %320 ], [ %.3.lcssa, %262 ], [ %.3.lcssa, %269 ], [ %.3.lcssa, %79 ], [ %.3.lcssa, %126 ], [ %.3.lcssa, %145 ], [ %.3.lcssa, %175 ], [ %.3.lcssa, %213 ], [ %.3.lcssa, %210 ], [ %.3.lcssa, %74 ], [ %.3.lcssa, %291 ], [ %.3.lcssa, %351 ], [ %.3.lcssa, %374 ], [ %.3.lcssa, %421 ], [ %.3.lcssa, %448 ], [ %.3.lcssa, %71 ], [ %.3.lcssa, %._crit_edge ], [ %.3.lcssa, %69 ], [ %.0824, %491 ], [ 1, %494 ], [ 1, %550 ], [ 1, %499 ], [ 1, %513 ], [ 1, %506 ], [ 1, %537 ], [ 1, %530 ], [ 1, %546 ], [ 1, %553 ], [ 1, %558 ], [ 1, %542 ], [ 1, %518 ], [ 1, %525 ], [ 1, %502 ]
  br i1 %20, label %._crit_edge827, label %.lr.ph826

._crit_edge827:                                   ; preds = %.critedge, %5
  %.0.lcssa = phi i32 [ 0, %5 ], [ %.6, %.critedge ]
  %563 = icmp ugt i64 %3, 4
  br i1 %563, label %564, label %.thread815

564:                                              ; preds = %._crit_edge827
  %565 = load i8, ptr %1, align 1, !tbaa !9
  switch i8 %565, label %.loopexit [
    i8 32, label %566
    i8 46, label %566
  ]

566:                                              ; preds = %564, %564
  %567 = icmp eq i8 %565, 32
  %568 = getelementptr inbounds i8, ptr %1, i64 1
  %569 = tail call i32 @Hash(ptr noundef nonnull %568)
  %570 = zext i32 %569 to i64
  %571 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %570
  %572 = load i16, ptr %571, align 2, !tbaa !5
  %.not795 = icmp eq i16 %572, 0
  br i1 %.not795, label %.loopexit, label %.lr.ph831

.lr.ph831:                                        ; preds = %566
  %573 = zext i16 %572 to i64
  %574 = add i64 %3, -1
  %575 = select i1 %567, i64 6, i64 32
  %576 = select i1 %567, i64 89, i64 67
  %577 = select i1 %567, i64 2, i64 77
  br label %578

578:                                              ; preds = %.lr.ph831, %693
  %.7829 = phi i32 [ %.0.lcssa, %.lr.ph831 ], [ %.11, %693 ]
  %.0750828 = phi i64 [ %573, %.lr.ph831 ], [ %579, %693 ]
  %579 = add i64 %.0750828, 1
  %580 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %.0750828
  %.sroa.0153.0.copyload = load i8, ptr %580, align 4, !tbaa !9
  %.sroa.8160.0..sroa_idx = getelementptr inbounds i8, ptr %580, i64 1
  %.sroa.8160.0.copyload = load i8, ptr %.sroa.8160.0..sroa_idx, align 1, !tbaa !9
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %580, i64 2
  %.sroa.10.0.copyload = load i16, ptr %.sroa.10.0..sroa_idx, align 2, !tbaa !5
  %581 = and i8 %.sroa.0153.0.copyload, 31
  %582 = zext nneg i8 %581 to i64
  %583 = getelementptr inbounds [32 x i8], ptr %0, i64 0, i64 %582
  %584 = load i8, ptr %583, align 1, !tbaa !9
  %585 = zext nneg i8 %584 to i64
  %586 = zext i16 %.sroa.10.0.copyload to i64
  %587 = icmp slt i8 %.sroa.0153.0.copyload, 0
  %588 = zext i8 %.sroa.8160.0.copyload to i32
  %589 = icmp eq i8 %.sroa.8160.0.copyload, 0
  br i1 %589, label %590, label %639

590:                                              ; preds = %578
  %.sroa.10.0.insert.ext = zext i16 %.sroa.10.0.copyload to i32
  %.sroa.10.0.insert.shift = shl nuw i32 %.sroa.10.0.insert.ext, 16
  %.sroa.0153.0.insert.ext = zext nneg i8 %581 to i32
  %.sroa.0153.0.insert.insert = or disjoint i32 %.sroa.10.0.insert.shift, %.sroa.0153.0.insert.ext
  %591 = tail call i32 @IsMatch(ptr noundef nonnull %0, i32 %.sroa.0153.0.insert.insert, ptr noundef nonnull %568, i64 noundef %574)
  %.not803 = icmp eq i32 %591, 0
  br i1 %.not803, label %693, label %592, !llvm.loop !13

592:                                              ; preds = %590
  %593 = shl i64 %575, %585
  %594 = add i64 %593, %586
  %595 = add nuw nsw i64 %582, 1
  tail call void @AddMatch(i64 noundef %594, i64 noundef %595, i64 noundef %582, ptr noundef %4)
  %596 = add nuw nsw i64 %582, 2
  %.not804 = icmp ult i64 %596, %3
  br i1 %.not804, label %597, label %693, !llvm.loop !13

597:                                              ; preds = %592
  %598 = getelementptr inbounds i8, ptr %1, i64 %595
  %599 = load i8, ptr %598, align 1, !tbaa !9
  switch i8 %599, label %606 [
    i8 32, label %600
    i8 40, label %603
  ]

600:                                              ; preds = %597
  %601 = shl i64 %577, %585
  %602 = add i64 %601, %586
  tail call void @AddMatch(i64 noundef %602, i64 noundef %596, i64 noundef %582, ptr noundef %4)
  br label %693

603:                                              ; preds = %597
  %604 = shl i64 %576, %585
  %605 = add i64 %604, %586
  tail call void @AddMatch(i64 noundef %605, i64 noundef %596, i64 noundef %582, ptr noundef %4)
  br label %693

606:                                              ; preds = %597
  br i1 %567, label %607, label %693

607:                                              ; preds = %606
  switch i8 %599, label %693 [
    i8 44, label %608
    i8 46, label %618
    i8 61, label %628
  ]

608:                                              ; preds = %607
  %609 = shl i64 103, %585
  %610 = add nuw i64 %609, %586
  tail call void @AddMatch(i64 noundef %610, i64 noundef %596, i64 noundef %582, ptr noundef %4)
  %611 = getelementptr inbounds i8, ptr %598, i64 1
  %612 = load i8, ptr %611, align 1, !tbaa !9
  %613 = icmp eq i8 %612, 32
  br i1 %613, label %614, label %693

614:                                              ; preds = %608
  %615 = shl i64 33, %585
  %616 = add nuw i64 %615, %586
  %617 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %616, i64 noundef %617, i64 noundef %582, ptr noundef %4)
  br label %693

618:                                              ; preds = %607
  %619 = shl i64 71, %585
  %620 = add nuw i64 %619, %586
  tail call void @AddMatch(i64 noundef %620, i64 noundef %596, i64 noundef %582, ptr noundef %4)
  %621 = getelementptr inbounds i8, ptr %598, i64 1
  %622 = load i8, ptr %621, align 1, !tbaa !9
  %623 = icmp eq i8 %622, 32
  br i1 %623, label %624, label %693

624:                                              ; preds = %618
  %625 = shl i64 52, %585
  %626 = add nuw i64 %625, %586
  %627 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %626, i64 noundef %627, i64 noundef %582, ptr noundef %4)
  br label %693

628:                                              ; preds = %607
  %629 = getelementptr inbounds i8, ptr %598, i64 1
  %630 = load i8, ptr %629, align 1, !tbaa !9
  switch i8 %630, label %693 [
    i8 34, label %631
    i8 39, label %635
  ]

631:                                              ; preds = %628
  %632 = shl i64 81, %585
  %633 = add nuw i64 %632, %586
  %634 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %633, i64 noundef %634, i64 noundef %582, ptr noundef %4)
  br label %693

635:                                              ; preds = %628
  %636 = shl i64 98, %585
  %637 = add nuw i64 %636, %586
  %638 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %637, i64 noundef %638, i64 noundef %582, ptr noundef %4)
  br label %693

639:                                              ; preds = %578
  br i1 %567, label %640, label %693

640:                                              ; preds = %639
  %.not800 = icmp eq i8 %.sroa.8160.0.copyload, 10
  %.sroa.10.0.insert.ext168 = zext i16 %.sroa.10.0.copyload to i32
  %.sroa.10.0.insert.shift169 = shl nuw i32 %.sroa.10.0.insert.ext168, 16
  %.sroa.8160.0.insert.shift163 = shl nuw nsw i32 %588, 8
  %.sroa.0153.0.insert.ext157 = zext nneg i8 %581 to i32
  %.sroa.8160.0.insert.insert165 = or disjoint i32 %.sroa.8160.0.insert.shift163, %.sroa.0153.0.insert.ext157
  %.sroa.0153.0.insert.insert159 = or disjoint i32 %.sroa.8160.0.insert.insert165, %.sroa.10.0.insert.shift169
  %641 = tail call i32 @IsMatch(ptr noundef nonnull %0, i32 %.sroa.0153.0.insert.insert159, ptr noundef nonnull %568, i64 noundef %574)
  %.not801 = icmp eq i32 %641, 0
  br i1 %.not801, label %693, label %642, !llvm.loop !13

642:                                              ; preds = %640
  %643 = select i1 %.not800, i64 30, i64 85
  %644 = shl i64 %643, %585
  %645 = add i64 %644, %586
  %646 = add nuw nsw i64 %582, 1
  tail call void @AddMatch(i64 noundef %645, i64 noundef %646, i64 noundef %582, ptr noundef %4)
  %647 = add nuw nsw i64 %582, 2
  %.not802 = icmp ult i64 %647, %3
  br i1 %.not802, label %648, label %693, !llvm.loop !13

648:                                              ; preds = %642
  %649 = getelementptr inbounds i8, ptr %1, i64 %646
  %650 = load i8, ptr %649, align 1, !tbaa !9
  switch i8 %650, label %693 [
    i8 32, label %651
    i8 44, label %655
    i8 46, label %668
    i8 61, label %680
  ]

651:                                              ; preds = %648
  %652 = select i1 %.not800, i64 15, i64 83
  %653 = shl i64 %652, %585
  %654 = add i64 %653, %586
  tail call void @AddMatch(i64 noundef %654, i64 noundef %647, i64 noundef %582, ptr noundef %4)
  br label %693

655:                                              ; preds = %648
  br i1 %.not800, label %656, label %659

656:                                              ; preds = %655
  %657 = shl i64 109, %585
  %658 = add nuw i64 %657, %586
  tail call void @AddMatch(i64 noundef %658, i64 noundef %647, i64 noundef %582, ptr noundef %4)
  br label %659

659:                                              ; preds = %656, %655
  %660 = getelementptr inbounds i8, ptr %649, i64 1
  %661 = load i8, ptr %660, align 1, !tbaa !9
  %662 = icmp eq i8 %661, 32
  br i1 %662, label %663, label %693

663:                                              ; preds = %659
  %664 = select i1 %.not800, i64 65, i64 111
  %665 = shl i64 %664, %585
  %666 = add i64 %665, %586
  %667 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %666, i64 noundef %667, i64 noundef %582, ptr noundef %4)
  br label %693

668:                                              ; preds = %648
  %669 = select i1 %.not800, i64 96, i64 115
  %670 = shl i64 %669, %585
  %671 = add i64 %670, %586
  tail call void @AddMatch(i64 noundef %671, i64 noundef %647, i64 noundef %582, ptr noundef %4)
  %672 = getelementptr inbounds i8, ptr %649, i64 1
  %673 = load i8, ptr %672, align 1, !tbaa !9
  %674 = icmp eq i8 %673, 32
  br i1 %674, label %675, label %693

675:                                              ; preds = %668
  %676 = select i1 %.not800, i64 91, i64 117
  %677 = shl i64 %676, %585
  %678 = add i64 %677, %586
  %679 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %678, i64 noundef %679, i64 noundef %582, ptr noundef %4)
  br label %693

680:                                              ; preds = %648
  %681 = getelementptr inbounds i8, ptr %649, i64 1
  %682 = load i8, ptr %681, align 1, !tbaa !9
  switch i8 %682, label %693 [
    i8 34, label %683
    i8 39, label %688
  ]

683:                                              ; preds = %680
  %684 = select i1 %.not800, i64 118, i64 110
  %685 = shl i64 %684, %585
  %686 = add i64 %685, %586
  %687 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %686, i64 noundef %687, i64 noundef %582, ptr noundef %4)
  br label %693

688:                                              ; preds = %680
  %689 = select i1 %.not800, i64 120, i64 119
  %690 = shl i64 %689, %585
  %691 = add i64 %690, %586
  %692 = add nuw nsw i64 %582, 3
  tail call void @AddMatch(i64 noundef %691, i64 noundef %692, i64 noundef %582, ptr noundef %4)
  br label %693

693:                                              ; preds = %640, %642, %680, %648, %663, %659, %688, %683, %668, %675, %651, %590, %592, %628, %607, %603, %614, %608, %635, %631, %618, %624, %606, %600, %639
  %.11 = phi i32 [ %.7829, %639 ], [ %.7829, %590 ], [ 1, %592 ], [ 1, %628 ], [ 1, %607 ], [ 1, %603 ], [ 1, %614 ], [ 1, %608 ], [ 1, %635 ], [ 1, %631 ], [ 1, %618 ], [ 1, %624 ], [ 1, %606 ], [ 1, %600 ], [ %.7829, %640 ], [ 1, %642 ], [ 1, %680 ], [ 1, %648 ], [ 1, %663 ], [ 1, %659 ], [ 1, %688 ], [ 1, %683 ], [ 1, %668 ], [ 1, %675 ], [ 1, %651 ]
  br i1 %587, label %.loopexit, label %578

.loopexit:                                        ; preds = %693, %566, %564
  %.12 = phi i32 [ %.0.lcssa, %564 ], [ %.0.lcssa, %566 ], [ %.11, %693 ]
  %.not820 = icmp eq i64 %3, 5
  br i1 %.not820, label %.thread815, label %694

694:                                              ; preds = %.loopexit
  %695 = getelementptr inbounds i8, ptr %1, i64 1
  %696 = load i8, ptr %695, align 1, !tbaa !9
  %697 = icmp eq i8 %696, 32
  %698 = load i8, ptr %1, align 1, !tbaa !9
  br i1 %697, label %699, label %700

699:                                              ; preds = %694
  switch i8 %698, label %.thread814 [
    i8 101, label %703
    i8 115, label %703
    i8 44, label %703
  ]

700:                                              ; preds = %694
  %701 = icmp eq i8 %698, -62
  %702 = icmp eq i8 %696, -96
  %or.cond819 = and i1 %702, %701
  br i1 %or.cond819, label %703, label %.thread814

703:                                              ; preds = %700, %699, %699, %699
  %704 = getelementptr inbounds i8, ptr %1, i64 2
  %705 = tail call i32 @Hash(ptr noundef nonnull %704)
  %706 = zext i32 %705 to i64
  %707 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %706
  %708 = load i16, ptr %707, align 2, !tbaa !5
  %.not796 = icmp eq i16 %708, 0
  br i1 %.not796, label %.thread814, label %.lr.ph836

.lr.ph836:                                        ; preds = %703
  %709 = zext i16 %708 to i64
  %710 = add i64 %3, -2
  br label %711

711:                                              ; preds = %.lr.ph836, %742
  %.13834 = phi i32 [ %.12, %.lr.ph836 ], [ %.14, %742 ]
  %.0752833 = phi i64 [ %709, %.lr.ph836 ], [ %712, %742 ]
  %712 = add i64 %.0752833, 1
  %713 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %.0752833
  %.sroa.046.0.copyload = load i8, ptr %713, align 4, !tbaa !9
  %.sroa.749.0..sroa_idx = getelementptr inbounds i8, ptr %713, i64 1
  %.sroa.749.0.copyload = load i8, ptr %.sroa.749.0..sroa_idx, align 1, !tbaa !9
  %.sroa.850.0..sroa_idx = getelementptr inbounds i8, ptr %713, i64 2
  %.sroa.850.0.copyload = load i16, ptr %.sroa.850.0..sroa_idx, align 2, !tbaa !5
  %714 = and i8 %.sroa.046.0.copyload, 31
  %715 = zext nneg i8 %714 to i64
  %716 = getelementptr inbounds [32 x i8], ptr %0, i64 0, i64 %715
  %717 = load i8, ptr %716, align 1, !tbaa !9
  %718 = zext nneg i8 %717 to i64
  %719 = zext i16 %.sroa.850.0.copyload to i64
  %720 = icmp slt i8 %.sroa.046.0.copyload, 0
  %721 = icmp eq i8 %.sroa.749.0.copyload, 0
  br i1 %721, label %722, label %742

722:                                              ; preds = %711
  %.sroa.850.0.insert.ext = zext i16 %.sroa.850.0.copyload to i32
  %.sroa.850.0.insert.shift = shl nuw i32 %.sroa.850.0.insert.ext, 16
  %.sroa.046.0.insert.ext = zext nneg i8 %714 to i32
  %.sroa.046.0.insert.insert = or disjoint i32 %.sroa.850.0.insert.shift, %.sroa.046.0.insert.ext
  %723 = tail call i32 @IsMatch(ptr noundef nonnull %0, i32 %.sroa.046.0.insert.insert, ptr noundef nonnull %704, i64 noundef %710)
  %.not799 = icmp eq i32 %723, 0
  br i1 %.not799, label %742, label %724

724:                                              ; preds = %722
  %725 = load i8, ptr %1, align 1, !tbaa !9
  %726 = icmp eq i8 %725, -62
  br i1 %726, label %.sink.split, label %727

727:                                              ; preds = %724
  %728 = add nuw nsw i64 %715, 2
  %729 = icmp ult i64 %728, %3
  br i1 %729, label %730, label %742

730:                                              ; preds = %727
  %731 = getelementptr inbounds i8, ptr %1, i64 %728
  %732 = load i8, ptr %731, align 1, !tbaa !9
  %733 = icmp eq i8 %732, 32
  br i1 %733, label %734, label %742

734:                                              ; preds = %730
  %735 = icmp eq i8 %725, 101
  %736 = icmp eq i8 %725, 115
  %737 = select i1 %736, i64 7, i64 13
  %738 = select i1 %735, i64 18, i64 %737
  br label %.sink.split

.sink.split:                                      ; preds = %724, %734
  %.sink = phi i64 [ %738, %734 ], [ 102, %724 ]
  %.sink844 = phi i64 [ 3, %734 ], [ 2, %724 ]
  %739 = shl i64 %.sink, %718
  %740 = add i64 %739, %719
  %741 = add nuw nsw i64 %.sink844, %715
  tail call void @AddMatch(i64 noundef %740, i64 noundef %741, i64 noundef %715, ptr noundef %4)
  br label %742

742:                                              ; preds = %.sink.split, %730, %727, %722, %711
  %.14 = phi i32 [ %.13834, %730 ], [ %.13834, %727 ], [ %.13834, %722 ], [ %.13834, %711 ], [ 1, %.sink.split ]
  br i1 %720, label %.thread814, label %711, !llvm.loop !14

.thread814:                                       ; preds = %742, %703, %699, %700
  %.15 = phi i32 [ %.12, %700 ], [ %.12, %699 ], [ %.12, %703 ], [ %.14, %742 ]
  %743 = icmp ugt i64 %3, 8
  br i1 %743, label %744, label %.thread815

744:                                              ; preds = %.thread814
  %745 = load i8, ptr %1, align 1, !tbaa !9
  switch i8 %745, label %.thread815 [
    i8 32, label %746
    i8 46, label %761
  ]

746:                                              ; preds = %744
  %747 = load i8, ptr %695, align 1, !tbaa !9
  %748 = icmp eq i8 %747, 116
  br i1 %748, label %749, label %.thread815

749:                                              ; preds = %746
  %750 = getelementptr inbounds i8, ptr %1, i64 2
  %751 = load i8, ptr %750, align 1, !tbaa !9
  %752 = icmp eq i8 %751, 104
  br i1 %752, label %753, label %.thread815

753:                                              ; preds = %749
  %754 = getelementptr inbounds i8, ptr %1, i64 3
  %755 = load i8, ptr %754, align 1, !tbaa !9
  %756 = icmp eq i8 %755, 101
  br i1 %756, label %757, label %.thread815

757:                                              ; preds = %753
  %758 = getelementptr inbounds i8, ptr %1, i64 4
  %759 = load i8, ptr %758, align 1, !tbaa !9
  %760 = icmp eq i8 %759, 32
  br i1 %760, label %776, label %.thread815

761:                                              ; preds = %744
  %762 = load i8, ptr %695, align 1, !tbaa !9
  %763 = icmp eq i8 %762, 99
  br i1 %763, label %764, label %.thread815

764:                                              ; preds = %761
  %765 = getelementptr inbounds i8, ptr %1, i64 2
  %766 = load i8, ptr %765, align 1, !tbaa !9
  %767 = icmp eq i8 %766, 111
  br i1 %767, label %768, label %.thread815

768:                                              ; preds = %764
  %769 = getelementptr inbounds i8, ptr %1, i64 3
  %770 = load i8, ptr %769, align 1, !tbaa !9
  %771 = icmp eq i8 %770, 109
  br i1 %771, label %772, label %.thread815

772:                                              ; preds = %768
  %773 = getelementptr inbounds i8, ptr %1, i64 4
  %774 = load i8, ptr %773, align 1, !tbaa !9
  %775 = icmp eq i8 %774, 47
  br i1 %775, label %776, label %.thread815

776:                                              ; preds = %772, %757
  %777 = getelementptr inbounds i8, ptr %1, i64 5
  %778 = tail call i32 @Hash(ptr noundef nonnull %777)
  %779 = zext i32 %778 to i64
  %780 = getelementptr inbounds [32768 x i16], ptr @kStaticDictionaryBuckets, i64 0, i64 %779
  %781 = load i16, ptr %780, align 2, !tbaa !5
  %.not797 = icmp eq i16 %781, 0
  br i1 %.not797, label %.thread815, label %.lr.ph841

.lr.ph841:                                        ; preds = %776
  %782 = zext i16 %781 to i64
  %783 = add i64 %3, -5
  br label %784

784:                                              ; preds = %.lr.ph841, %852
  %.16839 = phi i32 [ %.15, %.lr.ph841 ], [ %.17, %852 ]
  %.0745838 = phi i64 [ %782, %.lr.ph841 ], [ %785, %852 ]
  %785 = add i64 %.0745838, 1
  %786 = getelementptr inbounds [31705 x %struct.DictWord], ptr @kStaticDictionaryWords, i64 0, i64 %.0745838
  %.sroa.0.0.copyload = load i8, ptr %786, align 4, !tbaa !9
  %.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %786, i64 1
  %.sroa.7.0.copyload = load i8, ptr %.sroa.7.0..sroa_idx, align 1, !tbaa !9
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %786, i64 2
  %.sroa.8.0.copyload = load i16, ptr %.sroa.8.0..sroa_idx, align 2, !tbaa !5
  %787 = and i8 %.sroa.0.0.copyload, 31
  %788 = zext nneg i8 %787 to i64
  %789 = getelementptr inbounds [32 x i8], ptr %0, i64 0, i64 %788
  %790 = load i8, ptr %789, align 1, !tbaa !9
  %791 = zext nneg i8 %790 to i64
  %792 = zext i16 %.sroa.8.0.copyload to i64
  %793 = icmp slt i8 %.sroa.0.0.copyload, 0
  %794 = icmp eq i8 %.sroa.7.0.copyload, 0
  br i1 %794, label %795, label %852

795:                                              ; preds = %784
  %.sroa.8.0.insert.ext = zext i16 %.sroa.8.0.copyload to i32
  %.sroa.8.0.insert.shift = shl nuw i32 %.sroa.8.0.insert.ext, 16
  %.sroa.0.0.insert.ext = zext nneg i8 %787 to i32
  %.sroa.0.0.insert.insert = or disjoint i32 %.sroa.8.0.insert.shift, %.sroa.0.0.insert.ext
  %796 = tail call i32 @IsMatch(ptr noundef nonnull %0, i32 %.sroa.0.0.insert.insert, ptr noundef nonnull %777, i64 noundef %783)
  %.not798 = icmp eq i32 %796, 0
  br i1 %.not798, label %852, label %797

797:                                              ; preds = %795
  %798 = load i8, ptr %1, align 1, !tbaa !9
  %799 = icmp eq i8 %798, 32
  %800 = select i1 %799, i64 41, i64 72
  %801 = shl i64 %800, %791
  %802 = add i64 %801, %792
  %803 = add nuw nsw i64 %788, 5
  tail call void @AddMatch(i64 noundef %802, i64 noundef %803, i64 noundef %788, ptr noundef %4)
  %804 = icmp ult i64 %803, %3
  br i1 %804, label %805, label %852

805:                                              ; preds = %797
  %806 = getelementptr inbounds i8, ptr %1, i64 %803
  %807 = load i8, ptr %1, align 1, !tbaa !9
  %808 = icmp eq i8 %807, 32
  %809 = add nuw nsw i64 %788, 8
  %810 = icmp ult i64 %809, %3
  %or.cond = select i1 %808, i1 %810, i1 false
  br i1 %or.cond, label %811, label %852

811:                                              ; preds = %805
  %812 = load i8, ptr %806, align 1, !tbaa !9
  %813 = icmp eq i8 %812, 32
  br i1 %813, label %814, label %852

814:                                              ; preds = %811
  %815 = getelementptr inbounds i8, ptr %806, i64 1
  %816 = load i8, ptr %815, align 1, !tbaa !9
  %817 = icmp eq i8 %816, 111
  br i1 %817, label %818, label %852

818:                                              ; preds = %814
  %819 = getelementptr inbounds i8, ptr %806, i64 2
  %820 = load i8, ptr %819, align 1, !tbaa !9
  %821 = icmp eq i8 %820, 102
  br i1 %821, label %822, label %852

822:                                              ; preds = %818
  %823 = getelementptr inbounds i8, ptr %806, i64 3
  %824 = load i8, ptr %823, align 1, !tbaa !9
  %825 = icmp eq i8 %824, 32
  br i1 %825, label %826, label %852

826:                                              ; preds = %822
  %827 = shl i64 62, %791
  %828 = add nuw i64 %827, %792
  %829 = add nuw nsw i64 %788, 9
  tail call void @AddMatch(i64 noundef %828, i64 noundef %829, i64 noundef %788, ptr noundef %4)
  %830 = add nuw nsw i64 %788, 12
  %831 = icmp ult i64 %830, %3
  br i1 %831, label %832, label %852

832:                                              ; preds = %826
  %833 = getelementptr inbounds i8, ptr %806, i64 4
  %834 = load i8, ptr %833, align 1, !tbaa !9
  %835 = icmp eq i8 %834, 116
  br i1 %835, label %836, label %852

836:                                              ; preds = %832
  %837 = getelementptr inbounds i8, ptr %806, i64 5
  %838 = load i8, ptr %837, align 1, !tbaa !9
  %839 = icmp eq i8 %838, 104
  br i1 %839, label %840, label %852

840:                                              ; preds = %836
  %841 = getelementptr inbounds i8, ptr %806, i64 6
  %842 = load i8, ptr %841, align 1, !tbaa !9
  %843 = icmp eq i8 %842, 101
  br i1 %843, label %844, label %852

844:                                              ; preds = %840
  %845 = getelementptr inbounds i8, ptr %806, i64 7
  %846 = load i8, ptr %845, align 1, !tbaa !9
  %847 = icmp eq i8 %846, 32
  br i1 %847, label %848, label %852

848:                                              ; preds = %844
  %849 = shl i64 73, %791
  %850 = add nuw i64 %849, %792
  %851 = add nuw nsw i64 %788, 13
  tail call void @AddMatch(i64 noundef %850, i64 noundef %851, i64 noundef %788, ptr noundef %4)
  br label %852

852:                                              ; preds = %805, %826, %832, %836, %840, %844, %848, %822, %818, %814, %811, %797, %795, %784
  %.17 = phi i32 [ 1, %797 ], [ %.16839, %795 ], [ %.16839, %784 ], [ 1, %811 ], [ 1, %814 ], [ 1, %818 ], [ 1, %822 ], [ 1, %848 ], [ 1, %844 ], [ 1, %840 ], [ 1, %836 ], [ 1, %832 ], [ 1, %826 ], [ 1, %805 ]
  br i1 %793, label %.thread815, label %784, !llvm.loop !15

.thread815:                                       ; preds = %852, %776, %744, %746, %749, %753, %757, %._crit_edge827, %.loopexit, %761, %764, %768, %772, %.thread814
  %.18 = phi i32 [ %.15, %772 ], [ %.15, %768 ], [ %.15, %764 ], [ %.15, %761 ], [ %.15, %.thread814 ], [ %.12, %.loopexit ], [ %.0.lcssa, %._crit_edge827 ], [ %.15, %757 ], [ %.15, %753 ], [ %.15, %749 ], [ %.15, %746 ], [ %.15, %744 ], [ %.15, %776 ], [ %.17, %852 ]
  ret i32 %.18
}

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i32 @Hash(ptr noundef) local_unnamed_addr #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i64 @DictMatchLength(ptr noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden void @AddMatch(i64 noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i64 @brotli_max_size_t(i64 noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i64 @brotli_min_size_t(i64 noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: alwaysinline nounwind uwtable
declare hidden i32 @IsMatch(ptr noundef, i32, ptr noundef, i64 noundef) local_unnamed_addr #1

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { alwaysinline 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" }

!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 = !{!"short", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = distinct !{!12, !11}
!13 = distinct !{!13, !11}
!14 = distinct !{!14, !11}
!15 = distinct !{!15, !11}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass