; LLVM IR from jan-van-bergen/GPU-Raytracer :: include/miniz (miniz)

; 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.tinfl_decompressor_tag = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [3 x i32], i64, i64, [3 x %struct.tinfl_huff_table], [4 x i8], [457 x i8] }
%struct.tinfl_huff_table = type { [288 x i8], [1024 x i16], [576 x i16] }

@.str.12 = external hidden unnamed_addr constant [84 x i8], align 1
@tinfl_decompress.s_length_base = external hidden constant [31 x i32], align 16
@tinfl_decompress.s_length_extra = external hidden constant [31 x i32], align 16
@tinfl_decompress.s_dist_base = external hidden constant [32 x i32], align 16
@tinfl_decompress.s_dist_extra = external hidden constant [32 x i32], align 16
@tinfl_decompress.s_length_dezigzag = external hidden constant [19 x i8], align 16
@tinfl_decompress.s_min_table_sizes = external hidden constant [3 x i32], align 4
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@__PRETTY_FUNCTION__.tinfl_decompress = external hidden unnamed_addr constant [131 x i8], align 1

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @tinfl_decompress(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i32 noundef %6) #2 {
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i64, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i64, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca [17 x i32], align 16
  %48 = alloca [16 x i32], align 16
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i16, align 2
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca ptr, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca ptr, align 8
  %77 = alloca i64, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i64, align 8
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store i32 %6, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  store i32 -1, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %82 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %82, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %83 = load ptr, ptr %10, align 8, !tbaa !5
  %84 = load ptr, ptr %11, align 8, !tbaa !5
  %85 = load i64, ptr %84, align 8, !tbaa !11
  %86 = getelementptr inbounds i8, ptr %83, i64 %85
  store ptr %86, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %87 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %87, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  %88 = load ptr, ptr %13, align 8, !tbaa !5
  %89 = load ptr, ptr %14, align 8, !tbaa !5
  %90 = load i64, ptr %89, align 8, !tbaa !11
  %91 = getelementptr inbounds i8, ptr %88, i64 %90
  store ptr %91, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %92 = load i32, ptr %15, align 4, !tbaa !9
  %93 = and i32 %92, 4
  %94 = icmp ne i32 %93, 0
  br i1 %94, label %95, label %96

95:                                               ; preds = %7
  br label %106

96:                                               ; preds = %7
  %97 = load ptr, ptr %13, align 8, !tbaa !5
  %98 = load ptr, ptr %12, align 8, !tbaa !5
  %99 = ptrtoint ptr %97 to i64
  %100 = ptrtoint ptr %98 to i64
  %101 = sub i64 %99, %100
  %102 = load ptr, ptr %14, align 8, !tbaa !5
  %103 = load i64, ptr %102, align 8, !tbaa !11
  %104 = add i64 %101, %103
  %105 = sub i64 %104, 1
  br label %106

106:                                              ; preds = %96, %95
  %107 = phi i64 [ -1, %95 ], [ %105, %96 ]
  store i64 %107, ptr %26, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %108 = load i64, ptr %26, align 8, !tbaa !11
  %109 = add i64 %108, 1
  %110 = load i64, ptr %26, align 8, !tbaa !11
  %111 = and i64 %109, %110
  %112 = icmp ne i64 %111, 0
  br i1 %112, label %117, label %113

113:                                              ; preds = %106
  %114 = load ptr, ptr %13, align 8, !tbaa !5
  %115 = load ptr, ptr %12, align 8, !tbaa !5
  %116 = icmp ult ptr %114, %115
  br i1 %116, label %117, label %120

117:                                              ; preds = %113, %106
  %118 = load ptr, ptr %14, align 8, !tbaa !5
  store i64 0, ptr %118, align 8, !tbaa !11
  %119 = load ptr, ptr %11, align 8, !tbaa !5
  store i64 0, ptr %119, align 8, !tbaa !11
  store i32 -3, ptr %8, align 4
  store i32 1, ptr %28, align 4
  br label %2942

120:                                              ; preds = %113
  %121 = load ptr, ptr %9, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %121, i32 0, i32 1
  %123 = load i32, ptr %122, align 4, !tbaa !13
  store i32 %123, ptr %17, align 4, !tbaa !9
  %124 = load ptr, ptr %9, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %124, i32 0, i32 12
  %126 = load i64, ptr %125, align 8, !tbaa !15
  store i64 %126, ptr %21, align 8, !tbaa !11
  %127 = load ptr, ptr %9, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %127, i32 0, i32 8
  %129 = load i32, ptr %128, align 8, !tbaa !16
  store i32 %129, ptr %18, align 4, !tbaa !9
  %130 = load ptr, ptr %9, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %130, i32 0, i32 9
  %132 = load i32, ptr %131, align 4, !tbaa !17
  store i32 %132, ptr %19, align 4, !tbaa !9
  %133 = load ptr, ptr %9, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %133, i32 0, i32 10
  %135 = load i32, ptr %134, align 8, !tbaa !18
  store i32 %135, ptr %20, align 4, !tbaa !9
  %136 = load ptr, ptr %9, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %136, i32 0, i32 13
  %138 = load i64, ptr %137, align 8, !tbaa !19
  store i64 %138, ptr %27, align 8, !tbaa !11
  %139 = load ptr, ptr %9, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %139, i32 0, i32 0
  %141 = load i32, ptr %140, align 8, !tbaa !20
  switch i32 %141, label %2723 [
    i32 0, label %142
    i32 1, label %169
    i32 2, label %195
    i32 36, label %268
    i32 3, label %295
    i32 5, label %362
    i32 6, label %425
    i32 7, label %478
    i32 39, label %529
    i32 51, label %563
    i32 52, label %604
    i32 9, label %627
    i32 38, label %644
    i32 10, label %732
    i32 11, label %828
    i32 14, label %936
    i32 35, label %1070
    i32 16, label %1341
    i32 17, label %1461
    i32 18, label %1493
    i32 21, label %1586
    i32 23, label %1734
    i32 24, label %1843
    i32 25, label %2023
    i32 26, label %2155
    i32 27, label %2283
    i32 37, label %2353
    i32 53, label %2395
    i32 32, label %2548
    i32 41, label %2641
    i32 42, label %2689
    i32 34, label %2718
  ]

142:                                              ; preds = %120
  %143 = load ptr, ptr %9, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %143, i32 0, i32 3
  store i32 0, ptr %144, align 4, !tbaa !21
  %145 = load ptr, ptr %9, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %145, i32 0, i32 2
  store i32 0, ptr %146, align 8, !tbaa !22
  store i32 0, ptr %20, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  store i32 0, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !11
  %147 = load ptr, ptr %9, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %147, i32 0, i32 7
  store i32 1, ptr %148, align 4, !tbaa !23
  %149 = load ptr, ptr %9, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %149, i32 0, i32 4
  store i32 1, ptr %150, align 8, !tbaa !24
  %151 = load i32, ptr %15, align 4, !tbaa !9
  %152 = and i32 %151, 1
  %153 = icmp ne i32 %152, 0
  br i1 %153, label %154, label %274

154:                                              ; preds = %142
  br label %155

155:                                              ; preds = %154
  br label %156

156:                                              ; preds = %171, %155
  %157 = load ptr, ptr %22, align 8, !tbaa !5
  %158 = load ptr, ptr %23, align 8, !tbaa !5
  %159 = icmp uge ptr %157, %158
  br i1 %159, label %160, label %172

160:                                              ; preds = %156
  br label %161

161:                                              ; preds = %160
  %162 = load i32, ptr %15, align 4, !tbaa !9
  %163 = and i32 %162, 2
  %164 = icmp ne i32 %163, 0
  %165 = zext i1 %164 to i64
  %166 = select i1 %164, i32 1, i32 -4
  store i32 %166, ptr %16, align 4, !tbaa !9
  %167 = load ptr, ptr %9, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %167, i32 0, i32 0
  store i32 1, ptr %168, align 8, !tbaa !20
  br label %2724

169:                                              ; preds = %120
  br label %170

170:                                              ; preds = %169
  br label %171

171:                                              ; preds = %170
  br label %156, !llvm.loop !25

172:                                              ; preds = %156
  %173 = load ptr, ptr %22, align 8, !tbaa !5
  %174 = getelementptr inbounds i8, ptr %173, i32 1
  store ptr %174, ptr %22, align 8, !tbaa !5
  %175 = load i8, ptr %173, align 1, !tbaa !27
  %176 = zext i8 %175 to i32
  %177 = load ptr, ptr %9, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %177, i32 0, i32 2
  store i32 %176, ptr %178, align 8, !tbaa !22
  br label %179

179:                                              ; preds = %172
  br label %180

180:                                              ; preds = %179
  br label %181

181:                                              ; preds = %180
  br label %182

182:                                              ; preds = %197, %181
  %183 = load ptr, ptr %22, align 8, !tbaa !5
  %184 = load ptr, ptr %23, align 8, !tbaa !5
  %185 = icmp uge ptr %183, %184
  br i1 %185, label %186, label %198

186:                                              ; preds = %182
  br label %187

187:                                              ; preds = %186
  %188 = load i32, ptr %15, align 4, !tbaa !9
  %189 = and i32 %188, 2
  %190 = icmp ne i32 %189, 0
  %191 = zext i1 %190 to i64
  %192 = select i1 %190, i32 1, i32 -4
  store i32 %192, ptr %16, align 4, !tbaa !9
  %193 = load ptr, ptr %9, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %193, i32 0, i32 0
  store i32 2, ptr %194, align 8, !tbaa !20
  br label %2724

195:                                              ; preds = %120
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  br label %182, !llvm.loop !28

198:                                              ; preds = %182
  %199 = load ptr, ptr %22, align 8, !tbaa !5
  %200 = getelementptr inbounds i8, ptr %199, i32 1
  store ptr %200, ptr %22, align 8, !tbaa !5
  %201 = load i8, ptr %199, align 1, !tbaa !27
  %202 = zext i8 %201 to i32
  %203 = load ptr, ptr %9, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %203, i32 0, i32 3
  store i32 %202, ptr %204, align 4, !tbaa !21
  br label %205

205:                                              ; preds = %198
  br label %206

206:                                              ; preds = %205
  %207 = load ptr, ptr %9, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %207, i32 0, i32 2
  %209 = load i32, ptr %208, align 8, !tbaa !22
  %210 = mul i32 %209, 256
  %211 = load ptr, ptr %9, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %211, i32 0, i32 3
  %213 = load i32, ptr %212, align 4, !tbaa !21
  %214 = add i32 %210, %213
  %215 = urem i32 %214, 31
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %229, label %217

217:                                              ; preds = %206
  %218 = load ptr, ptr %9, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %218, i32 0, i32 3
  %220 = load i32, ptr %219, align 4, !tbaa !21
  %221 = and i32 %220, 32
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %229, label %223

223:                                              ; preds = %217
  %224 = load ptr, ptr %9, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %224, i32 0, i32 2
  %226 = load i32, ptr %225, align 8, !tbaa !22
  %227 = and i32 %226, 15
  %228 = icmp ne i32 %227, 8
  br label %229

229:                                              ; preds = %223, %217, %206
  %230 = phi i1 [ true, %217 ], [ true, %206 ], [ %228, %223 ]
  %231 = zext i1 %230 to i32
  store i32 %231, ptr %19, align 4, !tbaa !9
  %232 = load i32, ptr %15, align 4, !tbaa !9
  %233 = and i32 %232, 4
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %259, label %235

235:                                              ; preds = %229
  %236 = load ptr, ptr %9, align 8, !tbaa !5
  %237 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %236, i32 0, i32 2
  %238 = load i32, ptr %237, align 8, !tbaa !22
  %239 = lshr i32 %238, 4
  %240 = add i32 8, %239
  %241 = shl i32 1, %240
  %242 = icmp ugt i32 %241, 32768
  br i1 %242, label %254, label %243

243:                                              ; preds = %235
  %244 = load i64, ptr %26, align 8, !tbaa !11
  %245 = add i64 %244, 1
  %246 = load ptr, ptr %9, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %246, i32 0, i32 2
  %248 = load i32, ptr %247, align 8, !tbaa !22
  %249 = lshr i32 %248, 4
  %250 = add i32 8, %249
  %251 = shl i32 1, %250
  %252 = zext i32 %251 to i64
  %253 = icmp ult i64 %245, %252
  br label %254

254:                                              ; preds = %243, %235
  %255 = phi i1 [ true, %235 ], [ %253, %243 ]
  %256 = zext i1 %255 to i32
  %257 = load i32, ptr %19, align 4, !tbaa !9
  %258 = or i32 %257, %256
  store i32 %258, ptr %19, align 4, !tbaa !9
  br label %259

259:                                              ; preds = %254, %229
  %260 = load i32, ptr %19, align 4, !tbaa !9
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %273

262:                                              ; preds = %259
  br label %263

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %270, %263
  br label %265

265:                                              ; preds = %264
  store i32 -1, ptr %16, align 4, !tbaa !9
  %266 = load ptr, ptr %9, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %266, i32 0, i32 0
  store i32 36, ptr %267, align 8, !tbaa !20
  br label %2724

268:                                              ; preds = %120
  br label %269

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269
  br label %264

271:                                              ; No predecessors!
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272, %259
  br label %274

274:                                              ; preds = %273, %142
  br label %275

275:                                              ; preds = %2519, %274
  br label %276

276:                                              ; preds = %275
  %277 = load i32, ptr %17, align 4, !tbaa !9
  %278 = icmp ult i32 %277, 3
  br i1 %278, label %279, label %318

279:                                              ; preds = %276
  br label %280

280:                                              ; preds = %314, %279
  br label %281

281:                                              ; preds = %280
  br label %282

282:                                              ; preds = %297, %281
  %283 = load ptr, ptr %22, align 8, !tbaa !5
  %284 = load ptr, ptr %23, align 8, !tbaa !5
  %285 = icmp uge ptr %283, %284
  br i1 %285, label %286, label %298

286:                                              ; preds = %282
  br label %287

287:                                              ; preds = %286
  %288 = load i32, ptr %15, align 4, !tbaa !9
  %289 = and i32 %288, 2
  %290 = icmp ne i32 %289, 0
  %291 = zext i1 %290 to i64
  %292 = select i1 %290, i32 1, i32 -4
  store i32 %292, ptr %16, align 4, !tbaa !9
  %293 = load ptr, ptr %9, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %293, i32 0, i32 0
  store i32 3, ptr %294, align 8, !tbaa !20
  br label %2724

295:                                              ; preds = %120
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %296
  br label %282, !llvm.loop !29

298:                                              ; preds = %282
  %299 = load ptr, ptr %22, align 8, !tbaa !5
  %300 = getelementptr inbounds i8, ptr %299, i32 1
  store ptr %300, ptr %22, align 8, !tbaa !5
  %301 = load i8, ptr %299, align 1, !tbaa !27
  %302 = zext i8 %301 to i32
  store i32 %302, ptr %29, align 4, !tbaa !9
  br label %303

303:                                              ; preds = %298
  br label %304

304:                                              ; preds = %303
  %305 = load i32, ptr %29, align 4, !tbaa !9
  %306 = zext i32 %305 to i64
  %307 = load i32, ptr %17, align 4, !tbaa !9
  %308 = zext i32 %307 to i64
  %309 = shl i64 %306, %308
  %310 = load i64, ptr %21, align 8, !tbaa !11
  %311 = or i64 %310, %309
  store i64 %311, ptr %21, align 8, !tbaa !11
  %312 = load i32, ptr %17, align 4, !tbaa !9
  %313 = add i32 %312, 8
  store i32 %313, ptr %17, align 4, !tbaa !9
  br label %314

314:                                              ; preds = %304
  %315 = load i32, ptr %17, align 4, !tbaa !9
  %316 = icmp ult i32 %315, 3
  br i1 %316, label %280, label %317, !llvm.loop !30

317:                                              ; preds = %314
  br label %318

318:                                              ; preds = %317, %276
  %319 = load i64, ptr %21, align 8, !tbaa !11
  %320 = and i64 %319, 7
  %321 = trunc i64 %320 to i32
  %322 = load ptr, ptr %9, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %322, i32 0, i32 5
  store i32 %321, ptr %323, align 4, !tbaa !31
  %324 = load i64, ptr %21, align 8, !tbaa !11
  %325 = lshr i64 %324, 3
  store i64 %325, ptr %21, align 8, !tbaa !11
  %326 = load i32, ptr %17, align 4, !tbaa !9
  %327 = sub i32 %326, 3
  store i32 %327, ptr %17, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %318
  br label %329

329:                                              ; preds = %328
  %330 = load ptr, ptr %9, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %330, i32 0, i32 5
  %332 = load i32, ptr %331, align 4, !tbaa !31
  %333 = lshr i32 %332, 1
  %334 = load ptr, ptr %9, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %334, i32 0, i32 6
  store i32 %333, ptr %335, align 8, !tbaa !32
  %336 = load ptr, ptr %9, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %336, i32 0, i32 6
  %338 = load i32, ptr %337, align 8, !tbaa !32
  %339 = icmp eq i32 %338, 0
  br i1 %339, label %340, label %721

340:                                              ; preds = %329
  br label %341

341:                                              ; preds = %340
  %342 = load i32, ptr %17, align 4, !tbaa !9
  %343 = load i32, ptr %17, align 4, !tbaa !9
  %344 = and i32 %343, 7
  %345 = icmp ult i32 %342, %344
  br i1 %345, label %346, label %387

346:                                              ; preds = %341
  br label %347

347:                                              ; preds = %381, %346
  br label %348

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %364, %348
  %350 = load ptr, ptr %22, align 8, !tbaa !5
  %351 = load ptr, ptr %23, align 8, !tbaa !5
  %352 = icmp uge ptr %350, %351
  br i1 %352, label %353, label %365

353:                                              ; preds = %349
  br label %354

354:                                              ; preds = %353
  %355 = load i32, ptr %15, align 4, !tbaa !9
  %356 = and i32 %355, 2
  %357 = icmp ne i32 %356, 0
  %358 = zext i1 %357 to i64
  %359 = select i1 %357, i32 1, i32 -4
  store i32 %359, ptr %16, align 4, !tbaa !9
  %360 = load ptr, ptr %9, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %360, i32 0, i32 0
  store i32 5, ptr %361, align 8, !tbaa !20
  br label %2724

362:                                              ; preds = %120
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  br label %349, !llvm.loop !33

365:                                              ; preds = %349
  %366 = load ptr, ptr %22, align 8, !tbaa !5
  %367 = getelementptr inbounds i8, ptr %366, i32 1
  store ptr %367, ptr %22, align 8, !tbaa !5
  %368 = load i8, ptr %366, align 1, !tbaa !27
  %369 = zext i8 %368 to i32
  store i32 %369, ptr %30, align 4, !tbaa !9
  br label %370

370:                                              ; preds = %365
  br label %371

371:                                              ; preds = %370
  %372 = load i32, ptr %30, align 4, !tbaa !9
  %373 = zext i32 %372 to i64
  %374 = load i32, ptr %17, align 4, !tbaa !9
  %375 = zext i32 %374 to i64
  %376 = shl i64 %373, %375
  %377 = load i64, ptr %21, align 8, !tbaa !11
  %378 = or i64 %377, %376
  store i64 %378, ptr %21, align 8, !tbaa !11
  %379 = load i32, ptr %17, align 4, !tbaa !9
  %380 = add i32 %379, 8
  store i32 %380, ptr %17, align 4, !tbaa !9
  br label %381

381:                                              ; preds = %371
  %382 = load i32, ptr %17, align 4, !tbaa !9
  %383 = load i32, ptr %17, align 4, !tbaa !9
  %384 = and i32 %383, 7
  %385 = icmp ult i32 %382, %384
  br i1 %385, label %347, label %386, !llvm.loop !34

386:                                              ; preds = %381
  br label %387

387:                                              ; preds = %386, %341
  %388 = load i32, ptr %17, align 4, !tbaa !9
  %389 = and i32 %388, 7
  %390 = load i64, ptr %21, align 8, !tbaa !11
  %391 = zext i32 %389 to i64
  %392 = lshr i64 %390, %391
  store i64 %392, ptr %21, align 8, !tbaa !11
  %393 = load i32, ptr %17, align 4, !tbaa !9
  %394 = and i32 %393, 7
  %395 = load i32, ptr %17, align 4, !tbaa !9
  %396 = sub i32 %395, %394
  store i32 %396, ptr %17, align 4, !tbaa !9
  br label %397

397:                                              ; preds = %387
  br label %398

398:                                              ; preds = %397
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %399

399:                                              ; preds = %493, %398
  %400 = load i32, ptr %19, align 4, !tbaa !9
  %401 = icmp ult i32 %400, 4
  br i1 %401, label %402, label %496

402:                                              ; preds = %399
  %403 = load i32, ptr %17, align 4, !tbaa !9
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %405, label %463

405:                                              ; preds = %402
  br label %406

406:                                              ; preds = %405
  %407 = load i32, ptr %17, align 4, !tbaa !9
  %408 = icmp ult i32 %407, 8
  br i1 %408, label %409, label %448

409:                                              ; preds = %406
  br label %410

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

411:                                              ; preds = %410
  br label %412

412:                                              ; preds = %427, %411
  %413 = load ptr, ptr %22, align 8, !tbaa !5
  %414 = load ptr, ptr %23, align 8, !tbaa !5
  %415 = icmp uge ptr %413, %414
  br i1 %415, label %416, label %428

416:                                              ; preds = %412
  br label %417

417:                                              ; preds = %416
  %418 = load i32, ptr %15, align 4, !tbaa !9
  %419 = and i32 %418, 2
  %420 = icmp ne i32 %419, 0
  %421 = zext i1 %420 to i64
  %422 = select i1 %420, i32 1, i32 -4
  store i32 %422, ptr %16, align 4, !tbaa !9
  %423 = load ptr, ptr %9, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %423, i32 0, i32 0
  store i32 6, ptr %424, align 8, !tbaa !20
  br label %2724

425:                                              ; preds = %120
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  br label %412, !llvm.loop !35

428:                                              ; preds = %412
  %429 = load ptr, ptr %22, align 8, !tbaa !5
  %430 = getelementptr inbounds i8, ptr %429, i32 1
  store ptr %430, ptr %22, align 8, !tbaa !5
  %431 = load i8, ptr %429, align 1, !tbaa !27
  %432 = zext i8 %431 to i32
  store i32 %432, ptr %31, align 4, !tbaa !9
  br label %433

433:                                              ; preds = %428
  br label %434

434:                                              ; preds = %433
  %435 = load i32, ptr %31, align 4, !tbaa !9
  %436 = zext i32 %435 to i64
  %437 = load i32, ptr %17, align 4, !tbaa !9
  %438 = zext i32 %437 to i64
  %439 = shl i64 %436, %438
  %440 = load i64, ptr %21, align 8, !tbaa !11
  %441 = or i64 %440, %439
  store i64 %441, ptr %21, align 8, !tbaa !11
  %442 = load i32, ptr %17, align 4, !tbaa !9
  %443 = add i32 %442, 8
  store i32 %443, ptr %17, align 4, !tbaa !9
  br label %444

444:                                              ; preds = %434
  %445 = load i32, ptr %17, align 4, !tbaa !9
  %446 = icmp ult i32 %445, 8
  br i1 %446, label %410, label %447, !llvm.loop !36

447:                                              ; preds = %444
  br label %448

448:                                              ; preds = %447, %406
  %449 = load i64, ptr %21, align 8, !tbaa !11
  %450 = and i64 %449, 255
  %451 = trunc i64 %450 to i8
  %452 = load ptr, ptr %9, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %452, i32 0, i32 15
  %454 = load i32, ptr %19, align 4, !tbaa !9
  %455 = zext i32 %454 to i64
  %456 = getelementptr inbounds [4 x i8], ptr %453, i64 0, i64 %455
  store i8 %451, ptr %456, align 1, !tbaa !27
  %457 = load i64, ptr %21, align 8, !tbaa !11
  %458 = lshr i64 %457, 8
  store i64 %458, ptr %21, align 8, !tbaa !11
  %459 = load i32, ptr %17, align 4, !tbaa !9
  %460 = sub i32 %459, 8
  store i32 %460, ptr %17, align 4, !tbaa !9
  br label %461

461:                                              ; preds = %448
  br label %462

462:                                              ; preds = %461
  br label %492

463:                                              ; preds = %402
  br label %464

464:                                              ; preds = %463
  br label %465

465:                                              ; preds = %480, %464
  %466 = load ptr, ptr %22, align 8, !tbaa !5
  %467 = load ptr, ptr %23, align 8, !tbaa !5
  %468 = icmp uge ptr %466, %467
  br i1 %468, label %469, label %481

469:                                              ; preds = %465
  br label %470

470:                                              ; preds = %469
  %471 = load i32, ptr %15, align 4, !tbaa !9
  %472 = and i32 %471, 2
  %473 = icmp ne i32 %472, 0
  %474 = zext i1 %473 to i64
  %475 = select i1 %473, i32 1, i32 -4
  store i32 %475, ptr %16, align 4, !tbaa !9
  %476 = load ptr, ptr %9, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %476, i32 0, i32 0
  store i32 7, ptr %477, align 8, !tbaa !20
  br label %2724

478:                                              ; preds = %120
  br label %479

479:                                              ; preds = %478
  br label %480

480:                                              ; preds = %479
  br label %465, !llvm.loop !37

481:                                              ; preds = %465
  %482 = load ptr, ptr %22, align 8, !tbaa !5
  %483 = getelementptr inbounds i8, ptr %482, i32 1
  store ptr %483, ptr %22, align 8, !tbaa !5
  %484 = load i8, ptr %482, align 1, !tbaa !27
  %485 = load ptr, ptr %9, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %485, i32 0, i32 15
  %487 = load i32, ptr %19, align 4, !tbaa !9
  %488 = zext i32 %487 to i64
  %489 = getelementptr inbounds [4 x i8], ptr %486, i64 0, i64 %488
  store i8 %484, ptr %489, align 1, !tbaa !27
  br label %490

490:                                              ; preds = %481
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491, %462
  br label %493

493:                                              ; preds = %492
  %494 = load i32, ptr %19, align 4, !tbaa !9
  %495 = add i32 %494, 1
  store i32 %495, ptr %19, align 4, !tbaa !9
  br label %399, !llvm.loop !38

496:                                              ; preds = %399
  %497 = load ptr, ptr %9, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %497, i32 0, i32 15
  %499 = getelementptr inbounds [4 x i8], ptr %498, i64 0, i64 0
  %500 = load i8, ptr %499, align 8, !tbaa !27
  %501 = zext i8 %500 to i32
  %502 = load ptr, ptr %9, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %502, i32 0, i32 15
  %504 = getelementptr inbounds [4 x i8], ptr %503, i64 0, i64 1
  %505 = load i8, ptr %504, align 1, !tbaa !27
  %506 = zext i8 %505 to i32
  %507 = shl i32 %506, 8
  %508 = or i32 %501, %507
  store i32 %508, ptr %19, align 4, !tbaa !9
  %509 = load ptr, ptr %9, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %509, i32 0, i32 15
  %511 = getelementptr inbounds [4 x i8], ptr %510, i64 0, i64 2
  %512 = load i8, ptr %511, align 2, !tbaa !27
  %513 = zext i8 %512 to i32
  %514 = load ptr, ptr %9, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %514, i32 0, i32 15
  %516 = getelementptr inbounds [4 x i8], ptr %515, i64 0, i64 3
  %517 = load i8, ptr %516, align 1, !tbaa !27
  %518 = zext i8 %517 to i32
  %519 = shl i32 %518, 8
  %520 = or i32 %513, %519
  %521 = xor i32 65535, %520
  %522 = icmp ne i32 %508, %521
  br i1 %522, label %523, label %534

523:                                              ; preds = %496
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %531, %524
  br label %526

526:                                              ; preds = %525
  store i32 -1, ptr %16, align 4, !tbaa !9
  %527 = load ptr, ptr %9, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %527, i32 0, i32 0
  store i32 39, ptr %528, align 8, !tbaa !20
  br label %2724

529:                                              ; preds = %120
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530
  br label %525

532:                                              ; No predecessors!
  br label %533

533:                                              ; preds = %532
  br label %534

534:                                              ; preds = %533, %496
  br label %535

535:                                              ; preds = %607, %534
  %536 = load i32, ptr %19, align 4, !tbaa !9
  %537 = icmp ne i32 %536, 0
  br i1 %537, label %538, label %541

538:                                              ; preds = %535
  %539 = load i32, ptr %17, align 4, !tbaa !9
  %540 = icmp ne i32 %539, 0
  br label %541

541:                                              ; preds = %538, %535
  %542 = phi i1 [ false, %535 ], [ %540, %538 ]
  br i1 %542, label %543, label %614

543:                                              ; preds = %541
  br label %544

544:                                              ; preds = %543
  %545 = load i32, ptr %17, align 4, !tbaa !9
  %546 = icmp ult i32 %545, 8
  br i1 %546, label %547, label %586

547:                                              ; preds = %544
  br label %548

548:                                              ; preds = %582, %547
  br label %549

549:                                              ; preds = %548
  br label %550

550:                                              ; preds = %565, %549
  %551 = load ptr, ptr %22, align 8, !tbaa !5
  %552 = load ptr, ptr %23, align 8, !tbaa !5
  %553 = icmp uge ptr %551, %552
  br i1 %553, label %554, label %566

554:                                              ; preds = %550
  br label %555

555:                                              ; preds = %554
  %556 = load i32, ptr %15, align 4, !tbaa !9
  %557 = and i32 %556, 2
  %558 = icmp ne i32 %557, 0
  %559 = zext i1 %558 to i64
  %560 = select i1 %558, i32 1, i32 -4
  store i32 %560, ptr %16, align 4, !tbaa !9
  %561 = load ptr, ptr %9, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %561, i32 0, i32 0
  store i32 51, ptr %562, align 8, !tbaa !20
  br label %2724

563:                                              ; preds = %120
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564
  br label %550, !llvm.loop !39

566:                                              ; preds = %550
  %567 = load ptr, ptr %22, align 8, !tbaa !5
  %568 = getelementptr inbounds i8, ptr %567, i32 1
  store ptr %568, ptr %22, align 8, !tbaa !5
  %569 = load i8, ptr %567, align 1, !tbaa !27
  %570 = zext i8 %569 to i32
  store i32 %570, ptr %32, align 4, !tbaa !9
  br label %571

571:                                              ; preds = %566
  br label %572

572:                                              ; preds = %571
  %573 = load i32, ptr %32, align 4, !tbaa !9
  %574 = zext i32 %573 to i64
  %575 = load i32, ptr %17, align 4, !tbaa !9
  %576 = zext i32 %575 to i64
  %577 = shl i64 %574, %576
  %578 = load i64, ptr %21, align 8, !tbaa !11
  %579 = or i64 %578, %577
  store i64 %579, ptr %21, align 8, !tbaa !11
  %580 = load i32, ptr %17, align 4, !tbaa !9
  %581 = add i32 %580, 8
  store i32 %581, ptr %17, align 4, !tbaa !9
  br label %582

582:                                              ; preds = %572
  %583 = load i32, ptr %17, align 4, !tbaa !9
  %584 = icmp ult i32 %583, 8
  br i1 %584, label %548, label %585, !llvm.loop !40

585:                                              ; preds = %582
  br label %586

586:                                              ; preds = %585, %544
  %587 = load i64, ptr %21, align 8, !tbaa !11
  %588 = and i64 %587, 255
  %589 = trunc i64 %588 to i32
  store i32 %589, ptr %18, align 4, !tbaa !9
  %590 = load i64, ptr %21, align 8, !tbaa !11
  %591 = lshr i64 %590, 8
  store i64 %591, ptr %21, align 8, !tbaa !11
  %592 = load i32, ptr %17, align 4, !tbaa !9
  %593 = sub i32 %592, 8
  store i32 %593, ptr %17, align 4, !tbaa !9
  br label %594

594:                                              ; preds = %586
  br label %595

595:                                              ; preds = %594
  br label %596

596:                                              ; preds = %606, %595
  %597 = load ptr, ptr %24, align 8, !tbaa !5
  %598 = load ptr, ptr %25, align 8, !tbaa !5
  %599 = icmp uge ptr %597, %598
  br i1 %599, label %600, label %607

600:                                              ; preds = %596
  br label %601

601:                                              ; preds = %600
  store i32 2, ptr %16, align 4, !tbaa !9
  %602 = load ptr, ptr %9, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %602, i32 0, i32 0
  store i32 52, ptr %603, align 8, !tbaa !20
  br label %2724

604:                                              ; preds = %120
  br label %605

605:                                              ; preds = %604
  br label %606

606:                                              ; preds = %605
  br label %596, !llvm.loop !41

607:                                              ; preds = %596
  %608 = load i32, ptr %18, align 4, !tbaa !9
  %609 = trunc i32 %608 to i8
  %610 = load ptr, ptr %24, align 8, !tbaa !5
  %611 = getelementptr inbounds i8, ptr %610, i32 1
  store ptr %611, ptr %24, align 8, !tbaa !5
  store i8 %609, ptr %610, align 1, !tbaa !27
  %612 = load i32, ptr %19, align 4, !tbaa !9
  %613 = add i32 %612, -1
  store i32 %613, ptr %19, align 4, !tbaa !9
  br label %535, !llvm.loop !42

614:                                              ; preds = %541
  br label %615

615:                                              ; preds = %705, %614
  %616 = load i32, ptr %19, align 4, !tbaa !9
  %617 = icmp ne i32 %616, 0
  br i1 %617, label %618, label %720

618:                                              ; preds = %615
  br label %619

619:                                              ; preds = %629, %618
  %620 = load ptr, ptr %24, align 8, !tbaa !5
  %621 = load ptr, ptr %25, align 8, !tbaa !5
  %622 = icmp uge ptr %620, %621
  br i1 %622, label %623, label %630

623:                                              ; preds = %619
  br label %624

624:                                              ; preds = %623
  store i32 2, ptr %16, align 4, !tbaa !9
  %625 = load ptr, ptr %9, align 8, !tbaa !5
  %626 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %625, i32 0, i32 0
  store i32 9, ptr %626, align 8, !tbaa !20
  br label %2724

627:                                              ; preds = %120
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628
  br label %619, !llvm.loop !43

630:                                              ; preds = %619
  br label %631

631:                                              ; preds = %646, %630
  %632 = load ptr, ptr %22, align 8, !tbaa !5
  %633 = load ptr, ptr %23, align 8, !tbaa !5
  %634 = icmp uge ptr %632, %633
  br i1 %634, label %635, label %647

635:                                              ; preds = %631
  br label %636

636:                                              ; preds = %635
  %637 = load i32, ptr %15, align 4, !tbaa !9
  %638 = and i32 %637, 2
  %639 = icmp ne i32 %638, 0
  %640 = zext i1 %639 to i64
  %641 = select i1 %639, i32 1, i32 -4
  store i32 %641, ptr %16, align 4, !tbaa !9
  %642 = load ptr, ptr %9, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %642, i32 0, i32 0
  store i32 38, ptr %643, align 8, !tbaa !20
  br label %2724

644:                                              ; preds = %120
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645
  br label %631, !llvm.loop !44

647:                                              ; preds = %631
  %648 = load ptr, ptr %25, align 8, !tbaa !5
  %649 = load ptr, ptr %24, align 8, !tbaa !5
  %650 = ptrtoint ptr %648 to i64
  %651 = ptrtoint ptr %649 to i64
  %652 = sub i64 %650, %651
  %653 = load ptr, ptr %23, align 8, !tbaa !5
  %654 = load ptr, ptr %22, align 8, !tbaa !5
  %655 = ptrtoint ptr %653 to i64
  %656 = ptrtoint ptr %654 to i64
  %657 = sub i64 %655, %656
  %658 = icmp ult i64 %652, %657
  br i1 %658, label %659, label %665

659:                                              ; preds = %647
  %660 = load ptr, ptr %25, align 8, !tbaa !5
  %661 = load ptr, ptr %24, align 8, !tbaa !5
  %662 = ptrtoint ptr %660 to i64
  %663 = ptrtoint ptr %661 to i64
  %664 = sub i64 %662, %663
  br label %671

665:                                              ; preds = %647
  %666 = load ptr, ptr %23, align 8, !tbaa !5
  %667 = load ptr, ptr %22, align 8, !tbaa !5
  %668 = ptrtoint ptr %666 to i64
  %669 = ptrtoint ptr %667 to i64
  %670 = sub i64 %668, %669
  br label %671

671:                                              ; preds = %665, %659
  %672 = phi i64 [ %664, %659 ], [ %670, %665 ]
  %673 = load i32, ptr %19, align 4, !tbaa !9
  %674 = zext i32 %673 to i64
  %675 = icmp ult i64 %672, %674
  br i1 %675, label %676, label %702

676:                                              ; preds = %671
  %677 = load ptr, ptr %25, align 8, !tbaa !5
  %678 = load ptr, ptr %24, align 8, !tbaa !5
  %679 = ptrtoint ptr %677 to i64
  %680 = ptrtoint ptr %678 to i64
  %681 = sub i64 %679, %680
  %682 = load ptr, ptr %23, align 8, !tbaa !5
  %683 = load ptr, ptr %22, align 8, !tbaa !5
  %684 = ptrtoint ptr %682 to i64
  %685 = ptrtoint ptr %683 to i64
  %686 = sub i64 %684, %685
  %687 = icmp ult i64 %681, %686
  br i1 %687, label %688, label %694

688:                                              ; preds = %676
  %689 = load ptr, ptr %25, align 8, !tbaa !5
  %690 = load ptr, ptr %24, align 8, !tbaa !5
  %691 = ptrtoint ptr %689 to i64
  %692 = ptrtoint ptr %690 to i64
  %693 = sub i64 %691, %692
  br label %700

694:                                              ; preds = %676
  %695 = load ptr, ptr %23, align 8, !tbaa !5
  %696 = load ptr, ptr %22, align 8, !tbaa !5
  %697 = ptrtoint ptr %695 to i64
  %698 = ptrtoint ptr %696 to i64
  %699 = sub i64 %697, %698
  br label %700

700:                                              ; preds = %694, %688
  %701 = phi i64 [ %693, %688 ], [ %699, %694 ]
  br label %705

702:                                              ; preds = %671
  %703 = load i32, ptr %19, align 4, !tbaa !9
  %704 = zext i32 %703 to i64
  br label %705

705:                                              ; preds = %702, %700
  %706 = phi i64 [ %701, %700 ], [ %704, %702 ]
  store i64 %706, ptr %33, align 8, !tbaa !11
  %707 = load ptr, ptr %24, align 8, !tbaa !5
  %708 = load ptr, ptr %22, align 8, !tbaa !5
  %709 = load i64, ptr %33, align 8, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %707, ptr align 1 %708, i64 %709, i1 false)
  %710 = load i64, ptr %33, align 8, !tbaa !11
  %711 = load ptr, ptr %22, align 8, !tbaa !5
  %712 = getelementptr inbounds i8, ptr %711, i64 %710
  store ptr %712, ptr %22, align 8, !tbaa !5
  %713 = load i64, ptr %33, align 8, !tbaa !11
  %714 = load ptr, ptr %24, align 8, !tbaa !5
  %715 = getelementptr inbounds i8, ptr %714, i64 %713
  store ptr %715, ptr %24, align 8, !tbaa !5
  %716 = load i64, ptr %33, align 8, !tbaa !11
  %717 = trunc i64 %716 to i32
  %718 = load i32, ptr %19, align 4, !tbaa !9
  %719 = sub i32 %718, %717
  store i32 %719, ptr %19, align 4, !tbaa !9
  br label %615, !llvm.loop !45

720:                                              ; preds = %615
  br label %2518

721:                                              ; preds = %329
  %722 = load ptr, ptr %9, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %722, i32 0, i32 6
  %724 = load i32, ptr %723, align 8, !tbaa !32
  %725 = icmp eq i32 %724, 3
  br i1 %725, label %726, label %737

726:                                              ; preds = %721
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %734, %727
  br label %729

729:                                              ; preds = %728
  store i32 -1, ptr %16, align 4, !tbaa !9
  %730 = load ptr, ptr %9, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %730, i32 0, i32 0
  store i32 10, ptr %731, align 8, !tbaa !20
  br label %2724

732:                                              ; preds = %120
  br label %733

733:                                              ; preds = %732
  br label %734

734:                                              ; preds = %733
  br label %728

735:                                              ; No predecessors!
  br label %736

736:                                              ; preds = %735
  br label %2517

737:                                              ; preds = %721
  %738 = load ptr, ptr %9, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %738, i32 0, i32 6
  %740 = load i32, ptr %739, align 8, !tbaa !32
  %741 = icmp eq i32 %740, 1
  br i1 %741, label %742, label %799

742:                                              ; preds = %737
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  %743 = load ptr, ptr %9, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %743, i32 0, i32 14
  %745 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %744, i64 0, i64 0
  %746 = getelementptr inbounds %struct.tinfl_huff_table, ptr %745, i32 0, i32 0
  %747 = getelementptr inbounds [288 x i8], ptr %746, i64 0, i64 0
  store ptr %747, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  %748 = load ptr, ptr %9, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %748, i32 0, i32 11
  %750 = getelementptr inbounds [3 x i32], ptr %749, i64 0, i64 0
  store i32 288, ptr %750, align 4, !tbaa !9
  %751 = load ptr, ptr %9, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %751, i32 0, i32 11
  %753 = getelementptr inbounds [3 x i32], ptr %752, i64 0, i64 1
  store i32 32, ptr %753, align 4, !tbaa !9
  %754 = load ptr, ptr %9, align 8, !tbaa !5
  %755 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %754, i32 0, i32 14
  %756 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %755, i64 0, i64 1
  %757 = getelementptr inbounds %struct.tinfl_huff_table, ptr %756, i32 0, i32 0
  %758 = getelementptr inbounds [288 x i8], ptr %757, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 8 %758, i8 5, i64 32, i1 false)
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %759

759:                                              ; preds = %765, %742
  %760 = load i32, ptr %35, align 4, !tbaa !9
  %761 = icmp ule i32 %760, 143
  br i1 %761, label %762, label %768

762:                                              ; preds = %759
  %763 = load ptr, ptr %34, align 8, !tbaa !5
  %764 = getelementptr inbounds i8, ptr %763, i32 1
  store ptr %764, ptr %34, align 8, !tbaa !5
  store i8 8, ptr %763, align 1, !tbaa !27
  br label %765

765:                                              ; preds = %762
  %766 = load i32, ptr %35, align 4, !tbaa !9
  %767 = add i32 %766, 1
  store i32 %767, ptr %35, align 4, !tbaa !9
  br label %759, !llvm.loop !46

768:                                              ; preds = %759
  br label %769

769:                                              ; preds = %775, %768
  %770 = load i32, ptr %35, align 4, !tbaa !9
  %771 = icmp ule i32 %770, 255
  br i1 %771, label %772, label %778

772:                                              ; preds = %769
  %773 = load ptr, ptr %34, align 8, !tbaa !5
  %774 = getelementptr inbounds i8, ptr %773, i32 1
  store ptr %774, ptr %34, align 8, !tbaa !5
  store i8 9, ptr %773, align 1, !tbaa !27
  br label %775

775:                                              ; preds = %772
  %776 = load i32, ptr %35, align 4, !tbaa !9
  %777 = add i32 %776, 1
  store i32 %777, ptr %35, align 4, !tbaa !9
  br label %769, !llvm.loop !47

778:                                              ; preds = %769
  br label %779

779:                                              ; preds = %785, %778
  %780 = load i32, ptr %35, align 4, !tbaa !9
  %781 = icmp ule i32 %780, 279
  br i1 %781, label %782, label %788

782:                                              ; preds = %779
  %783 = load ptr, ptr %34, align 8, !tbaa !5
  %784 = getelementptr inbounds i8, ptr %783, i32 1
  store ptr %784, ptr %34, align 8, !tbaa !5
  store i8 7, ptr %783, align 1, !tbaa !27
  br label %785

785:                                              ; preds = %782
  %786 = load i32, ptr %35, align 4, !tbaa !9
  %787 = add i32 %786, 1
  store i32 %787, ptr %35, align 4, !tbaa !9
  br label %779, !llvm.loop !48

788:                                              ; preds = %779
  br label %789

789:                                              ; preds = %795, %788
  %790 = load i32, ptr %35, align 4, !tbaa !9
  %791 = icmp ule i32 %790, 287
  br i1 %791, label %792, label %798

792:                                              ; preds = %789
  %793 = load ptr, ptr %34, align 8, !tbaa !5
  %794 = getelementptr inbounds i8, ptr %793, i32 1
  store ptr %794, ptr %34, align 8, !tbaa !5
  store i8 8, ptr %793, align 1, !tbaa !27
  br label %795

795:                                              ; preds = %792
  %796 = load i32, ptr %35, align 4, !tbaa !9
  %797 = add i32 %796, 1
  store i32 %797, ptr %35, align 4, !tbaa !9
  br label %789, !llvm.loop !49

798:                                              ; preds = %789
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  br label %988

799:                                              ; preds = %737
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %800

800:                                              ; preds = %901, %799
  %801 = load i32, ptr %19, align 4, !tbaa !9
  %802 = icmp ult i32 %801, 3
  br i1 %802, label %803, label %904

803:                                              ; preds = %800
  br label %804

804:                                              ; preds = %803
  %805 = load i32, ptr %17, align 4, !tbaa !9
  %806 = load i32, ptr %19, align 4, !tbaa !9
  %807 = zext i32 %806 to i64
  %808 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %807
  %809 = load i8, ptr %808, align 1, !tbaa !27
  %810 = sext i8 %809 to i32
  %811 = icmp ult i32 %805, %810
  br i1 %811, label %812, label %856

812:                                              ; preds = %804
  br label %813

813:                                              ; preds = %847, %812
  br label %814

814:                                              ; preds = %813
  br label %815

815:                                              ; preds = %830, %814
  %816 = load ptr, ptr %22, align 8, !tbaa !5
  %817 = load ptr, ptr %23, align 8, !tbaa !5
  %818 = icmp uge ptr %816, %817
  br i1 %818, label %819, label %831

819:                                              ; preds = %815
  br label %820

820:                                              ; preds = %819
  %821 = load i32, ptr %15, align 4, !tbaa !9
  %822 = and i32 %821, 2
  %823 = icmp ne i32 %822, 0
  %824 = zext i1 %823 to i64
  %825 = select i1 %823, i32 1, i32 -4
  store i32 %825, ptr %16, align 4, !tbaa !9
  %826 = load ptr, ptr %9, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %826, i32 0, i32 0
  store i32 11, ptr %827, align 8, !tbaa !20
  br label %2724

828:                                              ; preds = %120
  br label %829

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  br label %815, !llvm.loop !50

831:                                              ; preds = %815
  %832 = load ptr, ptr %22, align 8, !tbaa !5
  %833 = getelementptr inbounds i8, ptr %832, i32 1
  store ptr %833, ptr %22, align 8, !tbaa !5
  %834 = load i8, ptr %832, align 1, !tbaa !27
  %835 = zext i8 %834 to i32
  store i32 %835, ptr %36, align 4, !tbaa !9
  br label %836

836:                                              ; preds = %831
  br label %837

837:                                              ; preds = %836
  %838 = load i32, ptr %36, align 4, !tbaa !9
  %839 = zext i32 %838 to i64
  %840 = load i32, ptr %17, align 4, !tbaa !9
  %841 = zext i32 %840 to i64
  %842 = shl i64 %839, %841
  %843 = load i64, ptr %21, align 8, !tbaa !11
  %844 = or i64 %843, %842
  store i64 %844, ptr %21, align 8, !tbaa !11
  %845 = load i32, ptr %17, align 4, !tbaa !9
  %846 = add i32 %845, 8
  store i32 %846, ptr %17, align 4, !tbaa !9
  br label %847

847:                                              ; preds = %837
  %848 = load i32, ptr %17, align 4, !tbaa !9
  %849 = load i32, ptr %19, align 4, !tbaa !9
  %850 = zext i32 %849 to i64
  %851 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %850
  %852 = load i8, ptr %851, align 1, !tbaa !27
  %853 = sext i8 %852 to i32
  %854 = icmp ult i32 %848, %853
  br i1 %854, label %813, label %855, !llvm.loop !51

855:                                              ; preds = %847
  br label %856

856:                                              ; preds = %855, %804
  %857 = load i64, ptr %21, align 8, !tbaa !11
  %858 = load i32, ptr %19, align 4, !tbaa !9
  %859 = zext i32 %858 to i64
  %860 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %859
  %861 = load i8, ptr %860, align 1, !tbaa !27
  %862 = sext i8 %861 to i32
  %863 = shl i32 1, %862
  %864 = sub nsw i32 %863, 1
  %865 = sext i32 %864 to i64
  %866 = and i64 %857, %865
  %867 = trunc i64 %866 to i32
  %868 = load ptr, ptr %9, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %868, i32 0, i32 11
  %870 = load i32, ptr %19, align 4, !tbaa !9
  %871 = zext i32 %870 to i64
  %872 = getelementptr inbounds [3 x i32], ptr %869, i64 0, i64 %871
  store i32 %867, ptr %872, align 4, !tbaa !9
  %873 = load i32, ptr %19, align 4, !tbaa !9
  %874 = zext i32 %873 to i64
  %875 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %874
  %876 = load i8, ptr %875, align 1, !tbaa !27
  %877 = sext i8 %876 to i32
  %878 = load i64, ptr %21, align 8, !tbaa !11
  %879 = zext i32 %877 to i64
  %880 = lshr i64 %878, %879
  store i64 %880, ptr %21, align 8, !tbaa !11
  %881 = load i32, ptr %19, align 4, !tbaa !9
  %882 = zext i32 %881 to i64
  %883 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %882
  %884 = load i8, ptr %883, align 1, !tbaa !27
  %885 = sext i8 %884 to i32
  %886 = load i32, ptr %17, align 4, !tbaa !9
  %887 = sub i32 %886, %885
  store i32 %887, ptr %17, align 4, !tbaa !9
  br label %888

888:                                              ; preds = %856
  br label %889

889:                                              ; preds = %888
  %890 = load i32, ptr %19, align 4, !tbaa !9
  %891 = zext i32 %890 to i64
  %892 = getelementptr inbounds [3 x i32], ptr @tinfl_decompress.s_min_table_sizes, i64 0, i64 %891
  %893 = load i32, ptr %892, align 4, !tbaa !9
  %894 = load ptr, ptr %9, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %894, i32 0, i32 11
  %896 = load i32, ptr %19, align 4, !tbaa !9
  %897 = zext i32 %896 to i64
  %898 = getelementptr inbounds [3 x i32], ptr %895, i64 0, i64 %897
  %899 = load i32, ptr %898, align 4, !tbaa !9
  %900 = add i32 %899, %893
  store i32 %900, ptr %898, align 4, !tbaa !9
  br label %901

901:                                              ; preds = %889
  %902 = load i32, ptr %19, align 4, !tbaa !9
  %903 = add i32 %902, 1
  store i32 %903, ptr %19, align 4, !tbaa !9
  br label %800, !llvm.loop !52

904:                                              ; preds = %800
  %905 = load ptr, ptr %9, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %905, i32 0, i32 14
  %907 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %906, i64 0, i64 2
  %908 = getelementptr inbounds %struct.tinfl_huff_table, ptr %907, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 8 %908, i8 0, i64 288, i1 false)
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %909

909:                                              ; preds = %981, %904
  %910 = load i32, ptr %19, align 4, !tbaa !9
  %911 = load ptr, ptr %9, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %911, i32 0, i32 11
  %913 = getelementptr inbounds [3 x i32], ptr %912, i64 0, i64 2
  %914 = load i32, ptr %913, align 4, !tbaa !9
  %915 = icmp ult i32 %910, %914
  br i1 %915, label %916, label %984

916:                                              ; preds = %909
  br label %917

917:                                              ; preds = %916
  %918 = load i32, ptr %17, align 4, !tbaa !9
  %919 = icmp ult i32 %918, 3
  br i1 %919, label %920, label %959

920:                                              ; preds = %917
  br label %921

921:                                              ; preds = %955, %920
  br label %922

922:                                              ; preds = %921
  br label %923

923:                                              ; preds = %938, %922
  %924 = load ptr, ptr %22, align 8, !tbaa !5
  %925 = load ptr, ptr %23, align 8, !tbaa !5
  %926 = icmp uge ptr %924, %925
  br i1 %926, label %927, label %939

927:                                              ; preds = %923
  br label %928

928:                                              ; preds = %927
  %929 = load i32, ptr %15, align 4, !tbaa !9
  %930 = and i32 %929, 2
  %931 = icmp ne i32 %930, 0
  %932 = zext i1 %931 to i64
  %933 = select i1 %931, i32 1, i32 -4
  store i32 %933, ptr %16, align 4, !tbaa !9
  %934 = load ptr, ptr %9, align 8, !tbaa !5
  %935 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %934, i32 0, i32 0
  store i32 14, ptr %935, align 8, !tbaa !20
  br label %2724

936:                                              ; preds = %120
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  br label %923, !llvm.loop !53

939:                                              ; preds = %923
  %940 = load ptr, ptr %22, align 8, !tbaa !5
  %941 = getelementptr inbounds i8, ptr %940, i32 1
  store ptr %941, ptr %22, align 8, !tbaa !5
  %942 = load i8, ptr %940, align 1, !tbaa !27
  %943 = zext i8 %942 to i32
  store i32 %943, ptr %38, align 4, !tbaa !9
  br label %944

944:                                              ; preds = %939
  br label %945

945:                                              ; preds = %944
  %946 = load i32, ptr %38, align 4, !tbaa !9
  %947 = zext i32 %946 to i64
  %948 = load i32, ptr %17, align 4, !tbaa !9
  %949 = zext i32 %948 to i64
  %950 = shl i64 %947, %949
  %951 = load i64, ptr %21, align 8, !tbaa !11
  %952 = or i64 %951, %950
  store i64 %952, ptr %21, align 8, !tbaa !11
  %953 = load i32, ptr %17, align 4, !tbaa !9
  %954 = add i32 %953, 8
  store i32 %954, ptr %17, align 4, !tbaa !9
  br label %955

955:                                              ; preds = %945
  %956 = load i32, ptr %17, align 4, !tbaa !9
  %957 = icmp ult i32 %956, 3
  br i1 %957, label %921, label %958, !llvm.loop !54

958:                                              ; preds = %955
  br label %959

959:                                              ; preds = %958, %917
  %960 = load i64, ptr %21, align 8, !tbaa !11
  %961 = and i64 %960, 7
  %962 = trunc i64 %961 to i32
  store i32 %962, ptr %37, align 4, !tbaa !9
  %963 = load i64, ptr %21, align 8, !tbaa !11
  %964 = lshr i64 %963, 3
  store i64 %964, ptr %21, align 8, !tbaa !11
  %965 = load i32, ptr %17, align 4, !tbaa !9
  %966 = sub i32 %965, 3
  store i32 %966, ptr %17, align 4, !tbaa !9
  br label %967

967:                                              ; preds = %959
  br label %968

968:                                              ; preds = %967
  %969 = load i32, ptr %37, align 4, !tbaa !9
  %970 = trunc i32 %969 to i8
  %971 = load ptr, ptr %9, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %971, i32 0, i32 14
  %973 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %972, i64 0, i64 2
  %974 = getelementptr inbounds %struct.tinfl_huff_table, ptr %973, i32 0, i32 0
  %975 = load i32, ptr %19, align 4, !tbaa !9
  %976 = zext i32 %975 to i64
  %977 = getelementptr inbounds [19 x i8], ptr @tinfl_decompress.s_length_dezigzag, i64 0, i64 %976
  %978 = load i8, ptr %977, align 1, !tbaa !27
  %979 = zext i8 %978 to i64
  %980 = getelementptr inbounds [288 x i8], ptr %974, i64 0, i64 %979
  store i8 %970, ptr %980, align 1, !tbaa !27
  br label %981

981:                                              ; preds = %968
  %982 = load i32, ptr %19, align 4, !tbaa !9
  %983 = add i32 %982, 1
  store i32 %983, ptr %19, align 4, !tbaa !9
  br label %909, !llvm.loop !55

984:                                              ; preds = %909
  %985 = load ptr, ptr %9, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %985, i32 0, i32 11
  %987 = getelementptr inbounds [3 x i32], ptr %986, i64 0, i64 2
  store i32 19, ptr %987, align 4, !tbaa !9
  br label %988

988:                                              ; preds = %984, %798
  br label %989

989:                                              ; preds = %1625, %988
  %990 = load ptr, ptr %9, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %990, i32 0, i32 6
  %992 = load i32, ptr %991, align 8, !tbaa !32
  %993 = icmp sge i32 %992, 0
  br i1 %993, label %994, label %1630

994:                                              ; preds = %989
  %995 = load ptr, ptr %9, align 8, !tbaa !5
  %996 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %995, i32 0, i32 14
  %997 = load ptr, ptr %9, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %997, i32 0, i32 6
  %999 = load i32, ptr %998, align 8, !tbaa !32
  %1000 = zext i32 %999 to i64
  %1001 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %996, i64 0, i64 %1000
  store ptr %1001, ptr %41, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 16 %48, i8 0, i64 64, i1 false)
  %1002 = load ptr, ptr %41, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1002, i32 0, i32 1
  call void @llvm.memset.p0.i64(ptr align 2 %1003, i8 0, i64 2048, i1 false)
  %1004 = load ptr, ptr %41, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1004, i32 0, i32 2
  call void @llvm.memset.p0.i64(ptr align 2 %1005, i8 0, i64 1152, i1 false)
  store i32 0, ptr %42, align 4, !tbaa !9
  br label %1006

1006:                                             ; preds = %1028, %994
  %1007 = load i32, ptr %42, align 4, !tbaa !9
  %1008 = load ptr, ptr %9, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1008, i32 0, i32 11
  %1010 = load ptr, ptr %9, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1010, i32 0, i32 6
  %1012 = load i32, ptr %1011, align 8, !tbaa !32
  %1013 = zext i32 %1012 to i64
  %1014 = getelementptr inbounds [3 x i32], ptr %1009, i64 0, i64 %1013
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  %1016 = icmp ult i32 %1007, %1015
  br i1 %1016, label %1017, label %1031

1017:                                             ; preds = %1006
  %1018 = load ptr, ptr %41, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1018, i32 0, i32 0
  %1020 = load i32, ptr %42, align 4, !tbaa !9
  %1021 = zext i32 %1020 to i64
  %1022 = getelementptr inbounds [288 x i8], ptr %1019, i64 0, i64 %1021
  %1023 = load i8, ptr %1022, align 1, !tbaa !27
  %1024 = zext i8 %1023 to i64
  %1025 = getelementptr inbounds [16 x i32], ptr %48, i64 0, i64 %1024
  %1026 = load i32, ptr %1025, align 4, !tbaa !9
  %1027 = add i32 %1026, 1
  store i32 %1027, ptr %1025, align 4, !tbaa !9
  br label %1028

1028:                                             ; preds = %1017
  %1029 = load i32, ptr %42, align 4, !tbaa !9
  %1030 = add i32 %1029, 1
  store i32 %1030, ptr %42, align 4, !tbaa !9
  br label %1006, !llvm.loop !56

1031:                                             ; preds = %1006
  store i32 0, ptr %44, align 4, !tbaa !9
  store i32 0, ptr %45, align 4, !tbaa !9
  %1032 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 1
  store i32 0, ptr %1032, align 4, !tbaa !9
  %1033 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 0
  store i32 0, ptr %1033, align 16, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1034

1034:                                             ; preds = %1055, %1031
  %1035 = load i32, ptr %42, align 4, !tbaa !9
  %1036 = icmp ule i32 %1035, 15
  br i1 %1036, label %1037, label %1058

1037:                                             ; preds = %1034
  %1038 = load i32, ptr %42, align 4, !tbaa !9
  %1039 = zext i32 %1038 to i64
  %1040 = getelementptr inbounds [16 x i32], ptr %48, i64 0, i64 %1039
  %1041 = load i32, ptr %1040, align 4, !tbaa !9
  %1042 = load i32, ptr %44, align 4, !tbaa !9
  %1043 = add i32 %1042, %1041
  store i32 %1043, ptr %44, align 4, !tbaa !9
  %1044 = load i32, ptr %45, align 4, !tbaa !9
  %1045 = load i32, ptr %42, align 4, !tbaa !9
  %1046 = zext i32 %1045 to i64
  %1047 = getelementptr inbounds [16 x i32], ptr %48, i64 0, i64 %1046
  %1048 = load i32, ptr %1047, align 4, !tbaa !9
  %1049 = add i32 %1044, %1048
  %1050 = shl i32 %1049, 1
  store i32 %1050, ptr %45, align 4, !tbaa !9
  %1051 = load i32, ptr %42, align 4, !tbaa !9
  %1052 = add i32 %1051, 1
  %1053 = zext i32 %1052 to i64
  %1054 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 %1053
  store i32 %1050, ptr %1054, align 4, !tbaa !9
  br label %1055

1055:                                             ; preds = %1037
  %1056 = load i32, ptr %42, align 4, !tbaa !9
  %1057 = add i32 %1056, 1
  store i32 %1057, ptr %42, align 4, !tbaa !9
  br label %1034, !llvm.loop !57

1058:                                             ; preds = %1034
  %1059 = load i32, ptr %45, align 4, !tbaa !9
  %1060 = icmp ne i32 65536, %1059
  br i1 %1060, label %1061, label %1075

1061:                                             ; preds = %1058
  %1062 = load i32, ptr %44, align 4, !tbaa !9
  %1063 = icmp ugt i32 %1062, 1
  br i1 %1063, label %1064, label %1075

1064:                                             ; preds = %1061
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1072, %1065
  br label %1067

1067:                                             ; preds = %1066
  store i32 -1, ptr %16, align 4, !tbaa !9
  %1068 = load ptr, ptr %9, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1068, i32 0, i32 0
  store i32 35, ptr %1069, align 8, !tbaa !20
  br label %2724

1070:                                             ; preds = %120
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

1072:                                             ; preds = %1071
  br label %1066

1073:                                             ; No predecessors!
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074, %1061, %1058
  store i32 -1, ptr %39, align 4, !tbaa !9
  store i32 0, ptr %46, align 4, !tbaa !9
  br label %1076

1076:                                             ; preds = %1232, %1075
  %1077 = load i32, ptr %46, align 4, !tbaa !9
  %1078 = load ptr, ptr %9, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1078, i32 0, i32 11
  %1080 = load ptr, ptr %9, align 8, !tbaa !5
  %1081 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1080, i32 0, i32 6
  %1082 = load i32, ptr %1081, align 8, !tbaa !32
  %1083 = zext i32 %1082 to i64
  %1084 = getelementptr inbounds [3 x i32], ptr %1079, i64 0, i64 %1083
  %1085 = load i32, ptr %1084, align 4, !tbaa !9
  %1086 = icmp ult i32 %1077, %1085
  br i1 %1086, label %1087, label %1235

1087:                                             ; preds = %1076
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  store i32 0, ptr %49, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #5
  %1088 = load ptr, ptr %41, align 8, !tbaa !5
  %1089 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1088, i32 0, i32 0
  %1090 = load i32, ptr %46, align 4, !tbaa !9
  %1091 = zext i32 %1090 to i64
  %1092 = getelementptr inbounds [288 x i8], ptr %1089, i64 0, i64 %1091
  %1093 = load i8, ptr %1092, align 1, !tbaa !27
  %1094 = zext i8 %1093 to i32
  store i32 %1094, ptr %52, align 4, !tbaa !9
  %1095 = load i32, ptr %52, align 4, !tbaa !9
  %1096 = icmp ne i32 %1095, 0
  br i1 %1096, label %1098, label %1097

1097:                                             ; preds = %1087
  store i32 156, ptr %28, align 4
  br label %1229

1098:                                             ; preds = %1087
  %1099 = load i32, ptr %52, align 4, !tbaa !9
  %1100 = zext i32 %1099 to i64
  %1101 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 %1100
  %1102 = load i32, ptr %1101, align 4, !tbaa !9
  %1103 = add i32 %1102, 1
  store i32 %1103, ptr %1101, align 4, !tbaa !9
  store i32 %1102, ptr %51, align 4, !tbaa !9
  %1104 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %1104, ptr %50, align 4, !tbaa !9
  br label %1105

1105:                                             ; preds = %1114, %1098
  %1106 = load i32, ptr %50, align 4, !tbaa !9
  %1107 = icmp ugt i32 %1106, 0
  br i1 %1107, label %1108, label %1119

1108:                                             ; preds = %1105
  %1109 = load i32, ptr %49, align 4, !tbaa !9
  %1110 = shl i32 %1109, 1
  %1111 = load i32, ptr %51, align 4, !tbaa !9
  %1112 = and i32 %1111, 1
  %1113 = or i32 %1110, %1112
  store i32 %1113, ptr %49, align 4, !tbaa !9
  br label %1114

1114:                                             ; preds = %1108
  %1115 = load i32, ptr %50, align 4, !tbaa !9
  %1116 = add i32 %1115, -1
  store i32 %1116, ptr %50, align 4, !tbaa !9
  %1117 = load i32, ptr %51, align 4, !tbaa !9
  %1118 = lshr i32 %1117, 1
  store i32 %1118, ptr %51, align 4, !tbaa !9
  br label %1105, !llvm.loop !58

1119:                                             ; preds = %1105
  %1120 = load i32, ptr %52, align 4, !tbaa !9
  %1121 = icmp ule i32 %1120, 10
  br i1 %1121, label %1122, label %1143

1122:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 2, ptr %53) #5
  %1123 = load i32, ptr %52, align 4, !tbaa !9
  %1124 = shl i32 %1123, 9
  %1125 = load i32, ptr %46, align 4, !tbaa !9
  %1126 = or i32 %1124, %1125
  %1127 = trunc i32 %1126 to i16
  store i16 %1127, ptr %53, align 2, !tbaa !59
  br label %1128

1128:                                             ; preds = %1131, %1122
  %1129 = load i32, ptr %49, align 4, !tbaa !9
  %1130 = icmp ult i32 %1129, 1024
  br i1 %1130, label %1131, label %1142

1131:                                             ; preds = %1128
  %1132 = load i16, ptr %53, align 2, !tbaa !59
  %1133 = load ptr, ptr %41, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1133, i32 0, i32 1
  %1135 = load i32, ptr %49, align 4, !tbaa !9
  %1136 = zext i32 %1135 to i64
  %1137 = getelementptr inbounds [1024 x i16], ptr %1134, i64 0, i64 %1136
  store i16 %1132, ptr %1137, align 2, !tbaa !59
  %1138 = load i32, ptr %52, align 4, !tbaa !9
  %1139 = shl i32 1, %1138
  %1140 = load i32, ptr %49, align 4, !tbaa !9
  %1141 = add i32 %1140, %1139
  store i32 %1141, ptr %49, align 4, !tbaa !9
  br label %1128, !llvm.loop !61

1142:                                             ; preds = %1128
  store i32 156, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %53) #5
  br label %1229

1143:                                             ; preds = %1119
  %1144 = load ptr, ptr %41, align 8, !tbaa !5
  %1145 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1144, i32 0, i32 1
  %1146 = load i32, ptr %49, align 4, !tbaa !9
  %1147 = and i32 %1146, 1023
  %1148 = zext i32 %1147 to i64
  %1149 = getelementptr inbounds [1024 x i16], ptr %1145, i64 0, i64 %1148
  %1150 = load i16, ptr %1149, align 2, !tbaa !59
  %1151 = sext i16 %1150 to i32
  store i32 %1151, ptr %40, align 4, !tbaa !9
  %1152 = icmp eq i32 0, %1151
  br i1 %1152, label %1153, label %1165

1153:                                             ; preds = %1143
  %1154 = load i32, ptr %39, align 4, !tbaa !9
  %1155 = trunc i32 %1154 to i16
  %1156 = load ptr, ptr %41, align 8, !tbaa !5
  %1157 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1156, i32 0, i32 1
  %1158 = load i32, ptr %49, align 4, !tbaa !9
  %1159 = and i32 %1158, 1023
  %1160 = zext i32 %1159 to i64
  %1161 = getelementptr inbounds [1024 x i16], ptr %1157, i64 0, i64 %1160
  store i16 %1155, ptr %1161, align 2, !tbaa !59
  %1162 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %1162, ptr %40, align 4, !tbaa !9
  %1163 = load i32, ptr %39, align 4, !tbaa !9
  %1164 = sub nsw i32 %1163, 2
  store i32 %1164, ptr %39, align 4, !tbaa !9
  br label %1165

1165:                                             ; preds = %1153, %1143
  %1166 = load i32, ptr %49, align 4, !tbaa !9
  %1167 = lshr i32 %1166, 9
  store i32 %1167, ptr %49, align 4, !tbaa !9
  %1168 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %1168, ptr %43, align 4, !tbaa !9
  br label %1169

1169:                                             ; preds = %1211, %1165
  %1170 = load i32, ptr %43, align 4, !tbaa !9
  %1171 = icmp ugt i32 %1170, 11
  br i1 %1171, label %1172, label %1214

1172:                                             ; preds = %1169
  %1173 = load i32, ptr %49, align 4, !tbaa !9
  %1174 = lshr i32 %1173, 1
  store i32 %1174, ptr %49, align 4, !tbaa !9
  %1175 = and i32 %1174, 1
  %1176 = load i32, ptr %40, align 4, !tbaa !9
  %1177 = sub i32 %1176, %1175
  store i32 %1177, ptr %40, align 4, !tbaa !9
  %1178 = load ptr, ptr %41, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1178, i32 0, i32 2
  %1180 = load i32, ptr %40, align 4, !tbaa !9
  %1181 = sub nsw i32 0, %1180
  %1182 = sub nsw i32 %1181, 1
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds [576 x i16], ptr %1179, i64 0, i64 %1183
  %1185 = load i16, ptr %1184, align 2, !tbaa !59
  %1186 = icmp ne i16 %1185, 0
  br i1 %1186, label %1200, label %1187

1187:                                             ; preds = %1172
  %1188 = load i32, ptr %39, align 4, !tbaa !9
  %1189 = trunc i32 %1188 to i16
  %1190 = load ptr, ptr %41, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1190, i32 0, i32 2
  %1192 = load i32, ptr %40, align 4, !tbaa !9
  %1193 = sub nsw i32 0, %1192
  %1194 = sub nsw i32 %1193, 1
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds [576 x i16], ptr %1191, i64 0, i64 %1195
  store i16 %1189, ptr %1196, align 2, !tbaa !59
  %1197 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %1197, ptr %40, align 4, !tbaa !9
  %1198 = load i32, ptr %39, align 4, !tbaa !9
  %1199 = sub nsw i32 %1198, 2
  store i32 %1199, ptr %39, align 4, !tbaa !9
  br label %1210

1200:                                             ; preds = %1172
  %1201 = load ptr, ptr %41, align 8, !tbaa !5
  %1202 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1201, i32 0, i32 2
  %1203 = load i32, ptr %40, align 4, !tbaa !9
  %1204 = sub nsw i32 0, %1203
  %1205 = sub nsw i32 %1204, 1
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds [576 x i16], ptr %1202, i64 0, i64 %1206
  %1208 = load i16, ptr %1207, align 2, !tbaa !59
  %1209 = sext i16 %1208 to i32
  store i32 %1209, ptr %40, align 4, !tbaa !9
  br label %1210

1210:                                             ; preds = %1200, %1187
  br label %1211

1211:                                             ; preds = %1210
  %1212 = load i32, ptr %43, align 4, !tbaa !9
  %1213 = add i32 %1212, -1
  store i32 %1213, ptr %43, align 4, !tbaa !9
  br label %1169, !llvm.loop !62

1214:                                             ; preds = %1169
  %1215 = load i32, ptr %49, align 4, !tbaa !9
  %1216 = lshr i32 %1215, 1
  store i32 %1216, ptr %49, align 4, !tbaa !9
  %1217 = and i32 %1216, 1
  %1218 = load i32, ptr %40, align 4, !tbaa !9
  %1219 = sub i32 %1218, %1217
  store i32 %1219, ptr %40, align 4, !tbaa !9
  %1220 = load i32, ptr %46, align 4, !tbaa !9
  %1221 = trunc i32 %1220 to i16
  %1222 = load ptr, ptr %41, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1222, i32 0, i32 2
  %1224 = load i32, ptr %40, align 4, !tbaa !9
  %1225 = sub nsw i32 0, %1224
  %1226 = sub nsw i32 %1225, 1
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds [576 x i16], ptr %1223, i64 0, i64 %1227
  store i16 %1221, ptr %1228, align 2, !tbaa !59
  store i32 0, ptr %28, align 4
  br label %1229

1229:                                             ; preds = %1214, %1142, %1097
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  %1230 = load i32, ptr %28, align 4
  switch i32 %1230, label %2944 [
    i32 0, label %1231
    i32 156, label %1232
  ]

1231:                                             ; preds = %1229
  br label %1232

1232:                                             ; preds = %1231, %1229
  %1233 = load i32, ptr %46, align 4, !tbaa !9
  %1234 = add i32 %1233, 1
  store i32 %1234, ptr %46, align 4, !tbaa !9
  br label %1076, !llvm.loop !63

1235:                                             ; preds = %1076
  %1236 = load ptr, ptr %9, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1236, i32 0, i32 6
  %1238 = load i32, ptr %1237, align 8, !tbaa !32
  %1239 = icmp eq i32 %1238, 2
  br i1 %1239, label %1240, label %1624

1240:                                             ; preds = %1235
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1241

1241:                                             ; preds = %1560, %1440, %1240
  %1242 = load i32, ptr %19, align 4, !tbaa !9
  %1243 = load ptr, ptr %9, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1243, i32 0, i32 11
  %1245 = getelementptr inbounds [3 x i32], ptr %1244, i64 0, i64 0
  %1246 = load i32, ptr %1245, align 4, !tbaa !9
  %1247 = load ptr, ptr %9, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1247, i32 0, i32 11
  %1249 = getelementptr inbounds [3 x i32], ptr %1248, i64 0, i64 1
  %1250 = load i32, ptr %1249, align 4, !tbaa !9
  %1251 = add i32 %1246, %1250
  %1252 = icmp ult i32 %1242, %1251
  br i1 %1252, label %1253, label %1568

1253:                                             ; preds = %1241
  br label %1254

1254:                                             ; preds = %1253
  %1255 = load i32, ptr %17, align 4, !tbaa !9
  %1256 = icmp ult i32 %1255, 15
  br i1 %1256, label %1257, label %1388

1257:                                             ; preds = %1254
  %1258 = load ptr, ptr %23, align 8, !tbaa !5
  %1259 = load ptr, ptr %22, align 8, !tbaa !5
  %1260 = ptrtoint ptr %1258 to i64
  %1261 = ptrtoint ptr %1259 to i64
  %1262 = sub i64 %1260, %1261
  %1263 = icmp slt i64 %1262, 2
  br i1 %1263, label %1264, label %1364

1264:                                             ; preds = %1257
  br label %1265

1265:                                             ; preds = %1360, %1264
  %1266 = load ptr, ptr %9, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1266, i32 0, i32 14
  %1268 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1267, i64 0, i64 2
  %1269 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1268, i32 0, i32 1
  %1270 = load i64, ptr %21, align 8, !tbaa !11
  %1271 = and i64 %1270, 1023
  %1272 = getelementptr inbounds [1024 x i16], ptr %1269, i64 0, i64 %1271
  %1273 = load i16, ptr %1272, align 2, !tbaa !59
  %1274 = sext i16 %1273 to i32
  store i32 %1274, ptr %55, align 4, !tbaa !9
  %1275 = load i32, ptr %55, align 4, !tbaa !9
  %1276 = icmp sge i32 %1275, 0
  br i1 %1276, label %1277, label %1288

1277:                                             ; preds = %1265
  %1278 = load i32, ptr %55, align 4, !tbaa !9
  %1279 = ashr i32 %1278, 9
  store i32 %1279, ptr %56, align 4, !tbaa !9
  %1280 = load i32, ptr %56, align 4, !tbaa !9
  %1281 = icmp ne i32 %1280, 0
  br i1 %1281, label %1282, label %1287

1282:                                             ; preds = %1277
  %1283 = load i32, ptr %17, align 4, !tbaa !9
  %1284 = load i32, ptr %56, align 4, !tbaa !9
  %1285 = icmp uge i32 %1283, %1284
  br i1 %1285, label %1286, label %1287

1286:                                             ; preds = %1282
  br label %1363

1287:                                             ; preds = %1282, %1277
  br label %1326

1288:                                             ; preds = %1265
  %1289 = load i32, ptr %17, align 4, !tbaa !9
  %1290 = icmp ugt i32 %1289, 10
  br i1 %1290, label %1291, label %1325

1291:                                             ; preds = %1288
  store i32 10, ptr %56, align 4, !tbaa !9
  br label %1292

1292:                                             ; preds = %1318, %1291
  %1293 = load ptr, ptr %9, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1293, i32 0, i32 14
  %1295 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1294, i64 0, i64 2
  %1296 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1295, i32 0, i32 2
  %1297 = load i32, ptr %55, align 4, !tbaa !9
  %1298 = xor i32 %1297, -1
  %1299 = sext i32 %1298 to i64
  %1300 = load i64, ptr %21, align 8, !tbaa !11
  %1301 = load i32, ptr %56, align 4, !tbaa !9
  %1302 = add i32 %1301, 1
  store i32 %1302, ptr %56, align 4, !tbaa !9
  %1303 = zext i32 %1301 to i64
  %1304 = lshr i64 %1300, %1303
  %1305 = and i64 %1304, 1
  %1306 = add i64 %1299, %1305
  %1307 = getelementptr inbounds [576 x i16], ptr %1296, i64 0, i64 %1306
  %1308 = load i16, ptr %1307, align 2, !tbaa !59
  %1309 = sext i16 %1308 to i32
  store i32 %1309, ptr %55, align 4, !tbaa !9
  br label %1310

1310:                                             ; preds = %1292
  %1311 = load i32, ptr %55, align 4, !tbaa !9
  %1312 = icmp slt i32 %1311, 0
  br i1 %1312, label %1313, label %1318

1313:                                             ; preds = %1310
  %1314 = load i32, ptr %17, align 4, !tbaa !9
  %1315 = load i32, ptr %56, align 4, !tbaa !9
  %1316 = add i32 %1315, 1
  %1317 = icmp uge i32 %1314, %1316
  br label %1318

1318:                                             ; preds = %1313, %1310
  %1319 = phi i1 [ false, %1310 ], [ %1317, %1313 ]
  br i1 %1319, label %1292, label %1320, !llvm.loop !64

1320:                                             ; preds = %1318
  %1321 = load i32, ptr %55, align 4, !tbaa !9
  %1322 = icmp sge i32 %1321, 0
  br i1 %1322, label %1323, label %1324

1323:                                             ; preds = %1320
  br label %1363

1324:                                             ; preds = %1320
  br label %1325

1325:                                             ; preds = %1324, %1288
  br label %1326

1326:                                             ; preds = %1325, %1287
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1343, %1327
  %1329 = load ptr, ptr %22, align 8, !tbaa !5
  %1330 = load ptr, ptr %23, align 8, !tbaa !5
  %1331 = icmp uge ptr %1329, %1330
  br i1 %1331, label %1332, label %1344

1332:                                             ; preds = %1328
  br label %1333

1333:                                             ; preds = %1332
  %1334 = load i32, ptr %15, align 4, !tbaa !9
  %1335 = and i32 %1334, 2
  %1336 = icmp ne i32 %1335, 0
  %1337 = zext i1 %1336 to i64
  %1338 = select i1 %1336, i32 1, i32 -4
  store i32 %1338, ptr %16, align 4, !tbaa !9
  %1339 = load ptr, ptr %9, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1339, i32 0, i32 0
  store i32 16, ptr %1340, align 8, !tbaa !20
  br label %2724

1341:                                             ; preds = %120
  br label %1342

1342:                                             ; preds = %1341
  br label %1343

1343:                                             ; preds = %1342
  br label %1328, !llvm.loop !65

1344:                                             ; preds = %1328
  %1345 = load ptr, ptr %22, align 8, !tbaa !5
  %1346 = getelementptr inbounds i8, ptr %1345, i32 1
  store ptr %1346, ptr %22, align 8, !tbaa !5
  %1347 = load i8, ptr %1345, align 1, !tbaa !27
  %1348 = zext i8 %1347 to i32
  store i32 %1348, ptr %57, align 4, !tbaa !9
  br label %1349

1349:                                             ; preds = %1344
  br label %1350

1350:                                             ; preds = %1349
  %1351 = load i32, ptr %57, align 4, !tbaa !9
  %1352 = zext i32 %1351 to i64
  %1353 = load i32, ptr %17, align 4, !tbaa !9
  %1354 = zext i32 %1353 to i64
  %1355 = shl i64 %1352, %1354
  %1356 = load i64, ptr %21, align 8, !tbaa !11
  %1357 = or i64 %1356, %1355
  store i64 %1357, ptr %21, align 8, !tbaa !11
  %1358 = load i32, ptr %17, align 4, !tbaa !9
  %1359 = add i32 %1358, 8
  store i32 %1359, ptr %17, align 4, !tbaa !9
  br label %1360

1360:                                             ; preds = %1350
  %1361 = load i32, ptr %17, align 4, !tbaa !9
  %1362 = icmp ult i32 %1361, 15
  br i1 %1362, label %1265, label %1363, !llvm.loop !66

1363:                                             ; preds = %1360, %1323, %1286
  br label %1387

1364:                                             ; preds = %1257
  %1365 = load ptr, ptr %22, align 8, !tbaa !5
  %1366 = getelementptr inbounds i8, ptr %1365, i64 0
  %1367 = load i8, ptr %1366, align 1, !tbaa !27
  %1368 = zext i8 %1367 to i64
  %1369 = load i32, ptr %17, align 4, !tbaa !9
  %1370 = zext i32 %1369 to i64
  %1371 = shl i64 %1368, %1370
  %1372 = load ptr, ptr %22, align 8, !tbaa !5
  %1373 = getelementptr inbounds i8, ptr %1372, i64 1
  %1374 = load i8, ptr %1373, align 1, !tbaa !27
  %1375 = zext i8 %1374 to i64
  %1376 = load i32, ptr %17, align 4, !tbaa !9
  %1377 = add i32 %1376, 8
  %1378 = zext i32 %1377 to i64
  %1379 = shl i64 %1375, %1378
  %1380 = or i64 %1371, %1379
  %1381 = load i64, ptr %21, align 8, !tbaa !11
  %1382 = or i64 %1381, %1380
  store i64 %1382, ptr %21, align 8, !tbaa !11
  %1383 = load ptr, ptr %22, align 8, !tbaa !5
  %1384 = getelementptr inbounds i8, ptr %1383, i64 2
  store ptr %1384, ptr %22, align 8, !tbaa !5
  %1385 = load i32, ptr %17, align 4, !tbaa !9
  %1386 = add i32 %1385, 16
  store i32 %1386, ptr %17, align 4, !tbaa !9
  br label %1387

1387:                                             ; preds = %1364, %1363
  br label %1388

1388:                                             ; preds = %1387, %1254
  %1389 = load ptr, ptr %9, align 8, !tbaa !5
  %1390 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1389, i32 0, i32 14
  %1391 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1390, i64 0, i64 2
  %1392 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1391, i32 0, i32 1
  %1393 = load i64, ptr %21, align 8, !tbaa !11
  %1394 = and i64 %1393, 1023
  %1395 = getelementptr inbounds [1024 x i16], ptr %1392, i64 0, i64 %1394
  %1396 = load i16, ptr %1395, align 2, !tbaa !59
  %1397 = sext i16 %1396 to i32
  store i32 %1397, ptr %55, align 4, !tbaa !9
  %1398 = icmp sge i32 %1397, 0
  br i1 %1398, label %1399, label %1404

1399:                                             ; preds = %1388
  %1400 = load i32, ptr %55, align 4, !tbaa !9
  %1401 = ashr i32 %1400, 9
  store i32 %1401, ptr %56, align 4, !tbaa !9
  %1402 = load i32, ptr %55, align 4, !tbaa !9
  %1403 = and i32 %1402, 511
  store i32 %1403, ptr %55, align 4, !tbaa !9
  br label %1427

1404:                                             ; preds = %1388
  store i32 10, ptr %56, align 4, !tbaa !9
  br label %1405

1405:                                             ; preds = %1423, %1404
  %1406 = load ptr, ptr %9, align 8, !tbaa !5
  %1407 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1406, i32 0, i32 14
  %1408 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1407, i64 0, i64 2
  %1409 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1408, i32 0, i32 2
  %1410 = load i32, ptr %55, align 4, !tbaa !9
  %1411 = xor i32 %1410, -1
  %1412 = sext i32 %1411 to i64
  %1413 = load i64, ptr %21, align 8, !tbaa !11
  %1414 = load i32, ptr %56, align 4, !tbaa !9
  %1415 = add i32 %1414, 1
  store i32 %1415, ptr %56, align 4, !tbaa !9
  %1416 = zext i32 %1414 to i64
  %1417 = lshr i64 %1413, %1416
  %1418 = and i64 %1417, 1
  %1419 = add i64 %1412, %1418
  %1420 = getelementptr inbounds [576 x i16], ptr %1409, i64 0, i64 %1419
  %1421 = load i16, ptr %1420, align 2, !tbaa !59
  %1422 = sext i16 %1421 to i32
  store i32 %1422, ptr %55, align 4, !tbaa !9
  br label %1423

1423:                                             ; preds = %1405
  %1424 = load i32, ptr %55, align 4, !tbaa !9
  %1425 = icmp slt i32 %1424, 0
  br i1 %1425, label %1405, label %1426, !llvm.loop !67

1426:                                             ; preds = %1423
  br label %1427

1427:                                             ; preds = %1426, %1399
  %1428 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1428, ptr %18, align 4, !tbaa !9
  %1429 = load i32, ptr %56, align 4, !tbaa !9
  %1430 = load i64, ptr %21, align 8, !tbaa !11
  %1431 = zext i32 %1429 to i64
  %1432 = lshr i64 %1430, %1431
  store i64 %1432, ptr %21, align 8, !tbaa !11
  %1433 = load i32, ptr %56, align 4, !tbaa !9
  %1434 = load i32, ptr %17, align 4, !tbaa !9
  %1435 = sub i32 %1434, %1433
  store i32 %1435, ptr %17, align 4, !tbaa !9
  br label %1436

1436:                                             ; preds = %1427
  br label %1437

1437:                                             ; preds = %1436
  %1438 = load i32, ptr %18, align 4, !tbaa !9
  %1439 = icmp ult i32 %1438, 16
  br i1 %1439, label %1440, label %1449

1440:                                             ; preds = %1437
  %1441 = load i32, ptr %18, align 4, !tbaa !9
  %1442 = trunc i32 %1441 to i8
  %1443 = load ptr, ptr %9, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1443, i32 0, i32 16
  %1445 = load i32, ptr %19, align 4, !tbaa !9
  %1446 = add i32 %1445, 1
  store i32 %1446, ptr %19, align 4, !tbaa !9
  %1447 = zext i32 %1445 to i64
  %1448 = getelementptr inbounds [457 x i8], ptr %1444, i64 0, i64 %1447
  store i8 %1442, ptr %1448, align 1, !tbaa !27
  br label %1241, !llvm.loop !68

1449:                                             ; preds = %1437
  %1450 = load i32, ptr %18, align 4, !tbaa !9
  %1451 = icmp eq i32 %1450, 16
  br i1 %1451, label %1452, label %1466

1452:                                             ; preds = %1449
  %1453 = load i32, ptr %19, align 4, !tbaa !9
  %1454 = icmp ne i32 %1453, 0
  br i1 %1454, label %1466, label %1455

1455:                                             ; preds = %1452
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1463, %1456
  br label %1458

1458:                                             ; preds = %1457
  store i32 -1, ptr %16, align 4, !tbaa !9
  %1459 = load ptr, ptr %9, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1459, i32 0, i32 0
  store i32 17, ptr %1460, align 8, !tbaa !20
  br label %2724

1461:                                             ; preds = %120
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

1463:                                             ; preds = %1462
  br label %1457

1464:                                             ; No predecessors!
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465, %1452, %1449
  %1467 = load i32, ptr %18, align 4, !tbaa !9
  %1468 = sub i32 %1467, 16
  %1469 = zext i32 %1468 to i64
  %1470 = getelementptr inbounds [4 x i8], ptr @.str.15, i64 0, i64 %1469
  %1471 = load i8, ptr %1470, align 1, !tbaa !27
  %1472 = sext i8 %1471 to i32
  store i32 %1472, ptr %20, align 4, !tbaa !9
  br label %1473

1473:                                             ; preds = %1466
  %1474 = load i32, ptr %17, align 4, !tbaa !9
  %1475 = load i32, ptr %20, align 4, !tbaa !9
  %1476 = icmp ult i32 %1474, %1475
  br i1 %1476, label %1477, label %1517

1477:                                             ; preds = %1473
  br label %1478

1478:                                             ; preds = %1512, %1477
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1495, %1479
  %1481 = load ptr, ptr %22, align 8, !tbaa !5
  %1482 = load ptr, ptr %23, align 8, !tbaa !5
  %1483 = icmp uge ptr %1481, %1482
  br i1 %1483, label %1484, label %1496

1484:                                             ; preds = %1480
  br label %1485

1485:                                             ; preds = %1484
  %1486 = load i32, ptr %15, align 4, !tbaa !9
  %1487 = and i32 %1486, 2
  %1488 = icmp ne i32 %1487, 0
  %1489 = zext i1 %1488 to i64
  %1490 = select i1 %1488, i32 1, i32 -4
  store i32 %1490, ptr %16, align 4, !tbaa !9
  %1491 = load ptr, ptr %9, align 8, !tbaa !5
  %1492 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1491, i32 0, i32 0
  store i32 18, ptr %1492, align 8, !tbaa !20
  br label %2724

1493:                                             ; preds = %120
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

1495:                                             ; preds = %1494
  br label %1480, !llvm.loop !69

1496:                                             ; preds = %1480
  %1497 = load ptr, ptr %22, align 8, !tbaa !5
  %1498 = getelementptr inbounds i8, ptr %1497, i32 1
  store ptr %1498, ptr %22, align 8, !tbaa !5
  %1499 = load i8, ptr %1497, align 1, !tbaa !27
  %1500 = zext i8 %1499 to i32
  store i32 %1500, ptr %58, align 4, !tbaa !9
  br label %1501

1501:                                             ; preds = %1496
  br label %1502

1502:                                             ; preds = %1501
  %1503 = load i32, ptr %58, align 4, !tbaa !9
  %1504 = zext i32 %1503 to i64
  %1505 = load i32, ptr %17, align 4, !tbaa !9
  %1506 = zext i32 %1505 to i64
  %1507 = shl i64 %1504, %1506
  %1508 = load i64, ptr %21, align 8, !tbaa !11
  %1509 = or i64 %1508, %1507
  store i64 %1509, ptr %21, align 8, !tbaa !11
  %1510 = load i32, ptr %17, align 4, !tbaa !9
  %1511 = add i32 %1510, 8
  store i32 %1511, ptr %17, align 4, !tbaa !9
  br label %1512

1512:                                             ; preds = %1502
  %1513 = load i32, ptr %17, align 4, !tbaa !9
  %1514 = load i32, ptr %20, align 4, !tbaa !9
  %1515 = icmp ult i32 %1513, %1514
  br i1 %1515, label %1478, label %1516, !llvm.loop !70

1516:                                             ; preds = %1512
  br label %1517

1517:                                             ; preds = %1516, %1473
  %1518 = load i64, ptr %21, align 8, !tbaa !11
  %1519 = load i32, ptr %20, align 4, !tbaa !9
  %1520 = shl i32 1, %1519
  %1521 = sub nsw i32 %1520, 1
  %1522 = sext i32 %1521 to i64
  %1523 = and i64 %1518, %1522
  %1524 = trunc i64 %1523 to i32
  store i32 %1524, ptr %54, align 4, !tbaa !9
  %1525 = load i32, ptr %20, align 4, !tbaa !9
  %1526 = load i64, ptr %21, align 8, !tbaa !11
  %1527 = zext i32 %1525 to i64
  %1528 = lshr i64 %1526, %1527
  store i64 %1528, ptr %21, align 8, !tbaa !11
  %1529 = load i32, ptr %20, align 4, !tbaa !9
  %1530 = load i32, ptr %17, align 4, !tbaa !9
  %1531 = sub i32 %1530, %1529
  store i32 %1531, ptr %17, align 4, !tbaa !9
  br label %1532

1532:                                             ; preds = %1517
  br label %1533

1533:                                             ; preds = %1532
  %1534 = load i32, ptr %18, align 4, !tbaa !9
  %1535 = sub i32 %1534, 16
  %1536 = zext i32 %1535 to i64
  %1537 = getelementptr inbounds [4 x i8], ptr @.str.16, i64 0, i64 %1536
  %1538 = load i8, ptr %1537, align 1, !tbaa !27
  %1539 = sext i8 %1538 to i32
  %1540 = load i32, ptr %54, align 4, !tbaa !9
  %1541 = add i32 %1540, %1539
  store i32 %1541, ptr %54, align 4, !tbaa !9
  %1542 = load ptr, ptr %9, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1542, i32 0, i32 16
  %1544 = getelementptr inbounds [457 x i8], ptr %1543, i64 0, i64 0
  %1545 = load i32, ptr %19, align 4, !tbaa !9
  %1546 = zext i32 %1545 to i64
  %1547 = getelementptr inbounds i8, ptr %1544, i64 %1546
  %1548 = load i32, ptr %18, align 4, !tbaa !9
  %1549 = icmp eq i32 %1548, 16
  br i1 %1549, label %1550, label %1559

1550:                                             ; preds = %1533
  %1551 = load ptr, ptr %9, align 8, !tbaa !5
  %1552 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1551, i32 0, i32 16
  %1553 = load i32, ptr %19, align 4, !tbaa !9
  %1554 = sub i32 %1553, 1
  %1555 = zext i32 %1554 to i64
  %1556 = getelementptr inbounds [457 x i8], ptr %1552, i64 0, i64 %1555
  %1557 = load i8, ptr %1556, align 1, !tbaa !27
  %1558 = zext i8 %1557 to i32
  br label %1560

1559:                                             ; preds = %1533
  br label %1560

1560:                                             ; preds = %1559, %1550
  %1561 = phi i32 [ %1558, %1550 ], [ 0, %1559 ]
  %1562 = trunc i32 %1561 to i8
  %1563 = load i32, ptr %54, align 4, !tbaa !9
  %1564 = zext i32 %1563 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1547, i8 %1562, i64 %1564, i1 false)
  %1565 = load i32, ptr %54, align 4, !tbaa !9
  %1566 = load i32, ptr %19, align 4, !tbaa !9
  %1567 = add i32 %1566, %1565
  store i32 %1567, ptr %19, align 4, !tbaa !9
  br label %1241, !llvm.loop !68

1568:                                             ; preds = %1241
  %1569 = load ptr, ptr %9, align 8, !tbaa !5
  %1570 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1569, i32 0, i32 11
  %1571 = getelementptr inbounds [3 x i32], ptr %1570, i64 0, i64 0
  %1572 = load i32, ptr %1571, align 4, !tbaa !9
  %1573 = load ptr, ptr %9, align 8, !tbaa !5
  %1574 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1573, i32 0, i32 11
  %1575 = getelementptr inbounds [3 x i32], ptr %1574, i64 0, i64 1
  %1576 = load i32, ptr %1575, align 4, !tbaa !9
  %1577 = add i32 %1572, %1576
  %1578 = load i32, ptr %19, align 4, !tbaa !9
  %1579 = icmp ne i32 %1577, %1578
  br i1 %1579, label %1580, label %1591

1580:                                             ; preds = %1568
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1588, %1581
  br label %1583

1583:                                             ; preds = %1582
  store i32 -1, ptr %16, align 4, !tbaa !9
  %1584 = load ptr, ptr %9, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1584, i32 0, i32 0
  store i32 21, ptr %1585, align 8, !tbaa !20
  br label %2724

1586:                                             ; preds = %120
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

1588:                                             ; preds = %1587
  br label %1582

1589:                                             ; No predecessors!
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590, %1568
  %1592 = load ptr, ptr %9, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1592, i32 0, i32 14
  %1594 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1593, i64 0, i64 0
  %1595 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1594, i32 0, i32 0
  %1596 = getelementptr inbounds [288 x i8], ptr %1595, i64 0, i64 0
  %1597 = load ptr, ptr %9, align 8, !tbaa !5
  %1598 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1597, i32 0, i32 16
  %1599 = getelementptr inbounds [457 x i8], ptr %1598, i64 0, i64 0
  %1600 = load ptr, ptr %9, align 8, !tbaa !5
  %1601 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1600, i32 0, i32 11
  %1602 = getelementptr inbounds [3 x i32], ptr %1601, i64 0, i64 0
  %1603 = load i32, ptr %1602, align 4, !tbaa !9
  %1604 = zext i32 %1603 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1596, ptr align 4 %1599, i64 %1604, i1 false)
  %1605 = load ptr, ptr %9, align 8, !tbaa !5
  %1606 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1605, i32 0, i32 14
  %1607 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1606, i64 0, i64 1
  %1608 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1607, i32 0, i32 0
  %1609 = getelementptr inbounds [288 x i8], ptr %1608, i64 0, i64 0
  %1610 = load ptr, ptr %9, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1610, i32 0, i32 16
  %1612 = getelementptr inbounds [457 x i8], ptr %1611, i64 0, i64 0
  %1613 = load ptr, ptr %9, align 8, !tbaa !5
  %1614 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1613, i32 0, i32 11
  %1615 = getelementptr inbounds [3 x i32], ptr %1614, i64 0, i64 0
  %1616 = load i32, ptr %1615, align 4, !tbaa !9
  %1617 = zext i32 %1616 to i64
  %1618 = getelementptr inbounds i8, ptr %1612, i64 %1617
  %1619 = load ptr, ptr %9, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1619, i32 0, i32 11
  %1621 = getelementptr inbounds [3 x i32], ptr %1620, i64 0, i64 1
  %1622 = load i32, ptr %1621, align 4, !tbaa !9
  %1623 = zext i32 %1622 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1609, ptr align 1 %1618, i64 %1623, i1 false)
  br label %1624

1624:                                             ; preds = %1591, %1235
  br label %1625

1625:                                             ; preds = %1624
  %1626 = load ptr, ptr %9, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1626, i32 0, i32 6
  %1628 = load i32, ptr %1627, align 8, !tbaa !32
  %1629 = add i32 %1628, -1
  store i32 %1629, ptr %1627, align 8, !tbaa !32
  br label %989, !llvm.loop !71

1630:                                             ; preds = %989
  br label %1631

1631:                                             ; preds = %2515, %2463, %2411, %1630
  br label %1632

1632:                                             ; preds = %1983, %1631
  %1633 = load ptr, ptr %23, align 8, !tbaa !5
  %1634 = load ptr, ptr %22, align 8, !tbaa !5
  %1635 = ptrtoint ptr %1633 to i64
  %1636 = ptrtoint ptr %1634 to i64
  %1637 = sub i64 %1635, %1636
  %1638 = icmp slt i64 %1637, 4
  br i1 %1638, label %1646, label %1639

1639:                                             ; preds = %1632
  %1640 = load ptr, ptr %25, align 8, !tbaa !5
  %1641 = load ptr, ptr %24, align 8, !tbaa !5
  %1642 = ptrtoint ptr %1640 to i64
  %1643 = ptrtoint ptr %1641 to i64
  %1644 = sub i64 %1642, %1643
  %1645 = icmp slt i64 %1644, 2
  br i1 %1645, label %1646, label %1851

1646:                                             ; preds = %1639, %1632
  br label %1647

1647:                                             ; preds = %1646
  %1648 = load i32, ptr %17, align 4, !tbaa !9
  %1649 = icmp ult i32 %1648, 15
  br i1 %1649, label %1650, label %1781

1650:                                             ; preds = %1647
  %1651 = load ptr, ptr %23, align 8, !tbaa !5
  %1652 = load ptr, ptr %22, align 8, !tbaa !5
  %1653 = ptrtoint ptr %1651 to i64
  %1654 = ptrtoint ptr %1652 to i64
  %1655 = sub i64 %1653, %1654
  %1656 = icmp slt i64 %1655, 2
  br i1 %1656, label %1657, label %1757

1657:                                             ; preds = %1650
  br label %1658

1658:                                             ; preds = %1753, %1657
  %1659 = load ptr, ptr %9, align 8, !tbaa !5
  %1660 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1659, i32 0, i32 14
  %1661 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1660, i64 0, i64 0
  %1662 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1661, i32 0, i32 1
  %1663 = load i64, ptr %21, align 8, !tbaa !11
  %1664 = and i64 %1663, 1023
  %1665 = getelementptr inbounds [1024 x i16], ptr %1662, i64 0, i64 %1664
  %1666 = load i16, ptr %1665, align 2, !tbaa !59
  %1667 = sext i16 %1666 to i32
  store i32 %1667, ptr %60, align 4, !tbaa !9
  %1668 = load i32, ptr %60, align 4, !tbaa !9
  %1669 = icmp sge i32 %1668, 0
  br i1 %1669, label %1670, label %1681

1670:                                             ; preds = %1658
  %1671 = load i32, ptr %60, align 4, !tbaa !9
  %1672 = ashr i32 %1671, 9
  store i32 %1672, ptr %61, align 4, !tbaa !9
  %1673 = load i32, ptr %61, align 4, !tbaa !9
  %1674 = icmp ne i32 %1673, 0
  br i1 %1674, label %1675, label %1680

1675:                                             ; preds = %1670
  %1676 = load i32, ptr %17, align 4, !tbaa !9
  %1677 = load i32, ptr %61, align 4, !tbaa !9
  %1678 = icmp uge i32 %1676, %1677
  br i1 %1678, label %1679, label %1680

1679:                                             ; preds = %1675
  br label %1756

1680:                                             ; preds = %1675, %1670
  br label %1719

1681:                                             ; preds = %1658
  %1682 = load i32, ptr %17, align 4, !tbaa !9
  %1683 = icmp ugt i32 %1682, 10
  br i1 %1683, label %1684, label %1718

1684:                                             ; preds = %1681
  store i32 10, ptr %61, align 4, !tbaa !9
  br label %1685

1685:                                             ; preds = %1711, %1684
  %1686 = load ptr, ptr %9, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1686, i32 0, i32 14
  %1688 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1687, i64 0, i64 0
  %1689 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1688, i32 0, i32 2
  %1690 = load i32, ptr %60, align 4, !tbaa !9
  %1691 = xor i32 %1690, -1
  %1692 = sext i32 %1691 to i64
  %1693 = load i64, ptr %21, align 8, !tbaa !11
  %1694 = load i32, ptr %61, align 4, !tbaa !9
  %1695 = add i32 %1694, 1
  store i32 %1695, ptr %61, align 4, !tbaa !9
  %1696 = zext i32 %1694 to i64
  %1697 = lshr i64 %1693, %1696
  %1698 = and i64 %1697, 1
  %1699 = add i64 %1692, %1698
  %1700 = getelementptr inbounds [576 x i16], ptr %1689, i64 0, i64 %1699
  %1701 = load i16, ptr %1700, align 2, !tbaa !59
  %1702 = sext i16 %1701 to i32
  store i32 %1702, ptr %60, align 4, !tbaa !9
  br label %1703

1703:                                             ; preds = %1685
  %1704 = load i32, ptr %60, align 4, !tbaa !9
  %1705 = icmp slt i32 %1704, 0
  br i1 %1705, label %1706, label %1711

1706:                                             ; preds = %1703
  %1707 = load i32, ptr %17, align 4, !tbaa !9
  %1708 = load i32, ptr %61, align 4, !tbaa !9
  %1709 = add i32 %1708, 1
  %1710 = icmp uge i32 %1707, %1709
  br label %1711

1711:                                             ; preds = %1706, %1703
  %1712 = phi i1 [ false, %1703 ], [ %1710, %1706 ]
  br i1 %1712, label %1685, label %1713, !llvm.loop !72

1713:                                             ; preds = %1711
  %1714 = load i32, ptr %60, align 4, !tbaa !9
  %1715 = icmp sge i32 %1714, 0
  br i1 %1715, label %1716, label %1717

1716:                                             ; preds = %1713
  br label %1756

1717:                                             ; preds = %1713
  br label %1718

1718:                                             ; preds = %1717, %1681
  br label %1719

1719:                                             ; preds = %1718, %1680
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1736, %1720
  %1722 = load ptr, ptr %22, align 8, !tbaa !5
  %1723 = load ptr, ptr %23, align 8, !tbaa !5
  %1724 = icmp uge ptr %1722, %1723
  br i1 %1724, label %1725, label %1737

1725:                                             ; preds = %1721
  br label %1726

1726:                                             ; preds = %1725
  %1727 = load i32, ptr %15, align 4, !tbaa !9
  %1728 = and i32 %1727, 2
  %1729 = icmp ne i32 %1728, 0
  %1730 = zext i1 %1729 to i64
  %1731 = select i1 %1729, i32 1, i32 -4
  store i32 %1731, ptr %16, align 4, !tbaa !9
  %1732 = load ptr, ptr %9, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1732, i32 0, i32 0
  store i32 23, ptr %1733, align 8, !tbaa !20
  br label %2724

1734:                                             ; preds = %120
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  br label %1721, !llvm.loop !73

1737:                                             ; preds = %1721
  %1738 = load ptr, ptr %22, align 8, !tbaa !5
  %1739 = getelementptr inbounds i8, ptr %1738, i32 1
  store ptr %1739, ptr %22, align 8, !tbaa !5
  %1740 = load i8, ptr %1738, align 1, !tbaa !27
  %1741 = zext i8 %1740 to i32
  store i32 %1741, ptr %62, align 4, !tbaa !9
  br label %1742

1742:                                             ; preds = %1737
  br label %1743

1743:                                             ; preds = %1742
  %1744 = load i32, ptr %62, align 4, !tbaa !9
  %1745 = zext i32 %1744 to i64
  %1746 = load i32, ptr %17, align 4, !tbaa !9
  %1747 = zext i32 %1746 to i64
  %1748 = shl i64 %1745, %1747
  %1749 = load i64, ptr %21, align 8, !tbaa !11
  %1750 = or i64 %1749, %1748
  store i64 %1750, ptr %21, align 8, !tbaa !11
  %1751 = load i32, ptr %17, align 4, !tbaa !9
  %1752 = add i32 %1751, 8
  store i32 %1752, ptr %17, align 4, !tbaa !9
  br label %1753

1753:                                             ; preds = %1743
  %1754 = load i32, ptr %17, align 4, !tbaa !9
  %1755 = icmp ult i32 %1754, 15
  br i1 %1755, label %1658, label %1756, !llvm.loop !74

1756:                                             ; preds = %1753, %1716, %1679
  br label %1780

1757:                                             ; preds = %1650
  %1758 = load ptr, ptr %22, align 8, !tbaa !5
  %1759 = getelementptr inbounds i8, ptr %1758, i64 0
  %1760 = load i8, ptr %1759, align 1, !tbaa !27
  %1761 = zext i8 %1760 to i64
  %1762 = load i32, ptr %17, align 4, !tbaa !9
  %1763 = zext i32 %1762 to i64
  %1764 = shl i64 %1761, %1763
  %1765 = load ptr, ptr %22, align 8, !tbaa !5
  %1766 = getelementptr inbounds i8, ptr %1765, i64 1
  %1767 = load i8, ptr %1766, align 1, !tbaa !27
  %1768 = zext i8 %1767 to i64
  %1769 = load i32, ptr %17, align 4, !tbaa !9
  %1770 = add i32 %1769, 8
  %1771 = zext i32 %1770 to i64
  %1772 = shl i64 %1768, %1771
  %1773 = or i64 %1764, %1772
  %1774 = load i64, ptr %21, align 8, !tbaa !11
  %1775 = or i64 %1774, %1773
  store i64 %1775, ptr %21, align 8, !tbaa !11
  %1776 = load ptr, ptr %22, align 8, !tbaa !5
  %1777 = getelementptr inbounds i8, ptr %1776, i64 2
  store ptr %1777, ptr %22, align 8, !tbaa !5
  %1778 = load i32, ptr %17, align 4, !tbaa !9
  %1779 = add i32 %1778, 16
  store i32 %1779, ptr %17, align 4, !tbaa !9
  br label %1780

1780:                                             ; preds = %1757, %1756
  br label %1781

1781:                                             ; preds = %1780, %1647
  %1782 = load ptr, ptr %9, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1782, i32 0, i32 14
  %1784 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1783, i64 0, i64 0
  %1785 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1784, i32 0, i32 1
  %1786 = load i64, ptr %21, align 8, !tbaa !11
  %1787 = and i64 %1786, 1023
  %1788 = getelementptr inbounds [1024 x i16], ptr %1785, i64 0, i64 %1787
  %1789 = load i16, ptr %1788, align 2, !tbaa !59
  %1790 = sext i16 %1789 to i32
  store i32 %1790, ptr %60, align 4, !tbaa !9
  %1791 = icmp sge i32 %1790, 0
  br i1 %1791, label %1792, label %1797

1792:                                             ; preds = %1781
  %1793 = load i32, ptr %60, align 4, !tbaa !9
  %1794 = ashr i32 %1793, 9
  store i32 %1794, ptr %61, align 4, !tbaa !9
  %1795 = load i32, ptr %60, align 4, !tbaa !9
  %1796 = and i32 %1795, 511
  store i32 %1796, ptr %60, align 4, !tbaa !9
  br label %1820

1797:                                             ; preds = %1781
  store i32 10, ptr %61, align 4, !tbaa !9
  br label %1798

1798:                                             ; preds = %1816, %1797
  %1799 = load ptr, ptr %9, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1799, i32 0, i32 14
  %1801 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1800, i64 0, i64 0
  %1802 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1801, i32 0, i32 2
  %1803 = load i32, ptr %60, align 4, !tbaa !9
  %1804 = xor i32 %1803, -1
  %1805 = sext i32 %1804 to i64
  %1806 = load i64, ptr %21, align 8, !tbaa !11
  %1807 = load i32, ptr %61, align 4, !tbaa !9
  %1808 = add i32 %1807, 1
  store i32 %1808, ptr %61, align 4, !tbaa !9
  %1809 = zext i32 %1807 to i64
  %1810 = lshr i64 %1806, %1809
  %1811 = and i64 %1810, 1
  %1812 = add i64 %1805, %1811
  %1813 = getelementptr inbounds [576 x i16], ptr %1802, i64 0, i64 %1812
  %1814 = load i16, ptr %1813, align 2, !tbaa !59
  %1815 = sext i16 %1814 to i32
  store i32 %1815, ptr %60, align 4, !tbaa !9
  br label %1816

1816:                                             ; preds = %1798
  %1817 = load i32, ptr %60, align 4, !tbaa !9
  %1818 = icmp slt i32 %1817, 0
  br i1 %1818, label %1798, label %1819, !llvm.loop !75

1819:                                             ; preds = %1816
  br label %1820

1820:                                             ; preds = %1819, %1792
  %1821 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1821, ptr %19, align 4, !tbaa !9
  %1822 = load i32, ptr %61, align 4, !tbaa !9
  %1823 = load i64, ptr %21, align 8, !tbaa !11
  %1824 = zext i32 %1822 to i64
  %1825 = lshr i64 %1823, %1824
  store i64 %1825, ptr %21, align 8, !tbaa !11
  %1826 = load i32, ptr %61, align 4, !tbaa !9
  %1827 = load i32, ptr %17, align 4, !tbaa !9
  %1828 = sub i32 %1827, %1826
  store i32 %1828, ptr %17, align 4, !tbaa !9
  br label %1829

1829:                                             ; preds = %1820
  br label %1830

1830:                                             ; preds = %1829
  %1831 = load i32, ptr %19, align 4, !tbaa !9
  %1832 = icmp uge i32 %1831, 256
  br i1 %1832, label %1833, label %1834

1833:                                             ; preds = %1830
  br label %1984

1834:                                             ; preds = %1830
  br label %1835

1835:                                             ; preds = %1845, %1834
  %1836 = load ptr, ptr %24, align 8, !tbaa !5
  %1837 = load ptr, ptr %25, align 8, !tbaa !5
  %1838 = icmp uge ptr %1836, %1837
  br i1 %1838, label %1839, label %1846

1839:                                             ; preds = %1835
  br label %1840

1840:                                             ; preds = %1839
  store i32 2, ptr %16, align 4, !tbaa !9
  %1841 = load ptr, ptr %9, align 8, !tbaa !5
  %1842 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1841, i32 0, i32 0
  store i32 24, ptr %1842, align 8, !tbaa !20
  br label %2724

1843:                                             ; preds = %120
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844
  br label %1835, !llvm.loop !76

1846:                                             ; preds = %1835
  %1847 = load i32, ptr %19, align 4, !tbaa !9
  %1848 = trunc i32 %1847 to i8
  %1849 = load ptr, ptr %24, align 8, !tbaa !5
  %1850 = getelementptr inbounds i8, ptr %1849, i32 1
  store ptr %1850, ptr %24, align 8, !tbaa !5
  store i8 %1848, ptr %1849, align 1, !tbaa !27
  br label %1983

1851:                                             ; preds = %1639
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  %1852 = load i32, ptr %17, align 4, !tbaa !9
  %1853 = icmp ult i32 %1852, 30
  br i1 %1853, label %1854, label %1867

1854:                                             ; preds = %1851
  %1855 = load ptr, ptr %22, align 8, !tbaa !5
  %1856 = load i32, ptr %1855, align 4, !tbaa !9
  %1857 = zext i32 %1856 to i64
  %1858 = load i32, ptr %17, align 4, !tbaa !9
  %1859 = zext i32 %1858 to i64
  %1860 = shl i64 %1857, %1859
  %1861 = load i64, ptr %21, align 8, !tbaa !11
  %1862 = or i64 %1861, %1860
  store i64 %1862, ptr %21, align 8, !tbaa !11
  %1863 = load ptr, ptr %22, align 8, !tbaa !5
  %1864 = getelementptr inbounds i8, ptr %1863, i64 4
  store ptr %1864, ptr %22, align 8, !tbaa !5
  %1865 = load i32, ptr %17, align 4, !tbaa !9
  %1866 = add i32 %1865, 32
  store i32 %1866, ptr %17, align 4, !tbaa !9
  br label %1867

1867:                                             ; preds = %1854, %1851
  %1868 = load ptr, ptr %9, align 8, !tbaa !5
  %1869 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1868, i32 0, i32 14
  %1870 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1869, i64 0, i64 0
  %1871 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1870, i32 0, i32 1
  %1872 = load i64, ptr %21, align 8, !tbaa !11
  %1873 = and i64 %1872, 1023
  %1874 = getelementptr inbounds [1024 x i16], ptr %1871, i64 0, i64 %1873
  %1875 = load i16, ptr %1874, align 2, !tbaa !59
  %1876 = sext i16 %1875 to i32
  store i32 %1876, ptr %63, align 4, !tbaa !9
  %1877 = icmp sge i32 %1876, 0
  br i1 %1877, label %1878, label %1881

1878:                                             ; preds = %1867
  %1879 = load i32, ptr %63, align 4, !tbaa !9
  %1880 = ashr i32 %1879, 9
  store i32 %1880, ptr %64, align 4, !tbaa !9
  br label %1904

1881:                                             ; preds = %1867
  store i32 10, ptr %64, align 4, !tbaa !9
  br label %1882

1882:                                             ; preds = %1900, %1881
  %1883 = load ptr, ptr %9, align 8, !tbaa !5
  %1884 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1883, i32 0, i32 14
  %1885 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1884, i64 0, i64 0
  %1886 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1885, i32 0, i32 2
  %1887 = load i32, ptr %63, align 4, !tbaa !9
  %1888 = xor i32 %1887, -1
  %1889 = sext i32 %1888 to i64
  %1890 = load i64, ptr %21, align 8, !tbaa !11
  %1891 = load i32, ptr %64, align 4, !tbaa !9
  %1892 = add i32 %1891, 1
  store i32 %1892, ptr %64, align 4, !tbaa !9
  %1893 = zext i32 %1891 to i64
  %1894 = lshr i64 %1890, %1893
  %1895 = and i64 %1894, 1
  %1896 = add i64 %1889, %1895
  %1897 = getelementptr inbounds [576 x i16], ptr %1886, i64 0, i64 %1896
  %1898 = load i16, ptr %1897, align 2, !tbaa !59
  %1899 = sext i16 %1898 to i32
  store i32 %1899, ptr %63, align 4, !tbaa !9
  br label %1900

1900:                                             ; preds = %1882
  %1901 = load i32, ptr %63, align 4, !tbaa !9
  %1902 = icmp slt i32 %1901, 0
  br i1 %1902, label %1882, label %1903, !llvm.loop !77

1903:                                             ; preds = %1900
  br label %1904

1904:                                             ; preds = %1903, %1878
  %1905 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %1905, ptr %19, align 4, !tbaa !9
  %1906 = load i32, ptr %64, align 4, !tbaa !9
  %1907 = load i64, ptr %21, align 8, !tbaa !11
  %1908 = zext i32 %1906 to i64
  %1909 = lshr i64 %1907, %1908
  store i64 %1909, ptr %21, align 8, !tbaa !11
  %1910 = load i32, ptr %64, align 4, !tbaa !9
  %1911 = load i32, ptr %17, align 4, !tbaa !9
  %1912 = sub i32 %1911, %1910
  store i32 %1912, ptr %17, align 4, !tbaa !9
  %1913 = load i32, ptr %19, align 4, !tbaa !9
  %1914 = and i32 %1913, 256
  %1915 = icmp ne i32 %1914, 0
  br i1 %1915, label %1916, label %1917

1916:                                             ; preds = %1904
  store i32 205, ptr %28, align 4
  br label %1980

1917:                                             ; preds = %1904
  %1918 = load ptr, ptr %9, align 8, !tbaa !5
  %1919 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1918, i32 0, i32 14
  %1920 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1919, i64 0, i64 0
  %1921 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1920, i32 0, i32 1
  %1922 = load i64, ptr %21, align 8, !tbaa !11
  %1923 = and i64 %1922, 1023
  %1924 = getelementptr inbounds [1024 x i16], ptr %1921, i64 0, i64 %1923
  %1925 = load i16, ptr %1924, align 2, !tbaa !59
  %1926 = sext i16 %1925 to i32
  store i32 %1926, ptr %63, align 4, !tbaa !9
  %1927 = icmp sge i32 %1926, 0
  br i1 %1927, label %1928, label %1931

1928:                                             ; preds = %1917
  %1929 = load i32, ptr %63, align 4, !tbaa !9
  %1930 = ashr i32 %1929, 9
  store i32 %1930, ptr %64, align 4, !tbaa !9
  br label %1954

1931:                                             ; preds = %1917
  store i32 10, ptr %64, align 4, !tbaa !9
  br label %1932

1932:                                             ; preds = %1950, %1931
  %1933 = load ptr, ptr %9, align 8, !tbaa !5
  %1934 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1933, i32 0, i32 14
  %1935 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1934, i64 0, i64 0
  %1936 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1935, i32 0, i32 2
  %1937 = load i32, ptr %63, align 4, !tbaa !9
  %1938 = xor i32 %1937, -1
  %1939 = sext i32 %1938 to i64
  %1940 = load i64, ptr %21, align 8, !tbaa !11
  %1941 = load i32, ptr %64, align 4, !tbaa !9
  %1942 = add i32 %1941, 1
  store i32 %1942, ptr %64, align 4, !tbaa !9
  %1943 = zext i32 %1941 to i64
  %1944 = lshr i64 %1940, %1943
  %1945 = and i64 %1944, 1
  %1946 = add i64 %1939, %1945
  %1947 = getelementptr inbounds [576 x i16], ptr %1936, i64 0, i64 %1946
  %1948 = load i16, ptr %1947, align 2, !tbaa !59
  %1949 = sext i16 %1948 to i32
  store i32 %1949, ptr %63, align 4, !tbaa !9
  br label %1950

1950:                                             ; preds = %1932
  %1951 = load i32, ptr %63, align 4, !tbaa !9
  %1952 = icmp slt i32 %1951, 0
  br i1 %1952, label %1932, label %1953, !llvm.loop !78

1953:                                             ; preds = %1950
  br label %1954

1954:                                             ; preds = %1953, %1928
  %1955 = load i32, ptr %64, align 4, !tbaa !9
  %1956 = load i64, ptr %21, align 8, !tbaa !11
  %1957 = zext i32 %1955 to i64
  %1958 = lshr i64 %1956, %1957
  store i64 %1958, ptr %21, align 8, !tbaa !11
  %1959 = load i32, ptr %64, align 4, !tbaa !9
  %1960 = load i32, ptr %17, align 4, !tbaa !9
  %1961 = sub i32 %1960, %1959
  store i32 %1961, ptr %17, align 4, !tbaa !9
  %1962 = load i32, ptr %19, align 4, !tbaa !9
  %1963 = trunc i32 %1962 to i8
  %1964 = load ptr, ptr %24, align 8, !tbaa !5
  %1965 = getelementptr inbounds i8, ptr %1964, i64 0
  store i8 %1963, ptr %1965, align 1, !tbaa !27
  %1966 = load i32, ptr %63, align 4, !tbaa !9
  %1967 = and i32 %1966, 256
  %1968 = icmp ne i32 %1967, 0
  br i1 %1968, label %1969, label %1973

1969:                                             ; preds = %1954
  %1970 = load ptr, ptr %24, align 8, !tbaa !5
  %1971 = getelementptr inbounds i8, ptr %1970, i32 1
  store ptr %1971, ptr %24, align 8, !tbaa !5
  %1972 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %1972, ptr %19, align 4, !tbaa !9
  store i32 205, ptr %28, align 4
  br label %1980

1973:                                             ; preds = %1954
  %1974 = load i32, ptr %63, align 4, !tbaa !9
  %1975 = trunc i32 %1974 to i8
  %1976 = load ptr, ptr %24, align 8, !tbaa !5
  %1977 = getelementptr inbounds i8, ptr %1976, i64 1
  store i8 %1975, ptr %1977, align 1, !tbaa !27
  %1978 = load ptr, ptr %24, align 8, !tbaa !5
  %1979 = getelementptr inbounds i8, ptr %1978, i64 2
  store ptr %1979, ptr %24, align 8, !tbaa !5
  store i32 0, ptr %28, align 4
  br label %1980

1980:                                             ; preds = %1973, %1969, %1916
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  %1981 = load i32, ptr %28, align 4
  switch i32 %1981, label %2944 [
    i32 0, label %1982
    i32 205, label %1984
  ]

1982:                                             ; preds = %1980
  br label %1983

1983:                                             ; preds = %1982, %1846
  br label %1632

1984:                                             ; preds = %1980, %1833
  %1985 = load i32, ptr %19, align 4, !tbaa !9
  %1986 = and i32 %1985, 511
  store i32 %1986, ptr %19, align 4, !tbaa !9
  %1987 = icmp eq i32 %1986, 256
  br i1 %1987, label %1988, label %1989

1988:                                             ; preds = %1984
  br label %2516

1989:                                             ; preds = %1984
  %1990 = load i32, ptr %19, align 4, !tbaa !9
  %1991 = sub i32 %1990, 257
  %1992 = zext i32 %1991 to i64
  %1993 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_extra, i64 0, i64 %1992
  %1994 = load i32, ptr %1993, align 4, !tbaa !9
  store i32 %1994, ptr %20, align 4, !tbaa !9
  %1995 = load i32, ptr %19, align 4, !tbaa !9
  %1996 = sub i32 %1995, 257
  %1997 = zext i32 %1996 to i64
  %1998 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_base, i64 0, i64 %1997
  %1999 = load i32, ptr %1998, align 4, !tbaa !9
  store i32 %1999, ptr %19, align 4, !tbaa !9
  %2000 = load i32, ptr %20, align 4, !tbaa !9
  %2001 = icmp ne i32 %2000, 0
  br i1 %2001, label %2002, label %2067

2002:                                             ; preds = %1989
  br label %2003

2003:                                             ; preds = %2002
  %2004 = load i32, ptr %17, align 4, !tbaa !9
  %2005 = load i32, ptr %20, align 4, !tbaa !9
  %2006 = icmp ult i32 %2004, %2005
  br i1 %2006, label %2007, label %2047

2007:                                             ; preds = %2003
  br label %2008

2008:                                             ; preds = %2042, %2007
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

2010:                                             ; preds = %2025, %2009
  %2011 = load ptr, ptr %22, align 8, !tbaa !5
  %2012 = load ptr, ptr %23, align 8, !tbaa !5
  %2013 = icmp uge ptr %2011, %2012
  br i1 %2013, label %2014, label %2026

2014:                                             ; preds = %2010
  br label %2015

2015:                                             ; preds = %2014
  %2016 = load i32, ptr %15, align 4, !tbaa !9
  %2017 = and i32 %2016, 2
  %2018 = icmp ne i32 %2017, 0
  %2019 = zext i1 %2018 to i64
  %2020 = select i1 %2018, i32 1, i32 -4
  store i32 %2020, ptr %16, align 4, !tbaa !9
  %2021 = load ptr, ptr %9, align 8, !tbaa !5
  %2022 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2021, i32 0, i32 0
  store i32 25, ptr %2022, align 8, !tbaa !20
  br label %2724

2023:                                             ; preds = %120
  br label %2024

2024:                                             ; preds = %2023
  br label %2025

2025:                                             ; preds = %2024
  br label %2010, !llvm.loop !79

2026:                                             ; preds = %2010
  %2027 = load ptr, ptr %22, align 8, !tbaa !5
  %2028 = getelementptr inbounds i8, ptr %2027, i32 1
  store ptr %2028, ptr %22, align 8, !tbaa !5
  %2029 = load i8, ptr %2027, align 1, !tbaa !27
  %2030 = zext i8 %2029 to i32
  store i32 %2030, ptr %66, align 4, !tbaa !9
  br label %2031

2031:                                             ; preds = %2026
  br label %2032

2032:                                             ; preds = %2031
  %2033 = load i32, ptr %66, align 4, !tbaa !9
  %2034 = zext i32 %2033 to i64
  %2035 = load i32, ptr %17, align 4, !tbaa !9
  %2036 = zext i32 %2035 to i64
  %2037 = shl i64 %2034, %2036
  %2038 = load i64, ptr %21, align 8, !tbaa !11
  %2039 = or i64 %2038, %2037
  store i64 %2039, ptr %21, align 8, !tbaa !11
  %2040 = load i32, ptr %17, align 4, !tbaa !9
  %2041 = add i32 %2040, 8
  store i32 %2041, ptr %17, align 4, !tbaa !9
  br label %2042

2042:                                             ; preds = %2032
  %2043 = load i32, ptr %17, align 4, !tbaa !9
  %2044 = load i32, ptr %20, align 4, !tbaa !9
  %2045 = icmp ult i32 %2043, %2044
  br i1 %2045, label %2008, label %2046, !llvm.loop !80

2046:                                             ; preds = %2042
  br label %2047

2047:                                             ; preds = %2046, %2003
  %2048 = load i64, ptr %21, align 8, !tbaa !11
  %2049 = load i32, ptr %20, align 4, !tbaa !9
  %2050 = shl i32 1, %2049
  %2051 = sub nsw i32 %2050, 1
  %2052 = sext i32 %2051 to i64
  %2053 = and i64 %2048, %2052
  %2054 = trunc i64 %2053 to i32
  store i32 %2054, ptr %65, align 4, !tbaa !9
  %2055 = load i32, ptr %20, align 4, !tbaa !9
  %2056 = load i64, ptr %21, align 8, !tbaa !11
  %2057 = zext i32 %2055 to i64
  %2058 = lshr i64 %2056, %2057
  store i64 %2058, ptr %21, align 8, !tbaa !11
  %2059 = load i32, ptr %20, align 4, !tbaa !9
  %2060 = load i32, ptr %17, align 4, !tbaa !9
  %2061 = sub i32 %2060, %2059
  store i32 %2061, ptr %17, align 4, !tbaa !9
  br label %2062

2062:                                             ; preds = %2047
  br label %2063

2063:                                             ; preds = %2062
  %2064 = load i32, ptr %65, align 4, !tbaa !9
  %2065 = load i32, ptr %19, align 4, !tbaa !9
  %2066 = add i32 %2065, %2064
  store i32 %2066, ptr %19, align 4, !tbaa !9
  br label %2067

2067:                                             ; preds = %2063, %1989
  br label %2068

2068:                                             ; preds = %2067
  %2069 = load i32, ptr %17, align 4, !tbaa !9
  %2070 = icmp ult i32 %2069, 15
  br i1 %2070, label %2071, label %2202

2071:                                             ; preds = %2068
  %2072 = load ptr, ptr %23, align 8, !tbaa !5
  %2073 = load ptr, ptr %22, align 8, !tbaa !5
  %2074 = ptrtoint ptr %2072 to i64
  %2075 = ptrtoint ptr %2073 to i64
  %2076 = sub i64 %2074, %2075
  %2077 = icmp slt i64 %2076, 2
  br i1 %2077, label %2078, label %2178

2078:                                             ; preds = %2071
  br label %2079

2079:                                             ; preds = %2174, %2078
  %2080 = load ptr, ptr %9, align 8, !tbaa !5
  %2081 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2080, i32 0, i32 14
  %2082 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2081, i64 0, i64 1
  %2083 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2082, i32 0, i32 1
  %2084 = load i64, ptr %21, align 8, !tbaa !11
  %2085 = and i64 %2084, 1023
  %2086 = getelementptr inbounds [1024 x i16], ptr %2083, i64 0, i64 %2085
  %2087 = load i16, ptr %2086, align 2, !tbaa !59
  %2088 = sext i16 %2087 to i32
  store i32 %2088, ptr %67, align 4, !tbaa !9
  %2089 = load i32, ptr %67, align 4, !tbaa !9
  %2090 = icmp sge i32 %2089, 0
  br i1 %2090, label %2091, label %2102

2091:                                             ; preds = %2079
  %2092 = load i32, ptr %67, align 4, !tbaa !9
  %2093 = ashr i32 %2092, 9
  store i32 %2093, ptr %68, align 4, !tbaa !9
  %2094 = load i32, ptr %68, align 4, !tbaa !9
  %2095 = icmp ne i32 %2094, 0
  br i1 %2095, label %2096, label %2101

2096:                                             ; preds = %2091
  %2097 = load i32, ptr %17, align 4, !tbaa !9
  %2098 = load i32, ptr %68, align 4, !tbaa !9
  %2099 = icmp uge i32 %2097, %2098
  br i1 %2099, label %2100, label %2101

2100:                                             ; preds = %2096
  br label %2177

2101:                                             ; preds = %2096, %2091
  br label %2140

2102:                                             ; preds = %2079
  %2103 = load i32, ptr %17, align 4, !tbaa !9
  %2104 = icmp ugt i32 %2103, 10
  br i1 %2104, label %2105, label %2139

2105:                                             ; preds = %2102
  store i32 10, ptr %68, align 4, !tbaa !9
  br label %2106

2106:                                             ; preds = %2132, %2105
  %2107 = load ptr, ptr %9, align 8, !tbaa !5
  %2108 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2107, i32 0, i32 14
  %2109 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2108, i64 0, i64 1
  %2110 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2109, i32 0, i32 2
  %2111 = load i32, ptr %67, align 4, !tbaa !9
  %2112 = xor i32 %2111, -1
  %2113 = sext i32 %2112 to i64
  %2114 = load i64, ptr %21, align 8, !tbaa !11
  %2115 = load i32, ptr %68, align 4, !tbaa !9
  %2116 = add i32 %2115, 1
  store i32 %2116, ptr %68, align 4, !tbaa !9
  %2117 = zext i32 %2115 to i64
  %2118 = lshr i64 %2114, %2117
  %2119 = and i64 %2118, 1
  %2120 = add i64 %2113, %2119
  %2121 = getelementptr inbounds [576 x i16], ptr %2110, i64 0, i64 %2120
  %2122 = load i16, ptr %2121, align 2, !tbaa !59
  %2123 = sext i16 %2122 to i32
  store i32 %2123, ptr %67, align 4, !tbaa !9
  br label %2124

2124:                                             ; preds = %2106
  %2125 = load i32, ptr %67, align 4, !tbaa !9
  %2126 = icmp slt i32 %2125, 0
  br i1 %2126, label %2127, label %2132

2127:                                             ; preds = %2124
  %2128 = load i32, ptr %17, align 4, !tbaa !9
  %2129 = load i32, ptr %68, align 4, !tbaa !9
  %2130 = add i32 %2129, 1
  %2131 = icmp uge i32 %2128, %2130
  br label %2132

2132:                                             ; preds = %2127, %2124
  %2133 = phi i1 [ false, %2124 ], [ %2131, %2127 ]
  br i1 %2133, label %2106, label %2134, !llvm.loop !81

2134:                                             ; preds = %2132
  %2135 = load i32, ptr %67, align 4, !tbaa !9
  %2136 = icmp sge i32 %2135, 0
  br i1 %2136, label %2137, label %2138

2137:                                             ; preds = %2134
  br label %2177

2138:                                             ; preds = %2134
  br label %2139

2139:                                             ; preds = %2138, %2102
  br label %2140

2140:                                             ; preds = %2139, %2101
  br label %2141

2141:                                             ; preds = %2140
  br label %2142

2142:                                             ; preds = %2157, %2141
  %2143 = load ptr, ptr %22, align 8, !tbaa !5
  %2144 = load ptr, ptr %23, align 8, !tbaa !5
  %2145 = icmp uge ptr %2143, %2144
  br i1 %2145, label %2146, label %2158

2146:                                             ; preds = %2142
  br label %2147

2147:                                             ; preds = %2146
  %2148 = load i32, ptr %15, align 4, !tbaa !9
  %2149 = and i32 %2148, 2
  %2150 = icmp ne i32 %2149, 0
  %2151 = zext i1 %2150 to i64
  %2152 = select i1 %2150, i32 1, i32 -4
  store i32 %2152, ptr %16, align 4, !tbaa !9
  %2153 = load ptr, ptr %9, align 8, !tbaa !5
  %2154 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2153, i32 0, i32 0
  store i32 26, ptr %2154, align 8, !tbaa !20
  br label %2724

2155:                                             ; preds = %120
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

2157:                                             ; preds = %2156
  br label %2142, !llvm.loop !82

2158:                                             ; preds = %2142
  %2159 = load ptr, ptr %22, align 8, !tbaa !5
  %2160 = getelementptr inbounds i8, ptr %2159, i32 1
  store ptr %2160, ptr %22, align 8, !tbaa !5
  %2161 = load i8, ptr %2159, align 1, !tbaa !27
  %2162 = zext i8 %2161 to i32
  store i32 %2162, ptr %69, align 4, !tbaa !9
  br label %2163

2163:                                             ; preds = %2158
  br label %2164

2164:                                             ; preds = %2163
  %2165 = load i32, ptr %69, align 4, !tbaa !9
  %2166 = zext i32 %2165 to i64
  %2167 = load i32, ptr %17, align 4, !tbaa !9
  %2168 = zext i32 %2167 to i64
  %2169 = shl i64 %2166, %2168
  %2170 = load i64, ptr %21, align 8, !tbaa !11
  %2171 = or i64 %2170, %2169
  store i64 %2171, ptr %21, align 8, !tbaa !11
  %2172 = load i32, ptr %17, align 4, !tbaa !9
  %2173 = add i32 %2172, 8
  store i32 %2173, ptr %17, align 4, !tbaa !9
  br label %2174

2174:                                             ; preds = %2164
  %2175 = load i32, ptr %17, align 4, !tbaa !9
  %2176 = icmp ult i32 %2175, 15
  br i1 %2176, label %2079, label %2177, !llvm.loop !83

2177:                                             ; preds = %2174, %2137, %2100
  br label %2201

2178:                                             ; preds = %2071
  %2179 = load ptr, ptr %22, align 8, !tbaa !5
  %2180 = getelementptr inbounds i8, ptr %2179, i64 0
  %2181 = load i8, ptr %2180, align 1, !tbaa !27
  %2182 = zext i8 %2181 to i64
  %2183 = load i32, ptr %17, align 4, !tbaa !9
  %2184 = zext i32 %2183 to i64
  %2185 = shl i64 %2182, %2184
  %2186 = load ptr, ptr %22, align 8, !tbaa !5
  %2187 = getelementptr inbounds i8, ptr %2186, i64 1
  %2188 = load i8, ptr %2187, align 1, !tbaa !27
  %2189 = zext i8 %2188 to i64
  %2190 = load i32, ptr %17, align 4, !tbaa !9
  %2191 = add i32 %2190, 8
  %2192 = zext i32 %2191 to i64
  %2193 = shl i64 %2189, %2192
  %2194 = or i64 %2185, %2193
  %2195 = load i64, ptr %21, align 8, !tbaa !11
  %2196 = or i64 %2195, %2194
  store i64 %2196, ptr %21, align 8, !tbaa !11
  %2197 = load ptr, ptr %22, align 8, !tbaa !5
  %2198 = getelementptr inbounds i8, ptr %2197, i64 2
  store ptr %2198, ptr %22, align 8, !tbaa !5
  %2199 = load i32, ptr %17, align 4, !tbaa !9
  %2200 = add i32 %2199, 16
  store i32 %2200, ptr %17, align 4, !tbaa !9
  br label %2201

2201:                                             ; preds = %2178, %2177
  br label %2202

2202:                                             ; preds = %2201, %2068
  %2203 = load ptr, ptr %9, align 8, !tbaa !5
  %2204 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2203, i32 0, i32 14
  %2205 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2204, i64 0, i64 1
  %2206 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2205, i32 0, i32 1
  %2207 = load i64, ptr %21, align 8, !tbaa !11
  %2208 = and i64 %2207, 1023
  %2209 = getelementptr inbounds [1024 x i16], ptr %2206, i64 0, i64 %2208
  %2210 = load i16, ptr %2209, align 2, !tbaa !59
  %2211 = sext i16 %2210 to i32
  store i32 %2211, ptr %67, align 4, !tbaa !9
  %2212 = icmp sge i32 %2211, 0
  br i1 %2212, label %2213, label %2218

2213:                                             ; preds = %2202
  %2214 = load i32, ptr %67, align 4, !tbaa !9
  %2215 = ashr i32 %2214, 9
  store i32 %2215, ptr %68, align 4, !tbaa !9
  %2216 = load i32, ptr %67, align 4, !tbaa !9
  %2217 = and i32 %2216, 511
  store i32 %2217, ptr %67, align 4, !tbaa !9
  br label %2241

2218:                                             ; preds = %2202
  store i32 10, ptr %68, align 4, !tbaa !9
  br label %2219

2219:                                             ; preds = %2237, %2218
  %2220 = load ptr, ptr %9, align 8, !tbaa !5
  %2221 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2220, i32 0, i32 14
  %2222 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2221, i64 0, i64 1
  %2223 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2222, i32 0, i32 2
  %2224 = load i32, ptr %67, align 4, !tbaa !9
  %2225 = xor i32 %2224, -1
  %2226 = sext i32 %2225 to i64
  %2227 = load i64, ptr %21, align 8, !tbaa !11
  %2228 = load i32, ptr %68, align 4, !tbaa !9
  %2229 = add i32 %2228, 1
  store i32 %2229, ptr %68, align 4, !tbaa !9
  %2230 = zext i32 %2228 to i64
  %2231 = lshr i64 %2227, %2230
  %2232 = and i64 %2231, 1
  %2233 = add i64 %2226, %2232
  %2234 = getelementptr inbounds [576 x i16], ptr %2223, i64 0, i64 %2233
  %2235 = load i16, ptr %2234, align 2, !tbaa !59
  %2236 = sext i16 %2235 to i32
  store i32 %2236, ptr %67, align 4, !tbaa !9
  br label %2237

2237:                                             ; preds = %2219
  %2238 = load i32, ptr %67, align 4, !tbaa !9
  %2239 = icmp slt i32 %2238, 0
  br i1 %2239, label %2219, label %2240, !llvm.loop !84

2240:                                             ; preds = %2237
  br label %2241

2241:                                             ; preds = %2240, %2213
  %2242 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %2242, ptr %18, align 4, !tbaa !9
  %2243 = load i32, ptr %68, align 4, !tbaa !9
  %2244 = load i64, ptr %21, align 8, !tbaa !11
  %2245 = zext i32 %2243 to i64
  %2246 = lshr i64 %2244, %2245
  store i64 %2246, ptr %21, align 8, !tbaa !11
  %2247 = load i32, ptr %68, align 4, !tbaa !9
  %2248 = load i32, ptr %17, align 4, !tbaa !9
  %2249 = sub i32 %2248, %2247
  store i32 %2249, ptr %17, align 4, !tbaa !9
  br label %2250

2250:                                             ; preds = %2241
  br label %2251

2251:                                             ; preds = %2250
  %2252 = load i32, ptr %18, align 4, !tbaa !9
  %2253 = zext i32 %2252 to i64
  %2254 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_extra, i64 0, i64 %2253
  %2255 = load i32, ptr %2254, align 4, !tbaa !9
  store i32 %2255, ptr %20, align 4, !tbaa !9
  %2256 = load i32, ptr %18, align 4, !tbaa !9
  %2257 = zext i32 %2256 to i64
  %2258 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_base, i64 0, i64 %2257
  %2259 = load i32, ptr %2258, align 4, !tbaa !9
  store i32 %2259, ptr %18, align 4, !tbaa !9
  %2260 = load i32, ptr %20, align 4, !tbaa !9
  %2261 = icmp ne i32 %2260, 0
  br i1 %2261, label %2262, label %2327

2262:                                             ; preds = %2251
  br label %2263

2263:                                             ; preds = %2262
  %2264 = load i32, ptr %17, align 4, !tbaa !9
  %2265 = load i32, ptr %20, align 4, !tbaa !9
  %2266 = icmp ult i32 %2264, %2265
  br i1 %2266, label %2267, label %2307

2267:                                             ; preds = %2263
  br label %2268

2268:                                             ; preds = %2302, %2267
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

2270:                                             ; preds = %2285, %2269
  %2271 = load ptr, ptr %22, align 8, !tbaa !5
  %2272 = load ptr, ptr %23, align 8, !tbaa !5
  %2273 = icmp uge ptr %2271, %2272
  br i1 %2273, label %2274, label %2286

2274:                                             ; preds = %2270
  br label %2275

2275:                                             ; preds = %2274
  %2276 = load i32, ptr %15, align 4, !tbaa !9
  %2277 = and i32 %2276, 2
  %2278 = icmp ne i32 %2277, 0
  %2279 = zext i1 %2278 to i64
  %2280 = select i1 %2278, i32 1, i32 -4
  store i32 %2280, ptr %16, align 4, !tbaa !9
  %2281 = load ptr, ptr %9, align 8, !tbaa !5
  %2282 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2281, i32 0, i32 0
  store i32 27, ptr %2282, align 8, !tbaa !20
  br label %2724

2283:                                             ; preds = %120
  br label %2284

2284:                                             ; preds = %2283
  br label %2285

2285:                                             ; preds = %2284
  br label %2270, !llvm.loop !85

2286:                                             ; preds = %2270
  %2287 = load ptr, ptr %22, align 8, !tbaa !5
  %2288 = getelementptr inbounds i8, ptr %2287, i32 1
  store ptr %2288, ptr %22, align 8, !tbaa !5
  %2289 = load i8, ptr %2287, align 1, !tbaa !27
  %2290 = zext i8 %2289 to i32
  store i32 %2290, ptr %71, align 4, !tbaa !9
  br label %2291

2291:                                             ; preds = %2286
  br label %2292

2292:                                             ; preds = %2291
  %2293 = load i32, ptr %71, align 4, !tbaa !9
  %2294 = zext i32 %2293 to i64
  %2295 = load i32, ptr %17, align 4, !tbaa !9
  %2296 = zext i32 %2295 to i64
  %2297 = shl i64 %2294, %2296
  %2298 = load i64, ptr %21, align 8, !tbaa !11
  %2299 = or i64 %2298, %2297
  store i64 %2299, ptr %21, align 8, !tbaa !11
  %2300 = load i32, ptr %17, align 4, !tbaa !9
  %2301 = add i32 %2300, 8
  store i32 %2301, ptr %17, align 4, !tbaa !9
  br label %2302

2302:                                             ; preds = %2292
  %2303 = load i32, ptr %17, align 4, !tbaa !9
  %2304 = load i32, ptr %20, align 4, !tbaa !9
  %2305 = icmp ult i32 %2303, %2304
  br i1 %2305, label %2268, label %2306, !llvm.loop !86

2306:                                             ; preds = %2302
  br label %2307

2307:                                             ; preds = %2306, %2263
  %2308 = load i64, ptr %21, align 8, !tbaa !11
  %2309 = load i32, ptr %20, align 4, !tbaa !9
  %2310 = shl i32 1, %2309
  %2311 = sub nsw i32 %2310, 1
  %2312 = sext i32 %2311 to i64
  %2313 = and i64 %2308, %2312
  %2314 = trunc i64 %2313 to i32
  store i32 %2314, ptr %70, align 4, !tbaa !9
  %2315 = load i32, ptr %20, align 4, !tbaa !9
  %2316 = load i64, ptr %21, align 8, !tbaa !11
  %2317 = zext i32 %2315 to i64
  %2318 = lshr i64 %2316, %2317
  store i64 %2318, ptr %21, align 8, !tbaa !11
  %2319 = load i32, ptr %20, align 4, !tbaa !9
  %2320 = load i32, ptr %17, align 4, !tbaa !9
  %2321 = sub i32 %2320, %2319
  store i32 %2321, ptr %17, align 4, !tbaa !9
  br label %2322

2322:                                             ; preds = %2307
  br label %2323

2323:                                             ; preds = %2322
  %2324 = load i32, ptr %70, align 4, !tbaa !9
  %2325 = load i32, ptr %18, align 4, !tbaa !9
  %2326 = add i32 %2325, %2324
  store i32 %2326, ptr %18, align 4, !tbaa !9
  br label %2327

2327:                                             ; preds = %2323, %2251
  %2328 = load ptr, ptr %24, align 8, !tbaa !5
  %2329 = load ptr, ptr %12, align 8, !tbaa !5
  %2330 = ptrtoint ptr %2328 to i64
  %2331 = ptrtoint ptr %2329 to i64
  %2332 = sub i64 %2330, %2331
  store i64 %2332, ptr %27, align 8, !tbaa !11
  %2333 = load i32, ptr %18, align 4, !tbaa !9
  %2334 = icmp eq i32 %2333, 0
  br i1 %2334, label %2343, label %2335

2335:                                             ; preds = %2327
  %2336 = load i32, ptr %18, align 4, !tbaa !9
  %2337 = zext i32 %2336 to i64
  %2338 = load i64, ptr %27, align 8, !tbaa !11
  %2339 = icmp ugt i64 %2337, %2338
  br i1 %2339, label %2343, label %2340

2340:                                             ; preds = %2335
  %2341 = load i64, ptr %27, align 8, !tbaa !11
  %2342 = icmp eq i64 %2341, 0
  br i1 %2342, label %2343, label %2358

2343:                                             ; preds = %2340, %2335, %2327
  %2344 = load i32, ptr %15, align 4, !tbaa !9
  %2345 = and i32 %2344, 4
  %2346 = icmp ne i32 %2345, 0
  br i1 %2346, label %2347, label %2358

2347:                                             ; preds = %2343
  br label %2348

2348:                                             ; preds = %2347
  br label %2349

2349:                                             ; preds = %2355, %2348
  br label %2350

2350:                                             ; preds = %2349
  store i32 -1, ptr %16, align 4, !tbaa !9
  %2351 = load ptr, ptr %9, align 8, !tbaa !5
  %2352 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2351, i32 0, i32 0
  store i32 37, ptr %2352, align 8, !tbaa !20
  br label %2724

2353:                                             ; preds = %120
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

2355:                                             ; preds = %2354
  br label %2349

2356:                                             ; No predecessors!
  br label %2357

2357:                                             ; preds = %2356
  br label %2358

2358:                                             ; preds = %2357, %2343, %2340
  %2359 = load ptr, ptr %12, align 8, !tbaa !5
  %2360 = load i64, ptr %27, align 8, !tbaa !11
  %2361 = load i32, ptr %18, align 4, !tbaa !9
  %2362 = zext i32 %2361 to i64
  %2363 = sub i64 %2360, %2362
  %2364 = load i64, ptr %26, align 8, !tbaa !11
  %2365 = and i64 %2363, %2364
  %2366 = getelementptr inbounds i8, ptr %2359, i64 %2365
  store ptr %2366, ptr %59, align 8, !tbaa !5
  %2367 = load ptr, ptr %24, align 8, !tbaa !5
  %2368 = load ptr, ptr %59, align 8, !tbaa !5
  %2369 = icmp ugt ptr %2367, %2368
  br i1 %2369, label %2370, label %2372

2370:                                             ; preds = %2358
  %2371 = load ptr, ptr %24, align 8, !tbaa !5
  br label %2374

2372:                                             ; preds = %2358
  %2373 = load ptr, ptr %59, align 8, !tbaa !5
  br label %2374

2374:                                             ; preds = %2372, %2370
  %2375 = phi ptr [ %2371, %2370 ], [ %2373, %2372 ]
  %2376 = load i32, ptr %19, align 4, !tbaa !9
  %2377 = zext i32 %2376 to i64
  %2378 = getelementptr inbounds i8, ptr %2375, i64 %2377
  %2379 = load ptr, ptr %25, align 8, !tbaa !5
  %2380 = icmp ugt ptr %2378, %2379
  br i1 %2380, label %2381, label %2412

2381:                                             ; preds = %2374
  br label %2382

2382:                                             ; preds = %2398, %2381
  %2383 = load i32, ptr %19, align 4, !tbaa !9
  %2384 = add i32 %2383, -1
  store i32 %2384, ptr %19, align 4, !tbaa !9
  %2385 = icmp ne i32 %2383, 0
  br i1 %2385, label %2386, label %2411

2386:                                             ; preds = %2382
  br label %2387

2387:                                             ; preds = %2397, %2386
  %2388 = load ptr, ptr %24, align 8, !tbaa !5
  %2389 = load ptr, ptr %25, align 8, !tbaa !5
  %2390 = icmp uge ptr %2388, %2389
  br i1 %2390, label %2391, label %2398

2391:                                             ; preds = %2387
  br label %2392

2392:                                             ; preds = %2391
  store i32 2, ptr %16, align 4, !tbaa !9
  %2393 = load ptr, ptr %9, align 8, !tbaa !5
  %2394 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2393, i32 0, i32 0
  store i32 53, ptr %2394, align 8, !tbaa !20
  br label %2724

2395:                                             ; preds = %120
  br label %2396

2396:                                             ; preds = %2395
  br label %2397

2397:                                             ; preds = %2396
  br label %2387, !llvm.loop !87

2398:                                             ; preds = %2387
  %2399 = load ptr, ptr %12, align 8, !tbaa !5
  %2400 = load i64, ptr %27, align 8, !tbaa !11
  %2401 = add i64 %2400, 1
  store i64 %2401, ptr %27, align 8, !tbaa !11
  %2402 = load i32, ptr %18, align 4, !tbaa !9
  %2403 = zext i32 %2402 to i64
  %2404 = sub i64 %2400, %2403
  %2405 = load i64, ptr %26, align 8, !tbaa !11
  %2406 = and i64 %2404, %2405
  %2407 = getelementptr inbounds i8, ptr %2399, i64 %2406
  %2408 = load i8, ptr %2407, align 1, !tbaa !27
  %2409 = load ptr, ptr %24, align 8, !tbaa !5
  %2410 = getelementptr inbounds i8, ptr %2409, i32 1
  store ptr %2410, ptr %24, align 8, !tbaa !5
  store i8 %2408, ptr %2409, align 1, !tbaa !27
  br label %2382, !llvm.loop !88

2411:                                             ; preds = %2382
  br label %1631

2412:                                             ; preds = %2374
  %2413 = load i32, ptr %19, align 4, !tbaa !9
  %2414 = icmp uge i32 %2413, 9
  br i1 %2414, label %2415, label %2466

2415:                                             ; preds = %2412
  %2416 = load i32, ptr %19, align 4, !tbaa !9
  %2417 = load i32, ptr %18, align 4, !tbaa !9
  %2418 = icmp ule i32 %2416, %2417
  br i1 %2418, label %2419, label %2466

2419:                                             ; preds = %2415
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  %2420 = load ptr, ptr %59, align 8, !tbaa !5
  %2421 = load i32, ptr %19, align 4, !tbaa !9
  %2422 = and i32 %2421, -8
  %2423 = zext i32 %2422 to i64
  %2424 = getelementptr inbounds i8, ptr %2420, i64 %2423
  store ptr %2424, ptr %72, align 8, !tbaa !5
  br label %2425

2425:                                             ; preds = %2430, %2419
  %2426 = load ptr, ptr %24, align 8, !tbaa !5
  %2427 = load ptr, ptr %59, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2426, ptr align 1 %2427, i64 8, i1 false)
  %2428 = load ptr, ptr %24, align 8, !tbaa !5
  %2429 = getelementptr inbounds i8, ptr %2428, i64 8
  store ptr %2429, ptr %24, align 8, !tbaa !5
  br label %2430

2430:                                             ; preds = %2425
  %2431 = load ptr, ptr %59, align 8, !tbaa !5
  %2432 = getelementptr inbounds i8, ptr %2431, i64 8
  store ptr %2432, ptr %59, align 8, !tbaa !5
  %2433 = load ptr, ptr %72, align 8, !tbaa !5
  %2434 = icmp ult ptr %2432, %2433
  br i1 %2434, label %2425, label %2435, !llvm.loop !89

2435:                                             ; preds = %2430
  %2436 = load i32, ptr %19, align 4, !tbaa !9
  %2437 = and i32 %2436, 7
  store i32 %2437, ptr %19, align 4, !tbaa !9
  %2438 = icmp ult i32 %2437, 3
  br i1 %2438, label %2439, label %2462

2439:                                             ; preds = %2435
  %2440 = load i32, ptr %19, align 4, !tbaa !9
  %2441 = icmp ne i32 %2440, 0
  br i1 %2441, label %2442, label %2461

2442:                                             ; preds = %2439
  %2443 = load ptr, ptr %59, align 8, !tbaa !5
  %2444 = getelementptr inbounds i8, ptr %2443, i64 0
  %2445 = load i8, ptr %2444, align 1, !tbaa !27
  %2446 = load ptr, ptr %24, align 8, !tbaa !5
  %2447 = getelementptr inbounds i8, ptr %2446, i64 0
  store i8 %2445, ptr %2447, align 1, !tbaa !27
  %2448 = load i32, ptr %19, align 4, !tbaa !9
  %2449 = icmp ugt i32 %2448, 1
  br i1 %2449, label %2450, label %2456

2450:                                             ; preds = %2442
  %2451 = load ptr, ptr %59, align 8, !tbaa !5
  %2452 = getelementptr inbounds i8, ptr %2451, i64 1
  %2453 = load i8, ptr %2452, align 1, !tbaa !27
  %2454 = load ptr, ptr %24, align 8, !tbaa !5
  %2455 = getelementptr inbounds i8, ptr %2454, i64 1
  store i8 %2453, ptr %2455, align 1, !tbaa !27
  br label %2456

2456:                                             ; preds = %2450, %2442
  %2457 = load i32, ptr %19, align 4, !tbaa !9
  %2458 = load ptr, ptr %24, align 8, !tbaa !5
  %2459 = zext i32 %2457 to i64
  %2460 = getelementptr inbounds i8, ptr %2458, i64 %2459
  store ptr %2460, ptr %24, align 8, !tbaa !5
  br label %2461

2461:                                             ; preds = %2456, %2439
  store i32 204, ptr %28, align 4
  br label %2463

2462:                                             ; preds = %2435
  store i32 0, ptr %28, align 4
  br label %2463

2463:                                             ; preds = %2462, %2461
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  %2464 = load i32, ptr %28, align 4
  switch i32 %2464, label %2944 [
    i32 0, label %2465
    i32 204, label %1631
  ]

2465:                                             ; preds = %2463
  br label %2466

2466:                                             ; preds = %2465, %2415, %2412
  br label %2467

2467:                                             ; preds = %2466
  br label %2468

2468:                                             ; preds = %2471, %2467
  %2469 = load i32, ptr %19, align 4, !tbaa !9
  %2470 = icmp ugt i32 %2469, 2
  br i1 %2470, label %2471, label %2493

2471:                                             ; preds = %2468
  %2472 = load ptr, ptr %59, align 8, !tbaa !5
  %2473 = getelementptr inbounds i8, ptr %2472, i64 0
  %2474 = load i8, ptr %2473, align 1, !tbaa !27
  %2475 = load ptr, ptr %24, align 8, !tbaa !5
  %2476 = getelementptr inbounds i8, ptr %2475, i64 0
  store i8 %2474, ptr %2476, align 1, !tbaa !27
  %2477 = load ptr, ptr %59, align 8, !tbaa !5
  %2478 = getelementptr inbounds i8, ptr %2477, i64 1
  %2479 = load i8, ptr %2478, align 1, !tbaa !27
  %2480 = load ptr, ptr %24, align 8, !tbaa !5
  %2481 = getelementptr inbounds i8, ptr %2480, i64 1
  store i8 %2479, ptr %2481, align 1, !tbaa !27
  %2482 = load ptr, ptr %59, align 8, !tbaa !5
  %2483 = getelementptr inbounds i8, ptr %2482, i64 2
  %2484 = load i8, ptr %2483, align 1, !tbaa !27
  %2485 = load ptr, ptr %24, align 8, !tbaa !5
  %2486 = getelementptr inbounds i8, ptr %2485, i64 2
  store i8 %2484, ptr %2486, align 1, !tbaa !27
  %2487 = load ptr, ptr %24, align 8, !tbaa !5
  %2488 = getelementptr inbounds i8, ptr %2487, i64 3
  store ptr %2488, ptr %24, align 8, !tbaa !5
  %2489 = load ptr, ptr %59, align 8, !tbaa !5
  %2490 = getelementptr inbounds i8, ptr %2489, i64 3
  store ptr %2490, ptr %59, align 8, !tbaa !5
  %2491 = load i32, ptr %19, align 4, !tbaa !9
  %2492 = sub i32 %2491, 3
  store i32 %2492, ptr %19, align 4, !tbaa !9
  br label %2468, !llvm.loop !90

2493:                                             ; preds = %2468
  %2494 = load i32, ptr %19, align 4, !tbaa !9
  %2495 = icmp ugt i32 %2494, 0
  br i1 %2495, label %2496, label %2515

2496:                                             ; preds = %2493
  %2497 = load ptr, ptr %59, align 8, !tbaa !5
  %2498 = getelementptr inbounds i8, ptr %2497, i64 0
  %2499 = load i8, ptr %2498, align 1, !tbaa !27
  %2500 = load ptr, ptr %24, align 8, !tbaa !5
  %2501 = getelementptr inbounds i8, ptr %2500, i64 0
  store i8 %2499, ptr %2501, align 1, !tbaa !27
  %2502 = load i32, ptr %19, align 4, !tbaa !9
  %2503 = icmp ugt i32 %2502, 1
  br i1 %2503, label %2504, label %2510

2504:                                             ; preds = %2496
  %2505 = load ptr, ptr %59, align 8, !tbaa !5
  %2506 = getelementptr inbounds i8, ptr %2505, i64 1
  %2507 = load i8, ptr %2506, align 1, !tbaa !27
  %2508 = load ptr, ptr %24, align 8, !tbaa !5
  %2509 = getelementptr inbounds i8, ptr %2508, i64 1
  store i8 %2507, ptr %2509, align 1, !tbaa !27
  br label %2510

2510:                                             ; preds = %2504, %2496
  %2511 = load i32, ptr %19, align 4, !tbaa !9
  %2512 = load ptr, ptr %24, align 8, !tbaa !5
  %2513 = zext i32 %2511 to i64
  %2514 = getelementptr inbounds i8, ptr %2512, i64 %2513
  store ptr %2514, ptr %24, align 8, !tbaa !5
  br label %2515

2515:                                             ; preds = %2510, %2493
  br label %1631

2516:                                             ; preds = %1988
  br label %2517

2517:                                             ; preds = %2516, %736
  br label %2518

2518:                                             ; preds = %2517, %720
  br label %2519

2519:                                             ; preds = %2518
  %2520 = load ptr, ptr %9, align 8, !tbaa !5
  %2521 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2520, i32 0, i32 5
  %2522 = load i32, ptr %2521, align 4, !tbaa !31
  %2523 = and i32 %2522, 1
  %2524 = icmp ne i32 %2523, 0
  %2525 = xor i1 %2524, true
  br i1 %2525, label %275, label %2526, !llvm.loop !91

2526:                                             ; preds = %2519
  br label %2527

2527:                                             ; preds = %2526
  %2528 = load i32, ptr %17, align 4, !tbaa !9
  %2529 = load i32, ptr %17, align 4, !tbaa !9
  %2530 = and i32 %2529, 7
  %2531 = icmp ult i32 %2528, %2530
  br i1 %2531, label %2532, label %2573

2532:                                             ; preds = %2527
  br label %2533

2533:                                             ; preds = %2567, %2532
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2550, %2534
  %2536 = load ptr, ptr %22, align 8, !tbaa !5
  %2537 = load ptr, ptr %23, align 8, !tbaa !5
  %2538 = icmp uge ptr %2536, %2537
  br i1 %2538, label %2539, label %2551

2539:                                             ; preds = %2535
  br label %2540

2540:                                             ; preds = %2539
  %2541 = load i32, ptr %15, align 4, !tbaa !9
  %2542 = and i32 %2541, 2
  %2543 = icmp ne i32 %2542, 0
  %2544 = zext i1 %2543 to i64
  %2545 = select i1 %2543, i32 1, i32 -4
  store i32 %2545, ptr %16, align 4, !tbaa !9
  %2546 = load ptr, ptr %9, align 8, !tbaa !5
  %2547 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2546, i32 0, i32 0
  store i32 32, ptr %2547, align 8, !tbaa !20
  br label %2724

2548:                                             ; preds = %120
  br label %2549

2549:                                             ; preds = %2548
  br label %2550

2550:                                             ; preds = %2549
  br label %2535, !llvm.loop !92

2551:                                             ; preds = %2535
  %2552 = load ptr, ptr %22, align 8, !tbaa !5
  %2553 = getelementptr inbounds i8, ptr %2552, i32 1
  store ptr %2553, ptr %22, align 8, !tbaa !5
  %2554 = load i8, ptr %2552, align 1, !tbaa !27
  %2555 = zext i8 %2554 to i32
  store i32 %2555, ptr %73, align 4, !tbaa !9
  br label %2556

2556:                                             ; preds = %2551
  br label %2557

2557:                                             ; preds = %2556
  %2558 = load i32, ptr %73, align 4, !tbaa !9
  %2559 = zext i32 %2558 to i64
  %2560 = load i32, ptr %17, align 4, !tbaa !9
  %2561 = zext i32 %2560 to i64
  %2562 = shl i64 %2559, %2561
  %2563 = load i64, ptr %21, align 8, !tbaa !11
  %2564 = or i64 %2563, %2562
  store i64 %2564, ptr %21, align 8, !tbaa !11
  %2565 = load i32, ptr %17, align 4, !tbaa !9
  %2566 = add i32 %2565, 8
  store i32 %2566, ptr %17, align 4, !tbaa !9
  br label %2567

2567:                                             ; preds = %2557
  %2568 = load i32, ptr %17, align 4, !tbaa !9
  %2569 = load i32, ptr %17, align 4, !tbaa !9
  %2570 = and i32 %2569, 7
  %2571 = icmp ult i32 %2568, %2570
  br i1 %2571, label %2533, label %2572, !llvm.loop !93

2572:                                             ; preds = %2567
  br label %2573

2573:                                             ; preds = %2572, %2527
  %2574 = load i32, ptr %17, align 4, !tbaa !9
  %2575 = and i32 %2574, 7
  %2576 = load i64, ptr %21, align 8, !tbaa !11
  %2577 = zext i32 %2575 to i64
  %2578 = lshr i64 %2576, %2577
  store i64 %2578, ptr %21, align 8, !tbaa !11
  %2579 = load i32, ptr %17, align 4, !tbaa !9
  %2580 = and i32 %2579, 7
  %2581 = load i32, ptr %17, align 4, !tbaa !9
  %2582 = sub i32 %2581, %2580
  store i32 %2582, ptr %17, align 4, !tbaa !9
  br label %2583

2583:                                             ; preds = %2573
  br label %2584

2584:                                             ; preds = %2583
  br label %2585

2585:                                             ; preds = %2594, %2584
  %2586 = load ptr, ptr %22, align 8, !tbaa !5
  %2587 = load ptr, ptr %10, align 8, !tbaa !5
  %2588 = icmp ugt ptr %2586, %2587
  br i1 %2588, label %2589, label %2592

2589:                                             ; preds = %2585
  %2590 = load i32, ptr %17, align 4, !tbaa !9
  %2591 = icmp uge i32 %2590, 8
  br label %2592

2592:                                             ; preds = %2589, %2585
  %2593 = phi i1 [ false, %2585 ], [ %2591, %2589 ]
  br i1 %2593, label %2594, label %2599

2594:                                             ; preds = %2592
  %2595 = load ptr, ptr %22, align 8, !tbaa !5
  %2596 = getelementptr inbounds i8, ptr %2595, i32 -1
  store ptr %2596, ptr %22, align 8, !tbaa !5
  %2597 = load i32, ptr %17, align 4, !tbaa !9
  %2598 = sub i32 %2597, 8
  store i32 %2598, ptr %17, align 4, !tbaa !9
  br label %2585, !llvm.loop !94

2599:                                             ; preds = %2592
  %2600 = load i32, ptr %17, align 4, !tbaa !9
  %2601 = zext i32 %2600 to i64
  %2602 = shl i64 1, %2601
  %2603 = sub i64 %2602, 1
  %2604 = load i64, ptr %21, align 8, !tbaa !11
  %2605 = and i64 %2604, %2603
  store i64 %2605, ptr %21, align 8, !tbaa !11
  %2606 = load i32, ptr %17, align 4, !tbaa !9
  %2607 = icmp ne i32 %2606, 0
  br i1 %2607, label %2609, label %2608

2608:                                             ; preds = %2599
  br label %2610

2609:                                             ; preds = %2599
  call void @__assert_fail(ptr noundef @.str.17, ptr noundef @.str.12, i32 noundef 2793, ptr noundef @__PRETTY_FUNCTION__.tinfl_decompress) #6
  unreachable

2610:                                             ; preds = %2608
  %2611 = load i32, ptr %15, align 4, !tbaa !9
  %2612 = and i32 %2611, 1
  %2613 = icmp ne i32 %2612, 0
  br i1 %2613, label %2614, label %2712

2614:                                             ; preds = %2610
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2615

2615:                                             ; preds = %2708, %2614
  %2616 = load i32, ptr %19, align 4, !tbaa !9
  %2617 = icmp ult i32 %2616, 4
  br i1 %2617, label %2618, label %2711

2618:                                             ; preds = %2615
  %2619 = load i32, ptr %17, align 4, !tbaa !9
  %2620 = icmp ne i32 %2619, 0
  br i1 %2620, label %2621, label %2674

2621:                                             ; preds = %2618
  br label %2622

2622:                                             ; preds = %2621
  %2623 = load i32, ptr %17, align 4, !tbaa !9
  %2624 = icmp ult i32 %2623, 8
  br i1 %2624, label %2625, label %2664

2625:                                             ; preds = %2622
  br label %2626

2626:                                             ; preds = %2660, %2625
  br label %2627

2627:                                             ; preds = %2626
  br label %2628

2628:                                             ; preds = %2643, %2627
  %2629 = load ptr, ptr %22, align 8, !tbaa !5
  %2630 = load ptr, ptr %23, align 8, !tbaa !5
  %2631 = icmp uge ptr %2629, %2630
  br i1 %2631, label %2632, label %2644

2632:                                             ; preds = %2628
  br label %2633

2633:                                             ; preds = %2632
  %2634 = load i32, ptr %15, align 4, !tbaa !9
  %2635 = and i32 %2634, 2
  %2636 = icmp ne i32 %2635, 0
  %2637 = zext i1 %2636 to i64
  %2638 = select i1 %2636, i32 1, i32 -4
  store i32 %2638, ptr %16, align 4, !tbaa !9
  %2639 = load ptr, ptr %9, align 8, !tbaa !5
  %2640 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2639, i32 0, i32 0
  store i32 41, ptr %2640, align 8, !tbaa !20
  br label %2724

2641:                                             ; preds = %120
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

2643:                                             ; preds = %2642
  br label %2628, !llvm.loop !95

2644:                                             ; preds = %2628
  %2645 = load ptr, ptr %22, align 8, !tbaa !5
  %2646 = getelementptr inbounds i8, ptr %2645, i32 1
  store ptr %2646, ptr %22, align 8, !tbaa !5
  %2647 = load i8, ptr %2645, align 1, !tbaa !27
  %2648 = zext i8 %2647 to i32
  store i32 %2648, ptr %75, align 4, !tbaa !9
  br label %2649

2649:                                             ; preds = %2644
  br label %2650

2650:                                             ; preds = %2649
  %2651 = load i32, ptr %75, align 4, !tbaa !9
  %2652 = zext i32 %2651 to i64
  %2653 = load i32, ptr %17, align 4, !tbaa !9
  %2654 = zext i32 %2653 to i64
  %2655 = shl i64 %2652, %2654
  %2656 = load i64, ptr %21, align 8, !tbaa !11
  %2657 = or i64 %2656, %2655
  store i64 %2657, ptr %21, align 8, !tbaa !11
  %2658 = load i32, ptr %17, align 4, !tbaa !9
  %2659 = add i32 %2658, 8
  store i32 %2659, ptr %17, align 4, !tbaa !9
  br label %2660

2660:                                             ; preds = %2650
  %2661 = load i32, ptr %17, align 4, !tbaa !9
  %2662 = icmp ult i32 %2661, 8
  br i1 %2662, label %2626, label %2663, !llvm.loop !96

2663:                                             ; preds = %2660
  br label %2664

2664:                                             ; preds = %2663, %2622
  %2665 = load i64, ptr %21, align 8, !tbaa !11
  %2666 = and i64 %2665, 255
  %2667 = trunc i64 %2666 to i32
  store i32 %2667, ptr %74, align 4, !tbaa !9
  %2668 = load i64, ptr %21, align 8, !tbaa !11
  %2669 = lshr i64 %2668, 8
  store i64 %2669, ptr %21, align 8, !tbaa !11
  %2670 = load i32, ptr %17, align 4, !tbaa !9
  %2671 = sub i32 %2670, 8
  store i32 %2671, ptr %17, align 4, !tbaa !9
  br label %2672

2672:                                             ; preds = %2664
  br label %2673

2673:                                             ; preds = %2672
  br label %2699

2674:                                             ; preds = %2618
  br label %2675

2675:                                             ; preds = %2674
  br label %2676

2676:                                             ; preds = %2691, %2675
  %2677 = load ptr, ptr %22, align 8, !tbaa !5
  %2678 = load ptr, ptr %23, align 8, !tbaa !5
  %2679 = icmp uge ptr %2677, %2678
  br i1 %2679, label %2680, label %2692

2680:                                             ; preds = %2676
  br label %2681

2681:                                             ; preds = %2680
  %2682 = load i32, ptr %15, align 4, !tbaa !9
  %2683 = and i32 %2682, 2
  %2684 = icmp ne i32 %2683, 0
  %2685 = zext i1 %2684 to i64
  %2686 = select i1 %2684, i32 1, i32 -4
  store i32 %2686, ptr %16, align 4, !tbaa !9
  %2687 = load ptr, ptr %9, align 8, !tbaa !5
  %2688 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2687, i32 0, i32 0
  store i32 42, ptr %2688, align 8, !tbaa !20
  br label %2724

2689:                                             ; preds = %120
  br label %2690

2690:                                             ; preds = %2689
  br label %2691

2691:                                             ; preds = %2690
  br label %2676, !llvm.loop !97

2692:                                             ; preds = %2676
  %2693 = load ptr, ptr %22, align 8, !tbaa !5
  %2694 = getelementptr inbounds i8, ptr %2693, i32 1
  store ptr %2694, ptr %22, align 8, !tbaa !5
  %2695 = load i8, ptr %2693, align 1, !tbaa !27
  %2696 = zext i8 %2695 to i32
  store i32 %2696, ptr %74, align 4, !tbaa !9
  br label %2697

2697:                                             ; preds = %2692
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698, %2673
  %2700 = load ptr, ptr %9, align 8, !tbaa !5
  %2701 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2700, i32 0, i32 4
  %2702 = load i32, ptr %2701, align 8, !tbaa !24
  %2703 = shl i32 %2702, 8
  %2704 = load i32, ptr %74, align 4, !tbaa !9
  %2705 = or i32 %2703, %2704
  %2706 = load ptr, ptr %9, align 8, !tbaa !5
  %2707 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2706, i32 0, i32 4
  store i32 %2705, ptr %2707, align 8, !tbaa !24
  br label %2708

2708:                                             ; preds = %2699
  %2709 = load i32, ptr %19, align 4, !tbaa !9
  %2710 = add i32 %2709, 1
  store i32 %2710, ptr %19, align 4, !tbaa !9
  br label %2615, !llvm.loop !98

2711:                                             ; preds = %2615
  br label %2712

2712:                                             ; preds = %2711, %2610
  br label %2713

2713:                                             ; preds = %2712
  br label %2714

2714:                                             ; preds = %2720, %2713
  br label %2715

2715:                                             ; preds = %2714
  store i32 0, ptr %16, align 4, !tbaa !9
  %2716 = load ptr, ptr %9, align 8, !tbaa !5
  %2717 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2716, i32 0, i32 0
  store i32 34, ptr %2717, align 8, !tbaa !20
  br label %2724

2718:                                             ; preds = %120
  br label %2719

2719:                                             ; preds = %2718
  br label %2720

2720:                                             ; preds = %2719
  br label %2714

2721:                                             ; No predecessors!
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722, %120
  br label %2724

2724:                                             ; preds = %2723, %2715, %2681, %2633, %2540, %2392, %2350, %2275, %2147, %2015, %1840, %1726, %1583, %1485, %1458, %1333, %1067, %928, %820, %729, %636, %624, %601, %555, %526, %470, %417, %354, %287, %265, %187, %161
  %2725 = load i32, ptr %16, align 4, !tbaa !9
  %2726 = icmp ne i32 %2725, 1
  br i1 %2726, label %2727, label %2746

2727:                                             ; preds = %2724
  %2728 = load i32, ptr %16, align 4, !tbaa !9
  %2729 = icmp ne i32 %2728, -4
  br i1 %2729, label %2730, label %2746

2730:                                             ; preds = %2727
  br label %2731

2731:                                             ; preds = %2740, %2730
  %2732 = load ptr, ptr %22, align 8, !tbaa !5
  %2733 = load ptr, ptr %10, align 8, !tbaa !5
  %2734 = icmp ugt ptr %2732, %2733
  br i1 %2734, label %2735, label %2738

2735:                                             ; preds = %2731
  %2736 = load i32, ptr %17, align 4, !tbaa !9
  %2737 = icmp uge i32 %2736, 8
  br label %2738

2738:                                             ; preds = %2735, %2731
  %2739 = phi i1 [ false, %2731 ], [ %2737, %2735 ]
  br i1 %2739, label %2740, label %2745

2740:                                             ; preds = %2738
  %2741 = load ptr, ptr %22, align 8, !tbaa !5
  %2742 = getelementptr inbounds i8, ptr %2741, i32 -1
  store ptr %2742, ptr %22, align 8, !tbaa !5
  %2743 = load i32, ptr %17, align 4, !tbaa !9
  %2744 = sub i32 %2743, 8
  store i32 %2744, ptr %17, align 4, !tbaa !9
  br label %2731, !llvm.loop !99

2745:                                             ; preds = %2738
  br label %2746

2746:                                             ; preds = %2745, %2727, %2724
  %2747 = load i32, ptr %17, align 4, !tbaa !9
  %2748 = load ptr, ptr %9, align 8, !tbaa !5
  %2749 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2748, i32 0, i32 1
  store i32 %2747, ptr %2749, align 4, !tbaa !13
  %2750 = load i64, ptr %21, align 8, !tbaa !11
  %2751 = load i32, ptr %17, align 4, !tbaa !9
  %2752 = zext i32 %2751 to i64
  %2753 = shl i64 1, %2752
  %2754 = sub i64 %2753, 1
  %2755 = and i64 %2750, %2754
  %2756 = load ptr, ptr %9, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2756, i32 0, i32 12
  store i64 %2755, ptr %2757, align 8, !tbaa !15
  %2758 = load i32, ptr %18, align 4, !tbaa !9
  %2759 = load ptr, ptr %9, align 8, !tbaa !5
  %2760 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2759, i32 0, i32 8
  store i32 %2758, ptr %2760, align 8, !tbaa !16
  %2761 = load i32, ptr %19, align 4, !tbaa !9
  %2762 = load ptr, ptr %9, align 8, !tbaa !5
  %2763 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2762, i32 0, i32 9
  store i32 %2761, ptr %2763, align 4, !tbaa !17
  %2764 = load i32, ptr %20, align 4, !tbaa !9
  %2765 = load ptr, ptr %9, align 8, !tbaa !5
  %2766 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2765, i32 0, i32 10
  store i32 %2764, ptr %2766, align 8, !tbaa !18
  %2767 = load i64, ptr %27, align 8, !tbaa !11
  %2768 = load ptr, ptr %9, align 8, !tbaa !5
  %2769 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2768, i32 0, i32 13
  store i64 %2767, ptr %2769, align 8, !tbaa !19
  %2770 = load ptr, ptr %22, align 8, !tbaa !5
  %2771 = load ptr, ptr %10, align 8, !tbaa !5
  %2772 = ptrtoint ptr %2770 to i64
  %2773 = ptrtoint ptr %2771 to i64
  %2774 = sub i64 %2772, %2773
  %2775 = load ptr, ptr %11, align 8, !tbaa !5
  store i64 %2774, ptr %2775, align 8, !tbaa !11
  %2776 = load ptr, ptr %24, align 8, !tbaa !5
  %2777 = load ptr, ptr %13, align 8, !tbaa !5
  %2778 = ptrtoint ptr %2776 to i64
  %2779 = ptrtoint ptr %2777 to i64
  %2780 = sub i64 %2778, %2779
  %2781 = load ptr, ptr %14, align 8, !tbaa !5
  store i64 %2780, ptr %2781, align 8, !tbaa !11
  %2782 = load i32, ptr %15, align 4, !tbaa !9
  %2783 = and i32 %2782, 9
  %2784 = icmp ne i32 %2783, 0
  br i1 %2784, label %2785, label %2940

2785:                                             ; preds = %2746
  %2786 = load i32, ptr %16, align 4, !tbaa !9
  %2787 = icmp sge i32 %2786, 0
  br i1 %2787, label %2788, label %2940

2788:                                             ; preds = %2785
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  %2789 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2789, ptr %76, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  %2790 = load ptr, ptr %14, align 8, !tbaa !5
  %2791 = load i64, ptr %2790, align 8, !tbaa !11
  store i64 %2791, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #5
  %2792 = load ptr, ptr %9, align 8, !tbaa !5
  %2793 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2792, i32 0, i32 7
  %2794 = load i32, ptr %2793, align 4, !tbaa !23
  %2795 = and i32 %2794, 65535
  store i32 %2795, ptr %79, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #5
  %2796 = load ptr, ptr %9, align 8, !tbaa !5
  %2797 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2796, i32 0, i32 7
  %2798 = load i32, ptr %2797, align 4, !tbaa !23
  %2799 = lshr i32 %2798, 16
  store i32 %2799, ptr %80, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  %2800 = load i64, ptr %77, align 8, !tbaa !11
  %2801 = urem i64 %2800, 5552
  store i64 %2801, ptr %81, align 8, !tbaa !11
  br label %2802

2802:                                             ; preds = %2909, %2788
  %2803 = load i64, ptr %77, align 8, !tbaa !11
  %2804 = icmp ne i64 %2803, 0
  br i1 %2804, label %2805, label %2917

2805:                                             ; preds = %2802
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %2806

2806:                                             ; preds = %2885, %2805
  %2807 = load i32, ptr %78, align 4, !tbaa !9
  %2808 = add i32 %2807, 7
  %2809 = zext i32 %2808 to i64
  %2810 = load i64, ptr %81, align 8, !tbaa !11
  %2811 = icmp ult i64 %2809, %2810
  br i1 %2811, label %2812, label %2890

2812:                                             ; preds = %2806
  %2813 = load ptr, ptr %76, align 8, !tbaa !5
  %2814 = getelementptr inbounds i8, ptr %2813, i64 0
  %2815 = load i8, ptr %2814, align 1, !tbaa !27
  %2816 = zext i8 %2815 to i32
  %2817 = load i32, ptr %79, align 4, !tbaa !9
  %2818 = add i32 %2817, %2816
  store i32 %2818, ptr %79, align 4, !tbaa !9
  %2819 = load i32, ptr %79, align 4, !tbaa !9
  %2820 = load i32, ptr %80, align 4, !tbaa !9
  %2821 = add i32 %2820, %2819
  store i32 %2821, ptr %80, align 4, !tbaa !9
  %2822 = load ptr, ptr %76, align 8, !tbaa !5
  %2823 = getelementptr inbounds i8, ptr %2822, i64 1
  %2824 = load i8, ptr %2823, align 1, !tbaa !27
  %2825 = zext i8 %2824 to i32
  %2826 = load i32, ptr %79, align 4, !tbaa !9
  %2827 = add i32 %2826, %2825
  store i32 %2827, ptr %79, align 4, !tbaa !9
  %2828 = load i32, ptr %79, align 4, !tbaa !9
  %2829 = load i32, ptr %80, align 4, !tbaa !9
  %2830 = add i32 %2829, %2828
  store i32 %2830, ptr %80, align 4, !tbaa !9
  %2831 = load ptr, ptr %76, align 8, !tbaa !5
  %2832 = getelementptr inbounds i8, ptr %2831, i64 2
  %2833 = load i8, ptr %2832, align 1, !tbaa !27
  %2834 = zext i8 %2833 to i32
  %2835 = load i32, ptr %79, align 4, !tbaa !9
  %2836 = add i32 %2835, %2834
  store i32 %2836, ptr %79, align 4, !tbaa !9
  %2837 = load i32, ptr %79, align 4, !tbaa !9
  %2838 = load i32, ptr %80, align 4, !tbaa !9
  %2839 = add i32 %2838, %2837
  store i32 %2839, ptr %80, align 4, !tbaa !9
  %2840 = load ptr, ptr %76, align 8, !tbaa !5
  %2841 = getelementptr inbounds i8, ptr %2840, i64 3
  %2842 = load i8, ptr %2841, align 1, !tbaa !27
  %2843 = zext i8 %2842 to i32
  %2844 = load i32, ptr %79, align 4, !tbaa !9
  %2845 = add i32 %2844, %2843
  store i32 %2845, ptr %79, align 4, !tbaa !9
  %2846 = load i32, ptr %79, align 4, !tbaa !9
  %2847 = load i32, ptr %80, align 4, !tbaa !9
  %2848 = add i32 %2847, %2846
  store i32 %2848, ptr %80, align 4, !tbaa !9
  %2849 = load ptr, ptr %76, align 8, !tbaa !5
  %2850 = getelementptr inbounds i8, ptr %2849, i64 4
  %2851 = load i8, ptr %2850, align 1, !tbaa !27
  %2852 = zext i8 %2851 to i32
  %2853 = load i32, ptr %79, align 4, !tbaa !9
  %2854 = add i32 %2853, %2852
  store i32 %2854, ptr %79, align 4, !tbaa !9
  %2855 = load i32, ptr %79, align 4, !tbaa !9
  %2856 = load i32, ptr %80, align 4, !tbaa !9
  %2857 = add i32 %2856, %2855
  store i32 %2857, ptr %80, align 4, !tbaa !9
  %2858 = load ptr, ptr %76, align 8, !tbaa !5
  %2859 = getelementptr inbounds i8, ptr %2858, i64 5
  %2860 = load i8, ptr %2859, align 1, !tbaa !27
  %2861 = zext i8 %2860 to i32
  %2862 = load i32, ptr %79, align 4, !tbaa !9
  %2863 = add i32 %2862, %2861
  store i32 %2863, ptr %79, align 4, !tbaa !9
  %2864 = load i32, ptr %79, align 4, !tbaa !9
  %2865 = load i32, ptr %80, align 4, !tbaa !9
  %2866 = add i32 %2865, %2864
  store i32 %2866, ptr %80, align 4, !tbaa !9
  %2867 = load ptr, ptr %76, align 8, !tbaa !5
  %2868 = getelementptr inbounds i8, ptr %2867, i64 6
  %2869 = load i8, ptr %2868, align 1, !tbaa !27
  %2870 = zext i8 %2869 to i32
  %2871 = load i32, ptr %79, align 4, !tbaa !9
  %2872 = add i32 %2871, %2870
  store i32 %2872, ptr %79, align 4, !tbaa !9
  %2873 = load i32, ptr %79, align 4, !tbaa !9
  %2874 = load i32, ptr %80, align 4, !tbaa !9
  %2875 = add i32 %2874, %2873
  store i32 %2875, ptr %80, align 4, !tbaa !9
  %2876 = load ptr, ptr %76, align 8, !tbaa !5
  %2877 = getelementptr inbounds i8, ptr %2876, i64 7
  %2878 = load i8, ptr %2877, align 1, !tbaa !27
  %2879 = zext i8 %2878 to i32
  %2880 = load i32, ptr %79, align 4, !tbaa !9
  %2881 = add i32 %2880, %2879
  store i32 %2881, ptr %79, align 4, !tbaa !9
  %2882 = load i32, ptr %79, align 4, !tbaa !9
  %2883 = load i32, ptr %80, align 4, !tbaa !9
  %2884 = add i32 %2883, %2882
  store i32 %2884, ptr %80, align 4, !tbaa !9
  br label %2885

2885:                                             ; preds = %2812
  %2886 = load i32, ptr %78, align 4, !tbaa !9
  %2887 = add i32 %2886, 8
  store i32 %2887, ptr %78, align 4, !tbaa !9
  %2888 = load ptr, ptr %76, align 8, !tbaa !5
  %2889 = getelementptr inbounds i8, ptr %2888, i64 8
  store ptr %2889, ptr %76, align 8, !tbaa !5
  br label %2806, !llvm.loop !100

2890:                                             ; preds = %2806
  br label %2891

2891:                                             ; preds = %2906, %2890
  %2892 = load i32, ptr %78, align 4, !tbaa !9
  %2893 = zext i32 %2892 to i64
  %2894 = load i64, ptr %81, align 8, !tbaa !11
  %2895 = icmp ult i64 %2893, %2894
  br i1 %2895, label %2896, label %2909

2896:                                             ; preds = %2891
  %2897 = load ptr, ptr %76, align 8, !tbaa !5
  %2898 = getelementptr inbounds i8, ptr %2897, i32 1
  store ptr %2898, ptr %76, align 8, !tbaa !5
  %2899 = load i8, ptr %2897, align 1, !tbaa !27
  %2900 = zext i8 %2899 to i32
  %2901 = load i32, ptr %79, align 4, !tbaa !9
  %2902 = add i32 %2901, %2900
  store i32 %2902, ptr %79, align 4, !tbaa !9
  %2903 = load i32, ptr %79, align 4, !tbaa !9
  %2904 = load i32, ptr %80, align 4, !tbaa !9
  %2905 = add i32 %2904, %2903
  store i32 %2905, ptr %80, align 4, !tbaa !9
  br label %2906

2906:                                             ; preds = %2896
  %2907 = load i32, ptr %78, align 4, !tbaa !9
  %2908 = add i32 %2907, 1
  store i32 %2908, ptr %78, align 4, !tbaa !9
  br label %2891, !llvm.loop !101

2909:                                             ; preds = %2891
  %2910 = load i32, ptr %79, align 4, !tbaa !9
  %2911 = urem i32 %2910, 65521
  store i32 %2911, ptr %79, align 4, !tbaa !9
  %2912 = load i32, ptr %80, align 4, !tbaa !9
  %2913 = urem i32 %2912, 65521
  store i32 %2913, ptr %80, align 4, !tbaa !9
  %2914 = load i64, ptr %81, align 8, !tbaa !11
  %2915 = load i64, ptr %77, align 8, !tbaa !11
  %2916 = sub i64 %2915, %2914
  store i64 %2916, ptr %77, align 8, !tbaa !11
  store i64 5552, ptr %81, align 8, !tbaa !11
  br label %2802, !llvm.loop !102

2917:                                             ; preds = %2802
  %2918 = load i32, ptr %80, align 4, !tbaa !9
  %2919 = shl i32 %2918, 16
  %2920 = load i32, ptr %79, align 4, !tbaa !9
  %2921 = add i32 %2919, %2920
  %2922 = load ptr, ptr %9, align 8, !tbaa !5
  %2923 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2922, i32 0, i32 7
  store i32 %2921, ptr %2923, align 4, !tbaa !23
  %2924 = load i32, ptr %16, align 4, !tbaa !9
  %2925 = icmp eq i32 %2924, 0
  br i1 %2925, label %2926, label %2939

2926:                                             ; preds = %2917
  %2927 = load i32, ptr %15, align 4, !tbaa !9
  %2928 = and i32 %2927, 1
  %2929 = icmp ne i32 %2928, 0
  br i1 %2929, label %2930, label %2939

2930:                                             ; preds = %2926
  %2931 = load ptr, ptr %9, align 8, !tbaa !5
  %2932 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2931, i32 0, i32 7
  %2933 = load i32, ptr %2932, align 4, !tbaa !23
  %2934 = load ptr, ptr %9, align 8, !tbaa !5
  %2935 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2934, i32 0, i32 4
  %2936 = load i32, ptr %2935, align 8, !tbaa !24
  %2937 = icmp ne i32 %2933, %2936
  br i1 %2937, label %2938, label %2939

2938:                                             ; preds = %2930
  store i32 -2, ptr %16, align 4, !tbaa !9
  br label %2939

2939:                                             ; preds = %2938, %2930, %2926, %2917
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  br label %2940

2940:                                             ; preds = %2939, %2785, %2746
  %2941 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %2941, ptr %8, align 4
  store i32 1, ptr %28, align 4
  br label %2942

2942:                                             ; preds = %2940, %117
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  %2943 = load i32, ptr %8, align 4
  ret i32 %2943

2944:                                             ; preds = %2463, %1980, %1229
  unreachable
}

; 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !10, i64 4}
!14 = !{!"tinfl_decompressor_tag", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !7, i64 44, !12, i64 56, !12, i64 64, !7, i64 72, !7, i64 10536, !7, i64 10540}
!15 = !{!14, !12, i64 56}
!16 = !{!14, !10, i64 32}
!17 = !{!14, !10, i64 36}
!18 = !{!14, !10, i64 40}
!19 = !{!14, !12, i64 64}
!20 = !{!14, !10, i64 0}
!21 = !{!14, !10, i64 12}
!22 = !{!14, !10, i64 8}
!23 = !{!14, !10, i64 28}
!24 = !{!14, !10, i64 16}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!7, !7, i64 0}
!28 = distinct !{!28, !26}
!29 = distinct !{!29, !26}
!30 = distinct !{!30, !26}
!31 = !{!14, !10, i64 20}
!32 = !{!14, !10, i64 24}
!33 = distinct !{!33, !26}
!34 = distinct !{!34, !26}
!35 = distinct !{!35, !26}
!36 = distinct !{!36, !26}
!37 = distinct !{!37, !26}
!38 = distinct !{!38, !26}
!39 = distinct !{!39, !26}
!40 = distinct !{!40, !26}
!41 = distinct !{!41, !26}
!42 = distinct !{!42, !26}
!43 = distinct !{!43, !26}
!44 = distinct !{!44, !26}
!45 = distinct !{!45, !26}
!46 = distinct !{!46, !26}
!47 = distinct !{!47, !26}
!48 = distinct !{!48, !26}
!49 = distinct !{!49, !26}
!50 = distinct !{!50, !26}
!51 = distinct !{!51, !26}
!52 = distinct !{!52, !26}
!53 = distinct !{!53, !26}
!54 = distinct !{!54, !26}
!55 = distinct !{!55, !26}
!56 = distinct !{!56, !26}
!57 = distinct !{!57, !26}
!58 = distinct !{!58, !26}
!59 = !{!60, !60, i64 0}
!60 = !{!"short", !7, i64 0}
!61 = distinct !{!61, !26}
!62 = distinct !{!62, !26}
!63 = distinct !{!63, !26}
!64 = distinct !{!64, !26}
!65 = distinct !{!65, !26}
!66 = distinct !{!66, !26}
!67 = distinct !{!67, !26}
!68 = distinct !{!68, !26}
!69 = distinct !{!69, !26}
!70 = distinct !{!70, !26}
!71 = distinct !{!71, !26}
!72 = distinct !{!72, !26}
!73 = distinct !{!73, !26}
!74 = distinct !{!74, !26}
!75 = distinct !{!75, !26}
!76 = distinct !{!76, !26}
!77 = distinct !{!77, !26}
!78 = distinct !{!78, !26}
!79 = distinct !{!79, !26}
!80 = distinct !{!80, !26}
!81 = distinct !{!81, !26}
!82 = distinct !{!82, !26}
!83 = distinct !{!83, !26}
!84 = distinct !{!84, !26}
!85 = distinct !{!85, !26}
!86 = distinct !{!86, !26}
!87 = distinct !{!87, !26}
!88 = distinct !{!88, !26}
!89 = distinct !{!89, !26}
!90 = distinct !{!90, !26}
!91 = distinct !{!91, !26}
!92 = distinct !{!92, !26}
!93 = distinct !{!93, !26}
!94 = distinct !{!94, !26}
!95 = distinct !{!95, !26}
!96 = distinct !{!96, !26}
!97 = distinct !{!97, !26}
!98 = distinct !{!98, !26}
!99 = distinct !{!99, !26}
!100 = distinct !{!100, !26}
!101 = distinct !{!101, !26}
!102 = distinct !{!102, !26}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.tinfl_huff_table = type { [288 x i8], [1024 x i16], [576 x i16] }

@.str.12 = external hidden unnamed_addr constant [84 x i8], align 1
@tinfl_decompress.s_length_base = external hidden local_unnamed_addr constant [31 x i32], align 16
@tinfl_decompress.s_length_extra = external hidden local_unnamed_addr constant [31 x i32], align 16
@tinfl_decompress.s_dist_base = external hidden local_unnamed_addr constant [32 x i32], align 16
@tinfl_decompress.s_dist_extra = external hidden local_unnamed_addr constant [32 x i32], align 16
@tinfl_decompress.s_length_dezigzag = external hidden local_unnamed_addr constant [19 x i8], align 16
@tinfl_decompress.s_min_table_sizes = external hidden local_unnamed_addr constant [3 x i32], align 4
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@__PRETTY_FUNCTION__.tinfl_decompress = external hidden unnamed_addr constant [131 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #0

; Function Attrs: nounwind uwtable
define dso_local range(i32 -4, 3) i32 @tinfl_decompress(ptr noundef %0, ptr noundef %1, ptr nocapture noundef %2, ptr noundef %3, ptr noundef %4, ptr nocapture noundef %5, i32 noundef %6) local_unnamed_addr #1 {
  %8 = ptrtoint ptr %1 to i64
  %9 = alloca [17 x i32], align 16
  %10 = alloca [16 x i32], align 16
  %11 = load i64, ptr %2, align 8, !tbaa !5
  %12 = getelementptr inbounds i8, ptr %1, i64 %11
  %13 = load i64, ptr %5, align 8, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %4, i64 %13
  %15 = and i32 %6, 4
  %.not = icmp eq i32 %15, 0
  %16 = ptrtoint ptr %4 to i64
  %17 = ptrtoint ptr %3 to i64
  %18 = xor i64 %17, -1
  %19 = add i64 %18, %16
  %20 = add i64 %19, %13
  %21 = select i1 %.not, i64 %20, i64 -1
  %22 = add i64 %21, 1
  %23 = and i64 %22, %21
  %.not1562 = icmp ne i64 %23, 0
  %24 = icmp ult ptr %4, %3
  %or.cond1643 = or i1 %24, %.not1562
  br i1 %or.cond1643, label %25, label %26

25:                                               ; preds = %7
  store i64 0, ptr %5, align 8, !tbaa !5
  store i64 0, ptr %2, align 8, !tbaa !5
  br label %1256

26:                                               ; preds = %7
  %27 = getelementptr inbounds i8, ptr %0, i64 4
  %28 = load i32, ptr %27, align 4, !tbaa !9
  %.84.fr1991 = freeze i32 %28
  %29 = getelementptr inbounds i8, ptr %0, i64 56
  %30 = load i64, ptr %29, align 8, !tbaa !12
  %31 = getelementptr inbounds i8, ptr %0, i64 32
  %32 = load i32, ptr %31, align 8, !tbaa !13
  %33 = getelementptr inbounds i8, ptr %0, i64 36
  %34 = load i32, ptr %33, align 4, !tbaa !14
  %35 = getelementptr inbounds i8, ptr %0, i64 40
  %36 = load i32, ptr %35, align 8, !tbaa !15
  %37 = getelementptr inbounds i8, ptr %0, i64 64
  %38 = load i64, ptr %37, align 8, !tbaa !16
  %39 = load i32, ptr %0, align 8, !tbaa !17
  switch i32 %39, label %.thread1687 [
    i32 0, label %40
    i32 1, label %46
    i32 2, label %57
    i32 36, label %1140
    i32 3, label %86
    i32 5, label %115
    i32 6, label %137
    i32 7, label %156
    i32 39, label %1140
    i32 51, label %187
    i32 52, label %202
    i32 9, label %209
    i32 38, label %213
    i32 10, label %1140
    i32 11, label %245
    i32 14, label %281
    i32 35, label %1140
    i32 16, label %554
    i32 17, label %1140
    i32 18, label %625
    i32 21, label %1140
    i32 23, label %714
    i32 24, label %767
    i32 25, label %853
    i32 26, label %909
    i32 27, label %970
    i32 37, label %1140
    i32 53, label %1005
    i32 32, label %1082
    i32 41, label %1111
    i32 42, label %1128
    i32 34, label %1139
  ], !llvm.loop !18

40:                                               ; preds = %26
  %41 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 0, ptr %41, align 4, !tbaa !20
  %42 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 0, ptr %42, align 8, !tbaa !21
  %43 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 1, ptr %43, align 4, !tbaa !22
  %44 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 1, ptr %44, align 8, !tbaa !23
  %45 = and i32 %6, 1
  %.not1567 = icmp eq i32 %45, 0
  br i1 %.not1567, label %82, label %46

46:                                               ; preds = %26, %40
  %.01099 = phi i64 [ %30, %26 ], [ 0, %40 ]
  %.01012 = phi i32 [ %36, %26 ], [ 0, %40 ]
  %.0928 = phi i32 [ %34, %26 ], [ 0, %40 ]
  %.0849 = phi i32 [ %32, %26 ], [ 0, %40 ]
  %.0846 = phi i32 [ %.84.fr1991, %26 ], [ 0, %40 ]
  %.not1568 = icmp sgt i64 %11, 0
  br i1 %.not1568, label %49, label %47

47:                                               ; preds = %46
  %48 = and i32 %6, 2
  %.not1638 = icmp eq i32 %48, 0
  store i32 1, ptr %0, align 8, !tbaa !17
  %spec.select1705 = select i1 %.not1638, i32 -4, i32 1
  br label %.thread1687

49:                                               ; preds = %46
  %50 = getelementptr inbounds i8, ptr %1, i64 1
  %51 = load i8, ptr %1, align 1, !tbaa !24
  %52 = zext i8 %51 to i32
  %53 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 %52, ptr %53, align 8, !tbaa !21
  br label %54

54:                                               ; preds = %57, %49
  %.01183 = phi ptr [ %1, %57 ], [ %50, %49 ]
  %.11100 = phi i64 [ %30, %57 ], [ %.01099, %49 ]
  %.11013 = phi i32 [ %36, %57 ], [ %.01012, %49 ]
  %.1929 = phi i32 [ %34, %57 ], [ %.0928, %49 ]
  %.1850 = phi i32 [ %32, %57 ], [ %.0849, %49 ]
  %.1847 = phi i32 [ %.84.fr1991, %57 ], [ %.0846, %49 ]
  %.not1569 = icmp ult ptr %.01183, %12
  br i1 %.not1569, label %58, label %55

55:                                               ; preds = %54
  %56 = and i32 %6, 2
  %.not1637 = icmp eq i32 %56, 0
  store i32 2, ptr %0, align 8, !tbaa !17
  %spec.select1707 = select i1 %.not1637, i32 -4, i32 1
  br label %.thread1687

57:                                               ; preds = %26
  br label %54, !llvm.loop !25

58:                                               ; preds = %54
  %59 = getelementptr inbounds i8, ptr %.01183, i64 1
  %60 = load i8, ptr %.01183, align 1, !tbaa !24
  %61 = zext i8 %60 to i32
  %62 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 %61, ptr %62, align 4, !tbaa !20
  %63 = getelementptr inbounds i8, ptr %0, i64 8
  %64 = load i32, ptr %63, align 8, !tbaa !21
  %65 = shl i32 %64, 8
  %66 = or disjoint i32 %65, %61
  %67 = urem i32 %66, 31
  %68 = and i32 %61, 32
  %69 = or disjoint i32 %67, %68
  %or.cond1644 = icmp ne i32 %69, 0
  %70 = and i32 %64, 15
  %71 = icmp ne i32 %70, 8
  %72 = select i1 %or.cond1644, i1 true, i1 %71
  br i1 %.not, label %73, label %81

73:                                               ; preds = %58
  %74 = lshr i32 %64, 4
  %75 = shl nuw i32 256, %74
  %76 = icmp ugt i32 %75, 32768
  %77 = zext nneg i32 %75 to i64
  %78 = icmp ult i64 %22, %77
  %79 = select i1 %76, i1 true, i1 %78
  %80 = or i1 %79, %72
  br i1 %80, label %1140, label %82

81:                                               ; preds = %58
  br i1 %72, label %1140, label %82

82:                                               ; preds = %40, %81, %73, %1076
  %.01370 = phi i64 [ %.641434, %1076 ], [ %38, %73 ], [ %38, %81 ], [ %38, %40 ]
  %.01276 = phi ptr [ %.731349, %1076 ], [ %4, %73 ], [ %4, %81 ], [ %4, %40 ]
  %.31186 = phi ptr [ %.701253, %1076 ], [ %59, %73 ], [ %59, %81 ], [ %1, %40 ]
  %.41103 = phi i64 [ %.721171, %1076 ], [ %.11100, %73 ], [ %.11100, %81 ], [ 0, %40 ]
  %.41016 = phi i32 [ %.691081, %1076 ], [ %.11013, %73 ], [ %.11013, %81 ], [ 0, %40 ]
  %.5933 = phi i32 [ %.721000, %1076 ], [ 0, %73 ], [ 0, %81 ], [ 0, %40 ]
  %.4853 = phi i32 [ %.67916, %1076 ], [ %.1850, %73 ], [ %.1850, %81 ], [ 0, %40 ]
  %.4 = phi i32 [ %.72, %1076 ], [ %.1847, %73 ], [ %.1847, %81 ], [ 0, %40 ]
  %83 = icmp ult i32 %.4, 3
  br i1 %83, label %.preheader2192, label %.loopexit2193

.preheader2192:                                   ; preds = %82, %86
  %.21372.ph = phi i64 [ %.01370, %82 ], [ %38, %86 ]
  %.21278.ph = phi ptr [ %.01276, %82 ], [ %4, %86 ]
  %.51188.ph = phi ptr [ %.31186, %82 ], [ %1, %86 ]
  %.61105.ph = phi i64 [ %.41103, %82 ], [ %30, %86 ]
  %.61018.ph = phi i32 [ %.41016, %82 ], [ %36, %86 ]
  %.7935.ph = phi i32 [ %.5933, %82 ], [ %34, %86 ]
  %.6855.ph = phi i32 [ %.4853, %82 ], [ %32, %86 ]
  %.6.ph = phi i32 [ %.4, %82 ], [ %.84.fr1991, %86 ]
  %.not1572 = icmp ult ptr %.51188.ph, %12
  br i1 %.not1572, label %87, label %84

84:                                               ; preds = %96, %.preheader2192
  %.51188.lcssa = phi ptr [ %.51188.ph, %.preheader2192 ], [ %88, %96 ]
  %.61105.lcssa = phi i64 [ %.61105.ph, %.preheader2192 ], [ %93, %96 ]
  %.6.lcssa = phi i32 [ %.6.ph, %.preheader2192 ], [ %94, %96 ]
  %85 = and i32 %6, 2
  %.not1636 = icmp eq i32 %85, 0
  store i32 3, ptr %0, align 8, !tbaa !17
  %spec.select1709 = select i1 %.not1636, i32 -4, i32 1
  br label %.thread1687

86:                                               ; preds = %26
  br label %.preheader2192, !llvm.loop !26

87:                                               ; preds = %.preheader2192
  %88 = getelementptr inbounds i8, ptr %.51188.ph, i64 1
  %89 = load i8, ptr %.51188.ph, align 1, !tbaa !24
  %90 = zext i8 %89 to i64
  %91 = zext nneg i32 %.6.ph to i64
  %92 = shl i64 %90, %91
  %93 = or i64 %92, %.61105.ph
  %94 = add i32 %.6.ph, 8
  %95 = icmp ult i32 %94, 3
  br i1 %95, label %96, label %.loopexit2193, !llvm.loop !27

96:                                               ; preds = %87
  %.not1572.1 = icmp ult ptr %88, %12
  br i1 %.not1572.1, label %97, label %84

97:                                               ; preds = %96
  %98 = getelementptr inbounds i8, ptr %.51188.ph, i64 2
  %99 = load i8, ptr %88, align 1, !tbaa !24
  %100 = zext i8 %99 to i64
  %101 = zext nneg i32 %94 to i64
  %102 = shl nuw nsw i64 %100, %101
  %103 = or i64 %102, %.61105.ph
  %104 = add nsw i32 %.6.ph, 16
  br label %.loopexit2193

.loopexit2193:                                    ; preds = %87, %97, %82
  %.31373 = phi i64 [ %.01370, %82 ], [ %.21372.ph, %97 ], [ %.21372.ph, %87 ]
  %.31279 = phi ptr [ %.01276, %82 ], [ %.21278.ph, %97 ], [ %.21278.ph, %87 ]
  %.61189 = phi ptr [ %.31186, %82 ], [ %88, %87 ], [ %98, %97 ]
  %.71106 = phi i64 [ %.41103, %82 ], [ %93, %87 ], [ %103, %97 ]
  %.71019 = phi i32 [ %.41016, %82 ], [ %.61018.ph, %97 ], [ %.61018.ph, %87 ]
  %.8936 = phi i32 [ %.5933, %82 ], [ %.7935.ph, %97 ], [ %.7935.ph, %87 ]
  %.7856 = phi i32 [ %.4853, %82 ], [ %.6855.ph, %97 ], [ %.6855.ph, %87 ]
  %.7 = phi i32 [ %.4, %82 ], [ %94, %87 ], [ %104, %97 ]
  %105 = trunc i64 %.71106 to i32
  %106 = and i32 %105, 7
  %107 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %106, ptr %107, align 4, !tbaa !28
  %108 = lshr i64 %.71106, 3
  %109 = add i32 %.7, -3
  %110 = lshr i32 %106, 1
  %111 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %110, ptr %111, align 8, !tbaa !29
  %112 = icmp ult i32 %106, 2
  br i1 %112, label %124, label %227

113:                                              ; preds = %115
  %114 = and i32 %6, 2
  %.not1566 = icmp eq i32 %114, 0
  store i32 5, ptr %0, align 8, !tbaa !17
  %spec.select1711 = select i1 %.not1566, i32 -4, i32 1
  br label %.thread1687

115:                                              ; preds = %26
  %.not1565 = icmp sgt i64 %11, 0
  br i1 %.not1565, label %116, label %113

116:                                              ; preds = %115
  %117 = getelementptr inbounds i8, ptr %1, i64 1
  %118 = load i8, ptr %1, align 1, !tbaa !24
  %119 = zext i8 %118 to i64
  %120 = zext nneg i32 %.84.fr1991 to i64
  %121 = shl i64 %119, %120
  %122 = or i64 %121, %30
  %123 = add i32 %.84.fr1991, 8
  br label %124

124:                                              ; preds = %.loopexit2193, %116
  %.61376 = phi i64 [ %38, %116 ], [ %.31373, %.loopexit2193 ]
  %.61282 = phi ptr [ %4, %116 ], [ %.31279, %.loopexit2193 ]
  %.91192 = phi ptr [ %117, %116 ], [ %.61189, %.loopexit2193 ]
  %.101109 = phi i64 [ %122, %116 ], [ %108, %.loopexit2193 ]
  %.101022 = phi i32 [ %36, %116 ], [ %.71019, %.loopexit2193 ]
  %.10859 = phi i32 [ %32, %116 ], [ %.7856, %.loopexit2193 ]
  %.10 = phi i32 [ %123, %116 ], [ %109, %.loopexit2193 ]
  %125 = and i32 %.10, 7
  %126 = zext nneg i32 %125 to i64
  %127 = lshr i64 %.101109, %126
  %128 = and i32 %.10, -8
  br label %129

129:                                              ; preds = %163, %124
  %.71377 = phi i64 [ %.61376, %124 ], [ %.121382, %163 ]
  %.71283 = phi ptr [ %.61282, %124 ], [ %.121288, %163 ]
  %.101193 = phi ptr [ %.91192, %124 ], [ %.151198, %163 ]
  %.111110 = phi i64 [ %127, %124 ], [ %.161115, %163 ]
  %.111023 = phi i32 [ %.101022, %124 ], [ %.161028, %163 ]
  %.11939 = phi i32 [ 0, %124 ], [ %164, %163 ]
  %.11860 = phi i32 [ %.10859, %124 ], [ %.16865, %163 ]
  %.11 = phi i32 [ %128, %124 ], [ %.16, %163 ]
  %130 = icmp ult i32 %.11939, 4
  br i1 %130, label %131, label %165

131:                                              ; preds = %129
  %.not1631 = icmp eq i32 %.11, 0
  br i1 %.not1631, label %153, label %132

132:                                              ; preds = %131
  %133 = icmp ult i32 %.11, 8
  br i1 %133, label %.preheader2081, label %.loopexit2082

.preheader2081:                                   ; preds = %137, %132
  %.91379.ph = phi i64 [ %.71377, %132 ], [ %38, %137 ]
  %.91285.ph = phi ptr [ %.71283, %132 ], [ %4, %137 ]
  %.121195.ph = phi ptr [ %.101193, %132 ], [ %1, %137 ]
  %.131112.ph = phi i64 [ %.111110, %132 ], [ %30, %137 ]
  %.131025.ph = phi i32 [ %.111023, %132 ], [ %36, %137 ]
  %.13941.ph = phi i32 [ %.11939, %132 ], [ %34, %137 ]
  %.13862.ph = phi i32 [ %.11860, %132 ], [ %32, %137 ]
  %.13.ph = phi i32 [ %.11, %132 ], [ %.84.fr1991, %137 ]
  br label %134

134:                                              ; preds = %.preheader2081, %138
  %.121195 = phi ptr [ %139, %138 ], [ %.121195.ph, %.preheader2081 ]
  %.131112 = phi i64 [ %144, %138 ], [ %.131112.ph, %.preheader2081 ]
  %.13 = phi i32 [ %145, %138 ], [ %.13.ph, %.preheader2081 ]
  %.not1634 = icmp ult ptr %.121195, %12
  br i1 %.not1634, label %138, label %135

135:                                              ; preds = %134
  %136 = and i32 %6, 2
  %.not1635 = icmp eq i32 %136, 0
  store i32 6, ptr %0, align 8, !tbaa !17
  %spec.select1713 = select i1 %.not1635, i32 -4, i32 1
  br label %.thread1687

137:                                              ; preds = %26
  br label %.preheader2081, !llvm.loop !30

138:                                              ; preds = %134
  %139 = getelementptr inbounds i8, ptr %.121195, i64 1
  %140 = load i8, ptr %.121195, align 1, !tbaa !24
  %141 = zext i8 %140 to i64
  %142 = zext nneg i32 %.13 to i64
  %143 = shl i64 %141, %142
  %144 = or i64 %143, %.131112
  %145 = add i32 %.13, 8
  %146 = icmp ugt i32 %.13, -9
  br i1 %146, label %134, label %.loopexit2082, !llvm.loop !31

.loopexit2082:                                    ; preds = %138, %132
  %.101380 = phi i64 [ %.71377, %132 ], [ %.91379.ph, %138 ]
  %.101286 = phi ptr [ %.71283, %132 ], [ %.91285.ph, %138 ]
  %.131196 = phi ptr [ %.101193, %132 ], [ %139, %138 ]
  %.141113 = phi i64 [ %.111110, %132 ], [ %144, %138 ]
  %.141026 = phi i32 [ %.111023, %132 ], [ %.131025.ph, %138 ]
  %.14942 = phi i32 [ %.11939, %132 ], [ %.13941.ph, %138 ]
  %.14863 = phi i32 [ %.11860, %132 ], [ %.13862.ph, %138 ]
  %.14 = phi i32 [ %.11, %132 ], [ %145, %138 ]
  %147 = trunc i64 %.141113 to i8
  %148 = getelementptr inbounds i8, ptr %0, i64 10536
  %149 = zext i32 %.14942 to i64
  %150 = getelementptr inbounds [4 x i8], ptr %148, i64 0, i64 %149
  store i8 %147, ptr %150, align 1, !tbaa !24
  %151 = lshr i64 %.141113, 8
  %152 = add i32 %.14, -8
  br label %163

153:                                              ; preds = %131, %156
  %.111381 = phi i64 [ %.71377, %131 ], [ %38, %156 ]
  %.111287 = phi ptr [ %.71283, %131 ], [ %4, %156 ]
  %.141197 = phi ptr [ %.101193, %131 ], [ %1, %156 ]
  %.151114 = phi i64 [ %.111110, %131 ], [ %30, %156 ]
  %.151027 = phi i32 [ %.111023, %131 ], [ %36, %156 ]
  %.15943 = phi i32 [ %.11939, %131 ], [ %34, %156 ]
  %.15864 = phi i32 [ %.11860, %131 ], [ %32, %156 ]
  %.15 = phi i32 [ 0, %131 ], [ %.84.fr1991, %156 ]
  %.not1632 = icmp ult ptr %.141197, %12
  br i1 %.not1632, label %157, label %154

154:                                              ; preds = %153
  %155 = and i32 %6, 2
  %.not1633 = icmp eq i32 %155, 0
  store i32 7, ptr %0, align 8, !tbaa !17
  %spec.select1715 = select i1 %.not1633, i32 -4, i32 1
  br label %.thread1687

156:                                              ; preds = %26
  br label %153, !llvm.loop !32

157:                                              ; preds = %153
  %158 = getelementptr inbounds i8, ptr %.141197, i64 1
  %159 = load i8, ptr %.141197, align 1, !tbaa !24
  %160 = getelementptr inbounds i8, ptr %0, i64 10536
  %161 = zext i32 %.15943 to i64
  %162 = getelementptr inbounds [4 x i8], ptr %160, i64 0, i64 %161
  store i8 %159, ptr %162, align 1, !tbaa !24
  br label %163

163:                                              ; preds = %.loopexit2082, %157
  %.121382 = phi i64 [ %.101380, %.loopexit2082 ], [ %.111381, %157 ]
  %.121288 = phi ptr [ %.101286, %.loopexit2082 ], [ %.111287, %157 ]
  %.151198 = phi ptr [ %.131196, %.loopexit2082 ], [ %158, %157 ]
  %.161115 = phi i64 [ %151, %.loopexit2082 ], [ %.151114, %157 ]
  %.161028 = phi i32 [ %.141026, %.loopexit2082 ], [ %.151027, %157 ]
  %.16944 = phi i32 [ %.14942, %.loopexit2082 ], [ %.15943, %157 ]
  %.16865 = phi i32 [ %.14863, %.loopexit2082 ], [ %.15864, %157 ]
  %.16 = phi i32 [ %152, %.loopexit2082 ], [ %.15, %157 ]
  %164 = add i32 %.16944, 1
  br label %129, !llvm.loop !33

165:                                              ; preds = %129
  %166 = getelementptr inbounds i8, ptr %0, i64 10536
  %167 = load i8, ptr %166, align 8, !tbaa !24
  %168 = zext i8 %167 to i32
  %169 = getelementptr inbounds i8, ptr %0, i64 10537
  %170 = load i8, ptr %169, align 1, !tbaa !24
  %171 = zext i8 %170 to i32
  %172 = shl nuw nsw i32 %171, 8
  %173 = or disjoint i32 %172, %168
  %174 = getelementptr inbounds i8, ptr %0, i64 10538
  %175 = load i16, ptr %174, align 2
  %176 = zext i16 %175 to i32
  %177 = xor i32 %173, %176
  %.not1614 = icmp eq i32 %177, 65535
  br i1 %.not1614, label %178, label %1140

178:                                              ; preds = %165, %203
  %.141384 = phi i64 [ %.71377, %165 ], [ %.181388, %203 ]
  %.141290 = phi ptr [ %.71283, %165 ], [ %205, %203 ]
  %.171200 = phi ptr [ %.101193, %165 ], [ %.211204, %203 ]
  %.181117 = phi i64 [ %.111110, %165 ], [ %.221121, %203 ]
  %.181030 = phi i32 [ %.111023, %165 ], [ %.221034, %203 ]
  %.18946 = phi i32 [ %173, %165 ], [ %206, %203 ]
  %.18867 = phi i32 [ %.11860, %165 ], [ %.21870, %203 ]
  %.18 = phi i32 [ %.11, %165 ], [ %.22, %203 ]
  %179 = icmp ne i32 %.18946, 0
  %180 = icmp ne i32 %.18, 0
  %181 = select i1 %179, i1 %180, i1 false
  br i1 %181, label %182, label %207

182:                                              ; preds = %178
  %183 = icmp ult i32 %.18, 8
  br i1 %183, label %.preheader2089, label %.loopexit2090

.preheader2089:                                   ; preds = %187, %182
  %.161386.ph = phi i64 [ %.141384, %182 ], [ %38, %187 ]
  %.161292.ph = phi ptr [ %.141290, %182 ], [ %4, %187 ]
  %.191202.ph = phi ptr [ %.171200, %182 ], [ %1, %187 ]
  %.201119.ph = phi i64 [ %.181117, %182 ], [ %30, %187 ]
  %.201032.ph = phi i32 [ %.181030, %182 ], [ %36, %187 ]
  %.20948.ph = phi i32 [ %.18946, %182 ], [ %34, %187 ]
  %.20869.ph = phi i32 [ %.18867, %182 ], [ %32, %187 ]
  %.20.ph = phi i32 [ %.18, %182 ], [ %.84.fr1991, %187 ]
  br label %184

184:                                              ; preds = %.preheader2089, %188
  %.191202 = phi ptr [ %189, %188 ], [ %.191202.ph, %.preheader2089 ]
  %.201119 = phi i64 [ %194, %188 ], [ %.201119.ph, %.preheader2089 ]
  %.20 = phi i32 [ %195, %188 ], [ %.20.ph, %.preheader2089 ]
  %.not1628 = icmp ult ptr %.191202, %12
  br i1 %.not1628, label %188, label %185

185:                                              ; preds = %184
  %186 = and i32 %6, 2
  %.not1630 = icmp eq i32 %186, 0
  store i32 51, ptr %0, align 8, !tbaa !17
  %spec.select1717 = select i1 %.not1630, i32 -4, i32 1
  br label %.thread1687

187:                                              ; preds = %26
  br label %.preheader2089, !llvm.loop !34

188:                                              ; preds = %184
  %189 = getelementptr inbounds i8, ptr %.191202, i64 1
  %190 = load i8, ptr %.191202, align 1, !tbaa !24
  %191 = zext i8 %190 to i64
  %192 = zext nneg i32 %.20 to i64
  %193 = shl i64 %191, %192
  %194 = or i64 %193, %.201119
  %195 = add i32 %.20, 8
  %196 = icmp ugt i32 %.20, -9
  br i1 %196, label %184, label %.loopexit2090, !llvm.loop !35

.loopexit2090:                                    ; preds = %188, %182
  %.171387 = phi i64 [ %.141384, %182 ], [ %.161386.ph, %188 ]
  %.171293 = phi ptr [ %.141290, %182 ], [ %.161292.ph, %188 ]
  %.201203 = phi ptr [ %.171200, %182 ], [ %189, %188 ]
  %.211120 = phi i64 [ %.181117, %182 ], [ %194, %188 ]
  %.211033 = phi i32 [ %.181030, %182 ], [ %.201032.ph, %188 ]
  %.21949 = phi i32 [ %.18946, %182 ], [ %.20948.ph, %188 ]
  %.21 = phi i32 [ %.18, %182 ], [ %195, %188 ]
  %197 = trunc i64 %.211120 to i32
  %198 = and i32 %197, 255
  %199 = lshr i64 %.211120, 8
  %200 = add i32 %.21, -8
  br label %201

201:                                              ; preds = %202, %.loopexit2090
  %.181388 = phi i64 [ %.171387, %.loopexit2090 ], [ %38, %202 ]
  %.181294 = phi ptr [ %.171293, %.loopexit2090 ], [ %4, %202 ]
  %.211204 = phi ptr [ %.201203, %.loopexit2090 ], [ %1, %202 ]
  %.221121 = phi i64 [ %199, %.loopexit2090 ], [ %30, %202 ]
  %.221034 = phi i32 [ %.211033, %.loopexit2090 ], [ %36, %202 ]
  %.22950 = phi i32 [ %.21949, %.loopexit2090 ], [ %34, %202 ]
  %.21870 = phi i32 [ %198, %.loopexit2090 ], [ %32, %202 ]
  %.22 = phi i32 [ %200, %.loopexit2090 ], [ %.84.fr1991, %202 ]
  %.not1629 = icmp ult ptr %.181294, %14
  br i1 %.not1629, label %203, label %1140

202:                                              ; preds = %26
  br label %201, !llvm.loop !36

203:                                              ; preds = %201
  %204 = trunc i32 %.21870 to i8
  %205 = getelementptr inbounds i8, ptr %.181294, i64 1
  store i8 %204, ptr %.181294, align 1, !tbaa !24
  %206 = add i32 %.22950, -1
  br label %178, !llvm.loop !37

207:                                              ; preds = %178, %214
  %.191389 = phi i64 [ %.141384, %178 ], [ %.211391, %214 ]
  %.191295 = phi ptr [ %.141290, %178 ], [ %224, %214 ]
  %.221205 = phi ptr [ %.171200, %178 ], [ %223, %214 ]
  %.231122 = phi i64 [ %.181117, %178 ], [ %.251124, %214 ]
  %.231035 = phi i32 [ %.181030, %178 ], [ %.251037, %214 ]
  %.23951 = phi i32 [ %.18946, %178 ], [ %226, %214 ]
  %.22871 = phi i32 [ %.18867, %178 ], [ %.24873, %214 ]
  %.23 = phi i32 [ %.18, %178 ], [ %.25, %214 ]
  %.not1615 = icmp eq i32 %.23951, 0
  br i1 %.not1615, label %1076, label %208

208:                                              ; preds = %207, %209
  %.201390 = phi i64 [ %.191389, %207 ], [ %38, %209 ]
  %.201296 = phi ptr [ %.191295, %207 ], [ %4, %209 ]
  %.231206 = phi ptr [ %.221205, %207 ], [ %1, %209 ]
  %.241123 = phi i64 [ %.231122, %207 ], [ %30, %209 ]
  %.241036 = phi i32 [ %.231035, %207 ], [ %36, %209 ]
  %.24952 = phi i32 [ %.23951, %207 ], [ %34, %209 ]
  %.23872 = phi i32 [ %.22871, %207 ], [ %32, %209 ]
  %.24 = phi i32 [ %.23, %207 ], [ %.84.fr1991, %209 ]
  %.not1625 = icmp ult ptr %.201296, %14
  br i1 %.not1625, label %210, label %1140

209:                                              ; preds = %26
  br label %208, !llvm.loop !38

210:                                              ; preds = %208, %213
  %.211391 = phi i64 [ %.201390, %208 ], [ %38, %213 ]
  %.211297 = phi ptr [ %.201296, %208 ], [ %4, %213 ]
  %.241207 = phi ptr [ %.231206, %208 ], [ %1, %213 ]
  %.251124 = phi i64 [ %.241123, %208 ], [ %30, %213 ]
  %.251037 = phi i32 [ %.241036, %208 ], [ %36, %213 ]
  %.25953 = phi i32 [ %.24952, %208 ], [ %34, %213 ]
  %.24873 = phi i32 [ %.23872, %208 ], [ %32, %213 ]
  %.25 = phi i32 [ %.24, %208 ], [ %.84.fr1991, %213 ]
  %.not1626 = icmp ult ptr %.241207, %12
  br i1 %.not1626, label %214, label %211

211:                                              ; preds = %210
  %212 = and i32 %6, 2
  %.not1627 = icmp eq i32 %212, 0
  store i32 38, ptr %0, align 8, !tbaa !17
  %spec.select1719 = select i1 %.not1627, i32 -4, i32 1
  br label %.thread1687

213:                                              ; preds = %26
  br label %210, !llvm.loop !39

214:                                              ; preds = %210
  %215 = ptrtoint ptr %14 to i64
  %216 = ptrtoint ptr %.211297 to i64
  %217 = sub i64 %215, %216
  %218 = ptrtoint ptr %12 to i64
  %219 = ptrtoint ptr %.241207 to i64
  %220 = sub i64 %218, %219
  %. = tail call i64 @llvm.umin.i64(i64 %217, i64 %220)
  %221 = zext i32 %.25953 to i64
  %222 = tail call i64 @llvm.umin.i64(i64 %., i64 %221)
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.211297, ptr align 1 %.241207, i64 %222, i1 false)
  %223 = getelementptr inbounds i8, ptr %.241207, i64 %222
  %224 = getelementptr inbounds i8, ptr %.211297, i64 %222
  %225 = trunc nuw i64 %222 to i32
  %226 = sub i32 %.25953, %225
  br label %207, !llvm.loop !40

227:                                              ; preds = %.loopexit2193
  switch i32 %110, label %232 [
    i32 3, label %1140
    i32 1, label %.lr.ph1793.preheader
  ]

.lr.ph1793.preheader:                             ; preds = %227
  %228 = getelementptr i8, ptr %0, i64 72
  %229 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 288, ptr %229, align 4, !tbaa !41
  %230 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 32, ptr %230, align 4, !tbaa !41
  %231 = getelementptr inbounds i8, ptr %0, i64 3560
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %231, i8 5, i64 32, i1 false)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(144) %228, i8 8, i64 144, i1 false), !tbaa !24
  %scevgep = getelementptr i8, ptr %0, i64 216
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(112) %scevgep, i8 9, i64 112, i1 false), !tbaa !24
  %scevgep1913 = getelementptr i8, ptr %0, i64 328
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(24) %scevgep1913, i8 7, i64 24, i1 false), !tbaa !24
  %scevgep1914 = getelementptr i8, ptr %0, i64 352
  store i64 578721382704613384, ptr %scevgep1914, align 1
  br label %.loopexit1763

232:                                              ; preds = %227, %.loopexit2106
  %.231393 = phi i64 [ %.261396, %.loopexit2106 ], [ %.31373, %227 ]
  %.231299 = phi ptr [ %.261302, %.loopexit2106 ], [ %.31279, %227 ]
  %.261209 = phi ptr [ %.291212, %.loopexit2106 ], [ %.61189, %227 ]
  %.271126 = phi i64 [ %265, %.loopexit2106 ], [ %108, %227 ]
  %.271039 = phi i32 [ %.301042, %.loopexit2106 ], [ %.71019, %227 ]
  %.27955 = phi i32 [ %270, %.loopexit2106 ], [ 0, %227 ]
  %.26875 = phi i32 [ %.29878, %.loopexit2106 ], [ %.7856, %227 ]
  %.27 = phi i32 [ %266, %.loopexit2106 ], [ %109, %227 ]
  %233 = icmp ult i32 %.27955, 3
  br i1 %233, label %234, label %271

234:                                              ; preds = %232
  %235 = zext nneg i32 %.27955 to i64
  %236 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %235
  %237 = load i8, ptr %236, align 1, !tbaa !24
  %238 = sext i8 %237 to i32
  %239 = icmp ult i32 %.27, %238
  br i1 %239, label %.preheader2105, label %.loopexit2106

.preheader2105:                                   ; preds = %245, %234
  %.251395.ph = phi i64 [ %.231393, %234 ], [ %38, %245 ]
  %.251301.ph = phi ptr [ %.231299, %234 ], [ %4, %245 ]
  %.281211.ph = phi ptr [ %.261209, %234 ], [ %1, %245 ]
  %.291128.ph = phi i64 [ %.271126, %234 ], [ %30, %245 ]
  %.291041.ph = phi i32 [ %.271039, %234 ], [ %36, %245 ]
  %.29957.ph = phi i32 [ %.27955, %234 ], [ %34, %245 ]
  %.28877.ph = phi i32 [ %.26875, %234 ], [ %32, %245 ]
  %.29.ph = phi i32 [ %.27, %234 ], [ %.84.fr1991, %245 ]
  %240 = zext i32 %.29957.ph to i64
  %241 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %240
  br label %242

242:                                              ; preds = %.preheader2105, %246
  %.281211 = phi ptr [ %247, %246 ], [ %.281211.ph, %.preheader2105 ]
  %.291128 = phi i64 [ %252, %246 ], [ %.291128.ph, %.preheader2105 ]
  %.29 = phi i32 [ %253, %246 ], [ %.29.ph, %.preheader2105 ]
  %.not1575 = icmp ult ptr %.281211, %12
  br i1 %.not1575, label %246, label %243

243:                                              ; preds = %242
  %244 = and i32 %6, 2
  %.not1576 = icmp eq i32 %244, 0
  store i32 11, ptr %0, align 8, !tbaa !17
  %spec.select1721 = select i1 %.not1576, i32 -4, i32 1
  br label %.thread1687

245:                                              ; preds = %26
  br label %.preheader2105, !llvm.loop !42

246:                                              ; preds = %242
  %247 = getelementptr inbounds i8, ptr %.281211, i64 1
  %248 = load i8, ptr %.281211, align 1, !tbaa !24
  %249 = zext i8 %248 to i64
  %250 = zext nneg i32 %.29 to i64
  %251 = shl i64 %249, %250
  %252 = or i64 %251, %.291128
  %253 = add i32 %.29, 8
  %254 = load i8, ptr %241, align 1, !tbaa !24
  %255 = sext i8 %254 to i32
  %256 = icmp ult i32 %253, %255
  br i1 %256, label %242, label %.loopexit2106, !llvm.loop !43

.loopexit2106:                                    ; preds = %246, %234
  %.pre-phi1967 = phi i32 [ %238, %234 ], [ %255, %246 ]
  %257 = phi i8 [ %237, %234 ], [ %254, %246 ]
  %.pre-phi = phi i64 [ %235, %234 ], [ %240, %246 ]
  %.261396 = phi i64 [ %.231393, %234 ], [ %.251395.ph, %246 ]
  %.261302 = phi ptr [ %.231299, %234 ], [ %.251301.ph, %246 ]
  %.291212 = phi ptr [ %.261209, %234 ], [ %247, %246 ]
  %.301129 = phi i64 [ %.271126, %234 ], [ %252, %246 ]
  %.301042 = phi i32 [ %.271039, %234 ], [ %.291041.ph, %246 ]
  %.30958 = phi i32 [ %.27955, %234 ], [ %.29957.ph, %246 ]
  %.29878 = phi i32 [ %.26875, %234 ], [ %.28877.ph, %246 ]
  %.30 = phi i32 [ %.27, %234 ], [ %253, %246 ]
  %258 = zext nneg i8 %257 to i32
  %notmask = shl nsw i32 -1, %258
  %259 = xor i32 %notmask, -1
  %260 = trunc i64 %.301129 to i32
  %261 = and i32 %259, %260
  %262 = getelementptr inbounds i8, ptr %0, i64 44
  %263 = getelementptr inbounds [3 x i32], ptr %262, i64 0, i64 %.pre-phi
  %264 = zext nneg i32 %.pre-phi1967 to i64
  %265 = lshr i64 %.301129, %264
  %266 = sub i32 %.30, %.pre-phi1967
  %267 = getelementptr inbounds [3 x i32], ptr @tinfl_decompress.s_min_table_sizes, i64 0, i64 %.pre-phi
  %268 = load i32, ptr %267, align 4, !tbaa !41
  %269 = add i32 %261, %268
  store i32 %269, ptr %263, align 4, !tbaa !41
  %270 = add i32 %.30958, 1
  br label %232, !llvm.loop !44

271:                                              ; preds = %232
  %272 = getelementptr inbounds i8, ptr %0, i64 7048
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(288) %272, i8 0, i64 288, i1 false)
  br label %273

273:                                              ; preds = %.loopexit2117, %271
  %.271397 = phi i64 [ %.231393, %271 ], [ %.301400, %.loopexit2117 ]
  %.271303 = phi ptr [ %.231299, %271 ], [ %.301306, %.loopexit2117 ]
  %.301213 = phi ptr [ %.261209, %271 ], [ %.331216, %.loopexit2117 ]
  %.311130 = phi i64 [ %.271126, %271 ], [ %302, %.loopexit2117 ]
  %.311043 = phi i32 [ %.271039, %271 ], [ %.341046, %.loopexit2117 ]
  %.31959 = phi i32 [ 0, %271 ], [ %310, %.loopexit2117 ]
  %.30879 = phi i32 [ %.26875, %271 ], [ %.33882, %.loopexit2117 ]
  %.31 = phi i32 [ %.27, %271 ], [ %303, %.loopexit2117 ]
  %274 = getelementptr inbounds i8, ptr %0, i64 52
  %275 = load i32, ptr %274, align 4, !tbaa !41
  %276 = icmp ult i32 %.31959, %275
  br i1 %276, label %277, label %311

277:                                              ; preds = %273
  %278 = icmp ult i32 %.31, 3
  br i1 %278, label %.preheader2116, label %.loopexit2117

.preheader2116:                                   ; preds = %277, %281
  %.291399.ph = phi i64 [ %.271397, %277 ], [ %38, %281 ]
  %.291305.ph = phi ptr [ %.271303, %277 ], [ %4, %281 ]
  %.321215.ph = phi ptr [ %.301213, %277 ], [ %1, %281 ]
  %.331132.ph = phi i64 [ %.311130, %277 ], [ %30, %281 ]
  %.331045.ph = phi i32 [ %.311043, %277 ], [ %36, %281 ]
  %.33961.ph = phi i32 [ %.31959, %277 ], [ %34, %281 ]
  %.32881.ph = phi i32 [ %.30879, %277 ], [ %32, %281 ]
  %.33.ph = phi i32 [ %.31, %277 ], [ %.84.fr1991, %281 ]
  %.not1573 = icmp ult ptr %.321215.ph, %12
  br i1 %.not1573, label %282, label %279

279:                                              ; preds = %291, %.preheader2116
  %.321215.lcssa = phi ptr [ %.321215.ph, %.preheader2116 ], [ %283, %291 ]
  %.331132.lcssa = phi i64 [ %.331132.ph, %.preheader2116 ], [ %288, %291 ]
  %.33.lcssa = phi i32 [ %.33.ph, %.preheader2116 ], [ %289, %291 ]
  %280 = and i32 %6, 2
  %.not1574 = icmp eq i32 %280, 0
  store i32 14, ptr %0, align 8, !tbaa !17
  %spec.select1723 = select i1 %.not1574, i32 -4, i32 1
  br label %.thread1687

281:                                              ; preds = %26
  br label %.preheader2116, !llvm.loop !45

282:                                              ; preds = %.preheader2116
  %283 = getelementptr inbounds i8, ptr %.321215.ph, i64 1
  %284 = load i8, ptr %.321215.ph, align 1, !tbaa !24
  %285 = zext i8 %284 to i64
  %286 = zext nneg i32 %.33.ph to i64
  %287 = shl i64 %285, %286
  %288 = or i64 %287, %.331132.ph
  %289 = add i32 %.33.ph, 8
  %290 = icmp ult i32 %289, 3
  br i1 %290, label %291, label %.loopexit2117, !llvm.loop !46

291:                                              ; preds = %282
  %.not1573.1 = icmp ult ptr %283, %12
  br i1 %.not1573.1, label %292, label %279

292:                                              ; preds = %291
  %293 = getelementptr inbounds i8, ptr %.321215.ph, i64 2
  %294 = load i8, ptr %283, align 1, !tbaa !24
  %295 = zext i8 %294 to i64
  %296 = zext nneg i32 %289 to i64
  %297 = shl nuw nsw i64 %295, %296
  %298 = or i64 %297, %.331132.ph
  %299 = add nsw i32 %.33.ph, 16
  br label %.loopexit2117

.loopexit2117:                                    ; preds = %282, %292, %277
  %.301400 = phi i64 [ %.271397, %277 ], [ %.291399.ph, %292 ], [ %.291399.ph, %282 ]
  %.301306 = phi ptr [ %.271303, %277 ], [ %.291305.ph, %292 ], [ %.291305.ph, %282 ]
  %.331216 = phi ptr [ %.301213, %277 ], [ %283, %282 ], [ %293, %292 ]
  %.341133 = phi i64 [ %.311130, %277 ], [ %288, %282 ], [ %298, %292 ]
  %.341046 = phi i32 [ %.311043, %277 ], [ %.331045.ph, %292 ], [ %.331045.ph, %282 ]
  %.34962 = phi i32 [ %.31959, %277 ], [ %.33961.ph, %292 ], [ %.33961.ph, %282 ]
  %.33882 = phi i32 [ %.30879, %277 ], [ %.32881.ph, %292 ], [ %.32881.ph, %282 ]
  %.34 = phi i32 [ %.31, %277 ], [ %289, %282 ], [ %299, %292 ]
  %300 = trunc i64 %.341133 to i8
  %301 = and i8 %300, 7
  %302 = lshr i64 %.341133, 3
  %303 = add i32 %.34, -3
  %304 = getelementptr inbounds i8, ptr %0, i64 7048
  %305 = zext i32 %.34962 to i64
  %306 = getelementptr inbounds [19 x i8], ptr @tinfl_decompress.s_length_dezigzag, i64 0, i64 %305
  %307 = load i8, ptr %306, align 1, !tbaa !24
  %308 = zext i8 %307 to i64
  %309 = getelementptr inbounds [288 x i8], ptr %304, i64 0, i64 %308
  store i8 %301, ptr %309, align 1, !tbaa !24
  %310 = add i32 %.34962, 1
  br label %273, !llvm.loop !47

311:                                              ; preds = %273
  store i32 19, ptr %274, align 4, !tbaa !41
  %.phi.trans.insert.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 24
  %.pre.pre = load i32, ptr %.phi.trans.insert.phi.trans.insert, align 8, !tbaa !29
  br label %.loopexit1763

.loopexit1763:                                    ; preds = %311, %.lr.ph1793.preheader, %667
  %312 = phi i32 [ %670, %667 ], [ %.pre.pre, %311 ], [ 1, %.lr.ph1793.preheader ]
  %.321402 = phi i64 [ %.431413, %667 ], [ %.271397, %311 ], [ %.31373, %.lr.ph1793.preheader ]
  %.321308 = phi ptr [ %.431319, %667 ], [ %.271303, %311 ], [ %.31279, %.lr.ph1793.preheader ]
  %.351218 = phi ptr [ %.461229, %667 ], [ %.301213, %311 ], [ %.61189, %.lr.ph1793.preheader ]
  %.361135 = phi i64 [ %.471146, %667 ], [ %.311130, %311 ], [ %108, %.lr.ph1793.preheader ]
  %.361048 = phi i32 [ %.471059, %667 ], [ %.311043, %311 ], [ %.71019, %.lr.ph1793.preheader ]
  %.36964 = phi i32 [ %.47975, %667 ], [ %.31959, %311 ], [ %.8936, %.lr.ph1793.preheader ]
  %.35884 = phi i32 [ %.45894, %667 ], [ %.30879, %311 ], [ %.7856, %.lr.ph1793.preheader ]
  %.36 = phi i32 [ %.47, %667 ], [ %.31, %311 ], [ %109, %.lr.ph1793.preheader ]
  %313 = icmp sgt i32 %312, -1
  br i1 %313, label %314, label %.preheader2166

314:                                              ; preds = %.loopexit1763
  %315 = getelementptr inbounds i8, ptr %0, i64 72
  %316 = zext nneg i32 %312 to i64
  %317 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %315, i64 0, i64 %316
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %10, i8 0, i64 64, i1 false)
  %318 = getelementptr inbounds i8, ptr %317, i64 288
  %319 = getelementptr inbounds i8, ptr %317, i64 2336
  %320 = getelementptr inbounds i8, ptr %0, i64 44
  %321 = getelementptr inbounds [3 x i32], ptr %320, i64 0, i64 %316
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(3200) %318, i8 0, i64 3200, i1 false)
  %322 = load i32, ptr %321, align 4, !tbaa !41
  %.not1869 = icmp eq i32 %322, 0
  br i1 %.not1869, label %._crit_edge1804, label %.lr.ph1803.preheader

.lr.ph1803.preheader:                             ; preds = %314
  %wide.trip.count = zext i32 %322 to i64
  %xtraiter = and i64 %wide.trip.count, 3
  %323 = icmp ult i32 %322, 4
  br i1 %323, label %._crit_edge1804.loopexit.unr-lcssa, label %.lr.ph1803.preheader.new

.lr.ph1803.preheader.new:                         ; preds = %.lr.ph1803.preheader
  %unroll_iter = and i64 %wide.trip.count, 4294967292
  br label %.lr.ph1803

.lr.ph1803:                                       ; preds = %.lr.ph1803, %.lr.ph1803.preheader.new
  %indvars.iv = phi i64 [ 0, %.lr.ph1803.preheader.new ], [ %indvars.iv.next.3, %.lr.ph1803 ]
  %niter = phi i64 [ 0, %.lr.ph1803.preheader.new ], [ %niter.next.3, %.lr.ph1803 ]
  %324 = getelementptr inbounds [288 x i8], ptr %317, i64 0, i64 %indvars.iv
  %325 = load i8, ptr %324, align 1, !tbaa !24
  %326 = zext i8 %325 to i64
  %327 = getelementptr inbounds [16 x i32], ptr %10, i64 0, i64 %326
  %328 = load i32, ptr %327, align 4, !tbaa !41
  %329 = add i32 %328, 1
  store i32 %329, ptr %327, align 4, !tbaa !41
  %indvars.iv.next = or disjoint i64 %indvars.iv, 1
  %330 = getelementptr inbounds [288 x i8], ptr %317, i64 0, i64 %indvars.iv.next
  %331 = load i8, ptr %330, align 1, !tbaa !24
  %332 = zext i8 %331 to i64
  %333 = getelementptr inbounds [16 x i32], ptr %10, i64 0, i64 %332
  %334 = load i32, ptr %333, align 4, !tbaa !41
  %335 = add i32 %334, 1
  store i32 %335, ptr %333, align 4, !tbaa !41
  %indvars.iv.next.1 = or disjoint i64 %indvars.iv, 2
  %336 = getelementptr inbounds [288 x i8], ptr %317, i64 0, i64 %indvars.iv.next.1
  %337 = load i8, ptr %336, align 1, !tbaa !24
  %338 = zext i8 %337 to i64
  %339 = getelementptr inbounds [16 x i32], ptr %10, i64 0, i64 %338
  %340 = load i32, ptr %339, align 4, !tbaa !41
  %341 = add i32 %340, 1
  store i32 %341, ptr %339, align 4, !tbaa !41
  %indvars.iv.next.2 = or disjoint i64 %indvars.iv, 3
  %342 = getelementptr inbounds [288 x i8], ptr %317, i64 0, i64 %indvars.iv.next.2
  %343 = load i8, ptr %342, align 1, !tbaa !24
  %344 = zext i8 %343 to i64
  %345 = getelementptr inbounds [16 x i32], ptr %10, i64 0, i64 %344
  %346 = load i32, ptr %345, align 4, !tbaa !41
  %347 = add i32 %346, 1
  store i32 %347, ptr %345, align 4, !tbaa !41
  %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge1804.loopexit.unr-lcssa, label %.lr.ph1803, !llvm.loop !48

._crit_edge1804.loopexit.unr-lcssa:               ; preds = %.lr.ph1803, %.lr.ph1803.preheader
  %indvars.iv.unr = phi i64 [ 0, %.lr.ph1803.preheader ], [ %indvars.iv.next.3, %.lr.ph1803 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1804.loopexit, label %.lr.ph1803.epil

.lr.ph1803.epil:                                  ; preds = %._crit_edge1804.loopexit.unr-lcssa, %.lr.ph1803.epil
  %indvars.iv.epil = phi i64 [ %indvars.iv.next.epil, %.lr.ph1803.epil ], [ %indvars.iv.unr, %._crit_edge1804.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1803.epil ], [ 0, %._crit_edge1804.loopexit.unr-lcssa ]
  %348 = getelementptr inbounds [288 x i8], ptr %317, i64 0, i64 %indvars.iv.epil
  %349 = load i8, ptr %348, align 1, !tbaa !24
  %350 = zext i8 %349 to i64
  %351 = getelementptr inbounds [16 x i32], ptr %10, i64 0, i64 %350
  %352 = load i32, ptr %351, align 4, !tbaa !41
  %353 = add i32 %352, 1
  store i32 %353, ptr %351, align 4, !tbaa !41
  %indvars.iv.next.epil = add nuw nsw i64 %indvars.iv.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge1804.loopexit, label %.lr.ph1803.epil, !llvm.loop !49

._crit_edge1804.loopexit:                         ; preds = %.lr.ph1803.epil, %._crit_edge1804.loopexit.unr-lcssa
  %.phi.trans.insert1938 = getelementptr inbounds i8, ptr %10, i64 4
  %.pre1939 = load i32, ptr %.phi.trans.insert1938, align 4, !tbaa !41
  %.phi.trans.insert1940 = getelementptr inbounds i8, ptr %10, i64 8
  %.pre1941 = load i32, ptr %.phi.trans.insert1940, align 8, !tbaa !41
  %.phi.trans.insert1942 = getelementptr inbounds i8, ptr %10, i64 12
  %.pre1943 = load i32, ptr %.phi.trans.insert1942, align 4, !tbaa !41
  %.phi.trans.insert1944 = getelementptr inbounds i8, ptr %10, i64 16
  %.pre1945 = load i32, ptr %.phi.trans.insert1944, align 16, !tbaa !41
  %.phi.trans.insert1946 = getelementptr inbounds i8, ptr %10, i64 20
  %.pre1947 = load i32, ptr %.phi.trans.insert1946, align 4, !tbaa !41
  %.phi.trans.insert1948 = getelementptr inbounds i8, ptr %10, i64 24
  %.pre1949 = load i32, ptr %.phi.trans.insert1948, align 8, !tbaa !41
  %.phi.trans.insert1950 = getelementptr inbounds i8, ptr %10, i64 28
  %.pre1951 = load i32, ptr %.phi.trans.insert1950, align 4, !tbaa !41
  %.phi.trans.insert1952 = getelementptr inbounds i8, ptr %10, i64 32
  %.pre1953 = load i32, ptr %.phi.trans.insert1952, align 16, !tbaa !41
  %.phi.trans.insert1954 = getelementptr inbounds i8, ptr %10, i64 36
  %.pre1955 = load i32, ptr %.phi.trans.insert1954, align 4, !tbaa !41
  %.phi.trans.insert1956 = getelementptr inbounds i8, ptr %10, i64 40
  %.pre1957 = load i32, ptr %.phi.trans.insert1956, align 8, !tbaa !41
  %.phi.trans.insert1958 = getelementptr inbounds i8, ptr %10, i64 44
  %.pre1959 = load i32, ptr %.phi.trans.insert1958, align 4, !tbaa !41
  %.phi.trans.insert1960 = getelementptr inbounds i8, ptr %10, i64 48
  %.pre1961 = load i32, ptr %.phi.trans.insert1960, align 16, !tbaa !41
  %.phi.trans.insert1962 = getelementptr inbounds i8, ptr %10, i64 52
  %.pre1963 = load i32, ptr %.phi.trans.insert1962, align 4, !tbaa !41
  %.phi.trans.insert1964 = getelementptr inbounds i8, ptr %10, i64 56
  %.pre1965 = load i32, ptr %.phi.trans.insert1964, align 8, !tbaa !41
  br label %._crit_edge1804

._crit_edge1804:                                  ; preds = %._crit_edge1804.loopexit, %314
  %354 = phi i32 [ %.pre1965, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %355 = phi i32 [ %.pre1963, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %356 = phi i32 [ %.pre1961, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %357 = phi i32 [ %.pre1959, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %358 = phi i32 [ %.pre1957, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %359 = phi i32 [ %.pre1955, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %360 = phi i32 [ %.pre1953, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %361 = phi i32 [ %.pre1951, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %362 = phi i32 [ %.pre1949, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %363 = phi i32 [ %.pre1947, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %364 = phi i32 [ %.pre1945, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %365 = phi i32 [ %.pre1943, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %366 = phi i32 [ %.pre1941, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %367 = phi i32 [ %.pre1939, %._crit_edge1804.loopexit ], [ 0, %314 ]
  %368 = getelementptr inbounds i8, ptr %9, i64 4
  store i32 0, ptr %368, align 4, !tbaa !41
  store i32 0, ptr %9, align 16, !tbaa !41
  %369 = shl i32 %367, 1
  %370 = getelementptr inbounds i8, ptr %9, i64 8
  store i32 %369, ptr %370, align 8, !tbaa !41
  %371 = add i32 %366, %367
  %372 = add i32 %366, %369
  %373 = shl i32 %372, 1
  %374 = getelementptr inbounds i8, ptr %9, i64 12
  store i32 %373, ptr %374, align 4, !tbaa !41
  %375 = add i32 %365, %371
  %376 = add i32 %365, %373
  %377 = shl i32 %376, 1
  %378 = getelementptr inbounds i8, ptr %9, i64 16
  store i32 %377, ptr %378, align 16, !tbaa !41
  %379 = add i32 %364, %375
  %380 = add i32 %364, %377
  %381 = shl i32 %380, 1
  %382 = getelementptr inbounds i8, ptr %9, i64 20
  store i32 %381, ptr %382, align 4, !tbaa !41
  %383 = add i32 %363, %379
  %384 = add i32 %363, %381
  %385 = shl i32 %384, 1
  %386 = getelementptr inbounds i8, ptr %9, i64 24
  store i32 %385, ptr %386, align 8, !tbaa !41
  %387 = add i32 %362, %383
  %388 = add i32 %362, %385
  %389 = shl i32 %388, 1
  %390 = getelementptr inbounds i8, ptr %9, i64 28
  store i32 %389, ptr %390, align 4, !tbaa !41
  %391 = add i32 %361, %387
  %392 = add i32 %361, %389
  %393 = shl i32 %392, 1
  %394 = getelementptr inbounds i8, ptr %9, i64 32
  store i32 %393, ptr %394, align 16, !tbaa !41
  %395 = add i32 %360, %391
  %396 = add i32 %360, %393
  %397 = shl i32 %396, 1
  %398 = getelementptr inbounds i8, ptr %9, i64 36
  store i32 %397, ptr %398, align 4, !tbaa !41
  %399 = add i32 %359, %395
  %400 = add i32 %359, %397
  %401 = shl i32 %400, 1
  %402 = getelementptr inbounds i8, ptr %9, i64 40
  store i32 %401, ptr %402, align 8, !tbaa !41
  %403 = add i32 %358, %399
  %404 = add i32 %358, %401
  %405 = shl i32 %404, 1
  %406 = getelementptr inbounds i8, ptr %9, i64 44
  store i32 %405, ptr %406, align 4, !tbaa !41
  %407 = add i32 %357, %403
  %408 = add i32 %357, %405
  %409 = shl i32 %408, 1
  %410 = getelementptr inbounds i8, ptr %9, i64 48
  store i32 %409, ptr %410, align 16, !tbaa !41
  %411 = add i32 %356, %407
  %412 = add i32 %356, %409
  %413 = shl i32 %412, 1
  %414 = getelementptr inbounds i8, ptr %9, i64 52
  store i32 %413, ptr %414, align 4, !tbaa !41
  %415 = add i32 %355, %411
  %416 = add i32 %355, %413
  %417 = shl i32 %416, 1
  %418 = getelementptr inbounds i8, ptr %9, i64 56
  store i32 %417, ptr %418, align 8, !tbaa !41
  %419 = add i32 %354, %415
  %420 = add i32 %354, %417
  %421 = shl i32 %420, 1
  %422 = getelementptr inbounds i8, ptr %9, i64 60
  store i32 %421, ptr %422, align 4, !tbaa !41
  %423 = getelementptr inbounds i8, ptr %10, i64 60
  %424 = load i32, ptr %423, align 4, !tbaa !41
  %425 = add i32 %424, %419
  %426 = add i32 %424, %421
  %427 = shl i32 %426, 1
  %428 = getelementptr inbounds i8, ptr %9, i64 64
  store i32 %427, ptr %428, align 16, !tbaa !41
  %429 = icmp ne i32 %427, 65536
  %430 = icmp ugt i32 %425, 1
  %or.cond = select i1 %429, i1 %430, i1 false
  br i1 %or.cond, label %1140, label %.preheader1751

.preheader1751:                                   ; preds = %._crit_edge1804
  br i1 %.not1869, label %._crit_edge1828, label %.lr.ph1827.preheader

.lr.ph1827.preheader:                             ; preds = %.preheader1751
  %wide.trip.count1926 = zext i32 %322 to i64
  br label %.lr.ph1827

.lr.ph1827:                                       ; preds = %.lr.ph1827.preheader, %.loopexit1750
  %indvars.iv1923 = phi i64 [ 0, %.lr.ph1827.preheader ], [ %indvars.iv.next1924, %.loopexit1750 ]
  %.014731825 = phi i32 [ -1, %.lr.ph1827.preheader ], [ %.41477, %.loopexit1750 ]
  %431 = getelementptr inbounds [288 x i8], ptr %317, i64 0, i64 %indvars.iv1923
  %432 = load i8, ptr %431, align 1, !tbaa !24
  %433 = zext i8 %432 to i32
  %.not1609 = icmp eq i8 %432, 0
  br i1 %.not1609, label %.loopexit1750, label %434

434:                                              ; preds = %.lr.ph1827
  %435 = zext i8 %432 to i64
  %436 = getelementptr inbounds [17 x i32], ptr %9, i64 0, i64 %435
  %437 = load i32, ptr %436, align 4, !tbaa !41
  %438 = add i32 %437, 1
  store i32 %438, ptr %436, align 4, !tbaa !41
  %xtraiter2200 = and i32 %433, 3
  %439 = icmp ult i8 %432, 4
  br i1 %439, label %.unr-lcssa, label %.new

.new:                                             ; preds = %434
  %unroll_iter2206 = and i32 %433, 252
  br label %440

440:                                              ; preds = %440, %.new
  %.014621811 = phi i32 [ %437, %.new ], [ %454, %440 ]
  %.014641809 = phi i32 [ 0, %.new ], [ %453, %440 ]
  %niter2207 = phi i32 [ 0, %.new ], [ %niter2207.next.3, %440 ]
  %441 = shl i32 %.014641809, 3
  %442 = shl i32 %.014621811, 2
  %443 = and i32 %442, 4
  %444 = or disjoint i32 %441, %443
  %445 = and i32 %.014621811, 2
  %446 = or disjoint i32 %445, %444
  %447 = lshr i32 %.014621811, 2
  %448 = and i32 %447, 1
  %449 = or disjoint i32 %448, %446
  %450 = lshr i32 %.014621811, 3
  %451 = shl i32 %449, 1
  %452 = and i32 %450, 1
  %453 = or disjoint i32 %452, %451
  %454 = lshr i32 %.014621811, 4
  %niter2207.next.3 = add i32 %niter2207, 4
  %niter2207.ncmp.3 = icmp eq i32 %niter2207.next.3, %unroll_iter2206
  br i1 %niter2207.ncmp.3, label %.unr-lcssa, label %440, !llvm.loop !51

.unr-lcssa:                                       ; preds = %440, %434
  %.014621811.lcssa.ph = phi i32 [ poison, %434 ], [ %450, %440 ]
  %.lcssa2135.ph = phi i32 [ poison, %434 ], [ %451, %440 ]
  %.lcssa2134.ph = phi i32 [ poison, %434 ], [ %453, %440 ]
  %.014621811.unr = phi i32 [ %437, %434 ], [ %454, %440 ]
  %.014641809.unr = phi i32 [ 0, %434 ], [ %453, %440 ]
  %lcmp.mod2202.not = icmp eq i32 %xtraiter2200, 0
  br i1 %lcmp.mod2202.not, label %.epilog-lcssa, label %.epil.preheader

.epil.preheader:                                  ; preds = %.unr-lcssa, %.epil.preheader
  %.014621811.epil = phi i32 [ %458, %.epil.preheader ], [ %.014621811.unr, %.unr-lcssa ]
  %.014641809.epil = phi i32 [ %457, %.epil.preheader ], [ %.014641809.unr, %.unr-lcssa ]
  %epil.iter2201 = phi i32 [ %epil.iter2201.next, %.epil.preheader ], [ 0, %.unr-lcssa ]
  %455 = shl i32 %.014641809.epil, 1
  %456 = and i32 %.014621811.epil, 1
  %457 = or disjoint i32 %456, %455
  %458 = lshr i32 %.014621811.epil, 1
  %epil.iter2201.next = add i32 %epil.iter2201, 1
  %epil.iter2201.cmp.not = icmp eq i32 %epil.iter2201.next, %xtraiter2200
  br i1 %epil.iter2201.cmp.not, label %.epilog-lcssa, label %.epil.preheader, !llvm.loop !52

.epilog-lcssa:                                    ; preds = %.epil.preheader, %.unr-lcssa
  %.014621811.lcssa = phi i32 [ %.014621811.lcssa.ph, %.unr-lcssa ], [ %.014621811.epil, %.epil.preheader ]
  %.lcssa2135 = phi i32 [ %.lcssa2135.ph, %.unr-lcssa ], [ %455, %.epil.preheader ]
  %.lcssa2134 = phi i32 [ %.lcssa2134.ph, %.unr-lcssa ], [ %457, %.epil.preheader ]
  %459 = icmp ult i8 %432, 11
  br i1 %459, label %460, label %474

460:                                              ; preds = %.epilog-lcssa
  %461 = shl nuw nsw i32 %433, 9
  %462 = trunc nuw i64 %indvars.iv1923 to i32
  %463 = or i32 %461, %462
  %464 = trunc i32 %463 to i16
  %465 = icmp ult i32 %.lcssa2135, 1024
  br i1 %465, label %.lr.ph1824, label %.loopexit1750

.lr.ph1824:                                       ; preds = %460
  %466 = shl nuw nsw i32 1, %433
  %467 = and i32 %.014621811.lcssa, 1
  %468 = or disjoint i32 %.lcssa2135, %467
  %469 = zext nneg i32 %468 to i64
  %470 = zext nneg i32 %466 to i64
  br label %471

471:                                              ; preds = %.lr.ph1824, %471
  %indvars.iv1920 = phi i64 [ %469, %.lr.ph1824 ], [ %indvars.iv.next1921, %471 ]
  %472 = getelementptr inbounds [1024 x i16], ptr %318, i64 0, i64 %indvars.iv1920
  store i16 %464, ptr %472, align 2, !tbaa !53
  %indvars.iv.next1921 = add nuw nsw i64 %indvars.iv1920, %470
  %473 = icmp ult i64 %indvars.iv.next1921, 1024
  br i1 %473, label %471, label %.loopexit1750, !llvm.loop !55

474:                                              ; preds = %.epilog-lcssa
  %475 = and i32 %.lcssa2134, 1023
  %476 = zext nneg i32 %475 to i64
  %477 = getelementptr inbounds [1024 x i16], ptr %318, i64 0, i64 %476
  %478 = load i16, ptr %477, align 2, !tbaa !53
  %479 = sext i16 %478 to i32
  %480 = icmp eq i16 %478, 0
  br i1 %480, label %481, label %484

481:                                              ; preds = %474
  %482 = trunc i32 %.014731825 to i16
  store i16 %482, ptr %477, align 2, !tbaa !53
  %483 = add nsw i32 %.014731825, -2
  br label %484

484:                                              ; preds = %481, %474
  %.01478 = phi i32 [ %.014731825, %481 ], [ %479, %474 ]
  %.11474 = phi i32 [ %483, %481 ], [ %.014731825, %474 ]
  %485 = lshr i32 %.lcssa2135, 9
  %.not1871 = icmp eq i8 %432, 11
  br i1 %.not1871, label %._crit_edge1818, label %.lr.ph1817

.lr.ph1817:                                       ; preds = %484, %498
  %.214661815 = phi i32 [ %486, %498 ], [ %485, %484 ]
  %.014701814 = phi i32 [ %499, %498 ], [ %433, %484 ]
  %.214751813 = phi i32 [ %.31476, %498 ], [ %.11474, %484 ]
  %.114791812 = phi i32 [ %.21480, %498 ], [ %.01478, %484 ]
  %486 = lshr i32 %.214661815, 1
  %487 = and i32 %486, 1
  %488 = xor i32 %.114791812, -1
  %489 = add i32 %487, %488
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds [576 x i16], ptr %319, i64 0, i64 %490
  %492 = load i16, ptr %491, align 2, !tbaa !53
  %.not1613 = icmp eq i16 %492, 0
  br i1 %.not1613, label %493, label %496

493:                                              ; preds = %.lr.ph1817
  %494 = trunc i32 %.214751813 to i16
  store i16 %494, ptr %491, align 2, !tbaa !53
  %495 = add nsw i32 %.214751813, -2
  br label %498

496:                                              ; preds = %.lr.ph1817
  %497 = sext i16 %492 to i32
  br label %498

498:                                              ; preds = %493, %496
  %.21480 = phi i32 [ %497, %496 ], [ %.214751813, %493 ]
  %.31476 = phi i32 [ %.214751813, %496 ], [ %495, %493 ]
  %499 = add nsw i32 %.014701814, -1
  %500 = icmp ugt i32 %499, 11
  br i1 %500, label %.lr.ph1817, label %._crit_edge1818, !llvm.loop !57

._crit_edge1818:                                  ; preds = %498, %484
  %.11479.lcssa = phi i32 [ %.01478, %484 ], [ %.21480, %498 ]
  %.21475.lcssa = phi i32 [ %.11474, %484 ], [ %.31476, %498 ]
  %.21466.lcssa = phi i32 [ %485, %484 ], [ %486, %498 ]
  %501 = lshr i32 %.21466.lcssa, 1
  %.neg = and i32 %501, 1
  %502 = trunc i64 %indvars.iv1923 to i16
  %503 = xor i32 %.11479.lcssa, -1
  %504 = add i32 %.neg, %503
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds [576 x i16], ptr %319, i64 0, i64 %505
  store i16 %502, ptr %506, align 2, !tbaa !53
  br label %.loopexit1750

.loopexit1750:                                    ; preds = %471, %460, %.lr.ph1827, %._crit_edge1818
  %.41477 = phi i32 [ %.21475.lcssa, %._crit_edge1818 ], [ %.014731825, %.lr.ph1827 ], [ %.014731825, %460 ], [ %.014731825, %471 ]
  %indvars.iv.next1924 = add nuw nsw i64 %indvars.iv1923, 1
  %exitcond1927.not = icmp eq i64 %indvars.iv.next1924, %wide.trip.count1926
  br i1 %exitcond1927.not, label %._crit_edge1828, label %.lr.ph1827, !llvm.loop !58

._crit_edge1828:                                  ; preds = %.loopexit1750, %.preheader1751
  %507 = icmp eq i32 %312, 2
  br i1 %507, label %508, label %667

508:                                              ; preds = %._crit_edge1828, %655, %606
  %.341404 = phi i64 [ %.371407, %606 ], [ %.411411, %655 ], [ %.321402, %._crit_edge1828 ]
  %.341310 = phi ptr [ %.371313, %606 ], [ %.411317, %655 ], [ %.321308, %._crit_edge1828 ]
  %.371220 = phi ptr [ %.401223, %606 ], [ %.441227, %655 ], [ %.351218, %._crit_edge1828 ]
  %.381137 = phi i64 [ %603, %606 ], [ %640, %655 ], [ %.361135, %._crit_edge1828 ]
  %.381050 = phi i32 [ %.411053, %606 ], [ %.451057, %655 ], [ %.361048, %._crit_edge1828 ]
  %.38966 = phi i32 [ %609, %606 ], [ %658, %655 ], [ 0, %._crit_edge1828 ]
  %.37886 = phi i32 [ %.21453, %606 ], [ %.43892, %655 ], [ %.35884, %._crit_edge1828 ]
  %.38 = phi i32 [ %604, %606 ], [ %641, %655 ], [ %.36, %._crit_edge1828 ]
  %509 = getelementptr inbounds i8, ptr %0, i64 44
  %510 = load i32, ptr %509, align 4, !tbaa !41
  %511 = getelementptr inbounds i8, ptr %0, i64 48
  %512 = load i32, ptr %511, align 4, !tbaa !41
  %513 = add i32 %512, %510
  %514 = icmp ult i32 %.38966, %513
  br i1 %514, label %515, label %659

515:                                              ; preds = %508
  %516 = icmp ult i32 %.38, 15
  br i1 %516, label %517, label %579

517:                                              ; preds = %515
  %518 = ptrtoint ptr %12 to i64
  %519 = ptrtoint ptr %.371220 to i64
  %520 = sub i64 %518, %519
  %521 = icmp slt i64 %520, 2
  br i1 %521, label %522, label %564

522:                                              ; preds = %517, %555
  %.351405 = phi i64 [ %.341404, %517 ], [ %.361406, %555 ]
  %.351311 = phi ptr [ %.341310, %517 ], [ %.361312, %555 ]
  %.381221 = phi ptr [ %.371220, %517 ], [ %556, %555 ]
  %.391138 = phi i64 [ %.381137, %517 ], [ %561, %555 ]
  %.391051 = phi i32 [ %.381050, %517 ], [ %.401052, %555 ]
  %.39967 = phi i32 [ %.38966, %517 ], [ %.40968, %555 ]
  %.38887 = phi i32 [ %.37886, %517 ], [ %.39888, %555 ]
  %.39 = phi i32 [ %.38, %517 ], [ %562, %555 ]
  %523 = getelementptr inbounds i8, ptr %0, i64 7336
  %524 = and i64 %.391138, 1023
  %525 = getelementptr inbounds [1024 x i16], ptr %523, i64 0, i64 %524
  %526 = load i16, ptr %525, align 2, !tbaa !53
  %527 = sext i16 %526 to i32
  %528 = icmp sgt i16 %526, -1
  br i1 %528, label %529, label %531

529:                                              ; preds = %522
  %.not1602 = icmp ult i16 %526, 512
  %530 = lshr i32 %527, 9
  %.not1603 = icmp ult i32 %.39, %530
  %or.cond1646 = select i1 %.not1602, i1 true, i1 %.not1603
  br i1 %or.cond1646, label %551, label %579

531:                                              ; preds = %522
  %532 = icmp ugt i32 %.39, 10
  br i1 %532, label %.preheader1749, label %551

.preheader1749:                                   ; preds = %531
  %533 = getelementptr inbounds i8, ptr %0, i64 9384
  br label %534

534:                                              ; preds = %.preheader1749, %534
  %.01451 = phi i32 [ %544, %534 ], [ %527, %.preheader1749 ]
  %.01448 = phi i32 [ %537, %534 ], [ 10, %.preheader1749 ]
  %535 = xor i32 %.01451, -1
  %536 = sext i32 %535 to i64
  %537 = add i32 %.01448, 1
  %538 = zext nneg i32 %.01448 to i64
  %539 = lshr i64 %.391138, %538
  %540 = and i64 %539, 1
  %541 = add nsw i64 %540, %536
  %542 = getelementptr inbounds [576 x i16], ptr %533, i64 0, i64 %541
  %543 = load i16, ptr %542, align 2, !tbaa !53
  %544 = sext i16 %543 to i32
  %545 = icmp slt i16 %543, 0
  %546 = add i32 %.01448, 2
  %547 = icmp uge i32 %.39, %546
  %548 = select i1 %545, i1 %547, i1 false
  br i1 %548, label %534, label %549, !llvm.loop !59

549:                                              ; preds = %534
  %550 = icmp sgt i16 %543, -1
  br i1 %550, label %579, label %551

551:                                              ; preds = %531, %549, %529, %554
  %.361406 = phi i64 [ %.351405, %529 ], [ %.351405, %549 ], [ %.351405, %531 ], [ %38, %554 ]
  %.361312 = phi ptr [ %.351311, %529 ], [ %.351311, %549 ], [ %.351311, %531 ], [ %4, %554 ]
  %.391222 = phi ptr [ %.381221, %529 ], [ %.381221, %549 ], [ %.381221, %531 ], [ %1, %554 ]
  %.401139 = phi i64 [ %.391138, %529 ], [ %.391138, %549 ], [ %.391138, %531 ], [ %30, %554 ]
  %.401052 = phi i32 [ %.391051, %529 ], [ %.391051, %549 ], [ %.391051, %531 ], [ %36, %554 ]
  %.40968 = phi i32 [ %.39967, %529 ], [ %.39967, %549 ], [ %.39967, %531 ], [ %34, %554 ]
  %.39888 = phi i32 [ %.38887, %529 ], [ %.38887, %549 ], [ %.38887, %531 ], [ %32, %554 ]
  %.40 = phi i32 [ %.39, %529 ], [ %.39, %549 ], [ %.39, %531 ], [ %.84.fr1991, %554 ]
  %.not1604 = icmp ult ptr %.391222, %12
  br i1 %.not1604, label %555, label %552

552:                                              ; preds = %551
  %553 = and i32 %6, 2
  %.not1605 = icmp eq i32 %553, 0
  store i32 16, ptr %0, align 8, !tbaa !17
  %spec.select1725 = select i1 %.not1605, i32 -4, i32 1
  br label %.thread1687

554:                                              ; preds = %26
  br label %551, !llvm.loop !60

555:                                              ; preds = %551
  %556 = getelementptr inbounds i8, ptr %.391222, i64 1
  %557 = load i8, ptr %.391222, align 1, !tbaa !24
  %558 = zext i8 %557 to i64
  %559 = zext nneg i32 %.40 to i64
  %560 = shl i64 %558, %559
  %561 = or i64 %560, %.401139
  %562 = add i32 %.40, 8
  %563 = icmp ult i32 %562, 15
  br i1 %563, label %522, label %579, !llvm.loop !61

564:                                              ; preds = %517
  %565 = load i8, ptr %.371220, align 1, !tbaa !24
  %566 = zext i8 %565 to i64
  %567 = zext nneg i32 %.38 to i64
  %568 = shl nuw nsw i64 %566, %567
  %569 = getelementptr inbounds i8, ptr %.371220, i64 1
  %570 = load i8, ptr %569, align 1, !tbaa !24
  %571 = zext i8 %570 to i64
  %572 = add nuw nsw i32 %.38, 8
  %573 = zext nneg i32 %572 to i64
  %574 = shl nuw nsw i64 %571, %573
  %575 = or i64 %568, %574
  %576 = or i64 %575, %.381137
  %577 = getelementptr inbounds i8, ptr %.371220, i64 2
  %578 = or disjoint i32 %.38, 16
  br label %579

579:                                              ; preds = %529, %564, %549, %555, %515
  %.371407 = phi i64 [ %.361406, %555 ], [ %.351405, %549 ], [ %.341404, %564 ], [ %.341404, %515 ], [ %.351405, %529 ]
  %.371313 = phi ptr [ %.361312, %555 ], [ %.351311, %549 ], [ %.341310, %564 ], [ %.341310, %515 ], [ %.351311, %529 ]
  %.401223 = phi ptr [ %556, %555 ], [ %.381221, %549 ], [ %577, %564 ], [ %.371220, %515 ], [ %.381221, %529 ]
  %.411140 = phi i64 [ %561, %555 ], [ %.391138, %549 ], [ %576, %564 ], [ %.381137, %515 ], [ %.391138, %529 ]
  %.411053 = phi i32 [ %.401052, %555 ], [ %.391051, %549 ], [ %.381050, %564 ], [ %.381050, %515 ], [ %.391051, %529 ]
  %.41969 = phi i32 [ %.40968, %555 ], [ %.39967, %549 ], [ %.38966, %564 ], [ %.38966, %515 ], [ %.39967, %529 ]
  %.41 = phi i32 [ %562, %555 ], [ %.39, %549 ], [ %578, %564 ], [ %.38, %515 ], [ %.39, %529 ]
  %580 = getelementptr inbounds i8, ptr %0, i64 7336
  %581 = and i64 %.411140, 1023
  %582 = getelementptr inbounds [1024 x i16], ptr %580, i64 0, i64 %581
  %583 = load i16, ptr %582, align 2, !tbaa !53
  %584 = sext i16 %583 to i32
  %585 = icmp sgt i16 %583, -1
  br i1 %585, label %587, label %.preheader1748

.preheader1748:                                   ; preds = %579
  %586 = getelementptr inbounds i8, ptr %0, i64 9384
  br label %590

587:                                              ; preds = %579
  %588 = lshr i32 %584, 9
  %589 = and i32 %584, 511
  br label %.loopexit

590:                                              ; preds = %.preheader1748, %590
  %.11452 = phi i32 [ %600, %590 ], [ %584, %.preheader1748 ]
  %.11449 = phi i32 [ %593, %590 ], [ 10, %.preheader1748 ]
  %591 = xor i32 %.11452, -1
  %592 = sext i32 %591 to i64
  %593 = add i32 %.11449, 1
  %594 = zext nneg i32 %.11449 to i64
  %595 = lshr i64 %.411140, %594
  %596 = and i64 %595, 1
  %597 = add nsw i64 %596, %592
  %598 = getelementptr inbounds [576 x i16], ptr %586, i64 0, i64 %597
  %599 = load i16, ptr %598, align 2, !tbaa !53
  %600 = sext i16 %599 to i32
  %601 = icmp slt i16 %599, 0
  br i1 %601, label %590, label %.loopexit, !llvm.loop !62

.loopexit:                                        ; preds = %590, %587
  %.21453 = phi i32 [ %589, %587 ], [ %600, %590 ]
  %.21450 = phi i32 [ %588, %587 ], [ %593, %590 ]
  %602 = zext nneg i32 %.21450 to i64
  %603 = lshr i64 %.411140, %602
  %604 = sub i32 %.41, %.21450
  %605 = icmp ult i32 %.21453, 16
  br i1 %605, label %606, label %612

606:                                              ; preds = %.loopexit
  %607 = trunc nuw nsw i32 %.21453 to i8
  %608 = getelementptr inbounds i8, ptr %0, i64 10540
  %609 = add i32 %.41969, 1
  %610 = zext i32 %.41969 to i64
  %611 = getelementptr inbounds [457 x i8], ptr %608, i64 0, i64 %610
  store i8 %607, ptr %611, align 1, !tbaa !24
  br label %508, !llvm.loop !63

612:                                              ; preds = %.loopexit
  %613 = icmp ne i32 %.21453, 16
  %614 = icmp ne i32 %.41969, 0
  %or.cond3 = select i1 %613, i1 true, i1 %614
  br i1 %or.cond3, label %615, label %1140

615:                                              ; preds = %612
  %616 = add nsw i32 %.21453, -16
  %617 = zext i32 %616 to i64
  %618 = getelementptr inbounds [4 x i8], ptr @.str.15, i64 0, i64 %617
  %619 = load i8, ptr %618, align 1, !tbaa !24
  %620 = sext i8 %619 to i32
  %621 = icmp ult i32 %604, %620
  br i1 %621, label %.preheader2124, label %635

.preheader2124:                                   ; preds = %625, %615
  %.401410.ph = phi i64 [ %.371407, %615 ], [ %38, %625 ]
  %.401316.ph = phi ptr [ %.371313, %615 ], [ %4, %625 ]
  %.431226.ph = phi ptr [ %.401223, %615 ], [ %1, %625 ]
  %.441143.ph = phi i64 [ %603, %615 ], [ %30, %625 ]
  %.441056.ph = phi i32 [ %620, %615 ], [ %36, %625 ]
  %.44972.ph = phi i32 [ %.41969, %615 ], [ %34, %625 ]
  %.42891.ph = phi i32 [ %.21453, %615 ], [ %32, %625 ]
  %.44.ph = phi i32 [ %604, %615 ], [ %.84.fr1991, %625 ]
  br label %622

622:                                              ; preds = %.preheader2124, %626
  %.431226 = phi ptr [ %627, %626 ], [ %.431226.ph, %.preheader2124 ]
  %.441143 = phi i64 [ %632, %626 ], [ %.441143.ph, %.preheader2124 ]
  %.44 = phi i32 [ %633, %626 ], [ %.44.ph, %.preheader2124 ]
  %.not1606 = icmp ult ptr %.431226, %12
  br i1 %.not1606, label %626, label %623

623:                                              ; preds = %622
  %624 = and i32 %6, 2
  %.not1608 = icmp eq i32 %624, 0
  store i32 18, ptr %0, align 8, !tbaa !17
  %spec.select1727 = select i1 %.not1608, i32 -4, i32 1
  br label %.thread1687

625:                                              ; preds = %26
  br label %.preheader2124, !llvm.loop !64

626:                                              ; preds = %622
  %627 = getelementptr inbounds i8, ptr %.431226, i64 1
  %628 = load i8, ptr %.431226, align 1, !tbaa !24
  %629 = zext i8 %628 to i64
  %630 = zext nneg i32 %.44 to i64
  %631 = shl i64 %629, %630
  %632 = or i64 %631, %.441143
  %633 = add i32 %.44, 8
  %634 = icmp ult i32 %633, %.441056.ph
  br i1 %634, label %622, label %._crit_edge1968, !llvm.loop !65

._crit_edge1968:                                  ; preds = %626
  %.pre1969 = add i32 %.42891.ph, -16
  %.pre1971 = zext i32 %.pre1969 to i64
  br label %635

635:                                              ; preds = %._crit_edge1968, %615
  %.pre-phi1972 = phi i64 [ %.pre1971, %._crit_edge1968 ], [ %617, %615 ]
  %.411411 = phi i64 [ %.401410.ph, %._crit_edge1968 ], [ %.371407, %615 ]
  %.411317 = phi ptr [ %.401316.ph, %._crit_edge1968 ], [ %.371313, %615 ]
  %.441227 = phi ptr [ %627, %._crit_edge1968 ], [ %.401223, %615 ]
  %.451144 = phi i64 [ %632, %._crit_edge1968 ], [ %603, %615 ]
  %.451057 = phi i32 [ %.441056.ph, %._crit_edge1968 ], [ %620, %615 ]
  %.45973 = phi i32 [ %.44972.ph, %._crit_edge1968 ], [ %.41969, %615 ]
  %.43892 = phi i32 [ %.42891.ph, %._crit_edge1968 ], [ %.21453, %615 ]
  %.45 = phi i32 [ %633, %._crit_edge1968 ], [ %604, %615 ]
  %notmask1607 = shl nsw i32 -1, %.451057
  %636 = xor i32 %notmask1607, -1
  %637 = trunc i64 %.451144 to i32
  %638 = and i32 %636, %637
  %639 = zext nneg i32 %.451057 to i64
  %640 = lshr i64 %.451144, %639
  %641 = sub i32 %.45, %.451057
  %642 = getelementptr inbounds [4 x i8], ptr @.str.16, i64 0, i64 %.pre-phi1972
  %643 = load i8, ptr %642, align 1, !tbaa !24
  %644 = sext i8 %643 to i32
  %645 = add i32 %638, %644
  %646 = getelementptr inbounds i8, ptr %0, i64 10540
  %647 = zext i32 %.45973 to i64
  %648 = getelementptr inbounds i8, ptr %646, i64 %647
  %649 = icmp eq i32 %.43892, 16
  br i1 %649, label %650, label %655

650:                                              ; preds = %635
  %651 = add i32 %.45973, -1
  %652 = zext i32 %651 to i64
  %653 = getelementptr inbounds [457 x i8], ptr %646, i64 0, i64 %652
  %654 = load i8, ptr %653, align 1, !tbaa !24
  br label %655

655:                                              ; preds = %635, %650
  %656 = phi i8 [ %654, %650 ], [ 0, %635 ]
  %657 = zext i32 %645 to i64
  tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %648, i8 %656, i64 %657, i1 false)
  %658 = add i32 %645, %.45973
  br label %508, !llvm.loop !63

659:                                              ; preds = %508
  %.not1601 = icmp eq i32 %513, %.38966
  br i1 %.not1601, label %660, label %1140

660:                                              ; preds = %659
  %661 = getelementptr inbounds i8, ptr %0, i64 72
  %662 = getelementptr inbounds i8, ptr %0, i64 10540
  %663 = zext i32 %510 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %661, ptr nonnull align 4 %662, i64 %663, i1 false)
  %664 = getelementptr inbounds i8, ptr %0, i64 3560
  %665 = getelementptr inbounds i8, ptr %662, i64 %663
  %666 = zext i32 %512 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %664, ptr nonnull align 1 %665, i64 %666, i1 false)
  br label %667

667:                                              ; preds = %._crit_edge1828, %660
  %.431413 = phi i64 [ %.341404, %660 ], [ %.321402, %._crit_edge1828 ]
  %.431319 = phi ptr [ %.341310, %660 ], [ %.321308, %._crit_edge1828 ]
  %.461229 = phi ptr [ %.371220, %660 ], [ %.351218, %._crit_edge1828 ]
  %.471146 = phi i64 [ %.381137, %660 ], [ %.361135, %._crit_edge1828 ]
  %.471059 = phi i32 [ %.381050, %660 ], [ %.361048, %._crit_edge1828 ]
  %.47975 = phi i32 [ %.38966, %660 ], [ %.36964, %._crit_edge1828 ]
  %.45894 = phi i32 [ %.37886, %660 ], [ %.35884, %._crit_edge1828 ]
  %.47 = phi i32 [ %.38, %660 ], [ %.36, %._crit_edge1828 ]
  %668 = getelementptr inbounds i8, ptr %0, i64 24
  %669 = load i32, ptr %668, align 8, !tbaa !29
  %670 = add i32 %669, -1
  store i32 %670, ptr %668, align 8, !tbaa !29
  br label %.loopexit1763, !llvm.loop !66

671:                                              ; preds = %.preheader2166, %835
  %.451321 = phi ptr [ %838, %835 ], [ %.451321.ph, %.preheader2166 ]
  %.481231 = phi ptr [ %.531236, %835 ], [ %.481231.ph, %.preheader2166 ]
  %.491148 = phi i64 [ %829, %835 ], [ %.491148.ph, %.preheader2166 ]
  %.49977 = phi i32 [ %.11273, %835 ], [ %.49977.ph, %.preheader2166 ]
  %.49 = phi i32 [ %830, %835 ], [ %.49.ph, %.preheader2166 ]
  %672 = ptrtoint ptr %.481231 to i64
  %673 = sub i64 %771, %672
  %674 = icmp slt i64 %673, 4
  %675 = ptrtoint ptr %.451321 to i64
  %676 = sub i64 %772, %675
  %677 = icmp slt i64 %676, 2
  %or.cond1650 = select i1 %674, i1 true, i1 %677
  br i1 %or.cond1650, label %678, label %776

678:                                              ; preds = %671
  %679 = icmp ult i32 %.49, 15
  br i1 %679, label %680, label %739

680:                                              ; preds = %678
  %681 = icmp slt i64 %673, 2
  br i1 %681, label %682, label %724

682:                                              ; preds = %680, %715
  %.461416 = phi i64 [ %.451415.ph, %680 ], [ %.471417, %715 ]
  %.461322 = phi ptr [ %.451321, %680 ], [ %.471323, %715 ]
  %.491232 = phi ptr [ %.481231, %680 ], [ %716, %715 ]
  %.501149 = phi i64 [ %.491148, %680 ], [ %721, %715 ]
  %.501062 = phi i32 [ %.491061.ph, %680 ], [ %.511063, %715 ]
  %.50978 = phi i32 [ %.49977, %680 ], [ %.51979, %715 ]
  %.48897 = phi i32 [ %.47896.ph, %680 ], [ %.49898, %715 ]
  %.50 = phi i32 [ %.49, %680 ], [ %722, %715 ]
  %683 = getelementptr inbounds i8, ptr %0, i64 360
  %684 = and i64 %.501149, 1023
  %685 = getelementptr inbounds [1024 x i16], ptr %683, i64 0, i64 %684
  %686 = load i16, ptr %685, align 2, !tbaa !53
  %687 = sext i16 %686 to i32
  %688 = icmp sgt i16 %686, -1
  br i1 %688, label %689, label %691

689:                                              ; preds = %682
  %.not1579 = icmp ult i16 %686, 512
  %690 = lshr i32 %687, 9
  %.not1580 = icmp ult i32 %.50, %690
  %or.cond1651 = select i1 %.not1579, i1 true, i1 %.not1580
  br i1 %or.cond1651, label %711, label %739

691:                                              ; preds = %682
  %692 = icmp ugt i32 %.50, 10
  br i1 %692, label %.preheader1757, label %711

.preheader1757:                                   ; preds = %691
  %693 = getelementptr inbounds i8, ptr %0, i64 2408
  br label %694

694:                                              ; preds = %.preheader1757, %694
  %.01364 = phi i32 [ %704, %694 ], [ %687, %.preheader1757 ]
  %.01361 = phi i32 [ %697, %694 ], [ 10, %.preheader1757 ]
  %695 = xor i32 %.01364, -1
  %696 = sext i32 %695 to i64
  %697 = add i32 %.01361, 1
  %698 = zext nneg i32 %.01361 to i64
  %699 = lshr i64 %.501149, %698
  %700 = and i64 %699, 1
  %701 = add nsw i64 %700, %696
  %702 = getelementptr inbounds [576 x i16], ptr %693, i64 0, i64 %701
  %703 = load i16, ptr %702, align 2, !tbaa !53
  %704 = sext i16 %703 to i32
  %705 = icmp slt i16 %703, 0
  %706 = add i32 %.01361, 2
  %707 = icmp uge i32 %.50, %706
  %708 = select i1 %705, i1 %707, i1 false
  br i1 %708, label %694, label %709, !llvm.loop !67

709:                                              ; preds = %694
  %710 = icmp sgt i16 %703, -1
  br i1 %710, label %739, label %711

711:                                              ; preds = %691, %709, %689, %714
  %.471417 = phi i64 [ %.461416, %689 ], [ %.461416, %709 ], [ %.461416, %691 ], [ %38, %714 ]
  %.471323 = phi ptr [ %.461322, %689 ], [ %.461322, %709 ], [ %.461322, %691 ], [ %4, %714 ]
  %.501233 = phi ptr [ %.491232, %689 ], [ %.491232, %709 ], [ %.491232, %691 ], [ %1, %714 ]
  %.511150 = phi i64 [ %.501149, %689 ], [ %.501149, %709 ], [ %.501149, %691 ], [ %30, %714 ]
  %.511063 = phi i32 [ %.501062, %689 ], [ %.501062, %709 ], [ %.501062, %691 ], [ %36, %714 ]
  %.51979 = phi i32 [ %.50978, %689 ], [ %.50978, %709 ], [ %.50978, %691 ], [ %34, %714 ]
  %.49898 = phi i32 [ %.48897, %689 ], [ %.48897, %709 ], [ %.48897, %691 ], [ %32, %714 ]
  %.51 = phi i32 [ %.50, %689 ], [ %.50, %709 ], [ %.50, %691 ], [ %.84.fr1991, %714 ]
  %.not1581 = icmp ult ptr %.501233, %12
  br i1 %.not1581, label %715, label %712

712:                                              ; preds = %711
  %713 = and i32 %6, 2
  %.not1582 = icmp eq i32 %713, 0
  store i32 23, ptr %0, align 8, !tbaa !17
  %spec.select1729 = select i1 %.not1582, i32 -4, i32 1
  br label %.thread1687

714:                                              ; preds = %26
  br label %711, !llvm.loop !68

715:                                              ; preds = %711
  %716 = getelementptr inbounds i8, ptr %.501233, i64 1
  %717 = load i8, ptr %.501233, align 1, !tbaa !24
  %718 = zext i8 %717 to i64
  %719 = zext nneg i32 %.51 to i64
  %720 = shl i64 %718, %719
  %721 = or i64 %720, %.511150
  %722 = add i32 %.51, 8
  %723 = icmp ult i32 %722, 15
  br i1 %723, label %682, label %739, !llvm.loop !69

724:                                              ; preds = %680
  %725 = load i8, ptr %.481231, align 1, !tbaa !24
  %726 = zext i8 %725 to i64
  %727 = zext nneg i32 %.49 to i64
  %728 = shl nuw nsw i64 %726, %727
  %729 = getelementptr inbounds i8, ptr %.481231, i64 1
  %730 = load i8, ptr %729, align 1, !tbaa !24
  %731 = zext i8 %730 to i64
  %732 = add nuw nsw i32 %.49, 8
  %733 = zext nneg i32 %732 to i64
  %734 = shl nuw nsw i64 %731, %733
  %735 = or i64 %728, %734
  %736 = or i64 %735, %.491148
  %737 = getelementptr inbounds i8, ptr %.481231, i64 2
  %738 = or disjoint i32 %.49, 16
  br label %739

739:                                              ; preds = %689, %724, %709, %715, %678
  %.481418 = phi i64 [ %.471417, %715 ], [ %.461416, %709 ], [ %.451415.ph, %724 ], [ %.451415.ph, %678 ], [ %.461416, %689 ]
  %.481324 = phi ptr [ %.471323, %715 ], [ %.461322, %709 ], [ %.451321, %724 ], [ %.451321, %678 ], [ %.461322, %689 ]
  %.511234 = phi ptr [ %716, %715 ], [ %.491232, %709 ], [ %737, %724 ], [ %.481231, %678 ], [ %.491232, %689 ]
  %.521151 = phi i64 [ %721, %715 ], [ %.501149, %709 ], [ %736, %724 ], [ %.491148, %678 ], [ %.501149, %689 ]
  %.521064 = phi i32 [ %.511063, %715 ], [ %.501062, %709 ], [ %.491061.ph, %724 ], [ %.491061.ph, %678 ], [ %.501062, %689 ]
  %.50899 = phi i32 [ %.49898, %715 ], [ %.48897, %709 ], [ %.47896.ph, %724 ], [ %.47896.ph, %678 ], [ %.48897, %689 ]
  %.52 = phi i32 [ %722, %715 ], [ %.50, %709 ], [ %738, %724 ], [ %.49, %678 ], [ %.50, %689 ]
  %740 = getelementptr inbounds i8, ptr %0, i64 360
  %741 = and i64 %.521151, 1023
  %742 = getelementptr inbounds [1024 x i16], ptr %740, i64 0, i64 %741
  %743 = load i16, ptr %742, align 2, !tbaa !53
  %744 = sext i16 %743 to i32
  %745 = icmp sgt i16 %743, -1
  br i1 %745, label %747, label %.preheader1755

.preheader1755:                                   ; preds = %739
  %746 = getelementptr inbounds i8, ptr %0, i64 2408
  br label %750

747:                                              ; preds = %739
  %748 = lshr i32 %744, 9
  %749 = and i32 %744, 511
  br label %.loopexit1756

750:                                              ; preds = %.preheader1755, %750
  %.11365 = phi i32 [ %760, %750 ], [ %744, %.preheader1755 ]
  %.11362 = phi i32 [ %753, %750 ], [ 10, %.preheader1755 ]
  %751 = xor i32 %.11365, -1
  %752 = sext i32 %751 to i64
  %753 = add i32 %.11362, 1
  %754 = zext nneg i32 %.11362 to i64
  %755 = lshr i64 %.521151, %754
  %756 = and i64 %755, 1
  %757 = add nsw i64 %756, %752
  %758 = getelementptr inbounds [576 x i16], ptr %746, i64 0, i64 %757
  %759 = load i16, ptr %758, align 2, !tbaa !53
  %760 = sext i16 %759 to i32
  %761 = icmp slt i16 %759, 0
  br i1 %761, label %750, label %.loopexit1756, !llvm.loop !70

.loopexit1756:                                    ; preds = %750, %747
  %.21366 = phi i32 [ %749, %747 ], [ %760, %750 ]
  %.21363 = phi i32 [ %748, %747 ], [ %753, %750 ]
  %762 = zext nneg i32 %.21363 to i64
  %763 = lshr i64 %.521151, %762
  %764 = sub i32 %.52, %.21363
  %765 = icmp ugt i32 %.21366, 255
  br i1 %765, label %.thread, label %766

766:                                              ; preds = %.loopexit1756, %767
  %.491419 = phi i64 [ %.481418, %.loopexit1756 ], [ %38, %767 ]
  %.491325 = phi ptr [ %.481324, %.loopexit1756 ], [ %4, %767 ]
  %.521235 = phi ptr [ %.511234, %.loopexit1756 ], [ %1, %767 ]
  %.531152 = phi i64 [ %763, %.loopexit1756 ], [ %30, %767 ]
  %.531065 = phi i32 [ %.521064, %.loopexit1756 ], [ %36, %767 ]
  %.52980 = phi i32 [ %.21366, %.loopexit1756 ], [ %34, %767 ]
  %.51900 = phi i32 [ %.50899, %.loopexit1756 ], [ %32, %767 ]
  %.53 = phi i32 [ %764, %.loopexit1756 ], [ %.84.fr1991, %767 ]
  %.not1583 = icmp ult ptr %.491325, %14
  br i1 %.not1583, label %768, label %1140

767:                                              ; preds = %26
  br label %766, !llvm.loop !71

768:                                              ; preds = %766
  %769 = trunc i32 %.52980 to i8
  %770 = getelementptr inbounds i8, ptr %.491325, i64 1
  store i8 %769, ptr %.491325, align 1, !tbaa !24
  br label %.preheader2166

.preheader2166:                                   ; preds = %1002, %.loopexit1763, %768, %1043, %1051, %1073, %._crit_edge
  %.451415.ph = phi i64 [ %989, %._crit_edge ], [ %989, %1073 ], [ %989, %1051 ], [ %989, %1043 ], [ %.491419, %768 ], [ %.321402, %.loopexit1763 ], [ %.621432, %1002 ]
  %.451321.ph = phi ptr [ %.711347.lcssa, %._crit_edge ], [ %1075, %1073 ], [ %1053, %1051 ], [ %.lcssa2037, %1043 ], [ %770, %768 ], [ %.321308, %.loopexit1763 ], [ %.651341, %1002 ]
  %.481231.ph = phi ptr [ %.661249, %._crit_edge ], [ %.661249, %1073 ], [ %.661249, %1051 ], [ %.661249, %1043 ], [ %.521235, %768 ], [ %.351218, %.loopexit1763 ], [ %.681251, %1002 ]
  %.491148.ph = phi i64 [ %.681167, %._crit_edge ], [ %.681167, %1073 ], [ %.681167, %1051 ], [ %.681167, %1043 ], [ %.531152, %768 ], [ %.361135, %.loopexit1763 ], [ %.701169, %1002 ]
  %.491061.ph = phi i32 [ %.651077, %._crit_edge ], [ %.651077, %1073 ], [ %.651077, %1051 ], [ %.651077, %1043 ], [ %.531065, %768 ], [ %.361048, %.loopexit1763 ], [ %.671079, %1002 ]
  %.49977.ph = phi i32 [ %.71999.lcssa, %._crit_edge ], [ %.71999.lcssa, %1073 ], [ %1041, %1051 ], [ %1041, %1043 ], [ %.52980, %768 ], [ %.36964, %.loopexit1763 ], [ -1, %1002 ]
  %.47896.ph = phi i32 [ %.63912, %._crit_edge ], [ %.63912, %1073 ], [ %.63912, %1051 ], [ %.63912, %1043 ], [ %.51900, %768 ], [ %.35884, %.loopexit1763 ], [ %.65914, %1002 ]
  %.49.ph = phi i32 [ %.68, %._crit_edge ], [ %.68, %1073 ], [ %.68, %1051 ], [ %.68, %1043 ], [ %.53, %768 ], [ %.36, %.loopexit1763 ], [ %.70, %1002 ]
  %771 = ptrtoint ptr %12 to i64
  %772 = ptrtoint ptr %14 to i64
  %773 = getelementptr inbounds i8, ptr %0, i64 360
  %774 = getelementptr inbounds i8, ptr %0, i64 2408
  %775 = getelementptr inbounds i8, ptr %0, i64 2408
  br label %671

776:                                              ; preds = %671
  %777 = icmp ult i32 %.49, 30
  br i1 %777, label %778, label %786

778:                                              ; preds = %776
  %779 = load i32, ptr %.481231, align 4, !tbaa !41
  %780 = zext i32 %779 to i64
  %781 = zext nneg i32 %.49 to i64
  %782 = shl nuw nsw i64 %780, %781
  %783 = or i64 %782, %.491148
  %784 = getelementptr inbounds i8, ptr %.481231, i64 4
  %785 = or disjoint i32 %.49, 32
  br label %786

786:                                              ; preds = %778, %776
  %.531236 = phi ptr [ %784, %778 ], [ %.481231, %776 ]
  %.541153 = phi i64 [ %783, %778 ], [ %.491148, %776 ]
  %.54 = phi i32 [ %785, %778 ], [ %.49, %776 ]
  %787 = and i64 %.541153, 1023
  %788 = getelementptr inbounds [1024 x i16], ptr %773, i64 0, i64 %787
  %789 = load i16, ptr %788, align 2, !tbaa !53
  %790 = sext i16 %789 to i32
  %791 = icmp sgt i16 %789, -1
  br i1 %791, label %792, label %.preheader1760

792:                                              ; preds = %786
  %793 = lshr i32 %790, 9
  br label %.loopexit1761

.preheader1760:                                   ; preds = %786, %.preheader1760
  %.01272 = phi i32 [ %803, %.preheader1760 ], [ %790, %786 ]
  %.01268 = phi i32 [ %796, %.preheader1760 ], [ 10, %786 ]
  %794 = xor i32 %.01272, -1
  %795 = sext i32 %794 to i64
  %796 = add i32 %.01268, 1
  %797 = zext nneg i32 %.01268 to i64
  %798 = lshr i64 %.541153, %797
  %799 = and i64 %798, 1
  %800 = add nsw i64 %799, %795
  %801 = getelementptr inbounds [576 x i16], ptr %774, i64 0, i64 %800
  %802 = load i16, ptr %801, align 2, !tbaa !53
  %803 = sext i16 %802 to i32
  %804 = icmp slt i16 %802, 0
  br i1 %804, label %.preheader1760, label %.loopexit1761, !llvm.loop !72

.loopexit1761:                                    ; preds = %.preheader1760, %792
  %.11273 = phi i32 [ %790, %792 ], [ %803, %.preheader1760 ]
  %.11269 = phi i32 [ %793, %792 ], [ %796, %.preheader1760 ]
  %805 = zext nneg i32 %.11269 to i64
  %806 = lshr i64 %.541153, %805
  %807 = sub i32 %.54, %.11269
  %808 = and i32 %.11273, 256
  %.not1577 = icmp eq i32 %808, 0
  br i1 %.not1577, label %809, label %.thread

809:                                              ; preds = %.loopexit1761
  %810 = and i64 %806, 1023
  %811 = getelementptr inbounds [1024 x i16], ptr %773, i64 0, i64 %810
  %812 = load i16, ptr %811, align 2, !tbaa !53
  %813 = sext i16 %812 to i32
  %814 = icmp sgt i16 %812, -1
  br i1 %814, label %815, label %.preheader1758

815:                                              ; preds = %809
  %816 = lshr i32 %813, 9
  br label %.loopexit1759

.preheader1758:                                   ; preds = %809, %.preheader1758
  %.21274 = phi i32 [ %826, %.preheader1758 ], [ %813, %809 ]
  %.21270 = phi i32 [ %819, %.preheader1758 ], [ 10, %809 ]
  %817 = xor i32 %.21274, -1
  %818 = sext i32 %817 to i64
  %819 = add i32 %.21270, 1
  %820 = zext nneg i32 %.21270 to i64
  %821 = lshr i64 %806, %820
  %822 = and i64 %821, 1
  %823 = add nsw i64 %822, %818
  %824 = getelementptr inbounds [576 x i16], ptr %775, i64 0, i64 %823
  %825 = load i16, ptr %824, align 2, !tbaa !53
  %826 = sext i16 %825 to i32
  %827 = icmp slt i16 %825, 0
  br i1 %827, label %.preheader1758, label %.loopexit1759, !llvm.loop !73

.loopexit1759:                                    ; preds = %.preheader1758, %815
  %.31275 = phi i32 [ %813, %815 ], [ %826, %.preheader1758 ]
  %.31271 = phi i32 [ %816, %815 ], [ %819, %.preheader1758 ]
  %828 = zext nneg i32 %.31271 to i64
  %829 = lshr i64 %806, %828
  %830 = sub i32 %807, %.31271
  %831 = trunc i32 %.11273 to i8
  store i8 %831, ptr %.451321, align 1, !tbaa !24
  %832 = and i32 %.31275, 256
  %.not1578 = icmp eq i32 %832, 0
  br i1 %.not1578, label %835, label %833

833:                                              ; preds = %.loopexit1759
  %834 = getelementptr inbounds i8, ptr %.451321, i64 1
  br label %.thread

835:                                              ; preds = %.loopexit1759
  %836 = trunc i32 %.31275 to i8
  %837 = getelementptr inbounds i8, ptr %.451321, i64 1
  store i8 %836, ptr %837, align 1, !tbaa !24
  %838 = getelementptr inbounds i8, ptr %.451321, i64 2
  br label %671

.thread:                                          ; preds = %.loopexit1761, %833, %.loopexit1756
  %.511421 = phi i64 [ %.481418, %.loopexit1756 ], [ %.451415.ph, %833 ], [ %.451415.ph, %.loopexit1761 ]
  %.521328 = phi ptr [ %.481324, %.loopexit1756 ], [ %834, %833 ], [ %.451321, %.loopexit1761 ]
  %.551238 = phi ptr [ %.511234, %.loopexit1756 ], [ %.531236, %833 ], [ %.531236, %.loopexit1761 ]
  %.571156 = phi i64 [ %763, %.loopexit1756 ], [ %829, %833 ], [ %806, %.loopexit1761 ]
  %.551067 = phi i32 [ %.521064, %.loopexit1756 ], [ %.491061.ph, %833 ], [ %.491061.ph, %.loopexit1761 ]
  %.55983 = phi i32 [ %.21366, %.loopexit1756 ], [ %.31275, %833 ], [ %.11273, %.loopexit1761 ]
  %.53902 = phi i32 [ %.50899, %.loopexit1756 ], [ %.47896.ph, %833 ], [ %.47896.ph, %.loopexit1761 ]
  %.57 = phi i32 [ %764, %.loopexit1756 ], [ %830, %833 ], [ %807, %.loopexit1761 ]
  %839 = and i32 %.55983, 511
  %840 = icmp eq i32 %839, 256
  br i1 %840, label %1076, label %841

841:                                              ; preds = %.thread
  %842 = add nsw i32 %839, -257
  %843 = zext i32 %842 to i64
  %844 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_extra, i64 0, i64 %843
  %845 = load i32, ptr %844, align 4, !tbaa !41
  %846 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_base, i64 0, i64 %843
  %847 = load i32, ptr %846, align 4, !tbaa !41
  %.not1584 = icmp eq i32 %845, 0
  br i1 %.not1584, label %870, label %848

848:                                              ; preds = %841
  %849 = icmp ult i32 %.57, %845
  br i1 %849, label %.preheader2155, label %.loopexit2156

.preheader2155:                                   ; preds = %853, %848
  %.531423.ph = phi i64 [ %.511421, %848 ], [ %38, %853 ]
  %.541330.ph = phi ptr [ %.521328, %848 ], [ %4, %853 ]
  %.571240.ph = phi ptr [ %.551238, %848 ], [ %1, %853 ]
  %.591158.ph = phi i64 [ %.571156, %848 ], [ %30, %853 ]
  %.571069.ph = phi i32 [ %845, %848 ], [ %36, %853 ]
  %.57985.ph = phi i32 [ %847, %848 ], [ %34, %853 ]
  %.55904.ph = phi i32 [ %.53902, %848 ], [ %32, %853 ]
  %.59.ph = phi i32 [ %.57, %848 ], [ %.84.fr1991, %853 ]
  br label %850

850:                                              ; preds = %.preheader2155, %854
  %.571240 = phi ptr [ %855, %854 ], [ %.571240.ph, %.preheader2155 ]
  %.591158 = phi i64 [ %860, %854 ], [ %.591158.ph, %.preheader2155 ]
  %.59 = phi i32 [ %861, %854 ], [ %.59.ph, %.preheader2155 ]
  %.not1585 = icmp ult ptr %.571240, %12
  br i1 %.not1585, label %854, label %851

851:                                              ; preds = %850
  %852 = and i32 %6, 2
  %.not1600 = icmp eq i32 %852, 0
  store i32 25, ptr %0, align 8, !tbaa !17
  %spec.select1731 = select i1 %.not1600, i32 -4, i32 1
  br label %.thread1687

853:                                              ; preds = %26
  br label %.preheader2155, !llvm.loop !74

854:                                              ; preds = %850
  %855 = getelementptr inbounds i8, ptr %.571240, i64 1
  %856 = load i8, ptr %.571240, align 1, !tbaa !24
  %857 = zext i8 %856 to i64
  %858 = zext nneg i32 %.59 to i64
  %859 = shl i64 %857, %858
  %860 = or i64 %859, %.591158
  %861 = add i32 %.59, 8
  %862 = icmp ult i32 %861, %.571069.ph
  br i1 %862, label %850, label %.loopexit2156, !llvm.loop !75

.loopexit2156:                                    ; preds = %854, %848
  %.541424 = phi i64 [ %.511421, %848 ], [ %.531423.ph, %854 ]
  %.551331 = phi ptr [ %.521328, %848 ], [ %.541330.ph, %854 ]
  %.581241 = phi ptr [ %.551238, %848 ], [ %855, %854 ]
  %.601159 = phi i64 [ %.571156, %848 ], [ %860, %854 ]
  %.581070 = phi i32 [ %845, %848 ], [ %.571069.ph, %854 ]
  %.58986 = phi i32 [ %847, %848 ], [ %.57985.ph, %854 ]
  %.56905 = phi i32 [ %.53902, %848 ], [ %.55904.ph, %854 ]
  %.60 = phi i32 [ %.57, %848 ], [ %861, %854 ]
  %notmask1586 = shl nsw i32 -1, %.581070
  %863 = xor i32 %notmask1586, -1
  %864 = trunc i64 %.601159 to i32
  %865 = and i32 %863, %864
  %866 = zext nneg i32 %.581070 to i64
  %867 = lshr i64 %.601159, %866
  %868 = sub i32 %.60, %.581070
  %869 = add i32 %865, %.58986
  br label %870

870:                                              ; preds = %841, %.loopexit2156
  %.551425 = phi i64 [ %.541424, %.loopexit2156 ], [ %.511421, %841 ]
  %.561332 = phi ptr [ %.551331, %.loopexit2156 ], [ %.521328, %841 ]
  %.591242 = phi ptr [ %.581241, %.loopexit2156 ], [ %.551238, %841 ]
  %.611160 = phi i64 [ %867, %.loopexit2156 ], [ %.571156, %841 ]
  %.591071 = phi i32 [ %.581070, %.loopexit2156 ], [ 0, %841 ]
  %.59987 = phi i32 [ %869, %.loopexit2156 ], [ %847, %841 ]
  %.57906 = phi i32 [ %.56905, %.loopexit2156 ], [ %.53902, %841 ]
  %.61 = phi i32 [ %868, %.loopexit2156 ], [ %.57, %841 ]
  %871 = icmp ult i32 %.61, 15
  br i1 %871, label %872, label %934

872:                                              ; preds = %870
  %873 = ptrtoint ptr %12 to i64
  %874 = ptrtoint ptr %.591242 to i64
  %875 = sub i64 %873, %874
  %876 = icmp slt i64 %875, 2
  br i1 %876, label %877, label %919

877:                                              ; preds = %872, %910
  %.561426 = phi i64 [ %.551425, %872 ], [ %.571427, %910 ]
  %.571333 = phi ptr [ %.561332, %872 ], [ %.581334, %910 ]
  %.601243 = phi ptr [ %.591242, %872 ], [ %911, %910 ]
  %.621161 = phi i64 [ %.611160, %872 ], [ %916, %910 ]
  %.601072 = phi i32 [ %.591071, %872 ], [ %.611073, %910 ]
  %.60988 = phi i32 [ %.59987, %872 ], [ %.61989, %910 ]
  %.58907 = phi i32 [ %.57906, %872 ], [ %.59908, %910 ]
  %.62 = phi i32 [ %.61, %872 ], [ %917, %910 ]
  %878 = getelementptr inbounds i8, ptr %0, i64 3848
  %879 = and i64 %.621161, 1023
  %880 = getelementptr inbounds [1024 x i16], ptr %878, i64 0, i64 %879
  %881 = load i16, ptr %880, align 2, !tbaa !53
  %882 = sext i16 %881 to i32
  %883 = icmp sgt i16 %881, -1
  br i1 %883, label %884, label %886

884:                                              ; preds = %877
  %.not1587 = icmp ult i16 %881, 512
  %885 = lshr i32 %882, 9
  %.not1588 = icmp ult i32 %.62, %885
  %or.cond1652 = or i1 %.not1587, %.not1588
  br i1 %or.cond1652, label %906, label %934

886:                                              ; preds = %877
  %887 = icmp ugt i32 %.62, 10
  br i1 %887, label %.preheader1754, label %906

.preheader1754:                                   ; preds = %886
  %888 = getelementptr inbounds i8, ptr %0, i64 5896
  br label %889

889:                                              ; preds = %.preheader1754, %889
  %.01096 = phi i32 [ %899, %889 ], [ %882, %.preheader1754 ]
  %.01093 = phi i32 [ %892, %889 ], [ 10, %.preheader1754 ]
  %890 = xor i32 %.01096, -1
  %891 = sext i32 %890 to i64
  %892 = add i32 %.01093, 1
  %893 = zext nneg i32 %.01093 to i64
  %894 = lshr i64 %.621161, %893
  %895 = and i64 %894, 1
  %896 = add nsw i64 %895, %891
  %897 = getelementptr inbounds [576 x i16], ptr %888, i64 0, i64 %896
  %898 = load i16, ptr %897, align 2, !tbaa !53
  %899 = sext i16 %898 to i32
  %900 = icmp slt i16 %898, 0
  %901 = add i32 %.01093, 2
  %902 = icmp uge i32 %.62, %901
  %903 = and i1 %900, %902
  br i1 %903, label %889, label %904, !llvm.loop !76

904:                                              ; preds = %889
  %905 = icmp sgt i16 %898, -1
  br i1 %905, label %934, label %906

906:                                              ; preds = %886, %904, %884, %909
  %.571427 = phi i64 [ %.561426, %884 ], [ %.561426, %904 ], [ %.561426, %886 ], [ %38, %909 ]
  %.581334 = phi ptr [ %.571333, %884 ], [ %.571333, %904 ], [ %.571333, %886 ], [ %4, %909 ]
  %.611244 = phi ptr [ %.601243, %884 ], [ %.601243, %904 ], [ %.601243, %886 ], [ %1, %909 ]
  %.631162 = phi i64 [ %.621161, %884 ], [ %.621161, %904 ], [ %.621161, %886 ], [ %30, %909 ]
  %.611073 = phi i32 [ %.601072, %884 ], [ %.601072, %904 ], [ %.601072, %886 ], [ %36, %909 ]
  %.61989 = phi i32 [ %.60988, %884 ], [ %.60988, %904 ], [ %.60988, %886 ], [ %34, %909 ]
  %.59908 = phi i32 [ %.58907, %884 ], [ %.58907, %904 ], [ %.58907, %886 ], [ %32, %909 ]
  %.63 = phi i32 [ %.62, %884 ], [ %.62, %904 ], [ %.62, %886 ], [ %.84.fr1991, %909 ]
  %.not1589 = icmp ult ptr %.611244, %12
  br i1 %.not1589, label %910, label %907

907:                                              ; preds = %906
  %908 = and i32 %6, 2
  %.not1590 = icmp eq i32 %908, 0
  store i32 26, ptr %0, align 8, !tbaa !17
  %spec.select1733 = select i1 %.not1590, i32 -4, i32 1
  br label %.thread1687

909:                                              ; preds = %26
  br label %906, !llvm.loop !77

910:                                              ; preds = %906
  %911 = getelementptr inbounds i8, ptr %.611244, i64 1
  %912 = load i8, ptr %.611244, align 1, !tbaa !24
  %913 = zext i8 %912 to i64
  %914 = zext nneg i32 %.63 to i64
  %915 = shl i64 %913, %914
  %916 = or i64 %915, %.631162
  %917 = add i32 %.63, 8
  %918 = icmp ult i32 %917, 15
  br i1 %918, label %877, label %934, !llvm.loop !78

919:                                              ; preds = %872
  %920 = load i8, ptr %.591242, align 1, !tbaa !24
  %921 = zext i8 %920 to i64
  %922 = zext nneg i32 %.61 to i64
  %923 = shl nuw nsw i64 %921, %922
  %924 = getelementptr inbounds i8, ptr %.591242, i64 1
  %925 = load i8, ptr %924, align 1, !tbaa !24
  %926 = zext i8 %925 to i64
  %927 = add nuw nsw i32 %.61, 8
  %928 = zext nneg i32 %927 to i64
  %929 = shl nuw nsw i64 %926, %928
  %930 = or i64 %923, %929
  %931 = or i64 %930, %.611160
  %932 = getelementptr inbounds i8, ptr %.591242, i64 2
  %933 = or disjoint i32 %.61, 16
  br label %934

934:                                              ; preds = %884, %919, %904, %910, %870
  %.581428 = phi i64 [ %.571427, %910 ], [ %.561426, %904 ], [ %.551425, %919 ], [ %.551425, %870 ], [ %.561426, %884 ]
  %.591335 = phi ptr [ %.581334, %910 ], [ %.571333, %904 ], [ %.561332, %919 ], [ %.561332, %870 ], [ %.571333, %884 ]
  %.621245 = phi ptr [ %911, %910 ], [ %.601243, %904 ], [ %932, %919 ], [ %.591242, %870 ], [ %.601243, %884 ]
  %.641163 = phi i64 [ %916, %910 ], [ %.621161, %904 ], [ %931, %919 ], [ %.611160, %870 ], [ %.621161, %884 ]
  %.62990 = phi i32 [ %.61989, %910 ], [ %.60988, %904 ], [ %.59987, %919 ], [ %.59987, %870 ], [ %.60988, %884 ]
  %.64 = phi i32 [ %917, %910 ], [ %.62, %904 ], [ %933, %919 ], [ %.61, %870 ], [ %.62, %884 ]
  %935 = getelementptr inbounds i8, ptr %0, i64 3848
  %936 = and i64 %.641163, 1023
  %937 = getelementptr inbounds [1024 x i16], ptr %935, i64 0, i64 %936
  %938 = load i16, ptr %937, align 2, !tbaa !53
  %939 = sext i16 %938 to i32
  %940 = icmp sgt i16 %938, -1
  br i1 %940, label %942, label %.preheader1752

.preheader1752:                                   ; preds = %934
  %941 = getelementptr inbounds i8, ptr %0, i64 5896
  br label %945

942:                                              ; preds = %934
  %943 = lshr i32 %939, 9
  %944 = and i32 %939, 511
  br label %.loopexit1753

945:                                              ; preds = %.preheader1752, %945
  %.11097 = phi i32 [ %955, %945 ], [ %939, %.preheader1752 ]
  %.11094 = phi i32 [ %948, %945 ], [ 10, %.preheader1752 ]
  %946 = xor i32 %.11097, -1
  %947 = sext i32 %946 to i64
  %948 = add i32 %.11094, 1
  %949 = zext nneg i32 %.11094 to i64
  %950 = lshr i64 %.641163, %949
  %951 = and i64 %950, 1
  %952 = add nsw i64 %951, %947
  %953 = getelementptr inbounds [576 x i16], ptr %941, i64 0, i64 %952
  %954 = load i16, ptr %953, align 2, !tbaa !53
  %955 = sext i16 %954 to i32
  %956 = icmp slt i16 %954, 0
  br i1 %956, label %945, label %.loopexit1753, !llvm.loop !79

.loopexit1753:                                    ; preds = %945, %942
  %.21098 = phi i32 [ %944, %942 ], [ %955, %945 ]
  %.21095 = phi i32 [ %943, %942 ], [ %948, %945 ]
  %957 = zext nneg i32 %.21095 to i64
  %958 = lshr i64 %.641163, %957
  %959 = sub i32 %.64, %.21095
  %960 = zext nneg i32 %.21098 to i64
  %961 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_extra, i64 0, i64 %960
  %962 = load i32, ptr %961, align 4, !tbaa !41
  %963 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_base, i64 0, i64 %960
  %964 = load i32, ptr %963, align 4, !tbaa !41
  %.not1591 = icmp eq i32 %962, 0
  br i1 %.not1591, label %987, label %965

965:                                              ; preds = %.loopexit1753
  %966 = icmp ult i32 %959, %962
  br i1 %966, label %.preheader2144, label %.loopexit2145

.preheader2144:                                   ; preds = %970, %965
  %.601430.ph = phi i64 [ %.581428, %965 ], [ %38, %970 ]
  %.611337.ph = phi ptr [ %.591335, %965 ], [ %4, %970 ]
  %.641247.ph = phi ptr [ %.621245, %965 ], [ %1, %970 ]
  %.661165.ph = phi i64 [ %958, %965 ], [ %30, %970 ]
  %.631075.ph = phi i32 [ %962, %965 ], [ %36, %970 ]
  %.64992.ph = phi i32 [ %.62990, %965 ], [ %34, %970 ]
  %.61910.ph = phi i32 [ %964, %965 ], [ %32, %970 ]
  %.66.ph = phi i32 [ %959, %965 ], [ %.84.fr1991, %970 ]
  br label %967

967:                                              ; preds = %.preheader2144, %971
  %.641247 = phi ptr [ %972, %971 ], [ %.641247.ph, %.preheader2144 ]
  %.661165 = phi i64 [ %977, %971 ], [ %.661165.ph, %.preheader2144 ]
  %.66 = phi i32 [ %978, %971 ], [ %.66.ph, %.preheader2144 ]
  %.not1592 = icmp ult ptr %.641247, %12
  br i1 %.not1592, label %971, label %968

968:                                              ; preds = %967
  %969 = and i32 %6, 2
  %.not1599 = icmp eq i32 %969, 0
  store i32 27, ptr %0, align 8, !tbaa !17
  %spec.select1735 = select i1 %.not1599, i32 -4, i32 1
  br label %.thread1687

970:                                              ; preds = %26
  br label %.preheader2144, !llvm.loop !80

971:                                              ; preds = %967
  %972 = getelementptr inbounds i8, ptr %.641247, i64 1
  %973 = load i8, ptr %.641247, align 1, !tbaa !24
  %974 = zext i8 %973 to i64
  %975 = zext nneg i32 %.66 to i64
  %976 = shl i64 %974, %975
  %977 = or i64 %976, %.661165
  %978 = add i32 %.66, 8
  %979 = icmp ult i32 %978, %.631075.ph
  br i1 %979, label %967, label %.loopexit2145, !llvm.loop !81

.loopexit2145:                                    ; preds = %971, %965
  %.621338 = phi ptr [ %.591335, %965 ], [ %.611337.ph, %971 ]
  %.651248 = phi ptr [ %.621245, %965 ], [ %972, %971 ]
  %.671166 = phi i64 [ %958, %965 ], [ %977, %971 ]
  %.641076 = phi i32 [ %962, %965 ], [ %.631075.ph, %971 ]
  %.65993 = phi i32 [ %.62990, %965 ], [ %.64992.ph, %971 ]
  %.62911 = phi i32 [ %964, %965 ], [ %.61910.ph, %971 ]
  %.67 = phi i32 [ %959, %965 ], [ %978, %971 ]
  %notmask1593 = shl nsw i32 -1, %.641076
  %980 = xor i32 %notmask1593, -1
  %981 = trunc i64 %.671166 to i32
  %982 = and i32 %980, %981
  %983 = zext nneg i32 %.641076 to i64
  %984 = lshr i64 %.671166, %983
  %985 = sub i32 %.67, %.641076
  %986 = add i32 %.62911, %982
  br label %987

987:                                              ; preds = %.loopexit2145, %.loopexit1753
  %.631339 = phi ptr [ %.621338, %.loopexit2145 ], [ %.591335, %.loopexit1753 ]
  %.661249 = phi ptr [ %.651248, %.loopexit2145 ], [ %.621245, %.loopexit1753 ]
  %.681167 = phi i64 [ %984, %.loopexit2145 ], [ %958, %.loopexit1753 ]
  %.651077 = phi i32 [ %.641076, %.loopexit2145 ], [ 0, %.loopexit1753 ]
  %.66994 = phi i32 [ %.65993, %.loopexit2145 ], [ %.62990, %.loopexit1753 ]
  %.63912 = phi i32 [ %986, %.loopexit2145 ], [ %964, %.loopexit1753 ]
  %.68 = phi i32 [ %985, %.loopexit2145 ], [ %959, %.loopexit1753 ]
  %988 = ptrtoint ptr %.631339 to i64
  %989 = sub i64 %988, %17
  %990 = icmp ne i32 %.63912, 0
  %991 = zext i32 %.63912 to i64
  %992 = icmp uge i64 %989, %991
  %or.cond1654.not1745 = select i1 %990, i1 %992, i1 false
  %brmerge = or i1 %.not, %or.cond1654.not1745
  br i1 %brmerge, label %993, label %1140

993:                                              ; preds = %987
  %994 = sub i64 %989, %991
  %995 = and i64 %994, %21
  %996 = getelementptr inbounds i8, ptr %3, i64 %995
  %997 = icmp ugt ptr %.631339, %996
  %998 = select i1 %997, ptr %.631339, ptr %996
  %999 = zext i32 %.66994 to i64
  %1000 = getelementptr inbounds i8, ptr %998, i64 %999
  %1001 = icmp ugt ptr %1000, %14
  br i1 %1001, label %1002, label %1014

1002:                                             ; preds = %993, %1006
  %.621432 = phi i64 [ %1007, %1006 ], [ %989, %993 ]
  %.651341 = phi ptr [ %1013, %1006 ], [ %.631339, %993 ]
  %.681251 = phi ptr [ %.691252, %1006 ], [ %.661249, %993 ]
  %.701169 = phi i64 [ %.711170, %1006 ], [ %.681167, %993 ]
  %.671079 = phi i32 [ %.681080, %1006 ], [ %.651077, %993 ]
  %.68996 = phi i32 [ %.69997, %1006 ], [ %.66994, %993 ]
  %.65914 = phi i32 [ %.66915, %1006 ], [ %.63912, %993 ]
  %.70 = phi i32 [ %.71, %1006 ], [ %.68, %993 ]
  %1003 = add i32 %.68996, -1
  %.not1597 = icmp eq i32 %.68996, 0
  br i1 %.not1597, label %.preheader2166, label %1004

1004:                                             ; preds = %1002, %1005
  %.631433 = phi i64 [ %38, %1005 ], [ %.621432, %1002 ]
  %.661342 = phi ptr [ %4, %1005 ], [ %.651341, %1002 ]
  %.691252 = phi ptr [ %1, %1005 ], [ %.681251, %1002 ]
  %.711170 = phi i64 [ %30, %1005 ], [ %.701169, %1002 ]
  %.681080 = phi i32 [ %36, %1005 ], [ %.671079, %1002 ]
  %.69997 = phi i32 [ %34, %1005 ], [ %1003, %1002 ]
  %.66915 = phi i32 [ %32, %1005 ], [ %.65914, %1002 ]
  %.71 = phi i32 [ %.84.fr1991, %1005 ], [ %.70, %1002 ]
  %.not1598 = icmp ult ptr %.661342, %14
  br i1 %.not1598, label %1006, label %1140

1005:                                             ; preds = %26
  br label %1004, !llvm.loop !82

1006:                                             ; preds = %1004
  %1007 = add i64 %.631433, 1
  %1008 = zext i32 %.66915 to i64
  %1009 = sub i64 %.631433, %1008
  %1010 = and i64 %1009, %21
  %1011 = getelementptr inbounds i8, ptr %3, i64 %1010
  %1012 = load i8, ptr %1011, align 1, !tbaa !24
  %1013 = getelementptr inbounds i8, ptr %.661342, i64 1
  store i8 %1012, ptr %.661342, align 1, !tbaa !24
  br label %1002, !llvm.loop !83

1014:                                             ; preds = %993
  %1015 = icmp ult i32 %.66994, 9
  %.not1594 = icmp ugt i32 %.66994, %.63912
  %or.cond1655 = or i1 %1015, %.not1594
  br i1 %or.cond1655, label %.thread1664, label %1016

1016:                                             ; preds = %1014
  %1017 = and i32 %.66994, -8
  %1018 = zext i32 %1017 to i64
  %1019 = getelementptr inbounds i8, ptr %996, i64 %1018
  %1020 = add i64 %995, %17
  %1021 = add i64 %1020, %1018
  %1022 = add i64 %1020, 8
  %umax = tail call i64 @llvm.umax.i64(i64 %1021, i64 %1022)
  %1023 = xor i64 %995, -1
  %1024 = add i64 %umax, %1023
  %1025 = sub i64 %1024, %17
  %1026 = lshr i64 %1025, 3
  %1027 = add nuw nsw i64 %1026, 1
  %min.iters.check = icmp ult i64 %1025, 72
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %1016
  %1028 = add i64 %995, %17
  %1029 = sub i64 %988, %1028
  %diff.check = icmp ult i64 %1029, 32
  br i1 %diff.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %1027, 4611686018427387900
  %1030 = shl i64 %n.vec, 3
  %ind.end = getelementptr i8, ptr %996, i64 %1030
  %1031 = shl i64 %n.vec, 3
  %ind.end2048 = getelementptr i8, ptr %.631339, i64 %1031
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = shl i64 %index, 3
  %next.gep = getelementptr i8, ptr %996, i64 %offset.idx
  %offset.idx2051 = shl i64 %index, 3
  %next.gep2052 = getelementptr i8, ptr %.631339, i64 %offset.idx2051
  %1032 = getelementptr i8, ptr %next.gep, i64 16
  %wide.load = load <2 x i64>, ptr %next.gep, align 1
  %wide.load2054 = load <2 x i64>, ptr %1032, align 1
  %1033 = getelementptr i8, ptr %next.gep2052, i64 16
  store <2 x i64> %wide.load, ptr %next.gep2052, align 1
  store <2 x i64> %wide.load2054, ptr %1033, align 1
  %index.next = add nuw i64 %index, 4
  %1034 = icmp eq i64 %index.next, %n.vec
  br i1 %1034, label %middle.block, label %vector.body, !llvm.loop !84

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %1027, %n.vec
  %cmo = shl i64 %n.vec, 3
  %1035 = getelementptr i8, ptr %996, i64 %cmo
  %ind.escape = getelementptr i8, ptr %1035, i64 -8
  %cmo2055 = shl i64 %n.vec, 3
  %1036 = add i64 %cmo2055, -8
  %ind.escape2056 = getelementptr i8, ptr %.631339, i64 %1036
  br i1 %cmp.n, label %.loopexit2073, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %1016
  %.01367.ph = phi ptr [ %996, %vector.memcheck ], [ %996, %1016 ], [ %ind.end, %middle.block ]
  %.671343.ph = phi ptr [ %.631339, %vector.memcheck ], [ %.631339, %1016 ], [ %ind.end2048, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.01367 = phi ptr [ %1039, %scalar.ph ], [ %.01367.ph, %scalar.ph.preheader ]
  %.671343 = phi ptr [ %1038, %scalar.ph ], [ %.671343.ph, %scalar.ph.preheader ]
  %1037 = load i64, ptr %.01367, align 1
  store i64 %1037, ptr %.671343, align 1
  %1038 = getelementptr inbounds i8, ptr %.671343, i64 8
  %1039 = getelementptr inbounds i8, ptr %.01367, i64 8
  %1040 = icmp ult ptr %1039, %1019
  br i1 %1040, label %scalar.ph, label %.loopexit2073, !llvm.loop !86

.loopexit2073:                                    ; preds = %scalar.ph, %middle.block
  %.01367.lcssa = phi ptr [ %ind.escape, %middle.block ], [ %.01367, %scalar.ph ]
  %.671343.lcssa = phi ptr [ %ind.escape2056, %middle.block ], [ %.671343, %scalar.ph ]
  %.lcssa2037 = phi ptr [ %ind.end2048, %middle.block ], [ %1038, %scalar.ph ]
  %.lcssa2036 = phi ptr [ %ind.end, %middle.block ], [ %1039, %scalar.ph ]
  %1041 = and i32 %.66994, 7
  %1042 = icmp ult i32 %1041, 3
  br i1 %1042, label %1043, label %.lr.ph1797.preheader

1043:                                             ; preds = %.loopexit2073
  %.not1595 = icmp eq i32 %1041, 0
  br i1 %.not1595, label %.preheader2166, label %1044

1044:                                             ; preds = %1043
  %1045 = load i8, ptr %.lcssa2036, align 1, !tbaa !24
  store i8 %1045, ptr %.lcssa2037, align 1, !tbaa !24
  %1046 = icmp eq i32 %1041, 2
  br i1 %1046, label %1047, label %1051

1047:                                             ; preds = %1044
  %1048 = getelementptr inbounds i8, ptr %.01367.lcssa, i64 9
  %1049 = load i8, ptr %1048, align 1, !tbaa !24
  %1050 = getelementptr inbounds i8, ptr %.671343.lcssa, i64 9
  store i8 %1049, ptr %1050, align 1, !tbaa !24
  br label %1051

1051:                                             ; preds = %1047, %1044
  %1052 = zext nneg i32 %1041 to i64
  %1053 = getelementptr inbounds i8, ptr %.lcssa2037, i64 %1052
  br label %.preheader2166

.thread1664:                                      ; preds = %1014
  %1054 = icmp ugt i32 %.66994, 2
  br i1 %1054, label %.lr.ph1797.preheader, label %._crit_edge

.lr.ph1797.preheader:                             ; preds = %.loopexit2073, %.thread1664
  %.719991796.ph = phi i32 [ %1041, %.loopexit2073 ], [ %.66994, %.thread1664 ]
  %.7113471795.ph = phi ptr [ %.lcssa2037, %.loopexit2073 ], [ %.631339, %.thread1664 ]
  %.213691794.ph = phi ptr [ %.lcssa2036, %.loopexit2073 ], [ %996, %.thread1664 ]
  br label %.lr.ph1797

.lr.ph1797:                                       ; preds = %.lr.ph1797.preheader, %.lr.ph1797
  %.719991796 = phi i32 [ %1064, %.lr.ph1797 ], [ %.719991796.ph, %.lr.ph1797.preheader ]
  %.7113471795 = phi ptr [ %1062, %.lr.ph1797 ], [ %.7113471795.ph, %.lr.ph1797.preheader ]
  %.213691794 = phi ptr [ %1063, %.lr.ph1797 ], [ %.213691794.ph, %.lr.ph1797.preheader ]
  %1055 = load i8, ptr %.213691794, align 1, !tbaa !24
  store i8 %1055, ptr %.7113471795, align 1, !tbaa !24
  %1056 = getelementptr inbounds i8, ptr %.213691794, i64 1
  %1057 = load i8, ptr %1056, align 1, !tbaa !24
  %1058 = getelementptr inbounds i8, ptr %.7113471795, i64 1
  store i8 %1057, ptr %1058, align 1, !tbaa !24
  %1059 = getelementptr inbounds i8, ptr %.213691794, i64 2
  %1060 = load i8, ptr %1059, align 1, !tbaa !24
  %1061 = getelementptr inbounds i8, ptr %.7113471795, i64 2
  store i8 %1060, ptr %1061, align 1, !tbaa !24
  %1062 = getelementptr inbounds i8, ptr %.7113471795, i64 3
  %1063 = getelementptr inbounds i8, ptr %.213691794, i64 3
  %1064 = add i32 %.719991796, -3
  %1065 = icmp ugt i32 %1064, 2
  br i1 %1065, label %.lr.ph1797, label %._crit_edge, !llvm.loop !87

._crit_edge:                                      ; preds = %.lr.ph1797, %.thread1664
  %.21369.lcssa = phi ptr [ %996, %.thread1664 ], [ %1063, %.lr.ph1797 ]
  %.711347.lcssa = phi ptr [ %.631339, %.thread1664 ], [ %1062, %.lr.ph1797 ]
  %.71999.lcssa = phi i32 [ %.66994, %.thread1664 ], [ %1064, %.lr.ph1797 ]
  %.not1596 = icmp eq i32 %.71999.lcssa, 0
  br i1 %.not1596, label %.preheader2166, label %1066

1066:                                             ; preds = %._crit_edge
  %1067 = load i8, ptr %.21369.lcssa, align 1, !tbaa !24
  store i8 %1067, ptr %.711347.lcssa, align 1, !tbaa !24
  %1068 = icmp eq i32 %.71999.lcssa, 2
  br i1 %1068, label %1069, label %1073

1069:                                             ; preds = %1066
  %1070 = getelementptr inbounds i8, ptr %.21369.lcssa, i64 1
  %1071 = load i8, ptr %1070, align 1, !tbaa !24
  %1072 = getelementptr inbounds i8, ptr %.711347.lcssa, i64 1
  store i8 %1071, ptr %1072, align 1, !tbaa !24
  br label %1073

1073:                                             ; preds = %1069, %1066
  %1074 = zext nneg i32 %.71999.lcssa to i64
  %1075 = getelementptr inbounds i8, ptr %.711347.lcssa, i64 %1074
  br label %.preheader2166

1076:                                             ; preds = %207, %.thread
  %.641434 = phi i64 [ %.511421, %.thread ], [ %.191389, %207 ]
  %.731349 = phi ptr [ %.521328, %.thread ], [ %.191295, %207 ]
  %.701253 = phi ptr [ %.551238, %.thread ], [ %.221205, %207 ]
  %.721171 = phi i64 [ %.571156, %.thread ], [ %.231122, %207 ]
  %.691081 = phi i32 [ %.551067, %.thread ], [ %.231035, %207 ]
  %.721000 = phi i32 [ 256, %.thread ], [ 0, %207 ]
  %.67916 = phi i32 [ %.53902, %.thread ], [ %.22871, %207 ]
  %.72 = phi i32 [ %.57, %.thread ], [ %.23, %207 ]
  %1077 = getelementptr inbounds i8, ptr %0, i64 20
  %1078 = load i32, ptr %1077, align 4, !tbaa !28
  %1079 = and i32 %1078, 1
  %.not1616 = icmp eq i32 %1079, 0
  br i1 %.not1616, label %82, label %1086, !llvm.loop !88

1080:                                             ; preds = %1082
  %1081 = and i32 %6, 2
  %.not1564 = icmp eq i32 %1081, 0
  store i32 32, ptr %0, align 8, !tbaa !17
  %spec.select1737 = select i1 %.not1564, i32 -4, i32 1
  br label %.thread1687

1082:                                             ; preds = %26
  %.not1563 = icmp sgt i64 %11, 0
  br i1 %.not1563, label %1083, label %1080

1083:                                             ; preds = %1082
  %1084 = getelementptr inbounds i8, ptr %1, i64 1
  %1085 = add i32 %.84.fr1991, 8
  br label %1086

1086:                                             ; preds = %1076, %1083
  %.671437 = phi i64 [ %38, %1083 ], [ %.641434, %1076 ]
  %.761352 = phi ptr [ %4, %1083 ], [ %.731349, %1076 ]
  %.731256 = phi ptr [ %1084, %1083 ], [ %.701253, %1076 ]
  %.721084 = phi i32 [ %36, %1083 ], [ %.691081, %1076 ]
  %.751003 = phi i32 [ %34, %1083 ], [ %.721000, %1076 ]
  %.70919 = phi i32 [ %32, %1083 ], [ %.67916, %1076 ]
  %.75 = phi i32 [ %1085, %1083 ], [ %.72, %1076 ]
  %.75.fr = freeze i32 %.75
  %1087 = and i32 %.75.fr, -8
  %1088 = icmp ugt ptr %.731256, %1
  %1089 = icmp ne i32 %1087, 0
  %1090 = and i1 %1088, %1089
  br i1 %1090, label %.lr.ph1832.preheader, label %._crit_edge1833

.lr.ph1832.preheader:                             ; preds = %1086
  %.7312561928 = ptrtoint ptr %.731256 to i64
  %1091 = add i32 %1087, -8
  %1092 = lshr exact i32 %1091, 3
  %1093 = zext nneg i32 %1092 to i64
  %1094 = xor i64 %8, -1
  %1095 = add i64 %1094, %.7312561928
  %umin = tail call i64 @llvm.umin.i64(i64 %1093, i64 %1095)
  %1096 = xor i64 %umin, -1
  %scevgep1929 = getelementptr i8, ptr %.731256, i64 %1096
  %1097 = trunc nuw nsw i64 %umin to i32
  %1098 = shl nuw i32 %1097, 3
  %1099 = sub i32 %1091, %1098
  br label %._crit_edge1833

._crit_edge1833:                                  ; preds = %.lr.ph1832.preheader, %1086
  %.741257.lcssa = phi ptr [ %.731256, %1086 ], [ %scevgep1929, %.lr.ph1832.preheader ]
  %.76.lcssa = phi i32 [ %1087, %1086 ], [ %1099, %.lr.ph1832.preheader ]
  %.not1618 = icmp eq i32 %.76.lcssa, 0
  br i1 %.not1618, label %1101, label %1100

1100:                                             ; preds = %._crit_edge1833
  tail call void @__assert_fail(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.12, i32 noundef 2793, ptr noundef nonnull @__PRETTY_FUNCTION__.tinfl_decompress) #5
  unreachable

1101:                                             ; preds = %._crit_edge1833
  %1102 = and i32 %6, 1
  %.not1619 = icmp eq i32 %1102, 0
  br i1 %.not1619, label %1140, label %1103

1103:                                             ; preds = %1101, %1133
  %.681438 = phi i64 [ %.731443, %1133 ], [ %.671437, %1101 ]
  %.771353 = phi ptr [ %.821358, %1133 ], [ %.761352, %1101 ]
  %.751258 = phi ptr [ %.801263, %1133 ], [ %.741257.lcssa, %1101 ]
  %.761175 = phi i64 [ %.811180, %1133 ], [ 0, %1101 ]
  %.731085 = phi i32 [ %.781090, %1133 ], [ %.721084, %1101 ]
  %.761004 = phi i32 [ %1138, %1133 ], [ 0, %1101 ]
  %.71920 = phi i32 [ %.76925, %1133 ], [ %.70919, %1101 ]
  %.77 = phi i32 [ %.82, %1133 ], [ 0, %1101 ]
  %1104 = icmp ult i32 %.761004, 4
  br i1 %1104, label %1105, label %1140

1105:                                             ; preds = %1103
  %.not1620 = icmp eq i32 %.77, 0
  br i1 %.not1620, label %1125, label %1106

1106:                                             ; preds = %1105
  %1107 = icmp ult i32 %.77, 8
  br i1 %1107, label %.preheader2097, label %.loopexit2098

.preheader2097:                                   ; preds = %1111, %1106
  %.701440.ph = phi i64 [ %.681438, %1106 ], [ %38, %1111 ]
  %.791355.ph = phi ptr [ %.771353, %1106 ], [ %4, %1111 ]
  %.771260.ph = phi ptr [ %.751258, %1106 ], [ %1, %1111 ]
  %.781177.ph = phi i64 [ %.761175, %1106 ], [ %30, %1111 ]
  %.751087.ph = phi i32 [ %.731085, %1106 ], [ %36, %1111 ]
  %.781006.ph = phi i32 [ %.761004, %1106 ], [ %34, %1111 ]
  %.73922.ph = phi i32 [ %.71920, %1106 ], [ %32, %1111 ]
  %.79.ph = phi i32 [ %.77, %1106 ], [ %.84.fr1991, %1111 ]
  br label %1108

1108:                                             ; preds = %.preheader2097, %1112
  %.771260 = phi ptr [ %1113, %1112 ], [ %.771260.ph, %.preheader2097 ]
  %.781177 = phi i64 [ %1118, %1112 ], [ %.781177.ph, %.preheader2097 ]
  %.79 = phi i32 [ %1119, %1112 ], [ %.79.ph, %.preheader2097 ]
  %.not1623 = icmp ult ptr %.771260, %12
  br i1 %.not1623, label %1112, label %1109

1109:                                             ; preds = %1108
  %1110 = and i32 %6, 2
  %.not1624 = icmp eq i32 %1110, 0
  store i32 41, ptr %0, align 8, !tbaa !17
  %spec.select1739 = select i1 %.not1624, i32 -4, i32 1
  br label %.thread1687

1111:                                             ; preds = %26
  br label %.preheader2097, !llvm.loop !89

1112:                                             ; preds = %1108
  %1113 = getelementptr inbounds i8, ptr %.771260, i64 1
  %1114 = load i8, ptr %.771260, align 1, !tbaa !24
  %1115 = zext i8 %1114 to i64
  %1116 = zext nneg i32 %.79 to i64
  %1117 = shl i64 %1115, %1116
  %1118 = or i64 %1117, %.781177
  %1119 = add i32 %.79, 8
  %1120 = icmp ugt i32 %.79, -9
  br i1 %1120, label %1108, label %.loopexit2098, !llvm.loop !90

.loopexit2098:                                    ; preds = %1112, %1106
  %.711441 = phi i64 [ %.681438, %1106 ], [ %.701440.ph, %1112 ]
  %.801356 = phi ptr [ %.771353, %1106 ], [ %.791355.ph, %1112 ]
  %.781261 = phi ptr [ %.751258, %1106 ], [ %1113, %1112 ]
  %.791178 = phi i64 [ %.761175, %1106 ], [ %1118, %1112 ]
  %.761088 = phi i32 [ %.731085, %1106 ], [ %.751087.ph, %1112 ]
  %.791007 = phi i32 [ %.761004, %1106 ], [ %.781006.ph, %1112 ]
  %.74923 = phi i32 [ %.71920, %1106 ], [ %.73922.ph, %1112 ]
  %.80 = phi i32 [ %.77, %1106 ], [ %1119, %1112 ]
  %1121 = trunc i64 %.791178 to i32
  %1122 = and i32 %1121, 255
  %1123 = lshr i64 %.791178, 8
  %1124 = add i32 %.80, -8
  br label %1133

1125:                                             ; preds = %1105, %1128
  %.721442 = phi i64 [ %38, %1128 ], [ %.681438, %1105 ]
  %.811357 = phi ptr [ %4, %1128 ], [ %.771353, %1105 ]
  %.791262 = phi ptr [ %1, %1128 ], [ %.751258, %1105 ]
  %.801179 = phi i64 [ %30, %1128 ], [ %.761175, %1105 ]
  %.771089 = phi i32 [ %36, %1128 ], [ %.731085, %1105 ]
  %.801008 = phi i32 [ %34, %1128 ], [ %.761004, %1105 ]
  %.75924 = phi i32 [ %32, %1128 ], [ %.71920, %1105 ]
  %.81 = phi i32 [ %.84.fr1991, %1128 ], [ 0, %1105 ]
  %.not1621 = icmp ult ptr %.791262, %12
  br i1 %.not1621, label %1129, label %1126

1126:                                             ; preds = %1125
  %1127 = and i32 %6, 2
  %.not1622 = icmp eq i32 %1127, 0
  store i32 42, ptr %0, align 8, !tbaa !17
  %spec.select1741 = select i1 %.not1622, i32 -4, i32 1
  br label %.thread1687

1128:                                             ; preds = %26
  br label %1125, !llvm.loop !91

1129:                                             ; preds = %1125
  %1130 = getelementptr inbounds i8, ptr %.791262, i64 1
  %1131 = load i8, ptr %.791262, align 1, !tbaa !24
  %1132 = zext i8 %1131 to i32
  br label %1133

1133:                                             ; preds = %1129, %.loopexit2098
  %.731443 = phi i64 [ %.721442, %1129 ], [ %.711441, %.loopexit2098 ]
  %.821358 = phi ptr [ %.811357, %1129 ], [ %.801356, %.loopexit2098 ]
  %.801263 = phi ptr [ %1130, %1129 ], [ %.781261, %.loopexit2098 ]
  %.811180 = phi i64 [ %.801179, %1129 ], [ %1123, %.loopexit2098 ]
  %.781090 = phi i32 [ %.771089, %1129 ], [ %.761088, %.loopexit2098 ]
  %.811009 = phi i32 [ %.801008, %1129 ], [ %.791007, %.loopexit2098 ]
  %.76925 = phi i32 [ %.75924, %1129 ], [ %.74923, %.loopexit2098 ]
  %.82 = phi i32 [ %.81, %1129 ], [ %1124, %.loopexit2098 ]
  %.0842 = phi i32 [ %1132, %1129 ], [ %1122, %.loopexit2098 ]
  %1134 = getelementptr inbounds i8, ptr %0, i64 16
  %1135 = load i32, ptr %1134, align 8, !tbaa !23
  %1136 = shl i32 %1135, 8
  %1137 = or disjoint i32 %1136, %.0842
  store i32 %1137, ptr %1134, align 8, !tbaa !23
  %1138 = add i32 %.811009, 1
  br label %1103, !llvm.loop !92

1139:                                             ; preds = %26
  br label %1140

1140:                                             ; preds = %26, %26, %26, %26, %26, %26, %1103, %1101, %1004, %987, %766, %659, %612, %._crit_edge1804, %227, %208, %201, %165, %81, %26, %73, %1139
  %.sink = phi i32 [ 36, %73 ], [ %39, %26 ], [ 36, %81 ], [ 39, %165 ], [ 52, %201 ], [ 9, %208 ], [ 10, %227 ], [ 35, %._crit_edge1804 ], [ 17, %612 ], [ 21, %659 ], [ 24, %766 ], [ 37, %987 ], [ 53, %1004 ], [ 34, %1101 ], [ 34, %1103 ], [ %39, %1139 ], [ %39, %26 ], [ %39, %26 ], [ %39, %26 ], [ %39, %26 ], [ %39, %26 ], [ %39, %26 ]
  %.751445 = phi i64 [ %38, %73 ], [ %38, %26 ], [ %38, %81 ], [ %.71377, %165 ], [ %.181388, %201 ], [ %.201390, %208 ], [ %.31373, %227 ], [ %.321402, %._crit_edge1804 ], [ %.371407, %612 ], [ %.341404, %659 ], [ %.491419, %766 ], [ %989, %987 ], [ %.631433, %1004 ], [ %.671437, %1101 ], [ %.681438, %1103 ], [ %38, %1139 ], [ %38, %26 ], [ %38, %26 ], [ %38, %26 ], [ %38, %26 ], [ %38, %26 ], [ %38, %26 ]
  %.841360 = phi ptr [ %4, %73 ], [ %4, %26 ], [ %4, %81 ], [ %.71283, %165 ], [ %.181294, %201 ], [ %.201296, %208 ], [ %.31279, %227 ], [ %.321308, %._crit_edge1804 ], [ %.371313, %612 ], [ %.341310, %659 ], [ %.491325, %766 ], [ %.631339, %987 ], [ %.661342, %1004 ], [ %.761352, %1101 ], [ %.771353, %1103 ], [ %4, %1139 ], [ %4, %26 ], [ %4, %26 ], [ %4, %26 ], [ %4, %26 ], [ %4, %26 ], [ %4, %26 ]
  %.821265 = phi ptr [ %59, %73 ], [ %1, %26 ], [ %59, %81 ], [ %.101193, %165 ], [ %.211204, %201 ], [ %.231206, %208 ], [ %.61189, %227 ], [ %.351218, %._crit_edge1804 ], [ %.401223, %612 ], [ %.371220, %659 ], [ %.521235, %766 ], [ %.661249, %987 ], [ %.691252, %1004 ], [ %.741257.lcssa, %1101 ], [ %.751258, %1103 ], [ %1, %1139 ], [ %1, %26 ], [ %1, %26 ], [ %1, %26 ], [ %1, %26 ], [ %1, %26 ], [ %1, %26 ]
  %.831182 = phi i64 [ %.11100, %73 ], [ %30, %26 ], [ %.11100, %81 ], [ %.111110, %165 ], [ %.221121, %201 ], [ %.241123, %208 ], [ %108, %227 ], [ %.361135, %._crit_edge1804 ], [ %603, %612 ], [ %.381137, %659 ], [ %.531152, %766 ], [ %.681167, %987 ], [ %.711170, %1004 ], [ 0, %1101 ], [ %.761175, %1103 ], [ %30, %1139 ], [ %30, %26 ], [ %30, %26 ], [ %30, %26 ], [ %30, %26 ], [ %30, %26 ], [ %30, %26 ]
  %.801092 = phi i32 [ %.11013, %73 ], [ %36, %26 ], [ %.11013, %81 ], [ %.111023, %165 ], [ %.221034, %201 ], [ %.241036, %208 ], [ %.71019, %227 ], [ %.361048, %._crit_edge1804 ], [ %.411053, %612 ], [ %.381050, %659 ], [ %.531065, %766 ], [ %.651077, %987 ], [ %.681080, %1004 ], [ %.721084, %1101 ], [ %.731085, %1103 ], [ %36, %1139 ], [ %36, %26 ], [ %36, %26 ], [ %36, %26 ], [ %36, %26 ], [ %36, %26 ], [ %36, %26 ]
  %.831011 = phi i32 [ 1, %73 ], [ %34, %26 ], [ 1, %81 ], [ %173, %165 ], [ %.22950, %201 ], [ %.24952, %208 ], [ %.8936, %227 ], [ %.36964, %._crit_edge1804 ], [ 0, %612 ], [ %.38966, %659 ], [ %.52980, %766 ], [ %.66994, %987 ], [ %.69997, %1004 ], [ %.751003, %1101 ], [ %.761004, %1103 ], [ %34, %1139 ], [ %34, %26 ], [ %34, %26 ], [ %34, %26 ], [ %34, %26 ], [ %34, %26 ], [ %34, %26 ]
  %.78927 = phi i32 [ %.1850, %73 ], [ %32, %26 ], [ %.1850, %81 ], [ %.11860, %165 ], [ %.21870, %201 ], [ %.23872, %208 ], [ %.7856, %227 ], [ %.35884, %._crit_edge1804 ], [ 16, %612 ], [ %.37886, %659 ], [ %.51900, %766 ], [ %.63912, %987 ], [ %.66915, %1004 ], [ %.70919, %1101 ], [ %.71920, %1103 ], [ %32, %1139 ], [ %32, %26 ], [ %32, %26 ], [ %32, %26 ], [ %32, %26 ], [ %32, %26 ], [ %32, %26 ]
  %.84 = phi i32 [ %.1847, %73 ], [ %.84.fr1991, %26 ], [ %.1847, %81 ], [ %.11, %165 ], [ %.22, %201 ], [ %.24, %208 ], [ %109, %227 ], [ %.36, %._crit_edge1804 ], [ %604, %612 ], [ %.38, %659 ], [ %.53, %766 ], [ %.68, %987 ], [ %.71, %1004 ], [ 0, %1101 ], [ %.77, %1103 ], [ %.84.fr1991, %1139 ], [ %.84.fr1991, %26 ], [ %.84.fr1991, %26 ], [ %.84.fr1991, %26 ], [ %.84.fr1991, %26 ], [ %.84.fr1991, %26 ], [ %.84.fr1991, %26 ]
  %.0843 = phi i32 [ -1, %73 ], [ -1, %26 ], [ -1, %81 ], [ -1, %165 ], [ 2, %201 ], [ 2, %208 ], [ -1, %227 ], [ -1, %._crit_edge1804 ], [ -1, %612 ], [ -1, %659 ], [ 2, %766 ], [ -1, %987 ], [ 2, %1004 ], [ 0, %1101 ], [ 0, %1103 ], [ 0, %1139 ], [ -1, %26 ], [ -1, %26 ], [ -1, %26 ], [ -1, %26 ], [ -1, %26 ], [ -1, %26 ]
  store i32 %.sink, ptr %0, align 8, !tbaa !17
  %.84.fr = freeze i32 %.84
  %1141 = icmp ugt ptr %.821265, %1
  %1142 = icmp ugt i32 %.84.fr, 7
  %1143 = and i1 %1141, %1142
  br i1 %1143, label %.lr.ph1839.preheader, label %.thread1687

.lr.ph1839.preheader:                             ; preds = %1140
  %.8212651930 = ptrtoint ptr %.821265 to i64
  %1144 = add i32 %.84.fr, -8
  %1145 = lshr i32 %1144, 3
  %1146 = zext nneg i32 %1145 to i64
  %1147 = xor i64 %8, -1
  %1148 = add i64 %1147, %.8212651930
  %umin1931 = tail call i64 @llvm.umin.i64(i64 %1146, i64 %1148)
  %1149 = xor i64 %umin1931, -1
  %scevgep1932 = getelementptr i8, ptr %.821265, i64 %1149
  %1150 = trunc nuw nsw i64 %umin1931 to i32
  %1151 = shl nuw i32 %1150, 3
  %1152 = sub i32 %1144, %1151
  br label %.thread1687

.thread1687:                                      ; preds = %26, %.lr.ph1839.preheader, %1140, %1126, %1109, %1080, %968, %907, %851, %712, %623, %552, %279, %243, %211, %185, %154, %135, %113, %84, %55, %47
  %.08431704 = phi i32 [ %spec.select1741, %1126 ], [ %spec.select1739, %1109 ], [ %spec.select1737, %1080 ], [ %spec.select1709, %84 ], [ %spec.select1711, %113 ], [ %spec.select1713, %135 ], [ %spec.select1715, %154 ], [ %spec.select1717, %185 ], [ %spec.select1719, %211 ], [ %spec.select1727, %623 ], [ %spec.select1725, %552 ], [ %spec.select1721, %243 ], [ %spec.select1723, %279 ], [ %spec.select1731, %851 ], [ %spec.select1735, %968 ], [ %spec.select1733, %907 ], [ %spec.select1729, %712 ], [ %spec.select1707, %55 ], [ %spec.select1705, %47 ], [ %.0843, %1140 ], [ %.0843, %.lr.ph1839.preheader ], [ -1, %26 ]
  %.789271702 = phi i32 [ %.75924, %1126 ], [ %.73922.ph, %1109 ], [ %32, %1080 ], [ %.6855.ph, %84 ], [ %32, %113 ], [ %.13862.ph, %135 ], [ %.15864, %154 ], [ %.20869.ph, %185 ], [ %.24873, %211 ], [ %.42891.ph, %623 ], [ %.39888, %552 ], [ %.28877.ph, %243 ], [ %.32881.ph, %279 ], [ %.55904.ph, %851 ], [ %.61910.ph, %968 ], [ %.59908, %907 ], [ %.49898, %712 ], [ %.1850, %55 ], [ %.0849, %47 ], [ %.78927, %1140 ], [ %.78927, %.lr.ph1839.preheader ], [ %32, %26 ]
  %.8310111701 = phi i32 [ %.801008, %1126 ], [ %.781006.ph, %1109 ], [ %34, %1080 ], [ %.7935.ph, %84 ], [ %34, %113 ], [ %.13941.ph, %135 ], [ %.15943, %154 ], [ %.20948.ph, %185 ], [ %.25953, %211 ], [ %.44972.ph, %623 ], [ %.40968, %552 ], [ %.29957.ph, %243 ], [ %.33961.ph, %279 ], [ %.57985.ph, %851 ], [ %.64992.ph, %968 ], [ %.61989, %907 ], [ %.51979, %712 ], [ %.1929, %55 ], [ %.0928, %47 ], [ %.831011, %1140 ], [ %.831011, %.lr.ph1839.preheader ], [ %34, %26 ]
  %.8010921700 = phi i32 [ %.771089, %1126 ], [ %.751087.ph, %1109 ], [ %36, %1080 ], [ %.61018.ph, %84 ], [ %36, %113 ], [ %.131025.ph, %135 ], [ %.151027, %154 ], [ %.201032.ph, %185 ], [ %.251037, %211 ], [ %.441056.ph, %623 ], [ %.401052, %552 ], [ %.291041.ph, %243 ], [ %.331045.ph, %279 ], [ %.571069.ph, %851 ], [ %.631075.ph, %968 ], [ %.611073, %907 ], [ %.511063, %712 ], [ %.11013, %55 ], [ %.01012, %47 ], [ %.801092, %1140 ], [ %.801092, %.lr.ph1839.preheader ], [ %36, %26 ]
  %.8311821699 = phi i64 [ %.801179, %1126 ], [ %.781177, %1109 ], [ %30, %1080 ], [ %.61105.lcssa, %84 ], [ %30, %113 ], [ %.131112, %135 ], [ %.151114, %154 ], [ %.201119, %185 ], [ %.251124, %211 ], [ %.441143, %623 ], [ %.401139, %552 ], [ %.291128, %243 ], [ %.331132.lcssa, %279 ], [ %.591158, %851 ], [ %.661165, %968 ], [ %.631162, %907 ], [ %.511150, %712 ], [ %.11100, %55 ], [ %.01099, %47 ], [ %.831182, %1140 ], [ %.831182, %.lr.ph1839.preheader ], [ %30, %26 ]
  %.8413601698 = phi ptr [ %.811357, %1126 ], [ %.791355.ph, %1109 ], [ %4, %1080 ], [ %.21278.ph, %84 ], [ %4, %113 ], [ %.91285.ph, %135 ], [ %.111287, %154 ], [ %.161292.ph, %185 ], [ %.211297, %211 ], [ %.401316.ph, %623 ], [ %.361312, %552 ], [ %.251301.ph, %243 ], [ %.291305.ph, %279 ], [ %.541330.ph, %851 ], [ %.611337.ph, %968 ], [ %.581334, %907 ], [ %.471323, %712 ], [ %4, %55 ], [ %4, %47 ], [ %.841360, %1140 ], [ %.841360, %.lr.ph1839.preheader ], [ %4, %26 ]
  %.7514451697 = phi i64 [ %.721442, %1126 ], [ %.701440.ph, %1109 ], [ %38, %1080 ], [ %.21372.ph, %84 ], [ %38, %113 ], [ %.91379.ph, %135 ], [ %.111381, %154 ], [ %.161386.ph, %185 ], [ %.211391, %211 ], [ %.401410.ph, %623 ], [ %.361406, %552 ], [ %.251395.ph, %243 ], [ %.291399.ph, %279 ], [ %.531423.ph, %851 ], [ %.601430.ph, %968 ], [ %.571427, %907 ], [ %.471417, %712 ], [ %38, %55 ], [ %38, %47 ], [ %.751445, %1140 ], [ %.751445, %.lr.ph1839.preheader ], [ %38, %26 ]
  %.841267 = phi ptr [ %.791262, %1126 ], [ %.771260, %1109 ], [ %1, %1080 ], [ %.51188.lcssa, %84 ], [ %1, %113 ], [ %.121195, %135 ], [ %.141197, %154 ], [ %.191202, %185 ], [ %.241207, %211 ], [ %.431226, %623 ], [ %.391222, %552 ], [ %.281211, %243 ], [ %.321215.lcssa, %279 ], [ %.571240, %851 ], [ %.641247, %968 ], [ %.611244, %907 ], [ %.501233, %712 ], [ %.01183, %55 ], [ %1, %47 ], [ %.821265, %1140 ], [ %scevgep1932, %.lr.ph1839.preheader ], [ %1, %26 ]
  %.86 = phi i32 [ %.81, %1126 ], [ %.79, %1109 ], [ %.84.fr1991, %1080 ], [ %.6.lcssa, %84 ], [ %.84.fr1991, %113 ], [ %.13, %135 ], [ %.15, %154 ], [ %.20, %185 ], [ %.25, %211 ], [ %.44, %623 ], [ %.40, %552 ], [ %.29, %243 ], [ %.33.lcssa, %279 ], [ %.59, %851 ], [ %.66, %968 ], [ %.63, %907 ], [ %.51, %712 ], [ %.1847, %55 ], [ %.0846, %47 ], [ %.84.fr, %1140 ], [ %1152, %.lr.ph1839.preheader ], [ %.84.fr1991, %26 ]
  store i32 %.86, ptr %27, align 4, !tbaa !9
  %1153 = zext nneg i32 %.86 to i64
  %notmask1639 = shl nsw i64 -1, %1153
  %1154 = xor i64 %notmask1639, -1
  %1155 = and i64 %.8311821699, %1154
  store i64 %1155, ptr %29, align 8, !tbaa !12
  store i32 %.789271702, ptr %31, align 8, !tbaa !13
  store i32 %.8310111701, ptr %33, align 4, !tbaa !14
  store i32 %.8010921700, ptr %35, align 8, !tbaa !15
  store i64 %.7514451697, ptr %37, align 8, !tbaa !16
  %1156 = ptrtoint ptr %.841267 to i64
  %1157 = sub i64 %1156, %8
  store i64 %1157, ptr %2, align 8, !tbaa !5
  %1158 = ptrtoint ptr %.8413601698 to i64
  %1159 = sub i64 %1158, %16
  store i64 %1159, ptr %5, align 8, !tbaa !5
  %1160 = and i32 %6, 9
  %1161 = icmp ne i32 %1160, 0
  %1162 = icmp sgt i32 %.08431704, -1
  %or.cond9 = and i1 %1161, %1162
  br i1 %or.cond9, label %1163, label %1256

1163:                                             ; preds = %.thread1687
  %1164 = getelementptr inbounds i8, ptr %0, i64 28
  %1165 = load i32, ptr %1164, align 4, !tbaa !22
  %1166 = and i32 %1165, 65535
  %1167 = lshr i32 %1165, 16
  %.not16401860 = icmp eq i64 %1159, 0
  br i1 %.not16401860, label %._crit_edge1866, label %.preheader1747.preheader

.preheader1747.preheader:                         ; preds = %1163
  %1168 = urem i64 %1159, 5552
  br label %.preheader1747

.preheader1747:                                   ; preds = %.preheader1747.preheader, %._crit_edge1856
  %.01865 = phi i64 [ 5552, %._crit_edge1856 ], [ %1168, %.preheader1747.preheader ]
  %.08311864 = phi i32 [ %1246, %._crit_edge1856 ], [ %1167, %.preheader1747.preheader ]
  %.08321863 = phi i32 [ %1245, %._crit_edge1856 ], [ %1166, %.preheader1747.preheader ]
  %.08371862 = phi i64 [ %1247, %._crit_edge1856 ], [ %1159, %.preheader1747.preheader ]
  %.08381861 = phi ptr [ %.2840.lcssa, %._crit_edge1856 ], [ %4, %.preheader1747.preheader ]
  %1169 = icmp ugt i64 %.01865, 7
  br i1 %1169, label %.lr.ph1846.preheader, label %.preheader

.lr.ph1846.preheader:                             ; preds = %.preheader1747
  %1170 = trunc nuw nsw i64 %.01865 to i32
  br label %.lr.ph1846

.preheader:                                       ; preds = %.lr.ph1846, %.preheader1747
  %.1839.lcssa = phi ptr [ %.08381861, %.preheader1747 ], [ %1222, %.lr.ph1846 ]
  %.0835.lcssa = phi i32 [ 0, %.preheader1747 ], [ %1221, %.lr.ph1846 ]
  %.1833.lcssa = phi i32 [ %.08321863, %.preheader1747 ], [ %1219, %.lr.ph1846 ]
  %.1.lcssa = phi i32 [ %.08311864, %.preheader1747 ], [ %1220, %.lr.ph1846 ]
  %1171 = zext i32 %.0835.lcssa to i64
  %1172 = icmp ugt i64 %.01865, %1171
  br i1 %1172, label %.lr.ph1855.preheader, label %._crit_edge1856

.lr.ph1855.preheader:                             ; preds = %.preheader
  %1173 = sub nsw i64 %.01865, %1171
  %1174 = sub nsw i64 %.01865, %1171
  %xtraiter2208 = and i64 %1174, 3
  %lcmp.mod2209.not = icmp eq i64 %xtraiter2208, 0
  br i1 %lcmp.mod2209.not, label %.lr.ph1855.prol.loopexit, label %.lr.ph1855.prol

.lr.ph1855.prol:                                  ; preds = %.lr.ph1855.preheader, %.lr.ph1855.prol
  %indvars.iv1933.prol = phi i64 [ %indvars.iv.next1934.prol, %.lr.ph1855.prol ], [ %1171, %.lr.ph1855.preheader ]
  %.21854.prol = phi i32 [ %1179, %.lr.ph1855.prol ], [ %.1.lcssa, %.lr.ph1855.preheader ]
  %.28341853.prol = phi i32 [ %1178, %.lr.ph1855.prol ], [ %.1833.lcssa, %.lr.ph1855.preheader ]
  %.28401851.prol = phi ptr [ %1175, %.lr.ph1855.prol ], [ %.1839.lcssa, %.lr.ph1855.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1855.prol ], [ 0, %.lr.ph1855.preheader ]
  %1175 = getelementptr inbounds i8, ptr %.28401851.prol, i64 1
  %1176 = load i8, ptr %.28401851.prol, align 1, !tbaa !24
  %1177 = zext i8 %1176 to i32
  %1178 = add i32 %.28341853.prol, %1177
  %1179 = add i32 %1178, %.21854.prol
  %indvars.iv.next1934.prol = add nuw nsw i64 %indvars.iv1933.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter2208
  br i1 %prol.iter.cmp.not, label %.lr.ph1855.prol.loopexit, label %.lr.ph1855.prol, !llvm.loop !93

.lr.ph1855.prol.loopexit:                         ; preds = %.lr.ph1855.prol, %.lr.ph1855.preheader
  %.lcssa2078.unr = phi i32 [ poison, %.lr.ph1855.preheader ], [ %1178, %.lr.ph1855.prol ]
  %.lcssa2077.unr = phi i32 [ poison, %.lr.ph1855.preheader ], [ %1179, %.lr.ph1855.prol ]
  %indvars.iv1933.unr = phi i64 [ %1171, %.lr.ph1855.preheader ], [ %indvars.iv.next1934.prol, %.lr.ph1855.prol ]
  %.21854.unr = phi i32 [ %.1.lcssa, %.lr.ph1855.preheader ], [ %1179, %.lr.ph1855.prol ]
  %.28341853.unr = phi i32 [ %.1833.lcssa, %.lr.ph1855.preheader ], [ %1178, %.lr.ph1855.prol ]
  %.28401851.unr = phi ptr [ %.1839.lcssa, %.lr.ph1855.preheader ], [ %1175, %.lr.ph1855.prol ]
  %1180 = sub nsw i64 %1171, %.01865
  %1181 = icmp ugt i64 %1180, -4
  br i1 %1181, label %._crit_edge1856.loopexit, label %.lr.ph1855

.lr.ph1846:                                       ; preds = %.lr.ph1846.preheader, %.lr.ph1846
  %.11845 = phi i32 [ %1220, %.lr.ph1846 ], [ %.08311864, %.lr.ph1846.preheader ]
  %.18331844 = phi i32 [ %1219, %.lr.ph1846 ], [ %.08321863, %.lr.ph1846.preheader ]
  %.08351843 = phi i32 [ %1221, %.lr.ph1846 ], [ 0, %.lr.ph1846.preheader ]
  %.18391842 = phi ptr [ %1222, %.lr.ph1846 ], [ %.08381861, %.lr.ph1846.preheader ]
  %1182 = load i8, ptr %.18391842, align 1, !tbaa !24
  %1183 = zext i8 %1182 to i32
  %1184 = add i32 %.18331844, %1183
  %1185 = add i32 %1184, %.11845
  %1186 = getelementptr inbounds i8, ptr %.18391842, i64 1
  %1187 = load i8, ptr %1186, align 1, !tbaa !24
  %1188 = zext i8 %1187 to i32
  %1189 = add i32 %1184, %1188
  %1190 = add i32 %1185, %1189
  %1191 = getelementptr inbounds i8, ptr %.18391842, i64 2
  %1192 = load i8, ptr %1191, align 1, !tbaa !24
  %1193 = zext i8 %1192 to i32
  %1194 = add i32 %1189, %1193
  %1195 = add i32 %1190, %1194
  %1196 = getelementptr inbounds i8, ptr %.18391842, i64 3
  %1197 = load i8, ptr %1196, align 1, !tbaa !24
  %1198 = zext i8 %1197 to i32
  %1199 = add i32 %1194, %1198
  %1200 = add i32 %1195, %1199
  %1201 = getelementptr inbounds i8, ptr %.18391842, i64 4
  %1202 = load i8, ptr %1201, align 1, !tbaa !24
  %1203 = zext i8 %1202 to i32
  %1204 = add i32 %1199, %1203
  %1205 = add i32 %1200, %1204
  %1206 = getelementptr inbounds i8, ptr %.18391842, i64 5
  %1207 = load i8, ptr %1206, align 1, !tbaa !24
  %1208 = zext i8 %1207 to i32
  %1209 = add i32 %1204, %1208
  %1210 = add i32 %1205, %1209
  %1211 = getelementptr inbounds i8, ptr %.18391842, i64 6
  %1212 = load i8, ptr %1211, align 1, !tbaa !24
  %1213 = zext i8 %1212 to i32
  %1214 = add i32 %1209, %1213
  %1215 = add i32 %1210, %1214
  %1216 = getelementptr inbounds i8, ptr %.18391842, i64 7
  %1217 = load i8, ptr %1216, align 1, !tbaa !24
  %1218 = zext i8 %1217 to i32
  %1219 = add i32 %1214, %1218
  %1220 = add i32 %1215, %1219
  %1221 = add nuw i32 %.08351843, 8
  %1222 = getelementptr inbounds i8, ptr %.18391842, i64 8
  %1223 = or disjoint i32 %1221, 7
  %1224 = icmp ult i32 %1223, %1170
  br i1 %1224, label %.lr.ph1846, label %.preheader, !llvm.loop !94

.lr.ph1855:                                       ; preds = %.lr.ph1855.prol.loopexit, %.lr.ph1855
  %indvars.iv1933 = phi i64 [ %indvars.iv.next1934.3, %.lr.ph1855 ], [ %indvars.iv1933.unr, %.lr.ph1855.prol.loopexit ]
  %.21854 = phi i32 [ %1244, %.lr.ph1855 ], [ %.21854.unr, %.lr.ph1855.prol.loopexit ]
  %.28341853 = phi i32 [ %1243, %.lr.ph1855 ], [ %.28341853.unr, %.lr.ph1855.prol.loopexit ]
  %.28401851 = phi ptr [ %1240, %.lr.ph1855 ], [ %.28401851.unr, %.lr.ph1855.prol.loopexit ]
  %1225 = getelementptr inbounds i8, ptr %.28401851, i64 1
  %1226 = load i8, ptr %.28401851, align 1, !tbaa !24
  %1227 = zext i8 %1226 to i32
  %1228 = add i32 %.28341853, %1227
  %1229 = add i32 %1228, %.21854
  %1230 = getelementptr inbounds i8, ptr %.28401851, i64 2
  %1231 = load i8, ptr %1225, align 1, !tbaa !24
  %1232 = zext i8 %1231 to i32
  %1233 = add i32 %1228, %1232
  %1234 = add i32 %1233, %1229
  %1235 = getelementptr inbounds i8, ptr %.28401851, i64 3
  %1236 = load i8, ptr %1230, align 1, !tbaa !24
  %1237 = zext i8 %1236 to i32
  %1238 = add i32 %1233, %1237
  %1239 = add i32 %1238, %1234
  %1240 = getelementptr inbounds i8, ptr %.28401851, i64 4
  %1241 = load i8, ptr %1235, align 1, !tbaa !24
  %1242 = zext i8 %1241 to i32
  %1243 = add i32 %1238, %1242
  %1244 = add i32 %1243, %1239
  %indvars.iv.next1934.3 = add nuw nsw i64 %indvars.iv1933, 4
  %exitcond1937.not.3 = icmp eq i64 %indvars.iv.next1934.3, %.01865
  br i1 %exitcond1937.not.3, label %._crit_edge1856.loopexit, label %.lr.ph1855, !llvm.loop !95

._crit_edge1856.loopexit:                         ; preds = %.lr.ph1855, %.lr.ph1855.prol.loopexit
  %.lcssa2078 = phi i32 [ %.lcssa2078.unr, %.lr.ph1855.prol.loopexit ], [ %1243, %.lr.ph1855 ]
  %.lcssa2077 = phi i32 [ %.lcssa2077.unr, %.lr.ph1855.prol.loopexit ], [ %1244, %.lr.ph1855 ]
  %scevgep1935 = getelementptr i8, ptr %.1839.lcssa, i64 %1173
  br label %._crit_edge1856

._crit_edge1856:                                  ; preds = %._crit_edge1856.loopexit, %.preheader
  %.2840.lcssa = phi ptr [ %.1839.lcssa, %.preheader ], [ %scevgep1935, %._crit_edge1856.loopexit ]
  %.2834.lcssa = phi i32 [ %.1833.lcssa, %.preheader ], [ %.lcssa2078, %._crit_edge1856.loopexit ]
  %.2.lcssa = phi i32 [ %.1.lcssa, %.preheader ], [ %.lcssa2077, %._crit_edge1856.loopexit ]
  %1245 = urem i32 %.2834.lcssa, 65521
  %1246 = urem i32 %.2.lcssa, 65521
  %1247 = sub i64 %.08371862, %.01865
  %.not1640 = icmp eq i64 %1247, 0
  br i1 %.not1640, label %._crit_edge1866, label %.preheader1747, !llvm.loop !96

._crit_edge1866:                                  ; preds = %._crit_edge1856, %1163
  %.0832.lcssa = phi i32 [ %1166, %1163 ], [ %1245, %._crit_edge1856 ]
  %.0831.lcssa = phi i32 [ %1167, %1163 ], [ %1246, %._crit_edge1856 ]
  %1248 = shl nuw i32 %.0831.lcssa, 16
  %1249 = or disjoint i32 %1248, %.0832.lcssa
  store i32 %1249, ptr %1164, align 4, !tbaa !22
  %1250 = icmp eq i32 %.08431704, 0
  br i1 %1250, label %1251, label %1256

1251:                                             ; preds = %._crit_edge1866
  %1252 = and i32 %6, 1
  %.not1641 = icmp eq i32 %1252, 0
  br i1 %.not1641, label %1256, label %1253

1253:                                             ; preds = %1251
  %1254 = getelementptr inbounds i8, ptr %0, i64 16
  %1255 = load i32, ptr %1254, align 8, !tbaa !23
  %.not1642 = icmp eq i32 %1249, %1255
  %spec.select = select i1 %.not1642, i32 0, i32 -2
  br label %1256

1256:                                             ; preds = %1253, %.thread1687, %1251, %._crit_edge1866, %25
  %.0841 = phi i32 [ -3, %25 ], [ %.08431704, %.thread1687 ], [ 0, %1251 ], [ %.08431704, %._crit_edge1866 ], [ %spec.select, %1253 ]
  ret i32 %.0841
}

; Function Attrs: mustprogress 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) #2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umin.i64(i64, i64) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #4

attributes #0 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 4}
!10 = !{!"tinfl_decompressor_tag", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !7, i64 44, !6, i64 56, !6, i64 64, !7, i64 72, !7, i64 10536, !7, i64 10540}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !6, i64 56}
!13 = !{!10, !11, i64 32}
!14 = !{!10, !11, i64 36}
!15 = !{!10, !11, i64 40}
!16 = !{!10, !6, i64 64}
!17 = !{!10, !11, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = !{!10, !11, i64 12}
!21 = !{!10, !11, i64 8}
!22 = !{!10, !11, i64 28}
!23 = !{!10, !11, i64 16}
!24 = !{!7, !7, i64 0}
!25 = distinct !{!25, !19}
!26 = distinct !{!26, !19}
!27 = distinct !{!27, !19}
!28 = !{!10, !11, i64 20}
!29 = !{!10, !11, i64 24}
!30 = distinct !{!30, !19}
!31 = distinct !{!31, !19}
!32 = distinct !{!32, !19}
!33 = distinct !{!33, !19}
!34 = distinct !{!34, !19}
!35 = distinct !{!35, !19}
!36 = distinct !{!36, !19}
!37 = distinct !{!37, !19}
!38 = distinct !{!38, !19}
!39 = distinct !{!39, !19}
!40 = distinct !{!40, !19}
!41 = !{!11, !11, i64 0}
!42 = distinct !{!42, !19}
!43 = distinct !{!43, !19}
!44 = distinct !{!44, !19}
!45 = distinct !{!45, !19}
!46 = distinct !{!46, !19}
!47 = distinct !{!47, !19}
!48 = distinct !{!48, !19}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.unroll.disable"}
!51 = distinct !{!51, !19}
!52 = distinct !{!52, !50}
!53 = !{!54, !54, i64 0}
!54 = !{!"short", !7, i64 0}
!55 = distinct !{!55, !19, !56}
!56 = !{!"llvm.loop.isvectorized", i32 1}
!57 = distinct !{!57, !19}
!58 = distinct !{!58, !19}
!59 = distinct !{!59, !19}
!60 = distinct !{!60, !19}
!61 = distinct !{!61, !19}
!62 = distinct !{!62, !19}
!63 = distinct !{!63, !19}
!64 = distinct !{!64, !19}
!65 = distinct !{!65, !19}
!66 = distinct !{!66, !19}
!67 = distinct !{!67, !19}
!68 = distinct !{!68, !19}
!69 = distinct !{!69, !19}
!70 = distinct !{!70, !19}
!71 = distinct !{!71, !19}
!72 = distinct !{!72, !19}
!73 = distinct !{!73, !19}
!74 = distinct !{!74, !19}
!75 = distinct !{!75, !19}
!76 = distinct !{!76, !19}
!77 = distinct !{!77, !19}
!78 = distinct !{!78, !19}
!79 = distinct !{!79, !19}
!80 = distinct !{!80, !19}
!81 = distinct !{!81, !19}
!82 = distinct !{!82, !19}
!83 = distinct !{!83, !19}
!84 = distinct !{!84, !19, !56, !85}
!85 = !{!"llvm.loop.unroll.runtime.disable"}
!86 = distinct !{!86, !19, !56}
!87 = distinct !{!87, !19}
!88 = distinct !{!88, !19}
!89 = distinct !{!89, !19}
!90 = distinct !{!90, !19}
!91 = distinct !{!91, !19}
!92 = distinct !{!92, !19}
!93 = distinct !{!93, !50}
!94 = distinct !{!94, !19}
!95 = distinct !{!95, !19}
!96 = distinct !{!96, !19}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass