; LLVM IR from kuba--/zip :: src (zip)

; 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 [1024 x i16]], [576 x i16], [64 x i16], [38 x i16], [288 x i8], [32 x i8], [19 x i8], [4 x i8], [457 x i8] }

@.str.12 = external hidden unnamed_addr constant [56 x i8], align 1
@tinfl_decompress.s_length_base = external hidden constant [31 x i16], align 16
@tinfl_decompress.s_length_extra = external hidden constant [31 x i8], align 16
@tinfl_decompress.s_dist_base = external hidden constant [32 x i16], align 16
@tinfl_decompress.s_dist_extra = external hidden constant [32 x i8], 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 i16], align 2
@.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 [3 x ptr], align 16
  %17 = alloca [3 x ptr], align 16
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i64, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i64, align 8
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca [17 x i32], align 16
  %52 = alloca [16 x i32], align 16
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i16, align 2
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %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 i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca ptr, align 8
  %80 = alloca i64, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = 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 24, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  store i32 -1, ptr %18, align 4, !tbaa !9
  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 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %85 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %85, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  %86 = load ptr, ptr %10, align 8, !tbaa !5
  %87 = load ptr, ptr %11, align 8, !tbaa !5
  %88 = load i64, ptr %87, align 8, !tbaa !11
  %89 = getelementptr inbounds i8, ptr %86, i64 %88
  store ptr %89, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %90 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %90, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %91 = load ptr, ptr %13, align 8, !tbaa !5
  %92 = icmp ne ptr %91, null
  br i1 %92, label %93, label %98

93:                                               ; preds = %7
  %94 = load ptr, ptr %13, align 8, !tbaa !5
  %95 = load ptr, ptr %14, align 8, !tbaa !5
  %96 = load i64, ptr %95, align 8, !tbaa !11
  %97 = getelementptr inbounds i8, ptr %94, i64 %96
  br label %99

98:                                               ; preds = %7
  br label %99

99:                                               ; preds = %98, %93
  %100 = phi ptr [ %97, %93 ], [ null, %98 ]
  store ptr %100, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %101 = load i32, ptr %15, align 4, !tbaa !9
  %102 = and i32 %101, 4
  %103 = icmp ne i32 %102, 0
  br i1 %103, label %104, label %105

104:                                              ; preds = %99
  br label %115

105:                                              ; preds = %99
  %106 = load ptr, ptr %13, align 8, !tbaa !5
  %107 = load ptr, ptr %12, align 8, !tbaa !5
  %108 = ptrtoint ptr %106 to i64
  %109 = ptrtoint ptr %107 to i64
  %110 = sub i64 %108, %109
  %111 = load ptr, ptr %14, align 8, !tbaa !5
  %112 = load i64, ptr %111, align 8, !tbaa !11
  %113 = add i64 %110, %112
  %114 = sub i64 %113, 1
  br label %115

115:                                              ; preds = %105, %104
  %116 = phi i64 [ -1, %104 ], [ %114, %105 ]
  store i64 %116, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  %117 = load i64, ptr %28, align 8, !tbaa !11
  %118 = add i64 %117, 1
  %119 = load i64, ptr %28, align 8, !tbaa !11
  %120 = and i64 %118, %119
  %121 = icmp ne i64 %120, 0
  br i1 %121, label %126, label %122

122:                                              ; preds = %115
  %123 = load ptr, ptr %13, align 8, !tbaa !5
  %124 = load ptr, ptr %12, align 8, !tbaa !5
  %125 = icmp ult ptr %123, %124
  br i1 %125, label %126, label %129

126:                                              ; preds = %122, %115
  %127 = load ptr, ptr %14, align 8, !tbaa !5
  store i64 0, ptr %127, align 8, !tbaa !11
  %128 = load ptr, ptr %11, align 8, !tbaa !5
  store i64 0, ptr %128, align 8, !tbaa !11
  store i32 -3, ptr %8, align 4
  store i32 1, ptr %30, align 4
  br label %2927

129:                                              ; preds = %122
  %130 = load ptr, ptr %9, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %130, i32 0, i32 15
  %132 = getelementptr inbounds [576 x i16], ptr %131, i64 0, i64 0
  %133 = getelementptr inbounds [3 x ptr], ptr %16, i64 0, i64 0
  store ptr %132, ptr %133, align 16, !tbaa !5
  %134 = load ptr, ptr %9, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %134, i32 0, i32 16
  %136 = getelementptr inbounds [64 x i16], ptr %135, i64 0, i64 0
  %137 = getelementptr inbounds [3 x ptr], ptr %16, i64 0, i64 1
  store ptr %136, ptr %137, align 8, !tbaa !5
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %138, i32 0, i32 17
  %140 = getelementptr inbounds [38 x i16], ptr %139, i64 0, i64 0
  %141 = getelementptr inbounds [3 x ptr], ptr %16, i64 0, i64 2
  store ptr %140, ptr %141, align 16, !tbaa !5
  %142 = load ptr, ptr %9, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %142, i32 0, i32 18
  %144 = getelementptr inbounds [288 x i8], ptr %143, i64 0, i64 0
  %145 = getelementptr inbounds [3 x ptr], ptr %17, i64 0, i64 0
  store ptr %144, ptr %145, align 16, !tbaa !5
  %146 = load ptr, ptr %9, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %146, i32 0, i32 19
  %148 = getelementptr inbounds [32 x i8], ptr %147, i64 0, i64 0
  %149 = getelementptr inbounds [3 x ptr], ptr %17, i64 0, i64 1
  store ptr %148, ptr %149, align 8, !tbaa !5
  %150 = load ptr, ptr %9, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %150, i32 0, i32 20
  %152 = getelementptr inbounds [19 x i8], ptr %151, i64 0, i64 0
  %153 = getelementptr inbounds [3 x ptr], ptr %17, i64 0, i64 2
  store ptr %152, ptr %153, align 16, !tbaa !5
  %154 = load ptr, ptr %9, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %154, i32 0, i32 1
  %156 = load i32, ptr %155, align 4, !tbaa !13
  store i32 %156, ptr %19, align 4, !tbaa !9
  %157 = load ptr, ptr %9, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %157, i32 0, i32 12
  %159 = load i64, ptr %158, align 8, !tbaa !15
  store i64 %159, ptr %23, align 8, !tbaa !11
  %160 = load ptr, ptr %9, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %160, i32 0, i32 8
  %162 = load i32, ptr %161, align 8, !tbaa !16
  store i32 %162, ptr %20, align 4, !tbaa !9
  %163 = load ptr, ptr %9, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %163, i32 0, i32 9
  %165 = load i32, ptr %164, align 4, !tbaa !17
  store i32 %165, ptr %21, align 4, !tbaa !9
  %166 = load ptr, ptr %9, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %166, i32 0, i32 10
  %168 = load i32, ptr %167, align 8, !tbaa !18
  store i32 %168, ptr %22, align 4, !tbaa !9
  %169 = load ptr, ptr %9, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %169, i32 0, i32 13
  %171 = load i64, ptr %170, align 8, !tbaa !19
  store i64 %171, ptr %29, align 8, !tbaa !11
  %172 = load ptr, ptr %9, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %172, i32 0, i32 0
  %174 = load i32, ptr %173, align 8, !tbaa !20
  switch i32 %174, label %2708 [
    i32 0, label %175
    i32 1, label %202
    i32 2, label %228
    i32 36, label %301
    i32 3, label %328
    i32 5, label %395
    i32 6, label %458
    i32 7, label %511
    i32 39, label %562
    i32 51, label %596
    i32 52, label %637
    i32 9, label %660
    i32 38, label %677
    i32 10, label %765
    i32 11, label %857
    i32 14, label %965
    i32 35, label %1108
    i32 16, label %1368
    i32 17, label %1485
    i32 18, label %1517
    i32 21, label %1610
    i32 23, label %1751
    i32 24, label %1857
    i32 40, label %2001
    i32 25, label %2067
    i32 26, label %2196
    i32 27, label %2323
    i32 37, label %2393
    i32 53, label %2435
    i32 32, label %2533
    i32 41, label %2626
    i32 42, label %2674
    i32 34, label %2703
  ]

175:                                              ; preds = %129
  %176 = load ptr, ptr %9, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %176, i32 0, i32 3
  store i32 0, ptr %177, align 4, !tbaa !21
  %178 = load ptr, ptr %9, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %178, i32 0, i32 2
  store i32 0, ptr %179, align 8, !tbaa !22
  store i32 0, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  store i64 0, ptr %23, align 8, !tbaa !11
  %180 = load ptr, ptr %9, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %180, i32 0, i32 7
  store i32 1, ptr %181, align 4, !tbaa !23
  %182 = load ptr, ptr %9, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %182, i32 0, i32 4
  store i32 1, ptr %183, align 8, !tbaa !24
  %184 = load i32, ptr %15, align 4, !tbaa !9
  %185 = and i32 %184, 1
  %186 = icmp ne i32 %185, 0
  br i1 %186, label %187, label %307

187:                                              ; preds = %175
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %204, %188
  %190 = load ptr, ptr %24, align 8, !tbaa !5
  %191 = load ptr, ptr %25, align 8, !tbaa !5
  %192 = icmp uge ptr %190, %191
  br i1 %192, label %193, label %205

193:                                              ; preds = %189
  br label %194

194:                                              ; preds = %193
  %195 = load i32, ptr %15, align 4, !tbaa !9
  %196 = and i32 %195, 2
  %197 = icmp ne i32 %196, 0
  %198 = zext i1 %197 to i64
  %199 = select i1 %197, i32 1, i32 -4
  store i32 %199, ptr %18, align 4, !tbaa !9
  %200 = load ptr, ptr %9, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %200, i32 0, i32 0
  store i32 1, ptr %201, align 8, !tbaa !20
  br label %2709

202:                                              ; preds = %129
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  br label %189, !llvm.loop !25

205:                                              ; preds = %189
  %206 = load ptr, ptr %24, align 8, !tbaa !5
  %207 = getelementptr inbounds i8, ptr %206, i32 1
  store ptr %207, ptr %24, align 8, !tbaa !5
  %208 = load i8, ptr %206, align 1, !tbaa !27
  %209 = zext i8 %208 to i32
  %210 = load ptr, ptr %9, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %210, i32 0, i32 2
  store i32 %209, ptr %211, align 8, !tbaa !22
  br label %212

212:                                              ; preds = %205
  br label %213

213:                                              ; preds = %212
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %230, %214
  %216 = load ptr, ptr %24, align 8, !tbaa !5
  %217 = load ptr, ptr %25, align 8, !tbaa !5
  %218 = icmp uge ptr %216, %217
  br i1 %218, label %219, label %231

219:                                              ; preds = %215
  br label %220

220:                                              ; preds = %219
  %221 = load i32, ptr %15, align 4, !tbaa !9
  %222 = and i32 %221, 2
  %223 = icmp ne i32 %222, 0
  %224 = zext i1 %223 to i64
  %225 = select i1 %223, i32 1, i32 -4
  store i32 %225, ptr %18, align 4, !tbaa !9
  %226 = load ptr, ptr %9, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %226, i32 0, i32 0
  store i32 2, ptr %227, align 8, !tbaa !20
  br label %2709

228:                                              ; preds = %129
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  br label %215, !llvm.loop !28

231:                                              ; preds = %215
  %232 = load ptr, ptr %24, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %232, i32 1
  store ptr %233, ptr %24, align 8, !tbaa !5
  %234 = load i8, ptr %232, align 1, !tbaa !27
  %235 = zext i8 %234 to i32
  %236 = load ptr, ptr %9, align 8, !tbaa !5
  %237 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %236, i32 0, i32 3
  store i32 %235, ptr %237, align 4, !tbaa !21
  br label %238

238:                                              ; preds = %231
  br label %239

239:                                              ; preds = %238
  %240 = load ptr, ptr %9, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %240, i32 0, i32 2
  %242 = load i32, ptr %241, align 8, !tbaa !22
  %243 = mul i32 %242, 256
  %244 = load ptr, ptr %9, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %244, i32 0, i32 3
  %246 = load i32, ptr %245, align 4, !tbaa !21
  %247 = add i32 %243, %246
  %248 = urem i32 %247, 31
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %262, label %250

250:                                              ; preds = %239
  %251 = load ptr, ptr %9, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %251, i32 0, i32 3
  %253 = load i32, ptr %252, align 4, !tbaa !21
  %254 = and i32 %253, 32
  %255 = icmp ne i32 %254, 0
  br i1 %255, label %262, label %256

256:                                              ; preds = %250
  %257 = load ptr, ptr %9, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %257, i32 0, i32 2
  %259 = load i32, ptr %258, align 8, !tbaa !22
  %260 = and i32 %259, 15
  %261 = icmp ne i32 %260, 8
  br label %262

262:                                              ; preds = %256, %250, %239
  %263 = phi i1 [ true, %250 ], [ true, %239 ], [ %261, %256 ]
  %264 = zext i1 %263 to i32
  store i32 %264, ptr %21, align 4, !tbaa !9
  %265 = load i32, ptr %15, align 4, !tbaa !9
  %266 = and i32 %265, 4
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %292, label %268

268:                                              ; preds = %262
  %269 = load ptr, ptr %9, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %269, i32 0, i32 2
  %271 = load i32, ptr %270, align 8, !tbaa !22
  %272 = lshr i32 %271, 4
  %273 = add i32 8, %272
  %274 = shl i32 1, %273
  %275 = icmp ugt i32 %274, 32768
  br i1 %275, label %287, label %276

276:                                              ; preds = %268
  %277 = load i64, ptr %28, align 8, !tbaa !11
  %278 = add i64 %277, 1
  %279 = load ptr, ptr %9, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %279, i32 0, i32 2
  %281 = load i32, ptr %280, align 8, !tbaa !22
  %282 = lshr i32 %281, 4
  %283 = add i32 8, %282
  %284 = zext i32 %283 to i64
  %285 = shl i64 1, %284
  %286 = icmp ult i64 %278, %285
  br label %287

287:                                              ; preds = %276, %268
  %288 = phi i1 [ true, %268 ], [ %286, %276 ]
  %289 = zext i1 %288 to i32
  %290 = load i32, ptr %21, align 4, !tbaa !9
  %291 = or i32 %290, %289
  store i32 %291, ptr %21, align 4, !tbaa !9
  br label %292

292:                                              ; preds = %287, %262
  %293 = load i32, ptr %21, align 4, !tbaa !9
  %294 = icmp ne i32 %293, 0
  br i1 %294, label %295, label %306

295:                                              ; preds = %292
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %303, %296
  br label %298

298:                                              ; preds = %297
  store i32 -1, ptr %18, align 4, !tbaa !9
  %299 = load ptr, ptr %9, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %299, i32 0, i32 0
  store i32 36, ptr %300, align 8, !tbaa !20
  br label %2709

301:                                              ; preds = %129
  br label %302

302:                                              ; preds = %301
  br label %303

303:                                              ; preds = %302
  br label %297

304:                                              ; No predecessors!
  br label %305

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305, %292
  br label %307

307:                                              ; preds = %306, %175
  br label %308

308:                                              ; preds = %2504, %307
  br label %309

309:                                              ; preds = %308
  %310 = load i32, ptr %19, align 4, !tbaa !9
  %311 = icmp ult i32 %310, 3
  br i1 %311, label %312, label %351

312:                                              ; preds = %309
  br label %313

313:                                              ; preds = %347, %312
  br label %314

314:                                              ; preds = %313
  br label %315

315:                                              ; preds = %330, %314
  %316 = load ptr, ptr %24, align 8, !tbaa !5
  %317 = load ptr, ptr %25, align 8, !tbaa !5
  %318 = icmp uge ptr %316, %317
  br i1 %318, label %319, label %331

319:                                              ; preds = %315
  br label %320

320:                                              ; preds = %319
  %321 = load i32, ptr %15, align 4, !tbaa !9
  %322 = and i32 %321, 2
  %323 = icmp ne i32 %322, 0
  %324 = zext i1 %323 to i64
  %325 = select i1 %323, i32 1, i32 -4
  store i32 %325, ptr %18, align 4, !tbaa !9
  %326 = load ptr, ptr %9, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %326, i32 0, i32 0
  store i32 3, ptr %327, align 8, !tbaa !20
  br label %2709

328:                                              ; preds = %129
  br label %329

329:                                              ; preds = %328
  br label %330

330:                                              ; preds = %329
  br label %315, !llvm.loop !29

331:                                              ; preds = %315
  %332 = load ptr, ptr %24, align 8, !tbaa !5
  %333 = getelementptr inbounds i8, ptr %332, i32 1
  store ptr %333, ptr %24, align 8, !tbaa !5
  %334 = load i8, ptr %332, align 1, !tbaa !27
  %335 = zext i8 %334 to i32
  store i32 %335, ptr %31, align 4, !tbaa !9
  br label %336

336:                                              ; preds = %331
  br label %337

337:                                              ; preds = %336
  %338 = load i32, ptr %31, align 4, !tbaa !9
  %339 = zext i32 %338 to i64
  %340 = load i32, ptr %19, align 4, !tbaa !9
  %341 = zext i32 %340 to i64
  %342 = shl i64 %339, %341
  %343 = load i64, ptr %23, align 8, !tbaa !11
  %344 = or i64 %343, %342
  store i64 %344, ptr %23, align 8, !tbaa !11
  %345 = load i32, ptr %19, align 4, !tbaa !9
  %346 = add i32 %345, 8
  store i32 %346, ptr %19, align 4, !tbaa !9
  br label %347

347:                                              ; preds = %337
  %348 = load i32, ptr %19, align 4, !tbaa !9
  %349 = icmp ult i32 %348, 3
  br i1 %349, label %313, label %350, !llvm.loop !30

350:                                              ; preds = %347
  br label %351

351:                                              ; preds = %350, %309
  %352 = load i64, ptr %23, align 8, !tbaa !11
  %353 = and i64 %352, 7
  %354 = trunc i64 %353 to i32
  %355 = load ptr, ptr %9, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %355, i32 0, i32 5
  store i32 %354, ptr %356, align 4, !tbaa !31
  %357 = load i64, ptr %23, align 8, !tbaa !11
  %358 = lshr i64 %357, 3
  store i64 %358, ptr %23, align 8, !tbaa !11
  %359 = load i32, ptr %19, align 4, !tbaa !9
  %360 = sub i32 %359, 3
  store i32 %360, ptr %19, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %351
  br label %362

362:                                              ; preds = %361
  %363 = load ptr, ptr %9, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %363, i32 0, i32 5
  %365 = load i32, ptr %364, align 4, !tbaa !31
  %366 = lshr i32 %365, 1
  %367 = load ptr, ptr %9, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %367, i32 0, i32 6
  store i32 %366, ptr %368, align 8, !tbaa !32
  %369 = load ptr, ptr %9, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %369, i32 0, i32 6
  %371 = load i32, ptr %370, align 8, !tbaa !32
  %372 = icmp eq i32 %371, 0
  br i1 %372, label %373, label %754

373:                                              ; preds = %362
  br label %374

374:                                              ; preds = %373
  %375 = load i32, ptr %19, align 4, !tbaa !9
  %376 = load i32, ptr %19, align 4, !tbaa !9
  %377 = and i32 %376, 7
  %378 = icmp ult i32 %375, %377
  br i1 %378, label %379, label %420

379:                                              ; preds = %374
  br label %380

380:                                              ; preds = %414, %379
  br label %381

381:                                              ; preds = %380
  br label %382

382:                                              ; preds = %397, %381
  %383 = load ptr, ptr %24, align 8, !tbaa !5
  %384 = load ptr, ptr %25, align 8, !tbaa !5
  %385 = icmp uge ptr %383, %384
  br i1 %385, label %386, label %398

386:                                              ; preds = %382
  br label %387

387:                                              ; preds = %386
  %388 = load i32, ptr %15, align 4, !tbaa !9
  %389 = and i32 %388, 2
  %390 = icmp ne i32 %389, 0
  %391 = zext i1 %390 to i64
  %392 = select i1 %390, i32 1, i32 -4
  store i32 %392, ptr %18, align 4, !tbaa !9
  %393 = load ptr, ptr %9, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %393, i32 0, i32 0
  store i32 5, ptr %394, align 8, !tbaa !20
  br label %2709

395:                                              ; preds = %129
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396
  br label %382, !llvm.loop !33

398:                                              ; preds = %382
  %399 = load ptr, ptr %24, align 8, !tbaa !5
  %400 = getelementptr inbounds i8, ptr %399, i32 1
  store ptr %400, ptr %24, align 8, !tbaa !5
  %401 = load i8, ptr %399, align 1, !tbaa !27
  %402 = zext i8 %401 to i32
  store i32 %402, ptr %32, align 4, !tbaa !9
  br label %403

403:                                              ; preds = %398
  br label %404

404:                                              ; preds = %403
  %405 = load i32, ptr %32, align 4, !tbaa !9
  %406 = zext i32 %405 to i64
  %407 = load i32, ptr %19, align 4, !tbaa !9
  %408 = zext i32 %407 to i64
  %409 = shl i64 %406, %408
  %410 = load i64, ptr %23, align 8, !tbaa !11
  %411 = or i64 %410, %409
  store i64 %411, ptr %23, align 8, !tbaa !11
  %412 = load i32, ptr %19, align 4, !tbaa !9
  %413 = add i32 %412, 8
  store i32 %413, ptr %19, align 4, !tbaa !9
  br label %414

414:                                              ; preds = %404
  %415 = load i32, ptr %19, align 4, !tbaa !9
  %416 = load i32, ptr %19, align 4, !tbaa !9
  %417 = and i32 %416, 7
  %418 = icmp ult i32 %415, %417
  br i1 %418, label %380, label %419, !llvm.loop !34

419:                                              ; preds = %414
  br label %420

420:                                              ; preds = %419, %374
  %421 = load i32, ptr %19, align 4, !tbaa !9
  %422 = and i32 %421, 7
  %423 = load i64, ptr %23, align 8, !tbaa !11
  %424 = zext i32 %422 to i64
  %425 = lshr i64 %423, %424
  store i64 %425, ptr %23, align 8, !tbaa !11
  %426 = load i32, ptr %19, align 4, !tbaa !9
  %427 = and i32 %426, 7
  %428 = load i32, ptr %19, align 4, !tbaa !9
  %429 = sub i32 %428, %427
  store i32 %429, ptr %19, align 4, !tbaa !9
  br label %430

430:                                              ; preds = %420
  br label %431

431:                                              ; preds = %430
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %432

432:                                              ; preds = %526, %431
  %433 = load i32, ptr %21, align 4, !tbaa !9
  %434 = icmp ult i32 %433, 4
  br i1 %434, label %435, label %529

435:                                              ; preds = %432
  %436 = load i32, ptr %19, align 4, !tbaa !9
  %437 = icmp ne i32 %436, 0
  br i1 %437, label %438, label %496

438:                                              ; preds = %435
  br label %439

439:                                              ; preds = %438
  %440 = load i32, ptr %19, align 4, !tbaa !9
  %441 = icmp ult i32 %440, 8
  br i1 %441, label %442, label %481

442:                                              ; preds = %439
  br label %443

443:                                              ; preds = %477, %442
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %460, %444
  %446 = load ptr, ptr %24, align 8, !tbaa !5
  %447 = load ptr, ptr %25, align 8, !tbaa !5
  %448 = icmp uge ptr %446, %447
  br i1 %448, label %449, label %461

449:                                              ; preds = %445
  br label %450

450:                                              ; preds = %449
  %451 = load i32, ptr %15, align 4, !tbaa !9
  %452 = and i32 %451, 2
  %453 = icmp ne i32 %452, 0
  %454 = zext i1 %453 to i64
  %455 = select i1 %453, i32 1, i32 -4
  store i32 %455, ptr %18, align 4, !tbaa !9
  %456 = load ptr, ptr %9, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %456, i32 0, i32 0
  store i32 6, ptr %457, align 8, !tbaa !20
  br label %2709

458:                                              ; preds = %129
  br label %459

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459
  br label %445, !llvm.loop !35

461:                                              ; preds = %445
  %462 = load ptr, ptr %24, align 8, !tbaa !5
  %463 = getelementptr inbounds i8, ptr %462, i32 1
  store ptr %463, ptr %24, align 8, !tbaa !5
  %464 = load i8, ptr %462, align 1, !tbaa !27
  %465 = zext i8 %464 to i32
  store i32 %465, ptr %33, align 4, !tbaa !9
  br label %466

466:                                              ; preds = %461
  br label %467

467:                                              ; preds = %466
  %468 = load i32, ptr %33, align 4, !tbaa !9
  %469 = zext i32 %468 to i64
  %470 = load i32, ptr %19, align 4, !tbaa !9
  %471 = zext i32 %470 to i64
  %472 = shl i64 %469, %471
  %473 = load i64, ptr %23, align 8, !tbaa !11
  %474 = or i64 %473, %472
  store i64 %474, ptr %23, align 8, !tbaa !11
  %475 = load i32, ptr %19, align 4, !tbaa !9
  %476 = add i32 %475, 8
  store i32 %476, ptr %19, align 4, !tbaa !9
  br label %477

477:                                              ; preds = %467
  %478 = load i32, ptr %19, align 4, !tbaa !9
  %479 = icmp ult i32 %478, 8
  br i1 %479, label %443, label %480, !llvm.loop !36

480:                                              ; preds = %477
  br label %481

481:                                              ; preds = %480, %439
  %482 = load i64, ptr %23, align 8, !tbaa !11
  %483 = and i64 %482, 255
  %484 = trunc i64 %483 to i8
  %485 = load ptr, ptr %9, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %485, i32 0, i32 21
  %487 = load i32, ptr %21, 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
  %490 = load i64, ptr %23, align 8, !tbaa !11
  %491 = lshr i64 %490, 8
  store i64 %491, ptr %23, align 8, !tbaa !11
  %492 = load i32, ptr %19, align 4, !tbaa !9
  %493 = sub i32 %492, 8
  store i32 %493, ptr %19, align 4, !tbaa !9
  br label %494

494:                                              ; preds = %481
  br label %495

495:                                              ; preds = %494
  br label %525

496:                                              ; preds = %435
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %513, %497
  %499 = load ptr, ptr %24, align 8, !tbaa !5
  %500 = load ptr, ptr %25, align 8, !tbaa !5
  %501 = icmp uge ptr %499, %500
  br i1 %501, label %502, label %514

502:                                              ; preds = %498
  br label %503

503:                                              ; preds = %502
  %504 = load i32, ptr %15, align 4, !tbaa !9
  %505 = and i32 %504, 2
  %506 = icmp ne i32 %505, 0
  %507 = zext i1 %506 to i64
  %508 = select i1 %506, i32 1, i32 -4
  store i32 %508, ptr %18, 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 0
  store i32 7, ptr %510, align 8, !tbaa !20
  br label %2709

511:                                              ; preds = %129
  br label %512

512:                                              ; preds = %511
  br label %513

513:                                              ; preds = %512
  br label %498, !llvm.loop !37

514:                                              ; preds = %498
  %515 = load ptr, ptr %24, align 8, !tbaa !5
  %516 = getelementptr inbounds i8, ptr %515, i32 1
  store ptr %516, ptr %24, align 8, !tbaa !5
  %517 = load i8, ptr %515, align 1, !tbaa !27
  %518 = load ptr, ptr %9, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %518, i32 0, i32 21
  %520 = load i32, ptr %21, align 4, !tbaa !9
  %521 = zext i32 %520 to i64
  %522 = getelementptr inbounds [4 x i8], ptr %519, i64 0, i64 %521
  store i8 %517, ptr %522, align 1, !tbaa !27
  br label %523

523:                                              ; preds = %514
  br label %524

524:                                              ; preds = %523
  br label %525

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

526:                                              ; preds = %525
  %527 = load i32, ptr %21, align 4, !tbaa !9
  %528 = add i32 %527, 1
  store i32 %528, ptr %21, align 4, !tbaa !9
  br label %432, !llvm.loop !38

529:                                              ; preds = %432
  %530 = load ptr, ptr %9, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %530, i32 0, i32 21
  %532 = getelementptr inbounds [4 x i8], ptr %531, i64 0, i64 0
  %533 = load i8, ptr %532, align 1, !tbaa !27
  %534 = zext i8 %533 to i32
  %535 = load ptr, ptr %9, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %535, i32 0, i32 21
  %537 = getelementptr inbounds [4 x i8], ptr %536, i64 0, i64 1
  %538 = load i8, ptr %537, align 1, !tbaa !27
  %539 = zext i8 %538 to i32
  %540 = shl i32 %539, 8
  %541 = or i32 %534, %540
  store i32 %541, ptr %21, align 4, !tbaa !9
  %542 = load ptr, ptr %9, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %542, i32 0, i32 21
  %544 = getelementptr inbounds [4 x i8], ptr %543, i64 0, i64 2
  %545 = load i8, ptr %544, align 1, !tbaa !27
  %546 = zext i8 %545 to i32
  %547 = load ptr, ptr %9, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %547, i32 0, i32 21
  %549 = getelementptr inbounds [4 x i8], ptr %548, i64 0, i64 3
  %550 = load i8, ptr %549, align 1, !tbaa !27
  %551 = zext i8 %550 to i32
  %552 = shl i32 %551, 8
  %553 = or i32 %546, %552
  %554 = xor i32 65535, %553
  %555 = icmp ne i32 %541, %554
  br i1 %555, label %556, label %567

556:                                              ; preds = %529
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %564, %557
  br label %559

559:                                              ; preds = %558
  store i32 -1, ptr %18, align 4, !tbaa !9
  %560 = load ptr, ptr %9, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %560, i32 0, i32 0
  store i32 39, ptr %561, align 8, !tbaa !20
  br label %2709

562:                                              ; preds = %129
  br label %563

563:                                              ; preds = %562
  br label %564

564:                                              ; preds = %563
  br label %558

565:                                              ; No predecessors!
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566, %529
  br label %568

568:                                              ; preds = %640, %567
  %569 = load i32, ptr %21, align 4, !tbaa !9
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %574

571:                                              ; preds = %568
  %572 = load i32, ptr %19, align 4, !tbaa !9
  %573 = icmp ne i32 %572, 0
  br label %574

574:                                              ; preds = %571, %568
  %575 = phi i1 [ false, %568 ], [ %573, %571 ]
  br i1 %575, label %576, label %647

576:                                              ; preds = %574
  br label %577

577:                                              ; preds = %576
  %578 = load i32, ptr %19, align 4, !tbaa !9
  %579 = icmp ult i32 %578, 8
  br i1 %579, label %580, label %619

580:                                              ; preds = %577
  br label %581

581:                                              ; preds = %615, %580
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %598, %582
  %584 = load ptr, ptr %24, align 8, !tbaa !5
  %585 = load ptr, ptr %25, align 8, !tbaa !5
  %586 = icmp uge ptr %584, %585
  br i1 %586, label %587, label %599

587:                                              ; preds = %583
  br label %588

588:                                              ; preds = %587
  %589 = load i32, ptr %15, align 4, !tbaa !9
  %590 = and i32 %589, 2
  %591 = icmp ne i32 %590, 0
  %592 = zext i1 %591 to i64
  %593 = select i1 %591, i32 1, i32 -4
  store i32 %593, ptr %18, align 4, !tbaa !9
  %594 = load ptr, ptr %9, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %594, i32 0, i32 0
  store i32 51, ptr %595, align 8, !tbaa !20
  br label %2709

596:                                              ; preds = %129
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597
  br label %583, !llvm.loop !39

599:                                              ; preds = %583
  %600 = load ptr, ptr %24, align 8, !tbaa !5
  %601 = getelementptr inbounds i8, ptr %600, i32 1
  store ptr %601, ptr %24, align 8, !tbaa !5
  %602 = load i8, ptr %600, align 1, !tbaa !27
  %603 = zext i8 %602 to i32
  store i32 %603, ptr %34, align 4, !tbaa !9
  br label %604

604:                                              ; preds = %599
  br label %605

605:                                              ; preds = %604
  %606 = load i32, ptr %34, align 4, !tbaa !9
  %607 = zext i32 %606 to i64
  %608 = load i32, ptr %19, align 4, !tbaa !9
  %609 = zext i32 %608 to i64
  %610 = shl i64 %607, %609
  %611 = load i64, ptr %23, align 8, !tbaa !11
  %612 = or i64 %611, %610
  store i64 %612, ptr %23, align 8, !tbaa !11
  %613 = load i32, ptr %19, align 4, !tbaa !9
  %614 = add i32 %613, 8
  store i32 %614, ptr %19, align 4, !tbaa !9
  br label %615

615:                                              ; preds = %605
  %616 = load i32, ptr %19, align 4, !tbaa !9
  %617 = icmp ult i32 %616, 8
  br i1 %617, label %581, label %618, !llvm.loop !40

618:                                              ; preds = %615
  br label %619

619:                                              ; preds = %618, %577
  %620 = load i64, ptr %23, align 8, !tbaa !11
  %621 = and i64 %620, 255
  %622 = trunc i64 %621 to i32
  store i32 %622, ptr %20, align 4, !tbaa !9
  %623 = load i64, ptr %23, align 8, !tbaa !11
  %624 = lshr i64 %623, 8
  store i64 %624, ptr %23, align 8, !tbaa !11
  %625 = load i32, ptr %19, align 4, !tbaa !9
  %626 = sub i32 %625, 8
  store i32 %626, ptr %19, align 4, !tbaa !9
  br label %627

627:                                              ; preds = %619
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %639, %628
  %630 = load ptr, ptr %26, align 8, !tbaa !5
  %631 = load ptr, ptr %27, align 8, !tbaa !5
  %632 = icmp uge ptr %630, %631
  br i1 %632, label %633, label %640

633:                                              ; preds = %629
  br label %634

634:                                              ; preds = %633
  store i32 2, ptr %18, align 4, !tbaa !9
  %635 = load ptr, ptr %9, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %635, i32 0, i32 0
  store i32 52, ptr %636, align 8, !tbaa !20
  br label %2709

637:                                              ; preds = %129
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  br label %629, !llvm.loop !41

640:                                              ; preds = %629
  %641 = load i32, ptr %20, align 4, !tbaa !9
  %642 = trunc i32 %641 to i8
  %643 = load ptr, ptr %26, align 8, !tbaa !5
  %644 = getelementptr inbounds i8, ptr %643, i32 1
  store ptr %644, ptr %26, align 8, !tbaa !5
  store i8 %642, ptr %643, align 1, !tbaa !27
  %645 = load i32, ptr %21, align 4, !tbaa !9
  %646 = add i32 %645, -1
  store i32 %646, ptr %21, align 4, !tbaa !9
  br label %568, !llvm.loop !42

647:                                              ; preds = %574
  br label %648

648:                                              ; preds = %738, %647
  %649 = load i32, ptr %21, align 4, !tbaa !9
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %753

651:                                              ; preds = %648
  br label %652

652:                                              ; preds = %662, %651
  %653 = load ptr, ptr %26, align 8, !tbaa !5
  %654 = load ptr, ptr %27, align 8, !tbaa !5
  %655 = icmp uge ptr %653, %654
  br i1 %655, label %656, label %663

656:                                              ; preds = %652
  br label %657

657:                                              ; preds = %656
  store i32 2, ptr %18, align 4, !tbaa !9
  %658 = load ptr, ptr %9, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %658, i32 0, i32 0
  store i32 9, ptr %659, align 8, !tbaa !20
  br label %2709

660:                                              ; preds = %129
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  br label %652, !llvm.loop !43

663:                                              ; preds = %652
  br label %664

664:                                              ; preds = %679, %663
  %665 = load ptr, ptr %24, align 8, !tbaa !5
  %666 = load ptr, ptr %25, align 8, !tbaa !5
  %667 = icmp uge ptr %665, %666
  br i1 %667, label %668, label %680

668:                                              ; preds = %664
  br label %669

669:                                              ; preds = %668
  %670 = load i32, ptr %15, align 4, !tbaa !9
  %671 = and i32 %670, 2
  %672 = icmp ne i32 %671, 0
  %673 = zext i1 %672 to i64
  %674 = select i1 %672, i32 1, i32 -4
  store i32 %674, ptr %18, align 4, !tbaa !9
  %675 = load ptr, ptr %9, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %675, i32 0, i32 0
  store i32 38, ptr %676, align 8, !tbaa !20
  br label %2709

677:                                              ; preds = %129
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678
  br label %664, !llvm.loop !44

680:                                              ; preds = %664
  %681 = load ptr, ptr %27, align 8, !tbaa !5
  %682 = load ptr, ptr %26, align 8, !tbaa !5
  %683 = ptrtoint ptr %681 to i64
  %684 = ptrtoint ptr %682 to i64
  %685 = sub i64 %683, %684
  %686 = load ptr, ptr %25, align 8, !tbaa !5
  %687 = load ptr, ptr %24, align 8, !tbaa !5
  %688 = ptrtoint ptr %686 to i64
  %689 = ptrtoint ptr %687 to i64
  %690 = sub i64 %688, %689
  %691 = icmp ult i64 %685, %690
  br i1 %691, label %692, label %698

692:                                              ; preds = %680
  %693 = load ptr, ptr %27, align 8, !tbaa !5
  %694 = load ptr, ptr %26, align 8, !tbaa !5
  %695 = ptrtoint ptr %693 to i64
  %696 = ptrtoint ptr %694 to i64
  %697 = sub i64 %695, %696
  br label %704

698:                                              ; preds = %680
  %699 = load ptr, ptr %25, align 8, !tbaa !5
  %700 = load ptr, ptr %24, align 8, !tbaa !5
  %701 = ptrtoint ptr %699 to i64
  %702 = ptrtoint ptr %700 to i64
  %703 = sub i64 %701, %702
  br label %704

704:                                              ; preds = %698, %692
  %705 = phi i64 [ %697, %692 ], [ %703, %698 ]
  %706 = load i32, ptr %21, align 4, !tbaa !9
  %707 = zext i32 %706 to i64
  %708 = icmp ult i64 %705, %707
  br i1 %708, label %709, label %735

709:                                              ; preds = %704
  %710 = load ptr, ptr %27, align 8, !tbaa !5
  %711 = load ptr, ptr %26, align 8, !tbaa !5
  %712 = ptrtoint ptr %710 to i64
  %713 = ptrtoint ptr %711 to i64
  %714 = sub i64 %712, %713
  %715 = load ptr, ptr %25, align 8, !tbaa !5
  %716 = load ptr, ptr %24, align 8, !tbaa !5
  %717 = ptrtoint ptr %715 to i64
  %718 = ptrtoint ptr %716 to i64
  %719 = sub i64 %717, %718
  %720 = icmp ult i64 %714, %719
  br i1 %720, label %721, label %727

721:                                              ; preds = %709
  %722 = load ptr, ptr %27, align 8, !tbaa !5
  %723 = load ptr, ptr %26, align 8, !tbaa !5
  %724 = ptrtoint ptr %722 to i64
  %725 = ptrtoint ptr %723 to i64
  %726 = sub i64 %724, %725
  br label %733

727:                                              ; preds = %709
  %728 = load ptr, ptr %25, align 8, !tbaa !5
  %729 = load ptr, ptr %24, align 8, !tbaa !5
  %730 = ptrtoint ptr %728 to i64
  %731 = ptrtoint ptr %729 to i64
  %732 = sub i64 %730, %731
  br label %733

733:                                              ; preds = %727, %721
  %734 = phi i64 [ %726, %721 ], [ %732, %727 ]
  br label %738

735:                                              ; preds = %704
  %736 = load i32, ptr %21, align 4, !tbaa !9
  %737 = zext i32 %736 to i64
  br label %738

738:                                              ; preds = %735, %733
  %739 = phi i64 [ %734, %733 ], [ %737, %735 ]
  store i64 %739, ptr %35, align 8, !tbaa !11
  %740 = load ptr, ptr %26, align 8, !tbaa !5
  %741 = load ptr, ptr %24, align 8, !tbaa !5
  %742 = load i64, ptr %35, align 8, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %740, ptr align 1 %741, i64 %742, i1 false)
  %743 = load i64, ptr %35, align 8, !tbaa !11
  %744 = load ptr, ptr %24, align 8, !tbaa !5
  %745 = getelementptr inbounds i8, ptr %744, i64 %743
  store ptr %745, ptr %24, align 8, !tbaa !5
  %746 = load i64, ptr %35, align 8, !tbaa !11
  %747 = load ptr, ptr %26, align 8, !tbaa !5
  %748 = getelementptr inbounds i8, ptr %747, i64 %746
  store ptr %748, ptr %26, align 8, !tbaa !5
  %749 = load i64, ptr %35, align 8, !tbaa !11
  %750 = trunc i64 %749 to i32
  %751 = load i32, ptr %21, align 4, !tbaa !9
  %752 = sub i32 %751, %750
  store i32 %752, ptr %21, align 4, !tbaa !9
  br label %648, !llvm.loop !45

753:                                              ; preds = %648
  br label %2503

754:                                              ; preds = %362
  %755 = load ptr, ptr %9, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %755, i32 0, i32 6
  %757 = load i32, ptr %756, align 8, !tbaa !32
  %758 = icmp eq i32 %757, 3
  br i1 %758, label %759, label %770

759:                                              ; preds = %754
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %767, %760
  br label %762

762:                                              ; preds = %761
  store i32 -1, ptr %18, align 4, !tbaa !9
  %763 = load ptr, ptr %9, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %763, i32 0, i32 0
  store i32 10, ptr %764, align 8, !tbaa !20
  br label %2709

765:                                              ; preds = %129
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  br label %761

768:                                              ; No predecessors!
  br label %769

769:                                              ; preds = %768
  br label %2502

770:                                              ; preds = %754
  %771 = load ptr, ptr %9, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %771, i32 0, i32 6
  %773 = load i32, ptr %772, align 8, !tbaa !32
  %774 = icmp eq i32 %773, 1
  br i1 %774, label %775, label %828

775:                                              ; preds = %770
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %776 = load ptr, ptr %9, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %776, i32 0, i32 18
  %778 = getelementptr inbounds [288 x i8], ptr %777, i64 0, i64 0
  store ptr %778, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  %779 = load ptr, ptr %9, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %779, i32 0, i32 11
  %781 = getelementptr inbounds [3 x i32], ptr %780, i64 0, i64 0
  store i32 288, ptr %781, align 4, !tbaa !9
  %782 = load ptr, ptr %9, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %782, i32 0, i32 11
  %784 = getelementptr inbounds [3 x i32], ptr %783, i64 0, i64 1
  store i32 32, ptr %784, align 4, !tbaa !9
  %785 = load ptr, ptr %9, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %785, i32 0, i32 19
  %787 = getelementptr inbounds [32 x i8], ptr %786, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 4 %787, i8 5, i64 32, i1 false)
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %788

788:                                              ; preds = %794, %775
  %789 = load i32, ptr %37, align 4, !tbaa !9
  %790 = icmp ule i32 %789, 143
  br i1 %790, label %791, label %797

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

794:                                              ; preds = %791
  %795 = load i32, ptr %37, align 4, !tbaa !9
  %796 = add i32 %795, 1
  store i32 %796, ptr %37, align 4, !tbaa !9
  br label %788, !llvm.loop !46

797:                                              ; preds = %788
  br label %798

798:                                              ; preds = %804, %797
  %799 = load i32, ptr %37, align 4, !tbaa !9
  %800 = icmp ule i32 %799, 255
  br i1 %800, label %801, label %807

801:                                              ; preds = %798
  %802 = load ptr, ptr %36, align 8, !tbaa !5
  %803 = getelementptr inbounds i8, ptr %802, i32 1
  store ptr %803, ptr %36, align 8, !tbaa !5
  store i8 9, ptr %802, align 1, !tbaa !27
  br label %804

804:                                              ; preds = %801
  %805 = load i32, ptr %37, align 4, !tbaa !9
  %806 = add i32 %805, 1
  store i32 %806, ptr %37, align 4, !tbaa !9
  br label %798, !llvm.loop !47

807:                                              ; preds = %798
  br label %808

808:                                              ; preds = %814, %807
  %809 = load i32, ptr %37, align 4, !tbaa !9
  %810 = icmp ule i32 %809, 279
  br i1 %810, label %811, label %817

811:                                              ; preds = %808
  %812 = load ptr, ptr %36, align 8, !tbaa !5
  %813 = getelementptr inbounds i8, ptr %812, i32 1
  store ptr %813, ptr %36, align 8, !tbaa !5
  store i8 7, ptr %812, align 1, !tbaa !27
  br label %814

814:                                              ; preds = %811
  %815 = load i32, ptr %37, align 4, !tbaa !9
  %816 = add i32 %815, 1
  store i32 %816, ptr %37, align 4, !tbaa !9
  br label %808, !llvm.loop !48

817:                                              ; preds = %808
  br label %818

818:                                              ; preds = %824, %817
  %819 = load i32, ptr %37, align 4, !tbaa !9
  %820 = icmp ule i32 %819, 287
  br i1 %820, label %821, label %827

821:                                              ; preds = %818
  %822 = load ptr, ptr %36, align 8, !tbaa !5
  %823 = getelementptr inbounds i8, ptr %822, i32 1
  store ptr %823, ptr %36, align 8, !tbaa !5
  store i8 8, ptr %822, align 1, !tbaa !27
  br label %824

824:                                              ; preds = %821
  %825 = load i32, ptr %37, align 4, !tbaa !9
  %826 = add i32 %825, 1
  store i32 %826, ptr %37, align 4, !tbaa !9
  br label %818, !llvm.loop !49

827:                                              ; preds = %818
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  br label %1015

828:                                              ; preds = %770
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %829

829:                                              ; preds = %931, %828
  %830 = load i32, ptr %21, align 4, !tbaa !9
  %831 = icmp ult i32 %830, 3
  br i1 %831, label %832, label %934

832:                                              ; preds = %829
  br label %833

833:                                              ; preds = %832
  %834 = load i32, ptr %19, align 4, !tbaa !9
  %835 = load i32, ptr %21, align 4, !tbaa !9
  %836 = zext i32 %835 to i64
  %837 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %836
  %838 = load i8, ptr %837, align 1, !tbaa !27
  %839 = sext i8 %838 to i32
  %840 = icmp ult i32 %834, %839
  br i1 %840, label %841, label %885

841:                                              ; preds = %833
  br label %842

842:                                              ; preds = %876, %841
  br label %843

843:                                              ; preds = %842
  br label %844

844:                                              ; preds = %859, %843
  %845 = load ptr, ptr %24, align 8, !tbaa !5
  %846 = load ptr, ptr %25, align 8, !tbaa !5
  %847 = icmp uge ptr %845, %846
  br i1 %847, label %848, label %860

848:                                              ; preds = %844
  br label %849

849:                                              ; preds = %848
  %850 = load i32, ptr %15, align 4, !tbaa !9
  %851 = and i32 %850, 2
  %852 = icmp ne i32 %851, 0
  %853 = zext i1 %852 to i64
  %854 = select i1 %852, i32 1, i32 -4
  store i32 %854, ptr %18, align 4, !tbaa !9
  %855 = load ptr, ptr %9, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %855, i32 0, i32 0
  store i32 11, ptr %856, align 8, !tbaa !20
  br label %2709

857:                                              ; preds = %129
  br label %858

858:                                              ; preds = %857
  br label %859

859:                                              ; preds = %858
  br label %844, !llvm.loop !50

860:                                              ; preds = %844
  %861 = load ptr, ptr %24, align 8, !tbaa !5
  %862 = getelementptr inbounds i8, ptr %861, i32 1
  store ptr %862, ptr %24, align 8, !tbaa !5
  %863 = load i8, ptr %861, align 1, !tbaa !27
  %864 = zext i8 %863 to i32
  store i32 %864, ptr %38, align 4, !tbaa !9
  br label %865

865:                                              ; preds = %860
  br label %866

866:                                              ; preds = %865
  %867 = load i32, ptr %38, align 4, !tbaa !9
  %868 = zext i32 %867 to i64
  %869 = load i32, ptr %19, align 4, !tbaa !9
  %870 = zext i32 %869 to i64
  %871 = shl i64 %868, %870
  %872 = load i64, ptr %23, align 8, !tbaa !11
  %873 = or i64 %872, %871
  store i64 %873, ptr %23, align 8, !tbaa !11
  %874 = load i32, ptr %19, align 4, !tbaa !9
  %875 = add i32 %874, 8
  store i32 %875, ptr %19, align 4, !tbaa !9
  br label %876

876:                                              ; preds = %866
  %877 = load i32, ptr %19, align 4, !tbaa !9
  %878 = load i32, ptr %21, align 4, !tbaa !9
  %879 = zext i32 %878 to i64
  %880 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %879
  %881 = load i8, ptr %880, align 1, !tbaa !27
  %882 = sext i8 %881 to i32
  %883 = icmp ult i32 %877, %882
  br i1 %883, label %842, label %884, !llvm.loop !51

884:                                              ; preds = %876
  br label %885

885:                                              ; preds = %884, %833
  %886 = load i64, ptr %23, align 8, !tbaa !11
  %887 = load i32, ptr %21, align 4, !tbaa !9
  %888 = zext i32 %887 to i64
  %889 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %888
  %890 = load i8, ptr %889, align 1, !tbaa !27
  %891 = sext i8 %890 to i32
  %892 = shl i32 1, %891
  %893 = sub nsw i32 %892, 1
  %894 = sext i32 %893 to i64
  %895 = and i64 %886, %894
  %896 = trunc i64 %895 to i32
  %897 = load ptr, ptr %9, align 8, !tbaa !5
  %898 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %897, i32 0, i32 11
  %899 = load i32, ptr %21, align 4, !tbaa !9
  %900 = zext i32 %899 to i64
  %901 = getelementptr inbounds [3 x i32], ptr %898, i64 0, i64 %900
  store i32 %896, ptr %901, align 4, !tbaa !9
  %902 = load i32, ptr %21, align 4, !tbaa !9
  %903 = zext i32 %902 to i64
  %904 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %903
  %905 = load i8, ptr %904, align 1, !tbaa !27
  %906 = sext i8 %905 to i32
  %907 = load i64, ptr %23, align 8, !tbaa !11
  %908 = zext i32 %906 to i64
  %909 = lshr i64 %907, %908
  store i64 %909, ptr %23, align 8, !tbaa !11
  %910 = load i32, ptr %21, align 4, !tbaa !9
  %911 = zext i32 %910 to i64
  %912 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %911
  %913 = load i8, ptr %912, align 1, !tbaa !27
  %914 = sext i8 %913 to i32
  %915 = load i32, ptr %19, align 4, !tbaa !9
  %916 = sub i32 %915, %914
  store i32 %916, ptr %19, align 4, !tbaa !9
  br label %917

917:                                              ; preds = %885
  br label %918

918:                                              ; preds = %917
  %919 = load i32, ptr %21, align 4, !tbaa !9
  %920 = zext i32 %919 to i64
  %921 = getelementptr inbounds [3 x i16], ptr @tinfl_decompress.s_min_table_sizes, i64 0, i64 %920
  %922 = load i16, ptr %921, align 2, !tbaa !52
  %923 = zext i16 %922 to i32
  %924 = load ptr, ptr %9, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %924, i32 0, i32 11
  %926 = load i32, ptr %21, align 4, !tbaa !9
  %927 = zext i32 %926 to i64
  %928 = getelementptr inbounds [3 x i32], ptr %925, i64 0, i64 %927
  %929 = load i32, ptr %928, align 4, !tbaa !9
  %930 = add i32 %929, %923
  store i32 %930, ptr %928, align 4, !tbaa !9
  br label %931

931:                                              ; preds = %918
  %932 = load i32, ptr %21, align 4, !tbaa !9
  %933 = add i32 %932, 1
  store i32 %933, ptr %21, align 4, !tbaa !9
  br label %829, !llvm.loop !54

934:                                              ; preds = %829
  %935 = load ptr, ptr %9, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %935, i32 0, i32 20
  %937 = getelementptr inbounds [19 x i8], ptr %936, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 4 %937, i8 0, i64 19, i1 false)
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %938

938:                                              ; preds = %1008, %934
  %939 = load i32, ptr %21, align 4, !tbaa !9
  %940 = load ptr, ptr %9, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %940, i32 0, i32 11
  %942 = getelementptr inbounds [3 x i32], ptr %941, i64 0, i64 2
  %943 = load i32, ptr %942, align 4, !tbaa !9
  %944 = icmp ult i32 %939, %943
  br i1 %944, label %945, label %1011

945:                                              ; preds = %938
  br label %946

946:                                              ; preds = %945
  %947 = load i32, ptr %19, align 4, !tbaa !9
  %948 = icmp ult i32 %947, 3
  br i1 %948, label %949, label %988

949:                                              ; preds = %946
  br label %950

950:                                              ; preds = %984, %949
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %967, %951
  %953 = load ptr, ptr %24, align 8, !tbaa !5
  %954 = load ptr, ptr %25, align 8, !tbaa !5
  %955 = icmp uge ptr %953, %954
  br i1 %955, label %956, label %968

956:                                              ; preds = %952
  br label %957

957:                                              ; preds = %956
  %958 = load i32, ptr %15, align 4, !tbaa !9
  %959 = and i32 %958, 2
  %960 = icmp ne i32 %959, 0
  %961 = zext i1 %960 to i64
  %962 = select i1 %960, i32 1, i32 -4
  store i32 %962, ptr %18, align 4, !tbaa !9
  %963 = load ptr, ptr %9, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %963, i32 0, i32 0
  store i32 14, ptr %964, align 8, !tbaa !20
  br label %2709

965:                                              ; preds = %129
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966
  br label %952, !llvm.loop !55

968:                                              ; preds = %952
  %969 = load ptr, ptr %24, align 8, !tbaa !5
  %970 = getelementptr inbounds i8, ptr %969, i32 1
  store ptr %970, ptr %24, align 8, !tbaa !5
  %971 = load i8, ptr %969, align 1, !tbaa !27
  %972 = zext i8 %971 to i32
  store i32 %972, ptr %40, align 4, !tbaa !9
  br label %973

973:                                              ; preds = %968
  br label %974

974:                                              ; preds = %973
  %975 = load i32, ptr %40, align 4, !tbaa !9
  %976 = zext i32 %975 to i64
  %977 = load i32, ptr %19, align 4, !tbaa !9
  %978 = zext i32 %977 to i64
  %979 = shl i64 %976, %978
  %980 = load i64, ptr %23, align 8, !tbaa !11
  %981 = or i64 %980, %979
  store i64 %981, ptr %23, align 8, !tbaa !11
  %982 = load i32, ptr %19, align 4, !tbaa !9
  %983 = add i32 %982, 8
  store i32 %983, ptr %19, align 4, !tbaa !9
  br label %984

984:                                              ; preds = %974
  %985 = load i32, ptr %19, align 4, !tbaa !9
  %986 = icmp ult i32 %985, 3
  br i1 %986, label %950, label %987, !llvm.loop !56

987:                                              ; preds = %984
  br label %988

988:                                              ; preds = %987, %946
  %989 = load i64, ptr %23, align 8, !tbaa !11
  %990 = and i64 %989, 7
  %991 = trunc i64 %990 to i32
  store i32 %991, ptr %39, align 4, !tbaa !9
  %992 = load i64, ptr %23, align 8, !tbaa !11
  %993 = lshr i64 %992, 3
  store i64 %993, ptr %23, align 8, !tbaa !11
  %994 = load i32, ptr %19, align 4, !tbaa !9
  %995 = sub i32 %994, 3
  store i32 %995, ptr %19, align 4, !tbaa !9
  br label %996

996:                                              ; preds = %988
  br label %997

997:                                              ; preds = %996
  %998 = load i32, ptr %39, align 4, !tbaa !9
  %999 = trunc i32 %998 to i8
  %1000 = load ptr, ptr %9, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1000, i32 0, i32 20
  %1002 = load i32, ptr %21, align 4, !tbaa !9
  %1003 = zext i32 %1002 to i64
  %1004 = getelementptr inbounds [19 x i8], ptr @tinfl_decompress.s_length_dezigzag, i64 0, i64 %1003
  %1005 = load i8, ptr %1004, align 1, !tbaa !27
  %1006 = zext i8 %1005 to i64
  %1007 = getelementptr inbounds [19 x i8], ptr %1001, i64 0, i64 %1006
  store i8 %999, ptr %1007, align 1, !tbaa !27
  br label %1008

1008:                                             ; preds = %997
  %1009 = load i32, ptr %21, align 4, !tbaa !9
  %1010 = add i32 %1009, 1
  store i32 %1010, ptr %21, align 4, !tbaa !9
  br label %938, !llvm.loop !57

1011:                                             ; preds = %938
  %1012 = load ptr, ptr %9, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1012, i32 0, i32 11
  %1014 = getelementptr inbounds [3 x i32], ptr %1013, i64 0, i64 2
  store i32 19, ptr %1014, align 4, !tbaa !9
  br label %1015

1015:                                             ; preds = %1011, %827
  br label %1016

1016:                                             ; preds = %1645, %1015
  %1017 = load ptr, ptr %9, align 8, !tbaa !5
  %1018 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1017, i32 0, i32 6
  %1019 = load i32, ptr %1018, align 8, !tbaa !32
  %1020 = icmp sge i32 %1019, 0
  br i1 %1020, label %1021, label %1650

1021:                                             ; preds = %1016
  %1022 = load ptr, ptr %9, align 8, !tbaa !5
  %1023 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1022, i32 0, i32 14
  %1024 = load ptr, ptr %9, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1024, i32 0, i32 6
  %1026 = load i32, ptr %1025, align 8, !tbaa !32
  %1027 = zext i32 %1026 to i64
  %1028 = getelementptr inbounds [3 x [1024 x i16]], ptr %1023, i64 0, i64 %1027
  %1029 = getelementptr inbounds [1024 x i16], ptr %1028, i64 0, i64 0
  store ptr %1029, ptr %43, align 8, !tbaa !5
  %1030 = load ptr, ptr %9, align 8, !tbaa !5
  %1031 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1030, i32 0, i32 6
  %1032 = load i32, ptr %1031, align 8, !tbaa !32
  %1033 = zext i32 %1032 to i64
  %1034 = getelementptr inbounds [3 x ptr], ptr %16, i64 0, i64 %1033
  %1035 = load ptr, ptr %1034, align 8, !tbaa !5
  store ptr %1035, ptr %44, align 8, !tbaa !5
  %1036 = load ptr, ptr %9, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1036, i32 0, i32 6
  %1038 = load i32, ptr %1037, align 8, !tbaa !32
  %1039 = zext i32 %1038 to i64
  %1040 = getelementptr inbounds [3 x ptr], ptr %17, i64 0, i64 %1039
  %1041 = load ptr, ptr %1040, align 8, !tbaa !5
  store ptr %1041, ptr %45, align 8, !tbaa !5
  %1042 = getelementptr inbounds [16 x i32], ptr %52, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 16 %1042, i8 0, i64 64, i1 false)
  %1043 = load ptr, ptr %43, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 2 %1043, i8 0, i64 2048, i1 false)
  %1044 = load ptr, ptr %9, align 8, !tbaa !5
  call void @tinfl_clear_tree(ptr noundef %1044)
  store i32 0, ptr %46, align 4, !tbaa !9
  br label %1045

1045:                                             ; preds = %1066, %1021
  %1046 = load i32, ptr %46, align 4, !tbaa !9
  %1047 = load ptr, ptr %9, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1047, i32 0, i32 11
  %1049 = load ptr, ptr %9, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1049, i32 0, i32 6
  %1051 = load i32, ptr %1050, align 8, !tbaa !32
  %1052 = zext i32 %1051 to i64
  %1053 = getelementptr inbounds [3 x i32], ptr %1048, i64 0, i64 %1052
  %1054 = load i32, ptr %1053, align 4, !tbaa !9
  %1055 = icmp ult i32 %1046, %1054
  br i1 %1055, label %1056, label %1069

1056:                                             ; preds = %1045
  %1057 = load ptr, ptr %45, align 8, !tbaa !5
  %1058 = load i32, ptr %46, align 4, !tbaa !9
  %1059 = zext i32 %1058 to i64
  %1060 = getelementptr inbounds i8, ptr %1057, i64 %1059
  %1061 = load i8, ptr %1060, align 1, !tbaa !27
  %1062 = zext i8 %1061 to i64
  %1063 = getelementptr inbounds [16 x i32], ptr %52, i64 0, i64 %1062
  %1064 = load i32, ptr %1063, align 4, !tbaa !9
  %1065 = add i32 %1064, 1
  store i32 %1065, ptr %1063, align 4, !tbaa !9
  br label %1066

1066:                                             ; preds = %1056
  %1067 = load i32, ptr %46, align 4, !tbaa !9
  %1068 = add i32 %1067, 1
  store i32 %1068, ptr %46, align 4, !tbaa !9
  br label %1045, !llvm.loop !58

1069:                                             ; preds = %1045
  store i32 0, ptr %48, align 4, !tbaa !9
  store i32 0, ptr %49, align 4, !tbaa !9
  %1070 = getelementptr inbounds [17 x i32], ptr %51, i64 0, i64 1
  store i32 0, ptr %1070, align 4, !tbaa !9
  %1071 = getelementptr inbounds [17 x i32], ptr %51, i64 0, i64 0
  store i32 0, ptr %1071, align 16, !tbaa !9
  store i32 1, ptr %46, align 4, !tbaa !9
  br label %1072

1072:                                             ; preds = %1093, %1069
  %1073 = load i32, ptr %46, align 4, !tbaa !9
  %1074 = icmp ule i32 %1073, 15
  br i1 %1074, label %1075, label %1096

1075:                                             ; preds = %1072
  %1076 = load i32, ptr %46, align 4, !tbaa !9
  %1077 = zext i32 %1076 to i64
  %1078 = getelementptr inbounds [16 x i32], ptr %52, i64 0, i64 %1077
  %1079 = load i32, ptr %1078, align 4, !tbaa !9
  %1080 = load i32, ptr %48, align 4, !tbaa !9
  %1081 = add i32 %1080, %1079
  store i32 %1081, ptr %48, align 4, !tbaa !9
  %1082 = load i32, ptr %49, align 4, !tbaa !9
  %1083 = load i32, ptr %46, align 4, !tbaa !9
  %1084 = zext i32 %1083 to i64
  %1085 = getelementptr inbounds [16 x i32], ptr %52, i64 0, i64 %1084
  %1086 = load i32, ptr %1085, align 4, !tbaa !9
  %1087 = add i32 %1082, %1086
  %1088 = shl i32 %1087, 1
  store i32 %1088, ptr %49, align 4, !tbaa !9
  %1089 = load i32, ptr %46, align 4, !tbaa !9
  %1090 = add i32 %1089, 1
  %1091 = zext i32 %1090 to i64
  %1092 = getelementptr inbounds [17 x i32], ptr %51, i64 0, i64 %1091
  store i32 %1088, ptr %1092, align 4, !tbaa !9
  br label %1093

1093:                                             ; preds = %1075
  %1094 = load i32, ptr %46, align 4, !tbaa !9
  %1095 = add i32 %1094, 1
  store i32 %1095, ptr %46, align 4, !tbaa !9
  br label %1072, !llvm.loop !59

1096:                                             ; preds = %1072
  %1097 = load i32, ptr %49, align 4, !tbaa !9
  %1098 = icmp ne i32 65536, %1097
  br i1 %1098, label %1099, label %1113

1099:                                             ; preds = %1096
  %1100 = load i32, ptr %48, align 4, !tbaa !9
  %1101 = icmp ugt i32 %1100, 1
  br i1 %1101, label %1102, label %1113

1102:                                             ; preds = %1099
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

1104:                                             ; preds = %1110, %1103
  br label %1105

1105:                                             ; preds = %1104
  store i32 -1, ptr %18, align 4, !tbaa !9
  %1106 = load ptr, ptr %9, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1106, i32 0, i32 0
  store i32 35, ptr %1107, align 8, !tbaa !20
  br label %2709

1108:                                             ; preds = %129
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109
  br label %1104

1111:                                             ; No predecessors!
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112, %1099, %1096
  store i32 -1, ptr %41, align 4, !tbaa !9
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %1114

1114:                                             ; preds = %1262, %1113
  %1115 = load i32, ptr %50, align 4, !tbaa !9
  %1116 = load ptr, ptr %9, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1116, i32 0, i32 11
  %1118 = load ptr, ptr %9, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1118, i32 0, i32 6
  %1120 = load i32, ptr %1119, align 8, !tbaa !32
  %1121 = zext i32 %1120 to i64
  %1122 = getelementptr inbounds [3 x i32], ptr %1117, i64 0, i64 %1121
  %1123 = load i32, ptr %1122, align 4, !tbaa !9
  %1124 = icmp ult i32 %1115, %1123
  br i1 %1124, label %1125, label %1265

1125:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  store i32 0, ptr %53, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  %1126 = load ptr, ptr %45, align 8, !tbaa !5
  %1127 = load i32, ptr %50, align 4, !tbaa !9
  %1128 = zext i32 %1127 to i64
  %1129 = getelementptr inbounds i8, ptr %1126, i64 %1128
  %1130 = load i8, ptr %1129, align 1, !tbaa !27
  %1131 = zext i8 %1130 to i32
  store i32 %1131, ptr %56, align 4, !tbaa !9
  %1132 = load i32, ptr %56, align 4, !tbaa !9
  %1133 = icmp ne i32 %1132, 0
  br i1 %1133, label %1135, label %1134

1134:                                             ; preds = %1125
  store i32 156, ptr %30, align 4
  br label %1259

1135:                                             ; preds = %1125
  %1136 = load i32, ptr %56, align 4, !tbaa !9
  %1137 = zext i32 %1136 to i64
  %1138 = getelementptr inbounds [17 x i32], ptr %51, i64 0, i64 %1137
  %1139 = load i32, ptr %1138, align 4, !tbaa !9
  %1140 = add i32 %1139, 1
  store i32 %1140, ptr %1138, align 4, !tbaa !9
  store i32 %1139, ptr %55, align 4, !tbaa !9
  %1141 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %1141, ptr %54, align 4, !tbaa !9
  br label %1142

1142:                                             ; preds = %1151, %1135
  %1143 = load i32, ptr %54, align 4, !tbaa !9
  %1144 = icmp ugt i32 %1143, 0
  br i1 %1144, label %1145, label %1156

1145:                                             ; preds = %1142
  %1146 = load i32, ptr %53, align 4, !tbaa !9
  %1147 = shl i32 %1146, 1
  %1148 = load i32, ptr %55, align 4, !tbaa !9
  %1149 = and i32 %1148, 1
  %1150 = or i32 %1147, %1149
  store i32 %1150, ptr %53, align 4, !tbaa !9
  br label %1151

1151:                                             ; preds = %1145
  %1152 = load i32, ptr %54, align 4, !tbaa !9
  %1153 = add i32 %1152, -1
  store i32 %1153, ptr %54, align 4, !tbaa !9
  %1154 = load i32, ptr %55, align 4, !tbaa !9
  %1155 = lshr i32 %1154, 1
  store i32 %1155, ptr %55, align 4, !tbaa !9
  br label %1142, !llvm.loop !60

1156:                                             ; preds = %1142
  %1157 = load i32, ptr %56, align 4, !tbaa !9
  %1158 = icmp ule i32 %1157, 10
  br i1 %1158, label %1159, label %1179

1159:                                             ; preds = %1156
  call void @llvm.lifetime.start.p0(i64 2, ptr %57) #5
  %1160 = load i32, ptr %56, align 4, !tbaa !9
  %1161 = shl i32 %1160, 9
  %1162 = load i32, ptr %50, align 4, !tbaa !9
  %1163 = or i32 %1161, %1162
  %1164 = trunc i32 %1163 to i16
  store i16 %1164, ptr %57, align 2, !tbaa !52
  br label %1165

1165:                                             ; preds = %1168, %1159
  %1166 = load i32, ptr %53, align 4, !tbaa !9
  %1167 = icmp ult i32 %1166, 1024
  br i1 %1167, label %1168, label %1178

1168:                                             ; preds = %1165
  %1169 = load i16, ptr %57, align 2, !tbaa !52
  %1170 = load ptr, ptr %43, align 8, !tbaa !5
  %1171 = load i32, ptr %53, align 4, !tbaa !9
  %1172 = zext i32 %1171 to i64
  %1173 = getelementptr inbounds i16, ptr %1170, i64 %1172
  store i16 %1169, ptr %1173, align 2, !tbaa !52
  %1174 = load i32, ptr %56, align 4, !tbaa !9
  %1175 = shl i32 1, %1174
  %1176 = load i32, ptr %53, align 4, !tbaa !9
  %1177 = add i32 %1176, %1175
  store i32 %1177, ptr %53, align 4, !tbaa !9
  br label %1165, !llvm.loop !61

1178:                                             ; preds = %1165
  store i32 156, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %57) #5
  br label %1259

1179:                                             ; preds = %1156
  %1180 = load ptr, ptr %43, align 8, !tbaa !5
  %1181 = load i32, ptr %53, align 4, !tbaa !9
  %1182 = and i32 %1181, 1023
  %1183 = zext i32 %1182 to i64
  %1184 = getelementptr inbounds i16, ptr %1180, i64 %1183
  %1185 = load i16, ptr %1184, align 2, !tbaa !52
  %1186 = sext i16 %1185 to i32
  store i32 %1186, ptr %42, align 4, !tbaa !9
  %1187 = icmp eq i32 0, %1186
  br i1 %1187, label %1188, label %1199

1188:                                             ; preds = %1179
  %1189 = load i32, ptr %41, align 4, !tbaa !9
  %1190 = trunc i32 %1189 to i16
  %1191 = load ptr, ptr %43, align 8, !tbaa !5
  %1192 = load i32, ptr %53, align 4, !tbaa !9
  %1193 = and i32 %1192, 1023
  %1194 = zext i32 %1193 to i64
  %1195 = getelementptr inbounds i16, ptr %1191, i64 %1194
  store i16 %1190, ptr %1195, align 2, !tbaa !52
  %1196 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %1196, ptr %42, align 4, !tbaa !9
  %1197 = load i32, ptr %41, align 4, !tbaa !9
  %1198 = sub nsw i32 %1197, 2
  store i32 %1198, ptr %41, align 4, !tbaa !9
  br label %1199

1199:                                             ; preds = %1188, %1179
  %1200 = load i32, ptr %53, align 4, !tbaa !9
  %1201 = lshr i32 %1200, 9
  store i32 %1201, ptr %53, align 4, !tbaa !9
  %1202 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %1202, ptr %47, align 4, !tbaa !9
  br label %1203

1203:                                             ; preds = %1242, %1199
  %1204 = load i32, ptr %47, align 4, !tbaa !9
  %1205 = icmp ugt i32 %1204, 11
  br i1 %1205, label %1206, label %1245

1206:                                             ; preds = %1203
  %1207 = load i32, ptr %53, align 4, !tbaa !9
  %1208 = lshr i32 %1207, 1
  store i32 %1208, ptr %53, align 4, !tbaa !9
  %1209 = and i32 %1208, 1
  %1210 = load i32, ptr %42, align 4, !tbaa !9
  %1211 = sub i32 %1210, %1209
  store i32 %1211, ptr %42, align 4, !tbaa !9
  %1212 = load ptr, ptr %44, align 8, !tbaa !5
  %1213 = load i32, ptr %42, align 4, !tbaa !9
  %1214 = sub nsw i32 0, %1213
  %1215 = sub nsw i32 %1214, 1
  %1216 = sext i32 %1215 to i64
  %1217 = getelementptr inbounds i16, ptr %1212, i64 %1216
  %1218 = load i16, ptr %1217, align 2, !tbaa !52
  %1219 = icmp ne i16 %1218, 0
  br i1 %1219, label %1232, label %1220

1220:                                             ; preds = %1206
  %1221 = load i32, ptr %41, align 4, !tbaa !9
  %1222 = trunc i32 %1221 to i16
  %1223 = load ptr, ptr %44, align 8, !tbaa !5
  %1224 = load i32, ptr %42, 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 i16, ptr %1223, i64 %1227
  store i16 %1222, ptr %1228, align 2, !tbaa !52
  %1229 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %1229, ptr %42, align 4, !tbaa !9
  %1230 = load i32, ptr %41, align 4, !tbaa !9
  %1231 = sub nsw i32 %1230, 2
  store i32 %1231, ptr %41, align 4, !tbaa !9
  br label %1241

1232:                                             ; preds = %1206
  %1233 = load ptr, ptr %44, align 8, !tbaa !5
  %1234 = load i32, ptr %42, align 4, !tbaa !9
  %1235 = sub nsw i32 0, %1234
  %1236 = sub nsw i32 %1235, 1
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds i16, ptr %1233, i64 %1237
  %1239 = load i16, ptr %1238, align 2, !tbaa !52
  %1240 = sext i16 %1239 to i32
  store i32 %1240, ptr %42, align 4, !tbaa !9
  br label %1241

1241:                                             ; preds = %1232, %1220
  br label %1242

1242:                                             ; preds = %1241
  %1243 = load i32, ptr %47, align 4, !tbaa !9
  %1244 = add i32 %1243, -1
  store i32 %1244, ptr %47, align 4, !tbaa !9
  br label %1203, !llvm.loop !62

1245:                                             ; preds = %1203
  %1246 = load i32, ptr %53, align 4, !tbaa !9
  %1247 = lshr i32 %1246, 1
  store i32 %1247, ptr %53, align 4, !tbaa !9
  %1248 = and i32 %1247, 1
  %1249 = load i32, ptr %42, align 4, !tbaa !9
  %1250 = sub i32 %1249, %1248
  store i32 %1250, ptr %42, align 4, !tbaa !9
  %1251 = load i32, ptr %50, align 4, !tbaa !9
  %1252 = trunc i32 %1251 to i16
  %1253 = load ptr, ptr %44, align 8, !tbaa !5
  %1254 = load i32, ptr %42, align 4, !tbaa !9
  %1255 = sub nsw i32 0, %1254
  %1256 = sub nsw i32 %1255, 1
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds i16, ptr %1253, i64 %1257
  store i16 %1252, ptr %1258, align 2, !tbaa !52
  store i32 0, ptr %30, align 4
  br label %1259

1259:                                             ; preds = %1245, %1178, %1134
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  %1260 = load i32, ptr %30, align 4
  switch i32 %1260, label %2929 [
    i32 0, label %1261
    i32 156, label %1262
  ]

1261:                                             ; preds = %1259
  br label %1262

1262:                                             ; preds = %1261, %1259
  %1263 = load i32, ptr %50, align 4, !tbaa !9
  %1264 = add i32 %1263, 1
  store i32 %1264, ptr %50, align 4, !tbaa !9
  br label %1114, !llvm.loop !63

1265:                                             ; preds = %1114
  %1266 = load ptr, ptr %9, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1266, i32 0, i32 6
  %1268 = load i32, ptr %1267, align 8, !tbaa !32
  %1269 = icmp eq i32 %1268, 2
  br i1 %1269, label %1270, label %1644

1270:                                             ; preds = %1265
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %1271

1271:                                             ; preds = %1584, %1464, %1270
  %1272 = load i32, ptr %21, align 4, !tbaa !9
  %1273 = load ptr, ptr %9, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1273, i32 0, i32 11
  %1275 = getelementptr inbounds [3 x i32], ptr %1274, i64 0, i64 0
  %1276 = load i32, ptr %1275, align 4, !tbaa !9
  %1277 = load ptr, ptr %9, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1277, i32 0, i32 11
  %1279 = getelementptr inbounds [3 x i32], ptr %1278, i64 0, i64 1
  %1280 = load i32, ptr %1279, align 4, !tbaa !9
  %1281 = add i32 %1276, %1280
  %1282 = icmp ult i32 %1272, %1281
  br i1 %1282, label %1283, label %1592

1283:                                             ; preds = %1271
  br label %1284

1284:                                             ; preds = %1283
  %1285 = load i32, ptr %19, align 4, !tbaa !9
  %1286 = icmp ult i32 %1285, 15
  br i1 %1286, label %1287, label %1415

1287:                                             ; preds = %1284
  %1288 = load ptr, ptr %25, align 8, !tbaa !5
  %1289 = load ptr, ptr %24, align 8, !tbaa !5
  %1290 = ptrtoint ptr %1288 to i64
  %1291 = ptrtoint ptr %1289 to i64
  %1292 = sub i64 %1290, %1291
  %1293 = icmp slt i64 %1292, 2
  br i1 %1293, label %1294, label %1391

1294:                                             ; preds = %1287
  br label %1295

1295:                                             ; preds = %1387, %1294
  %1296 = load ptr, ptr %9, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1296, i32 0, i32 14
  %1298 = getelementptr inbounds [3 x [1024 x i16]], ptr %1297, i64 0, i64 2
  %1299 = load i64, ptr %23, align 8, !tbaa !11
  %1300 = and i64 %1299, 1023
  %1301 = getelementptr inbounds [1024 x i16], ptr %1298, i64 0, i64 %1300
  %1302 = load i16, ptr %1301, align 2, !tbaa !52
  %1303 = sext i16 %1302 to i32
  store i32 %1303, ptr %59, align 4, !tbaa !9
  %1304 = load i32, ptr %59, align 4, !tbaa !9
  %1305 = icmp sge i32 %1304, 0
  br i1 %1305, label %1306, label %1317

1306:                                             ; preds = %1295
  %1307 = load i32, ptr %59, align 4, !tbaa !9
  %1308 = ashr i32 %1307, 9
  store i32 %1308, ptr %60, align 4, !tbaa !9
  %1309 = load i32, ptr %60, align 4, !tbaa !9
  %1310 = icmp ne i32 %1309, 0
  br i1 %1310, label %1311, label %1316

1311:                                             ; preds = %1306
  %1312 = load i32, ptr %19, align 4, !tbaa !9
  %1313 = load i32, ptr %60, align 4, !tbaa !9
  %1314 = icmp uge i32 %1312, %1313
  br i1 %1314, label %1315, label %1316

1315:                                             ; preds = %1311
  br label %1390

1316:                                             ; preds = %1311, %1306
  br label %1353

1317:                                             ; preds = %1295
  %1318 = load i32, ptr %19, align 4, !tbaa !9
  %1319 = icmp ugt i32 %1318, 10
  br i1 %1319, label %1320, label %1352

1320:                                             ; preds = %1317
  store i32 10, ptr %60, align 4, !tbaa !9
  br label %1321

1321:                                             ; preds = %1345, %1320
  %1322 = load ptr, ptr %9, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1322, i32 0, i32 17
  %1324 = load i32, ptr %59, align 4, !tbaa !9
  %1325 = xor i32 %1324, -1
  %1326 = sext i32 %1325 to i64
  %1327 = load i64, ptr %23, align 8, !tbaa !11
  %1328 = load i32, ptr %60, align 4, !tbaa !9
  %1329 = add i32 %1328, 1
  store i32 %1329, ptr %60, align 4, !tbaa !9
  %1330 = zext i32 %1328 to i64
  %1331 = lshr i64 %1327, %1330
  %1332 = and i64 %1331, 1
  %1333 = add i64 %1326, %1332
  %1334 = getelementptr inbounds [38 x i16], ptr %1323, i64 0, i64 %1333
  %1335 = load i16, ptr %1334, align 2, !tbaa !52
  %1336 = sext i16 %1335 to i32
  store i32 %1336, ptr %59, align 4, !tbaa !9
  br label %1337

1337:                                             ; preds = %1321
  %1338 = load i32, ptr %59, align 4, !tbaa !9
  %1339 = icmp slt i32 %1338, 0
  br i1 %1339, label %1340, label %1345

1340:                                             ; preds = %1337
  %1341 = load i32, ptr %19, align 4, !tbaa !9
  %1342 = load i32, ptr %60, align 4, !tbaa !9
  %1343 = add i32 %1342, 1
  %1344 = icmp uge i32 %1341, %1343
  br label %1345

1345:                                             ; preds = %1340, %1337
  %1346 = phi i1 [ false, %1337 ], [ %1344, %1340 ]
  br i1 %1346, label %1321, label %1347, !llvm.loop !64

1347:                                             ; preds = %1345
  %1348 = load i32, ptr %59, align 4, !tbaa !9
  %1349 = icmp sge i32 %1348, 0
  br i1 %1349, label %1350, label %1351

1350:                                             ; preds = %1347
  br label %1390

1351:                                             ; preds = %1347
  br label %1352

1352:                                             ; preds = %1351, %1317
  br label %1353

1353:                                             ; preds = %1352, %1316
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1370, %1354
  %1356 = load ptr, ptr %24, align 8, !tbaa !5
  %1357 = load ptr, ptr %25, align 8, !tbaa !5
  %1358 = icmp uge ptr %1356, %1357
  br i1 %1358, label %1359, label %1371

1359:                                             ; preds = %1355
  br label %1360

1360:                                             ; preds = %1359
  %1361 = load i32, ptr %15, align 4, !tbaa !9
  %1362 = and i32 %1361, 2
  %1363 = icmp ne i32 %1362, 0
  %1364 = zext i1 %1363 to i64
  %1365 = select i1 %1363, i32 1, i32 -4
  store i32 %1365, ptr %18, align 4, !tbaa !9
  %1366 = load ptr, ptr %9, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1366, i32 0, i32 0
  store i32 16, ptr %1367, align 8, !tbaa !20
  br label %2709

1368:                                             ; preds = %129
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

1370:                                             ; preds = %1369
  br label %1355, !llvm.loop !65

1371:                                             ; preds = %1355
  %1372 = load ptr, ptr %24, align 8, !tbaa !5
  %1373 = getelementptr inbounds i8, ptr %1372, i32 1
  store ptr %1373, ptr %24, align 8, !tbaa !5
  %1374 = load i8, ptr %1372, align 1, !tbaa !27
  %1375 = zext i8 %1374 to i32
  store i32 %1375, ptr %61, align 4, !tbaa !9
  br label %1376

1376:                                             ; preds = %1371
  br label %1377

1377:                                             ; preds = %1376
  %1378 = load i32, ptr %61, align 4, !tbaa !9
  %1379 = zext i32 %1378 to i64
  %1380 = load i32, ptr %19, align 4, !tbaa !9
  %1381 = zext i32 %1380 to i64
  %1382 = shl i64 %1379, %1381
  %1383 = load i64, ptr %23, align 8, !tbaa !11
  %1384 = or i64 %1383, %1382
  store i64 %1384, ptr %23, align 8, !tbaa !11
  %1385 = load i32, ptr %19, align 4, !tbaa !9
  %1386 = add i32 %1385, 8
  store i32 %1386, ptr %19, align 4, !tbaa !9
  br label %1387

1387:                                             ; preds = %1377
  %1388 = load i32, ptr %19, align 4, !tbaa !9
  %1389 = icmp ult i32 %1388, 15
  br i1 %1389, label %1295, label %1390, !llvm.loop !66

1390:                                             ; preds = %1387, %1350, %1315
  br label %1414

1391:                                             ; preds = %1287
  %1392 = load ptr, ptr %24, align 8, !tbaa !5
  %1393 = getelementptr inbounds i8, ptr %1392, i64 0
  %1394 = load i8, ptr %1393, align 1, !tbaa !27
  %1395 = zext i8 %1394 to i64
  %1396 = load i32, ptr %19, align 4, !tbaa !9
  %1397 = zext i32 %1396 to i64
  %1398 = shl i64 %1395, %1397
  %1399 = load ptr, ptr %24, align 8, !tbaa !5
  %1400 = getelementptr inbounds i8, ptr %1399, i64 1
  %1401 = load i8, ptr %1400, align 1, !tbaa !27
  %1402 = zext i8 %1401 to i64
  %1403 = load i32, ptr %19, align 4, !tbaa !9
  %1404 = add i32 %1403, 8
  %1405 = zext i32 %1404 to i64
  %1406 = shl i64 %1402, %1405
  %1407 = or i64 %1398, %1406
  %1408 = load i64, ptr %23, align 8, !tbaa !11
  %1409 = or i64 %1408, %1407
  store i64 %1409, ptr %23, align 8, !tbaa !11
  %1410 = load ptr, ptr %24, align 8, !tbaa !5
  %1411 = getelementptr inbounds i8, ptr %1410, i64 2
  store ptr %1411, ptr %24, align 8, !tbaa !5
  %1412 = load i32, ptr %19, align 4, !tbaa !9
  %1413 = add i32 %1412, 16
  store i32 %1413, ptr %19, align 4, !tbaa !9
  br label %1414

1414:                                             ; preds = %1391, %1390
  br label %1415

1415:                                             ; preds = %1414, %1284
  %1416 = load ptr, ptr %9, align 8, !tbaa !5
  %1417 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1416, i32 0, i32 14
  %1418 = getelementptr inbounds [3 x [1024 x i16]], ptr %1417, i64 0, i64 2
  %1419 = load i64, ptr %23, align 8, !tbaa !11
  %1420 = and i64 %1419, 1023
  %1421 = getelementptr inbounds [1024 x i16], ptr %1418, i64 0, i64 %1420
  %1422 = load i16, ptr %1421, align 2, !tbaa !52
  %1423 = sext i16 %1422 to i32
  store i32 %1423, ptr %59, align 4, !tbaa !9
  %1424 = icmp sge i32 %1423, 0
  br i1 %1424, label %1425, label %1430

1425:                                             ; preds = %1415
  %1426 = load i32, ptr %59, align 4, !tbaa !9
  %1427 = ashr i32 %1426, 9
  store i32 %1427, ptr %60, align 4, !tbaa !9
  %1428 = load i32, ptr %59, align 4, !tbaa !9
  %1429 = and i32 %1428, 511
  store i32 %1429, ptr %59, align 4, !tbaa !9
  br label %1451

1430:                                             ; preds = %1415
  store i32 10, ptr %60, align 4, !tbaa !9
  br label %1431

1431:                                             ; preds = %1447, %1430
  %1432 = load ptr, ptr %9, align 8, !tbaa !5
  %1433 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1432, i32 0, i32 17
  %1434 = load i32, ptr %59, align 4, !tbaa !9
  %1435 = xor i32 %1434, -1
  %1436 = sext i32 %1435 to i64
  %1437 = load i64, ptr %23, align 8, !tbaa !11
  %1438 = load i32, ptr %60, align 4, !tbaa !9
  %1439 = add i32 %1438, 1
  store i32 %1439, ptr %60, align 4, !tbaa !9
  %1440 = zext i32 %1438 to i64
  %1441 = lshr i64 %1437, %1440
  %1442 = and i64 %1441, 1
  %1443 = add i64 %1436, %1442
  %1444 = getelementptr inbounds [38 x i16], ptr %1433, i64 0, i64 %1443
  %1445 = load i16, ptr %1444, align 2, !tbaa !52
  %1446 = sext i16 %1445 to i32
  store i32 %1446, ptr %59, align 4, !tbaa !9
  br label %1447

1447:                                             ; preds = %1431
  %1448 = load i32, ptr %59, align 4, !tbaa !9
  %1449 = icmp slt i32 %1448, 0
  br i1 %1449, label %1431, label %1450, !llvm.loop !67

1450:                                             ; preds = %1447
  br label %1451

1451:                                             ; preds = %1450, %1425
  %1452 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %1452, ptr %20, align 4, !tbaa !9
  %1453 = load i32, ptr %60, align 4, !tbaa !9
  %1454 = load i64, ptr %23, align 8, !tbaa !11
  %1455 = zext i32 %1453 to i64
  %1456 = lshr i64 %1454, %1455
  store i64 %1456, ptr %23, align 8, !tbaa !11
  %1457 = load i32, ptr %60, align 4, !tbaa !9
  %1458 = load i32, ptr %19, align 4, !tbaa !9
  %1459 = sub i32 %1458, %1457
  store i32 %1459, ptr %19, align 4, !tbaa !9
  br label %1460

1460:                                             ; preds = %1451
  br label %1461

1461:                                             ; preds = %1460
  %1462 = load i32, ptr %20, align 4, !tbaa !9
  %1463 = icmp ult i32 %1462, 16
  br i1 %1463, label %1464, label %1473

1464:                                             ; preds = %1461
  %1465 = load i32, ptr %20, align 4, !tbaa !9
  %1466 = trunc i32 %1465 to i8
  %1467 = load ptr, ptr %9, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1467, i32 0, i32 22
  %1469 = load i32, ptr %21, align 4, !tbaa !9
  %1470 = add i32 %1469, 1
  store i32 %1470, ptr %21, align 4, !tbaa !9
  %1471 = zext i32 %1469 to i64
  %1472 = getelementptr inbounds [457 x i8], ptr %1468, i64 0, i64 %1471
  store i8 %1466, ptr %1472, align 1, !tbaa !27
  br label %1271, !llvm.loop !68

1473:                                             ; preds = %1461
  %1474 = load i32, ptr %20, align 4, !tbaa !9
  %1475 = icmp eq i32 %1474, 16
  br i1 %1475, label %1476, label %1490

1476:                                             ; preds = %1473
  %1477 = load i32, ptr %21, align 4, !tbaa !9
  %1478 = icmp ne i32 %1477, 0
  br i1 %1478, label %1490, label %1479

1479:                                             ; preds = %1476
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

1481:                                             ; preds = %1487, %1480
  br label %1482

1482:                                             ; preds = %1481
  store i32 -1, ptr %18, align 4, !tbaa !9
  %1483 = load ptr, ptr %9, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1483, i32 0, i32 0
  store i32 17, ptr %1484, align 8, !tbaa !20
  br label %2709

1485:                                             ; preds = %129
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486
  br label %1481

1488:                                             ; No predecessors!
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489, %1476, %1473
  %1491 = load i32, ptr %20, align 4, !tbaa !9
  %1492 = sub i32 %1491, 16
  %1493 = zext i32 %1492 to i64
  %1494 = getelementptr inbounds [4 x i8], ptr @.str.15, i64 0, i64 %1493
  %1495 = load i8, ptr %1494, align 1, !tbaa !27
  %1496 = sext i8 %1495 to i32
  store i32 %1496, ptr %22, align 4, !tbaa !9
  br label %1497

1497:                                             ; preds = %1490
  %1498 = load i32, ptr %19, align 4, !tbaa !9
  %1499 = load i32, ptr %22, align 4, !tbaa !9
  %1500 = icmp ult i32 %1498, %1499
  br i1 %1500, label %1501, label %1541

1501:                                             ; preds = %1497
  br label %1502

1502:                                             ; preds = %1536, %1501
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1519, %1503
  %1505 = load ptr, ptr %24, align 8, !tbaa !5
  %1506 = load ptr, ptr %25, align 8, !tbaa !5
  %1507 = icmp uge ptr %1505, %1506
  br i1 %1507, label %1508, label %1520

1508:                                             ; preds = %1504
  br label %1509

1509:                                             ; preds = %1508
  %1510 = load i32, ptr %15, align 4, !tbaa !9
  %1511 = and i32 %1510, 2
  %1512 = icmp ne i32 %1511, 0
  %1513 = zext i1 %1512 to i64
  %1514 = select i1 %1512, i32 1, i32 -4
  store i32 %1514, ptr %18, align 4, !tbaa !9
  %1515 = load ptr, ptr %9, align 8, !tbaa !5
  %1516 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1515, i32 0, i32 0
  store i32 18, ptr %1516, align 8, !tbaa !20
  br label %2709

1517:                                             ; preds = %129
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  br label %1504, !llvm.loop !69

1520:                                             ; preds = %1504
  %1521 = load ptr, ptr %24, align 8, !tbaa !5
  %1522 = getelementptr inbounds i8, ptr %1521, i32 1
  store ptr %1522, ptr %24, align 8, !tbaa !5
  %1523 = load i8, ptr %1521, align 1, !tbaa !27
  %1524 = zext i8 %1523 to i32
  store i32 %1524, ptr %62, align 4, !tbaa !9
  br label %1525

1525:                                             ; preds = %1520
  br label %1526

1526:                                             ; preds = %1525
  %1527 = load i32, ptr %62, align 4, !tbaa !9
  %1528 = zext i32 %1527 to i64
  %1529 = load i32, ptr %19, align 4, !tbaa !9
  %1530 = zext i32 %1529 to i64
  %1531 = shl i64 %1528, %1530
  %1532 = load i64, ptr %23, align 8, !tbaa !11
  %1533 = or i64 %1532, %1531
  store i64 %1533, ptr %23, align 8, !tbaa !11
  %1534 = load i32, ptr %19, align 4, !tbaa !9
  %1535 = add i32 %1534, 8
  store i32 %1535, ptr %19, align 4, !tbaa !9
  br label %1536

1536:                                             ; preds = %1526
  %1537 = load i32, ptr %19, align 4, !tbaa !9
  %1538 = load i32, ptr %22, align 4, !tbaa !9
  %1539 = icmp ult i32 %1537, %1538
  br i1 %1539, label %1502, label %1540, !llvm.loop !70

1540:                                             ; preds = %1536
  br label %1541

1541:                                             ; preds = %1540, %1497
  %1542 = load i64, ptr %23, align 8, !tbaa !11
  %1543 = load i32, ptr %22, align 4, !tbaa !9
  %1544 = shl i32 1, %1543
  %1545 = sub nsw i32 %1544, 1
  %1546 = sext i32 %1545 to i64
  %1547 = and i64 %1542, %1546
  %1548 = trunc i64 %1547 to i32
  store i32 %1548, ptr %58, align 4, !tbaa !9
  %1549 = load i32, ptr %22, align 4, !tbaa !9
  %1550 = load i64, ptr %23, align 8, !tbaa !11
  %1551 = zext i32 %1549 to i64
  %1552 = lshr i64 %1550, %1551
  store i64 %1552, ptr %23, align 8, !tbaa !11
  %1553 = load i32, ptr %22, align 4, !tbaa !9
  %1554 = load i32, ptr %19, align 4, !tbaa !9
  %1555 = sub i32 %1554, %1553
  store i32 %1555, ptr %19, align 4, !tbaa !9
  br label %1556

1556:                                             ; preds = %1541
  br label %1557

1557:                                             ; preds = %1556
  %1558 = load i32, ptr %20, align 4, !tbaa !9
  %1559 = sub i32 %1558, 16
  %1560 = zext i32 %1559 to i64
  %1561 = getelementptr inbounds [4 x i8], ptr @.str.16, i64 0, i64 %1560
  %1562 = load i8, ptr %1561, align 1, !tbaa !27
  %1563 = sext i8 %1562 to i32
  %1564 = load i32, ptr %58, align 4, !tbaa !9
  %1565 = add i32 %1564, %1563
  store i32 %1565, ptr %58, align 4, !tbaa !9
  %1566 = load ptr, ptr %9, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1566, i32 0, i32 22
  %1568 = getelementptr inbounds [457 x i8], ptr %1567, i64 0, i64 0
  %1569 = load i32, ptr %21, align 4, !tbaa !9
  %1570 = zext i32 %1569 to i64
  %1571 = getelementptr inbounds i8, ptr %1568, i64 %1570
  %1572 = load i32, ptr %20, align 4, !tbaa !9
  %1573 = icmp eq i32 %1572, 16
  br i1 %1573, label %1574, label %1583

1574:                                             ; preds = %1557
  %1575 = load ptr, ptr %9, align 8, !tbaa !5
  %1576 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1575, i32 0, i32 22
  %1577 = load i32, ptr %21, align 4, !tbaa !9
  %1578 = sub i32 %1577, 1
  %1579 = zext i32 %1578 to i64
  %1580 = getelementptr inbounds [457 x i8], ptr %1576, i64 0, i64 %1579
  %1581 = load i8, ptr %1580, align 1, !tbaa !27
  %1582 = zext i8 %1581 to i32
  br label %1584

1583:                                             ; preds = %1557
  br label %1584

1584:                                             ; preds = %1583, %1574
  %1585 = phi i32 [ %1582, %1574 ], [ 0, %1583 ]
  %1586 = trunc i32 %1585 to i8
  %1587 = load i32, ptr %58, align 4, !tbaa !9
  %1588 = zext i32 %1587 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1571, i8 %1586, i64 %1588, i1 false)
  %1589 = load i32, ptr %58, align 4, !tbaa !9
  %1590 = load i32, ptr %21, align 4, !tbaa !9
  %1591 = add i32 %1590, %1589
  store i32 %1591, ptr %21, align 4, !tbaa !9
  br label %1271, !llvm.loop !68

1592:                                             ; preds = %1271
  %1593 = load ptr, ptr %9, align 8, !tbaa !5
  %1594 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1593, i32 0, i32 11
  %1595 = getelementptr inbounds [3 x i32], ptr %1594, i64 0, i64 0
  %1596 = load i32, ptr %1595, align 4, !tbaa !9
  %1597 = load ptr, ptr %9, align 8, !tbaa !5
  %1598 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1597, i32 0, i32 11
  %1599 = getelementptr inbounds [3 x i32], ptr %1598, i64 0, i64 1
  %1600 = load i32, ptr %1599, align 4, !tbaa !9
  %1601 = add i32 %1596, %1600
  %1602 = load i32, ptr %21, align 4, !tbaa !9
  %1603 = icmp ne i32 %1601, %1602
  br i1 %1603, label %1604, label %1615

1604:                                             ; preds = %1592
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

1606:                                             ; preds = %1612, %1605
  br label %1607

1607:                                             ; preds = %1606
  store i32 -1, ptr %18, align 4, !tbaa !9
  %1608 = load ptr, ptr %9, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1608, i32 0, i32 0
  store i32 21, ptr %1609, align 8, !tbaa !20
  br label %2709

1610:                                             ; preds = %129
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

1612:                                             ; preds = %1611
  br label %1606

1613:                                             ; No predecessors!
  br label %1614

1614:                                             ; preds = %1613
  br label %1615

1615:                                             ; preds = %1614, %1592
  %1616 = load ptr, ptr %9, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1616, i32 0, i32 18
  %1618 = getelementptr inbounds [288 x i8], ptr %1617, i64 0, i64 0
  %1619 = load ptr, ptr %9, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1619, i32 0, i32 22
  %1621 = getelementptr inbounds [457 x i8], ptr %1620, i64 0, i64 0
  %1622 = load ptr, ptr %9, align 8, !tbaa !5
  %1623 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1622, i32 0, i32 11
  %1624 = getelementptr inbounds [3 x i32], ptr %1623, i64 0, i64 0
  %1625 = load i32, ptr %1624, align 4, !tbaa !9
  %1626 = zext i32 %1625 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1618, ptr align 1 %1621, i64 %1626, i1 false)
  %1627 = load ptr, ptr %9, align 8, !tbaa !5
  %1628 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1627, i32 0, i32 19
  %1629 = getelementptr inbounds [32 x i8], ptr %1628, i64 0, i64 0
  %1630 = load ptr, ptr %9, align 8, !tbaa !5
  %1631 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1630, i32 0, i32 22
  %1632 = getelementptr inbounds [457 x i8], ptr %1631, i64 0, i64 0
  %1633 = load ptr, ptr %9, align 8, !tbaa !5
  %1634 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1633, i32 0, i32 11
  %1635 = getelementptr inbounds [3 x i32], ptr %1634, i64 0, i64 0
  %1636 = load i32, ptr %1635, align 4, !tbaa !9
  %1637 = zext i32 %1636 to i64
  %1638 = getelementptr inbounds i8, ptr %1632, i64 %1637
  %1639 = load ptr, ptr %9, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1639, i32 0, i32 11
  %1641 = getelementptr inbounds [3 x i32], ptr %1640, i64 0, i64 1
  %1642 = load i32, ptr %1641, align 4, !tbaa !9
  %1643 = zext i32 %1642 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1629, ptr align 1 %1638, i64 %1643, i1 false)
  br label %1644

1644:                                             ; preds = %1615, %1265
  br label %1645

1645:                                             ; preds = %1644
  %1646 = load ptr, ptr %9, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1646, i32 0, i32 6
  %1648 = load i32, ptr %1647, align 8, !tbaa !32
  %1649 = add i32 %1648, -1
  store i32 %1649, ptr %1647, align 8, !tbaa !32
  br label %1016, !llvm.loop !71

1650:                                             ; preds = %1016
  br label %1651

1651:                                             ; preds = %2500, %2451, %1650
  br label %1652

1652:                                             ; preds = %2025, %1651
  %1653 = load ptr, ptr %25, align 8, !tbaa !5
  %1654 = load ptr, ptr %24, align 8, !tbaa !5
  %1655 = ptrtoint ptr %1653 to i64
  %1656 = ptrtoint ptr %1654 to i64
  %1657 = sub i64 %1655, %1656
  %1658 = icmp slt i64 %1657, 4
  br i1 %1658, label %1666, label %1659

1659:                                             ; preds = %1652
  %1660 = load ptr, ptr %27, align 8, !tbaa !5
  %1661 = load ptr, ptr %26, align 8, !tbaa !5
  %1662 = ptrtoint ptr %1660 to i64
  %1663 = ptrtoint ptr %1661 to i64
  %1664 = sub i64 %1662, %1663
  %1665 = icmp slt i64 %1664, 2
  br i1 %1665, label %1666, label %1865

1666:                                             ; preds = %1659, %1652
  br label %1667

1667:                                             ; preds = %1666
  %1668 = load i32, ptr %19, align 4, !tbaa !9
  %1669 = icmp ult i32 %1668, 15
  br i1 %1669, label %1670, label %1798

1670:                                             ; preds = %1667
  %1671 = load ptr, ptr %25, align 8, !tbaa !5
  %1672 = load ptr, ptr %24, align 8, !tbaa !5
  %1673 = ptrtoint ptr %1671 to i64
  %1674 = ptrtoint ptr %1672 to i64
  %1675 = sub i64 %1673, %1674
  %1676 = icmp slt i64 %1675, 2
  br i1 %1676, label %1677, label %1774

1677:                                             ; preds = %1670
  br label %1678

1678:                                             ; preds = %1770, %1677
  %1679 = load ptr, ptr %9, align 8, !tbaa !5
  %1680 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1679, i32 0, i32 14
  %1681 = getelementptr inbounds [3 x [1024 x i16]], ptr %1680, i64 0, i64 0
  %1682 = load i64, ptr %23, align 8, !tbaa !11
  %1683 = and i64 %1682, 1023
  %1684 = getelementptr inbounds [1024 x i16], ptr %1681, i64 0, i64 %1683
  %1685 = load i16, ptr %1684, align 2, !tbaa !52
  %1686 = sext i16 %1685 to i32
  store i32 %1686, ptr %64, align 4, !tbaa !9
  %1687 = load i32, ptr %64, align 4, !tbaa !9
  %1688 = icmp sge i32 %1687, 0
  br i1 %1688, label %1689, label %1700

1689:                                             ; preds = %1678
  %1690 = load i32, ptr %64, align 4, !tbaa !9
  %1691 = ashr i32 %1690, 9
  store i32 %1691, ptr %65, align 4, !tbaa !9
  %1692 = load i32, ptr %65, align 4, !tbaa !9
  %1693 = icmp ne i32 %1692, 0
  br i1 %1693, label %1694, label %1699

1694:                                             ; preds = %1689
  %1695 = load i32, ptr %19, align 4, !tbaa !9
  %1696 = load i32, ptr %65, align 4, !tbaa !9
  %1697 = icmp uge i32 %1695, %1696
  br i1 %1697, label %1698, label %1699

1698:                                             ; preds = %1694
  br label %1773

1699:                                             ; preds = %1694, %1689
  br label %1736

1700:                                             ; preds = %1678
  %1701 = load i32, ptr %19, align 4, !tbaa !9
  %1702 = icmp ugt i32 %1701, 10
  br i1 %1702, label %1703, label %1735

1703:                                             ; preds = %1700
  store i32 10, ptr %65, align 4, !tbaa !9
  br label %1704

1704:                                             ; preds = %1728, %1703
  %1705 = load ptr, ptr %9, align 8, !tbaa !5
  %1706 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1705, i32 0, i32 15
  %1707 = load i32, ptr %64, align 4, !tbaa !9
  %1708 = xor i32 %1707, -1
  %1709 = sext i32 %1708 to i64
  %1710 = load i64, ptr %23, align 8, !tbaa !11
  %1711 = load i32, ptr %65, align 4, !tbaa !9
  %1712 = add i32 %1711, 1
  store i32 %1712, ptr %65, align 4, !tbaa !9
  %1713 = zext i32 %1711 to i64
  %1714 = lshr i64 %1710, %1713
  %1715 = and i64 %1714, 1
  %1716 = add i64 %1709, %1715
  %1717 = getelementptr inbounds [576 x i16], ptr %1706, i64 0, i64 %1716
  %1718 = load i16, ptr %1717, align 2, !tbaa !52
  %1719 = sext i16 %1718 to i32
  store i32 %1719, ptr %64, align 4, !tbaa !9
  br label %1720

1720:                                             ; preds = %1704
  %1721 = load i32, ptr %64, align 4, !tbaa !9
  %1722 = icmp slt i32 %1721, 0
  br i1 %1722, label %1723, label %1728

1723:                                             ; preds = %1720
  %1724 = load i32, ptr %19, align 4, !tbaa !9
  %1725 = load i32, ptr %65, align 4, !tbaa !9
  %1726 = add i32 %1725, 1
  %1727 = icmp uge i32 %1724, %1726
  br label %1728

1728:                                             ; preds = %1723, %1720
  %1729 = phi i1 [ false, %1720 ], [ %1727, %1723 ]
  br i1 %1729, label %1704, label %1730, !llvm.loop !72

1730:                                             ; preds = %1728
  %1731 = load i32, ptr %64, align 4, !tbaa !9
  %1732 = icmp sge i32 %1731, 0
  br i1 %1732, label %1733, label %1734

1733:                                             ; preds = %1730
  br label %1773

1734:                                             ; preds = %1730
  br label %1735

1735:                                             ; preds = %1734, %1700
  br label %1736

1736:                                             ; preds = %1735, %1699
  br label %1737

1737:                                             ; preds = %1736
  br label %1738

1738:                                             ; preds = %1753, %1737
  %1739 = load ptr, ptr %24, align 8, !tbaa !5
  %1740 = load ptr, ptr %25, align 8, !tbaa !5
  %1741 = icmp uge ptr %1739, %1740
  br i1 %1741, label %1742, label %1754

1742:                                             ; preds = %1738
  br label %1743

1743:                                             ; preds = %1742
  %1744 = load i32, ptr %15, align 4, !tbaa !9
  %1745 = and i32 %1744, 2
  %1746 = icmp ne i32 %1745, 0
  %1747 = zext i1 %1746 to i64
  %1748 = select i1 %1746, i32 1, i32 -4
  store i32 %1748, ptr %18, align 4, !tbaa !9
  %1749 = load ptr, ptr %9, align 8, !tbaa !5
  %1750 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1749, i32 0, i32 0
  store i32 23, ptr %1750, align 8, !tbaa !20
  br label %2709

1751:                                             ; preds = %129
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752
  br label %1738, !llvm.loop !73

1754:                                             ; preds = %1738
  %1755 = load ptr, ptr %24, align 8, !tbaa !5
  %1756 = getelementptr inbounds i8, ptr %1755, i32 1
  store ptr %1756, ptr %24, align 8, !tbaa !5
  %1757 = load i8, ptr %1755, align 1, !tbaa !27
  %1758 = zext i8 %1757 to i32
  store i32 %1758, ptr %66, align 4, !tbaa !9
  br label %1759

1759:                                             ; preds = %1754
  br label %1760

1760:                                             ; preds = %1759
  %1761 = load i32, ptr %66, align 4, !tbaa !9
  %1762 = zext i32 %1761 to i64
  %1763 = load i32, ptr %19, align 4, !tbaa !9
  %1764 = zext i32 %1763 to i64
  %1765 = shl i64 %1762, %1764
  %1766 = load i64, ptr %23, align 8, !tbaa !11
  %1767 = or i64 %1766, %1765
  store i64 %1767, ptr %23, align 8, !tbaa !11
  %1768 = load i32, ptr %19, align 4, !tbaa !9
  %1769 = add i32 %1768, 8
  store i32 %1769, ptr %19, align 4, !tbaa !9
  br label %1770

1770:                                             ; preds = %1760
  %1771 = load i32, ptr %19, align 4, !tbaa !9
  %1772 = icmp ult i32 %1771, 15
  br i1 %1772, label %1678, label %1773, !llvm.loop !74

1773:                                             ; preds = %1770, %1733, %1698
  br label %1797

1774:                                             ; preds = %1670
  %1775 = load ptr, ptr %24, align 8, !tbaa !5
  %1776 = getelementptr inbounds i8, ptr %1775, i64 0
  %1777 = load i8, ptr %1776, align 1, !tbaa !27
  %1778 = zext i8 %1777 to i64
  %1779 = load i32, ptr %19, align 4, !tbaa !9
  %1780 = zext i32 %1779 to i64
  %1781 = shl i64 %1778, %1780
  %1782 = load ptr, ptr %24, align 8, !tbaa !5
  %1783 = getelementptr inbounds i8, ptr %1782, i64 1
  %1784 = load i8, ptr %1783, align 1, !tbaa !27
  %1785 = zext i8 %1784 to i64
  %1786 = load i32, ptr %19, align 4, !tbaa !9
  %1787 = add i32 %1786, 8
  %1788 = zext i32 %1787 to i64
  %1789 = shl i64 %1785, %1788
  %1790 = or i64 %1781, %1789
  %1791 = load i64, ptr %23, align 8, !tbaa !11
  %1792 = or i64 %1791, %1790
  store i64 %1792, ptr %23, align 8, !tbaa !11
  %1793 = load ptr, ptr %24, align 8, !tbaa !5
  %1794 = getelementptr inbounds i8, ptr %1793, i64 2
  store ptr %1794, ptr %24, align 8, !tbaa !5
  %1795 = load i32, ptr %19, align 4, !tbaa !9
  %1796 = add i32 %1795, 16
  store i32 %1796, ptr %19, align 4, !tbaa !9
  br label %1797

1797:                                             ; preds = %1774, %1773
  br label %1798

1798:                                             ; preds = %1797, %1667
  %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 [1024 x i16]], ptr %1800, i64 0, i64 0
  %1802 = load i64, ptr %23, align 8, !tbaa !11
  %1803 = and i64 %1802, 1023
  %1804 = getelementptr inbounds [1024 x i16], ptr %1801, i64 0, i64 %1803
  %1805 = load i16, ptr %1804, align 2, !tbaa !52
  %1806 = sext i16 %1805 to i32
  store i32 %1806, ptr %64, align 4, !tbaa !9
  %1807 = icmp sge i32 %1806, 0
  br i1 %1807, label %1808, label %1813

1808:                                             ; preds = %1798
  %1809 = load i32, ptr %64, align 4, !tbaa !9
  %1810 = ashr i32 %1809, 9
  store i32 %1810, ptr %65, align 4, !tbaa !9
  %1811 = load i32, ptr %64, align 4, !tbaa !9
  %1812 = and i32 %1811, 511
  store i32 %1812, ptr %64, align 4, !tbaa !9
  br label %1834

1813:                                             ; preds = %1798
  store i32 10, ptr %65, align 4, !tbaa !9
  br label %1814

1814:                                             ; preds = %1830, %1813
  %1815 = load ptr, ptr %9, align 8, !tbaa !5
  %1816 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1815, i32 0, i32 15
  %1817 = load i32, ptr %64, align 4, !tbaa !9
  %1818 = xor i32 %1817, -1
  %1819 = sext i32 %1818 to i64
  %1820 = load i64, ptr %23, align 8, !tbaa !11
  %1821 = load i32, ptr %65, align 4, !tbaa !9
  %1822 = add i32 %1821, 1
  store i32 %1822, ptr %65, align 4, !tbaa !9
  %1823 = zext i32 %1821 to i64
  %1824 = lshr i64 %1820, %1823
  %1825 = and i64 %1824, 1
  %1826 = add i64 %1819, %1825
  %1827 = getelementptr inbounds [576 x i16], ptr %1816, i64 0, i64 %1826
  %1828 = load i16, ptr %1827, align 2, !tbaa !52
  %1829 = sext i16 %1828 to i32
  store i32 %1829, ptr %64, align 4, !tbaa !9
  br label %1830

1830:                                             ; preds = %1814
  %1831 = load i32, ptr %64, align 4, !tbaa !9
  %1832 = icmp slt i32 %1831, 0
  br i1 %1832, label %1814, label %1833, !llvm.loop !75

1833:                                             ; preds = %1830
  br label %1834

1834:                                             ; preds = %1833, %1808
  %1835 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %1835, ptr %21, align 4, !tbaa !9
  %1836 = load i32, ptr %65, align 4, !tbaa !9
  %1837 = load i64, ptr %23, align 8, !tbaa !11
  %1838 = zext i32 %1836 to i64
  %1839 = lshr i64 %1837, %1838
  store i64 %1839, ptr %23, align 8, !tbaa !11
  %1840 = load i32, ptr %65, align 4, !tbaa !9
  %1841 = load i32, ptr %19, align 4, !tbaa !9
  %1842 = sub i32 %1841, %1840
  store i32 %1842, ptr %19, align 4, !tbaa !9
  br label %1843

1843:                                             ; preds = %1834
  br label %1844

1844:                                             ; preds = %1843
  %1845 = load i32, ptr %21, align 4, !tbaa !9
  %1846 = icmp uge i32 %1845, 256
  br i1 %1846, label %1847, label %1848

1847:                                             ; preds = %1844
  br label %2026

1848:                                             ; preds = %1844
  br label %1849

1849:                                             ; preds = %1859, %1848
  %1850 = load ptr, ptr %26, align 8, !tbaa !5
  %1851 = load ptr, ptr %27, align 8, !tbaa !5
  %1852 = icmp uge ptr %1850, %1851
  br i1 %1852, label %1853, label %1860

1853:                                             ; preds = %1849
  br label %1854

1854:                                             ; preds = %1853
  store i32 2, ptr %18, align 4, !tbaa !9
  %1855 = load ptr, ptr %9, align 8, !tbaa !5
  %1856 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1855, i32 0, i32 0
  store i32 24, ptr %1856, align 8, !tbaa !20
  br label %2709

1857:                                             ; preds = %129
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858
  br label %1849, !llvm.loop !76

1860:                                             ; preds = %1849
  %1861 = load i32, ptr %21, align 4, !tbaa !9
  %1862 = trunc i32 %1861 to i8
  %1863 = load ptr, ptr %26, align 8, !tbaa !5
  %1864 = getelementptr inbounds i8, ptr %1863, i32 1
  store ptr %1864, ptr %26, align 8, !tbaa !5
  store i8 %1862, ptr %1863, align 1, !tbaa !27
  br label %2025

1865:                                             ; preds = %1659
  %1866 = load i32, ptr %19, align 4, !tbaa !9
  %1867 = icmp ult i32 %1866, 30
  br i1 %1867, label %1868, label %1901

1868:                                             ; preds = %1865
  %1869 = load ptr, ptr %24, align 8, !tbaa !5
  %1870 = getelementptr inbounds i8, ptr %1869, i64 0
  %1871 = load i8, ptr %1870, align 1, !tbaa !27
  %1872 = zext i8 %1871 to i32
  %1873 = load ptr, ptr %24, align 8, !tbaa !5
  %1874 = getelementptr inbounds i8, ptr %1873, i64 1
  %1875 = load i8, ptr %1874, align 1, !tbaa !27
  %1876 = zext i8 %1875 to i32
  %1877 = shl i32 %1876, 8
  %1878 = or i32 %1872, %1877
  %1879 = load ptr, ptr %24, align 8, !tbaa !5
  %1880 = getelementptr inbounds i8, ptr %1879, i64 2
  %1881 = load i8, ptr %1880, align 1, !tbaa !27
  %1882 = zext i8 %1881 to i32
  %1883 = shl i32 %1882, 16
  %1884 = or i32 %1878, %1883
  %1885 = load ptr, ptr %24, align 8, !tbaa !5
  %1886 = getelementptr inbounds i8, ptr %1885, i64 3
  %1887 = load i8, ptr %1886, align 1, !tbaa !27
  %1888 = zext i8 %1887 to i32
  %1889 = shl i32 %1888, 24
  %1890 = or i32 %1884, %1889
  %1891 = zext i32 %1890 to i64
  %1892 = load i32, ptr %19, align 4, !tbaa !9
  %1893 = zext i32 %1892 to i64
  %1894 = shl i64 %1891, %1893
  %1895 = load i64, ptr %23, align 8, !tbaa !11
  %1896 = or i64 %1895, %1894
  store i64 %1896, ptr %23, align 8, !tbaa !11
  %1897 = load ptr, ptr %24, align 8, !tbaa !5
  %1898 = getelementptr inbounds i8, ptr %1897, i64 4
  store ptr %1898, ptr %24, align 8, !tbaa !5
  %1899 = load i32, ptr %19, align 4, !tbaa !9
  %1900 = add i32 %1899, 32
  store i32 %1900, ptr %19, align 4, !tbaa !9
  br label %1901

1901:                                             ; preds = %1868, %1865
  %1902 = load ptr, ptr %9, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1902, i32 0, i32 14
  %1904 = getelementptr inbounds [3 x [1024 x i16]], ptr %1903, i64 0, i64 0
  %1905 = load i64, ptr %23, align 8, !tbaa !11
  %1906 = and i64 %1905, 1023
  %1907 = getelementptr inbounds [1024 x i16], ptr %1904, i64 0, i64 %1906
  %1908 = load i16, ptr %1907, align 2, !tbaa !52
  %1909 = sext i16 %1908 to i32
  store i32 %1909, ptr %67, align 4, !tbaa !9
  %1910 = icmp sge i32 %1909, 0
  br i1 %1910, label %1911, label %1914

1911:                                             ; preds = %1901
  %1912 = load i32, ptr %67, align 4, !tbaa !9
  %1913 = ashr i32 %1912, 9
  store i32 %1913, ptr %68, align 4, !tbaa !9
  br label %1935

1914:                                             ; preds = %1901
  store i32 10, ptr %68, align 4, !tbaa !9
  br label %1915

1915:                                             ; preds = %1931, %1914
  %1916 = load ptr, ptr %9, align 8, !tbaa !5
  %1917 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1916, i32 0, i32 15
  %1918 = load i32, ptr %67, align 4, !tbaa !9
  %1919 = xor i32 %1918, -1
  %1920 = sext i32 %1919 to i64
  %1921 = load i64, ptr %23, align 8, !tbaa !11
  %1922 = load i32, ptr %68, align 4, !tbaa !9
  %1923 = add i32 %1922, 1
  store i32 %1923, ptr %68, align 4, !tbaa !9
  %1924 = zext i32 %1922 to i64
  %1925 = lshr i64 %1921, %1924
  %1926 = and i64 %1925, 1
  %1927 = add i64 %1920, %1926
  %1928 = getelementptr inbounds [576 x i16], ptr %1917, i64 0, i64 %1927
  %1929 = load i16, ptr %1928, align 2, !tbaa !52
  %1930 = sext i16 %1929 to i32
  store i32 %1930, ptr %67, align 4, !tbaa !9
  br label %1931

1931:                                             ; preds = %1915
  %1932 = load i32, ptr %67, align 4, !tbaa !9
  %1933 = icmp slt i32 %1932, 0
  br i1 %1933, label %1915, label %1934, !llvm.loop !77

1934:                                             ; preds = %1931
  br label %1935

1935:                                             ; preds = %1934, %1911
  %1936 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %1936, ptr %21, align 4, !tbaa !9
  %1937 = load i32, ptr %68, align 4, !tbaa !9
  %1938 = load i64, ptr %23, align 8, !tbaa !11
  %1939 = zext i32 %1937 to i64
  %1940 = lshr i64 %1938, %1939
  store i64 %1940, ptr %23, align 8, !tbaa !11
  %1941 = load i32, ptr %68, align 4, !tbaa !9
  %1942 = load i32, ptr %19, align 4, !tbaa !9
  %1943 = sub i32 %1942, %1941
  store i32 %1943, ptr %19, align 4, !tbaa !9
  %1944 = load i32, ptr %21, align 4, !tbaa !9
  %1945 = and i32 %1944, 256
  %1946 = icmp ne i32 %1945, 0
  br i1 %1946, label %1947, label %1948

1947:                                             ; preds = %1935
  br label %2026

1948:                                             ; preds = %1935
  %1949 = load ptr, ptr %9, align 8, !tbaa !5
  %1950 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1949, i32 0, i32 14
  %1951 = getelementptr inbounds [3 x [1024 x i16]], ptr %1950, i64 0, i64 0
  %1952 = load i64, ptr %23, align 8, !tbaa !11
  %1953 = and i64 %1952, 1023
  %1954 = getelementptr inbounds [1024 x i16], ptr %1951, i64 0, i64 %1953
  %1955 = load i16, ptr %1954, align 2, !tbaa !52
  %1956 = sext i16 %1955 to i32
  store i32 %1956, ptr %67, align 4, !tbaa !9
  %1957 = icmp sge i32 %1956, 0
  br i1 %1957, label %1958, label %1961

1958:                                             ; preds = %1948
  %1959 = load i32, ptr %67, align 4, !tbaa !9
  %1960 = ashr i32 %1959, 9
  store i32 %1960, ptr %68, align 4, !tbaa !9
  br label %1982

1961:                                             ; preds = %1948
  store i32 10, ptr %68, align 4, !tbaa !9
  br label %1962

1962:                                             ; preds = %1978, %1961
  %1963 = load ptr, ptr %9, align 8, !tbaa !5
  %1964 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1963, i32 0, i32 15
  %1965 = load i32, ptr %67, align 4, !tbaa !9
  %1966 = xor i32 %1965, -1
  %1967 = sext i32 %1966 to i64
  %1968 = load i64, ptr %23, align 8, !tbaa !11
  %1969 = load i32, ptr %68, align 4, !tbaa !9
  %1970 = add i32 %1969, 1
  store i32 %1970, ptr %68, align 4, !tbaa !9
  %1971 = zext i32 %1969 to i64
  %1972 = lshr i64 %1968, %1971
  %1973 = and i64 %1972, 1
  %1974 = add i64 %1967, %1973
  %1975 = getelementptr inbounds [576 x i16], ptr %1964, i64 0, i64 %1974
  %1976 = load i16, ptr %1975, align 2, !tbaa !52
  %1977 = sext i16 %1976 to i32
  store i32 %1977, ptr %67, align 4, !tbaa !9
  br label %1978

1978:                                             ; preds = %1962
  %1979 = load i32, ptr %67, align 4, !tbaa !9
  %1980 = icmp slt i32 %1979, 0
  br i1 %1980, label %1962, label %1981, !llvm.loop !78

1981:                                             ; preds = %1978
  br label %1982

1982:                                             ; preds = %1981, %1958
  %1983 = load i32, ptr %68, align 4, !tbaa !9
  %1984 = load i64, ptr %23, align 8, !tbaa !11
  %1985 = zext i32 %1983 to i64
  %1986 = lshr i64 %1984, %1985
  store i64 %1986, ptr %23, align 8, !tbaa !11
  %1987 = load i32, ptr %68, align 4, !tbaa !9
  %1988 = load i32, ptr %19, align 4, !tbaa !9
  %1989 = sub i32 %1988, %1987
  store i32 %1989, ptr %19, align 4, !tbaa !9
  %1990 = load i32, ptr %67, align 4, !tbaa !9
  %1991 = icmp eq i32 %1990, 0
  br i1 %1991, label %1992, label %2006

1992:                                             ; preds = %1982
  %1993 = load i32, ptr %21, align 4, !tbaa !9
  %1994 = icmp eq i32 %1993, 0
  br i1 %1994, label %1995, label %2006

1995:                                             ; preds = %1992
  br label %1996

1996:                                             ; preds = %1995
  br label %1997

1997:                                             ; preds = %2003, %1996
  br label %1998

1998:                                             ; preds = %1997
  store i32 -1, ptr %18, align 4, !tbaa !9
  %1999 = load ptr, ptr %9, align 8, !tbaa !5
  %2000 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1999, i32 0, i32 0
  store i32 40, ptr %2000, align 8, !tbaa !20
  br label %2709

2001:                                             ; preds = %129
  br label %2002

2002:                                             ; preds = %2001
  br label %2003

2003:                                             ; preds = %2002
  br label %1997

2004:                                             ; No predecessors!
  br label %2005

2005:                                             ; preds = %2004
  br label %2006

2006:                                             ; preds = %2005, %1992, %1982
  %2007 = load i32, ptr %21, align 4, !tbaa !9
  %2008 = trunc i32 %2007 to i8
  %2009 = load ptr, ptr %26, align 8, !tbaa !5
  %2010 = getelementptr inbounds i8, ptr %2009, i64 0
  store i8 %2008, ptr %2010, align 1, !tbaa !27
  %2011 = load i32, ptr %67, align 4, !tbaa !9
  %2012 = and i32 %2011, 256
  %2013 = icmp ne i32 %2012, 0
  br i1 %2013, label %2014, label %2018

2014:                                             ; preds = %2006
  %2015 = load ptr, ptr %26, align 8, !tbaa !5
  %2016 = getelementptr inbounds i8, ptr %2015, i32 1
  store ptr %2016, ptr %26, align 8, !tbaa !5
  %2017 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %2017, ptr %21, align 4, !tbaa !9
  br label %2026

2018:                                             ; preds = %2006
  %2019 = load i32, ptr %67, align 4, !tbaa !9
  %2020 = trunc i32 %2019 to i8
  %2021 = load ptr, ptr %26, align 8, !tbaa !5
  %2022 = getelementptr inbounds i8, ptr %2021, i64 1
  store i8 %2020, ptr %2022, align 1, !tbaa !27
  %2023 = load ptr, ptr %26, align 8, !tbaa !5
  %2024 = getelementptr inbounds i8, ptr %2023, i64 2
  store ptr %2024, ptr %26, align 8, !tbaa !5
  br label %2025

2025:                                             ; preds = %2018, %1860
  br label %1652

2026:                                             ; preds = %2014, %1947, %1847
  %2027 = load i32, ptr %21, align 4, !tbaa !9
  %2028 = and i32 %2027, 511
  store i32 %2028, ptr %21, align 4, !tbaa !9
  %2029 = icmp eq i32 %2028, 256
  br i1 %2029, label %2030, label %2031

2030:                                             ; preds = %2026
  br label %2501

2031:                                             ; preds = %2026
  %2032 = load i32, ptr %21, align 4, !tbaa !9
  %2033 = sub i32 %2032, 257
  %2034 = zext i32 %2033 to i64
  %2035 = getelementptr inbounds [31 x i8], ptr @tinfl_decompress.s_length_extra, i64 0, i64 %2034
  %2036 = load i8, ptr %2035, align 1, !tbaa !27
  %2037 = zext i8 %2036 to i32
  store i32 %2037, ptr %22, align 4, !tbaa !9
  %2038 = load i32, ptr %21, align 4, !tbaa !9
  %2039 = sub i32 %2038, 257
  %2040 = zext i32 %2039 to i64
  %2041 = getelementptr inbounds [31 x i16], ptr @tinfl_decompress.s_length_base, i64 0, i64 %2040
  %2042 = load i16, ptr %2041, align 2, !tbaa !52
  %2043 = zext i16 %2042 to i32
  store i32 %2043, ptr %21, align 4, !tbaa !9
  %2044 = load i32, ptr %22, align 4, !tbaa !9
  %2045 = icmp ne i32 %2044, 0
  br i1 %2045, label %2046, label %2111

2046:                                             ; preds = %2031
  br label %2047

2047:                                             ; preds = %2046
  %2048 = load i32, ptr %19, align 4, !tbaa !9
  %2049 = load i32, ptr %22, align 4, !tbaa !9
  %2050 = icmp ult i32 %2048, %2049
  br i1 %2050, label %2051, label %2091

2051:                                             ; preds = %2047
  br label %2052

2052:                                             ; preds = %2086, %2051
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

2054:                                             ; preds = %2069, %2053
  %2055 = load ptr, ptr %24, align 8, !tbaa !5
  %2056 = load ptr, ptr %25, align 8, !tbaa !5
  %2057 = icmp uge ptr %2055, %2056
  br i1 %2057, label %2058, label %2070

2058:                                             ; preds = %2054
  br label %2059

2059:                                             ; preds = %2058
  %2060 = load i32, ptr %15, align 4, !tbaa !9
  %2061 = and i32 %2060, 2
  %2062 = icmp ne i32 %2061, 0
  %2063 = zext i1 %2062 to i64
  %2064 = select i1 %2062, i32 1, i32 -4
  store i32 %2064, ptr %18, align 4, !tbaa !9
  %2065 = load ptr, ptr %9, align 8, !tbaa !5
  %2066 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2065, i32 0, i32 0
  store i32 25, ptr %2066, align 8, !tbaa !20
  br label %2709

2067:                                             ; preds = %129
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

2069:                                             ; preds = %2068
  br label %2054, !llvm.loop !79

2070:                                             ; preds = %2054
  %2071 = load ptr, ptr %24, align 8, !tbaa !5
  %2072 = getelementptr inbounds i8, ptr %2071, i32 1
  store ptr %2072, ptr %24, align 8, !tbaa !5
  %2073 = load i8, ptr %2071, align 1, !tbaa !27
  %2074 = zext i8 %2073 to i32
  store i32 %2074, ptr %70, align 4, !tbaa !9
  br label %2075

2075:                                             ; preds = %2070
  br label %2076

2076:                                             ; preds = %2075
  %2077 = load i32, ptr %70, align 4, !tbaa !9
  %2078 = zext i32 %2077 to i64
  %2079 = load i32, ptr %19, align 4, !tbaa !9
  %2080 = zext i32 %2079 to i64
  %2081 = shl i64 %2078, %2080
  %2082 = load i64, ptr %23, align 8, !tbaa !11
  %2083 = or i64 %2082, %2081
  store i64 %2083, ptr %23, align 8, !tbaa !11
  %2084 = load i32, ptr %19, align 4, !tbaa !9
  %2085 = add i32 %2084, 8
  store i32 %2085, ptr %19, align 4, !tbaa !9
  br label %2086

2086:                                             ; preds = %2076
  %2087 = load i32, ptr %19, align 4, !tbaa !9
  %2088 = load i32, ptr %22, align 4, !tbaa !9
  %2089 = icmp ult i32 %2087, %2088
  br i1 %2089, label %2052, label %2090, !llvm.loop !80

2090:                                             ; preds = %2086
  br label %2091

2091:                                             ; preds = %2090, %2047
  %2092 = load i64, ptr %23, align 8, !tbaa !11
  %2093 = load i32, ptr %22, align 4, !tbaa !9
  %2094 = shl i32 1, %2093
  %2095 = sub nsw i32 %2094, 1
  %2096 = sext i32 %2095 to i64
  %2097 = and i64 %2092, %2096
  %2098 = trunc i64 %2097 to i32
  store i32 %2098, ptr %69, align 4, !tbaa !9
  %2099 = load i32, ptr %22, align 4, !tbaa !9
  %2100 = load i64, ptr %23, align 8, !tbaa !11
  %2101 = zext i32 %2099 to i64
  %2102 = lshr i64 %2100, %2101
  store i64 %2102, ptr %23, align 8, !tbaa !11
  %2103 = load i32, ptr %22, align 4, !tbaa !9
  %2104 = load i32, ptr %19, align 4, !tbaa !9
  %2105 = sub i32 %2104, %2103
  store i32 %2105, ptr %19, align 4, !tbaa !9
  br label %2106

2106:                                             ; preds = %2091
  br label %2107

2107:                                             ; preds = %2106
  %2108 = load i32, ptr %69, align 4, !tbaa !9
  %2109 = load i32, ptr %21, align 4, !tbaa !9
  %2110 = add i32 %2109, %2108
  store i32 %2110, ptr %21, align 4, !tbaa !9
  br label %2111

2111:                                             ; preds = %2107, %2031
  br label %2112

2112:                                             ; preds = %2111
  %2113 = load i32, ptr %19, align 4, !tbaa !9
  %2114 = icmp ult i32 %2113, 15
  br i1 %2114, label %2115, label %2243

2115:                                             ; preds = %2112
  %2116 = load ptr, ptr %25, align 8, !tbaa !5
  %2117 = load ptr, ptr %24, align 8, !tbaa !5
  %2118 = ptrtoint ptr %2116 to i64
  %2119 = ptrtoint ptr %2117 to i64
  %2120 = sub i64 %2118, %2119
  %2121 = icmp slt i64 %2120, 2
  br i1 %2121, label %2122, label %2219

2122:                                             ; preds = %2115
  br label %2123

2123:                                             ; preds = %2215, %2122
  %2124 = load ptr, ptr %9, align 8, !tbaa !5
  %2125 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2124, i32 0, i32 14
  %2126 = getelementptr inbounds [3 x [1024 x i16]], ptr %2125, i64 0, i64 1
  %2127 = load i64, ptr %23, align 8, !tbaa !11
  %2128 = and i64 %2127, 1023
  %2129 = getelementptr inbounds [1024 x i16], ptr %2126, i64 0, i64 %2128
  %2130 = load i16, ptr %2129, align 2, !tbaa !52
  %2131 = sext i16 %2130 to i32
  store i32 %2131, ptr %71, align 4, !tbaa !9
  %2132 = load i32, ptr %71, align 4, !tbaa !9
  %2133 = icmp sge i32 %2132, 0
  br i1 %2133, label %2134, label %2145

2134:                                             ; preds = %2123
  %2135 = load i32, ptr %71, align 4, !tbaa !9
  %2136 = ashr i32 %2135, 9
  store i32 %2136, ptr %72, align 4, !tbaa !9
  %2137 = load i32, ptr %72, align 4, !tbaa !9
  %2138 = icmp ne i32 %2137, 0
  br i1 %2138, label %2139, label %2144

2139:                                             ; preds = %2134
  %2140 = load i32, ptr %19, align 4, !tbaa !9
  %2141 = load i32, ptr %72, align 4, !tbaa !9
  %2142 = icmp uge i32 %2140, %2141
  br i1 %2142, label %2143, label %2144

2143:                                             ; preds = %2139
  br label %2218

2144:                                             ; preds = %2139, %2134
  br label %2181

2145:                                             ; preds = %2123
  %2146 = load i32, ptr %19, align 4, !tbaa !9
  %2147 = icmp ugt i32 %2146, 10
  br i1 %2147, label %2148, label %2180

2148:                                             ; preds = %2145
  store i32 10, ptr %72, align 4, !tbaa !9
  br label %2149

2149:                                             ; preds = %2173, %2148
  %2150 = load ptr, ptr %9, align 8, !tbaa !5
  %2151 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2150, i32 0, i32 16
  %2152 = load i32, ptr %71, align 4, !tbaa !9
  %2153 = xor i32 %2152, -1
  %2154 = sext i32 %2153 to i64
  %2155 = load i64, ptr %23, align 8, !tbaa !11
  %2156 = load i32, ptr %72, align 4, !tbaa !9
  %2157 = add i32 %2156, 1
  store i32 %2157, ptr %72, align 4, !tbaa !9
  %2158 = zext i32 %2156 to i64
  %2159 = lshr i64 %2155, %2158
  %2160 = and i64 %2159, 1
  %2161 = add i64 %2154, %2160
  %2162 = getelementptr inbounds [64 x i16], ptr %2151, i64 0, i64 %2161
  %2163 = load i16, ptr %2162, align 2, !tbaa !52
  %2164 = sext i16 %2163 to i32
  store i32 %2164, ptr %71, align 4, !tbaa !9
  br label %2165

2165:                                             ; preds = %2149
  %2166 = load i32, ptr %71, align 4, !tbaa !9
  %2167 = icmp slt i32 %2166, 0
  br i1 %2167, label %2168, label %2173

2168:                                             ; preds = %2165
  %2169 = load i32, ptr %19, align 4, !tbaa !9
  %2170 = load i32, ptr %72, align 4, !tbaa !9
  %2171 = add i32 %2170, 1
  %2172 = icmp uge i32 %2169, %2171
  br label %2173

2173:                                             ; preds = %2168, %2165
  %2174 = phi i1 [ false, %2165 ], [ %2172, %2168 ]
  br i1 %2174, label %2149, label %2175, !llvm.loop !81

2175:                                             ; preds = %2173
  %2176 = load i32, ptr %71, align 4, !tbaa !9
  %2177 = icmp sge i32 %2176, 0
  br i1 %2177, label %2178, label %2179

2178:                                             ; preds = %2175
  br label %2218

2179:                                             ; preds = %2175
  br label %2180

2180:                                             ; preds = %2179, %2145
  br label %2181

2181:                                             ; preds = %2180, %2144
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

2183:                                             ; preds = %2198, %2182
  %2184 = load ptr, ptr %24, align 8, !tbaa !5
  %2185 = load ptr, ptr %25, align 8, !tbaa !5
  %2186 = icmp uge ptr %2184, %2185
  br i1 %2186, label %2187, label %2199

2187:                                             ; preds = %2183
  br label %2188

2188:                                             ; preds = %2187
  %2189 = load i32, ptr %15, align 4, !tbaa !9
  %2190 = and i32 %2189, 2
  %2191 = icmp ne i32 %2190, 0
  %2192 = zext i1 %2191 to i64
  %2193 = select i1 %2191, i32 1, i32 -4
  store i32 %2193, ptr %18, align 4, !tbaa !9
  %2194 = load ptr, ptr %9, align 8, !tbaa !5
  %2195 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2194, i32 0, i32 0
  store i32 26, ptr %2195, align 8, !tbaa !20
  br label %2709

2196:                                             ; preds = %129
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

2198:                                             ; preds = %2197
  br label %2183, !llvm.loop !82

2199:                                             ; preds = %2183
  %2200 = load ptr, ptr %24, align 8, !tbaa !5
  %2201 = getelementptr inbounds i8, ptr %2200, i32 1
  store ptr %2201, ptr %24, align 8, !tbaa !5
  %2202 = load i8, ptr %2200, align 1, !tbaa !27
  %2203 = zext i8 %2202 to i32
  store i32 %2203, ptr %73, align 4, !tbaa !9
  br label %2204

2204:                                             ; preds = %2199
  br label %2205

2205:                                             ; preds = %2204
  %2206 = load i32, ptr %73, align 4, !tbaa !9
  %2207 = zext i32 %2206 to i64
  %2208 = load i32, ptr %19, align 4, !tbaa !9
  %2209 = zext i32 %2208 to i64
  %2210 = shl i64 %2207, %2209
  %2211 = load i64, ptr %23, align 8, !tbaa !11
  %2212 = or i64 %2211, %2210
  store i64 %2212, ptr %23, align 8, !tbaa !11
  %2213 = load i32, ptr %19, align 4, !tbaa !9
  %2214 = add i32 %2213, 8
  store i32 %2214, ptr %19, align 4, !tbaa !9
  br label %2215

2215:                                             ; preds = %2205
  %2216 = load i32, ptr %19, align 4, !tbaa !9
  %2217 = icmp ult i32 %2216, 15
  br i1 %2217, label %2123, label %2218, !llvm.loop !83

2218:                                             ; preds = %2215, %2178, %2143
  br label %2242

2219:                                             ; preds = %2115
  %2220 = load ptr, ptr %24, align 8, !tbaa !5
  %2221 = getelementptr inbounds i8, ptr %2220, i64 0
  %2222 = load i8, ptr %2221, align 1, !tbaa !27
  %2223 = zext i8 %2222 to i64
  %2224 = load i32, ptr %19, align 4, !tbaa !9
  %2225 = zext i32 %2224 to i64
  %2226 = shl i64 %2223, %2225
  %2227 = load ptr, ptr %24, align 8, !tbaa !5
  %2228 = getelementptr inbounds i8, ptr %2227, i64 1
  %2229 = load i8, ptr %2228, align 1, !tbaa !27
  %2230 = zext i8 %2229 to i64
  %2231 = load i32, ptr %19, align 4, !tbaa !9
  %2232 = add i32 %2231, 8
  %2233 = zext i32 %2232 to i64
  %2234 = shl i64 %2230, %2233
  %2235 = or i64 %2226, %2234
  %2236 = load i64, ptr %23, align 8, !tbaa !11
  %2237 = or i64 %2236, %2235
  store i64 %2237, ptr %23, align 8, !tbaa !11
  %2238 = load ptr, ptr %24, align 8, !tbaa !5
  %2239 = getelementptr inbounds i8, ptr %2238, i64 2
  store ptr %2239, ptr %24, align 8, !tbaa !5
  %2240 = load i32, ptr %19, align 4, !tbaa !9
  %2241 = add i32 %2240, 16
  store i32 %2241, ptr %19, align 4, !tbaa !9
  br label %2242

2242:                                             ; preds = %2219, %2218
  br label %2243

2243:                                             ; preds = %2242, %2112
  %2244 = load ptr, ptr %9, align 8, !tbaa !5
  %2245 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2244, i32 0, i32 14
  %2246 = getelementptr inbounds [3 x [1024 x i16]], ptr %2245, i64 0, i64 1
  %2247 = load i64, ptr %23, align 8, !tbaa !11
  %2248 = and i64 %2247, 1023
  %2249 = getelementptr inbounds [1024 x i16], ptr %2246, i64 0, i64 %2248
  %2250 = load i16, ptr %2249, align 2, !tbaa !52
  %2251 = sext i16 %2250 to i32
  store i32 %2251, ptr %71, align 4, !tbaa !9
  %2252 = icmp sge i32 %2251, 0
  br i1 %2252, label %2253, label %2258

2253:                                             ; preds = %2243
  %2254 = load i32, ptr %71, align 4, !tbaa !9
  %2255 = ashr i32 %2254, 9
  store i32 %2255, ptr %72, align 4, !tbaa !9
  %2256 = load i32, ptr %71, align 4, !tbaa !9
  %2257 = and i32 %2256, 511
  store i32 %2257, ptr %71, align 4, !tbaa !9
  br label %2279

2258:                                             ; preds = %2243
  store i32 10, ptr %72, align 4, !tbaa !9
  br label %2259

2259:                                             ; preds = %2275, %2258
  %2260 = load ptr, ptr %9, align 8, !tbaa !5
  %2261 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2260, i32 0, i32 16
  %2262 = load i32, ptr %71, align 4, !tbaa !9
  %2263 = xor i32 %2262, -1
  %2264 = sext i32 %2263 to i64
  %2265 = load i64, ptr %23, align 8, !tbaa !11
  %2266 = load i32, ptr %72, align 4, !tbaa !9
  %2267 = add i32 %2266, 1
  store i32 %2267, ptr %72, align 4, !tbaa !9
  %2268 = zext i32 %2266 to i64
  %2269 = lshr i64 %2265, %2268
  %2270 = and i64 %2269, 1
  %2271 = add i64 %2264, %2270
  %2272 = getelementptr inbounds [64 x i16], ptr %2261, i64 0, i64 %2271
  %2273 = load i16, ptr %2272, align 2, !tbaa !52
  %2274 = sext i16 %2273 to i32
  store i32 %2274, ptr %71, align 4, !tbaa !9
  br label %2275

2275:                                             ; preds = %2259
  %2276 = load i32, ptr %71, align 4, !tbaa !9
  %2277 = icmp slt i32 %2276, 0
  br i1 %2277, label %2259, label %2278, !llvm.loop !84

2278:                                             ; preds = %2275
  br label %2279

2279:                                             ; preds = %2278, %2253
  %2280 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %2280, ptr %20, align 4, !tbaa !9
  %2281 = load i32, ptr %72, align 4, !tbaa !9
  %2282 = load i64, ptr %23, align 8, !tbaa !11
  %2283 = zext i32 %2281 to i64
  %2284 = lshr i64 %2282, %2283
  store i64 %2284, ptr %23, align 8, !tbaa !11
  %2285 = load i32, ptr %72, align 4, !tbaa !9
  %2286 = load i32, ptr %19, align 4, !tbaa !9
  %2287 = sub i32 %2286, %2285
  store i32 %2287, ptr %19, align 4, !tbaa !9
  br label %2288

2288:                                             ; preds = %2279
  br label %2289

2289:                                             ; preds = %2288
  %2290 = load i32, ptr %20, align 4, !tbaa !9
  %2291 = zext i32 %2290 to i64
  %2292 = getelementptr inbounds [32 x i8], ptr @tinfl_decompress.s_dist_extra, i64 0, i64 %2291
  %2293 = load i8, ptr %2292, align 1, !tbaa !27
  %2294 = zext i8 %2293 to i32
  store i32 %2294, ptr %22, align 4, !tbaa !9
  %2295 = load i32, ptr %20, align 4, !tbaa !9
  %2296 = zext i32 %2295 to i64
  %2297 = getelementptr inbounds [32 x i16], ptr @tinfl_decompress.s_dist_base, i64 0, i64 %2296
  %2298 = load i16, ptr %2297, align 2, !tbaa !52
  %2299 = zext i16 %2298 to i32
  store i32 %2299, ptr %20, align 4, !tbaa !9
  %2300 = load i32, ptr %22, align 4, !tbaa !9
  %2301 = icmp ne i32 %2300, 0
  br i1 %2301, label %2302, label %2367

2302:                                             ; preds = %2289
  br label %2303

2303:                                             ; preds = %2302
  %2304 = load i32, ptr %19, align 4, !tbaa !9
  %2305 = load i32, ptr %22, align 4, !tbaa !9
  %2306 = icmp ult i32 %2304, %2305
  br i1 %2306, label %2307, label %2347

2307:                                             ; preds = %2303
  br label %2308

2308:                                             ; preds = %2342, %2307
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2325, %2309
  %2311 = load ptr, ptr %24, align 8, !tbaa !5
  %2312 = load ptr, ptr %25, align 8, !tbaa !5
  %2313 = icmp uge ptr %2311, %2312
  br i1 %2313, label %2314, label %2326

2314:                                             ; preds = %2310
  br label %2315

2315:                                             ; preds = %2314
  %2316 = load i32, ptr %15, align 4, !tbaa !9
  %2317 = and i32 %2316, 2
  %2318 = icmp ne i32 %2317, 0
  %2319 = zext i1 %2318 to i64
  %2320 = select i1 %2318, i32 1, i32 -4
  store i32 %2320, ptr %18, align 4, !tbaa !9
  %2321 = load ptr, ptr %9, align 8, !tbaa !5
  %2322 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2321, i32 0, i32 0
  store i32 27, ptr %2322, align 8, !tbaa !20
  br label %2709

2323:                                             ; preds = %129
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324
  br label %2310, !llvm.loop !85

2326:                                             ; preds = %2310
  %2327 = load ptr, ptr %24, align 8, !tbaa !5
  %2328 = getelementptr inbounds i8, ptr %2327, i32 1
  store ptr %2328, ptr %24, align 8, !tbaa !5
  %2329 = load i8, ptr %2327, align 1, !tbaa !27
  %2330 = zext i8 %2329 to i32
  store i32 %2330, ptr %75, align 4, !tbaa !9
  br label %2331

2331:                                             ; preds = %2326
  br label %2332

2332:                                             ; preds = %2331
  %2333 = load i32, ptr %75, align 4, !tbaa !9
  %2334 = zext i32 %2333 to i64
  %2335 = load i32, ptr %19, align 4, !tbaa !9
  %2336 = zext i32 %2335 to i64
  %2337 = shl i64 %2334, %2336
  %2338 = load i64, ptr %23, align 8, !tbaa !11
  %2339 = or i64 %2338, %2337
  store i64 %2339, ptr %23, align 8, !tbaa !11
  %2340 = load i32, ptr %19, align 4, !tbaa !9
  %2341 = add i32 %2340, 8
  store i32 %2341, ptr %19, align 4, !tbaa !9
  br label %2342

2342:                                             ; preds = %2332
  %2343 = load i32, ptr %19, align 4, !tbaa !9
  %2344 = load i32, ptr %22, align 4, !tbaa !9
  %2345 = icmp ult i32 %2343, %2344
  br i1 %2345, label %2308, label %2346, !llvm.loop !86

2346:                                             ; preds = %2342
  br label %2347

2347:                                             ; preds = %2346, %2303
  %2348 = load i64, ptr %23, align 8, !tbaa !11
  %2349 = load i32, ptr %22, align 4, !tbaa !9
  %2350 = shl i32 1, %2349
  %2351 = sub nsw i32 %2350, 1
  %2352 = sext i32 %2351 to i64
  %2353 = and i64 %2348, %2352
  %2354 = trunc i64 %2353 to i32
  store i32 %2354, ptr %74, align 4, !tbaa !9
  %2355 = load i32, ptr %22, align 4, !tbaa !9
  %2356 = load i64, ptr %23, align 8, !tbaa !11
  %2357 = zext i32 %2355 to i64
  %2358 = lshr i64 %2356, %2357
  store i64 %2358, ptr %23, align 8, !tbaa !11
  %2359 = load i32, ptr %22, align 4, !tbaa !9
  %2360 = load i32, ptr %19, align 4, !tbaa !9
  %2361 = sub i32 %2360, %2359
  store i32 %2361, ptr %19, align 4, !tbaa !9
  br label %2362

2362:                                             ; preds = %2347
  br label %2363

2363:                                             ; preds = %2362
  %2364 = load i32, ptr %74, align 4, !tbaa !9
  %2365 = load i32, ptr %20, align 4, !tbaa !9
  %2366 = add i32 %2365, %2364
  store i32 %2366, ptr %20, align 4, !tbaa !9
  br label %2367

2367:                                             ; preds = %2363, %2289
  %2368 = load ptr, ptr %26, align 8, !tbaa !5
  %2369 = load ptr, ptr %12, align 8, !tbaa !5
  %2370 = ptrtoint ptr %2368 to i64
  %2371 = ptrtoint ptr %2369 to i64
  %2372 = sub i64 %2370, %2371
  store i64 %2372, ptr %29, align 8, !tbaa !11
  %2373 = load i32, ptr %20, align 4, !tbaa !9
  %2374 = icmp eq i32 %2373, 0
  br i1 %2374, label %2383, label %2375

2375:                                             ; preds = %2367
  %2376 = load i32, ptr %20, align 4, !tbaa !9
  %2377 = zext i32 %2376 to i64
  %2378 = load i64, ptr %29, align 8, !tbaa !11
  %2379 = icmp ugt i64 %2377, %2378
  br i1 %2379, label %2383, label %2380

2380:                                             ; preds = %2375
  %2381 = load i64, ptr %29, align 8, !tbaa !11
  %2382 = icmp eq i64 %2381, 0
  br i1 %2382, label %2383, label %2398

2383:                                             ; preds = %2380, %2375, %2367
  %2384 = load i32, ptr %15, align 4, !tbaa !9
  %2385 = and i32 %2384, 4
  %2386 = icmp ne i32 %2385, 0
  br i1 %2386, label %2387, label %2398

2387:                                             ; preds = %2383
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

2389:                                             ; preds = %2395, %2388
  br label %2390

2390:                                             ; preds = %2389
  store i32 -1, ptr %18, align 4, !tbaa !9
  %2391 = load ptr, ptr %9, align 8, !tbaa !5
  %2392 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2391, i32 0, i32 0
  store i32 37, ptr %2392, align 8, !tbaa !20
  br label %2709

2393:                                             ; preds = %129
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

2395:                                             ; preds = %2394
  br label %2389

2396:                                             ; No predecessors!
  br label %2397

2397:                                             ; preds = %2396
  br label %2398

2398:                                             ; preds = %2397, %2383, %2380
  %2399 = load ptr, ptr %12, align 8, !tbaa !5
  %2400 = load i64, ptr %29, align 8, !tbaa !11
  %2401 = load i32, ptr %20, align 4, !tbaa !9
  %2402 = zext i32 %2401 to i64
  %2403 = sub i64 %2400, %2402
  %2404 = load i64, ptr %28, align 8, !tbaa !11
  %2405 = and i64 %2403, %2404
  %2406 = getelementptr inbounds i8, ptr %2399, i64 %2405
  store ptr %2406, ptr %63, align 8, !tbaa !5
  %2407 = load ptr, ptr %26, align 8, !tbaa !5
  %2408 = load ptr, ptr %63, align 8, !tbaa !5
  %2409 = icmp ugt ptr %2407, %2408
  br i1 %2409, label %2410, label %2412

2410:                                             ; preds = %2398
  %2411 = load ptr, ptr %26, align 8, !tbaa !5
  br label %2414

2412:                                             ; preds = %2398
  %2413 = load ptr, ptr %63, align 8, !tbaa !5
  br label %2414

2414:                                             ; preds = %2412, %2410
  %2415 = phi ptr [ %2411, %2410 ], [ %2413, %2412 ]
  %2416 = load i32, ptr %21, align 4, !tbaa !9
  %2417 = zext i32 %2416 to i64
  %2418 = getelementptr inbounds i8, ptr %2415, i64 %2417
  %2419 = load ptr, ptr %27, align 8, !tbaa !5
  %2420 = icmp ugt ptr %2418, %2419
  br i1 %2420, label %2421, label %2452

2421:                                             ; preds = %2414
  br label %2422

2422:                                             ; preds = %2438, %2421
  %2423 = load i32, ptr %21, align 4, !tbaa !9
  %2424 = add i32 %2423, -1
  store i32 %2424, ptr %21, align 4, !tbaa !9
  %2425 = icmp ne i32 %2423, 0
  br i1 %2425, label %2426, label %2451

2426:                                             ; preds = %2422
  br label %2427

2427:                                             ; preds = %2437, %2426
  %2428 = load ptr, ptr %26, align 8, !tbaa !5
  %2429 = load ptr, ptr %27, align 8, !tbaa !5
  %2430 = icmp uge ptr %2428, %2429
  br i1 %2430, label %2431, label %2438

2431:                                             ; preds = %2427
  br label %2432

2432:                                             ; preds = %2431
  store i32 2, ptr %18, align 4, !tbaa !9
  %2433 = load ptr, ptr %9, align 8, !tbaa !5
  %2434 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2433, i32 0, i32 0
  store i32 53, ptr %2434, align 8, !tbaa !20
  br label %2709

2435:                                             ; preds = %129
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  br label %2427, !llvm.loop !87

2438:                                             ; preds = %2427
  %2439 = load ptr, ptr %12, align 8, !tbaa !5
  %2440 = load i64, ptr %29, align 8, !tbaa !11
  %2441 = add i64 %2440, 1
  store i64 %2441, ptr %29, align 8, !tbaa !11
  %2442 = load i32, ptr %20, align 4, !tbaa !9
  %2443 = zext i32 %2442 to i64
  %2444 = sub i64 %2440, %2443
  %2445 = load i64, ptr %28, align 8, !tbaa !11
  %2446 = and i64 %2444, %2445
  %2447 = getelementptr inbounds i8, ptr %2439, i64 %2446
  %2448 = load i8, ptr %2447, align 1, !tbaa !27
  %2449 = load ptr, ptr %26, align 8, !tbaa !5
  %2450 = getelementptr inbounds i8, ptr %2449, i32 1
  store ptr %2450, ptr %26, align 8, !tbaa !5
  store i8 %2448, ptr %2449, align 1, !tbaa !27
  br label %2422, !llvm.loop !88

2451:                                             ; preds = %2422
  br label %1651

2452:                                             ; preds = %2414
  br label %2453

2453:                                             ; preds = %2456, %2452
  %2454 = load i32, ptr %21, align 4, !tbaa !9
  %2455 = icmp ugt i32 %2454, 2
  br i1 %2455, label %2456, label %2478

2456:                                             ; preds = %2453
  %2457 = load ptr, ptr %63, align 8, !tbaa !5
  %2458 = getelementptr inbounds i8, ptr %2457, i64 0
  %2459 = load i8, ptr %2458, align 1, !tbaa !27
  %2460 = load ptr, ptr %26, align 8, !tbaa !5
  %2461 = getelementptr inbounds i8, ptr %2460, i64 0
  store i8 %2459, ptr %2461, align 1, !tbaa !27
  %2462 = load ptr, ptr %63, align 8, !tbaa !5
  %2463 = getelementptr inbounds i8, ptr %2462, i64 1
  %2464 = load i8, ptr %2463, align 1, !tbaa !27
  %2465 = load ptr, ptr %26, align 8, !tbaa !5
  %2466 = getelementptr inbounds i8, ptr %2465, i64 1
  store i8 %2464, ptr %2466, align 1, !tbaa !27
  %2467 = load ptr, ptr %63, align 8, !tbaa !5
  %2468 = getelementptr inbounds i8, ptr %2467, i64 2
  %2469 = load i8, ptr %2468, align 1, !tbaa !27
  %2470 = load ptr, ptr %26, align 8, !tbaa !5
  %2471 = getelementptr inbounds i8, ptr %2470, i64 2
  store i8 %2469, ptr %2471, align 1, !tbaa !27
  %2472 = load ptr, ptr %26, align 8, !tbaa !5
  %2473 = getelementptr inbounds i8, ptr %2472, i64 3
  store ptr %2473, ptr %26, align 8, !tbaa !5
  %2474 = load ptr, ptr %63, align 8, !tbaa !5
  %2475 = getelementptr inbounds i8, ptr %2474, i64 3
  store ptr %2475, ptr %63, align 8, !tbaa !5
  %2476 = load i32, ptr %21, align 4, !tbaa !9
  %2477 = sub i32 %2476, 3
  store i32 %2477, ptr %21, align 4, !tbaa !9
  br label %2453, !llvm.loop !89

2478:                                             ; preds = %2453
  %2479 = load i32, ptr %21, align 4, !tbaa !9
  %2480 = icmp ugt i32 %2479, 0
  br i1 %2480, label %2481, label %2500

2481:                                             ; preds = %2478
  %2482 = load ptr, ptr %63, align 8, !tbaa !5
  %2483 = getelementptr inbounds i8, ptr %2482, i64 0
  %2484 = load i8, ptr %2483, align 1, !tbaa !27
  %2485 = load ptr, ptr %26, align 8, !tbaa !5
  %2486 = getelementptr inbounds i8, ptr %2485, i64 0
  store i8 %2484, ptr %2486, align 1, !tbaa !27
  %2487 = load i32, ptr %21, align 4, !tbaa !9
  %2488 = icmp ugt i32 %2487, 1
  br i1 %2488, label %2489, label %2495

2489:                                             ; preds = %2481
  %2490 = load ptr, ptr %63, align 8, !tbaa !5
  %2491 = getelementptr inbounds i8, ptr %2490, i64 1
  %2492 = load i8, ptr %2491, align 1, !tbaa !27
  %2493 = load ptr, ptr %26, align 8, !tbaa !5
  %2494 = getelementptr inbounds i8, ptr %2493, i64 1
  store i8 %2492, ptr %2494, align 1, !tbaa !27
  br label %2495

2495:                                             ; preds = %2489, %2481
  %2496 = load i32, ptr %21, align 4, !tbaa !9
  %2497 = load ptr, ptr %26, align 8, !tbaa !5
  %2498 = zext i32 %2496 to i64
  %2499 = getelementptr inbounds i8, ptr %2497, i64 %2498
  store ptr %2499, ptr %26, align 8, !tbaa !5
  br label %2500

2500:                                             ; preds = %2495, %2478
  br label %1651

2501:                                             ; preds = %2030
  br label %2502

2502:                                             ; preds = %2501, %769
  br label %2503

2503:                                             ; preds = %2502, %753
  br label %2504

2504:                                             ; preds = %2503
  %2505 = load ptr, ptr %9, align 8, !tbaa !5
  %2506 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2505, i32 0, i32 5
  %2507 = load i32, ptr %2506, align 4, !tbaa !31
  %2508 = and i32 %2507, 1
  %2509 = icmp ne i32 %2508, 0
  %2510 = xor i1 %2509, true
  br i1 %2510, label %308, label %2511, !llvm.loop !90

2511:                                             ; preds = %2504
  br label %2512

2512:                                             ; preds = %2511
  %2513 = load i32, ptr %19, align 4, !tbaa !9
  %2514 = load i32, ptr %19, align 4, !tbaa !9
  %2515 = and i32 %2514, 7
  %2516 = icmp ult i32 %2513, %2515
  br i1 %2516, label %2517, label %2558

2517:                                             ; preds = %2512
  br label %2518

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

2519:                                             ; preds = %2518
  br label %2520

2520:                                             ; preds = %2535, %2519
  %2521 = load ptr, ptr %24, align 8, !tbaa !5
  %2522 = load ptr, ptr %25, align 8, !tbaa !5
  %2523 = icmp uge ptr %2521, %2522
  br i1 %2523, label %2524, label %2536

2524:                                             ; preds = %2520
  br label %2525

2525:                                             ; preds = %2524
  %2526 = load i32, ptr %15, align 4, !tbaa !9
  %2527 = and i32 %2526, 2
  %2528 = icmp ne i32 %2527, 0
  %2529 = zext i1 %2528 to i64
  %2530 = select i1 %2528, i32 1, i32 -4
  store i32 %2530, ptr %18, align 4, !tbaa !9
  %2531 = load ptr, ptr %9, align 8, !tbaa !5
  %2532 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2531, i32 0, i32 0
  store i32 32, ptr %2532, align 8, !tbaa !20
  br label %2709

2533:                                             ; preds = %129
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2534
  br label %2520, !llvm.loop !91

2536:                                             ; preds = %2520
  %2537 = load ptr, ptr %24, align 8, !tbaa !5
  %2538 = getelementptr inbounds i8, ptr %2537, i32 1
  store ptr %2538, ptr %24, align 8, !tbaa !5
  %2539 = load i8, ptr %2537, align 1, !tbaa !27
  %2540 = zext i8 %2539 to i32
  store i32 %2540, ptr %76, align 4, !tbaa !9
  br label %2541

2541:                                             ; preds = %2536
  br label %2542

2542:                                             ; preds = %2541
  %2543 = load i32, ptr %76, align 4, !tbaa !9
  %2544 = zext i32 %2543 to i64
  %2545 = load i32, ptr %19, align 4, !tbaa !9
  %2546 = zext i32 %2545 to i64
  %2547 = shl i64 %2544, %2546
  %2548 = load i64, ptr %23, align 8, !tbaa !11
  %2549 = or i64 %2548, %2547
  store i64 %2549, ptr %23, align 8, !tbaa !11
  %2550 = load i32, ptr %19, align 4, !tbaa !9
  %2551 = add i32 %2550, 8
  store i32 %2551, ptr %19, align 4, !tbaa !9
  br label %2552

2552:                                             ; preds = %2542
  %2553 = load i32, ptr %19, align 4, !tbaa !9
  %2554 = load i32, ptr %19, align 4, !tbaa !9
  %2555 = and i32 %2554, 7
  %2556 = icmp ult i32 %2553, %2555
  br i1 %2556, label %2518, label %2557, !llvm.loop !92

2557:                                             ; preds = %2552
  br label %2558

2558:                                             ; preds = %2557, %2512
  %2559 = load i32, ptr %19, align 4, !tbaa !9
  %2560 = and i32 %2559, 7
  %2561 = load i64, ptr %23, align 8, !tbaa !11
  %2562 = zext i32 %2560 to i64
  %2563 = lshr i64 %2561, %2562
  store i64 %2563, ptr %23, align 8, !tbaa !11
  %2564 = load i32, ptr %19, align 4, !tbaa !9
  %2565 = and i32 %2564, 7
  %2566 = load i32, ptr %19, align 4, !tbaa !9
  %2567 = sub i32 %2566, %2565
  store i32 %2567, ptr %19, align 4, !tbaa !9
  br label %2568

2568:                                             ; preds = %2558
  br label %2569

2569:                                             ; preds = %2568
  br label %2570

2570:                                             ; preds = %2579, %2569
  %2571 = load ptr, ptr %24, align 8, !tbaa !5
  %2572 = load ptr, ptr %10, align 8, !tbaa !5
  %2573 = icmp ugt ptr %2571, %2572
  br i1 %2573, label %2574, label %2577

2574:                                             ; preds = %2570
  %2575 = load i32, ptr %19, align 4, !tbaa !9
  %2576 = icmp uge i32 %2575, 8
  br label %2577

2577:                                             ; preds = %2574, %2570
  %2578 = phi i1 [ false, %2570 ], [ %2576, %2574 ]
  br i1 %2578, label %2579, label %2584

2579:                                             ; preds = %2577
  %2580 = load ptr, ptr %24, align 8, !tbaa !5
  %2581 = getelementptr inbounds i8, ptr %2580, i32 -1
  store ptr %2581, ptr %24, align 8, !tbaa !5
  %2582 = load i32, ptr %19, align 4, !tbaa !9
  %2583 = sub i32 %2582, 8
  store i32 %2583, ptr %19, align 4, !tbaa !9
  br label %2570, !llvm.loop !93

2584:                                             ; preds = %2577
  %2585 = load i32, ptr %19, align 4, !tbaa !9
  %2586 = zext i32 %2585 to i64
  %2587 = shl i64 -1, %2586
  %2588 = xor i64 %2587, -1
  %2589 = load i64, ptr %23, align 8, !tbaa !11
  %2590 = and i64 %2589, %2588
  store i64 %2590, ptr %23, align 8, !tbaa !11
  %2591 = load i32, ptr %19, align 4, !tbaa !9
  %2592 = icmp ne i32 %2591, 0
  br i1 %2592, label %2594, label %2593

2593:                                             ; preds = %2584
  br label %2595

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

2595:                                             ; preds = %2593
  %2596 = load i32, ptr %15, align 4, !tbaa !9
  %2597 = and i32 %2596, 1
  %2598 = icmp ne i32 %2597, 0
  br i1 %2598, label %2599, label %2697

2599:                                             ; preds = %2595
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %2600

2600:                                             ; preds = %2693, %2599
  %2601 = load i32, ptr %21, align 4, !tbaa !9
  %2602 = icmp ult i32 %2601, 4
  br i1 %2602, label %2603, label %2696

2603:                                             ; preds = %2600
  %2604 = load i32, ptr %19, align 4, !tbaa !9
  %2605 = icmp ne i32 %2604, 0
  br i1 %2605, label %2606, label %2659

2606:                                             ; preds = %2603
  br label %2607

2607:                                             ; preds = %2606
  %2608 = load i32, ptr %19, align 4, !tbaa !9
  %2609 = icmp ult i32 %2608, 8
  br i1 %2609, label %2610, label %2649

2610:                                             ; preds = %2607
  br label %2611

2611:                                             ; preds = %2645, %2610
  br label %2612

2612:                                             ; preds = %2611
  br label %2613

2613:                                             ; preds = %2628, %2612
  %2614 = load ptr, ptr %24, align 8, !tbaa !5
  %2615 = load ptr, ptr %25, align 8, !tbaa !5
  %2616 = icmp uge ptr %2614, %2615
  br i1 %2616, label %2617, label %2629

2617:                                             ; preds = %2613
  br label %2618

2618:                                             ; preds = %2617
  %2619 = load i32, ptr %15, align 4, !tbaa !9
  %2620 = and i32 %2619, 2
  %2621 = icmp ne i32 %2620, 0
  %2622 = zext i1 %2621 to i64
  %2623 = select i1 %2621, i32 1, i32 -4
  store i32 %2623, ptr %18, align 4, !tbaa !9
  %2624 = load ptr, ptr %9, align 8, !tbaa !5
  %2625 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2624, i32 0, i32 0
  store i32 41, ptr %2625, align 8, !tbaa !20
  br label %2709

2626:                                             ; preds = %129
  br label %2627

2627:                                             ; preds = %2626
  br label %2628

2628:                                             ; preds = %2627
  br label %2613, !llvm.loop !94

2629:                                             ; preds = %2613
  %2630 = load ptr, ptr %24, align 8, !tbaa !5
  %2631 = getelementptr inbounds i8, ptr %2630, i32 1
  store ptr %2631, ptr %24, align 8, !tbaa !5
  %2632 = load i8, ptr %2630, align 1, !tbaa !27
  %2633 = zext i8 %2632 to i32
  store i32 %2633, ptr %78, align 4, !tbaa !9
  br label %2634

2634:                                             ; preds = %2629
  br label %2635

2635:                                             ; preds = %2634
  %2636 = load i32, ptr %78, align 4, !tbaa !9
  %2637 = zext i32 %2636 to i64
  %2638 = load i32, ptr %19, align 4, !tbaa !9
  %2639 = zext i32 %2638 to i64
  %2640 = shl i64 %2637, %2639
  %2641 = load i64, ptr %23, align 8, !tbaa !11
  %2642 = or i64 %2641, %2640
  store i64 %2642, ptr %23, align 8, !tbaa !11
  %2643 = load i32, ptr %19, align 4, !tbaa !9
  %2644 = add i32 %2643, 8
  store i32 %2644, ptr %19, align 4, !tbaa !9
  br label %2645

2645:                                             ; preds = %2635
  %2646 = load i32, ptr %19, align 4, !tbaa !9
  %2647 = icmp ult i32 %2646, 8
  br i1 %2647, label %2611, label %2648, !llvm.loop !95

2648:                                             ; preds = %2645
  br label %2649

2649:                                             ; preds = %2648, %2607
  %2650 = load i64, ptr %23, align 8, !tbaa !11
  %2651 = and i64 %2650, 255
  %2652 = trunc i64 %2651 to i32
  store i32 %2652, ptr %77, align 4, !tbaa !9
  %2653 = load i64, ptr %23, align 8, !tbaa !11
  %2654 = lshr i64 %2653, 8
  store i64 %2654, ptr %23, align 8, !tbaa !11
  %2655 = load i32, ptr %19, align 4, !tbaa !9
  %2656 = sub i32 %2655, 8
  store i32 %2656, ptr %19, align 4, !tbaa !9
  br label %2657

2657:                                             ; preds = %2649
  br label %2658

2658:                                             ; preds = %2657
  br label %2684

2659:                                             ; preds = %2603
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

2661:                                             ; preds = %2676, %2660
  %2662 = load ptr, ptr %24, align 8, !tbaa !5
  %2663 = load ptr, ptr %25, align 8, !tbaa !5
  %2664 = icmp uge ptr %2662, %2663
  br i1 %2664, label %2665, label %2677

2665:                                             ; preds = %2661
  br label %2666

2666:                                             ; preds = %2665
  %2667 = load i32, ptr %15, align 4, !tbaa !9
  %2668 = and i32 %2667, 2
  %2669 = icmp ne i32 %2668, 0
  %2670 = zext i1 %2669 to i64
  %2671 = select i1 %2669, i32 1, i32 -4
  store i32 %2671, ptr %18, align 4, !tbaa !9
  %2672 = load ptr, ptr %9, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2672, i32 0, i32 0
  store i32 42, ptr %2673, align 8, !tbaa !20
  br label %2709

2674:                                             ; preds = %129
  br label %2675

2675:                                             ; preds = %2674
  br label %2676

2676:                                             ; preds = %2675
  br label %2661, !llvm.loop !96

2677:                                             ; preds = %2661
  %2678 = load ptr, ptr %24, align 8, !tbaa !5
  %2679 = getelementptr inbounds i8, ptr %2678, i32 1
  store ptr %2679, ptr %24, align 8, !tbaa !5
  %2680 = load i8, ptr %2678, align 1, !tbaa !27
  %2681 = zext i8 %2680 to i32
  store i32 %2681, ptr %77, align 4, !tbaa !9
  br label %2682

2682:                                             ; preds = %2677
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683, %2658
  %2685 = load ptr, ptr %9, align 8, !tbaa !5
  %2686 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2685, i32 0, i32 4
  %2687 = load i32, ptr %2686, align 8, !tbaa !24
  %2688 = shl i32 %2687, 8
  %2689 = load i32, ptr %77, align 4, !tbaa !9
  %2690 = or i32 %2688, %2689
  %2691 = load ptr, ptr %9, align 8, !tbaa !5
  %2692 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2691, i32 0, i32 4
  store i32 %2690, ptr %2692, align 8, !tbaa !24
  br label %2693

2693:                                             ; preds = %2684
  %2694 = load i32, ptr %21, align 4, !tbaa !9
  %2695 = add i32 %2694, 1
  store i32 %2695, ptr %21, align 4, !tbaa !9
  br label %2600, !llvm.loop !97

2696:                                             ; preds = %2600
  br label %2697

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

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2705, %2698
  br label %2700

2700:                                             ; preds = %2699
  store i32 0, ptr %18, align 4, !tbaa !9
  %2701 = load ptr, ptr %9, align 8, !tbaa !5
  %2702 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2701, i32 0, i32 0
  store i32 34, ptr %2702, align 8, !tbaa !20
  br label %2709

2703:                                             ; preds = %129
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704
  br label %2699

2706:                                             ; No predecessors!
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707, %129
  br label %2709

2709:                                             ; preds = %2708, %2700, %2666, %2618, %2525, %2432, %2390, %2315, %2188, %2059, %1998, %1854, %1743, %1607, %1509, %1482, %1360, %1105, %957, %849, %762, %669, %657, %634, %588, %559, %503, %450, %387, %320, %298, %220, %194
  %2710 = load i32, ptr %18, align 4, !tbaa !9
  %2711 = icmp ne i32 %2710, 1
  br i1 %2711, label %2712, label %2731

2712:                                             ; preds = %2709
  %2713 = load i32, ptr %18, align 4, !tbaa !9
  %2714 = icmp ne i32 %2713, -4
  br i1 %2714, label %2715, label %2731

2715:                                             ; preds = %2712
  br label %2716

2716:                                             ; preds = %2725, %2715
  %2717 = load ptr, ptr %24, align 8, !tbaa !5
  %2718 = load ptr, ptr %10, align 8, !tbaa !5
  %2719 = icmp ugt ptr %2717, %2718
  br i1 %2719, label %2720, label %2723

2720:                                             ; preds = %2716
  %2721 = load i32, ptr %19, align 4, !tbaa !9
  %2722 = icmp uge i32 %2721, 8
  br label %2723

2723:                                             ; preds = %2720, %2716
  %2724 = phi i1 [ false, %2716 ], [ %2722, %2720 ]
  br i1 %2724, label %2725, label %2730

2725:                                             ; preds = %2723
  %2726 = load ptr, ptr %24, align 8, !tbaa !5
  %2727 = getelementptr inbounds i8, ptr %2726, i32 -1
  store ptr %2727, ptr %24, align 8, !tbaa !5
  %2728 = load i32, ptr %19, align 4, !tbaa !9
  %2729 = sub i32 %2728, 8
  store i32 %2729, ptr %19, align 4, !tbaa !9
  br label %2716, !llvm.loop !98

2730:                                             ; preds = %2723
  br label %2731

2731:                                             ; preds = %2730, %2712, %2709
  %2732 = load i32, ptr %19, align 4, !tbaa !9
  %2733 = load ptr, ptr %9, align 8, !tbaa !5
  %2734 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2733, i32 0, i32 1
  store i32 %2732, ptr %2734, align 4, !tbaa !13
  %2735 = load i64, ptr %23, align 8, !tbaa !11
  %2736 = load i32, ptr %19, align 4, !tbaa !9
  %2737 = zext i32 %2736 to i64
  %2738 = shl i64 -1, %2737
  %2739 = xor i64 %2738, -1
  %2740 = and i64 %2735, %2739
  %2741 = load ptr, ptr %9, align 8, !tbaa !5
  %2742 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2741, i32 0, i32 12
  store i64 %2740, ptr %2742, align 8, !tbaa !15
  %2743 = load i32, ptr %20, align 4, !tbaa !9
  %2744 = load ptr, ptr %9, align 8, !tbaa !5
  %2745 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2744, i32 0, i32 8
  store i32 %2743, ptr %2745, align 8, !tbaa !16
  %2746 = load i32, ptr %21, align 4, !tbaa !9
  %2747 = load ptr, ptr %9, align 8, !tbaa !5
  %2748 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2747, i32 0, i32 9
  store i32 %2746, ptr %2748, align 4, !tbaa !17
  %2749 = load i32, ptr %22, align 4, !tbaa !9
  %2750 = load ptr, ptr %9, align 8, !tbaa !5
  %2751 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2750, i32 0, i32 10
  store i32 %2749, ptr %2751, align 8, !tbaa !18
  %2752 = load i64, ptr %29, align 8, !tbaa !11
  %2753 = load ptr, ptr %9, align 8, !tbaa !5
  %2754 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2753, i32 0, i32 13
  store i64 %2752, ptr %2754, align 8, !tbaa !19
  %2755 = load ptr, ptr %24, align 8, !tbaa !5
  %2756 = load ptr, ptr %10, align 8, !tbaa !5
  %2757 = ptrtoint ptr %2755 to i64
  %2758 = ptrtoint ptr %2756 to i64
  %2759 = sub i64 %2757, %2758
  %2760 = load ptr, ptr %11, align 8, !tbaa !5
  store i64 %2759, ptr %2760, align 8, !tbaa !11
  %2761 = load ptr, ptr %26, align 8, !tbaa !5
  %2762 = load ptr, ptr %13, align 8, !tbaa !5
  %2763 = ptrtoint ptr %2761 to i64
  %2764 = ptrtoint ptr %2762 to i64
  %2765 = sub i64 %2763, %2764
  %2766 = load ptr, ptr %14, align 8, !tbaa !5
  store i64 %2765, ptr %2766, align 8, !tbaa !11
  %2767 = load i32, ptr %15, align 4, !tbaa !9
  %2768 = and i32 %2767, 9
  %2769 = icmp ne i32 %2768, 0
  br i1 %2769, label %2770, label %2925

2770:                                             ; preds = %2731
  %2771 = load i32, ptr %18, align 4, !tbaa !9
  %2772 = icmp sge i32 %2771, 0
  br i1 %2772, label %2773, label %2925

2773:                                             ; preds = %2770
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  %2774 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2774, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  %2775 = load ptr, ptr %14, align 8, !tbaa !5
  %2776 = load i64, ptr %2775, align 8, !tbaa !11
  store i64 %2776, ptr %80, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #5
  %2777 = load ptr, ptr %9, align 8, !tbaa !5
  %2778 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2777, i32 0, i32 7
  %2779 = load i32, ptr %2778, align 4, !tbaa !23
  %2780 = and i32 %2779, 65535
  store i32 %2780, ptr %82, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #5
  %2781 = load ptr, ptr %9, align 8, !tbaa !5
  %2782 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2781, i32 0, i32 7
  %2783 = load i32, ptr %2782, align 4, !tbaa !23
  %2784 = lshr i32 %2783, 16
  store i32 %2784, ptr %83, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  %2785 = load i64, ptr %80, align 8, !tbaa !11
  %2786 = urem i64 %2785, 5552
  store i64 %2786, ptr %84, align 8, !tbaa !11
  br label %2787

2787:                                             ; preds = %2894, %2773
  %2788 = load i64, ptr %80, align 8, !tbaa !11
  %2789 = icmp ne i64 %2788, 0
  br i1 %2789, label %2790, label %2902

2790:                                             ; preds = %2787
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %2791

2791:                                             ; preds = %2870, %2790
  %2792 = load i32, ptr %81, align 4, !tbaa !9
  %2793 = add i32 %2792, 7
  %2794 = zext i32 %2793 to i64
  %2795 = load i64, ptr %84, align 8, !tbaa !11
  %2796 = icmp ult i64 %2794, %2795
  br i1 %2796, label %2797, label %2875

2797:                                             ; preds = %2791
  %2798 = load ptr, ptr %79, align 8, !tbaa !5
  %2799 = getelementptr inbounds i8, ptr %2798, i64 0
  %2800 = load i8, ptr %2799, align 1, !tbaa !27
  %2801 = zext i8 %2800 to i32
  %2802 = load i32, ptr %82, align 4, !tbaa !9
  %2803 = add i32 %2802, %2801
  store i32 %2803, ptr %82, align 4, !tbaa !9
  %2804 = load i32, ptr %82, align 4, !tbaa !9
  %2805 = load i32, ptr %83, align 4, !tbaa !9
  %2806 = add i32 %2805, %2804
  store i32 %2806, ptr %83, align 4, !tbaa !9
  %2807 = load ptr, ptr %79, align 8, !tbaa !5
  %2808 = getelementptr inbounds i8, ptr %2807, i64 1
  %2809 = load i8, ptr %2808, align 1, !tbaa !27
  %2810 = zext i8 %2809 to i32
  %2811 = load i32, ptr %82, align 4, !tbaa !9
  %2812 = add i32 %2811, %2810
  store i32 %2812, ptr %82, align 4, !tbaa !9
  %2813 = load i32, ptr %82, align 4, !tbaa !9
  %2814 = load i32, ptr %83, align 4, !tbaa !9
  %2815 = add i32 %2814, %2813
  store i32 %2815, ptr %83, align 4, !tbaa !9
  %2816 = load ptr, ptr %79, align 8, !tbaa !5
  %2817 = getelementptr inbounds i8, ptr %2816, i64 2
  %2818 = load i8, ptr %2817, align 1, !tbaa !27
  %2819 = zext i8 %2818 to i32
  %2820 = load i32, ptr %82, align 4, !tbaa !9
  %2821 = add i32 %2820, %2819
  store i32 %2821, ptr %82, align 4, !tbaa !9
  %2822 = load i32, ptr %82, align 4, !tbaa !9
  %2823 = load i32, ptr %83, align 4, !tbaa !9
  %2824 = add i32 %2823, %2822
  store i32 %2824, ptr %83, align 4, !tbaa !9
  %2825 = load ptr, ptr %79, align 8, !tbaa !5
  %2826 = getelementptr inbounds i8, ptr %2825, i64 3
  %2827 = load i8, ptr %2826, align 1, !tbaa !27
  %2828 = zext i8 %2827 to i32
  %2829 = load i32, ptr %82, align 4, !tbaa !9
  %2830 = add i32 %2829, %2828
  store i32 %2830, ptr %82, align 4, !tbaa !9
  %2831 = load i32, ptr %82, align 4, !tbaa !9
  %2832 = load i32, ptr %83, align 4, !tbaa !9
  %2833 = add i32 %2832, %2831
  store i32 %2833, ptr %83, align 4, !tbaa !9
  %2834 = load ptr, ptr %79, align 8, !tbaa !5
  %2835 = getelementptr inbounds i8, ptr %2834, i64 4
  %2836 = load i8, ptr %2835, align 1, !tbaa !27
  %2837 = zext i8 %2836 to i32
  %2838 = load i32, ptr %82, align 4, !tbaa !9
  %2839 = add i32 %2838, %2837
  store i32 %2839, ptr %82, align 4, !tbaa !9
  %2840 = load i32, ptr %82, align 4, !tbaa !9
  %2841 = load i32, ptr %83, align 4, !tbaa !9
  %2842 = add i32 %2841, %2840
  store i32 %2842, ptr %83, align 4, !tbaa !9
  %2843 = load ptr, ptr %79, align 8, !tbaa !5
  %2844 = getelementptr inbounds i8, ptr %2843, i64 5
  %2845 = load i8, ptr %2844, align 1, !tbaa !27
  %2846 = zext i8 %2845 to i32
  %2847 = load i32, ptr %82, align 4, !tbaa !9
  %2848 = add i32 %2847, %2846
  store i32 %2848, ptr %82, align 4, !tbaa !9
  %2849 = load i32, ptr %82, align 4, !tbaa !9
  %2850 = load i32, ptr %83, align 4, !tbaa !9
  %2851 = add i32 %2850, %2849
  store i32 %2851, ptr %83, align 4, !tbaa !9
  %2852 = load ptr, ptr %79, align 8, !tbaa !5
  %2853 = getelementptr inbounds i8, ptr %2852, i64 6
  %2854 = load i8, ptr %2853, align 1, !tbaa !27
  %2855 = zext i8 %2854 to i32
  %2856 = load i32, ptr %82, align 4, !tbaa !9
  %2857 = add i32 %2856, %2855
  store i32 %2857, ptr %82, align 4, !tbaa !9
  %2858 = load i32, ptr %82, align 4, !tbaa !9
  %2859 = load i32, ptr %83, align 4, !tbaa !9
  %2860 = add i32 %2859, %2858
  store i32 %2860, ptr %83, align 4, !tbaa !9
  %2861 = load ptr, ptr %79, align 8, !tbaa !5
  %2862 = getelementptr inbounds i8, ptr %2861, i64 7
  %2863 = load i8, ptr %2862, align 1, !tbaa !27
  %2864 = zext i8 %2863 to i32
  %2865 = load i32, ptr %82, align 4, !tbaa !9
  %2866 = add i32 %2865, %2864
  store i32 %2866, ptr %82, align 4, !tbaa !9
  %2867 = load i32, ptr %82, align 4, !tbaa !9
  %2868 = load i32, ptr %83, align 4, !tbaa !9
  %2869 = add i32 %2868, %2867
  store i32 %2869, ptr %83, align 4, !tbaa !9
  br label %2870

2870:                                             ; preds = %2797
  %2871 = load i32, ptr %81, align 4, !tbaa !9
  %2872 = add i32 %2871, 8
  store i32 %2872, ptr %81, align 4, !tbaa !9
  %2873 = load ptr, ptr %79, align 8, !tbaa !5
  %2874 = getelementptr inbounds i8, ptr %2873, i64 8
  store ptr %2874, ptr %79, align 8, !tbaa !5
  br label %2791, !llvm.loop !99

2875:                                             ; preds = %2791
  br label %2876

2876:                                             ; preds = %2891, %2875
  %2877 = load i32, ptr %81, align 4, !tbaa !9
  %2878 = zext i32 %2877 to i64
  %2879 = load i64, ptr %84, align 8, !tbaa !11
  %2880 = icmp ult i64 %2878, %2879
  br i1 %2880, label %2881, label %2894

2881:                                             ; preds = %2876
  %2882 = load ptr, ptr %79, align 8, !tbaa !5
  %2883 = getelementptr inbounds i8, ptr %2882, i32 1
  store ptr %2883, ptr %79, align 8, !tbaa !5
  %2884 = load i8, ptr %2882, align 1, !tbaa !27
  %2885 = zext i8 %2884 to i32
  %2886 = load i32, ptr %82, align 4, !tbaa !9
  %2887 = add i32 %2886, %2885
  store i32 %2887, ptr %82, align 4, !tbaa !9
  %2888 = load i32, ptr %82, align 4, !tbaa !9
  %2889 = load i32, ptr %83, align 4, !tbaa !9
  %2890 = add i32 %2889, %2888
  store i32 %2890, ptr %83, align 4, !tbaa !9
  br label %2891

2891:                                             ; preds = %2881
  %2892 = load i32, ptr %81, align 4, !tbaa !9
  %2893 = add i32 %2892, 1
  store i32 %2893, ptr %81, align 4, !tbaa !9
  br label %2876, !llvm.loop !100

2894:                                             ; preds = %2876
  %2895 = load i32, ptr %82, align 4, !tbaa !9
  %2896 = urem i32 %2895, 65521
  store i32 %2896, ptr %82, align 4, !tbaa !9
  %2897 = load i32, ptr %83, align 4, !tbaa !9
  %2898 = urem i32 %2897, 65521
  store i32 %2898, ptr %83, align 4, !tbaa !9
  %2899 = load i64, ptr %84, align 8, !tbaa !11
  %2900 = load i64, ptr %80, align 8, !tbaa !11
  %2901 = sub i64 %2900, %2899
  store i64 %2901, ptr %80, align 8, !tbaa !11
  store i64 5552, ptr %84, align 8, !tbaa !11
  br label %2787, !llvm.loop !101

2902:                                             ; preds = %2787
  %2903 = load i32, ptr %83, align 4, !tbaa !9
  %2904 = shl i32 %2903, 16
  %2905 = load i32, ptr %82, align 4, !tbaa !9
  %2906 = add i32 %2904, %2905
  %2907 = load ptr, ptr %9, align 8, !tbaa !5
  %2908 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2907, i32 0, i32 7
  store i32 %2906, ptr %2908, align 4, !tbaa !23
  %2909 = load i32, ptr %18, align 4, !tbaa !9
  %2910 = icmp eq i32 %2909, 0
  br i1 %2910, label %2911, label %2924

2911:                                             ; preds = %2902
  %2912 = load i32, ptr %15, align 4, !tbaa !9
  %2913 = and i32 %2912, 1
  %2914 = icmp ne i32 %2913, 0
  br i1 %2914, label %2915, label %2924

2915:                                             ; preds = %2911
  %2916 = load ptr, ptr %9, align 8, !tbaa !5
  %2917 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2916, i32 0, i32 7
  %2918 = load i32, ptr %2917, align 4, !tbaa !23
  %2919 = load ptr, ptr %9, align 8, !tbaa !5
  %2920 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2919, i32 0, i32 4
  %2921 = load i32, ptr %2920, align 8, !tbaa !24
  %2922 = icmp ne i32 %2918, %2921
  br i1 %2922, label %2923, label %2924

2923:                                             ; preds = %2915
  store i32 -2, ptr %18, align 4, !tbaa !9
  br label %2924

2924:                                             ; preds = %2923, %2915, %2911, %2902
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  br label %2925

2925:                                             ; preds = %2924, %2770, %2731
  %2926 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %2926, ptr %8, align 4
  store i32 1, ptr %30, align 4
  br label %2927

2927:                                             ; preds = %2925, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  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 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 24, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #5
  %2928 = load i32, ptr %8, align 4
  ret i32 %2928

2929:                                             ; preds = %1259
  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

; Function Attrs: nounwind uwtable
declare hidden void @tinfl_clear_tree(ptr noundef) #2

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 6216, !7, i64 7368, !7, i64 7496, !7, i64 7572, !7, i64 7860, !7, i64 7892, !7, i64 7911, !7, i64 7915}
!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 = !{!53, !53, i64 0}
!53 = !{!"short", !7, i64 0}
!54 = distinct !{!54, !26}
!55 = distinct !{!55, !26}
!56 = distinct !{!56, !26}
!57 = distinct !{!57, !26}
!58 = distinct !{!58, !26}
!59 = distinct !{!59, !26}
!60 = distinct !{!60, !26}
!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}


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

@.str.12 = external hidden unnamed_addr constant [56 x i8], align 1
@tinfl_decompress.s_length_base = external hidden local_unnamed_addr constant [31 x i16], align 16
@tinfl_decompress.s_length_extra = external hidden local_unnamed_addr constant [31 x i8], align 16
@tinfl_decompress.s_dist_base = external hidden local_unnamed_addr constant [32 x i16], align 16
@tinfl_decompress.s_dist_extra = external hidden local_unnamed_addr constant [32 x i8], 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 i16], align 2
@.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 nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

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

; Function Attrs: mustprogress 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 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 #2 {
  %8 = ptrtoint ptr %1 to i64
  %9 = alloca [3 x ptr], align 16
  %10 = alloca [3 x ptr], align 16
  %11 = alloca [17 x i32], align 16
  %12 = alloca [16 x i32], align 16
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #6
  %13 = load i64, ptr %2, align 8, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %1, i64 %13
  %.not = icmp eq ptr %4, null
  br i1 %.not, label %18, label %15

15:                                               ; preds = %7
  %16 = load i64, ptr %5, align 8, !tbaa !5
  %17 = getelementptr inbounds i8, ptr %4, i64 %16
  br label %18

18:                                               ; preds = %7, %15
  %19 = phi ptr [ %17, %15 ], [ null, %7 ]
  %20 = and i32 %6, 4
  %.not1551 = icmp eq i32 %20, 0
  br i1 %.not1551, label %21, label %28

21:                                               ; preds = %18
  %22 = ptrtoint ptr %4 to i64
  %23 = ptrtoint ptr %3 to i64
  %24 = load i64, ptr %5, align 8, !tbaa !5
  %25 = xor i64 %23, -1
  %26 = add i64 %25, %22
  %27 = add i64 %26, %24
  br label %28

28:                                               ; preds = %18, %21
  %29 = phi i64 [ %27, %21 ], [ -1, %18 ]
  %30 = add i64 %29, 1
  %31 = and i64 %30, %29
  %.not1552 = icmp ne i64 %31, 0
  %32 = icmp ult ptr %4, %3
  %or.cond1629 = or i1 %32, %.not1552
  br i1 %or.cond1629, label %33, label %34

33:                                               ; preds = %28
  store i64 0, ptr %5, align 8, !tbaa !5
  store i64 0, ptr %2, align 8, !tbaa !5
  br label %1252

34:                                               ; preds = %28
  %35 = getelementptr inbounds i8, ptr %0, i64 6216
  store ptr %35, ptr %9, align 16, !tbaa !9
  %36 = getelementptr inbounds i8, ptr %0, i64 7368
  %37 = getelementptr inbounds i8, ptr %9, i64 8
  store ptr %36, ptr %37, align 8, !tbaa !9
  %38 = getelementptr inbounds i8, ptr %0, i64 7496
  %39 = getelementptr inbounds i8, ptr %9, i64 16
  store ptr %38, ptr %39, align 16, !tbaa !9
  %40 = getelementptr i8, ptr %0, i64 7572
  store ptr %40, ptr %10, align 16, !tbaa !9
  %41 = getelementptr inbounds i8, ptr %0, i64 7860
  %42 = getelementptr inbounds i8, ptr %10, i64 8
  store ptr %41, ptr %42, align 8, !tbaa !9
  %43 = getelementptr inbounds i8, ptr %0, i64 7892
  %44 = getelementptr inbounds i8, ptr %10, i64 16
  store ptr %43, ptr %44, align 16, !tbaa !9
  %45 = getelementptr inbounds i8, ptr %0, i64 4
  %46 = load i32, ptr %45, align 4, !tbaa !11
  %.84.fr1955 = freeze i32 %46
  %47 = getelementptr inbounds i8, ptr %0, i64 56
  %48 = load i64, ptr %47, align 8, !tbaa !14
  %49 = getelementptr inbounds i8, ptr %0, i64 32
  %50 = load i32, ptr %49, align 8, !tbaa !15
  %51 = getelementptr inbounds i8, ptr %0, i64 36
  %52 = load i32, ptr %51, align 4, !tbaa !16
  %53 = getelementptr inbounds i8, ptr %0, i64 40
  %54 = load i32, ptr %53, align 8, !tbaa !17
  %55 = getelementptr inbounds i8, ptr %0, i64 64
  %56 = load i64, ptr %55, align 8, !tbaa !18
  %57 = load i32, ptr %0, align 8, !tbaa !19
  switch i32 %57, label %.thread [
    i32 0, label %58
    i32 1, label %64
    i32 2, label %75
    i32 36, label %.loopexit2100
    i32 3, label %105
    i32 5, label %134
    i32 6, label %156
    i32 7, label %175
    i32 39, label %.loopexit2100
    i32 51, label %206
    i32 52, label %221
    i32 9, label %228
    i32 38, label %232
    i32 10, label %.loopexit2100
    i32 11, label %262
    i32 14, label %298
    i32 35, label %.loopexit2100
    i32 16, label %573
    i32 17, label %.loopexit2100
    i32 18, label %642
    i32 21, label %.loopexit2100
    i32 23, label %727
    i32 24, label %778
    i32 40, label %.loopexit2100
    i32 25, label %866
    i32 26, label %920
    i32 27, label %981
    i32 37, label %.loopexit2100
    i32 53, label %1032
    i32 32, label %1077
    i32 41, label %1106
    i32 42, label %1123
    i32 34, label %1134
  ], !llvm.loop !20

58:                                               ; preds = %34
  %59 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 0, ptr %59, align 4, !tbaa !22
  %60 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 0, ptr %60, align 8, !tbaa !23
  %61 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 1, ptr %61, align 4, !tbaa !24
  %62 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 1, ptr %62, align 8, !tbaa !25
  %63 = and i32 %6, 1
  %.not1557 = icmp eq i32 %63, 0
  br i1 %.not1557, label %101, label %64

64:                                               ; preds = %34, %58
  %.01096 = phi i64 [ %48, %34 ], [ 0, %58 ]
  %.01014 = phi i32 [ %54, %34 ], [ 0, %58 ]
  %.0925 = phi i32 [ %52, %34 ], [ 0, %58 ]
  %.0845 = phi i32 [ %50, %34 ], [ 0, %58 ]
  %.0842 = phi i32 [ %.84.fr1955, %34 ], [ 0, %58 ]
  %.not1558 = icmp sgt i64 %13, 0
  br i1 %.not1558, label %67, label %65

65:                                               ; preds = %64
  %66 = and i32 %6, 2
  %.not1625 = icmp eq i32 %66, 0
  store i32 1, ptr %0, align 8, !tbaa !19
  %spec.select1676 = select i1 %.not1625, i32 -4, i32 1
  br label %.thread

67:                                               ; preds = %64
  %68 = getelementptr inbounds i8, ptr %1, i64 1
  %69 = load i8, ptr %1, align 1, !tbaa !26
  %70 = zext i8 %69 to i32
  %71 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 %70, ptr %71, align 8, !tbaa !23
  br label %72

72:                                               ; preds = %75, %67
  %.01188 = phi ptr [ %1, %75 ], [ %68, %67 ]
  %.11097 = phi i64 [ %48, %75 ], [ %.01096, %67 ]
  %.11015 = phi i32 [ %54, %75 ], [ %.01014, %67 ]
  %.1926 = phi i32 [ %52, %75 ], [ %.0925, %67 ]
  %.1846 = phi i32 [ %50, %75 ], [ %.0845, %67 ]
  %.1843 = phi i32 [ %.84.fr1955, %75 ], [ %.0842, %67 ]
  %.not1559 = icmp ult ptr %.01188, %14
  br i1 %.not1559, label %76, label %73

73:                                               ; preds = %72
  %74 = and i32 %6, 2
  %.not1624 = icmp eq i32 %74, 0
  store i32 2, ptr %0, align 8, !tbaa !19
  %spec.select1678 = select i1 %.not1624, i32 -4, i32 1
  br label %.thread

75:                                               ; preds = %34
  br label %72, !llvm.loop !27

76:                                               ; preds = %72
  %77 = getelementptr inbounds i8, ptr %.01188, i64 1
  %78 = load i8, ptr %.01188, align 1, !tbaa !26
  %79 = zext i8 %78 to i32
  %80 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 %79, ptr %80, align 4, !tbaa !22
  %81 = getelementptr inbounds i8, ptr %0, i64 8
  %82 = load i32, ptr %81, align 8, !tbaa !23
  %83 = shl i32 %82, 8
  %84 = or disjoint i32 %83, %79
  %85 = urem i32 %84, 31
  %86 = and i32 %79, 32
  %87 = or disjoint i32 %85, %86
  %or.cond1630 = icmp ne i32 %87, 0
  %88 = and i32 %82, 15
  %89 = icmp ne i32 %88, 8
  %90 = select i1 %or.cond1630, i1 true, i1 %89
  br i1 %.not1551, label %91, label %100

91:                                               ; preds = %76
  %92 = lshr i32 %82, 4
  %93 = shl nuw i32 256, %92
  %94 = icmp ugt i32 %93, 32768
  %95 = add nuw nsw i32 %92, 8
  %96 = zext nneg i32 %95 to i64
  %.highbits = lshr i64 %30, %96
  %97 = icmp eq i64 %.highbits, 0
  %98 = select i1 %94, i1 true, i1 %97
  %99 = or i1 %90, %98
  br i1 %99, label %.loopexit2100, label %101

100:                                              ; preds = %76
  br i1 %90, label %.loopexit2100, label %101

101:                                              ; preds = %58, %100, %91, %1071
  %.01362 = phi i64 [ %.651427, %1071 ], [ %56, %91 ], [ %56, %100 ], [ %56, %58 ]
  %.01281 = phi ptr [ %.691350, %1071 ], [ %4, %91 ], [ %4, %100 ], [ %4, %58 ]
  %.31191 = phi ptr [ %.711259, %1071 ], [ %77, %91 ], [ %77, %100 ], [ %1, %58 ]
  %.41100 = phi i64 [ %.721168, %1071 ], [ %.11097, %91 ], [ %.11097, %100 ], [ 0, %58 ]
  %.41018 = phi i32 [ %.701084, %1071 ], [ %.11015, %91 ], [ %.11015, %100 ], [ 0, %58 ]
  %.5930 = phi i32 [ %.71996, %1071 ], [ 0, %91 ], [ 0, %100 ], [ 0, %58 ]
  %.4849 = phi i32 [ %.68913, %1071 ], [ %.1846, %91 ], [ %.1846, %100 ], [ 0, %58 ]
  %.4 = phi i32 [ %.72, %1071 ], [ %.1843, %91 ], [ %.1843, %100 ], [ 0, %58 ]
  %102 = icmp ult i32 %.4, 3
  br i1 %102, label %.preheader2139, label %.loopexit2140

.preheader2139:                                   ; preds = %101, %105
  %.21364.ph = phi i64 [ %.01362, %101 ], [ %56, %105 ]
  %.21283.ph = phi ptr [ %.01281, %101 ], [ %4, %105 ]
  %.51193.ph = phi ptr [ %.31191, %101 ], [ %1, %105 ]
  %.61102.ph = phi i64 [ %.41100, %101 ], [ %48, %105 ]
  %.61020.ph = phi i32 [ %.41018, %101 ], [ %54, %105 ]
  %.7932.ph = phi i32 [ %.5930, %101 ], [ %52, %105 ]
  %.6851.ph = phi i32 [ %.4849, %101 ], [ %50, %105 ]
  %.6.ph = phi i32 [ %.4, %101 ], [ %.84.fr1955, %105 ]
  %.not1562 = icmp ult ptr %.51193.ph, %14
  br i1 %.not1562, label %106, label %103

103:                                              ; preds = %115, %.preheader2139
  %.51193.lcssa = phi ptr [ %.51193.ph, %.preheader2139 ], [ %107, %115 ]
  %.61102.lcssa = phi i64 [ %.61102.ph, %.preheader2139 ], [ %112, %115 ]
  %.6.lcssa = phi i32 [ %.6.ph, %.preheader2139 ], [ %113, %115 ]
  %104 = and i32 %6, 2
  %.not1623 = icmp eq i32 %104, 0
  store i32 3, ptr %0, align 8, !tbaa !19
  %spec.select1680 = select i1 %.not1623, i32 -4, i32 1
  br label %.thread

105:                                              ; preds = %34
  br label %.preheader2139, !llvm.loop !28

106:                                              ; preds = %.preheader2139
  %107 = getelementptr inbounds i8, ptr %.51193.ph, i64 1
  %108 = load i8, ptr %.51193.ph, align 1, !tbaa !26
  %109 = zext i8 %108 to i64
  %110 = zext nneg i32 %.6.ph to i64
  %111 = shl i64 %109, %110
  %112 = or i64 %111, %.61102.ph
  %113 = add i32 %.6.ph, 8
  %114 = icmp ult i32 %113, 3
  br i1 %114, label %115, label %.loopexit2140, !llvm.loop !29

115:                                              ; preds = %106
  %.not1562.1 = icmp ult ptr %107, %14
  br i1 %.not1562.1, label %116, label %103

116:                                              ; preds = %115
  %117 = getelementptr inbounds i8, ptr %.51193.ph, i64 2
  %118 = load i8, ptr %107, align 1, !tbaa !26
  %119 = zext i8 %118 to i64
  %120 = zext nneg i32 %113 to i64
  %121 = shl nuw nsw i64 %119, %120
  %122 = or i64 %121, %.61102.ph
  %123 = add nsw i32 %.6.ph, 16
  br label %.loopexit2140

.loopexit2140:                                    ; preds = %106, %116, %101
  %.31365 = phi i64 [ %.01362, %101 ], [ %.21364.ph, %116 ], [ %.21364.ph, %106 ]
  %.31284 = phi ptr [ %.01281, %101 ], [ %.21283.ph, %116 ], [ %.21283.ph, %106 ]
  %.61194 = phi ptr [ %.31191, %101 ], [ %107, %106 ], [ %117, %116 ]
  %.71103 = phi i64 [ %.41100, %101 ], [ %112, %106 ], [ %122, %116 ]
  %.71021 = phi i32 [ %.41018, %101 ], [ %.61020.ph, %116 ], [ %.61020.ph, %106 ]
  %.8933 = phi i32 [ %.5930, %101 ], [ %.7932.ph, %116 ], [ %.7932.ph, %106 ]
  %.7852 = phi i32 [ %.4849, %101 ], [ %.6851.ph, %116 ], [ %.6851.ph, %106 ]
  %.7 = phi i32 [ %.4, %101 ], [ %113, %106 ], [ %123, %116 ]
  %124 = trunc i64 %.71103 to i32
  %125 = and i32 %124, 7
  %126 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %125, ptr %126, align 4, !tbaa !30
  %127 = lshr i64 %.71103, 3
  %128 = add i32 %.7, -3
  %129 = lshr i32 %125, 1
  %130 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %129, ptr %130, align 8, !tbaa !31
  %131 = icmp ult i32 %125, 2
  br i1 %131, label %143, label %246

132:                                              ; preds = %134
  %133 = and i32 %6, 2
  %.not1556 = icmp eq i32 %133, 0
  store i32 5, ptr %0, align 8, !tbaa !19
  %spec.select1682 = select i1 %.not1556, i32 -4, i32 1
  br label %.thread

134:                                              ; preds = %34
  %.not1555 = icmp sgt i64 %13, 0
  br i1 %.not1555, label %135, label %132

135:                                              ; preds = %134
  %136 = getelementptr inbounds i8, ptr %1, i64 1
  %137 = load i8, ptr %1, align 1, !tbaa !26
  %138 = zext i8 %137 to i64
  %139 = zext nneg i32 %.84.fr1955 to i64
  %140 = shl i64 %138, %139
  %141 = or i64 %140, %48
  %142 = add i32 %.84.fr1955, 8
  br label %143

143:                                              ; preds = %.loopexit2140, %135
  %.61368 = phi i64 [ %56, %135 ], [ %.31365, %.loopexit2140 ]
  %.61287 = phi ptr [ %4, %135 ], [ %.31284, %.loopexit2140 ]
  %.91197 = phi ptr [ %136, %135 ], [ %.61194, %.loopexit2140 ]
  %.101106 = phi i64 [ %141, %135 ], [ %127, %.loopexit2140 ]
  %.101024 = phi i32 [ %54, %135 ], [ %.71021, %.loopexit2140 ]
  %.10855 = phi i32 [ %50, %135 ], [ %.7852, %.loopexit2140 ]
  %.10 = phi i32 [ %142, %135 ], [ %128, %.loopexit2140 ]
  %144 = and i32 %.10, 7
  %145 = zext nneg i32 %144 to i64
  %146 = lshr i64 %.101106, %145
  %147 = and i32 %.10, -8
  br label %148

148:                                              ; preds = %182, %143
  %.71369 = phi i64 [ %.61368, %143 ], [ %.121374, %182 ]
  %.71288 = phi ptr [ %.61287, %143 ], [ %.121293, %182 ]
  %.101198 = phi ptr [ %.91197, %143 ], [ %.151203, %182 ]
  %.111107 = phi i64 [ %146, %143 ], [ %.161112, %182 ]
  %.111025 = phi i32 [ %.101024, %143 ], [ %.161030, %182 ]
  %.11936 = phi i32 [ 0, %143 ], [ %183, %182 ]
  %.11856 = phi i32 [ %.10855, %143 ], [ %.16861, %182 ]
  %.11 = phi i32 [ %147, %143 ], [ %.16, %182 ]
  %149 = icmp ult i32 %.11936, 4
  br i1 %149, label %150, label %184

150:                                              ; preds = %148
  %.not1618 = icmp eq i32 %.11, 0
  br i1 %.not1618, label %172, label %151

151:                                              ; preds = %150
  %152 = icmp ult i32 %.11, 8
  br i1 %152, label %.preheader2017, label %.loopexit2018

.preheader2017:                                   ; preds = %156, %151
  %.91371.ph = phi i64 [ %.71369, %151 ], [ %56, %156 ]
  %.91290.ph = phi ptr [ %.71288, %151 ], [ %4, %156 ]
  %.121200.ph = phi ptr [ %.101198, %151 ], [ %1, %156 ]
  %.131109.ph = phi i64 [ %.111107, %151 ], [ %48, %156 ]
  %.131027.ph = phi i32 [ %.111025, %151 ], [ %54, %156 ]
  %.13938.ph = phi i32 [ %.11936, %151 ], [ %52, %156 ]
  %.13858.ph = phi i32 [ %.11856, %151 ], [ %50, %156 ]
  %.13.ph = phi i32 [ %.11, %151 ], [ %.84.fr1955, %156 ]
  br label %153

153:                                              ; preds = %.preheader2017, %157
  %.121200 = phi ptr [ %158, %157 ], [ %.121200.ph, %.preheader2017 ]
  %.131109 = phi i64 [ %163, %157 ], [ %.131109.ph, %.preheader2017 ]
  %.13 = phi i32 [ %164, %157 ], [ %.13.ph, %.preheader2017 ]
  %.not1621 = icmp ult ptr %.121200, %14
  br i1 %.not1621, label %157, label %154

154:                                              ; preds = %153
  %155 = and i32 %6, 2
  %.not1622 = icmp eq i32 %155, 0
  store i32 6, ptr %0, align 8, !tbaa !19
  %spec.select1684 = select i1 %.not1622, i32 -4, i32 1
  br label %.thread

156:                                              ; preds = %34
  br label %.preheader2017, !llvm.loop !32

157:                                              ; preds = %153
  %158 = getelementptr inbounds i8, ptr %.121200, i64 1
  %159 = load i8, ptr %.121200, align 1, !tbaa !26
  %160 = zext i8 %159 to i64
  %161 = zext nneg i32 %.13 to i64
  %162 = shl i64 %160, %161
  %163 = or i64 %162, %.131109
  %164 = add i32 %.13, 8
  %165 = icmp ugt i32 %.13, -9
  br i1 %165, label %153, label %.loopexit2018, !llvm.loop !33

.loopexit2018:                                    ; preds = %157, %151
  %.101372 = phi i64 [ %.71369, %151 ], [ %.91371.ph, %157 ]
  %.101291 = phi ptr [ %.71288, %151 ], [ %.91290.ph, %157 ]
  %.131201 = phi ptr [ %.101198, %151 ], [ %158, %157 ]
  %.141110 = phi i64 [ %.111107, %151 ], [ %163, %157 ]
  %.141028 = phi i32 [ %.111025, %151 ], [ %.131027.ph, %157 ]
  %.14939 = phi i32 [ %.11936, %151 ], [ %.13938.ph, %157 ]
  %.14859 = phi i32 [ %.11856, %151 ], [ %.13858.ph, %157 ]
  %.14 = phi i32 [ %.11, %151 ], [ %164, %157 ]
  %166 = trunc i64 %.141110 to i8
  %167 = getelementptr inbounds i8, ptr %0, i64 7911
  %168 = zext i32 %.14939 to i64
  %169 = getelementptr inbounds [4 x i8], ptr %167, i64 0, i64 %168
  store i8 %166, ptr %169, align 1, !tbaa !26
  %170 = lshr i64 %.141110, 8
  %171 = add i32 %.14, -8
  br label %182

172:                                              ; preds = %150, %175
  %.111373 = phi i64 [ %.71369, %150 ], [ %56, %175 ]
  %.111292 = phi ptr [ %.71288, %150 ], [ %4, %175 ]
  %.141202 = phi ptr [ %.101198, %150 ], [ %1, %175 ]
  %.151111 = phi i64 [ %.111107, %150 ], [ %48, %175 ]
  %.151029 = phi i32 [ %.111025, %150 ], [ %54, %175 ]
  %.15940 = phi i32 [ %.11936, %150 ], [ %52, %175 ]
  %.15860 = phi i32 [ %.11856, %150 ], [ %50, %175 ]
  %.15 = phi i32 [ 0, %150 ], [ %.84.fr1955, %175 ]
  %.not1619 = icmp ult ptr %.141202, %14
  br i1 %.not1619, label %176, label %173

173:                                              ; preds = %172
  %174 = and i32 %6, 2
  %.not1620 = icmp eq i32 %174, 0
  store i32 7, ptr %0, align 8, !tbaa !19
  %spec.select1686 = select i1 %.not1620, i32 -4, i32 1
  br label %.thread

175:                                              ; preds = %34
  br label %172, !llvm.loop !34

176:                                              ; preds = %172
  %177 = getelementptr inbounds i8, ptr %.141202, i64 1
  %178 = load i8, ptr %.141202, align 1, !tbaa !26
  %179 = getelementptr inbounds i8, ptr %0, i64 7911
  %180 = zext i32 %.15940 to i64
  %181 = getelementptr inbounds [4 x i8], ptr %179, i64 0, i64 %180
  store i8 %178, ptr %181, align 1, !tbaa !26
  br label %182

182:                                              ; preds = %.loopexit2018, %176
  %.121374 = phi i64 [ %.101372, %.loopexit2018 ], [ %.111373, %176 ]
  %.121293 = phi ptr [ %.101291, %.loopexit2018 ], [ %.111292, %176 ]
  %.151203 = phi ptr [ %.131201, %.loopexit2018 ], [ %177, %176 ]
  %.161112 = phi i64 [ %170, %.loopexit2018 ], [ %.151111, %176 ]
  %.161030 = phi i32 [ %.141028, %.loopexit2018 ], [ %.151029, %176 ]
  %.16941 = phi i32 [ %.14939, %.loopexit2018 ], [ %.15940, %176 ]
  %.16861 = phi i32 [ %.14859, %.loopexit2018 ], [ %.15860, %176 ]
  %.16 = phi i32 [ %171, %.loopexit2018 ], [ %.15, %176 ]
  %183 = add i32 %.16941, 1
  br label %148, !llvm.loop !35

184:                                              ; preds = %148
  %185 = getelementptr inbounds i8, ptr %0, i64 7911
  %186 = load i8, ptr %185, align 1, !tbaa !26
  %187 = zext i8 %186 to i32
  %188 = getelementptr inbounds i8, ptr %0, i64 7912
  %189 = load i8, ptr %188, align 1, !tbaa !26
  %190 = zext i8 %189 to i32
  %191 = shl nuw nsw i32 %190, 8
  %192 = or disjoint i32 %191, %187
  %193 = getelementptr inbounds i8, ptr %0, i64 7913
  %194 = load i16, ptr %193, align 1
  %195 = zext i16 %194 to i32
  %196 = xor i32 %192, %195
  %.not1602 = icmp eq i32 %196, 65535
  br i1 %.not1602, label %197, label %.loopexit2100

197:                                              ; preds = %184, %222
  %.141376 = phi i64 [ %.71369, %184 ], [ %.181380, %222 ]
  %.141295 = phi ptr [ %.71288, %184 ], [ %224, %222 ]
  %.171205 = phi ptr [ %.101198, %184 ], [ %.211209, %222 ]
  %.181114 = phi i64 [ %.111107, %184 ], [ %.221118, %222 ]
  %.181032 = phi i32 [ %.111025, %184 ], [ %.221036, %222 ]
  %.18943 = phi i32 [ %192, %184 ], [ %225, %222 ]
  %.18863 = phi i32 [ %.11856, %184 ], [ %.21866, %222 ]
  %.18 = phi i32 [ %.11, %184 ], [ %.22, %222 ]
  %198 = icmp ne i32 %.18943, 0
  %199 = icmp ne i32 %.18, 0
  %200 = select i1 %198, i1 %199, i1 false
  br i1 %200, label %201, label %226

201:                                              ; preds = %197
  %202 = icmp ult i32 %.18, 8
  br i1 %202, label %.preheader2025, label %.loopexit2026

.preheader2025:                                   ; preds = %206, %201
  %.161378.ph = phi i64 [ %.141376, %201 ], [ %56, %206 ]
  %.161297.ph = phi ptr [ %.141295, %201 ], [ %4, %206 ]
  %.191207.ph = phi ptr [ %.171205, %201 ], [ %1, %206 ]
  %.201116.ph = phi i64 [ %.181114, %201 ], [ %48, %206 ]
  %.201034.ph = phi i32 [ %.181032, %201 ], [ %54, %206 ]
  %.20945.ph = phi i32 [ %.18943, %201 ], [ %52, %206 ]
  %.20865.ph = phi i32 [ %.18863, %201 ], [ %50, %206 ]
  %.20.ph = phi i32 [ %.18, %201 ], [ %.84.fr1955, %206 ]
  br label %203

203:                                              ; preds = %.preheader2025, %207
  %.191207 = phi ptr [ %208, %207 ], [ %.191207.ph, %.preheader2025 ]
  %.201116 = phi i64 [ %213, %207 ], [ %.201116.ph, %.preheader2025 ]
  %.20 = phi i32 [ %214, %207 ], [ %.20.ph, %.preheader2025 ]
  %.not1615 = icmp ult ptr %.191207, %14
  br i1 %.not1615, label %207, label %204

204:                                              ; preds = %203
  %205 = and i32 %6, 2
  %.not1617 = icmp eq i32 %205, 0
  store i32 51, ptr %0, align 8, !tbaa !19
  %spec.select1688 = select i1 %.not1617, i32 -4, i32 1
  br label %.thread

206:                                              ; preds = %34
  br label %.preheader2025, !llvm.loop !36

207:                                              ; preds = %203
  %208 = getelementptr inbounds i8, ptr %.191207, i64 1
  %209 = load i8, ptr %.191207, align 1, !tbaa !26
  %210 = zext i8 %209 to i64
  %211 = zext nneg i32 %.20 to i64
  %212 = shl i64 %210, %211
  %213 = or i64 %212, %.201116
  %214 = add i32 %.20, 8
  %215 = icmp ugt i32 %.20, -9
  br i1 %215, label %203, label %.loopexit2026, !llvm.loop !37

.loopexit2026:                                    ; preds = %207, %201
  %.171379 = phi i64 [ %.141376, %201 ], [ %.161378.ph, %207 ]
  %.171298 = phi ptr [ %.141295, %201 ], [ %.161297.ph, %207 ]
  %.201208 = phi ptr [ %.171205, %201 ], [ %208, %207 ]
  %.211117 = phi i64 [ %.181114, %201 ], [ %213, %207 ]
  %.211035 = phi i32 [ %.181032, %201 ], [ %.201034.ph, %207 ]
  %.21946 = phi i32 [ %.18943, %201 ], [ %.20945.ph, %207 ]
  %.21 = phi i32 [ %.18, %201 ], [ %214, %207 ]
  %216 = trunc i64 %.211117 to i32
  %217 = and i32 %216, 255
  %218 = lshr i64 %.211117, 8
  %219 = add i32 %.21, -8
  br label %220

220:                                              ; preds = %221, %.loopexit2026
  %.181380 = phi i64 [ %.171379, %.loopexit2026 ], [ %56, %221 ]
  %.181299 = phi ptr [ %.171298, %.loopexit2026 ], [ %4, %221 ]
  %.211209 = phi ptr [ %.201208, %.loopexit2026 ], [ %1, %221 ]
  %.221118 = phi i64 [ %218, %.loopexit2026 ], [ %48, %221 ]
  %.221036 = phi i32 [ %.211035, %.loopexit2026 ], [ %54, %221 ]
  %.22947 = phi i32 [ %.21946, %.loopexit2026 ], [ %52, %221 ]
  %.21866 = phi i32 [ %217, %.loopexit2026 ], [ %50, %221 ]
  %.22 = phi i32 [ %219, %.loopexit2026 ], [ %.84.fr1955, %221 ]
  %.not1616 = icmp ult ptr %.181299, %19
  br i1 %.not1616, label %222, label %.loopexit2100

221:                                              ; preds = %34
  br label %220, !llvm.loop !38

222:                                              ; preds = %220
  %223 = trunc i32 %.21866 to i8
  %224 = getelementptr inbounds i8, ptr %.181299, i64 1
  store i8 %223, ptr %.181299, align 1, !tbaa !26
  %225 = add i32 %.22947, -1
  br label %197, !llvm.loop !39

226:                                              ; preds = %197, %233
  %.191381 = phi i64 [ %.141376, %197 ], [ %.211383, %233 ]
  %.191300 = phi ptr [ %.141295, %197 ], [ %243, %233 ]
  %.221210 = phi ptr [ %.171205, %197 ], [ %242, %233 ]
  %.231119 = phi i64 [ %.181114, %197 ], [ %.251121, %233 ]
  %.231037 = phi i32 [ %.181032, %197 ], [ %.251039, %233 ]
  %.23948 = phi i32 [ %.18943, %197 ], [ %245, %233 ]
  %.22867 = phi i32 [ %.18863, %197 ], [ %.24869, %233 ]
  %.23 = phi i32 [ %.18, %197 ], [ %.25, %233 ]
  %.not1603 = icmp eq i32 %.23948, 0
  br i1 %.not1603, label %1071, label %227

227:                                              ; preds = %226, %228
  %.201382 = phi i64 [ %.191381, %226 ], [ %56, %228 ]
  %.201301 = phi ptr [ %.191300, %226 ], [ %4, %228 ]
  %.231211 = phi ptr [ %.221210, %226 ], [ %1, %228 ]
  %.241120 = phi i64 [ %.231119, %226 ], [ %48, %228 ]
  %.241038 = phi i32 [ %.231037, %226 ], [ %54, %228 ]
  %.24949 = phi i32 [ %.23948, %226 ], [ %52, %228 ]
  %.23868 = phi i32 [ %.22867, %226 ], [ %50, %228 ]
  %.24 = phi i32 [ %.23, %226 ], [ %.84.fr1955, %228 ]
  %.not1612 = icmp ult ptr %.201301, %19
  br i1 %.not1612, label %229, label %.loopexit2100

228:                                              ; preds = %34
  br label %227, !llvm.loop !40

229:                                              ; preds = %227, %232
  %.211383 = phi i64 [ %.201382, %227 ], [ %56, %232 ]
  %.211302 = phi ptr [ %.201301, %227 ], [ %4, %232 ]
  %.241212 = phi ptr [ %.231211, %227 ], [ %1, %232 ]
  %.251121 = phi i64 [ %.241120, %227 ], [ %48, %232 ]
  %.251039 = phi i32 [ %.241038, %227 ], [ %54, %232 ]
  %.25950 = phi i32 [ %.24949, %227 ], [ %52, %232 ]
  %.24869 = phi i32 [ %.23868, %227 ], [ %50, %232 ]
  %.25 = phi i32 [ %.24, %227 ], [ %.84.fr1955, %232 ]
  %.not1613 = icmp ult ptr %.241212, %14
  br i1 %.not1613, label %233, label %230

230:                                              ; preds = %229
  %231 = and i32 %6, 2
  %.not1614 = icmp eq i32 %231, 0
  store i32 38, ptr %0, align 8, !tbaa !19
  %spec.select1690 = select i1 %.not1614, i32 -4, i32 1
  br label %.thread

232:                                              ; preds = %34
  br label %229, !llvm.loop !41

233:                                              ; preds = %229
  %234 = ptrtoint ptr %19 to i64
  %235 = ptrtoint ptr %.211302 to i64
  %236 = sub i64 %234, %235
  %237 = ptrtoint ptr %14 to i64
  %238 = ptrtoint ptr %.241212 to i64
  %239 = sub i64 %237, %238
  %. = tail call i64 @llvm.umin.i64(i64 %236, i64 %239)
  %240 = zext i32 %.25950 to i64
  %241 = tail call i64 @llvm.umin.i64(i64 %., i64 %240)
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.211302, ptr align 1 %.241212, i64 %241, i1 false)
  %242 = getelementptr inbounds i8, ptr %.241212, i64 %241
  %243 = getelementptr inbounds i8, ptr %.211302, i64 %241
  %244 = trunc nuw i64 %241 to i32
  %245 = sub i32 %.25950, %244
  br label %226, !llvm.loop !42

246:                                              ; preds = %.loopexit2140
  switch i32 %129, label %249 [
    i32 3, label %.loopexit2100
    i32 1, label %.lr.ph1764.preheader
  ]

.lr.ph1764.preheader:                             ; preds = %246
  %247 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 288, ptr %247, align 4, !tbaa !43
  %248 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 32, ptr %248, align 4, !tbaa !43
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(32) %41, i8 5, i64 32, i1 false)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(144) %40, i8 8, i64 144, i1 false), !tbaa !26
  %scevgep = getelementptr i8, ptr %0, i64 7716
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(112) %scevgep, i8 9, i64 112, i1 false), !tbaa !26
  %scevgep1883 = getelementptr i8, ptr %0, i64 7828
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(24) %scevgep1883, i8 7, i64 24, i1 false), !tbaa !26
  %scevgep1884 = getelementptr i8, ptr %0, i64 7852
  store i64 578721382704613384, ptr %scevgep1884, align 1
  br label %.loopexit1735

249:                                              ; preds = %246, %.loopexit2042
  %.231385 = phi i64 [ %.261388, %.loopexit2042 ], [ %.31365, %246 ]
  %.231304 = phi ptr [ %.261307, %.loopexit2042 ], [ %.31284, %246 ]
  %.261214 = phi ptr [ %.291217, %.loopexit2042 ], [ %.61194, %246 ]
  %.271123 = phi i64 [ %282, %.loopexit2042 ], [ %127, %246 ]
  %.271041 = phi i32 [ %.301044, %.loopexit2042 ], [ %.71021, %246 ]
  %.27952 = phi i32 [ %288, %.loopexit2042 ], [ 0, %246 ]
  %.26871 = phi i32 [ %.29874, %.loopexit2042 ], [ %.7852, %246 ]
  %.27 = phi i32 [ %283, %.loopexit2042 ], [ %128, %246 ]
  %250 = icmp ult i32 %.27952, 3
  br i1 %250, label %251, label %289

251:                                              ; preds = %249
  %252 = zext nneg i32 %.27952 to i64
  %253 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %252
  %254 = load i8, ptr %253, align 1, !tbaa !26
  %255 = sext i8 %254 to i32
  %256 = icmp ult i32 %.27, %255
  br i1 %256, label %.preheader2041, label %.loopexit2042

.preheader2041:                                   ; preds = %262, %251
  %.251387.ph = phi i64 [ %.231385, %251 ], [ %56, %262 ]
  %.251306.ph = phi ptr [ %.231304, %251 ], [ %4, %262 ]
  %.281216.ph = phi ptr [ %.261214, %251 ], [ %1, %262 ]
  %.291125.ph = phi i64 [ %.271123, %251 ], [ %48, %262 ]
  %.291043.ph = phi i32 [ %.271041, %251 ], [ %54, %262 ]
  %.29954.ph = phi i32 [ %.27952, %251 ], [ %52, %262 ]
  %.28873.ph = phi i32 [ %.26871, %251 ], [ %50, %262 ]
  %.29.ph = phi i32 [ %.27, %251 ], [ %.84.fr1955, %262 ]
  %257 = zext i32 %.29954.ph to i64
  %258 = getelementptr inbounds [4 x i8], ptr @.str.14, i64 0, i64 %257
  br label %259

259:                                              ; preds = %.preheader2041, %263
  %.281216 = phi ptr [ %264, %263 ], [ %.281216.ph, %.preheader2041 ]
  %.291125 = phi i64 [ %269, %263 ], [ %.291125.ph, %.preheader2041 ]
  %.29 = phi i32 [ %270, %263 ], [ %.29.ph, %.preheader2041 ]
  %.not1565 = icmp ult ptr %.281216, %14
  br i1 %.not1565, label %263, label %260

260:                                              ; preds = %259
  %261 = and i32 %6, 2
  %.not1566 = icmp eq i32 %261, 0
  store i32 11, ptr %0, align 8, !tbaa !19
  %spec.select1692 = select i1 %.not1566, i32 -4, i32 1
  br label %.thread

262:                                              ; preds = %34
  br label %.preheader2041, !llvm.loop !44

263:                                              ; preds = %259
  %264 = getelementptr inbounds i8, ptr %.281216, i64 1
  %265 = load i8, ptr %.281216, align 1, !tbaa !26
  %266 = zext i8 %265 to i64
  %267 = zext nneg i32 %.29 to i64
  %268 = shl i64 %266, %267
  %269 = or i64 %268, %.291125
  %270 = add i32 %.29, 8
  %271 = load i8, ptr %258, align 1, !tbaa !26
  %272 = sext i8 %271 to i32
  %273 = icmp ult i32 %270, %272
  br i1 %273, label %259, label %.loopexit2042, !llvm.loop !45

.loopexit2042:                                    ; preds = %263, %251
  %.pre-phi1937 = phi i32 [ %255, %251 ], [ %272, %263 ]
  %274 = phi i8 [ %254, %251 ], [ %271, %263 ]
  %.pre-phi = phi i64 [ %252, %251 ], [ %257, %263 ]
  %.261388 = phi i64 [ %.231385, %251 ], [ %.251387.ph, %263 ]
  %.261307 = phi ptr [ %.231304, %251 ], [ %.251306.ph, %263 ]
  %.291217 = phi ptr [ %.261214, %251 ], [ %264, %263 ]
  %.301126 = phi i64 [ %.271123, %251 ], [ %269, %263 ]
  %.301044 = phi i32 [ %.271041, %251 ], [ %.291043.ph, %263 ]
  %.30955 = phi i32 [ %.27952, %251 ], [ %.29954.ph, %263 ]
  %.29874 = phi i32 [ %.26871, %251 ], [ %.28873.ph, %263 ]
  %.30 = phi i32 [ %.27, %251 ], [ %270, %263 ]
  %275 = zext nneg i8 %274 to i32
  %notmask = shl nsw i32 -1, %275
  %276 = xor i32 %notmask, -1
  %277 = trunc i64 %.301126 to i32
  %278 = and i32 %276, %277
  %279 = getelementptr inbounds i8, ptr %0, i64 44
  %280 = getelementptr inbounds [3 x i32], ptr %279, i64 0, i64 %.pre-phi
  %281 = zext nneg i32 %.pre-phi1937 to i64
  %282 = lshr i64 %.301126, %281
  %283 = sub i32 %.30, %.pre-phi1937
  %284 = getelementptr inbounds [3 x i16], ptr @tinfl_decompress.s_min_table_sizes, i64 0, i64 %.pre-phi
  %285 = load i16, ptr %284, align 2, !tbaa !46
  %286 = zext i16 %285 to i32
  %287 = add nuw i32 %278, %286
  store i32 %287, ptr %280, align 4, !tbaa !43
  %288 = add i32 %.30955, 1
  br label %249, !llvm.loop !48

289:                                              ; preds = %249
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(19) %43, i8 0, i64 19, i1 false)
  br label %290

290:                                              ; preds = %.loopexit2053, %289
  %.271389 = phi i64 [ %.231385, %289 ], [ %.301392, %.loopexit2053 ]
  %.271308 = phi ptr [ %.231304, %289 ], [ %.301311, %.loopexit2053 ]
  %.301218 = phi ptr [ %.261214, %289 ], [ %.331221, %.loopexit2053 ]
  %.311127 = phi i64 [ %.271123, %289 ], [ %319, %.loopexit2053 ]
  %.311045 = phi i32 [ %.271041, %289 ], [ %.341048, %.loopexit2053 ]
  %.31956 = phi i32 [ 0, %289 ], [ %326, %.loopexit2053 ]
  %.30875 = phi i32 [ %.26871, %289 ], [ %.33878, %.loopexit2053 ]
  %.31 = phi i32 [ %.27, %289 ], [ %320, %.loopexit2053 ]
  %291 = getelementptr inbounds i8, ptr %0, i64 52
  %292 = load i32, ptr %291, align 4, !tbaa !43
  %293 = icmp ult i32 %.31956, %292
  br i1 %293, label %294, label %327

294:                                              ; preds = %290
  %295 = icmp ult i32 %.31, 3
  br i1 %295, label %.preheader2052, label %.loopexit2053

.preheader2052:                                   ; preds = %294, %298
  %.291391.ph = phi i64 [ %.271389, %294 ], [ %56, %298 ]
  %.291310.ph = phi ptr [ %.271308, %294 ], [ %4, %298 ]
  %.321220.ph = phi ptr [ %.301218, %294 ], [ %1, %298 ]
  %.331129.ph = phi i64 [ %.311127, %294 ], [ %48, %298 ]
  %.331047.ph = phi i32 [ %.311045, %294 ], [ %54, %298 ]
  %.33958.ph = phi i32 [ %.31956, %294 ], [ %52, %298 ]
  %.32877.ph = phi i32 [ %.30875, %294 ], [ %50, %298 ]
  %.33.ph = phi i32 [ %.31, %294 ], [ %.84.fr1955, %298 ]
  %.not1563 = icmp ult ptr %.321220.ph, %14
  br i1 %.not1563, label %299, label %296

296:                                              ; preds = %308, %.preheader2052
  %.321220.lcssa = phi ptr [ %.321220.ph, %.preheader2052 ], [ %300, %308 ]
  %.331129.lcssa = phi i64 [ %.331129.ph, %.preheader2052 ], [ %305, %308 ]
  %.33.lcssa = phi i32 [ %.33.ph, %.preheader2052 ], [ %306, %308 ]
  %297 = and i32 %6, 2
  %.not1564 = icmp eq i32 %297, 0
  store i32 14, ptr %0, align 8, !tbaa !19
  %spec.select1694 = select i1 %.not1564, i32 -4, i32 1
  br label %.thread

298:                                              ; preds = %34
  br label %.preheader2052, !llvm.loop !49

299:                                              ; preds = %.preheader2052
  %300 = getelementptr inbounds i8, ptr %.321220.ph, i64 1
  %301 = load i8, ptr %.321220.ph, align 1, !tbaa !26
  %302 = zext i8 %301 to i64
  %303 = zext nneg i32 %.33.ph to i64
  %304 = shl i64 %302, %303
  %305 = or i64 %304, %.331129.ph
  %306 = add i32 %.33.ph, 8
  %307 = icmp ult i32 %306, 3
  br i1 %307, label %308, label %.loopexit2053, !llvm.loop !50

308:                                              ; preds = %299
  %.not1563.1 = icmp ult ptr %300, %14
  br i1 %.not1563.1, label %309, label %296

309:                                              ; preds = %308
  %310 = getelementptr inbounds i8, ptr %.321220.ph, i64 2
  %311 = load i8, ptr %300, align 1, !tbaa !26
  %312 = zext i8 %311 to i64
  %313 = zext nneg i32 %306 to i64
  %314 = shl nuw nsw i64 %312, %313
  %315 = or i64 %314, %.331129.ph
  %316 = add nsw i32 %.33.ph, 16
  br label %.loopexit2053

.loopexit2053:                                    ; preds = %299, %309, %294
  %.301392 = phi i64 [ %.271389, %294 ], [ %.291391.ph, %309 ], [ %.291391.ph, %299 ]
  %.301311 = phi ptr [ %.271308, %294 ], [ %.291310.ph, %309 ], [ %.291310.ph, %299 ]
  %.331221 = phi ptr [ %.301218, %294 ], [ %300, %299 ], [ %310, %309 ]
  %.341130 = phi i64 [ %.311127, %294 ], [ %305, %299 ], [ %315, %309 ]
  %.341048 = phi i32 [ %.311045, %294 ], [ %.331047.ph, %309 ], [ %.331047.ph, %299 ]
  %.34959 = phi i32 [ %.31956, %294 ], [ %.33958.ph, %309 ], [ %.33958.ph, %299 ]
  %.33878 = phi i32 [ %.30875, %294 ], [ %.32877.ph, %309 ], [ %.32877.ph, %299 ]
  %.34 = phi i32 [ %.31, %294 ], [ %306, %299 ], [ %316, %309 ]
  %317 = trunc i64 %.341130 to i8
  %318 = and i8 %317, 7
  %319 = lshr i64 %.341130, 3
  %320 = add i32 %.34, -3
  %321 = zext i32 %.34959 to i64
  %322 = getelementptr inbounds [19 x i8], ptr @tinfl_decompress.s_length_dezigzag, i64 0, i64 %321
  %323 = load i8, ptr %322, align 1, !tbaa !26
  %324 = zext i8 %323 to i64
  %325 = getelementptr inbounds [19 x i8], ptr %43, i64 0, i64 %324
  store i8 %318, ptr %325, align 1, !tbaa !26
  %326 = add i32 %.34959, 1
  br label %290, !llvm.loop !51

327:                                              ; preds = %290
  store i32 19, ptr %291, align 4, !tbaa !43
  %.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 !31
  br label %.loopexit1735

.loopexit1735:                                    ; preds = %327, %.lr.ph1764.preheader, %682
  %328 = phi i32 [ %685, %682 ], [ %.pre.pre, %327 ], [ 1, %.lr.ph1764.preheader ]
  %.321394 = phi i64 [ %.431405, %682 ], [ %.271389, %327 ], [ %.31365, %.lr.ph1764.preheader ]
  %.321313 = phi ptr [ %.431324, %682 ], [ %.271308, %327 ], [ %.31284, %.lr.ph1764.preheader ]
  %.351223 = phi ptr [ %.461234, %682 ], [ %.301218, %327 ], [ %.61194, %.lr.ph1764.preheader ]
  %.361132 = phi i64 [ %.471143, %682 ], [ %.311127, %327 ], [ %127, %.lr.ph1764.preheader ]
  %.361050 = phi i32 [ %.471061, %682 ], [ %.311045, %327 ], [ %.71021, %.lr.ph1764.preheader ]
  %.36961 = phi i32 [ %.47972, %682 ], [ %.31956, %327 ], [ %.8933, %.lr.ph1764.preheader ]
  %.35880 = phi i32 [ %.45890, %682 ], [ %.30875, %327 ], [ %.7852, %.lr.ph1764.preheader ]
  %.36 = phi i32 [ %.47, %682 ], [ %.31, %327 ], [ %128, %.lr.ph1764.preheader ]
  %329 = icmp sgt i32 %328, -1
  br i1 %329, label %330, label %.preheader2098

330:                                              ; preds = %.loopexit1735
  %331 = getelementptr inbounds i8, ptr %0, i64 24
  %332 = getelementptr inbounds i8, ptr %0, i64 72
  %333 = zext nneg i32 %328 to i64
  %334 = getelementptr inbounds [3 x [1024 x i16]], ptr %332, i64 0, i64 %333
  %335 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 %333
  %336 = load ptr, ptr %335, align 8, !tbaa !9
  %337 = getelementptr inbounds [3 x ptr], ptr %10, i64 0, i64 %333
  %338 = load ptr, ptr %337, align 8, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %12, i8 0, i64 64, i1 false)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(2048) %334, i8 0, i64 2048, i1 false)
  tail call void @tinfl_clear_tree(ptr noundef nonnull %0)
  %339 = getelementptr inbounds i8, ptr %0, i64 44
  %340 = load i32, ptr %331, align 8, !tbaa !31
  %341 = zext i32 %340 to i64
  %342 = getelementptr inbounds [3 x i32], ptr %339, i64 0, i64 %341
  %343 = load i32, ptr %342, align 4, !tbaa !43
  %.not1841 = icmp eq i32 %343, 0
  br i1 %.not1841, label %._crit_edge1775, label %.lr.ph1774.preheader

.lr.ph1774.preheader:                             ; preds = %330
  %wide.trip.count = zext i32 %343 to i64
  %xtraiter2147 = and i64 %wide.trip.count, 3
  %344 = icmp ult i32 %343, 4
  br i1 %344, label %._crit_edge1775.loopexit.unr-lcssa, label %.lr.ph1774.preheader.new

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

.lr.ph1774:                                       ; preds = %.lr.ph1774, %.lr.ph1774.preheader.new
  %indvars.iv = phi i64 [ 0, %.lr.ph1774.preheader.new ], [ %indvars.iv.next.3, %.lr.ph1774 ]
  %niter = phi i64 [ 0, %.lr.ph1774.preheader.new ], [ %niter.next.3, %.lr.ph1774 ]
  %345 = getelementptr inbounds i8, ptr %338, i64 %indvars.iv
  %346 = load i8, ptr %345, align 1, !tbaa !26
  %347 = zext i8 %346 to i64
  %348 = getelementptr inbounds [16 x i32], ptr %12, i64 0, i64 %347
  %349 = load i32, ptr %348, align 4, !tbaa !43
  %350 = add i32 %349, 1
  store i32 %350, ptr %348, align 4, !tbaa !43
  %indvars.iv.next = or disjoint i64 %indvars.iv, 1
  %351 = getelementptr inbounds i8, ptr %338, i64 %indvars.iv.next
  %352 = load i8, ptr %351, align 1, !tbaa !26
  %353 = zext i8 %352 to i64
  %354 = getelementptr inbounds [16 x i32], ptr %12, i64 0, i64 %353
  %355 = load i32, ptr %354, align 4, !tbaa !43
  %356 = add i32 %355, 1
  store i32 %356, ptr %354, align 4, !tbaa !43
  %indvars.iv.next.1 = or disjoint i64 %indvars.iv, 2
  %357 = getelementptr inbounds i8, ptr %338, i64 %indvars.iv.next.1
  %358 = load i8, ptr %357, align 1, !tbaa !26
  %359 = zext i8 %358 to i64
  %360 = getelementptr inbounds [16 x i32], ptr %12, i64 0, i64 %359
  %361 = load i32, ptr %360, align 4, !tbaa !43
  %362 = add i32 %361, 1
  store i32 %362, ptr %360, align 4, !tbaa !43
  %indvars.iv.next.2 = or disjoint i64 %indvars.iv, 3
  %363 = getelementptr inbounds i8, ptr %338, i64 %indvars.iv.next.2
  %364 = load i8, ptr %363, align 1, !tbaa !26
  %365 = zext i8 %364 to i64
  %366 = getelementptr inbounds [16 x i32], ptr %12, i64 0, i64 %365
  %367 = load i32, ptr %366, align 4, !tbaa !43
  %368 = add i32 %367, 1
  store i32 %368, ptr %366, align 4, !tbaa !43
  %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_edge1775.loopexit.unr-lcssa, label %.lr.ph1774, !llvm.loop !52

._crit_edge1775.loopexit.unr-lcssa:               ; preds = %.lr.ph1774, %.lr.ph1774.preheader
  %indvars.iv.unr = phi i64 [ 0, %.lr.ph1774.preheader ], [ %indvars.iv.next.3, %.lr.ph1774 ]
  %lcmp.mod2148.not = icmp eq i64 %xtraiter2147, 0
  br i1 %lcmp.mod2148.not, label %._crit_edge1775.loopexit, label %.lr.ph1774.epil

.lr.ph1774.epil:                                  ; preds = %._crit_edge1775.loopexit.unr-lcssa, %.lr.ph1774.epil
  %indvars.iv.epil = phi i64 [ %indvars.iv.next.epil, %.lr.ph1774.epil ], [ %indvars.iv.unr, %._crit_edge1775.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1774.epil ], [ 0, %._crit_edge1775.loopexit.unr-lcssa ]
  %369 = getelementptr inbounds i8, ptr %338, i64 %indvars.iv.epil
  %370 = load i8, ptr %369, align 1, !tbaa !26
  %371 = zext i8 %370 to i64
  %372 = getelementptr inbounds [16 x i32], ptr %12, i64 0, i64 %371
  %373 = load i32, ptr %372, align 4, !tbaa !43
  %374 = add i32 %373, 1
  store i32 %374, ptr %372, align 4, !tbaa !43
  %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, %xtraiter2147
  br i1 %epil.iter.cmp.not, label %._crit_edge1775.loopexit, label %.lr.ph1774.epil, !llvm.loop !53

._crit_edge1775.loopexit:                         ; preds = %.lr.ph1774.epil, %._crit_edge1775.loopexit.unr-lcssa
  %.phi.trans.insert1908 = getelementptr inbounds i8, ptr %12, i64 4
  %.pre1909 = load i32, ptr %.phi.trans.insert1908, align 4, !tbaa !43
  %.phi.trans.insert1910 = getelementptr inbounds i8, ptr %12, i64 8
  %.pre1911 = load i32, ptr %.phi.trans.insert1910, align 8, !tbaa !43
  %.phi.trans.insert1912 = getelementptr inbounds i8, ptr %12, i64 12
  %.pre1913 = load i32, ptr %.phi.trans.insert1912, align 4, !tbaa !43
  %.phi.trans.insert1914 = getelementptr inbounds i8, ptr %12, i64 16
  %.pre1915 = load i32, ptr %.phi.trans.insert1914, align 16, !tbaa !43
  %.phi.trans.insert1916 = getelementptr inbounds i8, ptr %12, i64 20
  %.pre1917 = load i32, ptr %.phi.trans.insert1916, align 4, !tbaa !43
  %.phi.trans.insert1918 = getelementptr inbounds i8, ptr %12, i64 24
  %.pre1919 = load i32, ptr %.phi.trans.insert1918, align 8, !tbaa !43
  %.phi.trans.insert1920 = getelementptr inbounds i8, ptr %12, i64 28
  %.pre1921 = load i32, ptr %.phi.trans.insert1920, align 4, !tbaa !43
  %.phi.trans.insert1922 = getelementptr inbounds i8, ptr %12, i64 32
  %.pre1923 = load i32, ptr %.phi.trans.insert1922, align 16, !tbaa !43
  %.phi.trans.insert1924 = getelementptr inbounds i8, ptr %12, i64 36
  %.pre1925 = load i32, ptr %.phi.trans.insert1924, align 4, !tbaa !43
  %.phi.trans.insert1926 = getelementptr inbounds i8, ptr %12, i64 40
  %.pre1927 = load i32, ptr %.phi.trans.insert1926, align 8, !tbaa !43
  %.phi.trans.insert1928 = getelementptr inbounds i8, ptr %12, i64 44
  %.pre1929 = load i32, ptr %.phi.trans.insert1928, align 4, !tbaa !43
  %.phi.trans.insert1930 = getelementptr inbounds i8, ptr %12, i64 48
  %.pre1931 = load i32, ptr %.phi.trans.insert1930, align 16, !tbaa !43
  %.phi.trans.insert1932 = getelementptr inbounds i8, ptr %12, i64 52
  %.pre1933 = load i32, ptr %.phi.trans.insert1932, align 4, !tbaa !43
  %.phi.trans.insert1934 = getelementptr inbounds i8, ptr %12, i64 56
  %.pre1935 = load i32, ptr %.phi.trans.insert1934, align 8, !tbaa !43
  br label %._crit_edge1775

._crit_edge1775:                                  ; preds = %._crit_edge1775.loopexit, %330
  %375 = phi i32 [ %.pre1935, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %376 = phi i32 [ %.pre1933, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %377 = phi i32 [ %.pre1931, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %378 = phi i32 [ %.pre1929, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %379 = phi i32 [ %.pre1927, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %380 = phi i32 [ %.pre1925, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %381 = phi i32 [ %.pre1923, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %382 = phi i32 [ %.pre1921, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %383 = phi i32 [ %.pre1919, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %384 = phi i32 [ %.pre1917, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %385 = phi i32 [ %.pre1915, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %386 = phi i32 [ %.pre1913, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %387 = phi i32 [ %.pre1911, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %388 = phi i32 [ %.pre1909, %._crit_edge1775.loopexit ], [ 0, %330 ]
  %389 = getelementptr inbounds i8, ptr %11, i64 4
  store i32 0, ptr %389, align 4, !tbaa !43
  store i32 0, ptr %11, align 16, !tbaa !43
  %390 = shl i32 %388, 1
  %391 = getelementptr inbounds i8, ptr %11, i64 8
  store i32 %390, ptr %391, align 8, !tbaa !43
  %392 = add i32 %387, %388
  %393 = add i32 %387, %390
  %394 = shl i32 %393, 1
  %395 = getelementptr inbounds i8, ptr %11, i64 12
  store i32 %394, ptr %395, align 4, !tbaa !43
  %396 = add i32 %386, %392
  %397 = add i32 %386, %394
  %398 = shl i32 %397, 1
  %399 = getelementptr inbounds i8, ptr %11, i64 16
  store i32 %398, ptr %399, align 16, !tbaa !43
  %400 = add i32 %385, %396
  %401 = add i32 %385, %398
  %402 = shl i32 %401, 1
  %403 = getelementptr inbounds i8, ptr %11, i64 20
  store i32 %402, ptr %403, align 4, !tbaa !43
  %404 = add i32 %384, %400
  %405 = add i32 %384, %402
  %406 = shl i32 %405, 1
  %407 = getelementptr inbounds i8, ptr %11, i64 24
  store i32 %406, ptr %407, align 8, !tbaa !43
  %408 = add i32 %383, %404
  %409 = add i32 %383, %406
  %410 = shl i32 %409, 1
  %411 = getelementptr inbounds i8, ptr %11, i64 28
  store i32 %410, ptr %411, align 4, !tbaa !43
  %412 = add i32 %382, %408
  %413 = add i32 %382, %410
  %414 = shl i32 %413, 1
  %415 = getelementptr inbounds i8, ptr %11, i64 32
  store i32 %414, ptr %415, align 16, !tbaa !43
  %416 = add i32 %381, %412
  %417 = add i32 %381, %414
  %418 = shl i32 %417, 1
  %419 = getelementptr inbounds i8, ptr %11, i64 36
  store i32 %418, ptr %419, align 4, !tbaa !43
  %420 = add i32 %380, %416
  %421 = add i32 %380, %418
  %422 = shl i32 %421, 1
  %423 = getelementptr inbounds i8, ptr %11, i64 40
  store i32 %422, ptr %423, align 8, !tbaa !43
  %424 = add i32 %379, %420
  %425 = add i32 %379, %422
  %426 = shl i32 %425, 1
  %427 = getelementptr inbounds i8, ptr %11, i64 44
  store i32 %426, ptr %427, align 4, !tbaa !43
  %428 = add i32 %378, %424
  %429 = add i32 %378, %426
  %430 = shl i32 %429, 1
  %431 = getelementptr inbounds i8, ptr %11, i64 48
  store i32 %430, ptr %431, align 16, !tbaa !43
  %432 = add i32 %377, %428
  %433 = add i32 %377, %430
  %434 = shl i32 %433, 1
  %435 = getelementptr inbounds i8, ptr %11, i64 52
  store i32 %434, ptr %435, align 4, !tbaa !43
  %436 = add i32 %376, %432
  %437 = add i32 %376, %434
  %438 = shl i32 %437, 1
  %439 = getelementptr inbounds i8, ptr %11, i64 56
  store i32 %438, ptr %439, align 8, !tbaa !43
  %440 = add i32 %375, %436
  %441 = add i32 %375, %438
  %442 = shl i32 %441, 1
  %443 = getelementptr inbounds i8, ptr %11, i64 60
  store i32 %442, ptr %443, align 4, !tbaa !43
  %444 = getelementptr inbounds i8, ptr %12, i64 60
  %445 = load i32, ptr %444, align 4, !tbaa !43
  %446 = add i32 %445, %440
  %447 = add i32 %445, %442
  %448 = shl i32 %447, 1
  %449 = getelementptr inbounds i8, ptr %11, i64 64
  store i32 %448, ptr %449, align 16, !tbaa !43
  %450 = icmp ne i32 %448, 65536
  %451 = icmp ugt i32 %446, 1
  %or.cond = select i1 %450, i1 %451, i1 false
  br i1 %or.cond, label %.loopexit2100, label %.preheader1722

.preheader1722:                                   ; preds = %._crit_edge1775
  br i1 %.not1841, label %._crit_edge1800, label %.lr.ph1799.preheader

.lr.ph1799.preheader:                             ; preds = %.preheader1722
  %wide.trip.count1896 = zext i32 %343 to i64
  br label %.lr.ph1799

.lr.ph1799:                                       ; preds = %.lr.ph1799.preheader, %.loopexit1721
  %indvars.iv1893 = phi i64 [ 0, %.lr.ph1799.preheader ], [ %indvars.iv.next1894, %.loopexit1721 ]
  %.014641797 = phi i32 [ -1, %.lr.ph1799.preheader ], [ %.41468, %.loopexit1721 ]
  %452 = getelementptr inbounds i8, ptr %338, i64 %indvars.iv1893
  %453 = load i8, ptr %452, align 1, !tbaa !26
  %454 = zext i8 %453 to i32
  %.not1597 = icmp eq i8 %453, 0
  br i1 %.not1597, label %.loopexit1721, label %455

455:                                              ; preds = %.lr.ph1799
  %456 = zext i8 %453 to i64
  %457 = getelementptr inbounds [17 x i32], ptr %11, i64 0, i64 %456
  %458 = load i32, ptr %457, align 4, !tbaa !43
  %459 = add i32 %458, 1
  store i32 %459, ptr %457, align 4, !tbaa !43
  %xtraiter2149 = and i32 %454, 3
  %460 = icmp ult i8 %453, 4
  br i1 %460, label %.unr-lcssa, label %.new

.new:                                             ; preds = %455
  %unroll_iter2155 = and i32 %454, 252
  br label %461

461:                                              ; preds = %461, %.new
  %.014491783 = phi i32 [ %458, %.new ], [ %475, %461 ]
  %.014511781 = phi i32 [ 0, %.new ], [ %474, %461 ]
  %niter2156 = phi i32 [ 0, %.new ], [ %niter2156.next.3, %461 ]
  %462 = shl i32 %.014511781, 3
  %463 = shl i32 %.014491783, 2
  %464 = and i32 %463, 4
  %465 = or disjoint i32 %462, %464
  %466 = and i32 %.014491783, 2
  %467 = or disjoint i32 %466, %465
  %468 = lshr i32 %.014491783, 2
  %469 = and i32 %468, 1
  %470 = or disjoint i32 %469, %467
  %471 = lshr i32 %.014491783, 3
  %472 = shl i32 %470, 1
  %473 = and i32 %471, 1
  %474 = or disjoint i32 %473, %472
  %475 = lshr i32 %.014491783, 4
  %niter2156.next.3 = add i32 %niter2156, 4
  %niter2156.ncmp.3 = icmp eq i32 %niter2156.next.3, %unroll_iter2155
  br i1 %niter2156.ncmp.3, label %.unr-lcssa, label %461, !llvm.loop !55

.unr-lcssa:                                       ; preds = %461, %455
  %.014491783.lcssa.ph = phi i32 [ poison, %455 ], [ %471, %461 ]
  %.lcssa2071.ph = phi i32 [ poison, %455 ], [ %472, %461 ]
  %.lcssa2070.ph = phi i32 [ poison, %455 ], [ %474, %461 ]
  %.014491783.unr = phi i32 [ %458, %455 ], [ %475, %461 ]
  %.014511781.unr = phi i32 [ 0, %455 ], [ %474, %461 ]
  %lcmp.mod2151.not = icmp eq i32 %xtraiter2149, 0
  br i1 %lcmp.mod2151.not, label %.epilog-lcssa, label %.epil.preheader

.epil.preheader:                                  ; preds = %.unr-lcssa, %.epil.preheader
  %.014491783.epil = phi i32 [ %479, %.epil.preheader ], [ %.014491783.unr, %.unr-lcssa ]
  %.014511781.epil = phi i32 [ %478, %.epil.preheader ], [ %.014511781.unr, %.unr-lcssa ]
  %epil.iter2150 = phi i32 [ %epil.iter2150.next, %.epil.preheader ], [ 0, %.unr-lcssa ]
  %476 = shl i32 %.014511781.epil, 1
  %477 = and i32 %.014491783.epil, 1
  %478 = or disjoint i32 %477, %476
  %479 = lshr i32 %.014491783.epil, 1
  %epil.iter2150.next = add i32 %epil.iter2150, 1
  %epil.iter2150.cmp.not = icmp eq i32 %epil.iter2150.next, %xtraiter2149
  br i1 %epil.iter2150.cmp.not, label %.epilog-lcssa, label %.epil.preheader, !llvm.loop !56

.epilog-lcssa:                                    ; preds = %.epil.preheader, %.unr-lcssa
  %.014491783.lcssa = phi i32 [ %.014491783.lcssa.ph, %.unr-lcssa ], [ %.014491783.epil, %.epil.preheader ]
  %.lcssa2071 = phi i32 [ %.lcssa2071.ph, %.unr-lcssa ], [ %476, %.epil.preheader ]
  %.lcssa2070 = phi i32 [ %.lcssa2070.ph, %.unr-lcssa ], [ %478, %.epil.preheader ]
  %480 = icmp ult i8 %453, 11
  br i1 %480, label %481, label %495

481:                                              ; preds = %.epilog-lcssa
  %482 = shl nuw nsw i32 %454, 9
  %483 = trunc nuw i64 %indvars.iv1893 to i32
  %484 = or i32 %482, %483
  %485 = trunc i32 %484 to i16
  %486 = icmp ult i32 %.lcssa2071, 1024
  br i1 %486, label %.lr.ph1796, label %.loopexit1721

.lr.ph1796:                                       ; preds = %481
  %487 = shl nuw nsw i32 1, %454
  %488 = and i32 %.014491783.lcssa, 1
  %489 = or disjoint i32 %.lcssa2071, %488
  %490 = zext nneg i32 %489 to i64
  %491 = zext nneg i32 %487 to i64
  br label %492

492:                                              ; preds = %.lr.ph1796, %492
  %indvars.iv1890 = phi i64 [ %490, %.lr.ph1796 ], [ %indvars.iv.next1891, %492 ]
  %493 = getelementptr inbounds i16, ptr %334, i64 %indvars.iv1890
  store i16 %485, ptr %493, align 2, !tbaa !46
  %indvars.iv.next1891 = add nuw nsw i64 %indvars.iv1890, %491
  %494 = icmp ult i64 %indvars.iv.next1891, 1024
  br i1 %494, label %492, label %.loopexit1721, !llvm.loop !57

495:                                              ; preds = %.epilog-lcssa
  %496 = and i32 %.lcssa2070, 1023
  %497 = zext nneg i32 %496 to i64
  %498 = getelementptr inbounds i16, ptr %334, i64 %497
  %499 = load i16, ptr %498, align 2, !tbaa !46
  %500 = sext i16 %499 to i32
  %501 = icmp eq i16 %499, 0
  br i1 %501, label %502, label %505

502:                                              ; preds = %495
  %503 = trunc i32 %.014641797 to i16
  store i16 %503, ptr %498, align 2, !tbaa !46
  %504 = add nsw i32 %.014641797, -2
  br label %505

505:                                              ; preds = %502, %495
  %.01469 = phi i32 [ %.014641797, %502 ], [ %500, %495 ]
  %.11465 = phi i32 [ %504, %502 ], [ %.014641797, %495 ]
  %506 = lshr i32 %.lcssa2071, 9
  %.not1843 = icmp eq i8 %453, 11
  br i1 %.not1843, label %._crit_edge1790, label %.lr.ph1789

.lr.ph1789:                                       ; preds = %505, %519
  %.214531787 = phi i32 [ %507, %519 ], [ %506, %505 ]
  %.014571786 = phi i32 [ %520, %519 ], [ %454, %505 ]
  %.214661785 = phi i32 [ %.31467, %519 ], [ %.11465, %505 ]
  %.114701784 = phi i32 [ %.21471, %519 ], [ %.01469, %505 ]
  %507 = lshr i32 %.214531787, 1
  %508 = and i32 %507, 1
  %509 = xor i32 %.114701784, -1
  %510 = add i32 %508, %509
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds i16, ptr %336, i64 %511
  %513 = load i16, ptr %512, align 2, !tbaa !46
  %.not1601 = icmp eq i16 %513, 0
  br i1 %.not1601, label %514, label %517

514:                                              ; preds = %.lr.ph1789
  %515 = trunc i32 %.214661785 to i16
  store i16 %515, ptr %512, align 2, !tbaa !46
  %516 = add nsw i32 %.214661785, -2
  br label %519

517:                                              ; preds = %.lr.ph1789
  %518 = sext i16 %513 to i32
  br label %519

519:                                              ; preds = %514, %517
  %.21471 = phi i32 [ %518, %517 ], [ %.214661785, %514 ]
  %.31467 = phi i32 [ %.214661785, %517 ], [ %516, %514 ]
  %520 = add nsw i32 %.014571786, -1
  %521 = icmp ugt i32 %520, 11
  br i1 %521, label %.lr.ph1789, label %._crit_edge1790, !llvm.loop !59

._crit_edge1790:                                  ; preds = %519, %505
  %.11470.lcssa = phi i32 [ %.01469, %505 ], [ %.21471, %519 ]
  %.21466.lcssa = phi i32 [ %.11465, %505 ], [ %.31467, %519 ]
  %.21453.lcssa = phi i32 [ %506, %505 ], [ %507, %519 ]
  %522 = lshr i32 %.21453.lcssa, 1
  %.neg = and i32 %522, 1
  %523 = trunc i64 %indvars.iv1893 to i16
  %524 = xor i32 %.11470.lcssa, -1
  %525 = add i32 %.neg, %524
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds i16, ptr %336, i64 %526
  store i16 %523, ptr %527, align 2, !tbaa !46
  br label %.loopexit1721

.loopexit1721:                                    ; preds = %492, %481, %.lr.ph1799, %._crit_edge1790
  %.41468 = phi i32 [ %.21466.lcssa, %._crit_edge1790 ], [ %.014641797, %.lr.ph1799 ], [ %.014641797, %481 ], [ %.014641797, %492 ]
  %indvars.iv.next1894 = add nuw nsw i64 %indvars.iv1893, 1
  %exitcond1897.not = icmp eq i64 %indvars.iv.next1894, %wide.trip.count1896
  br i1 %exitcond1897.not, label %._crit_edge1800, label %.lr.ph1799, !llvm.loop !60

._crit_edge1800:                                  ; preds = %.loopexit1721, %.preheader1722
  %528 = icmp eq i32 %340, 2
  br i1 %528, label %529, label %682

529:                                              ; preds = %._crit_edge1800, %672, %623
  %.341396 = phi i64 [ %.371399, %623 ], [ %.411403, %672 ], [ %.321394, %._crit_edge1800 ]
  %.341315 = phi ptr [ %.371318, %623 ], [ %.411322, %672 ], [ %.321313, %._crit_edge1800 ]
  %.371225 = phi ptr [ %.401228, %623 ], [ %.441232, %672 ], [ %.351223, %._crit_edge1800 ]
  %.381134 = phi i64 [ %620, %623 ], [ %657, %672 ], [ %.361132, %._crit_edge1800 ]
  %.381052 = phi i32 [ %.411055, %623 ], [ %.451059, %672 ], [ %.361050, %._crit_edge1800 ]
  %.38963 = phi i32 [ %626, %623 ], [ %675, %672 ], [ 0, %._crit_edge1800 ]
  %.37882 = phi i32 [ %.21444, %623 ], [ %.43888, %672 ], [ %.35880, %._crit_edge1800 ]
  %.38 = phi i32 [ %621, %623 ], [ %658, %672 ], [ %.36, %._crit_edge1800 ]
  %530 = getelementptr inbounds i8, ptr %0, i64 44
  %531 = load i32, ptr %530, align 4, !tbaa !43
  %532 = getelementptr inbounds i8, ptr %0, i64 48
  %533 = load i32, ptr %532, align 4, !tbaa !43
  %534 = add i32 %533, %531
  %535 = icmp ult i32 %.38963, %534
  br i1 %535, label %536, label %676

536:                                              ; preds = %529
  %537 = icmp ult i32 %.38, 15
  br i1 %537, label %538, label %598

538:                                              ; preds = %536
  %539 = ptrtoint ptr %14 to i64
  %540 = ptrtoint ptr %.371225 to i64
  %541 = sub i64 %539, %540
  %542 = icmp slt i64 %541, 2
  br i1 %542, label %543, label %583

543:                                              ; preds = %538, %574
  %.351397 = phi i64 [ %.341396, %538 ], [ %.361398, %574 ]
  %.351316 = phi ptr [ %.341315, %538 ], [ %.361317, %574 ]
  %.381226 = phi ptr [ %.371225, %538 ], [ %575, %574 ]
  %.391135 = phi i64 [ %.381134, %538 ], [ %580, %574 ]
  %.391053 = phi i32 [ %.381052, %538 ], [ %.401054, %574 ]
  %.39964 = phi i32 [ %.38963, %538 ], [ %.40965, %574 ]
  %.38883 = phi i32 [ %.37882, %538 ], [ %.39884, %574 ]
  %.39 = phi i32 [ %.38, %538 ], [ %581, %574 ]
  %544 = getelementptr inbounds i8, ptr %0, i64 4168
  %545 = and i64 %.391135, 1023
  %546 = getelementptr inbounds [1024 x i16], ptr %544, i64 0, i64 %545
  %547 = load i16, ptr %546, align 2, !tbaa !46
  %548 = sext i16 %547 to i32
  %549 = icmp sgt i16 %547, -1
  br i1 %549, label %550, label %552

550:                                              ; preds = %543
  %.not1590 = icmp ult i16 %547, 512
  %551 = lshr i32 %548, 9
  %.not1591 = icmp ult i32 %.39, %551
  %or.cond1632 = select i1 %.not1590, i1 true, i1 %.not1591
  br i1 %or.cond1632, label %570, label %598

552:                                              ; preds = %543
  %553 = icmp ugt i32 %.39, 10
  br i1 %553, label %.preheader1720, label %570

.preheader1720:                                   ; preds = %552, %.preheader1720
  %.01442 = phi i32 [ %563, %.preheader1720 ], [ %548, %552 ]
  %.01439 = phi i32 [ %556, %.preheader1720 ], [ 10, %552 ]
  %554 = xor i32 %.01442, -1
  %555 = sext i32 %554 to i64
  %556 = add i32 %.01439, 1
  %557 = zext nneg i32 %.01439 to i64
  %558 = lshr i64 %.391135, %557
  %559 = and i64 %558, 1
  %560 = add nsw i64 %559, %555
  %561 = getelementptr inbounds [38 x i16], ptr %38, i64 0, i64 %560
  %562 = load i16, ptr %561, align 2, !tbaa !46
  %563 = sext i16 %562 to i32
  %564 = icmp slt i16 %562, 0
  %565 = add i32 %.01439, 2
  %566 = icmp uge i32 %.39, %565
  %567 = select i1 %564, i1 %566, i1 false
  br i1 %567, label %.preheader1720, label %568, !llvm.loop !61

568:                                              ; preds = %.preheader1720
  %569 = icmp sgt i16 %562, -1
  br i1 %569, label %598, label %570

570:                                              ; preds = %552, %568, %550, %573
  %.361398 = phi i64 [ %.351397, %550 ], [ %.351397, %568 ], [ %.351397, %552 ], [ %56, %573 ]
  %.361317 = phi ptr [ %.351316, %550 ], [ %.351316, %568 ], [ %.351316, %552 ], [ %4, %573 ]
  %.391227 = phi ptr [ %.381226, %550 ], [ %.381226, %568 ], [ %.381226, %552 ], [ %1, %573 ]
  %.401136 = phi i64 [ %.391135, %550 ], [ %.391135, %568 ], [ %.391135, %552 ], [ %48, %573 ]
  %.401054 = phi i32 [ %.391053, %550 ], [ %.391053, %568 ], [ %.391053, %552 ], [ %54, %573 ]
  %.40965 = phi i32 [ %.39964, %550 ], [ %.39964, %568 ], [ %.39964, %552 ], [ %52, %573 ]
  %.39884 = phi i32 [ %.38883, %550 ], [ %.38883, %568 ], [ %.38883, %552 ], [ %50, %573 ]
  %.40 = phi i32 [ %.39, %550 ], [ %.39, %568 ], [ %.39, %552 ], [ %.84.fr1955, %573 ]
  %.not1592 = icmp ult ptr %.391227, %14
  br i1 %.not1592, label %574, label %571

571:                                              ; preds = %570
  %572 = and i32 %6, 2
  %.not1593 = icmp eq i32 %572, 0
  store i32 16, ptr %0, align 8, !tbaa !19
  %spec.select1696 = select i1 %.not1593, i32 -4, i32 1
  br label %.thread

573:                                              ; preds = %34
  br label %570, !llvm.loop !62

574:                                              ; preds = %570
  %575 = getelementptr inbounds i8, ptr %.391227, i64 1
  %576 = load i8, ptr %.391227, align 1, !tbaa !26
  %577 = zext i8 %576 to i64
  %578 = zext nneg i32 %.40 to i64
  %579 = shl i64 %577, %578
  %580 = or i64 %579, %.401136
  %581 = add i32 %.40, 8
  %582 = icmp ult i32 %581, 15
  br i1 %582, label %543, label %598, !llvm.loop !63

583:                                              ; preds = %538
  %584 = load i8, ptr %.371225, align 1, !tbaa !26
  %585 = zext i8 %584 to i64
  %586 = zext nneg i32 %.38 to i64
  %587 = shl nuw nsw i64 %585, %586
  %588 = getelementptr inbounds i8, ptr %.371225, i64 1
  %589 = load i8, ptr %588, align 1, !tbaa !26
  %590 = zext i8 %589 to i64
  %591 = add nuw nsw i32 %.38, 8
  %592 = zext nneg i32 %591 to i64
  %593 = shl nuw nsw i64 %590, %592
  %594 = or i64 %587, %593
  %595 = or i64 %594, %.381134
  %596 = getelementptr inbounds i8, ptr %.371225, i64 2
  %597 = or disjoint i32 %.38, 16
  br label %598

598:                                              ; preds = %550, %583, %568, %574, %536
  %.371399 = phi i64 [ %.361398, %574 ], [ %.351397, %568 ], [ %.341396, %583 ], [ %.341396, %536 ], [ %.351397, %550 ]
  %.371318 = phi ptr [ %.361317, %574 ], [ %.351316, %568 ], [ %.341315, %583 ], [ %.341315, %536 ], [ %.351316, %550 ]
  %.401228 = phi ptr [ %575, %574 ], [ %.381226, %568 ], [ %596, %583 ], [ %.371225, %536 ], [ %.381226, %550 ]
  %.411137 = phi i64 [ %580, %574 ], [ %.391135, %568 ], [ %595, %583 ], [ %.381134, %536 ], [ %.391135, %550 ]
  %.411055 = phi i32 [ %.401054, %574 ], [ %.391053, %568 ], [ %.381052, %583 ], [ %.381052, %536 ], [ %.391053, %550 ]
  %.41966 = phi i32 [ %.40965, %574 ], [ %.39964, %568 ], [ %.38963, %583 ], [ %.38963, %536 ], [ %.39964, %550 ]
  %.41 = phi i32 [ %581, %574 ], [ %.39, %568 ], [ %597, %583 ], [ %.38, %536 ], [ %.39, %550 ]
  %599 = getelementptr inbounds i8, ptr %0, i64 4168
  %600 = and i64 %.411137, 1023
  %601 = getelementptr inbounds [1024 x i16], ptr %599, i64 0, i64 %600
  %602 = load i16, ptr %601, align 2, !tbaa !46
  %603 = sext i16 %602 to i32
  %604 = icmp sgt i16 %602, -1
  br i1 %604, label %605, label %.preheader1719

605:                                              ; preds = %598
  %606 = lshr i32 %603, 9
  %607 = and i32 %603, 511
  br label %.loopexit

.preheader1719:                                   ; preds = %598, %.preheader1719
  %.11443 = phi i32 [ %617, %.preheader1719 ], [ %603, %598 ]
  %.11440 = phi i32 [ %610, %.preheader1719 ], [ 10, %598 ]
  %608 = xor i32 %.11443, -1
  %609 = sext i32 %608 to i64
  %610 = add i32 %.11440, 1
  %611 = zext nneg i32 %.11440 to i64
  %612 = lshr i64 %.411137, %611
  %613 = and i64 %612, 1
  %614 = add nsw i64 %613, %609
  %615 = getelementptr inbounds [38 x i16], ptr %38, i64 0, i64 %614
  %616 = load i16, ptr %615, align 2, !tbaa !46
  %617 = sext i16 %616 to i32
  %618 = icmp slt i16 %616, 0
  br i1 %618, label %.preheader1719, label %.loopexit, !llvm.loop !64

.loopexit:                                        ; preds = %.preheader1719, %605
  %.21444 = phi i32 [ %607, %605 ], [ %617, %.preheader1719 ]
  %.21441 = phi i32 [ %606, %605 ], [ %610, %.preheader1719 ]
  %619 = zext nneg i32 %.21441 to i64
  %620 = lshr i64 %.411137, %619
  %621 = sub i32 %.41, %.21441
  %622 = icmp ult i32 %.21444, 16
  br i1 %622, label %623, label %629

623:                                              ; preds = %.loopexit
  %624 = trunc nuw nsw i32 %.21444 to i8
  %625 = getelementptr inbounds i8, ptr %0, i64 7915
  %626 = add i32 %.41966, 1
  %627 = zext i32 %.41966 to i64
  %628 = getelementptr inbounds [457 x i8], ptr %625, i64 0, i64 %627
  store i8 %624, ptr %628, align 1, !tbaa !26
  br label %529, !llvm.loop !65

629:                                              ; preds = %.loopexit
  %630 = icmp ne i32 %.21444, 16
  %631 = icmp ne i32 %.41966, 0
  %or.cond3 = select i1 %630, i1 true, i1 %631
  br i1 %or.cond3, label %632, label %.loopexit2100

632:                                              ; preds = %629
  %633 = add nsw i32 %.21444, -16
  %634 = zext i32 %633 to i64
  %635 = getelementptr inbounds [4 x i8], ptr @.str.15, i64 0, i64 %634
  %636 = load i8, ptr %635, align 1, !tbaa !26
  %637 = sext i8 %636 to i32
  %638 = icmp ult i32 %621, %637
  br i1 %638, label %.preheader2060, label %652

.preheader2060:                                   ; preds = %642, %632
  %.401402.ph = phi i64 [ %.371399, %632 ], [ %56, %642 ]
  %.401321.ph = phi ptr [ %.371318, %632 ], [ %4, %642 ]
  %.431231.ph = phi ptr [ %.401228, %632 ], [ %1, %642 ]
  %.441140.ph = phi i64 [ %620, %632 ], [ %48, %642 ]
  %.441058.ph = phi i32 [ %637, %632 ], [ %54, %642 ]
  %.44969.ph = phi i32 [ %.41966, %632 ], [ %52, %642 ]
  %.42887.ph = phi i32 [ %.21444, %632 ], [ %50, %642 ]
  %.44.ph = phi i32 [ %621, %632 ], [ %.84.fr1955, %642 ]
  br label %639

639:                                              ; preds = %.preheader2060, %643
  %.431231 = phi ptr [ %644, %643 ], [ %.431231.ph, %.preheader2060 ]
  %.441140 = phi i64 [ %649, %643 ], [ %.441140.ph, %.preheader2060 ]
  %.44 = phi i32 [ %650, %643 ], [ %.44.ph, %.preheader2060 ]
  %.not1594 = icmp ult ptr %.431231, %14
  br i1 %.not1594, label %643, label %640

640:                                              ; preds = %639
  %641 = and i32 %6, 2
  %.not1596 = icmp eq i32 %641, 0
  store i32 18, ptr %0, align 8, !tbaa !19
  %spec.select1698 = select i1 %.not1596, i32 -4, i32 1
  br label %.thread

642:                                              ; preds = %34
  br label %.preheader2060, !llvm.loop !66

643:                                              ; preds = %639
  %644 = getelementptr inbounds i8, ptr %.431231, i64 1
  %645 = load i8, ptr %.431231, align 1, !tbaa !26
  %646 = zext i8 %645 to i64
  %647 = zext nneg i32 %.44 to i64
  %648 = shl i64 %646, %647
  %649 = or i64 %648, %.441140
  %650 = add i32 %.44, 8
  %651 = icmp ult i32 %650, %.441058.ph
  br i1 %651, label %639, label %._crit_edge1938, !llvm.loop !67

._crit_edge1938:                                  ; preds = %643
  %.pre1939 = add i32 %.42887.ph, -16
  %.pre1941 = zext i32 %.pre1939 to i64
  br label %652

652:                                              ; preds = %._crit_edge1938, %632
  %.pre-phi1942 = phi i64 [ %.pre1941, %._crit_edge1938 ], [ %634, %632 ]
  %.411403 = phi i64 [ %.401402.ph, %._crit_edge1938 ], [ %.371399, %632 ]
  %.411322 = phi ptr [ %.401321.ph, %._crit_edge1938 ], [ %.371318, %632 ]
  %.441232 = phi ptr [ %644, %._crit_edge1938 ], [ %.401228, %632 ]
  %.451141 = phi i64 [ %649, %._crit_edge1938 ], [ %620, %632 ]
  %.451059 = phi i32 [ %.441058.ph, %._crit_edge1938 ], [ %637, %632 ]
  %.45970 = phi i32 [ %.44969.ph, %._crit_edge1938 ], [ %.41966, %632 ]
  %.43888 = phi i32 [ %.42887.ph, %._crit_edge1938 ], [ %.21444, %632 ]
  %.45 = phi i32 [ %650, %._crit_edge1938 ], [ %621, %632 ]
  %notmask1595 = shl nsw i32 -1, %.451059
  %653 = xor i32 %notmask1595, -1
  %654 = trunc i64 %.451141 to i32
  %655 = and i32 %653, %654
  %656 = zext nneg i32 %.451059 to i64
  %657 = lshr i64 %.451141, %656
  %658 = sub i32 %.45, %.451059
  %659 = getelementptr inbounds [4 x i8], ptr @.str.16, i64 0, i64 %.pre-phi1942
  %660 = load i8, ptr %659, align 1, !tbaa !26
  %661 = sext i8 %660 to i32
  %662 = add i32 %655, %661
  %663 = getelementptr inbounds i8, ptr %0, i64 7915
  %664 = zext i32 %.45970 to i64
  %665 = getelementptr inbounds i8, ptr %663, i64 %664
  %666 = icmp eq i32 %.43888, 16
  br i1 %666, label %667, label %672

667:                                              ; preds = %652
  %668 = add i32 %.45970, -1
  %669 = zext i32 %668 to i64
  %670 = getelementptr inbounds [457 x i8], ptr %663, i64 0, i64 %669
  %671 = load i8, ptr %670, align 1, !tbaa !26
  br label %672

672:                                              ; preds = %652, %667
  %673 = phi i8 [ %671, %667 ], [ 0, %652 ]
  %674 = zext i32 %662 to i64
  tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %665, i8 %673, i64 %674, i1 false)
  %675 = add i32 %662, %.45970
  br label %529, !llvm.loop !65

676:                                              ; preds = %529
  %.not1589 = icmp eq i32 %534, %.38963
  br i1 %.not1589, label %677, label %.loopexit2100

677:                                              ; preds = %676
  %678 = getelementptr inbounds i8, ptr %0, i64 7915
  %679 = zext i32 %531 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %40, ptr nonnull align 1 %678, i64 %679, i1 false)
  %680 = getelementptr inbounds i8, ptr %678, i64 %679
  %681 = zext i32 %533 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %41, ptr nonnull align 1 %680, i64 %681, i1 false)
  br label %682

682:                                              ; preds = %._crit_edge1800, %677
  %.431405 = phi i64 [ %.341396, %677 ], [ %.321394, %._crit_edge1800 ]
  %.431324 = phi ptr [ %.341315, %677 ], [ %.321313, %._crit_edge1800 ]
  %.461234 = phi ptr [ %.371225, %677 ], [ %.351223, %._crit_edge1800 ]
  %.471143 = phi i64 [ %.381134, %677 ], [ %.361132, %._crit_edge1800 ]
  %.471061 = phi i32 [ %.381052, %677 ], [ %.361050, %._crit_edge1800 ]
  %.47972 = phi i32 [ %.38963, %677 ], [ %.36961, %._crit_edge1800 ]
  %.45890 = phi i32 [ %.37882, %677 ], [ %.35880, %._crit_edge1800 ]
  %.47 = phi i32 [ %.38, %677 ], [ %.36, %._crit_edge1800 ]
  %683 = getelementptr inbounds i8, ptr %0, i64 24
  %684 = load i32, ptr %683, align 8, !tbaa !31
  %685 = add i32 %684, -1
  store i32 %685, ptr %683, align 8, !tbaa !31
  br label %.loopexit1735, !llvm.loop !68

686:                                              ; preds = %.preheader2098, %846
  %.451326 = phi ptr [ %849, %846 ], [ %.451326.ph, %.preheader2098 ]
  %.481236 = phi ptr [ %.531241, %846 ], [ %.481236.ph, %.preheader2098 ]
  %.491145 = phi i64 [ %838, %846 ], [ %.491145.ph, %.preheader2098 ]
  %.49974 = phi i32 [ %.11185, %846 ], [ %.49974.ph, %.preheader2098 ]
  %.49 = phi i32 [ %839, %846 ], [ %.49.ph, %.preheader2098 ]
  %687 = ptrtoint ptr %.481236 to i64
  %688 = sub i64 %782, %687
  %689 = icmp slt i64 %688, 4
  %690 = ptrtoint ptr %.451326 to i64
  %691 = sub i64 %783, %690
  %692 = icmp slt i64 %691, 2
  %or.cond1636 = select i1 %689, i1 true, i1 %692
  br i1 %or.cond1636, label %693, label %785

693:                                              ; preds = %686
  %694 = icmp ult i32 %.49, 15
  br i1 %694, label %695, label %752

695:                                              ; preds = %693
  %696 = icmp slt i64 %688, 2
  br i1 %696, label %697, label %737

697:                                              ; preds = %695, %728
  %.461408 = phi i64 [ %.451407.ph, %695 ], [ %.471409, %728 ]
  %.461327 = phi ptr [ %.451326, %695 ], [ %.471328, %728 ]
  %.491237 = phi ptr [ %.481236, %695 ], [ %729, %728 ]
  %.501146 = phi i64 [ %.491145, %695 ], [ %734, %728 ]
  %.501064 = phi i32 [ %.491063.ph, %695 ], [ %.511065, %728 ]
  %.50975 = phi i32 [ %.49974, %695 ], [ %.51976, %728 ]
  %.48893 = phi i32 [ %.47892.ph, %695 ], [ %.49894, %728 ]
  %.50 = phi i32 [ %.49, %695 ], [ %735, %728 ]
  %698 = getelementptr inbounds i8, ptr %0, i64 72
  %699 = and i64 %.501146, 1023
  %700 = getelementptr inbounds [1024 x i16], ptr %698, i64 0, i64 %699
  %701 = load i16, ptr %700, align 2, !tbaa !46
  %702 = sext i16 %701 to i32
  %703 = icmp sgt i16 %701, -1
  br i1 %703, label %704, label %706

704:                                              ; preds = %697
  %.not1569 = icmp ult i16 %701, 512
  %705 = lshr i32 %702, 9
  %.not1570 = icmp ult i32 %.50, %705
  %or.cond1637 = select i1 %.not1569, i1 true, i1 %.not1570
  br i1 %or.cond1637, label %724, label %752

706:                                              ; preds = %697
  %707 = icmp ugt i32 %.50, 10
  br i1 %707, label %.preheader1729, label %724

.preheader1729:                                   ; preds = %706, %.preheader1729
  %.01277 = phi i32 [ %717, %.preheader1729 ], [ %702, %706 ]
  %.01274 = phi i32 [ %710, %.preheader1729 ], [ 10, %706 ]
  %708 = xor i32 %.01277, -1
  %709 = sext i32 %708 to i64
  %710 = add i32 %.01274, 1
  %711 = zext nneg i32 %.01274 to i64
  %712 = lshr i64 %.501146, %711
  %713 = and i64 %712, 1
  %714 = add nsw i64 %713, %709
  %715 = getelementptr inbounds [576 x i16], ptr %35, i64 0, i64 %714
  %716 = load i16, ptr %715, align 2, !tbaa !46
  %717 = sext i16 %716 to i32
  %718 = icmp slt i16 %716, 0
  %719 = add i32 %.01274, 2
  %720 = icmp uge i32 %.50, %719
  %721 = select i1 %718, i1 %720, i1 false
  br i1 %721, label %.preheader1729, label %722, !llvm.loop !69

722:                                              ; preds = %.preheader1729
  %723 = icmp sgt i16 %716, -1
  br i1 %723, label %752, label %724

724:                                              ; preds = %706, %722, %704, %727
  %.471409 = phi i64 [ %.461408, %704 ], [ %.461408, %722 ], [ %.461408, %706 ], [ %56, %727 ]
  %.471328 = phi ptr [ %.461327, %704 ], [ %.461327, %722 ], [ %.461327, %706 ], [ %4, %727 ]
  %.501238 = phi ptr [ %.491237, %704 ], [ %.491237, %722 ], [ %.491237, %706 ], [ %1, %727 ]
  %.511147 = phi i64 [ %.501146, %704 ], [ %.501146, %722 ], [ %.501146, %706 ], [ %48, %727 ]
  %.511065 = phi i32 [ %.501064, %704 ], [ %.501064, %722 ], [ %.501064, %706 ], [ %54, %727 ]
  %.51976 = phi i32 [ %.50975, %704 ], [ %.50975, %722 ], [ %.50975, %706 ], [ %52, %727 ]
  %.49894 = phi i32 [ %.48893, %704 ], [ %.48893, %722 ], [ %.48893, %706 ], [ %50, %727 ]
  %.51 = phi i32 [ %.50, %704 ], [ %.50, %722 ], [ %.50, %706 ], [ %.84.fr1955, %727 ]
  %.not1571 = icmp ult ptr %.501238, %14
  br i1 %.not1571, label %728, label %725

725:                                              ; preds = %724
  %726 = and i32 %6, 2
  %.not1572 = icmp eq i32 %726, 0
  store i32 23, ptr %0, align 8, !tbaa !19
  %spec.select1700 = select i1 %.not1572, i32 -4, i32 1
  br label %.thread

727:                                              ; preds = %34
  br label %724, !llvm.loop !70

728:                                              ; preds = %724
  %729 = getelementptr inbounds i8, ptr %.501238, i64 1
  %730 = load i8, ptr %.501238, align 1, !tbaa !26
  %731 = zext i8 %730 to i64
  %732 = zext nneg i32 %.51 to i64
  %733 = shl i64 %731, %732
  %734 = or i64 %733, %.511147
  %735 = add i32 %.51, 8
  %736 = icmp ult i32 %735, 15
  br i1 %736, label %697, label %752, !llvm.loop !71

737:                                              ; preds = %695
  %738 = load i8, ptr %.481236, align 1, !tbaa !26
  %739 = zext i8 %738 to i64
  %740 = zext nneg i32 %.49 to i64
  %741 = shl nuw nsw i64 %739, %740
  %742 = getelementptr inbounds i8, ptr %.481236, i64 1
  %743 = load i8, ptr %742, align 1, !tbaa !26
  %744 = zext i8 %743 to i64
  %745 = add nuw nsw i32 %.49, 8
  %746 = zext nneg i32 %745 to i64
  %747 = shl nuw nsw i64 %744, %746
  %748 = or i64 %741, %747
  %749 = or i64 %748, %.491145
  %750 = getelementptr inbounds i8, ptr %.481236, i64 2
  %751 = or disjoint i32 %.49, 16
  br label %752

752:                                              ; preds = %704, %737, %722, %728, %693
  %.481410 = phi i64 [ %.471409, %728 ], [ %.461408, %722 ], [ %.451407.ph, %737 ], [ %.451407.ph, %693 ], [ %.461408, %704 ]
  %.481329 = phi ptr [ %.471328, %728 ], [ %.461327, %722 ], [ %.451326, %737 ], [ %.451326, %693 ], [ %.461327, %704 ]
  %.511239 = phi ptr [ %729, %728 ], [ %.491237, %722 ], [ %750, %737 ], [ %.481236, %693 ], [ %.491237, %704 ]
  %.521148 = phi i64 [ %734, %728 ], [ %.501146, %722 ], [ %749, %737 ], [ %.491145, %693 ], [ %.501146, %704 ]
  %.521066 = phi i32 [ %.511065, %728 ], [ %.501064, %722 ], [ %.491063.ph, %737 ], [ %.491063.ph, %693 ], [ %.501064, %704 ]
  %.50895 = phi i32 [ %.49894, %728 ], [ %.48893, %722 ], [ %.47892.ph, %737 ], [ %.47892.ph, %693 ], [ %.48893, %704 ]
  %.52 = phi i32 [ %735, %728 ], [ %.50, %722 ], [ %751, %737 ], [ %.49, %693 ], [ %.50, %704 ]
  %753 = getelementptr inbounds i8, ptr %0, i64 72
  %754 = and i64 %.521148, 1023
  %755 = getelementptr inbounds [1024 x i16], ptr %753, i64 0, i64 %754
  %756 = load i16, ptr %755, align 2, !tbaa !46
  %757 = sext i16 %756 to i32
  %758 = icmp sgt i16 %756, -1
  br i1 %758, label %759, label %.preheader1727

759:                                              ; preds = %752
  %760 = lshr i32 %757, 9
  %761 = and i32 %757, 511
  br label %.loopexit1728

.preheader1727:                                   ; preds = %752, %.preheader1727
  %.11278 = phi i32 [ %771, %.preheader1727 ], [ %757, %752 ]
  %.11275 = phi i32 [ %764, %.preheader1727 ], [ 10, %752 ]
  %762 = xor i32 %.11278, -1
  %763 = sext i32 %762 to i64
  %764 = add i32 %.11275, 1
  %765 = zext nneg i32 %.11275 to i64
  %766 = lshr i64 %.521148, %765
  %767 = and i64 %766, 1
  %768 = add nsw i64 %767, %763
  %769 = getelementptr inbounds [576 x i16], ptr %35, i64 0, i64 %768
  %770 = load i16, ptr %769, align 2, !tbaa !46
  %771 = sext i16 %770 to i32
  %772 = icmp slt i16 %770, 0
  br i1 %772, label %.preheader1727, label %.loopexit1728, !llvm.loop !72

.loopexit1728:                                    ; preds = %.preheader1727, %759
  %.21279 = phi i32 [ %761, %759 ], [ %771, %.preheader1727 ]
  %.21276 = phi i32 [ %760, %759 ], [ %764, %.preheader1727 ]
  %773 = zext nneg i32 %.21276 to i64
  %774 = lshr i64 %.521148, %773
  %775 = sub i32 %.52, %.21276
  %776 = icmp ugt i32 %.21279, 255
  br i1 %776, label %.loopexit2099, label %777

777:                                              ; preds = %.loopexit1728, %778
  %.491411 = phi i64 [ %.481410, %.loopexit1728 ], [ %56, %778 ]
  %.491330 = phi ptr [ %.481329, %.loopexit1728 ], [ %4, %778 ]
  %.521240 = phi ptr [ %.511239, %.loopexit1728 ], [ %1, %778 ]
  %.531149 = phi i64 [ %774, %.loopexit1728 ], [ %48, %778 ]
  %.531067 = phi i32 [ %.521066, %.loopexit1728 ], [ %54, %778 ]
  %.52977 = phi i32 [ %.21279, %.loopexit1728 ], [ %52, %778 ]
  %.51896 = phi i32 [ %.50895, %.loopexit1728 ], [ %50, %778 ]
  %.53 = phi i32 [ %775, %.loopexit1728 ], [ %.84.fr1955, %778 ]
  %.not1573 = icmp ult ptr %.491330, %19
  br i1 %.not1573, label %779, label %.loopexit2100

778:                                              ; preds = %34
  br label %777, !llvm.loop !73

779:                                              ; preds = %777
  %780 = trunc i32 %.52977 to i8
  %781 = getelementptr inbounds i8, ptr %.491330, i64 1
  store i8 %780, ptr %.491330, align 1, !tbaa !26
  br label %.preheader2098

.preheader2098:                                   ; preds = %1029, %.loopexit1735, %779, %1068, %._crit_edge
  %.451407.ph = phi i64 [ %1001, %._crit_edge ], [ %1001, %1068 ], [ %.491411, %779 ], [ %.321394, %.loopexit1735 ], [ %.631425, %1029 ]
  %.451326.ph = phi ptr [ %.671348.lcssa, %._crit_edge ], [ %1070, %1068 ], [ %781, %779 ], [ %.321313, %.loopexit1735 ], [ %.651346, %1029 ]
  %.481236.ph = phi ptr [ %.671255, %._crit_edge ], [ %.671255, %1068 ], [ %.521240, %779 ], [ %.351223, %.loopexit1735 ], [ %.691257, %1029 ]
  %.491145.ph = phi i64 [ %.681164, %._crit_edge ], [ %.681164, %1068 ], [ %.531149, %779 ], [ %.361132, %.loopexit1735 ], [ %.701166, %1029 ]
  %.491063.ph = phi i32 [ %.661080, %._crit_edge ], [ %.661080, %1068 ], [ %.531067, %779 ], [ %.361050, %.loopexit1735 ], [ %.681082, %1029 ]
  %.49974.ph = phi i32 [ %.70995.lcssa, %._crit_edge ], [ %.70995.lcssa, %1068 ], [ %.52977, %779 ], [ %.36961, %.loopexit1735 ], [ -1, %1029 ]
  %.47892.ph = phi i32 [ %.64909, %._crit_edge ], [ %.64909, %1068 ], [ %.51896, %779 ], [ %.35880, %.loopexit1735 ], [ %.66911, %1029 ]
  %.49.ph = phi i32 [ %.68, %._crit_edge ], [ %.68, %1068 ], [ %.53, %779 ], [ %.36, %.loopexit1735 ], [ %.70, %1029 ]
  %782 = ptrtoint ptr %14 to i64
  %783 = ptrtoint ptr %19 to i64
  %784 = getelementptr inbounds i8, ptr %0, i64 72
  br label %686

785:                                              ; preds = %686
  %786 = icmp ult i32 %.49, 30
  br i1 %786, label %787, label %795

787:                                              ; preds = %785
  %788 = load i32, ptr %.481236, align 1
  %789 = zext i32 %788 to i64
  %790 = zext nneg i32 %.49 to i64
  %791 = shl nuw nsw i64 %789, %790
  %792 = or i64 %791, %.491145
  %793 = getelementptr inbounds i8, ptr %.481236, i64 4
  %794 = or disjoint i32 %.49, 32
  br label %795

795:                                              ; preds = %787, %785
  %.531241 = phi ptr [ %793, %787 ], [ %.481236, %785 ]
  %.541150 = phi i64 [ %792, %787 ], [ %.491145, %785 ]
  %.54 = phi i32 [ %794, %787 ], [ %.49, %785 ]
  %796 = and i64 %.541150, 1023
  %797 = getelementptr inbounds [1024 x i16], ptr %784, i64 0, i64 %796
  %798 = load i16, ptr %797, align 2, !tbaa !46
  %799 = sext i16 %798 to i32
  %800 = icmp sgt i16 %798, -1
  br i1 %800, label %801, label %.preheader1732

801:                                              ; preds = %795
  %802 = lshr i32 %799, 9
  br label %.loopexit1733

.preheader1732:                                   ; preds = %795, %.preheader1732
  %.01184 = phi i32 [ %812, %.preheader1732 ], [ %799, %795 ]
  %.01180 = phi i32 [ %805, %.preheader1732 ], [ 10, %795 ]
  %803 = xor i32 %.01184, -1
  %804 = sext i32 %803 to i64
  %805 = add i32 %.01180, 1
  %806 = zext nneg i32 %.01180 to i64
  %807 = lshr i64 %.541150, %806
  %808 = and i64 %807, 1
  %809 = add nsw i64 %808, %804
  %810 = getelementptr inbounds [576 x i16], ptr %35, i64 0, i64 %809
  %811 = load i16, ptr %810, align 2, !tbaa !46
  %812 = sext i16 %811 to i32
  %813 = icmp slt i16 %811, 0
  br i1 %813, label %.preheader1732, label %.loopexit1733, !llvm.loop !74

.loopexit1733:                                    ; preds = %.preheader1732, %801
  %.11185 = phi i32 [ %799, %801 ], [ %812, %.preheader1732 ]
  %.11181 = phi i32 [ %802, %801 ], [ %805, %.preheader1732 ]
  %814 = zext nneg i32 %.11181 to i64
  %815 = lshr i64 %.541150, %814
  %816 = sub i32 %.54, %.11181
  %817 = and i32 %.11185, 256
  %.not1567 = icmp eq i32 %817, 0
  br i1 %.not1567, label %818, label %.loopexit2099

818:                                              ; preds = %.loopexit1733
  %819 = and i64 %815, 1023
  %820 = getelementptr inbounds [1024 x i16], ptr %784, i64 0, i64 %819
  %821 = load i16, ptr %820, align 2, !tbaa !46
  %822 = sext i16 %821 to i32
  %823 = icmp sgt i16 %821, -1
  br i1 %823, label %824, label %.preheader1730

824:                                              ; preds = %818
  %825 = lshr i32 %822, 9
  br label %.loopexit1731

.preheader1730:                                   ; preds = %818, %.preheader1730
  %.21186 = phi i32 [ %835, %.preheader1730 ], [ %822, %818 ]
  %.21182 = phi i32 [ %828, %.preheader1730 ], [ 10, %818 ]
  %826 = xor i32 %.21186, -1
  %827 = sext i32 %826 to i64
  %828 = add i32 %.21182, 1
  %829 = zext nneg i32 %.21182 to i64
  %830 = lshr i64 %815, %829
  %831 = and i64 %830, 1
  %832 = add nsw i64 %831, %827
  %833 = getelementptr inbounds [576 x i16], ptr %35, i64 0, i64 %832
  %834 = load i16, ptr %833, align 2, !tbaa !46
  %835 = sext i16 %834 to i32
  %836 = icmp slt i16 %834, 0
  br i1 %836, label %.preheader1730, label %.loopexit1731, !llvm.loop !75

.loopexit1731:                                    ; preds = %.preheader1730, %824
  %.31187 = phi i32 [ %822, %824 ], [ %835, %.preheader1730 ]
  %.31183 = phi i32 [ %825, %824 ], [ %828, %.preheader1730 ]
  %837 = zext nneg i32 %.31183 to i64
  %838 = lshr i64 %815, %837
  %839 = sub i32 %816, %.31183
  %840 = or i32 %.31187, %.11185
  %or.cond5 = icmp eq i32 %840, 0
  br i1 %or.cond5, label %.loopexit2100, label %841

841:                                              ; preds = %.loopexit1731
  %842 = trunc i32 %.11185 to i8
  store i8 %842, ptr %.451326, align 1, !tbaa !26
  %843 = and i32 %.31187, 256
  %.not1568 = icmp eq i32 %843, 0
  br i1 %.not1568, label %846, label %844

844:                                              ; preds = %841
  %845 = getelementptr inbounds i8, ptr %.451326, i64 1
  br label %.loopexit2099

846:                                              ; preds = %841
  %847 = trunc i32 %.31187 to i8
  %848 = getelementptr inbounds i8, ptr %.451326, i64 1
  store i8 %847, ptr %848, align 1, !tbaa !26
  %849 = getelementptr inbounds i8, ptr %.451326, i64 2
  br label %686

.loopexit2099:                                    ; preds = %.loopexit1733, %.loopexit1728, %844
  %.521414 = phi i64 [ %.481410, %.loopexit1728 ], [ %.451407.ph, %844 ], [ %.451407.ph, %.loopexit1733 ]
  %.521333 = phi ptr [ %.481329, %.loopexit1728 ], [ %845, %844 ], [ %.451326, %.loopexit1733 ]
  %.561244 = phi ptr [ %.511239, %.loopexit1728 ], [ %.531241, %844 ], [ %.531241, %.loopexit1733 ]
  %.571153 = phi i64 [ %774, %.loopexit1728 ], [ %838, %844 ], [ %815, %.loopexit1733 ]
  %.561070 = phi i32 [ %.521066, %.loopexit1728 ], [ %.491063.ph, %844 ], [ %.491063.ph, %.loopexit1733 ]
  %.55980 = phi i32 [ %.21279, %.loopexit1728 ], [ %.31187, %844 ], [ %.11185, %.loopexit1733 ]
  %.54899 = phi i32 [ %.50895, %.loopexit1728 ], [ %.47892.ph, %844 ], [ %.47892.ph, %.loopexit1733 ]
  %.57 = phi i32 [ %775, %.loopexit1728 ], [ %839, %844 ], [ %816, %.loopexit1733 ]
  %850 = and i32 %.55980, 511
  %851 = icmp eq i32 %850, 256
  br i1 %851, label %1071, label %852

852:                                              ; preds = %.loopexit2099
  %853 = add nsw i32 %850, -257
  %854 = zext i32 %853 to i64
  %855 = getelementptr inbounds [31 x i8], ptr @tinfl_decompress.s_length_extra, i64 0, i64 %854
  %856 = load i8, ptr %855, align 1, !tbaa !26
  %857 = getelementptr inbounds [31 x i16], ptr @tinfl_decompress.s_length_base, i64 0, i64 %854
  %858 = load i16, ptr %857, align 2, !tbaa !46
  %859 = zext i16 %858 to i32
  %.not1574 = icmp eq i8 %856, 0
  br i1 %.not1574, label %883, label %860

860:                                              ; preds = %852
  %861 = zext i8 %856 to i32
  %862 = icmp ult i32 %.57, %861
  br i1 %862, label %.preheader2087, label %.loopexit2088

.preheader2087:                                   ; preds = %866, %860
  %.541416.ph = phi i64 [ %.521414, %860 ], [ %56, %866 ]
  %.541335.ph = phi ptr [ %.521333, %860 ], [ %4, %866 ]
  %.581246.ph = phi ptr [ %.561244, %860 ], [ %1, %866 ]
  %.591155.ph = phi i64 [ %.571153, %860 ], [ %48, %866 ]
  %.581072.ph = phi i32 [ %861, %860 ], [ %54, %866 ]
  %.57982.ph = phi i32 [ %859, %860 ], [ %52, %866 ]
  %.56901.ph = phi i32 [ %.54899, %860 ], [ %50, %866 ]
  %.59.ph = phi i32 [ %.57, %860 ], [ %.84.fr1955, %866 ]
  br label %863

863:                                              ; preds = %.preheader2087, %867
  %.581246 = phi ptr [ %868, %867 ], [ %.581246.ph, %.preheader2087 ]
  %.591155 = phi i64 [ %873, %867 ], [ %.591155.ph, %.preheader2087 ]
  %.59 = phi i32 [ %874, %867 ], [ %.59.ph, %.preheader2087 ]
  %.not1575 = icmp ult ptr %.581246, %14
  br i1 %.not1575, label %867, label %864

864:                                              ; preds = %863
  %865 = and i32 %6, 2
  %.not1588 = icmp eq i32 %865, 0
  store i32 25, ptr %0, align 8, !tbaa !19
  %spec.select1702 = select i1 %.not1588, i32 -4, i32 1
  br label %.thread

866:                                              ; preds = %34
  br label %.preheader2087, !llvm.loop !76

867:                                              ; preds = %863
  %868 = getelementptr inbounds i8, ptr %.581246, i64 1
  %869 = load i8, ptr %.581246, align 1, !tbaa !26
  %870 = zext i8 %869 to i64
  %871 = zext nneg i32 %.59 to i64
  %872 = shl i64 %870, %871
  %873 = or i64 %872, %.591155
  %874 = add i32 %.59, 8
  %875 = icmp ult i32 %874, %.581072.ph
  br i1 %875, label %863, label %.loopexit2088, !llvm.loop !77

.loopexit2088:                                    ; preds = %867, %860
  %.551417 = phi i64 [ %.521414, %860 ], [ %.541416.ph, %867 ]
  %.551336 = phi ptr [ %.521333, %860 ], [ %.541335.ph, %867 ]
  %.591247 = phi ptr [ %.561244, %860 ], [ %868, %867 ]
  %.601156 = phi i64 [ %.571153, %860 ], [ %873, %867 ]
  %.591073 = phi i32 [ %861, %860 ], [ %.581072.ph, %867 ]
  %.58983 = phi i32 [ %859, %860 ], [ %.57982.ph, %867 ]
  %.57902 = phi i32 [ %.54899, %860 ], [ %.56901.ph, %867 ]
  %.60 = phi i32 [ %.57, %860 ], [ %874, %867 ]
  %notmask1576 = shl nsw i32 -1, %.591073
  %876 = xor i32 %notmask1576, -1
  %877 = trunc i64 %.601156 to i32
  %878 = and i32 %876, %877
  %879 = zext nneg i32 %.591073 to i64
  %880 = lshr i64 %.601156, %879
  %881 = sub i32 %.60, %.591073
  %882 = add i32 %878, %.58983
  br label %883

883:                                              ; preds = %852, %.loopexit2088
  %.561418 = phi i64 [ %.551417, %.loopexit2088 ], [ %.521414, %852 ]
  %.561337 = phi ptr [ %.551336, %.loopexit2088 ], [ %.521333, %852 ]
  %.601248 = phi ptr [ %.591247, %.loopexit2088 ], [ %.561244, %852 ]
  %.611157 = phi i64 [ %880, %.loopexit2088 ], [ %.571153, %852 ]
  %.601074 = phi i32 [ %.591073, %.loopexit2088 ], [ 0, %852 ]
  %.59984 = phi i32 [ %882, %.loopexit2088 ], [ %859, %852 ]
  %.58903 = phi i32 [ %.57902, %.loopexit2088 ], [ %.54899, %852 ]
  %.61 = phi i32 [ %881, %.loopexit2088 ], [ %.57, %852 ]
  %884 = icmp ult i32 %.61, 15
  br i1 %884, label %885, label %945

885:                                              ; preds = %883
  %886 = ptrtoint ptr %14 to i64
  %887 = ptrtoint ptr %.601248 to i64
  %888 = sub i64 %886, %887
  %889 = icmp slt i64 %888, 2
  br i1 %889, label %890, label %930

890:                                              ; preds = %885, %921
  %.571419 = phi i64 [ %.561418, %885 ], [ %.581420, %921 ]
  %.571338 = phi ptr [ %.561337, %885 ], [ %.581339, %921 ]
  %.611249 = phi ptr [ %.601248, %885 ], [ %922, %921 ]
  %.621158 = phi i64 [ %.611157, %885 ], [ %927, %921 ]
  %.611075 = phi i32 [ %.601074, %885 ], [ %.621076, %921 ]
  %.60985 = phi i32 [ %.59984, %885 ], [ %.61986, %921 ]
  %.59904 = phi i32 [ %.58903, %885 ], [ %.60905, %921 ]
  %.62 = phi i32 [ %.61, %885 ], [ %928, %921 ]
  %891 = getelementptr inbounds i8, ptr %0, i64 2120
  %892 = and i64 %.621158, 1023
  %893 = getelementptr inbounds [1024 x i16], ptr %891, i64 0, i64 %892
  %894 = load i16, ptr %893, align 2, !tbaa !46
  %895 = sext i16 %894 to i32
  %896 = icmp sgt i16 %894, -1
  br i1 %896, label %897, label %899

897:                                              ; preds = %890
  %.not1577 = icmp ult i16 %894, 512
  %898 = lshr i32 %895, 9
  %.not1578 = icmp ult i32 %.62, %898
  %or.cond1638 = or i1 %.not1577, %.not1578
  br i1 %or.cond1638, label %917, label %945

899:                                              ; preds = %890
  %900 = icmp ugt i32 %.62, 10
  br i1 %900, label %.preheader1726, label %917

.preheader1726:                                   ; preds = %899, %.preheader1726
  %.01011 = phi i32 [ %910, %.preheader1726 ], [ %895, %899 ]
  %.01008 = phi i32 [ %903, %.preheader1726 ], [ 10, %899 ]
  %901 = xor i32 %.01011, -1
  %902 = sext i32 %901 to i64
  %903 = add i32 %.01008, 1
  %904 = zext nneg i32 %.01008 to i64
  %905 = lshr i64 %.621158, %904
  %906 = and i64 %905, 1
  %907 = add nsw i64 %906, %902
  %908 = getelementptr inbounds [64 x i16], ptr %36, i64 0, i64 %907
  %909 = load i16, ptr %908, align 2, !tbaa !46
  %910 = sext i16 %909 to i32
  %911 = icmp slt i16 %909, 0
  %912 = add i32 %.01008, 2
  %913 = icmp uge i32 %.62, %912
  %914 = and i1 %911, %913
  br i1 %914, label %.preheader1726, label %915, !llvm.loop !78

915:                                              ; preds = %.preheader1726
  %916 = icmp sgt i16 %909, -1
  br i1 %916, label %945, label %917

917:                                              ; preds = %899, %915, %897, %920
  %.581420 = phi i64 [ %.571419, %897 ], [ %.571419, %915 ], [ %.571419, %899 ], [ %56, %920 ]
  %.581339 = phi ptr [ %.571338, %897 ], [ %.571338, %915 ], [ %.571338, %899 ], [ %4, %920 ]
  %.621250 = phi ptr [ %.611249, %897 ], [ %.611249, %915 ], [ %.611249, %899 ], [ %1, %920 ]
  %.631159 = phi i64 [ %.621158, %897 ], [ %.621158, %915 ], [ %.621158, %899 ], [ %48, %920 ]
  %.621076 = phi i32 [ %.611075, %897 ], [ %.611075, %915 ], [ %.611075, %899 ], [ %54, %920 ]
  %.61986 = phi i32 [ %.60985, %897 ], [ %.60985, %915 ], [ %.60985, %899 ], [ %52, %920 ]
  %.60905 = phi i32 [ %.59904, %897 ], [ %.59904, %915 ], [ %.59904, %899 ], [ %50, %920 ]
  %.63 = phi i32 [ %.62, %897 ], [ %.62, %915 ], [ %.62, %899 ], [ %.84.fr1955, %920 ]
  %.not1579 = icmp ult ptr %.621250, %14
  br i1 %.not1579, label %921, label %918

918:                                              ; preds = %917
  %919 = and i32 %6, 2
  %.not1580 = icmp eq i32 %919, 0
  store i32 26, ptr %0, align 8, !tbaa !19
  %spec.select1704 = select i1 %.not1580, i32 -4, i32 1
  br label %.thread

920:                                              ; preds = %34
  br label %917, !llvm.loop !79

921:                                              ; preds = %917
  %922 = getelementptr inbounds i8, ptr %.621250, i64 1
  %923 = load i8, ptr %.621250, align 1, !tbaa !26
  %924 = zext i8 %923 to i64
  %925 = zext nneg i32 %.63 to i64
  %926 = shl i64 %924, %925
  %927 = or i64 %926, %.631159
  %928 = add i32 %.63, 8
  %929 = icmp ult i32 %928, 15
  br i1 %929, label %890, label %945, !llvm.loop !80

930:                                              ; preds = %885
  %931 = load i8, ptr %.601248, align 1, !tbaa !26
  %932 = zext i8 %931 to i64
  %933 = zext nneg i32 %.61 to i64
  %934 = shl nuw nsw i64 %932, %933
  %935 = getelementptr inbounds i8, ptr %.601248, i64 1
  %936 = load i8, ptr %935, align 1, !tbaa !26
  %937 = zext i8 %936 to i64
  %938 = add nuw nsw i32 %.61, 8
  %939 = zext nneg i32 %938 to i64
  %940 = shl nuw nsw i64 %937, %939
  %941 = or i64 %934, %940
  %942 = or i64 %941, %.611157
  %943 = getelementptr inbounds i8, ptr %.601248, i64 2
  %944 = or disjoint i32 %.61, 16
  br label %945

945:                                              ; preds = %897, %930, %915, %921, %883
  %.591421 = phi i64 [ %.581420, %921 ], [ %.571419, %915 ], [ %.561418, %930 ], [ %.561418, %883 ], [ %.571419, %897 ]
  %.591340 = phi ptr [ %.581339, %921 ], [ %.571338, %915 ], [ %.561337, %930 ], [ %.561337, %883 ], [ %.571338, %897 ]
  %.631251 = phi ptr [ %922, %921 ], [ %.611249, %915 ], [ %943, %930 ], [ %.601248, %883 ], [ %.611249, %897 ]
  %.641160 = phi i64 [ %927, %921 ], [ %.621158, %915 ], [ %942, %930 ], [ %.611157, %883 ], [ %.621158, %897 ]
  %.62987 = phi i32 [ %.61986, %921 ], [ %.60985, %915 ], [ %.59984, %930 ], [ %.59984, %883 ], [ %.60985, %897 ]
  %.64 = phi i32 [ %928, %921 ], [ %.62, %915 ], [ %944, %930 ], [ %.61, %883 ], [ %.62, %897 ]
  %946 = getelementptr inbounds i8, ptr %0, i64 2120
  %947 = and i64 %.641160, 1023
  %948 = getelementptr inbounds [1024 x i16], ptr %946, i64 0, i64 %947
  %949 = load i16, ptr %948, align 2, !tbaa !46
  %950 = sext i16 %949 to i32
  %951 = icmp sgt i16 %949, -1
  br i1 %951, label %952, label %.preheader1724

952:                                              ; preds = %945
  %953 = lshr i32 %950, 9
  %954 = and i32 %950, 511
  br label %.loopexit1725

.preheader1724:                                   ; preds = %945, %.preheader1724
  %.11012 = phi i32 [ %964, %.preheader1724 ], [ %950, %945 ]
  %.11009 = phi i32 [ %957, %.preheader1724 ], [ 10, %945 ]
  %955 = xor i32 %.11012, -1
  %956 = sext i32 %955 to i64
  %957 = add i32 %.11009, 1
  %958 = zext nneg i32 %.11009 to i64
  %959 = lshr i64 %.641160, %958
  %960 = and i64 %959, 1
  %961 = add nsw i64 %960, %956
  %962 = getelementptr inbounds [64 x i16], ptr %36, i64 0, i64 %961
  %963 = load i16, ptr %962, align 2, !tbaa !46
  %964 = sext i16 %963 to i32
  %965 = icmp slt i16 %963, 0
  br i1 %965, label %.preheader1724, label %.loopexit1725, !llvm.loop !81

.loopexit1725:                                    ; preds = %.preheader1724, %952
  %.21013 = phi i32 [ %954, %952 ], [ %964, %.preheader1724 ]
  %.21010 = phi i32 [ %953, %952 ], [ %957, %.preheader1724 ]
  %966 = zext nneg i32 %.21010 to i64
  %967 = lshr i64 %.641160, %966
  %968 = sub i32 %.64, %.21010
  %969 = zext nneg i32 %.21013 to i64
  %970 = getelementptr inbounds [32 x i8], ptr @tinfl_decompress.s_dist_extra, i64 0, i64 %969
  %971 = load i8, ptr %970, align 1, !tbaa !26
  %972 = getelementptr inbounds [32 x i16], ptr @tinfl_decompress.s_dist_base, i64 0, i64 %969
  %973 = load i16, ptr %972, align 2, !tbaa !46
  %974 = zext i16 %973 to i32
  %.not1581 = icmp eq i8 %971, 0
  br i1 %.not1581, label %998, label %975

975:                                              ; preds = %.loopexit1725
  %976 = zext i8 %971 to i32
  %977 = icmp ult i32 %968, %976
  br i1 %977, label %.preheader2076, label %.loopexit2077

.preheader2076:                                   ; preds = %981, %975
  %.611423.ph = phi i64 [ %.591421, %975 ], [ %56, %981 ]
  %.611342.ph = phi ptr [ %.591340, %975 ], [ %4, %981 ]
  %.651253.ph = phi ptr [ %.631251, %975 ], [ %1, %981 ]
  %.661162.ph = phi i64 [ %967, %975 ], [ %48, %981 ]
  %.641078.ph = phi i32 [ %976, %975 ], [ %54, %981 ]
  %.64989.ph = phi i32 [ %.62987, %975 ], [ %52, %981 ]
  %.62907.ph = phi i32 [ %974, %975 ], [ %50, %981 ]
  %.66.ph = phi i32 [ %968, %975 ], [ %.84.fr1955, %981 ]
  br label %978

978:                                              ; preds = %.preheader2076, %982
  %.651253 = phi ptr [ %983, %982 ], [ %.651253.ph, %.preheader2076 ]
  %.661162 = phi i64 [ %988, %982 ], [ %.661162.ph, %.preheader2076 ]
  %.66 = phi i32 [ %989, %982 ], [ %.66.ph, %.preheader2076 ]
  %.not1582 = icmp ult ptr %.651253, %14
  br i1 %.not1582, label %982, label %979

979:                                              ; preds = %978
  %980 = and i32 %6, 2
  %.not1587 = icmp eq i32 %980, 0
  store i32 27, ptr %0, align 8, !tbaa !19
  %spec.select1706 = select i1 %.not1587, i32 -4, i32 1
  br label %.thread

981:                                              ; preds = %34
  br label %.preheader2076, !llvm.loop !82

982:                                              ; preds = %978
  %983 = getelementptr inbounds i8, ptr %.651253, i64 1
  %984 = load i8, ptr %.651253, align 1, !tbaa !26
  %985 = zext i8 %984 to i64
  %986 = zext nneg i32 %.66 to i64
  %987 = shl i64 %985, %986
  %988 = or i64 %987, %.661162
  %989 = add i32 %.66, 8
  %990 = icmp ult i32 %989, %.641078.ph
  br i1 %990, label %978, label %.loopexit2077, !llvm.loop !83

.loopexit2077:                                    ; preds = %982, %975
  %.621343 = phi ptr [ %.591340, %975 ], [ %.611342.ph, %982 ]
  %.661254 = phi ptr [ %.631251, %975 ], [ %983, %982 ]
  %.671163 = phi i64 [ %967, %975 ], [ %988, %982 ]
  %.651079 = phi i32 [ %976, %975 ], [ %.641078.ph, %982 ]
  %.65990 = phi i32 [ %.62987, %975 ], [ %.64989.ph, %982 ]
  %.63908 = phi i32 [ %974, %975 ], [ %.62907.ph, %982 ]
  %.67 = phi i32 [ %968, %975 ], [ %989, %982 ]
  %notmask1583 = shl nsw i32 -1, %.651079
  %991 = xor i32 %notmask1583, -1
  %992 = trunc i64 %.671163 to i32
  %993 = and i32 %991, %992
  %994 = zext nneg i32 %.651079 to i64
  %995 = lshr i64 %.671163, %994
  %996 = sub i32 %.67, %.651079
  %997 = add i32 %.63908, %993
  br label %998

998:                                              ; preds = %.loopexit2077, %.loopexit1725
  %.631344 = phi ptr [ %.621343, %.loopexit2077 ], [ %.591340, %.loopexit1725 ]
  %.671255 = phi ptr [ %.661254, %.loopexit2077 ], [ %.631251, %.loopexit1725 ]
  %.681164 = phi i64 [ %995, %.loopexit2077 ], [ %967, %.loopexit1725 ]
  %.661080 = phi i32 [ %.651079, %.loopexit2077 ], [ 0, %.loopexit1725 ]
  %.66991 = phi i32 [ %.65990, %.loopexit2077 ], [ %.62987, %.loopexit1725 ]
  %.64909 = phi i32 [ %997, %.loopexit2077 ], [ %974, %.loopexit1725 ]
  %.68 = phi i32 [ %996, %.loopexit2077 ], [ %968, %.loopexit1725 ]
  %999 = ptrtoint ptr %.631344 to i64
  %1000 = ptrtoint ptr %3 to i64
  %1001 = sub i64 %999, %1000
  %1002 = icmp ne i32 %.64909, 0
  %1003 = zext i32 %.64909 to i64
  %1004 = icmp uge i64 %1001, %1003
  %or.cond1640.not1716 = select i1 %1002, i1 %1004, i1 false
  %brmerge = or i1 %.not1551, %or.cond1640.not1716
  br i1 %brmerge, label %1005, label %.loopexit2100

1005:                                             ; preds = %998
  %1006 = sub i64 %1001, %1003
  %1007 = and i64 %1006, %29
  %1008 = getelementptr inbounds i8, ptr %3, i64 %1007
  %1009 = icmp ugt ptr %.631344, %1008
  %1010 = select i1 %1009, ptr %.631344, ptr %1008
  %1011 = zext i32 %.66991 to i64
  %1012 = getelementptr inbounds i8, ptr %1010, i64 %1011
  %1013 = icmp ugt ptr %1012, %19
  br i1 %1013, label %1029, label %.preheader1723

.preheader1723:                                   ; preds = %1005
  %1014 = icmp ugt i32 %.66991, 2
  br i1 %1014, label %.lr.ph1768.preheader, label %._crit_edge

.lr.ph1768.preheader:                             ; preds = %.preheader1723
  %1015 = add i32 %.66991, -3
  %1016 = udiv i32 %1015, 3
  %1017 = and i32 %1016, 1
  %lcmp.mod.not.not = icmp eq i32 %1017, 0
  br i1 %lcmp.mod.not.not, label %.lr.ph1768.prol, label %.lr.ph1768.prol.loopexit

.lr.ph1768.prol:                                  ; preds = %.lr.ph1768.preheader
  %1018 = load i8, ptr %1008, align 1, !tbaa !26
  store i8 %1018, ptr %.631344, align 1, !tbaa !26
  %1019 = getelementptr inbounds i8, ptr %1008, i64 1
  %1020 = load i8, ptr %1019, align 1, !tbaa !26
  %1021 = getelementptr inbounds i8, ptr %.631344, i64 1
  store i8 %1020, ptr %1021, align 1, !tbaa !26
  %1022 = getelementptr inbounds i8, ptr %1008, i64 2
  %1023 = load i8, ptr %1022, align 1, !tbaa !26
  %1024 = getelementptr inbounds i8, ptr %.631344, i64 2
  store i8 %1023, ptr %1024, align 1, !tbaa !26
  %1025 = getelementptr inbounds i8, ptr %.631344, i64 3
  %1026 = getelementptr inbounds i8, ptr %1008, i64 3
  %1027 = add i32 %.66991, -3
  br label %.lr.ph1768.prol.loopexit

.lr.ph1768.prol.loopexit:                         ; preds = %.lr.ph1768.prol, %.lr.ph1768.preheader
  %.709951767.unr = phi i32 [ %.66991, %.lr.ph1768.preheader ], [ %1027, %.lr.ph1768.prol ]
  %.012801766.unr = phi ptr [ %1008, %.lr.ph1768.preheader ], [ %1026, %.lr.ph1768.prol ]
  %.6713481765.unr = phi ptr [ %.631344, %.lr.ph1768.preheader ], [ %1025, %.lr.ph1768.prol ]
  %.lcssa2075.unr = phi ptr [ poison, %.lr.ph1768.preheader ], [ %1025, %.lr.ph1768.prol ]
  %.lcssa2074.unr = phi ptr [ poison, %.lr.ph1768.preheader ], [ %1026, %.lr.ph1768.prol ]
  %.lcssa2073.unr = phi i32 [ poison, %.lr.ph1768.preheader ], [ %1027, %.lr.ph1768.prol ]
  %1028 = icmp ult i32 %1015, 3
  br i1 %1028, label %._crit_edge, label %.lr.ph1768

1029:                                             ; preds = %1005, %1033
  %.631425 = phi i64 [ %1034, %1033 ], [ %1001, %1005 ]
  %.651346 = phi ptr [ %1040, %1033 ], [ %.631344, %1005 ]
  %.691257 = phi ptr [ %.701258, %1033 ], [ %.671255, %1005 ]
  %.701166 = phi i64 [ %.711167, %1033 ], [ %.681164, %1005 ]
  %.681082 = phi i32 [ %.691083, %1033 ], [ %.661080, %1005 ]
  %.68993 = phi i32 [ %.69994, %1033 ], [ %.66991, %1005 ]
  %.66911 = phi i32 [ %.67912, %1033 ], [ %.64909, %1005 ]
  %.70 = phi i32 [ %.71, %1033 ], [ %.68, %1005 ]
  %1030 = add i32 %.68993, -1
  %.not1585 = icmp eq i32 %.68993, 0
  br i1 %.not1585, label %.preheader2098, label %1031

1031:                                             ; preds = %1029, %1032
  %.641426 = phi i64 [ %56, %1032 ], [ %.631425, %1029 ]
  %.661347 = phi ptr [ %4, %1032 ], [ %.651346, %1029 ]
  %.701258 = phi ptr [ %1, %1032 ], [ %.691257, %1029 ]
  %.711167 = phi i64 [ %48, %1032 ], [ %.701166, %1029 ]
  %.691083 = phi i32 [ %54, %1032 ], [ %.681082, %1029 ]
  %.69994 = phi i32 [ %52, %1032 ], [ %1030, %1029 ]
  %.67912 = phi i32 [ %50, %1032 ], [ %.66911, %1029 ]
  %.71 = phi i32 [ %.84.fr1955, %1032 ], [ %.70, %1029 ]
  %.not1586 = icmp ult ptr %.661347, %19
  br i1 %.not1586, label %1033, label %.loopexit2100

1032:                                             ; preds = %34
  br label %1031, !llvm.loop !84

1033:                                             ; preds = %1031
  %1034 = add i64 %.641426, 1
  %1035 = zext i32 %.67912 to i64
  %1036 = sub i64 %.641426, %1035
  %1037 = and i64 %1036, %29
  %1038 = getelementptr inbounds i8, ptr %3, i64 %1037
  %1039 = load i8, ptr %1038, align 1, !tbaa !26
  %1040 = getelementptr inbounds i8, ptr %.661347, i64 1
  store i8 %1039, ptr %.661347, align 1, !tbaa !26
  br label %1029, !llvm.loop !85

.lr.ph1768:                                       ; preds = %.lr.ph1768.prol.loopexit, %.lr.ph1768
  %.709951767 = phi i32 [ %1059, %.lr.ph1768 ], [ %.709951767.unr, %.lr.ph1768.prol.loopexit ]
  %.012801766 = phi ptr [ %1058, %.lr.ph1768 ], [ %.012801766.unr, %.lr.ph1768.prol.loopexit ]
  %.6713481765 = phi ptr [ %1057, %.lr.ph1768 ], [ %.6713481765.unr, %.lr.ph1768.prol.loopexit ]
  %1041 = load i8, ptr %.012801766, align 1, !tbaa !26
  store i8 %1041, ptr %.6713481765, align 1, !tbaa !26
  %1042 = getelementptr inbounds i8, ptr %.012801766, i64 1
  %1043 = load i8, ptr %1042, align 1, !tbaa !26
  %1044 = getelementptr inbounds i8, ptr %.6713481765, i64 1
  store i8 %1043, ptr %1044, align 1, !tbaa !26
  %1045 = getelementptr inbounds i8, ptr %.012801766, i64 2
  %1046 = load i8, ptr %1045, align 1, !tbaa !26
  %1047 = getelementptr inbounds i8, ptr %.6713481765, i64 2
  store i8 %1046, ptr %1047, align 1, !tbaa !26
  %1048 = getelementptr inbounds i8, ptr %.6713481765, i64 3
  %1049 = getelementptr inbounds i8, ptr %.012801766, i64 3
  %1050 = load i8, ptr %1049, align 1, !tbaa !26
  store i8 %1050, ptr %1048, align 1, !tbaa !26
  %1051 = getelementptr inbounds i8, ptr %.012801766, i64 4
  %1052 = load i8, ptr %1051, align 1, !tbaa !26
  %1053 = getelementptr inbounds i8, ptr %.6713481765, i64 4
  store i8 %1052, ptr %1053, align 1, !tbaa !26
  %1054 = getelementptr inbounds i8, ptr %.012801766, i64 5
  %1055 = load i8, ptr %1054, align 1, !tbaa !26
  %1056 = getelementptr inbounds i8, ptr %.6713481765, i64 5
  store i8 %1055, ptr %1056, align 1, !tbaa !26
  %1057 = getelementptr inbounds i8, ptr %.6713481765, i64 6
  %1058 = getelementptr inbounds i8, ptr %.012801766, i64 6
  %1059 = add i32 %.709951767, -6
  %1060 = icmp ugt i32 %1059, 2
  br i1 %1060, label %.lr.ph1768, label %._crit_edge, !llvm.loop !86

._crit_edge:                                      ; preds = %.lr.ph1768.prol.loopexit, %.lr.ph1768, %.preheader1723
  %.671348.lcssa = phi ptr [ %.631344, %.preheader1723 ], [ %.lcssa2075.unr, %.lr.ph1768.prol.loopexit ], [ %1057, %.lr.ph1768 ]
  %.01280.lcssa = phi ptr [ %1008, %.preheader1723 ], [ %.lcssa2074.unr, %.lr.ph1768.prol.loopexit ], [ %1058, %.lr.ph1768 ]
  %.70995.lcssa = phi i32 [ %.66991, %.preheader1723 ], [ %.lcssa2073.unr, %.lr.ph1768.prol.loopexit ], [ %1059, %.lr.ph1768 ]
  %.not1584 = icmp eq i32 %.70995.lcssa, 0
  br i1 %.not1584, label %.preheader2098, label %1061

1061:                                             ; preds = %._crit_edge
  %1062 = load i8, ptr %.01280.lcssa, align 1, !tbaa !26
  store i8 %1062, ptr %.671348.lcssa, align 1, !tbaa !26
  %1063 = icmp eq i32 %.70995.lcssa, 2
  br i1 %1063, label %1064, label %1068

1064:                                             ; preds = %1061
  %1065 = getelementptr inbounds i8, ptr %.01280.lcssa, i64 1
  %1066 = load i8, ptr %1065, align 1, !tbaa !26
  %1067 = getelementptr inbounds i8, ptr %.671348.lcssa, i64 1
  store i8 %1066, ptr %1067, align 1, !tbaa !26
  br label %1068

1068:                                             ; preds = %1064, %1061
  %1069 = zext nneg i32 %.70995.lcssa to i64
  %1070 = getelementptr inbounds i8, ptr %.671348.lcssa, i64 %1069
  br label %.preheader2098

1071:                                             ; preds = %226, %.loopexit2099
  %.651427 = phi i64 [ %.521414, %.loopexit2099 ], [ %.191381, %226 ]
  %.691350 = phi ptr [ %.521333, %.loopexit2099 ], [ %.191300, %226 ]
  %.711259 = phi ptr [ %.561244, %.loopexit2099 ], [ %.221210, %226 ]
  %.721168 = phi i64 [ %.571153, %.loopexit2099 ], [ %.231119, %226 ]
  %.701084 = phi i32 [ %.561070, %.loopexit2099 ], [ %.231037, %226 ]
  %.71996 = phi i32 [ 256, %.loopexit2099 ], [ 0, %226 ]
  %.68913 = phi i32 [ %.54899, %.loopexit2099 ], [ %.22867, %226 ]
  %.72 = phi i32 [ %.57, %.loopexit2099 ], [ %.23, %226 ]
  %1072 = getelementptr inbounds i8, ptr %0, i64 20
  %1073 = load i32, ptr %1072, align 4, !tbaa !30
  %1074 = and i32 %1073, 1
  %.not1604 = icmp eq i32 %1074, 0
  br i1 %.not1604, label %101, label %1081, !llvm.loop !87

1075:                                             ; preds = %1077
  %1076 = and i32 %6, 2
  %.not1554 = icmp eq i32 %1076, 0
  store i32 32, ptr %0, align 8, !tbaa !19
  %spec.select1708 = select i1 %.not1554, i32 -4, i32 1
  br label %.thread

1077:                                             ; preds = %34
  %.not1553 = icmp sgt i64 %13, 0
  br i1 %.not1553, label %1078, label %1075

1078:                                             ; preds = %1077
  %1079 = getelementptr inbounds i8, ptr %1, i64 1
  %1080 = add i32 %.84.fr1955, 8
  br label %1081

1081:                                             ; preds = %1071, %1078
  %.681430 = phi i64 [ %56, %1078 ], [ %.651427, %1071 ]
  %.721353 = phi ptr [ %4, %1078 ], [ %.691350, %1071 ]
  %.741262 = phi ptr [ %1079, %1078 ], [ %.711259, %1071 ]
  %.731087 = phi i32 [ %54, %1078 ], [ %.701084, %1071 ]
  %.74999 = phi i32 [ %52, %1078 ], [ %.71996, %1071 ]
  %.71916 = phi i32 [ %50, %1078 ], [ %.68913, %1071 ]
  %.75 = phi i32 [ %1080, %1078 ], [ %.72, %1071 ]
  %.75.fr = freeze i32 %.75
  %1082 = and i32 %.75.fr, -8
  %1083 = icmp ugt ptr %.741262, %1
  %1084 = icmp ne i32 %1082, 0
  %1085 = and i1 %1083, %1084
  br i1 %1085, label %.lr.ph1804.preheader, label %._crit_edge1805

.lr.ph1804.preheader:                             ; preds = %1081
  %.7412621898 = ptrtoint ptr %.741262 to i64
  %1086 = add i32 %1082, -8
  %1087 = lshr exact i32 %1086, 3
  %1088 = zext nneg i32 %1087 to i64
  %1089 = xor i64 %8, -1
  %1090 = add i64 %1089, %.7412621898
  %umin = tail call i64 @llvm.umin.i64(i64 %1088, i64 %1090)
  %1091 = xor i64 %umin, -1
  %scevgep1899 = getelementptr i8, ptr %.741262, i64 %1091
  %1092 = trunc nuw nsw i64 %umin to i32
  %1093 = shl nuw i32 %1092, 3
  %1094 = sub i32 %1086, %1093
  br label %._crit_edge1805

._crit_edge1805:                                  ; preds = %.lr.ph1804.preheader, %1081
  %.751263.lcssa = phi ptr [ %.741262, %1081 ], [ %scevgep1899, %.lr.ph1804.preheader ]
  %.76.lcssa = phi i32 [ %1082, %1081 ], [ %1094, %.lr.ph1804.preheader ]
  %.not1605 = icmp eq i32 %.76.lcssa, 0
  br i1 %.not1605, label %1096, label %1095

1095:                                             ; preds = %._crit_edge1805
  tail call void @__assert_fail(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.12, i32 noundef 4733, ptr noundef nonnull @__PRETTY_FUNCTION__.tinfl_decompress) #7
  unreachable

1096:                                             ; preds = %._crit_edge1805
  %1097 = and i32 %6, 1
  %.not1606 = icmp eq i32 %1097, 0
  br i1 %.not1606, label %.loopexit2100, label %1098

1098:                                             ; preds = %1096, %1128
  %.691431 = phi i64 [ %.741436, %1128 ], [ %.681430, %1096 ]
  %.731354 = phi ptr [ %.781359, %1128 ], [ %.721353, %1096 ]
  %.761264 = phi ptr [ %.811269, %1128 ], [ %.751263.lcssa, %1096 ]
  %.761172 = phi i64 [ %.811177, %1128 ], [ 0, %1096 ]
  %.741088 = phi i32 [ %.791093, %1128 ], [ %.731087, %1096 ]
  %.751000 = phi i32 [ %1133, %1128 ], [ 0, %1096 ]
  %.72917 = phi i32 [ %.77922, %1128 ], [ %.71916, %1096 ]
  %.77 = phi i32 [ %.82, %1128 ], [ 0, %1096 ]
  %1099 = icmp ult i32 %.751000, 4
  br i1 %1099, label %1100, label %.loopexit2100

1100:                                             ; preds = %1098
  %.not1607 = icmp eq i32 %.77, 0
  br i1 %.not1607, label %1120, label %1101

1101:                                             ; preds = %1100
  %1102 = icmp ult i32 %.77, 8
  br i1 %1102, label %.preheader2033, label %.loopexit2034

.preheader2033:                                   ; preds = %1106, %1101
  %.711433.ph = phi i64 [ %.691431, %1101 ], [ %56, %1106 ]
  %.751356.ph = phi ptr [ %.731354, %1101 ], [ %4, %1106 ]
  %.781266.ph = phi ptr [ %.761264, %1101 ], [ %1, %1106 ]
  %.781174.ph = phi i64 [ %.761172, %1101 ], [ %48, %1106 ]
  %.761090.ph = phi i32 [ %.741088, %1101 ], [ %54, %1106 ]
  %.771002.ph = phi i32 [ %.751000, %1101 ], [ %52, %1106 ]
  %.74919.ph = phi i32 [ %.72917, %1101 ], [ %50, %1106 ]
  %.79.ph = phi i32 [ %.77, %1101 ], [ %.84.fr1955, %1106 ]
  br label %1103

1103:                                             ; preds = %.preheader2033, %1107
  %.781266 = phi ptr [ %1108, %1107 ], [ %.781266.ph, %.preheader2033 ]
  %.781174 = phi i64 [ %1113, %1107 ], [ %.781174.ph, %.preheader2033 ]
  %.79 = phi i32 [ %1114, %1107 ], [ %.79.ph, %.preheader2033 ]
  %.not1610 = icmp ult ptr %.781266, %14
  br i1 %.not1610, label %1107, label %1104

1104:                                             ; preds = %1103
  %1105 = and i32 %6, 2
  %.not1611 = icmp eq i32 %1105, 0
  store i32 41, ptr %0, align 8, !tbaa !19
  %spec.select1710 = select i1 %.not1611, i32 -4, i32 1
  br label %.thread

1106:                                             ; preds = %34
  br label %.preheader2033, !llvm.loop !88

1107:                                             ; preds = %1103
  %1108 = getelementptr inbounds i8, ptr %.781266, i64 1
  %1109 = load i8, ptr %.781266, align 1, !tbaa !26
  %1110 = zext i8 %1109 to i64
  %1111 = zext nneg i32 %.79 to i64
  %1112 = shl i64 %1110, %1111
  %1113 = or i64 %1112, %.781174
  %1114 = add i32 %.79, 8
  %1115 = icmp ugt i32 %.79, -9
  br i1 %1115, label %1103, label %.loopexit2034, !llvm.loop !89

.loopexit2034:                                    ; preds = %1107, %1101
  %.721434 = phi i64 [ %.691431, %1101 ], [ %.711433.ph, %1107 ]
  %.761357 = phi ptr [ %.731354, %1101 ], [ %.751356.ph, %1107 ]
  %.791267 = phi ptr [ %.761264, %1101 ], [ %1108, %1107 ]
  %.791175 = phi i64 [ %.761172, %1101 ], [ %1113, %1107 ]
  %.771091 = phi i32 [ %.741088, %1101 ], [ %.761090.ph, %1107 ]
  %.781003 = phi i32 [ %.751000, %1101 ], [ %.771002.ph, %1107 ]
  %.75920 = phi i32 [ %.72917, %1101 ], [ %.74919.ph, %1107 ]
  %.80 = phi i32 [ %.77, %1101 ], [ %1114, %1107 ]
  %1116 = trunc i64 %.791175 to i32
  %1117 = and i32 %1116, 255
  %1118 = lshr i64 %.791175, 8
  %1119 = add i32 %.80, -8
  br label %1128

1120:                                             ; preds = %1100, %1123
  %.731435 = phi i64 [ %56, %1123 ], [ %.691431, %1100 ]
  %.771358 = phi ptr [ %4, %1123 ], [ %.731354, %1100 ]
  %.801268 = phi ptr [ %1, %1123 ], [ %.761264, %1100 ]
  %.801176 = phi i64 [ %48, %1123 ], [ %.761172, %1100 ]
  %.781092 = phi i32 [ %54, %1123 ], [ %.741088, %1100 ]
  %.791004 = phi i32 [ %52, %1123 ], [ %.751000, %1100 ]
  %.76921 = phi i32 [ %50, %1123 ], [ %.72917, %1100 ]
  %.81 = phi i32 [ %.84.fr1955, %1123 ], [ 0, %1100 ]
  %.not1608 = icmp ult ptr %.801268, %14
  br i1 %.not1608, label %1124, label %1121

1121:                                             ; preds = %1120
  %1122 = and i32 %6, 2
  %.not1609 = icmp eq i32 %1122, 0
  store i32 42, ptr %0, align 8, !tbaa !19
  %spec.select1712 = select i1 %.not1609, i32 -4, i32 1
  br label %.thread

1123:                                             ; preds = %34
  br label %1120, !llvm.loop !90

1124:                                             ; preds = %1120
  %1125 = getelementptr inbounds i8, ptr %.801268, i64 1
  %1126 = load i8, ptr %.801268, align 1, !tbaa !26
  %1127 = zext i8 %1126 to i32
  br label %1128

1128:                                             ; preds = %1124, %.loopexit2034
  %.741436 = phi i64 [ %.731435, %1124 ], [ %.721434, %.loopexit2034 ]
  %.781359 = phi ptr [ %.771358, %1124 ], [ %.761357, %.loopexit2034 ]
  %.811269 = phi ptr [ %1125, %1124 ], [ %.791267, %.loopexit2034 ]
  %.811177 = phi i64 [ %.801176, %1124 ], [ %1118, %.loopexit2034 ]
  %.791093 = phi i32 [ %.781092, %1124 ], [ %.771091, %.loopexit2034 ]
  %.801005 = phi i32 [ %.791004, %1124 ], [ %.781003, %.loopexit2034 ]
  %.77922 = phi i32 [ %.76921, %1124 ], [ %.75920, %.loopexit2034 ]
  %.82 = phi i32 [ %.81, %1124 ], [ %1119, %.loopexit2034 ]
  %.0838 = phi i32 [ %1127, %1124 ], [ %1117, %.loopexit2034 ]
  %1129 = getelementptr inbounds i8, ptr %0, i64 16
  %1130 = load i32, ptr %1129, align 8, !tbaa !25
  %1131 = shl i32 %1130, 8
  %1132 = or disjoint i32 %1131, %.0838
  store i32 %1132, ptr %1129, align 8, !tbaa !25
  %1133 = add i32 %.801005, 1
  br label %1098, !llvm.loop !91

1134:                                             ; preds = %34
  br label %.loopexit2100

.loopexit2100:                                    ; preds = %.loopexit1731, %34, %34, %34, %34, %34, %34, %34, %1098, %1096, %1031, %998, %777, %676, %629, %._crit_edge1775, %246, %227, %220, %184, %100, %34, %91, %1134
  %.sink = phi i32 [ 36, %91 ], [ %57, %34 ], [ 36, %100 ], [ 39, %184 ], [ 52, %220 ], [ 9, %227 ], [ 10, %246 ], [ 35, %._crit_edge1775 ], [ 17, %629 ], [ 21, %676 ], [ 24, %777 ], [ 37, %998 ], [ 53, %1031 ], [ 34, %1096 ], [ 34, %1098 ], [ %57, %1134 ], [ %57, %34 ], [ %57, %34 ], [ %57, %34 ], [ %57, %34 ], [ %57, %34 ], [ %57, %34 ], [ %57, %34 ], [ 40, %.loopexit1731 ]
  %.761438 = phi i64 [ %56, %91 ], [ %56, %34 ], [ %56, %100 ], [ %.71369, %184 ], [ %.181380, %220 ], [ %.201382, %227 ], [ %.31365, %246 ], [ %.321394, %._crit_edge1775 ], [ %.371399, %629 ], [ %.341396, %676 ], [ %.491411, %777 ], [ %1001, %998 ], [ %.641426, %1031 ], [ %.681430, %1096 ], [ %.691431, %1098 ], [ %56, %1134 ], [ %56, %34 ], [ %56, %34 ], [ %56, %34 ], [ %56, %34 ], [ %56, %34 ], [ %56, %34 ], [ %56, %34 ], [ %.451407.ph, %.loopexit1731 ]
  %.801361 = phi ptr [ %4, %91 ], [ %4, %34 ], [ %4, %100 ], [ %.71288, %184 ], [ %.181299, %220 ], [ %.201301, %227 ], [ %.31284, %246 ], [ %.321313, %._crit_edge1775 ], [ %.371318, %629 ], [ %.341315, %676 ], [ %.491330, %777 ], [ %.631344, %998 ], [ %.661347, %1031 ], [ %.721353, %1096 ], [ %.731354, %1098 ], [ %4, %1134 ], [ %4, %34 ], [ %4, %34 ], [ %4, %34 ], [ %4, %34 ], [ %4, %34 ], [ %4, %34 ], [ %4, %34 ], [ %.451326, %.loopexit1731 ]
  %.831271 = phi ptr [ %77, %91 ], [ %1, %34 ], [ %77, %100 ], [ %.101198, %184 ], [ %.211209, %220 ], [ %.231211, %227 ], [ %.61194, %246 ], [ %.351223, %._crit_edge1775 ], [ %.401228, %629 ], [ %.371225, %676 ], [ %.521240, %777 ], [ %.671255, %998 ], [ %.701258, %1031 ], [ %.751263.lcssa, %1096 ], [ %.761264, %1098 ], [ %1, %1134 ], [ %1, %34 ], [ %1, %34 ], [ %1, %34 ], [ %1, %34 ], [ %1, %34 ], [ %1, %34 ], [ %1, %34 ], [ %.531241, %.loopexit1731 ]
  %.831179 = phi i64 [ %.11097, %91 ], [ %48, %34 ], [ %.11097, %100 ], [ %.111107, %184 ], [ %.221118, %220 ], [ %.241120, %227 ], [ %127, %246 ], [ %.361132, %._crit_edge1775 ], [ %620, %629 ], [ %.381134, %676 ], [ %.531149, %777 ], [ %.681164, %998 ], [ %.711167, %1031 ], [ 0, %1096 ], [ %.761172, %1098 ], [ %48, %1134 ], [ %48, %34 ], [ %48, %34 ], [ %48, %34 ], [ %48, %34 ], [ %48, %34 ], [ %48, %34 ], [ %48, %34 ], [ %838, %.loopexit1731 ]
  %.811095 = phi i32 [ %.11015, %91 ], [ %54, %34 ], [ %.11015, %100 ], [ %.111025, %184 ], [ %.221036, %220 ], [ %.241038, %227 ], [ %.71021, %246 ], [ %.361050, %._crit_edge1775 ], [ %.411055, %629 ], [ %.381052, %676 ], [ %.531067, %777 ], [ %.661080, %998 ], [ %.691083, %1031 ], [ %.731087, %1096 ], [ %.741088, %1098 ], [ %54, %1134 ], [ %54, %34 ], [ %54, %34 ], [ %54, %34 ], [ %54, %34 ], [ %54, %34 ], [ %54, %34 ], [ %54, %34 ], [ %.491063.ph, %.loopexit1731 ]
  %.821007 = phi i32 [ 1, %91 ], [ %52, %34 ], [ 1, %100 ], [ %192, %184 ], [ %.22947, %220 ], [ %.24949, %227 ], [ %.8933, %246 ], [ %.36961, %._crit_edge1775 ], [ 0, %629 ], [ %.38963, %676 ], [ %.52977, %777 ], [ %.66991, %998 ], [ %.69994, %1031 ], [ %.74999, %1096 ], [ %.751000, %1098 ], [ %52, %1134 ], [ %52, %34 ], [ %52, %34 ], [ %52, %34 ], [ %52, %34 ], [ %52, %34 ], [ %52, %34 ], [ %52, %34 ], [ 0, %.loopexit1731 ]
  %.79924 = phi i32 [ %.1846, %91 ], [ %50, %34 ], [ %.1846, %100 ], [ %.11856, %184 ], [ %.21866, %220 ], [ %.23868, %227 ], [ %.7852, %246 ], [ %.35880, %._crit_edge1775 ], [ 16, %629 ], [ %.37882, %676 ], [ %.51896, %777 ], [ %.64909, %998 ], [ %.67912, %1031 ], [ %.71916, %1096 ], [ %.72917, %1098 ], [ %50, %1134 ], [ %50, %34 ], [ %50, %34 ], [ %50, %34 ], [ %50, %34 ], [ %50, %34 ], [ %50, %34 ], [ %50, %34 ], [ %.47892.ph, %.loopexit1731 ]
  %.84 = phi i32 [ %.1843, %91 ], [ %.84.fr1955, %34 ], [ %.1843, %100 ], [ %.11, %184 ], [ %.22, %220 ], [ %.24, %227 ], [ %128, %246 ], [ %.36, %._crit_edge1775 ], [ %621, %629 ], [ %.38, %676 ], [ %.53, %777 ], [ %.68, %998 ], [ %.71, %1031 ], [ 0, %1096 ], [ %.77, %1098 ], [ %.84.fr1955, %1134 ], [ %.84.fr1955, %34 ], [ %.84.fr1955, %34 ], [ %.84.fr1955, %34 ], [ %.84.fr1955, %34 ], [ %.84.fr1955, %34 ], [ %.84.fr1955, %34 ], [ %.84.fr1955, %34 ], [ %839, %.loopexit1731 ]
  %.0839 = phi i32 [ -1, %91 ], [ -1, %34 ], [ -1, %100 ], [ -1, %184 ], [ 2, %220 ], [ 2, %227 ], [ -1, %246 ], [ -1, %._crit_edge1775 ], [ -1, %629 ], [ -1, %676 ], [ 2, %777 ], [ -1, %998 ], [ 2, %1031 ], [ 0, %1096 ], [ 0, %1098 ], [ 0, %1134 ], [ -1, %34 ], [ -1, %34 ], [ -1, %34 ], [ -1, %34 ], [ -1, %34 ], [ -1, %34 ], [ -1, %34 ], [ -1, %.loopexit1731 ]
  store i32 %.sink, ptr %0, align 8, !tbaa !19
  %.84.fr = freeze i32 %.84
  %1135 = icmp ugt ptr %.831271, %1
  %1136 = icmp ugt i32 %.84.fr, 7
  %1137 = and i1 %1135, %1136
  br i1 %1137, label %.lr.ph1811.preheader, label %.thread

.lr.ph1811.preheader:                             ; preds = %.loopexit2100
  %.8312711900 = ptrtoint ptr %.831271 to i64
  %1138 = add i32 %.84.fr, -8
  %1139 = lshr i32 %1138, 3
  %1140 = zext nneg i32 %1139 to i64
  %1141 = xor i64 %8, -1
  %1142 = add i64 %1141, %.8312711900
  %umin1901 = tail call i64 @llvm.umin.i64(i64 %1140, i64 %1142)
  %1143 = xor i64 %umin1901, -1
  %scevgep1902 = getelementptr i8, ptr %.831271, i64 %1143
  %1144 = trunc nuw nsw i64 %umin1901 to i32
  %1145 = shl nuw i32 %1144, 3
  %1146 = sub i32 %1138, %1145
  br label %.thread

.thread:                                          ; preds = %34, %.lr.ph1811.preheader, %.loopexit2100, %1121, %1104, %1075, %979, %918, %864, %725, %640, %571, %296, %260, %230, %204, %173, %154, %132, %103, %73, %65
  %.08391675 = phi i32 [ %spec.select1712, %1121 ], [ %spec.select1710, %1104 ], [ %spec.select1708, %1075 ], [ %spec.select1680, %103 ], [ %spec.select1682, %132 ], [ %spec.select1684, %154 ], [ %spec.select1686, %173 ], [ %spec.select1688, %204 ], [ %spec.select1690, %230 ], [ %spec.select1698, %640 ], [ %spec.select1696, %571 ], [ %spec.select1692, %260 ], [ %spec.select1694, %296 ], [ %spec.select1702, %864 ], [ %spec.select1706, %979 ], [ %spec.select1704, %918 ], [ %spec.select1700, %725 ], [ %spec.select1678, %73 ], [ %spec.select1676, %65 ], [ %.0839, %.loopexit2100 ], [ %.0839, %.lr.ph1811.preheader ], [ -1, %34 ]
  %.799241673 = phi i32 [ %.76921, %1121 ], [ %.74919.ph, %1104 ], [ %50, %1075 ], [ %.6851.ph, %103 ], [ %50, %132 ], [ %.13858.ph, %154 ], [ %.15860, %173 ], [ %.20865.ph, %204 ], [ %.24869, %230 ], [ %.42887.ph, %640 ], [ %.39884, %571 ], [ %.28873.ph, %260 ], [ %.32877.ph, %296 ], [ %.56901.ph, %864 ], [ %.62907.ph, %979 ], [ %.60905, %918 ], [ %.49894, %725 ], [ %.1846, %73 ], [ %.0845, %65 ], [ %.79924, %.loopexit2100 ], [ %.79924, %.lr.ph1811.preheader ], [ %50, %34 ]
  %.8210071672 = phi i32 [ %.791004, %1121 ], [ %.771002.ph, %1104 ], [ %52, %1075 ], [ %.7932.ph, %103 ], [ %52, %132 ], [ %.13938.ph, %154 ], [ %.15940, %173 ], [ %.20945.ph, %204 ], [ %.25950, %230 ], [ %.44969.ph, %640 ], [ %.40965, %571 ], [ %.29954.ph, %260 ], [ %.33958.ph, %296 ], [ %.57982.ph, %864 ], [ %.64989.ph, %979 ], [ %.61986, %918 ], [ %.51976, %725 ], [ %.1926, %73 ], [ %.0925, %65 ], [ %.821007, %.loopexit2100 ], [ %.821007, %.lr.ph1811.preheader ], [ %52, %34 ]
  %.8110951671 = phi i32 [ %.781092, %1121 ], [ %.761090.ph, %1104 ], [ %54, %1075 ], [ %.61020.ph, %103 ], [ %54, %132 ], [ %.131027.ph, %154 ], [ %.151029, %173 ], [ %.201034.ph, %204 ], [ %.251039, %230 ], [ %.441058.ph, %640 ], [ %.401054, %571 ], [ %.291043.ph, %260 ], [ %.331047.ph, %296 ], [ %.581072.ph, %864 ], [ %.641078.ph, %979 ], [ %.621076, %918 ], [ %.511065, %725 ], [ %.11015, %73 ], [ %.01014, %65 ], [ %.811095, %.loopexit2100 ], [ %.811095, %.lr.ph1811.preheader ], [ %54, %34 ]
  %.8311791670 = phi i64 [ %.801176, %1121 ], [ %.781174, %1104 ], [ %48, %1075 ], [ %.61102.lcssa, %103 ], [ %48, %132 ], [ %.131109, %154 ], [ %.151111, %173 ], [ %.201116, %204 ], [ %.251121, %230 ], [ %.441140, %640 ], [ %.401136, %571 ], [ %.291125, %260 ], [ %.331129.lcssa, %296 ], [ %.591155, %864 ], [ %.661162, %979 ], [ %.631159, %918 ], [ %.511147, %725 ], [ %.11097, %73 ], [ %.01096, %65 ], [ %.831179, %.loopexit2100 ], [ %.831179, %.lr.ph1811.preheader ], [ %48, %34 ]
  %.8013611669 = phi ptr [ %.771358, %1121 ], [ %.751356.ph, %1104 ], [ %4, %1075 ], [ %.21283.ph, %103 ], [ %4, %132 ], [ %.91290.ph, %154 ], [ %.111292, %173 ], [ %.161297.ph, %204 ], [ %.211302, %230 ], [ %.401321.ph, %640 ], [ %.361317, %571 ], [ %.251306.ph, %260 ], [ %.291310.ph, %296 ], [ %.541335.ph, %864 ], [ %.611342.ph, %979 ], [ %.581339, %918 ], [ %.471328, %725 ], [ %4, %73 ], [ %4, %65 ], [ %.801361, %.loopexit2100 ], [ %.801361, %.lr.ph1811.preheader ], [ %4, %34 ]
  %.7614381668 = phi i64 [ %.731435, %1121 ], [ %.711433.ph, %1104 ], [ %56, %1075 ], [ %.21364.ph, %103 ], [ %56, %132 ], [ %.91371.ph, %154 ], [ %.111373, %173 ], [ %.161378.ph, %204 ], [ %.211383, %230 ], [ %.401402.ph, %640 ], [ %.361398, %571 ], [ %.251387.ph, %260 ], [ %.291391.ph, %296 ], [ %.541416.ph, %864 ], [ %.611423.ph, %979 ], [ %.581420, %918 ], [ %.471409, %725 ], [ %56, %73 ], [ %56, %65 ], [ %.761438, %.loopexit2100 ], [ %.761438, %.lr.ph1811.preheader ], [ %56, %34 ]
  %.851273 = phi ptr [ %.801268, %1121 ], [ %.781266, %1104 ], [ %1, %1075 ], [ %.51193.lcssa, %103 ], [ %1, %132 ], [ %.121200, %154 ], [ %.141202, %173 ], [ %.191207, %204 ], [ %.241212, %230 ], [ %.431231, %640 ], [ %.391227, %571 ], [ %.281216, %260 ], [ %.321220.lcssa, %296 ], [ %.581246, %864 ], [ %.651253, %979 ], [ %.621250, %918 ], [ %.501238, %725 ], [ %.01188, %73 ], [ %1, %65 ], [ %.831271, %.loopexit2100 ], [ %scevgep1902, %.lr.ph1811.preheader ], [ %1, %34 ]
  %.86 = phi i32 [ %.81, %1121 ], [ %.79, %1104 ], [ %.84.fr1955, %1075 ], [ %.6.lcssa, %103 ], [ %.84.fr1955, %132 ], [ %.13, %154 ], [ %.15, %173 ], [ %.20, %204 ], [ %.25, %230 ], [ %.44, %640 ], [ %.40, %571 ], [ %.29, %260 ], [ %.33.lcssa, %296 ], [ %.59, %864 ], [ %.66, %979 ], [ %.63, %918 ], [ %.51, %725 ], [ %.1843, %73 ], [ %.0842, %65 ], [ %.84.fr, %.loopexit2100 ], [ %1146, %.lr.ph1811.preheader ], [ %.84.fr1955, %34 ]
  store i32 %.86, ptr %45, align 4, !tbaa !11
  %1147 = zext nneg i32 %.86 to i64
  %1148 = shl nsw i64 -1, %1147
  %1149 = xor i64 %1148, -1
  %1150 = and i64 %.8311791670, %1149
  store i64 %1150, ptr %47, align 8, !tbaa !14
  store i32 %.799241673, ptr %49, align 8, !tbaa !15
  store i32 %.8210071672, ptr %51, align 4, !tbaa !16
  store i32 %.8110951671, ptr %53, align 8, !tbaa !17
  store i64 %.7614381668, ptr %55, align 8, !tbaa !18
  %1151 = ptrtoint ptr %.851273 to i64
  %1152 = sub i64 %1151, %8
  store i64 %1152, ptr %2, align 8, !tbaa !5
  %1153 = ptrtoint ptr %.8013611669 to i64
  %1154 = ptrtoint ptr %4 to i64
  %1155 = sub i64 %1153, %1154
  store i64 %1155, ptr %5, align 8, !tbaa !5
  %1156 = and i32 %6, 9
  %1157 = icmp ne i32 %1156, 0
  %1158 = icmp sgt i32 %.08391675, -1
  %or.cond11 = and i1 %1157, %1158
  br i1 %or.cond11, label %1159, label %1252

1159:                                             ; preds = %.thread
  %1160 = getelementptr inbounds i8, ptr %0, i64 28
  %1161 = load i32, ptr %1160, align 4, !tbaa !24
  %1162 = and i32 %1161, 65535
  %1163 = lshr i32 %1161, 16
  %.not16261832 = icmp eq i64 %1155, 0
  br i1 %.not16261832, label %._crit_edge1838, label %.preheader1718.preheader

.preheader1718.preheader:                         ; preds = %1159
  %1164 = urem i64 %1155, 5552
  br label %.preheader1718

.preheader1718:                                   ; preds = %.preheader1718.preheader, %._crit_edge1828
  %.01837 = phi i64 [ 5552, %._crit_edge1828 ], [ %1164, %.preheader1718.preheader ]
  %.08271836 = phi i32 [ %1242, %._crit_edge1828 ], [ %1163, %.preheader1718.preheader ]
  %.08281835 = phi i32 [ %1241, %._crit_edge1828 ], [ %1162, %.preheader1718.preheader ]
  %.08331834 = phi i64 [ %1243, %._crit_edge1828 ], [ %1155, %.preheader1718.preheader ]
  %.08341833 = phi ptr [ %.2836.lcssa, %._crit_edge1828 ], [ %4, %.preheader1718.preheader ]
  %1165 = icmp ugt i64 %.01837, 7
  br i1 %1165, label %.lr.ph1818.preheader, label %.preheader

.lr.ph1818.preheader:                             ; preds = %.preheader1718
  %1166 = trunc nuw nsw i64 %.01837 to i32
  br label %.lr.ph1818

.preheader:                                       ; preds = %.lr.ph1818, %.preheader1718
  %.1835.lcssa = phi ptr [ %.08341833, %.preheader1718 ], [ %1218, %.lr.ph1818 ]
  %.0831.lcssa = phi i32 [ 0, %.preheader1718 ], [ %1217, %.lr.ph1818 ]
  %.1829.lcssa = phi i32 [ %.08281835, %.preheader1718 ], [ %1215, %.lr.ph1818 ]
  %.1.lcssa = phi i32 [ %.08271836, %.preheader1718 ], [ %1216, %.lr.ph1818 ]
  %1167 = zext i32 %.0831.lcssa to i64
  %1168 = icmp ugt i64 %.01837, %1167
  br i1 %1168, label %.lr.ph1827.preheader, label %._crit_edge1828

.lr.ph1827.preheader:                             ; preds = %.preheader
  %1169 = sub nsw i64 %.01837, %1167
  %1170 = sub nsw i64 %.01837, %1167
  %xtraiter2157 = and i64 %1170, 3
  %lcmp.mod2158.not = icmp eq i64 %xtraiter2157, 0
  br i1 %lcmp.mod2158.not, label %.lr.ph1827.prol.loopexit, label %.lr.ph1827.prol

.lr.ph1827.prol:                                  ; preds = %.lr.ph1827.preheader, %.lr.ph1827.prol
  %indvars.iv1903.prol = phi i64 [ %indvars.iv.next1904.prol, %.lr.ph1827.prol ], [ %1167, %.lr.ph1827.preheader ]
  %.21826.prol = phi i32 [ %1175, %.lr.ph1827.prol ], [ %.1.lcssa, %.lr.ph1827.preheader ]
  %.28301825.prol = phi i32 [ %1174, %.lr.ph1827.prol ], [ %.1829.lcssa, %.lr.ph1827.preheader ]
  %.28361823.prol = phi ptr [ %1171, %.lr.ph1827.prol ], [ %.1835.lcssa, %.lr.ph1827.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1827.prol ], [ 0, %.lr.ph1827.preheader ]
  %1171 = getelementptr inbounds i8, ptr %.28361823.prol, i64 1
  %1172 = load i8, ptr %.28361823.prol, align 1, !tbaa !26
  %1173 = zext i8 %1172 to i32
  %1174 = add i32 %.28301825.prol, %1173
  %1175 = add i32 %1174, %.21826.prol
  %indvars.iv.next1904.prol = add nuw nsw i64 %indvars.iv1903.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter2157
  br i1 %prol.iter.cmp.not, label %.lr.ph1827.prol.loopexit, label %.lr.ph1827.prol, !llvm.loop !92

.lr.ph1827.prol.loopexit:                         ; preds = %.lr.ph1827.prol, %.lr.ph1827.preheader
  %.lcssa2014.unr = phi i32 [ poison, %.lr.ph1827.preheader ], [ %1174, %.lr.ph1827.prol ]
  %.lcssa2013.unr = phi i32 [ poison, %.lr.ph1827.preheader ], [ %1175, %.lr.ph1827.prol ]
  %indvars.iv1903.unr = phi i64 [ %1167, %.lr.ph1827.preheader ], [ %indvars.iv.next1904.prol, %.lr.ph1827.prol ]
  %.21826.unr = phi i32 [ %.1.lcssa, %.lr.ph1827.preheader ], [ %1175, %.lr.ph1827.prol ]
  %.28301825.unr = phi i32 [ %.1829.lcssa, %.lr.ph1827.preheader ], [ %1174, %.lr.ph1827.prol ]
  %.28361823.unr = phi ptr [ %.1835.lcssa, %.lr.ph1827.preheader ], [ %1171, %.lr.ph1827.prol ]
  %1176 = sub nsw i64 %1167, %.01837
  %1177 = icmp ugt i64 %1176, -4
  br i1 %1177, label %._crit_edge1828.loopexit, label %.lr.ph1827

.lr.ph1818:                                       ; preds = %.lr.ph1818.preheader, %.lr.ph1818
  %.11817 = phi i32 [ %1216, %.lr.ph1818 ], [ %.08271836, %.lr.ph1818.preheader ]
  %.18291816 = phi i32 [ %1215, %.lr.ph1818 ], [ %.08281835, %.lr.ph1818.preheader ]
  %.08311815 = phi i32 [ %1217, %.lr.ph1818 ], [ 0, %.lr.ph1818.preheader ]
  %.18351814 = phi ptr [ %1218, %.lr.ph1818 ], [ %.08341833, %.lr.ph1818.preheader ]
  %1178 = load i8, ptr %.18351814, align 1, !tbaa !26
  %1179 = zext i8 %1178 to i32
  %1180 = add i32 %.18291816, %1179
  %1181 = add i32 %1180, %.11817
  %1182 = getelementptr inbounds i8, ptr %.18351814, i64 1
  %1183 = load i8, ptr %1182, align 1, !tbaa !26
  %1184 = zext i8 %1183 to i32
  %1185 = add i32 %1180, %1184
  %1186 = add i32 %1181, %1185
  %1187 = getelementptr inbounds i8, ptr %.18351814, i64 2
  %1188 = load i8, ptr %1187, align 1, !tbaa !26
  %1189 = zext i8 %1188 to i32
  %1190 = add i32 %1185, %1189
  %1191 = add i32 %1186, %1190
  %1192 = getelementptr inbounds i8, ptr %.18351814, i64 3
  %1193 = load i8, ptr %1192, align 1, !tbaa !26
  %1194 = zext i8 %1193 to i32
  %1195 = add i32 %1190, %1194
  %1196 = add i32 %1191, %1195
  %1197 = getelementptr inbounds i8, ptr %.18351814, i64 4
  %1198 = load i8, ptr %1197, align 1, !tbaa !26
  %1199 = zext i8 %1198 to i32
  %1200 = add i32 %1195, %1199
  %1201 = add i32 %1196, %1200
  %1202 = getelementptr inbounds i8, ptr %.18351814, i64 5
  %1203 = load i8, ptr %1202, align 1, !tbaa !26
  %1204 = zext i8 %1203 to i32
  %1205 = add i32 %1200, %1204
  %1206 = add i32 %1201, %1205
  %1207 = getelementptr inbounds i8, ptr %.18351814, i64 6
  %1208 = load i8, ptr %1207, align 1, !tbaa !26
  %1209 = zext i8 %1208 to i32
  %1210 = add i32 %1205, %1209
  %1211 = add i32 %1206, %1210
  %1212 = getelementptr inbounds i8, ptr %.18351814, i64 7
  %1213 = load i8, ptr %1212, align 1, !tbaa !26
  %1214 = zext i8 %1213 to i32
  %1215 = add i32 %1210, %1214
  %1216 = add i32 %1211, %1215
  %1217 = add nuw i32 %.08311815, 8
  %1218 = getelementptr inbounds i8, ptr %.18351814, i64 8
  %1219 = or disjoint i32 %1217, 7
  %1220 = icmp ult i32 %1219, %1166
  br i1 %1220, label %.lr.ph1818, label %.preheader, !llvm.loop !93

.lr.ph1827:                                       ; preds = %.lr.ph1827.prol.loopexit, %.lr.ph1827
  %indvars.iv1903 = phi i64 [ %indvars.iv.next1904.3, %.lr.ph1827 ], [ %indvars.iv1903.unr, %.lr.ph1827.prol.loopexit ]
  %.21826 = phi i32 [ %1240, %.lr.ph1827 ], [ %.21826.unr, %.lr.ph1827.prol.loopexit ]
  %.28301825 = phi i32 [ %1239, %.lr.ph1827 ], [ %.28301825.unr, %.lr.ph1827.prol.loopexit ]
  %.28361823 = phi ptr [ %1236, %.lr.ph1827 ], [ %.28361823.unr, %.lr.ph1827.prol.loopexit ]
  %1221 = getelementptr inbounds i8, ptr %.28361823, i64 1
  %1222 = load i8, ptr %.28361823, align 1, !tbaa !26
  %1223 = zext i8 %1222 to i32
  %1224 = add i32 %.28301825, %1223
  %1225 = add i32 %1224, %.21826
  %1226 = getelementptr inbounds i8, ptr %.28361823, i64 2
  %1227 = load i8, ptr %1221, align 1, !tbaa !26
  %1228 = zext i8 %1227 to i32
  %1229 = add i32 %1224, %1228
  %1230 = add i32 %1229, %1225
  %1231 = getelementptr inbounds i8, ptr %.28361823, i64 3
  %1232 = load i8, ptr %1226, align 1, !tbaa !26
  %1233 = zext i8 %1232 to i32
  %1234 = add i32 %1229, %1233
  %1235 = add i32 %1234, %1230
  %1236 = getelementptr inbounds i8, ptr %.28361823, i64 4
  %1237 = load i8, ptr %1231, align 1, !tbaa !26
  %1238 = zext i8 %1237 to i32
  %1239 = add i32 %1234, %1238
  %1240 = add i32 %1239, %1235
  %indvars.iv.next1904.3 = add nuw nsw i64 %indvars.iv1903, 4
  %exitcond1907.not.3 = icmp eq i64 %indvars.iv.next1904.3, %.01837
  br i1 %exitcond1907.not.3, label %._crit_edge1828.loopexit, label %.lr.ph1827, !llvm.loop !94

._crit_edge1828.loopexit:                         ; preds = %.lr.ph1827, %.lr.ph1827.prol.loopexit
  %.lcssa2014 = phi i32 [ %.lcssa2014.unr, %.lr.ph1827.prol.loopexit ], [ %1239, %.lr.ph1827 ]
  %.lcssa2013 = phi i32 [ %.lcssa2013.unr, %.lr.ph1827.prol.loopexit ], [ %1240, %.lr.ph1827 ]
  %scevgep1905 = getelementptr i8, ptr %.1835.lcssa, i64 %1169
  br label %._crit_edge1828

._crit_edge1828:                                  ; preds = %._crit_edge1828.loopexit, %.preheader
  %.2836.lcssa = phi ptr [ %.1835.lcssa, %.preheader ], [ %scevgep1905, %._crit_edge1828.loopexit ]
  %.2830.lcssa = phi i32 [ %.1829.lcssa, %.preheader ], [ %.lcssa2014, %._crit_edge1828.loopexit ]
  %.2.lcssa = phi i32 [ %.1.lcssa, %.preheader ], [ %.lcssa2013, %._crit_edge1828.loopexit ]
  %1241 = urem i32 %.2830.lcssa, 65521
  %1242 = urem i32 %.2.lcssa, 65521
  %1243 = sub i64 %.08331834, %.01837
  %.not1626 = icmp eq i64 %1243, 0
  br i1 %.not1626, label %._crit_edge1838, label %.preheader1718, !llvm.loop !95

._crit_edge1838:                                  ; preds = %._crit_edge1828, %1159
  %.0828.lcssa = phi i32 [ %1162, %1159 ], [ %1241, %._crit_edge1828 ]
  %.0827.lcssa = phi i32 [ %1163, %1159 ], [ %1242, %._crit_edge1828 ]
  %1244 = shl nuw i32 %.0827.lcssa, 16
  %1245 = or disjoint i32 %1244, %.0828.lcssa
  store i32 %1245, ptr %1160, align 4, !tbaa !24
  %1246 = icmp eq i32 %.08391675, 0
  br i1 %1246, label %1247, label %1252

1247:                                             ; preds = %._crit_edge1838
  %1248 = and i32 %6, 1
  %.not1627 = icmp eq i32 %1248, 0
  br i1 %.not1627, label %1252, label %1249

1249:                                             ; preds = %1247
  %1250 = getelementptr inbounds i8, ptr %0, i64 16
  %1251 = load i32, ptr %1250, align 8, !tbaa !25
  %.not1628 = icmp eq i32 %1245, %1251
  %spec.select = select i1 %.not1628, i32 0, i32 -2
  br label %1252

1252:                                             ; preds = %1249, %.thread, %1247, %._crit_edge1838, %33
  %.0837 = phi i32 [ -3, %33 ], [ %.08391675, %.thread ], [ 0, %1247 ], [ %.08391675, %._crit_edge1838 ], [ %spec.select, %1249 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  ret i32 %.0837
}

; 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) #3

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

; Function Attrs: nounwind uwtable
declare hidden void @tinfl_clear_tree(ptr noundef) local_unnamed_addr #2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress 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 = { mustprogress 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }
attributes #7 = { 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, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !13, i64 4}
!12 = !{!"tinfl_decompressor_tag", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !7, i64 44, !6, i64 56, !6, i64 64, !7, i64 72, !7, i64 6216, !7, i64 7368, !7, i64 7496, !7, i64 7572, !7, i64 7860, !7, i64 7892, !7, i64 7911, !7, i64 7915}
!13 = !{!"int", !7, i64 0}
!14 = !{!12, !6, i64 56}
!15 = !{!12, !13, i64 32}
!16 = !{!12, !13, i64 36}
!17 = !{!12, !13, i64 40}
!18 = !{!12, !6, i64 64}
!19 = !{!12, !13, i64 0}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = !{!12, !13, i64 12}
!23 = !{!12, !13, i64 8}
!24 = !{!12, !13, i64 28}
!25 = !{!12, !13, i64 16}
!26 = !{!7, !7, i64 0}
!27 = distinct !{!27, !21}
!28 = distinct !{!28, !21}
!29 = distinct !{!29, !21}
!30 = !{!12, !13, i64 20}
!31 = !{!12, !13, i64 24}
!32 = distinct !{!32, !21}
!33 = distinct !{!33, !21}
!34 = distinct !{!34, !21}
!35 = distinct !{!35, !21}
!36 = distinct !{!36, !21}
!37 = distinct !{!37, !21}
!38 = distinct !{!38, !21}
!39 = distinct !{!39, !21}
!40 = distinct !{!40, !21}
!41 = distinct !{!41, !21}
!42 = distinct !{!42, !21}
!43 = !{!13, !13, i64 0}
!44 = distinct !{!44, !21}
!45 = distinct !{!45, !21}
!46 = !{!47, !47, i64 0}
!47 = !{!"short", !7, i64 0}
!48 = distinct !{!48, !21}
!49 = distinct !{!49, !21}
!50 = distinct !{!50, !21}
!51 = distinct !{!51, !21}
!52 = distinct !{!52, !21}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.unroll.disable"}
!55 = distinct !{!55, !21}
!56 = distinct !{!56, !54}
!57 = distinct !{!57, !21, !58}
!58 = !{!"llvm.loop.isvectorized", i32 1}
!59 = distinct !{!59, !21}
!60 = distinct !{!60, !21}
!61 = distinct !{!61, !21}
!62 = distinct !{!62, !21}
!63 = distinct !{!63, !21}
!64 = distinct !{!64, !21}
!65 = distinct !{!65, !21}
!66 = distinct !{!66, !21}
!67 = distinct !{!67, !21}
!68 = distinct !{!68, !21}
!69 = distinct !{!69, !21}
!70 = distinct !{!70, !21}
!71 = distinct !{!71, !21}
!72 = distinct !{!72, !21}
!73 = distinct !{!73, !21}
!74 = distinct !{!74, !21}
!75 = distinct !{!75, !21}
!76 = distinct !{!76, !21}
!77 = distinct !{!77, !21}
!78 = distinct !{!78, !21}
!79 = distinct !{!79, !21}
!80 = distinct !{!80, !21}
!81 = distinct !{!81, !21}
!82 = distinct !{!82, !21}
!83 = distinct !{!83, !21}
!84 = distinct !{!84, !21}
!85 = distinct !{!85, !21}
!86 = distinct !{!86, !21}
!87 = distinct !{!87, !21}
!88 = distinct !{!88, !21}
!89 = distinct !{!89, !21}
!90 = distinct !{!90, !21}
!91 = distinct !{!91, !21}
!92 = distinct !{!92, !54}
!93 = distinct !{!93, !21}
!94 = distinct !{!94, !21}
!95 = distinct !{!95, !21}


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