; LLVM IR from facebook/hermes :: external/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 %struct.tinfl_huff_table], [4 x i8], [457 x i8] }
%struct.tinfl_huff_table = type { [288 x i8], [1024 x i16], [576 x i16] }

@tinfl_decompress.s_length_base = external hidden constant [31 x i32], align 16
@tinfl_decompress.s_length_extra = external hidden constant [31 x i32], align 16
@tinfl_decompress.s_dist_base = external hidden constant [32 x i32], align 16
@tinfl_decompress.s_dist_extra = external hidden constant [32 x i32], align 16
@tinfl_decompress.s_length_dezigzag = external hidden constant [19 x i8], align 16
@tinfl_decompress.s_min_table_sizes = external hidden constant [3 x i32], align 4
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

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

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

95:                                               ; preds = %7
  br label %106

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

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

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

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

120:                                              ; preds = %113
  %121 = load ptr, ptr %9, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %121, i32 0, i32 1
  %123 = load i32, ptr %122, align 4, !tbaa !13
  store i32 %123, ptr %17, align 4, !tbaa !9
  %124 = load ptr, ptr %9, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %124, i32 0, i32 12
  %126 = load i64, ptr %125, align 8, !tbaa !16
  store i64 %126, ptr %21, align 8, !tbaa !17
  %127 = load ptr, ptr %9, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %127, i32 0, i32 8
  %129 = load i32, ptr %128, align 8, !tbaa !18
  store i32 %129, ptr %18, align 4, !tbaa !9
  %130 = load ptr, ptr %9, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %130, i32 0, i32 9
  %132 = load i32, ptr %131, align 4, !tbaa !19
  store i32 %132, ptr %19, align 4, !tbaa !9
  %133 = load ptr, ptr %9, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %133, i32 0, i32 10
  %135 = load i32, ptr %134, align 8, !tbaa !20
  store i32 %135, ptr %20, align 4, !tbaa !9
  %136 = load ptr, ptr %9, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %136, i32 0, i32 13
  %138 = load i64, ptr %137, align 8, !tbaa !21
  store i64 %138, ptr %27, align 8, !tbaa !11
  %139 = load ptr, ptr %9, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %139, i32 0, i32 0
  %141 = load i32, ptr %140, align 8, !tbaa !22
  switch i32 %141, label %2943 [
    i32 0, label %142
    i32 1, label %168
    i32 2, label %210
    i32 36, label %300
    i32 3, label %326
    i32 5, label %405
    i32 6, label %480
    i32 7, label %545
    i32 39, label %618
    i32 51, label %651
    i32 52, label %705
    i32 9, label %728
    i32 38, label %744
    i32 40, label %753
    i32 10, label %844
    i32 11, label %939
    i32 14, label %1059
    i32 35, label %1206
    i32 16, label %1477
    i32 17, label %1610
    i32 18, label %1641
    i32 21, label %1747
    i32 23, label %1894
    i32 24, label %2016
    i32 25, label %2195
    i32 26, label %2339
    i32 27, label %2479
    i32 37, label %2556
    i32 53, label %2598
    i32 32, label %2761
    i32 41, label %2836
    i32 42, label %2896
    i32 34, label %2938
  ]

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

154:                                              ; preds = %142
  br label %155

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

159:                                              ; preds = %155
  br label %160

160:                                              ; preds = %185, %159
  %161 = load i32, ptr %15, align 4, !tbaa !9
  %162 = and i32 %161, 2
  %163 = icmp ne i32 %162, 0
  br i1 %163, label %164, label %182

164:                                              ; preds = %160
  br label %165

165:                                              ; preds = %164
  store i32 1, ptr %16, 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 0
  store i32 1, ptr %167, align 8, !tbaa !22
  br label %2944

168:                                              ; preds = %120
  br label %169

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169
  %171 = load ptr, ptr %22, align 8, !tbaa !5
  %172 = load ptr, ptr %23, align 8, !tbaa !5
  %173 = icmp ult ptr %171, %172
  br i1 %173, label %174, label %181

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

181:                                              ; preds = %170
  br label %185

182:                                              ; preds = %160
  %183 = load ptr, ptr %9, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %183, i32 0, i32 2
  store i32 0, ptr %184, align 8, !tbaa !24
  br label %186

185:                                              ; preds = %181
  br label %160

186:                                              ; preds = %182, %174
  br label %194

187:                                              ; preds = %155
  %188 = load ptr, ptr %22, align 8, !tbaa !5
  %189 = getelementptr inbounds i8, ptr %188, i32 1
  store ptr %189, ptr %22, align 8, !tbaa !5
  %190 = load i8, ptr %188, align 1, !tbaa !27
  %191 = zext i8 %190 to i32
  %192 = load ptr, ptr %9, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %192, i32 0, i32 2
  store i32 %191, ptr %193, align 8, !tbaa !24
  br label %194

194:                                              ; preds = %187, %186
  br label %195

195:                                              ; preds = %194
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  %198 = load ptr, ptr %22, align 8, !tbaa !5
  %199 = load ptr, ptr %23, align 8, !tbaa !5
  %200 = icmp uge ptr %198, %199
  br i1 %200, label %201, label %229

201:                                              ; preds = %197
  br label %202

202:                                              ; preds = %227, %201
  %203 = load i32, ptr %15, align 4, !tbaa !9
  %204 = and i32 %203, 2
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %206, label %224

206:                                              ; preds = %202
  br label %207

207:                                              ; preds = %206
  store i32 1, ptr %16, align 4, !tbaa !9
  %208 = load ptr, ptr %9, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %208, i32 0, i32 0
  store i32 2, ptr %209, align 8, !tbaa !22
  br label %2944

210:                                              ; preds = %120
  br label %211

211:                                              ; preds = %210
  br label %212

212:                                              ; preds = %211
  %213 = load ptr, ptr %22, align 8, !tbaa !5
  %214 = load ptr, ptr %23, align 8, !tbaa !5
  %215 = icmp ult ptr %213, %214
  br i1 %215, label %216, label %223

216:                                              ; preds = %212
  %217 = load ptr, ptr %22, align 8, !tbaa !5
  %218 = getelementptr inbounds i8, ptr %217, i32 1
  store ptr %218, ptr %22, align 8, !tbaa !5
  %219 = load i8, ptr %217, align 1, !tbaa !27
  %220 = zext i8 %219 to i32
  %221 = load ptr, ptr %9, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %221, i32 0, i32 3
  store i32 %220, ptr %222, align 4, !tbaa !23
  br label %228

223:                                              ; preds = %212
  br label %227

224:                                              ; preds = %202
  %225 = load ptr, ptr %9, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %225, i32 0, i32 3
  store i32 0, ptr %226, align 4, !tbaa !23
  br label %228

227:                                              ; preds = %223
  br label %202

228:                                              ; preds = %224, %216
  br label %236

229:                                              ; preds = %197
  %230 = load ptr, ptr %22, align 8, !tbaa !5
  %231 = getelementptr inbounds i8, ptr %230, i32 1
  store ptr %231, ptr %22, align 8, !tbaa !5
  %232 = load i8, ptr %230, align 1, !tbaa !27
  %233 = zext i8 %232 to i32
  %234 = load ptr, ptr %9, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %234, i32 0, i32 3
  store i32 %233, ptr %235, align 4, !tbaa !23
  br label %236

236:                                              ; preds = %229, %228
  br label %237

237:                                              ; preds = %236
  br label %238

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

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

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

261:                                              ; preds = %255, %249, %238
  %262 = phi i1 [ true, %249 ], [ true, %238 ], [ %260, %255 ]
  %263 = zext i1 %262 to i32
  store i32 %263, ptr %19, align 4, !tbaa !9
  %264 = load i32, ptr %15, align 4, !tbaa !9
  %265 = and i32 %264, 4
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %291, label %267

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

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

286:                                              ; preds = %275, %267
  %287 = phi i1 [ true, %267 ], [ %285, %275 ]
  %288 = zext i1 %287 to i32
  %289 = load i32, ptr %19, align 4, !tbaa !9
  %290 = or i32 %289, %288
  store i32 %290, ptr %19, align 4, !tbaa !9
  br label %291

291:                                              ; preds = %286, %261
  %292 = load i32, ptr %19, align 4, !tbaa !9
  %293 = icmp ne i32 %292, 0
  br i1 %293, label %294, label %305

294:                                              ; preds = %291
  br label %295

295:                                              ; preds = %294
  br label %296

296:                                              ; preds = %302, %295
  br label %297

297:                                              ; preds = %296
  store i32 -1, ptr %16, align 4, !tbaa !9
  %298 = load ptr, ptr %9, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %298, i32 0, i32 0
  store i32 36, ptr %299, align 8, !tbaa !22
  br label %2944

300:                                              ; preds = %120
  br label %301

301:                                              ; preds = %300
  br label %302

302:                                              ; preds = %301
  br label %296

303:                                              ; No predecessors!
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304, %291
  br label %306

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

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

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

311:                                              ; preds = %308
  br label %312

312:                                              ; preds = %358, %311
  br label %313

313:                                              ; preds = %312
  %314 = load ptr, ptr %22, align 8, !tbaa !5
  %315 = load ptr, ptr %23, align 8, !tbaa !5
  %316 = icmp uge ptr %314, %315
  br i1 %316, label %317, label %341

317:                                              ; preds = %313
  br label %318

318:                                              ; preds = %339, %317
  %319 = load i32, ptr %15, align 4, !tbaa !9
  %320 = and i32 %319, 2
  %321 = icmp ne i32 %320, 0
  br i1 %321, label %322, label %338

322:                                              ; preds = %318
  br label %323

323:                                              ; preds = %322
  store i32 1, ptr %16, align 4, !tbaa !9
  %324 = load ptr, ptr %9, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %324, i32 0, i32 0
  store i32 3, ptr %325, align 8, !tbaa !22
  br label %2944

326:                                              ; preds = %120
  br label %327

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  %329 = load ptr, ptr %22, align 8, !tbaa !5
  %330 = load ptr, ptr %23, align 8, !tbaa !5
  %331 = icmp ult ptr %329, %330
  br i1 %331, label %332, label %337

332:                                              ; preds = %328
  %333 = load ptr, ptr %22, align 8, !tbaa !5
  %334 = getelementptr inbounds i8, ptr %333, i32 1
  store ptr %334, ptr %22, align 8, !tbaa !5
  %335 = load i8, ptr %333, align 1, !tbaa !27
  %336 = zext i8 %335 to i32
  store i32 %336, ptr %29, align 4, !tbaa !9
  br label %340

337:                                              ; preds = %328
  br label %339

338:                                              ; preds = %318
  store i32 0, ptr %29, align 4, !tbaa !9
  br label %340

339:                                              ; preds = %337
  br label %318

340:                                              ; preds = %338, %332
  br label %346

341:                                              ; preds = %313
  %342 = load ptr, ptr %22, align 8, !tbaa !5
  %343 = getelementptr inbounds i8, ptr %342, i32 1
  store ptr %343, ptr %22, align 8, !tbaa !5
  %344 = load i8, ptr %342, align 1, !tbaa !27
  %345 = zext i8 %344 to i32
  store i32 %345, ptr %29, align 4, !tbaa !9
  br label %346

346:                                              ; preds = %341, %340
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347
  %349 = load i32, ptr %29, align 4, !tbaa !9
  %350 = zext i32 %349 to i64
  %351 = load i32, ptr %17, align 4, !tbaa !9
  %352 = zext i32 %351 to i64
  %353 = shl i64 %350, %352
  %354 = load i64, ptr %21, align 8, !tbaa !17
  %355 = or i64 %354, %353
  store i64 %355, ptr %21, align 8, !tbaa !17
  %356 = load i32, ptr %17, align 4, !tbaa !9
  %357 = add i32 %356, 8
  store i32 %357, ptr %17, align 4, !tbaa !9
  br label %358

358:                                              ; preds = %348
  %359 = load i32, ptr %17, align 4, !tbaa !9
  %360 = icmp ult i32 %359, 3
  br i1 %360, label %312, label %361, !llvm.loop !28

361:                                              ; preds = %358
  br label %362

362:                                              ; preds = %361, %308
  %363 = load i64, ptr %21, align 8, !tbaa !17
  %364 = and i64 %363, 7
  %365 = trunc i64 %364 to i32
  %366 = load ptr, ptr %9, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %366, i32 0, i32 5
  store i32 %365, ptr %367, align 4, !tbaa !30
  %368 = load i64, ptr %21, align 8, !tbaa !17
  %369 = lshr i64 %368, 3
  store i64 %369, ptr %21, align 8, !tbaa !17
  %370 = load i32, ptr %17, align 4, !tbaa !9
  %371 = sub i32 %370, 3
  store i32 %371, ptr %17, align 4, !tbaa !9
  br label %372

372:                                              ; preds = %362
  br label %373

373:                                              ; preds = %372
  %374 = load ptr, ptr %9, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %374, i32 0, i32 5
  %376 = load i32, ptr %375, align 4, !tbaa !30
  %377 = lshr i32 %376, 1
  %378 = load ptr, ptr %9, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %378, i32 0, i32 6
  store i32 %377, ptr %379, align 8, !tbaa !31
  %380 = load ptr, ptr %9, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %380, i32 0, i32 6
  %382 = load i32, ptr %381, align 8, !tbaa !31
  %383 = icmp eq i32 %382, 0
  br i1 %383, label %384, label %833

384:                                              ; preds = %373
  br label %385

385:                                              ; preds = %384
  %386 = load i32, ptr %17, align 4, !tbaa !9
  %387 = load i32, ptr %17, align 4, !tbaa !9
  %388 = and i32 %387, 7
  %389 = icmp ult i32 %386, %388
  br i1 %389, label %390, label %443

390:                                              ; preds = %385
  br label %391

391:                                              ; preds = %437, %390
  br label %392

392:                                              ; preds = %391
  %393 = load ptr, ptr %22, align 8, !tbaa !5
  %394 = load ptr, ptr %23, align 8, !tbaa !5
  %395 = icmp uge ptr %393, %394
  br i1 %395, label %396, label %420

396:                                              ; preds = %392
  br label %397

397:                                              ; preds = %418, %396
  %398 = load i32, ptr %15, align 4, !tbaa !9
  %399 = and i32 %398, 2
  %400 = icmp ne i32 %399, 0
  br i1 %400, label %401, label %417

401:                                              ; preds = %397
  br label %402

402:                                              ; preds = %401
  store i32 1, ptr %16, align 4, !tbaa !9
  %403 = load ptr, ptr %9, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %403, i32 0, i32 0
  store i32 5, ptr %404, align 8, !tbaa !22
  br label %2944

405:                                              ; preds = %120
  br label %406

406:                                              ; preds = %405
  br label %407

407:                                              ; preds = %406
  %408 = load ptr, ptr %22, align 8, !tbaa !5
  %409 = load ptr, ptr %23, align 8, !tbaa !5
  %410 = icmp ult ptr %408, %409
  br i1 %410, label %411, label %416

411:                                              ; preds = %407
  %412 = load ptr, ptr %22, align 8, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %412, i32 1
  store ptr %413, ptr %22, align 8, !tbaa !5
  %414 = load i8, ptr %412, align 1, !tbaa !27
  %415 = zext i8 %414 to i32
  store i32 %415, ptr %30, align 4, !tbaa !9
  br label %419

416:                                              ; preds = %407
  br label %418

417:                                              ; preds = %397
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %419

418:                                              ; preds = %416
  br label %397

419:                                              ; preds = %417, %411
  br label %425

420:                                              ; preds = %392
  %421 = load ptr, ptr %22, align 8, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %421, i32 1
  store ptr %422, ptr %22, align 8, !tbaa !5
  %423 = load i8, ptr %421, align 1, !tbaa !27
  %424 = zext i8 %423 to i32
  store i32 %424, ptr %30, align 4, !tbaa !9
  br label %425

425:                                              ; preds = %420, %419
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  %428 = load i32, ptr %30, align 4, !tbaa !9
  %429 = zext i32 %428 to i64
  %430 = load i32, ptr %17, align 4, !tbaa !9
  %431 = zext i32 %430 to i64
  %432 = shl i64 %429, %431
  %433 = load i64, ptr %21, align 8, !tbaa !17
  %434 = or i64 %433, %432
  store i64 %434, ptr %21, align 8, !tbaa !17
  %435 = load i32, ptr %17, align 4, !tbaa !9
  %436 = add i32 %435, 8
  store i32 %436, ptr %17, align 4, !tbaa !9
  br label %437

437:                                              ; preds = %427
  %438 = load i32, ptr %17, align 4, !tbaa !9
  %439 = load i32, ptr %17, align 4, !tbaa !9
  %440 = and i32 %439, 7
  %441 = icmp ult i32 %438, %440
  br i1 %441, label %391, label %442, !llvm.loop !32

442:                                              ; preds = %437
  br label %443

443:                                              ; preds = %442, %385
  %444 = load i32, ptr %17, align 4, !tbaa !9
  %445 = and i32 %444, 7
  %446 = load i64, ptr %21, align 8, !tbaa !17
  %447 = zext i32 %445 to i64
  %448 = lshr i64 %446, %447
  store i64 %448, ptr %21, align 8, !tbaa !17
  %449 = load i32, ptr %17, align 4, !tbaa !9
  %450 = and i32 %449, 7
  %451 = load i32, ptr %17, align 4, !tbaa !9
  %452 = sub i32 %451, %450
  store i32 %452, ptr %17, align 4, !tbaa !9
  br label %453

453:                                              ; preds = %443
  br label %454

454:                                              ; preds = %453
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %455

455:                                              ; preds = %582, %454
  %456 = load i32, ptr %19, align 4, !tbaa !9
  %457 = icmp ult i32 %456, 4
  br i1 %457, label %458, label %585

458:                                              ; preds = %455
  %459 = load i32, ptr %17, align 4, !tbaa !9
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %461, label %531

461:                                              ; preds = %458
  br label %462

462:                                              ; preds = %461
  %463 = load i32, ptr %17, align 4, !tbaa !9
  %464 = icmp ult i32 %463, 8
  br i1 %464, label %465, label %516

465:                                              ; preds = %462
  br label %466

466:                                              ; preds = %512, %465
  br label %467

467:                                              ; preds = %466
  %468 = load ptr, ptr %22, align 8, !tbaa !5
  %469 = load ptr, ptr %23, align 8, !tbaa !5
  %470 = icmp uge ptr %468, %469
  br i1 %470, label %471, label %495

471:                                              ; preds = %467
  br label %472

472:                                              ; preds = %493, %471
  %473 = load i32, ptr %15, align 4, !tbaa !9
  %474 = and i32 %473, 2
  %475 = icmp ne i32 %474, 0
  br i1 %475, label %476, label %492

476:                                              ; preds = %472
  br label %477

477:                                              ; preds = %476
  store i32 1, ptr %16, align 4, !tbaa !9
  %478 = load ptr, ptr %9, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %478, i32 0, i32 0
  store i32 6, ptr %479, align 8, !tbaa !22
  br label %2944

480:                                              ; preds = %120
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481
  %483 = load ptr, ptr %22, align 8, !tbaa !5
  %484 = load ptr, ptr %23, align 8, !tbaa !5
  %485 = icmp ult ptr %483, %484
  br i1 %485, label %486, label %491

486:                                              ; preds = %482
  %487 = load ptr, ptr %22, align 8, !tbaa !5
  %488 = getelementptr inbounds i8, ptr %487, i32 1
  store ptr %488, ptr %22, align 8, !tbaa !5
  %489 = load i8, ptr %487, align 1, !tbaa !27
  %490 = zext i8 %489 to i32
  store i32 %490, ptr %31, align 4, !tbaa !9
  br label %494

491:                                              ; preds = %482
  br label %493

492:                                              ; preds = %472
  store i32 0, ptr %31, align 4, !tbaa !9
  br label %494

493:                                              ; preds = %491
  br label %472

494:                                              ; preds = %492, %486
  br label %500

495:                                              ; preds = %467
  %496 = load ptr, ptr %22, align 8, !tbaa !5
  %497 = getelementptr inbounds i8, ptr %496, i32 1
  store ptr %497, ptr %22, align 8, !tbaa !5
  %498 = load i8, ptr %496, align 1, !tbaa !27
  %499 = zext i8 %498 to i32
  store i32 %499, ptr %31, align 4, !tbaa !9
  br label %500

500:                                              ; preds = %495, %494
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr %31, align 4, !tbaa !9
  %504 = zext i32 %503 to i64
  %505 = load i32, ptr %17, align 4, !tbaa !9
  %506 = zext i32 %505 to i64
  %507 = shl i64 %504, %506
  %508 = load i64, ptr %21, align 8, !tbaa !17
  %509 = or i64 %508, %507
  store i64 %509, ptr %21, align 8, !tbaa !17
  %510 = load i32, ptr %17, align 4, !tbaa !9
  %511 = add i32 %510, 8
  store i32 %511, ptr %17, align 4, !tbaa !9
  br label %512

512:                                              ; preds = %502
  %513 = load i32, ptr %17, align 4, !tbaa !9
  %514 = icmp ult i32 %513, 8
  br i1 %514, label %466, label %515, !llvm.loop !33

515:                                              ; preds = %512
  br label %516

516:                                              ; preds = %515, %462
  %517 = load i64, ptr %21, align 8, !tbaa !17
  %518 = and i64 %517, 255
  %519 = trunc i64 %518 to i8
  %520 = load ptr, ptr %9, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %520, i32 0, i32 15
  %522 = load i32, ptr %19, align 4, !tbaa !9
  %523 = zext i32 %522 to i64
  %524 = getelementptr inbounds [4 x i8], ptr %521, i64 0, i64 %523
  store i8 %519, ptr %524, align 1, !tbaa !27
  %525 = load i64, ptr %21, align 8, !tbaa !17
  %526 = lshr i64 %525, 8
  store i64 %526, ptr %21, align 8, !tbaa !17
  %527 = load i32, ptr %17, align 4, !tbaa !9
  %528 = sub i32 %527, 8
  store i32 %528, ptr %17, align 4, !tbaa !9
  br label %529

529:                                              ; preds = %516
  br label %530

530:                                              ; preds = %529
  br label %581

531:                                              ; preds = %458
  br label %532

532:                                              ; preds = %531
  %533 = load ptr, ptr %22, align 8, !tbaa !5
  %534 = load ptr, ptr %23, align 8, !tbaa !5
  %535 = icmp uge ptr %533, %534
  br i1 %535, label %536, label %569

536:                                              ; preds = %532
  br label %537

537:                                              ; preds = %567, %536
  %538 = load i32, ptr %15, align 4, !tbaa !9
  %539 = and i32 %538, 2
  %540 = icmp ne i32 %539, 0
  br i1 %540, label %541, label %561

541:                                              ; preds = %537
  br label %542

542:                                              ; preds = %541
  store i32 1, ptr %16, align 4, !tbaa !9
  %543 = load ptr, ptr %9, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %543, i32 0, i32 0
  store i32 7, ptr %544, align 8, !tbaa !22
  br label %2944

545:                                              ; preds = %120
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546
  %548 = load ptr, ptr %22, align 8, !tbaa !5
  %549 = load ptr, ptr %23, align 8, !tbaa !5
  %550 = icmp ult ptr %548, %549
  br i1 %550, label %551, label %560

551:                                              ; preds = %547
  %552 = load ptr, ptr %22, align 8, !tbaa !5
  %553 = getelementptr inbounds i8, ptr %552, i32 1
  store ptr %553, ptr %22, align 8, !tbaa !5
  %554 = load i8, ptr %552, align 1, !tbaa !27
  %555 = load ptr, ptr %9, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %555, i32 0, i32 15
  %557 = load i32, ptr %19, align 4, !tbaa !9
  %558 = zext i32 %557 to i64
  %559 = getelementptr inbounds [4 x i8], ptr %556, i64 0, i64 %558
  store i8 %554, ptr %559, align 1, !tbaa !27
  br label %568

560:                                              ; preds = %547
  br label %567

561:                                              ; preds = %537
  %562 = load ptr, ptr %9, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %562, i32 0, i32 15
  %564 = load i32, ptr %19, align 4, !tbaa !9
  %565 = zext i32 %564 to i64
  %566 = getelementptr inbounds [4 x i8], ptr %563, i64 0, i64 %565
  store i8 0, ptr %566, align 1, !tbaa !27
  br label %568

567:                                              ; preds = %560
  br label %537

568:                                              ; preds = %561, %551
  br label %578

569:                                              ; preds = %532
  %570 = load ptr, ptr %22, align 8, !tbaa !5
  %571 = getelementptr inbounds i8, ptr %570, i32 1
  store ptr %571, ptr %22, align 8, !tbaa !5
  %572 = load i8, ptr %570, align 1, !tbaa !27
  %573 = load ptr, ptr %9, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %573, i32 0, i32 15
  %575 = load i32, ptr %19, align 4, !tbaa !9
  %576 = zext i32 %575 to i64
  %577 = getelementptr inbounds [4 x i8], ptr %574, i64 0, i64 %576
  store i8 %572, ptr %577, align 1, !tbaa !27
  br label %578

578:                                              ; preds = %569, %568
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  br label %581

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

582:                                              ; preds = %581
  %583 = load i32, ptr %19, align 4, !tbaa !9
  %584 = add i32 %583, 1
  store i32 %584, ptr %19, align 4, !tbaa !9
  br label %455, !llvm.loop !34

585:                                              ; preds = %455
  %586 = load ptr, ptr %9, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %586, i32 0, i32 15
  %588 = getelementptr inbounds [4 x i8], ptr %587, i64 0, i64 0
  %589 = load i8, ptr %588, align 8, !tbaa !27
  %590 = zext i8 %589 to i32
  %591 = load ptr, ptr %9, align 8, !tbaa !5
  %592 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %591, i32 0, i32 15
  %593 = getelementptr inbounds [4 x i8], ptr %592, i64 0, i64 1
  %594 = load i8, ptr %593, align 1, !tbaa !27
  %595 = zext i8 %594 to i32
  %596 = shl i32 %595, 8
  %597 = or i32 %590, %596
  store i32 %597, ptr %19, align 4, !tbaa !9
  %598 = load ptr, ptr %9, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %598, i32 0, i32 15
  %600 = getelementptr inbounds [4 x i8], ptr %599, i64 0, i64 2
  %601 = load i8, ptr %600, align 2, !tbaa !27
  %602 = zext i8 %601 to i32
  %603 = load ptr, ptr %9, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %603, i32 0, i32 15
  %605 = getelementptr inbounds [4 x i8], ptr %604, i64 0, i64 3
  %606 = load i8, ptr %605, align 1, !tbaa !27
  %607 = zext i8 %606 to i32
  %608 = shl i32 %607, 8
  %609 = or i32 %602, %608
  %610 = xor i32 65535, %609
  %611 = icmp ne i32 %597, %610
  br i1 %611, label %612, label %623

612:                                              ; preds = %585
  br label %613

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %620, %613
  br label %615

615:                                              ; preds = %614
  store i32 -1, ptr %16, align 4, !tbaa !9
  %616 = load ptr, ptr %9, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %616, i32 0, i32 0
  store i32 39, ptr %617, align 8, !tbaa !22
  br label %2944

618:                                              ; preds = %120
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  br label %614

621:                                              ; No predecessors!
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622, %585
  br label %624

624:                                              ; preds = %708, %623
  %625 = load i32, ptr %19, align 4, !tbaa !9
  %626 = icmp ne i32 %625, 0
  br i1 %626, label %627, label %630

627:                                              ; preds = %624
  %628 = load i32, ptr %17, align 4, !tbaa !9
  %629 = icmp ne i32 %628, 0
  br label %630

630:                                              ; preds = %627, %624
  %631 = phi i1 [ false, %624 ], [ %629, %627 ]
  br i1 %631, label %632, label %715

632:                                              ; preds = %630
  br label %633

633:                                              ; preds = %632
  %634 = load i32, ptr %17, align 4, !tbaa !9
  %635 = icmp ult i32 %634, 8
  br i1 %635, label %636, label %687

636:                                              ; preds = %633
  br label %637

637:                                              ; preds = %683, %636
  br label %638

638:                                              ; preds = %637
  %639 = load ptr, ptr %22, align 8, !tbaa !5
  %640 = load ptr, ptr %23, align 8, !tbaa !5
  %641 = icmp uge ptr %639, %640
  br i1 %641, label %642, label %666

642:                                              ; preds = %638
  br label %643

643:                                              ; preds = %664, %642
  %644 = load i32, ptr %15, align 4, !tbaa !9
  %645 = and i32 %644, 2
  %646 = icmp ne i32 %645, 0
  br i1 %646, label %647, label %663

647:                                              ; preds = %643
  br label %648

648:                                              ; preds = %647
  store i32 1, ptr %16, align 4, !tbaa !9
  %649 = load ptr, ptr %9, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %649, i32 0, i32 0
  store i32 51, ptr %650, align 8, !tbaa !22
  br label %2944

651:                                              ; preds = %120
  br label %652

652:                                              ; preds = %651
  br label %653

653:                                              ; preds = %652
  %654 = load ptr, ptr %22, align 8, !tbaa !5
  %655 = load ptr, ptr %23, align 8, !tbaa !5
  %656 = icmp ult ptr %654, %655
  br i1 %656, label %657, label %662

657:                                              ; preds = %653
  %658 = load ptr, ptr %22, align 8, !tbaa !5
  %659 = getelementptr inbounds i8, ptr %658, i32 1
  store ptr %659, ptr %22, align 8, !tbaa !5
  %660 = load i8, ptr %658, align 1, !tbaa !27
  %661 = zext i8 %660 to i32
  store i32 %661, ptr %32, align 4, !tbaa !9
  br label %665

662:                                              ; preds = %653
  br label %664

663:                                              ; preds = %643
  store i32 0, ptr %32, align 4, !tbaa !9
  br label %665

664:                                              ; preds = %662
  br label %643

665:                                              ; preds = %663, %657
  br label %671

666:                                              ; preds = %638
  %667 = load ptr, ptr %22, align 8, !tbaa !5
  %668 = getelementptr inbounds i8, ptr %667, i32 1
  store ptr %668, ptr %22, align 8, !tbaa !5
  %669 = load i8, ptr %667, align 1, !tbaa !27
  %670 = zext i8 %669 to i32
  store i32 %670, ptr %32, align 4, !tbaa !9
  br label %671

671:                                              ; preds = %666, %665
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  %674 = load i32, ptr %32, align 4, !tbaa !9
  %675 = zext i32 %674 to i64
  %676 = load i32, ptr %17, align 4, !tbaa !9
  %677 = zext i32 %676 to i64
  %678 = shl i64 %675, %677
  %679 = load i64, ptr %21, align 8, !tbaa !17
  %680 = or i64 %679, %678
  store i64 %680, ptr %21, align 8, !tbaa !17
  %681 = load i32, ptr %17, align 4, !tbaa !9
  %682 = add i32 %681, 8
  store i32 %682, ptr %17, align 4, !tbaa !9
  br label %683

683:                                              ; preds = %673
  %684 = load i32, ptr %17, align 4, !tbaa !9
  %685 = icmp ult i32 %684, 8
  br i1 %685, label %637, label %686, !llvm.loop !35

686:                                              ; preds = %683
  br label %687

687:                                              ; preds = %686, %633
  %688 = load i64, ptr %21, align 8, !tbaa !17
  %689 = and i64 %688, 255
  %690 = trunc i64 %689 to i32
  store i32 %690, ptr %18, align 4, !tbaa !9
  %691 = load i64, ptr %21, align 8, !tbaa !17
  %692 = lshr i64 %691, 8
  store i64 %692, ptr %21, align 8, !tbaa !17
  %693 = load i32, ptr %17, align 4, !tbaa !9
  %694 = sub i32 %693, 8
  store i32 %694, ptr %17, align 4, !tbaa !9
  br label %695

695:                                              ; preds = %687
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %707, %696
  %698 = load ptr, ptr %24, align 8, !tbaa !5
  %699 = load ptr, ptr %25, align 8, !tbaa !5
  %700 = icmp uge ptr %698, %699
  br i1 %700, label %701, label %708

701:                                              ; preds = %697
  br label %702

702:                                              ; preds = %701
  store i32 2, ptr %16, align 4, !tbaa !9
  %703 = load ptr, ptr %9, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %703, i32 0, i32 0
  store i32 52, ptr %704, align 8, !tbaa !22
  br label %2944

705:                                              ; preds = %120
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706
  br label %697, !llvm.loop !36

708:                                              ; preds = %697
  %709 = load i32, ptr %18, align 4, !tbaa !9
  %710 = trunc i32 %709 to i8
  %711 = load ptr, ptr %24, align 8, !tbaa !5
  %712 = getelementptr inbounds i8, ptr %711, i32 1
  store ptr %712, ptr %24, align 8, !tbaa !5
  store i8 %710, ptr %711, align 1, !tbaa !27
  %713 = load i32, ptr %19, align 4, !tbaa !9
  %714 = add i32 %713, -1
  store i32 %714, ptr %19, align 4, !tbaa !9
  br label %624, !llvm.loop !37

715:                                              ; preds = %630
  br label %716

716:                                              ; preds = %817, %715
  %717 = load i32, ptr %19, align 4, !tbaa !9
  %718 = icmp ne i32 %717, 0
  br i1 %718, label %719, label %832

719:                                              ; preds = %716
  br label %720

720:                                              ; preds = %730, %719
  %721 = load ptr, ptr %24, align 8, !tbaa !5
  %722 = load ptr, ptr %25, align 8, !tbaa !5
  %723 = icmp uge ptr %721, %722
  br i1 %723, label %724, label %731

724:                                              ; preds = %720
  br label %725

725:                                              ; preds = %724
  store i32 2, ptr %16, align 4, !tbaa !9
  %726 = load ptr, ptr %9, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %726, i32 0, i32 0
  store i32 9, ptr %727, align 8, !tbaa !22
  br label %2944

728:                                              ; preds = %120
  br label %729

729:                                              ; preds = %728
  br label %730

730:                                              ; preds = %729
  br label %720, !llvm.loop !38

731:                                              ; preds = %720
  br label %732

732:                                              ; preds = %758, %731
  %733 = load ptr, ptr %22, align 8, !tbaa !5
  %734 = load ptr, ptr %23, align 8, !tbaa !5
  %735 = icmp uge ptr %733, %734
  br i1 %735, label %736, label %759

736:                                              ; preds = %732
  %737 = load i32, ptr %15, align 4, !tbaa !9
  %738 = and i32 %737, 2
  %739 = icmp ne i32 %738, 0
  br i1 %739, label %740, label %747

740:                                              ; preds = %736
  br label %741

741:                                              ; preds = %740
  store i32 1, ptr %16, align 4, !tbaa !9
  %742 = load ptr, ptr %9, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %742, i32 0, i32 0
  store i32 38, ptr %743, align 8, !tbaa !22
  br label %2944

744:                                              ; preds = %120
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  br label %758

747:                                              ; preds = %736
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %755, %748
  br label %750

750:                                              ; preds = %749
  store i32 -1, ptr %16, align 4, !tbaa !9
  %751 = load ptr, ptr %9, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %751, i32 0, i32 0
  store i32 40, ptr %752, align 8, !tbaa !22
  br label %2944

753:                                              ; preds = %120
  br label %754

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %754
  br label %749

756:                                              ; No predecessors!
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757, %746
  br label %732, !llvm.loop !39

759:                                              ; preds = %732
  %760 = load ptr, ptr %25, align 8, !tbaa !5
  %761 = load ptr, ptr %24, align 8, !tbaa !5
  %762 = ptrtoint ptr %760 to i64
  %763 = ptrtoint ptr %761 to i64
  %764 = sub i64 %762, %763
  %765 = load ptr, ptr %23, align 8, !tbaa !5
  %766 = load ptr, ptr %22, align 8, !tbaa !5
  %767 = ptrtoint ptr %765 to i64
  %768 = ptrtoint ptr %766 to i64
  %769 = sub i64 %767, %768
  %770 = icmp ult i64 %764, %769
  br i1 %770, label %771, label %777

771:                                              ; preds = %759
  %772 = load ptr, ptr %25, align 8, !tbaa !5
  %773 = load ptr, ptr %24, align 8, !tbaa !5
  %774 = ptrtoint ptr %772 to i64
  %775 = ptrtoint ptr %773 to i64
  %776 = sub i64 %774, %775
  br label %783

777:                                              ; preds = %759
  %778 = load ptr, ptr %23, align 8, !tbaa !5
  %779 = load ptr, ptr %22, align 8, !tbaa !5
  %780 = ptrtoint ptr %778 to i64
  %781 = ptrtoint ptr %779 to i64
  %782 = sub i64 %780, %781
  br label %783

783:                                              ; preds = %777, %771
  %784 = phi i64 [ %776, %771 ], [ %782, %777 ]
  %785 = load i32, ptr %19, align 4, !tbaa !9
  %786 = zext i32 %785 to i64
  %787 = icmp ult i64 %784, %786
  br i1 %787, label %788, label %814

788:                                              ; preds = %783
  %789 = load ptr, ptr %25, align 8, !tbaa !5
  %790 = load ptr, ptr %24, align 8, !tbaa !5
  %791 = ptrtoint ptr %789 to i64
  %792 = ptrtoint ptr %790 to i64
  %793 = sub i64 %791, %792
  %794 = load ptr, ptr %23, align 8, !tbaa !5
  %795 = load ptr, ptr %22, align 8, !tbaa !5
  %796 = ptrtoint ptr %794 to i64
  %797 = ptrtoint ptr %795 to i64
  %798 = sub i64 %796, %797
  %799 = icmp ult i64 %793, %798
  br i1 %799, label %800, label %806

800:                                              ; preds = %788
  %801 = load ptr, ptr %25, align 8, !tbaa !5
  %802 = load ptr, ptr %24, align 8, !tbaa !5
  %803 = ptrtoint ptr %801 to i64
  %804 = ptrtoint ptr %802 to i64
  %805 = sub i64 %803, %804
  br label %812

806:                                              ; preds = %788
  %807 = load ptr, ptr %23, align 8, !tbaa !5
  %808 = load ptr, ptr %22, align 8, !tbaa !5
  %809 = ptrtoint ptr %807 to i64
  %810 = ptrtoint ptr %808 to i64
  %811 = sub i64 %809, %810
  br label %812

812:                                              ; preds = %806, %800
  %813 = phi i64 [ %805, %800 ], [ %811, %806 ]
  br label %817

814:                                              ; preds = %783
  %815 = load i32, ptr %19, align 4, !tbaa !9
  %816 = zext i32 %815 to i64
  br label %817

817:                                              ; preds = %814, %812
  %818 = phi i64 [ %813, %812 ], [ %816, %814 ]
  store i64 %818, ptr %33, align 8, !tbaa !11
  %819 = load ptr, ptr %24, align 8, !tbaa !5
  %820 = load ptr, ptr %22, align 8, !tbaa !5
  %821 = load i64, ptr %33, align 8, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %819, ptr align 1 %820, i64 %821, i1 false)
  %822 = load i64, ptr %33, align 8, !tbaa !11
  %823 = load ptr, ptr %22, align 8, !tbaa !5
  %824 = getelementptr inbounds i8, ptr %823, i64 %822
  store ptr %824, ptr %22, align 8, !tbaa !5
  %825 = load i64, ptr %33, align 8, !tbaa !11
  %826 = load ptr, ptr %24, align 8, !tbaa !5
  %827 = getelementptr inbounds i8, ptr %826, i64 %825
  store ptr %827, ptr %24, align 8, !tbaa !5
  %828 = load i64, ptr %33, align 8, !tbaa !11
  %829 = trunc i64 %828 to i32
  %830 = load i32, ptr %19, align 4, !tbaa !9
  %831 = sub i32 %830, %829
  store i32 %831, ptr %19, align 4, !tbaa !9
  br label %716, !llvm.loop !40

832:                                              ; preds = %716
  br label %2728

833:                                              ; preds = %373
  %834 = load ptr, ptr %9, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %834, i32 0, i32 6
  %836 = load i32, ptr %835, align 8, !tbaa !31
  %837 = icmp eq i32 %836, 3
  br i1 %837, label %838, label %849

838:                                              ; preds = %833
  br label %839

839:                                              ; preds = %838
  br label %840

840:                                              ; preds = %846, %839
  br label %841

841:                                              ; preds = %840
  store i32 -1, ptr %16, align 4, !tbaa !9
  %842 = load ptr, ptr %9, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %842, i32 0, i32 0
  store i32 10, ptr %843, align 8, !tbaa !22
  br label %2944

844:                                              ; preds = %120
  br label %845

845:                                              ; preds = %844
  br label %846

846:                                              ; preds = %845
  br label %840

847:                                              ; No predecessors!
  br label %848

848:                                              ; preds = %847
  br label %2727

849:                                              ; preds = %833
  %850 = load ptr, ptr %9, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %850, i32 0, i32 6
  %852 = load i32, ptr %851, align 8, !tbaa !31
  %853 = icmp eq i32 %852, 1
  br i1 %853, label %854, label %911

854:                                              ; preds = %849
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  %855 = load ptr, ptr %9, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %855, i32 0, i32 14
  %857 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %856, i64 0, i64 0
  %858 = getelementptr inbounds %struct.tinfl_huff_table, ptr %857, i32 0, i32 0
  %859 = getelementptr inbounds [288 x i8], ptr %858, i64 0, i64 0
  store ptr %859, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  %860 = load ptr, ptr %9, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %860, i32 0, i32 11
  %862 = getelementptr inbounds [3 x i32], ptr %861, i64 0, i64 0
  store i32 288, ptr %862, align 4, !tbaa !9
  %863 = load ptr, ptr %9, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %863, i32 0, i32 11
  %865 = getelementptr inbounds [3 x i32], ptr %864, i64 0, i64 1
  store i32 32, ptr %865, align 4, !tbaa !9
  %866 = load ptr, ptr %9, align 8, !tbaa !5
  %867 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %866, i32 0, i32 14
  %868 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %867, i64 0, i64 1
  %869 = getelementptr inbounds %struct.tinfl_huff_table, ptr %868, i32 0, i32 0
  %870 = getelementptr inbounds [288 x i8], ptr %869, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 8 %870, i8 5, i64 32, i1 false)
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %871

871:                                              ; preds = %877, %854
  %872 = load i32, ptr %35, align 4, !tbaa !9
  %873 = icmp ule i32 %872, 143
  br i1 %873, label %874, label %880

874:                                              ; preds = %871
  %875 = load ptr, ptr %34, align 8, !tbaa !5
  %876 = getelementptr inbounds i8, ptr %875, i32 1
  store ptr %876, ptr %34, align 8, !tbaa !5
  store i8 8, ptr %875, align 1, !tbaa !27
  br label %877

877:                                              ; preds = %874
  %878 = load i32, ptr %35, align 4, !tbaa !9
  %879 = add i32 %878, 1
  store i32 %879, ptr %35, align 4, !tbaa !9
  br label %871, !llvm.loop !41

880:                                              ; preds = %871
  br label %881

881:                                              ; preds = %887, %880
  %882 = load i32, ptr %35, align 4, !tbaa !9
  %883 = icmp ule i32 %882, 255
  br i1 %883, label %884, label %890

884:                                              ; preds = %881
  %885 = load ptr, ptr %34, align 8, !tbaa !5
  %886 = getelementptr inbounds i8, ptr %885, i32 1
  store ptr %886, ptr %34, align 8, !tbaa !5
  store i8 9, ptr %885, align 1, !tbaa !27
  br label %887

887:                                              ; preds = %884
  %888 = load i32, ptr %35, align 4, !tbaa !9
  %889 = add i32 %888, 1
  store i32 %889, ptr %35, align 4, !tbaa !9
  br label %881, !llvm.loop !42

890:                                              ; preds = %881
  br label %891

891:                                              ; preds = %897, %890
  %892 = load i32, ptr %35, align 4, !tbaa !9
  %893 = icmp ule i32 %892, 279
  br i1 %893, label %894, label %900

894:                                              ; preds = %891
  %895 = load ptr, ptr %34, align 8, !tbaa !5
  %896 = getelementptr inbounds i8, ptr %895, i32 1
  store ptr %896, ptr %34, align 8, !tbaa !5
  store i8 7, ptr %895, align 1, !tbaa !27
  br label %897

897:                                              ; preds = %894
  %898 = load i32, ptr %35, align 4, !tbaa !9
  %899 = add i32 %898, 1
  store i32 %899, ptr %35, align 4, !tbaa !9
  br label %891, !llvm.loop !43

900:                                              ; preds = %891
  br label %901

901:                                              ; preds = %907, %900
  %902 = load i32, ptr %35, align 4, !tbaa !9
  %903 = icmp ule i32 %902, 287
  br i1 %903, label %904, label %910

904:                                              ; preds = %901
  %905 = load ptr, ptr %34, align 8, !tbaa !5
  %906 = getelementptr inbounds i8, ptr %905, i32 1
  store ptr %906, ptr %34, align 8, !tbaa !5
  store i8 8, ptr %905, align 1, !tbaa !27
  br label %907

907:                                              ; preds = %904
  %908 = load i32, ptr %35, align 4, !tbaa !9
  %909 = add i32 %908, 1
  store i32 %909, ptr %35, align 4, !tbaa !9
  br label %901, !llvm.loop !44

910:                                              ; preds = %901
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  br label %1124

911:                                              ; preds = %849
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %912

912:                                              ; preds = %1025, %911
  %913 = load i32, ptr %19, align 4, !tbaa !9
  %914 = icmp ult i32 %913, 3
  br i1 %914, label %915, label %1028

915:                                              ; preds = %912
  br label %916

916:                                              ; preds = %915
  %917 = load i32, ptr %17, align 4, !tbaa !9
  %918 = load i32, ptr %19, align 4, !tbaa !9
  %919 = zext i32 %918 to i64
  %920 = getelementptr inbounds [4 x i8], ptr @.str.11, i64 0, i64 %919
  %921 = load i8, ptr %920, align 1, !tbaa !27
  %922 = sext i8 %921 to i32
  %923 = icmp ult i32 %917, %922
  br i1 %923, label %924, label %980

924:                                              ; preds = %916
  br label %925

925:                                              ; preds = %971, %924
  br label %926

926:                                              ; preds = %925
  %927 = load ptr, ptr %22, align 8, !tbaa !5
  %928 = load ptr, ptr %23, align 8, !tbaa !5
  %929 = icmp uge ptr %927, %928
  br i1 %929, label %930, label %954

930:                                              ; preds = %926
  br label %931

931:                                              ; preds = %952, %930
  %932 = load i32, ptr %15, align 4, !tbaa !9
  %933 = and i32 %932, 2
  %934 = icmp ne i32 %933, 0
  br i1 %934, label %935, label %951

935:                                              ; preds = %931
  br label %936

936:                                              ; preds = %935
  store i32 1, ptr %16, align 4, !tbaa !9
  %937 = load ptr, ptr %9, align 8, !tbaa !5
  %938 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %937, i32 0, i32 0
  store i32 11, ptr %938, align 8, !tbaa !22
  br label %2944

939:                                              ; preds = %120
  br label %940

940:                                              ; preds = %939
  br label %941

941:                                              ; preds = %940
  %942 = load ptr, ptr %22, align 8, !tbaa !5
  %943 = load ptr, ptr %23, align 8, !tbaa !5
  %944 = icmp ult ptr %942, %943
  br i1 %944, label %945, label %950

945:                                              ; preds = %941
  %946 = load ptr, ptr %22, align 8, !tbaa !5
  %947 = getelementptr inbounds i8, ptr %946, i32 1
  store ptr %947, ptr %22, align 8, !tbaa !5
  %948 = load i8, ptr %946, align 1, !tbaa !27
  %949 = zext i8 %948 to i32
  store i32 %949, ptr %36, align 4, !tbaa !9
  br label %953

950:                                              ; preds = %941
  br label %952

951:                                              ; preds = %931
  store i32 0, ptr %36, align 4, !tbaa !9
  br label %953

952:                                              ; preds = %950
  br label %931

953:                                              ; preds = %951, %945
  br label %959

954:                                              ; preds = %926
  %955 = load ptr, ptr %22, align 8, !tbaa !5
  %956 = getelementptr inbounds i8, ptr %955, i32 1
  store ptr %956, ptr %22, align 8, !tbaa !5
  %957 = load i8, ptr %955, align 1, !tbaa !27
  %958 = zext i8 %957 to i32
  store i32 %958, ptr %36, align 4, !tbaa !9
  br label %959

959:                                              ; preds = %954, %953
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960
  %962 = load i32, ptr %36, align 4, !tbaa !9
  %963 = zext i32 %962 to i64
  %964 = load i32, ptr %17, align 4, !tbaa !9
  %965 = zext i32 %964 to i64
  %966 = shl i64 %963, %965
  %967 = load i64, ptr %21, align 8, !tbaa !17
  %968 = or i64 %967, %966
  store i64 %968, ptr %21, align 8, !tbaa !17
  %969 = load i32, ptr %17, align 4, !tbaa !9
  %970 = add i32 %969, 8
  store i32 %970, ptr %17, align 4, !tbaa !9
  br label %971

971:                                              ; preds = %961
  %972 = load i32, ptr %17, align 4, !tbaa !9
  %973 = load i32, ptr %19, align 4, !tbaa !9
  %974 = zext i32 %973 to i64
  %975 = getelementptr inbounds [4 x i8], ptr @.str.11, i64 0, i64 %974
  %976 = load i8, ptr %975, align 1, !tbaa !27
  %977 = sext i8 %976 to i32
  %978 = icmp ult i32 %972, %977
  br i1 %978, label %925, label %979, !llvm.loop !45

979:                                              ; preds = %971
  br label %980

980:                                              ; preds = %979, %916
  %981 = load i64, ptr %21, align 8, !tbaa !17
  %982 = load i32, ptr %19, align 4, !tbaa !9
  %983 = zext i32 %982 to i64
  %984 = getelementptr inbounds [4 x i8], ptr @.str.11, i64 0, i64 %983
  %985 = load i8, ptr %984, align 1, !tbaa !27
  %986 = sext i8 %985 to i32
  %987 = shl i32 1, %986
  %988 = sub nsw i32 %987, 1
  %989 = sext i32 %988 to i64
  %990 = and i64 %981, %989
  %991 = trunc i64 %990 to i32
  %992 = load ptr, ptr %9, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %992, i32 0, i32 11
  %994 = load i32, ptr %19, align 4, !tbaa !9
  %995 = zext i32 %994 to i64
  %996 = getelementptr inbounds [3 x i32], ptr %993, i64 0, i64 %995
  store i32 %991, ptr %996, align 4, !tbaa !9
  %997 = load i32, ptr %19, align 4, !tbaa !9
  %998 = zext i32 %997 to i64
  %999 = getelementptr inbounds [4 x i8], ptr @.str.11, i64 0, i64 %998
  %1000 = load i8, ptr %999, align 1, !tbaa !27
  %1001 = sext i8 %1000 to i32
  %1002 = load i64, ptr %21, align 8, !tbaa !17
  %1003 = zext i32 %1001 to i64
  %1004 = lshr i64 %1002, %1003
  store i64 %1004, ptr %21, align 8, !tbaa !17
  %1005 = load i32, ptr %19, align 4, !tbaa !9
  %1006 = zext i32 %1005 to i64
  %1007 = getelementptr inbounds [4 x i8], ptr @.str.11, i64 0, i64 %1006
  %1008 = load i8, ptr %1007, align 1, !tbaa !27
  %1009 = sext i8 %1008 to i32
  %1010 = load i32, ptr %17, align 4, !tbaa !9
  %1011 = sub i32 %1010, %1009
  store i32 %1011, ptr %17, align 4, !tbaa !9
  br label %1012

1012:                                             ; preds = %980
  br label %1013

1013:                                             ; preds = %1012
  %1014 = load i32, ptr %19, align 4, !tbaa !9
  %1015 = zext i32 %1014 to i64
  %1016 = getelementptr inbounds [3 x i32], ptr @tinfl_decompress.s_min_table_sizes, i64 0, i64 %1015
  %1017 = load i32, ptr %1016, align 4, !tbaa !9
  %1018 = load ptr, ptr %9, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1018, i32 0, i32 11
  %1020 = load i32, ptr %19, align 4, !tbaa !9
  %1021 = zext i32 %1020 to i64
  %1022 = getelementptr inbounds [3 x i32], ptr %1019, i64 0, i64 %1021
  %1023 = load i32, ptr %1022, align 4, !tbaa !9
  %1024 = add i32 %1023, %1017
  store i32 %1024, ptr %1022, align 4, !tbaa !9
  br label %1025

1025:                                             ; preds = %1013
  %1026 = load i32, ptr %19, align 4, !tbaa !9
  %1027 = add i32 %1026, 1
  store i32 %1027, ptr %19, align 4, !tbaa !9
  br label %912, !llvm.loop !46

1028:                                             ; preds = %912
  %1029 = load ptr, ptr %9, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1029, i32 0, i32 14
  %1031 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1030, i64 0, i64 2
  %1032 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1031, i32 0, i32 0
  call void @llvm.memset.p0.i64(ptr align 8 %1032, i8 0, i64 288, i1 false)
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1033

1033:                                             ; preds = %1117, %1028
  %1034 = load i32, ptr %19, align 4, !tbaa !9
  %1035 = load ptr, ptr %9, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1035, i32 0, i32 11
  %1037 = getelementptr inbounds [3 x i32], ptr %1036, i64 0, i64 2
  %1038 = load i32, ptr %1037, align 4, !tbaa !9
  %1039 = icmp ult i32 %1034, %1038
  br i1 %1039, label %1040, label %1120

1040:                                             ; preds = %1033
  br label %1041

1041:                                             ; preds = %1040
  %1042 = load i32, ptr %17, align 4, !tbaa !9
  %1043 = icmp ult i32 %1042, 3
  br i1 %1043, label %1044, label %1095

1044:                                             ; preds = %1041
  br label %1045

1045:                                             ; preds = %1091, %1044
  br label %1046

1046:                                             ; preds = %1045
  %1047 = load ptr, ptr %22, align 8, !tbaa !5
  %1048 = load ptr, ptr %23, align 8, !tbaa !5
  %1049 = icmp uge ptr %1047, %1048
  br i1 %1049, label %1050, label %1074

1050:                                             ; preds = %1046
  br label %1051

1051:                                             ; preds = %1072, %1050
  %1052 = load i32, ptr %15, align 4, !tbaa !9
  %1053 = and i32 %1052, 2
  %1054 = icmp ne i32 %1053, 0
  br i1 %1054, label %1055, label %1071

1055:                                             ; preds = %1051
  br label %1056

1056:                                             ; preds = %1055
  store i32 1, ptr %16, align 4, !tbaa !9
  %1057 = load ptr, ptr %9, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1057, i32 0, i32 0
  store i32 14, ptr %1058, align 8, !tbaa !22
  br label %2944

1059:                                             ; preds = %120
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

1061:                                             ; preds = %1060
  %1062 = load ptr, ptr %22, align 8, !tbaa !5
  %1063 = load ptr, ptr %23, align 8, !tbaa !5
  %1064 = icmp ult ptr %1062, %1063
  br i1 %1064, label %1065, label %1070

1065:                                             ; preds = %1061
  %1066 = load ptr, ptr %22, align 8, !tbaa !5
  %1067 = getelementptr inbounds i8, ptr %1066, i32 1
  store ptr %1067, ptr %22, align 8, !tbaa !5
  %1068 = load i8, ptr %1066, align 1, !tbaa !27
  %1069 = zext i8 %1068 to i32
  store i32 %1069, ptr %38, align 4, !tbaa !9
  br label %1073

1070:                                             ; preds = %1061
  br label %1072

1071:                                             ; preds = %1051
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %1073

1072:                                             ; preds = %1070
  br label %1051

1073:                                             ; preds = %1071, %1065
  br label %1079

1074:                                             ; preds = %1046
  %1075 = load ptr, ptr %22, align 8, !tbaa !5
  %1076 = getelementptr inbounds i8, ptr %1075, i32 1
  store ptr %1076, ptr %22, align 8, !tbaa !5
  %1077 = load i8, ptr %1075, align 1, !tbaa !27
  %1078 = zext i8 %1077 to i32
  store i32 %1078, ptr %38, align 4, !tbaa !9
  br label %1079

1079:                                             ; preds = %1074, %1073
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  %1082 = load i32, ptr %38, align 4, !tbaa !9
  %1083 = zext i32 %1082 to i64
  %1084 = load i32, ptr %17, align 4, !tbaa !9
  %1085 = zext i32 %1084 to i64
  %1086 = shl i64 %1083, %1085
  %1087 = load i64, ptr %21, align 8, !tbaa !17
  %1088 = or i64 %1087, %1086
  store i64 %1088, ptr %21, align 8, !tbaa !17
  %1089 = load i32, ptr %17, align 4, !tbaa !9
  %1090 = add i32 %1089, 8
  store i32 %1090, ptr %17, align 4, !tbaa !9
  br label %1091

1091:                                             ; preds = %1081
  %1092 = load i32, ptr %17, align 4, !tbaa !9
  %1093 = icmp ult i32 %1092, 3
  br i1 %1093, label %1045, label %1094, !llvm.loop !47

1094:                                             ; preds = %1091
  br label %1095

1095:                                             ; preds = %1094, %1041
  %1096 = load i64, ptr %21, align 8, !tbaa !17
  %1097 = and i64 %1096, 7
  %1098 = trunc i64 %1097 to i32
  store i32 %1098, ptr %37, align 4, !tbaa !9
  %1099 = load i64, ptr %21, align 8, !tbaa !17
  %1100 = lshr i64 %1099, 3
  store i64 %1100, ptr %21, align 8, !tbaa !17
  %1101 = load i32, ptr %17, align 4, !tbaa !9
  %1102 = sub i32 %1101, 3
  store i32 %1102, ptr %17, align 4, !tbaa !9
  br label %1103

1103:                                             ; preds = %1095
  br label %1104

1104:                                             ; preds = %1103
  %1105 = load i32, ptr %37, align 4, !tbaa !9
  %1106 = trunc i32 %1105 to i8
  %1107 = load ptr, ptr %9, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1107, i32 0, i32 14
  %1109 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1108, i64 0, i64 2
  %1110 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1109, i32 0, i32 0
  %1111 = load i32, ptr %19, align 4, !tbaa !9
  %1112 = zext i32 %1111 to i64
  %1113 = getelementptr inbounds [19 x i8], ptr @tinfl_decompress.s_length_dezigzag, i64 0, i64 %1112
  %1114 = load i8, ptr %1113, align 1, !tbaa !27
  %1115 = zext i8 %1114 to i64
  %1116 = getelementptr inbounds [288 x i8], ptr %1110, i64 0, i64 %1115
  store i8 %1106, ptr %1116, align 1, !tbaa !27
  br label %1117

1117:                                             ; preds = %1104
  %1118 = load i32, ptr %19, align 4, !tbaa !9
  %1119 = add i32 %1118, 1
  store i32 %1119, ptr %19, align 4, !tbaa !9
  br label %1033, !llvm.loop !48

1120:                                             ; preds = %1033
  %1121 = load ptr, ptr %9, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1121, i32 0, i32 11
  %1123 = getelementptr inbounds [3 x i32], ptr %1122, i64 0, i64 2
  store i32 19, ptr %1123, align 4, !tbaa !9
  br label %1124

1124:                                             ; preds = %1120, %910
  br label %1125

1125:                                             ; preds = %1786, %1124
  %1126 = load ptr, ptr %9, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1126, i32 0, i32 6
  %1128 = load i32, ptr %1127, align 8, !tbaa !31
  %1129 = icmp sge i32 %1128, 0
  br i1 %1129, label %1130, label %1791

1130:                                             ; preds = %1125
  %1131 = load ptr, ptr %9, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1131, i32 0, i32 14
  %1133 = load ptr, ptr %9, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1133, i32 0, i32 6
  %1135 = load i32, ptr %1134, align 8, !tbaa !31
  %1136 = zext i32 %1135 to i64
  %1137 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1132, i64 0, i64 %1136
  store ptr %1137, ptr %41, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 16 %48, i8 0, i64 64, i1 false)
  %1138 = load ptr, ptr %41, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1138, i32 0, i32 1
  call void @llvm.memset.p0.i64(ptr align 2 %1139, i8 0, i64 2048, i1 false)
  %1140 = load ptr, ptr %41, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1140, i32 0, i32 2
  call void @llvm.memset.p0.i64(ptr align 2 %1141, i8 0, i64 1152, i1 false)
  store i32 0, ptr %42, align 4, !tbaa !9
  br label %1142

1142:                                             ; preds = %1164, %1130
  %1143 = load i32, ptr %42, align 4, !tbaa !9
  %1144 = load ptr, ptr %9, align 8, !tbaa !5
  %1145 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1144, i32 0, i32 11
  %1146 = load ptr, ptr %9, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1146, i32 0, i32 6
  %1148 = load i32, ptr %1147, align 8, !tbaa !31
  %1149 = zext i32 %1148 to i64
  %1150 = getelementptr inbounds [3 x i32], ptr %1145, i64 0, i64 %1149
  %1151 = load i32, ptr %1150, align 4, !tbaa !9
  %1152 = icmp ult i32 %1143, %1151
  br i1 %1152, label %1153, label %1167

1153:                                             ; preds = %1142
  %1154 = load ptr, ptr %41, align 8, !tbaa !5
  %1155 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1154, i32 0, i32 0
  %1156 = load i32, ptr %42, align 4, !tbaa !9
  %1157 = zext i32 %1156 to i64
  %1158 = getelementptr inbounds [288 x i8], ptr %1155, i64 0, i64 %1157
  %1159 = load i8, ptr %1158, align 1, !tbaa !27
  %1160 = zext i8 %1159 to i64
  %1161 = getelementptr inbounds [16 x i32], ptr %48, i64 0, i64 %1160
  %1162 = load i32, ptr %1161, align 4, !tbaa !9
  %1163 = add i32 %1162, 1
  store i32 %1163, ptr %1161, align 4, !tbaa !9
  br label %1164

1164:                                             ; preds = %1153
  %1165 = load i32, ptr %42, align 4, !tbaa !9
  %1166 = add i32 %1165, 1
  store i32 %1166, ptr %42, align 4, !tbaa !9
  br label %1142, !llvm.loop !49

1167:                                             ; preds = %1142
  store i32 0, ptr %44, align 4, !tbaa !9
  store i32 0, ptr %45, align 4, !tbaa !9
  %1168 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 1
  store i32 0, ptr %1168, align 4, !tbaa !9
  %1169 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 0
  store i32 0, ptr %1169, align 16, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1170

1170:                                             ; preds = %1191, %1167
  %1171 = load i32, ptr %42, align 4, !tbaa !9
  %1172 = icmp ule i32 %1171, 15
  br i1 %1172, label %1173, label %1194

1173:                                             ; preds = %1170
  %1174 = load i32, ptr %42, align 4, !tbaa !9
  %1175 = zext i32 %1174 to i64
  %1176 = getelementptr inbounds [16 x i32], ptr %48, i64 0, i64 %1175
  %1177 = load i32, ptr %1176, align 4, !tbaa !9
  %1178 = load i32, ptr %44, align 4, !tbaa !9
  %1179 = add i32 %1178, %1177
  store i32 %1179, ptr %44, align 4, !tbaa !9
  %1180 = load i32, ptr %45, align 4, !tbaa !9
  %1181 = load i32, ptr %42, align 4, !tbaa !9
  %1182 = zext i32 %1181 to i64
  %1183 = getelementptr inbounds [16 x i32], ptr %48, i64 0, i64 %1182
  %1184 = load i32, ptr %1183, align 4, !tbaa !9
  %1185 = add i32 %1180, %1184
  %1186 = shl i32 %1185, 1
  store i32 %1186, ptr %45, align 4, !tbaa !9
  %1187 = load i32, ptr %42, align 4, !tbaa !9
  %1188 = add i32 %1187, 1
  %1189 = zext i32 %1188 to i64
  %1190 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 %1189
  store i32 %1186, ptr %1190, align 4, !tbaa !9
  br label %1191

1191:                                             ; preds = %1173
  %1192 = load i32, ptr %42, align 4, !tbaa !9
  %1193 = add i32 %1192, 1
  store i32 %1193, ptr %42, align 4, !tbaa !9
  br label %1170, !llvm.loop !50

1194:                                             ; preds = %1170
  %1195 = load i32, ptr %45, align 4, !tbaa !9
  %1196 = icmp ne i32 65536, %1195
  br i1 %1196, label %1197, label %1211

1197:                                             ; preds = %1194
  %1198 = load i32, ptr %44, align 4, !tbaa !9
  %1199 = icmp ugt i32 %1198, 1
  br i1 %1199, label %1200, label %1211

1200:                                             ; preds = %1197
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

1202:                                             ; preds = %1208, %1201
  br label %1203

1203:                                             ; preds = %1202
  store i32 -1, ptr %16, align 4, !tbaa !9
  %1204 = load ptr, ptr %9, align 8, !tbaa !5
  %1205 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1204, i32 0, i32 0
  store i32 35, ptr %1205, align 8, !tbaa !22
  br label %2944

1206:                                             ; preds = %120
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

1208:                                             ; preds = %1207
  br label %1202

1209:                                             ; No predecessors!
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210, %1197, %1194
  store i32 -1, ptr %39, align 4, !tbaa !9
  store i32 0, ptr %46, align 4, !tbaa !9
  br label %1212

1212:                                             ; preds = %1369, %1211
  %1213 = load i32, ptr %46, align 4, !tbaa !9
  %1214 = load ptr, ptr %9, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1214, i32 0, i32 11
  %1216 = load ptr, ptr %9, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1216, i32 0, i32 6
  %1218 = load i32, ptr %1217, align 8, !tbaa !31
  %1219 = zext i32 %1218 to i64
  %1220 = getelementptr inbounds [3 x i32], ptr %1215, i64 0, i64 %1219
  %1221 = load i32, ptr %1220, align 4, !tbaa !9
  %1222 = icmp ult i32 %1213, %1221
  br i1 %1222, label %1223, label %1372

1223:                                             ; preds = %1212
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  store i32 0, ptr %49, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  %1224 = load ptr, ptr %41, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1224, i32 0, i32 0
  %1226 = load i32, ptr %46, align 4, !tbaa !9
  %1227 = zext i32 %1226 to i64
  %1228 = getelementptr inbounds [288 x i8], ptr %1225, i64 0, i64 %1227
  %1229 = load i8, ptr %1228, align 1, !tbaa !27
  %1230 = zext i8 %1229 to i32
  store i32 %1230, ptr %52, align 4, !tbaa !9
  %1231 = load i32, ptr %52, align 4, !tbaa !9
  %1232 = icmp ne i32 %1231, 0
  br i1 %1232, label %1234, label %1233

1233:                                             ; preds = %1223
  store i32 162, ptr %28, align 4
  br label %1366

1234:                                             ; preds = %1223
  %1235 = load i32, ptr %52, align 4, !tbaa !9
  %1236 = zext i32 %1235 to i64
  %1237 = getelementptr inbounds [17 x i32], ptr %47, i64 0, i64 %1236
  %1238 = load i32, ptr %1237, align 4, !tbaa !9
  %1239 = add i32 %1238, 1
  store i32 %1239, ptr %1237, align 4, !tbaa !9
  store i32 %1238, ptr %51, align 4, !tbaa !9
  %1240 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %1240, ptr %50, align 4, !tbaa !9
  br label %1241

1241:                                             ; preds = %1250, %1234
  %1242 = load i32, ptr %50, align 4, !tbaa !9
  %1243 = icmp ugt i32 %1242, 0
  br i1 %1243, label %1244, label %1255

1244:                                             ; preds = %1241
  %1245 = load i32, ptr %49, align 4, !tbaa !9
  %1246 = shl i32 %1245, 1
  %1247 = load i32, ptr %51, align 4, !tbaa !9
  %1248 = and i32 %1247, 1
  %1249 = or i32 %1246, %1248
  store i32 %1249, ptr %49, align 4, !tbaa !9
  br label %1250

1250:                                             ; preds = %1244
  %1251 = load i32, ptr %50, align 4, !tbaa !9
  %1252 = add i32 %1251, -1
  store i32 %1252, ptr %50, align 4, !tbaa !9
  %1253 = load i32, ptr %51, align 4, !tbaa !9
  %1254 = lshr i32 %1253, 1
  store i32 %1254, ptr %51, align 4, !tbaa !9
  br label %1241, !llvm.loop !51

1255:                                             ; preds = %1241
  %1256 = load i32, ptr %52, align 4, !tbaa !9
  %1257 = icmp ule i32 %1256, 10
  br i1 %1257, label %1258, label %1279

1258:                                             ; preds = %1255
  call void @llvm.lifetime.start.p0(i64 2, ptr %53) #4
  %1259 = load i32, ptr %52, align 4, !tbaa !9
  %1260 = shl i32 %1259, 9
  %1261 = load i32, ptr %46, align 4, !tbaa !9
  %1262 = or i32 %1260, %1261
  %1263 = trunc i32 %1262 to i16
  store i16 %1263, ptr %53, align 2, !tbaa !52
  br label %1264

1264:                                             ; preds = %1267, %1258
  %1265 = load i32, ptr %49, align 4, !tbaa !9
  %1266 = icmp ult i32 %1265, 1024
  br i1 %1266, label %1267, label %1278

1267:                                             ; preds = %1264
  %1268 = load i16, ptr %53, align 2, !tbaa !52
  %1269 = load ptr, ptr %41, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1269, i32 0, i32 1
  %1271 = load i32, ptr %49, align 4, !tbaa !9
  %1272 = zext i32 %1271 to i64
  %1273 = getelementptr inbounds [1024 x i16], ptr %1270, i64 0, i64 %1272
  store i16 %1268, ptr %1273, align 2, !tbaa !52
  %1274 = load i32, ptr %52, align 4, !tbaa !9
  %1275 = shl i32 1, %1274
  %1276 = load i32, ptr %49, align 4, !tbaa !9
  %1277 = add i32 %1276, %1275
  store i32 %1277, ptr %49, align 4, !tbaa !9
  br label %1264, !llvm.loop !54

1278:                                             ; preds = %1264
  store i32 162, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %53) #4
  br label %1366

1279:                                             ; preds = %1255
  %1280 = load ptr, ptr %41, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1280, i32 0, i32 1
  %1282 = load i32, ptr %49, align 4, !tbaa !9
  %1283 = and i32 %1282, 1023
  %1284 = zext i32 %1283 to i64
  %1285 = getelementptr inbounds [1024 x i16], ptr %1281, i64 0, i64 %1284
  %1286 = load i16, ptr %1285, align 2, !tbaa !52
  %1287 = sext i16 %1286 to i32
  store i32 %1287, ptr %40, align 4, !tbaa !9
  %1288 = icmp eq i32 0, %1287
  br i1 %1288, label %1289, label %1301

1289:                                             ; preds = %1279
  %1290 = load i32, ptr %39, align 4, !tbaa !9
  %1291 = trunc i32 %1290 to i16
  %1292 = load ptr, ptr %41, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1292, i32 0, i32 1
  %1294 = load i32, ptr %49, align 4, !tbaa !9
  %1295 = and i32 %1294, 1023
  %1296 = zext i32 %1295 to i64
  %1297 = getelementptr inbounds [1024 x i16], ptr %1293, i64 0, i64 %1296
  store i16 %1291, ptr %1297, align 2, !tbaa !52
  %1298 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %1298, ptr %40, align 4, !tbaa !9
  %1299 = load i32, ptr %39, align 4, !tbaa !9
  %1300 = sub nsw i32 %1299, 2
  store i32 %1300, ptr %39, align 4, !tbaa !9
  br label %1301

1301:                                             ; preds = %1289, %1279
  %1302 = load i32, ptr %49, align 4, !tbaa !9
  %1303 = lshr i32 %1302, 9
  store i32 %1303, ptr %49, align 4, !tbaa !9
  %1304 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %1304, ptr %43, align 4, !tbaa !9
  br label %1305

1305:                                             ; preds = %1347, %1301
  %1306 = load i32, ptr %43, align 4, !tbaa !9
  %1307 = icmp ugt i32 %1306, 11
  br i1 %1307, label %1308, label %1350

1308:                                             ; preds = %1305
  %1309 = load i32, ptr %49, align 4, !tbaa !9
  %1310 = lshr i32 %1309, 1
  store i32 %1310, ptr %49, align 4, !tbaa !9
  %1311 = and i32 %1310, 1
  %1312 = load i32, ptr %40, align 4, !tbaa !9
  %1313 = sub i32 %1312, %1311
  store i32 %1313, ptr %40, align 4, !tbaa !9
  %1314 = load ptr, ptr %41, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1314, i32 0, i32 2
  %1316 = load i32, ptr %40, align 4, !tbaa !9
  %1317 = sub nsw i32 0, %1316
  %1318 = sub nsw i32 %1317, 1
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds [576 x i16], ptr %1315, i64 0, i64 %1319
  %1321 = load i16, ptr %1320, align 2, !tbaa !52
  %1322 = icmp ne i16 %1321, 0
  br i1 %1322, label %1336, label %1323

1323:                                             ; preds = %1308
  %1324 = load i32, ptr %39, align 4, !tbaa !9
  %1325 = trunc i32 %1324 to i16
  %1326 = load ptr, ptr %41, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1326, i32 0, i32 2
  %1328 = load i32, ptr %40, align 4, !tbaa !9
  %1329 = sub nsw i32 0, %1328
  %1330 = sub nsw i32 %1329, 1
  %1331 = sext i32 %1330 to i64
  %1332 = getelementptr inbounds [576 x i16], ptr %1327, i64 0, i64 %1331
  store i16 %1325, ptr %1332, align 2, !tbaa !52
  %1333 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %1333, ptr %40, align 4, !tbaa !9
  %1334 = load i32, ptr %39, align 4, !tbaa !9
  %1335 = sub nsw i32 %1334, 2
  store i32 %1335, ptr %39, align 4, !tbaa !9
  br label %1346

1336:                                             ; preds = %1308
  %1337 = load ptr, ptr %41, align 8, !tbaa !5
  %1338 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1337, i32 0, i32 2
  %1339 = load i32, ptr %40, align 4, !tbaa !9
  %1340 = sub nsw i32 0, %1339
  %1341 = sub nsw i32 %1340, 1
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds [576 x i16], ptr %1338, i64 0, i64 %1342
  %1344 = load i16, ptr %1343, align 2, !tbaa !52
  %1345 = sext i16 %1344 to i32
  store i32 %1345, ptr %40, align 4, !tbaa !9
  br label %1346

1346:                                             ; preds = %1336, %1323
  br label %1347

1347:                                             ; preds = %1346
  %1348 = load i32, ptr %43, align 4, !tbaa !9
  %1349 = add i32 %1348, -1
  store i32 %1349, ptr %43, align 4, !tbaa !9
  br label %1305, !llvm.loop !55

1350:                                             ; preds = %1305
  %1351 = load i32, ptr %49, align 4, !tbaa !9
  %1352 = lshr i32 %1351, 1
  store i32 %1352, ptr %49, align 4, !tbaa !9
  %1353 = load i32, ptr %49, align 4, !tbaa !9
  %1354 = and i32 %1353, 1
  %1355 = load i32, ptr %40, align 4, !tbaa !9
  %1356 = sub i32 %1355, %1354
  store i32 %1356, ptr %40, align 4, !tbaa !9
  %1357 = load i32, ptr %46, align 4, !tbaa !9
  %1358 = trunc i32 %1357 to i16
  %1359 = load ptr, ptr %41, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1359, i32 0, i32 2
  %1361 = load i32, ptr %40, align 4, !tbaa !9
  %1362 = sub nsw i32 0, %1361
  %1363 = sub nsw i32 %1362, 1
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr inbounds [576 x i16], ptr %1360, i64 0, i64 %1364
  store i16 %1358, ptr %1365, align 2, !tbaa !52
  store i32 0, ptr %28, align 4
  br label %1366

1366:                                             ; preds = %1350, %1278, %1233
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  %1367 = load i32, ptr %28, align 4
  switch i32 %1367, label %3137 [
    i32 0, label %1368
    i32 162, label %1369
  ]

1368:                                             ; preds = %1366
  br label %1369

1369:                                             ; preds = %1368, %1366
  %1370 = load i32, ptr %46, align 4, !tbaa !9
  %1371 = add i32 %1370, 1
  store i32 %1371, ptr %46, align 4, !tbaa !9
  br label %1212, !llvm.loop !56

1372:                                             ; preds = %1212
  %1373 = load ptr, ptr %9, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1373, i32 0, i32 6
  %1375 = load i32, ptr %1374, align 8, !tbaa !31
  %1376 = icmp eq i32 %1375, 2
  br i1 %1376, label %1377, label %1785

1377:                                             ; preds = %1372
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1378

1378:                                             ; preds = %1721, %1589, %1377
  %1379 = load i32, ptr %19, align 4, !tbaa !9
  %1380 = load ptr, ptr %9, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1380, i32 0, i32 11
  %1382 = getelementptr inbounds [3 x i32], ptr %1381, i64 0, i64 0
  %1383 = load i32, ptr %1382, align 4, !tbaa !9
  %1384 = load ptr, ptr %9, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1384, i32 0, i32 11
  %1386 = getelementptr inbounds [3 x i32], ptr %1385, i64 0, i64 1
  %1387 = load i32, ptr %1386, align 4, !tbaa !9
  %1388 = add i32 %1383, %1387
  %1389 = icmp ult i32 %1379, %1388
  br i1 %1389, label %1390, label %1729

1390:                                             ; preds = %1378
  br label %1391

1391:                                             ; preds = %1390
  %1392 = load i32, ptr %17, align 4, !tbaa !9
  %1393 = icmp ult i32 %1392, 15
  br i1 %1393, label %1394, label %1537

1394:                                             ; preds = %1391
  %1395 = load ptr, ptr %23, align 8, !tbaa !5
  %1396 = load ptr, ptr %22, align 8, !tbaa !5
  %1397 = ptrtoint ptr %1395 to i64
  %1398 = ptrtoint ptr %1396 to i64
  %1399 = sub i64 %1397, %1398
  %1400 = icmp slt i64 %1399, 2
  br i1 %1400, label %1401, label %1513

1401:                                             ; preds = %1394
  br label %1402

1402:                                             ; preds = %1509, %1401
  %1403 = load ptr, ptr %9, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1403, i32 0, i32 14
  %1405 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1404, i64 0, i64 2
  %1406 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1405, i32 0, i32 1
  %1407 = load i64, ptr %21, align 8, !tbaa !17
  %1408 = and i64 %1407, 1023
  %1409 = getelementptr inbounds [1024 x i16], ptr %1406, i64 0, i64 %1408
  %1410 = load i16, ptr %1409, align 2, !tbaa !52
  %1411 = sext i16 %1410 to i32
  store i32 %1411, ptr %55, align 4, !tbaa !9
  %1412 = load i32, ptr %55, align 4, !tbaa !9
  %1413 = icmp sge i32 %1412, 0
  br i1 %1413, label %1414, label %1425

1414:                                             ; preds = %1402
  %1415 = load i32, ptr %55, align 4, !tbaa !9
  %1416 = ashr i32 %1415, 9
  store i32 %1416, ptr %56, align 4, !tbaa !9
  %1417 = load i32, ptr %56, align 4, !tbaa !9
  %1418 = icmp ne i32 %1417, 0
  br i1 %1418, label %1419, label %1424

1419:                                             ; preds = %1414
  %1420 = load i32, ptr %17, align 4, !tbaa !9
  %1421 = load i32, ptr %56, align 4, !tbaa !9
  %1422 = icmp uge i32 %1420, %1421
  br i1 %1422, label %1423, label %1424

1423:                                             ; preds = %1419
  br label %1512

1424:                                             ; preds = %1419, %1414
  br label %1463

1425:                                             ; preds = %1402
  %1426 = load i32, ptr %17, align 4, !tbaa !9
  %1427 = icmp ugt i32 %1426, 10
  br i1 %1427, label %1428, label %1462

1428:                                             ; preds = %1425
  store i32 10, ptr %56, align 4, !tbaa !9
  br label %1429

1429:                                             ; preds = %1455, %1428
  %1430 = load ptr, ptr %9, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1430, i32 0, i32 14
  %1432 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1431, i64 0, i64 2
  %1433 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1432, i32 0, i32 2
  %1434 = load i32, ptr %55, align 4, !tbaa !9
  %1435 = xor i32 %1434, -1
  %1436 = sext i32 %1435 to i64
  %1437 = load i64, ptr %21, align 8, !tbaa !17
  %1438 = load i32, ptr %56, align 4, !tbaa !9
  %1439 = add i32 %1438, 1
  store i32 %1439, ptr %56, 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 [576 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 %55, align 4, !tbaa !9
  br label %1447

1447:                                             ; preds = %1429
  %1448 = load i32, ptr %55, align 4, !tbaa !9
  %1449 = icmp slt i32 %1448, 0
  br i1 %1449, label %1450, label %1455

1450:                                             ; preds = %1447
  %1451 = load i32, ptr %17, align 4, !tbaa !9
  %1452 = load i32, ptr %56, align 4, !tbaa !9
  %1453 = add i32 %1452, 1
  %1454 = icmp uge i32 %1451, %1453
  br label %1455

1455:                                             ; preds = %1450, %1447
  %1456 = phi i1 [ false, %1447 ], [ %1454, %1450 ]
  br i1 %1456, label %1429, label %1457, !llvm.loop !57

1457:                                             ; preds = %1455
  %1458 = load i32, ptr %55, align 4, !tbaa !9
  %1459 = icmp sge i32 %1458, 0
  br i1 %1459, label %1460, label %1461

1460:                                             ; preds = %1457
  br label %1512

1461:                                             ; preds = %1457
  br label %1462

1462:                                             ; preds = %1461, %1425
  br label %1463

1463:                                             ; preds = %1462, %1424
  br label %1464

1464:                                             ; preds = %1463
  %1465 = load ptr, ptr %22, align 8, !tbaa !5
  %1466 = load ptr, ptr %23, align 8, !tbaa !5
  %1467 = icmp uge ptr %1465, %1466
  br i1 %1467, label %1468, label %1492

1468:                                             ; preds = %1464
  br label %1469

1469:                                             ; preds = %1490, %1468
  %1470 = load i32, ptr %15, align 4, !tbaa !9
  %1471 = and i32 %1470, 2
  %1472 = icmp ne i32 %1471, 0
  br i1 %1472, label %1473, label %1489

1473:                                             ; preds = %1469
  br label %1474

1474:                                             ; preds = %1473
  store i32 1, ptr %16, align 4, !tbaa !9
  %1475 = load ptr, ptr %9, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1475, i32 0, i32 0
  store i32 16, ptr %1476, align 8, !tbaa !22
  br label %2944

1477:                                             ; preds = %120
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478
  %1480 = load ptr, ptr %22, align 8, !tbaa !5
  %1481 = load ptr, ptr %23, align 8, !tbaa !5
  %1482 = icmp ult ptr %1480, %1481
  br i1 %1482, label %1483, label %1488

1483:                                             ; preds = %1479
  %1484 = load ptr, ptr %22, align 8, !tbaa !5
  %1485 = getelementptr inbounds i8, ptr %1484, i32 1
  store ptr %1485, ptr %22, align 8, !tbaa !5
  %1486 = load i8, ptr %1484, align 1, !tbaa !27
  %1487 = zext i8 %1486 to i32
  store i32 %1487, ptr %57, align 4, !tbaa !9
  br label %1491

1488:                                             ; preds = %1479
  br label %1490

1489:                                             ; preds = %1469
  store i32 0, ptr %57, align 4, !tbaa !9
  br label %1491

1490:                                             ; preds = %1488
  br label %1469

1491:                                             ; preds = %1489, %1483
  br label %1497

1492:                                             ; preds = %1464
  %1493 = load ptr, ptr %22, align 8, !tbaa !5
  %1494 = getelementptr inbounds i8, ptr %1493, i32 1
  store ptr %1494, ptr %22, align 8, !tbaa !5
  %1495 = load i8, ptr %1493, align 1, !tbaa !27
  %1496 = zext i8 %1495 to i32
  store i32 %1496, ptr %57, align 4, !tbaa !9
  br label %1497

1497:                                             ; preds = %1492, %1491
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

1499:                                             ; preds = %1498
  %1500 = load i32, ptr %57, align 4, !tbaa !9
  %1501 = zext i32 %1500 to i64
  %1502 = load i32, ptr %17, align 4, !tbaa !9
  %1503 = zext i32 %1502 to i64
  %1504 = shl i64 %1501, %1503
  %1505 = load i64, ptr %21, align 8, !tbaa !17
  %1506 = or i64 %1505, %1504
  store i64 %1506, ptr %21, align 8, !tbaa !17
  %1507 = load i32, ptr %17, align 4, !tbaa !9
  %1508 = add i32 %1507, 8
  store i32 %1508, ptr %17, align 4, !tbaa !9
  br label %1509

1509:                                             ; preds = %1499
  %1510 = load i32, ptr %17, align 4, !tbaa !9
  %1511 = icmp ult i32 %1510, 15
  br i1 %1511, label %1402, label %1512, !llvm.loop !58

1512:                                             ; preds = %1509, %1460, %1423
  br label %1536

1513:                                             ; preds = %1394
  %1514 = load ptr, ptr %22, align 8, !tbaa !5
  %1515 = getelementptr inbounds i8, ptr %1514, i64 0
  %1516 = load i8, ptr %1515, align 1, !tbaa !27
  %1517 = zext i8 %1516 to i64
  %1518 = load i32, ptr %17, align 4, !tbaa !9
  %1519 = zext i32 %1518 to i64
  %1520 = shl i64 %1517, %1519
  %1521 = load ptr, ptr %22, align 8, !tbaa !5
  %1522 = getelementptr inbounds i8, ptr %1521, i64 1
  %1523 = load i8, ptr %1522, align 1, !tbaa !27
  %1524 = zext i8 %1523 to i64
  %1525 = load i32, ptr %17, align 4, !tbaa !9
  %1526 = add i32 %1525, 8
  %1527 = zext i32 %1526 to i64
  %1528 = shl i64 %1524, %1527
  %1529 = or i64 %1520, %1528
  %1530 = load i64, ptr %21, align 8, !tbaa !17
  %1531 = or i64 %1530, %1529
  store i64 %1531, ptr %21, align 8, !tbaa !17
  %1532 = load ptr, ptr %22, align 8, !tbaa !5
  %1533 = getelementptr inbounds i8, ptr %1532, i64 2
  store ptr %1533, ptr %22, align 8, !tbaa !5
  %1534 = load i32, ptr %17, align 4, !tbaa !9
  %1535 = add i32 %1534, 16
  store i32 %1535, ptr %17, align 4, !tbaa !9
  br label %1536

1536:                                             ; preds = %1513, %1512
  br label %1537

1537:                                             ; preds = %1536, %1391
  %1538 = load ptr, ptr %9, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1538, i32 0, i32 14
  %1540 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1539, i64 0, i64 2
  %1541 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1540, i32 0, i32 1
  %1542 = load i64, ptr %21, align 8, !tbaa !17
  %1543 = and i64 %1542, 1023
  %1544 = getelementptr inbounds [1024 x i16], ptr %1541, i64 0, i64 %1543
  %1545 = load i16, ptr %1544, align 2, !tbaa !52
  %1546 = sext i16 %1545 to i32
  store i32 %1546, ptr %55, align 4, !tbaa !9
  %1547 = icmp sge i32 %1546, 0
  br i1 %1547, label %1548, label %1553

1548:                                             ; preds = %1537
  %1549 = load i32, ptr %55, align 4, !tbaa !9
  %1550 = ashr i32 %1549, 9
  store i32 %1550, ptr %56, align 4, !tbaa !9
  %1551 = load i32, ptr %55, align 4, !tbaa !9
  %1552 = and i32 %1551, 511
  store i32 %1552, ptr %55, align 4, !tbaa !9
  br label %1576

1553:                                             ; preds = %1537
  store i32 10, ptr %56, align 4, !tbaa !9
  br label %1554

1554:                                             ; preds = %1572, %1553
  %1555 = load ptr, ptr %9, align 8, !tbaa !5
  %1556 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1555, i32 0, i32 14
  %1557 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1556, i64 0, i64 2
  %1558 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1557, i32 0, i32 2
  %1559 = load i32, ptr %55, align 4, !tbaa !9
  %1560 = xor i32 %1559, -1
  %1561 = sext i32 %1560 to i64
  %1562 = load i64, ptr %21, align 8, !tbaa !17
  %1563 = load i32, ptr %56, align 4, !tbaa !9
  %1564 = add i32 %1563, 1
  store i32 %1564, ptr %56, align 4, !tbaa !9
  %1565 = zext i32 %1563 to i64
  %1566 = lshr i64 %1562, %1565
  %1567 = and i64 %1566, 1
  %1568 = add i64 %1561, %1567
  %1569 = getelementptr inbounds [576 x i16], ptr %1558, i64 0, i64 %1568
  %1570 = load i16, ptr %1569, align 2, !tbaa !52
  %1571 = sext i16 %1570 to i32
  store i32 %1571, ptr %55, align 4, !tbaa !9
  br label %1572

1572:                                             ; preds = %1554
  %1573 = load i32, ptr %55, align 4, !tbaa !9
  %1574 = icmp slt i32 %1573, 0
  br i1 %1574, label %1554, label %1575, !llvm.loop !59

1575:                                             ; preds = %1572
  br label %1576

1576:                                             ; preds = %1575, %1548
  %1577 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %1577, ptr %18, align 4, !tbaa !9
  %1578 = load i32, ptr %56, align 4, !tbaa !9
  %1579 = load i64, ptr %21, align 8, !tbaa !17
  %1580 = zext i32 %1578 to i64
  %1581 = lshr i64 %1579, %1580
  store i64 %1581, ptr %21, align 8, !tbaa !17
  %1582 = load i32, ptr %56, align 4, !tbaa !9
  %1583 = load i32, ptr %17, align 4, !tbaa !9
  %1584 = sub i32 %1583, %1582
  store i32 %1584, ptr %17, align 4, !tbaa !9
  br label %1585

1585:                                             ; preds = %1576
  br label %1586

1586:                                             ; preds = %1585
  %1587 = load i32, ptr %18, align 4, !tbaa !9
  %1588 = icmp ult i32 %1587, 16
  br i1 %1588, label %1589, label %1598

1589:                                             ; preds = %1586
  %1590 = load i32, ptr %18, align 4, !tbaa !9
  %1591 = trunc i32 %1590 to i8
  %1592 = load ptr, ptr %9, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1592, i32 0, i32 16
  %1594 = load i32, ptr %19, align 4, !tbaa !9
  %1595 = add i32 %1594, 1
  store i32 %1595, ptr %19, align 4, !tbaa !9
  %1596 = zext i32 %1594 to i64
  %1597 = getelementptr inbounds [457 x i8], ptr %1593, i64 0, i64 %1596
  store i8 %1591, ptr %1597, align 1, !tbaa !27
  br label %1378, !llvm.loop !60

1598:                                             ; preds = %1586
  %1599 = load i32, ptr %18, align 4, !tbaa !9
  %1600 = icmp eq i32 %1599, 16
  br i1 %1600, label %1601, label %1615

1601:                                             ; preds = %1598
  %1602 = load i32, ptr %19, align 4, !tbaa !9
  %1603 = icmp ne i32 %1602, 0
  br i1 %1603, label %1615, label %1604

1604:                                             ; preds = %1601
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

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

1607:                                             ; preds = %1606
  store i32 -1, ptr %16, 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 17, ptr %1609, align 8, !tbaa !22
  br label %2944

1610:                                             ; preds = %120
  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, %1601, %1598
  %1616 = load i32, ptr %18, align 4, !tbaa !9
  %1617 = sub i32 %1616, 16
  %1618 = zext i32 %1617 to i64
  %1619 = getelementptr inbounds [4 x i8], ptr @.str.12, i64 0, i64 %1618
  %1620 = load i8, ptr %1619, align 1, !tbaa !27
  %1621 = sext i8 %1620 to i32
  store i32 %1621, ptr %20, align 4, !tbaa !9
  br label %1622

1622:                                             ; preds = %1615
  %1623 = load i32, ptr %17, align 4, !tbaa !9
  %1624 = load i32, ptr %20, align 4, !tbaa !9
  %1625 = icmp ult i32 %1623, %1624
  br i1 %1625, label %1626, label %1678

1626:                                             ; preds = %1622
  br label %1627

1627:                                             ; preds = %1673, %1626
  br label %1628

1628:                                             ; preds = %1627
  %1629 = load ptr, ptr %22, align 8, !tbaa !5
  %1630 = load ptr, ptr %23, align 8, !tbaa !5
  %1631 = icmp uge ptr %1629, %1630
  br i1 %1631, label %1632, label %1656

1632:                                             ; preds = %1628
  br label %1633

1633:                                             ; preds = %1654, %1632
  %1634 = load i32, ptr %15, align 4, !tbaa !9
  %1635 = and i32 %1634, 2
  %1636 = icmp ne i32 %1635, 0
  br i1 %1636, label %1637, label %1653

1637:                                             ; preds = %1633
  br label %1638

1638:                                             ; preds = %1637
  store i32 1, ptr %16, align 4, !tbaa !9
  %1639 = load ptr, ptr %9, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1639, i32 0, i32 0
  store i32 18, ptr %1640, align 8, !tbaa !22
  br label %2944

1641:                                             ; preds = %120
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

1643:                                             ; preds = %1642
  %1644 = load ptr, ptr %22, align 8, !tbaa !5
  %1645 = load ptr, ptr %23, align 8, !tbaa !5
  %1646 = icmp ult ptr %1644, %1645
  br i1 %1646, label %1647, label %1652

1647:                                             ; preds = %1643
  %1648 = load ptr, ptr %22, align 8, !tbaa !5
  %1649 = getelementptr inbounds i8, ptr %1648, i32 1
  store ptr %1649, ptr %22, align 8, !tbaa !5
  %1650 = load i8, ptr %1648, align 1, !tbaa !27
  %1651 = zext i8 %1650 to i32
  store i32 %1651, ptr %58, align 4, !tbaa !9
  br label %1655

1652:                                             ; preds = %1643
  br label %1654

1653:                                             ; preds = %1633
  store i32 0, ptr %58, align 4, !tbaa !9
  br label %1655

1654:                                             ; preds = %1652
  br label %1633

1655:                                             ; preds = %1653, %1647
  br label %1661

1656:                                             ; preds = %1628
  %1657 = load ptr, ptr %22, align 8, !tbaa !5
  %1658 = getelementptr inbounds i8, ptr %1657, i32 1
  store ptr %1658, ptr %22, align 8, !tbaa !5
  %1659 = load i8, ptr %1657, align 1, !tbaa !27
  %1660 = zext i8 %1659 to i32
  store i32 %1660, ptr %58, align 4, !tbaa !9
  br label %1661

1661:                                             ; preds = %1656, %1655
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  %1664 = load i32, ptr %58, align 4, !tbaa !9
  %1665 = zext i32 %1664 to i64
  %1666 = load i32, ptr %17, align 4, !tbaa !9
  %1667 = zext i32 %1666 to i64
  %1668 = shl i64 %1665, %1667
  %1669 = load i64, ptr %21, align 8, !tbaa !17
  %1670 = or i64 %1669, %1668
  store i64 %1670, ptr %21, align 8, !tbaa !17
  %1671 = load i32, ptr %17, align 4, !tbaa !9
  %1672 = add i32 %1671, 8
  store i32 %1672, ptr %17, align 4, !tbaa !9
  br label %1673

1673:                                             ; preds = %1663
  %1674 = load i32, ptr %17, align 4, !tbaa !9
  %1675 = load i32, ptr %20, align 4, !tbaa !9
  %1676 = icmp ult i32 %1674, %1675
  br i1 %1676, label %1627, label %1677, !llvm.loop !61

1677:                                             ; preds = %1673
  br label %1678

1678:                                             ; preds = %1677, %1622
  %1679 = load i64, ptr %21, align 8, !tbaa !17
  %1680 = load i32, ptr %20, align 4, !tbaa !9
  %1681 = shl i32 1, %1680
  %1682 = sub nsw i32 %1681, 1
  %1683 = sext i32 %1682 to i64
  %1684 = and i64 %1679, %1683
  %1685 = trunc i64 %1684 to i32
  store i32 %1685, ptr %54, align 4, !tbaa !9
  %1686 = load i32, ptr %20, align 4, !tbaa !9
  %1687 = load i64, ptr %21, align 8, !tbaa !17
  %1688 = zext i32 %1686 to i64
  %1689 = lshr i64 %1687, %1688
  store i64 %1689, ptr %21, align 8, !tbaa !17
  %1690 = load i32, ptr %20, align 4, !tbaa !9
  %1691 = load i32, ptr %17, align 4, !tbaa !9
  %1692 = sub i32 %1691, %1690
  store i32 %1692, ptr %17, align 4, !tbaa !9
  br label %1693

1693:                                             ; preds = %1678
  br label %1694

1694:                                             ; preds = %1693
  %1695 = load i32, ptr %18, align 4, !tbaa !9
  %1696 = sub i32 %1695, 16
  %1697 = zext i32 %1696 to i64
  %1698 = getelementptr inbounds [4 x i8], ptr @.str.13, i64 0, i64 %1697
  %1699 = load i8, ptr %1698, align 1, !tbaa !27
  %1700 = sext i8 %1699 to i32
  %1701 = load i32, ptr %54, align 4, !tbaa !9
  %1702 = add i32 %1701, %1700
  store i32 %1702, ptr %54, align 4, !tbaa !9
  %1703 = load ptr, ptr %9, align 8, !tbaa !5
  %1704 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1703, i32 0, i32 16
  %1705 = getelementptr inbounds [457 x i8], ptr %1704, i64 0, i64 0
  %1706 = load i32, ptr %19, align 4, !tbaa !9
  %1707 = zext i32 %1706 to i64
  %1708 = getelementptr inbounds i8, ptr %1705, i64 %1707
  %1709 = load i32, ptr %18, align 4, !tbaa !9
  %1710 = icmp eq i32 %1709, 16
  br i1 %1710, label %1711, label %1720

1711:                                             ; preds = %1694
  %1712 = load ptr, ptr %9, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1712, i32 0, i32 16
  %1714 = load i32, ptr %19, align 4, !tbaa !9
  %1715 = sub i32 %1714, 1
  %1716 = zext i32 %1715 to i64
  %1717 = getelementptr inbounds [457 x i8], ptr %1713, i64 0, i64 %1716
  %1718 = load i8, ptr %1717, align 1, !tbaa !27
  %1719 = zext i8 %1718 to i32
  br label %1721

1720:                                             ; preds = %1694
  br label %1721

1721:                                             ; preds = %1720, %1711
  %1722 = phi i32 [ %1719, %1711 ], [ 0, %1720 ]
  %1723 = trunc i32 %1722 to i8
  %1724 = load i32, ptr %54, align 4, !tbaa !9
  %1725 = zext i32 %1724 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1708, i8 %1723, i64 %1725, i1 false)
  %1726 = load i32, ptr %54, align 4, !tbaa !9
  %1727 = load i32, ptr %19, align 4, !tbaa !9
  %1728 = add i32 %1727, %1726
  store i32 %1728, ptr %19, align 4, !tbaa !9
  br label %1378, !llvm.loop !60

1729:                                             ; preds = %1378
  %1730 = load ptr, ptr %9, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1730, i32 0, i32 11
  %1732 = getelementptr inbounds [3 x i32], ptr %1731, i64 0, i64 0
  %1733 = load i32, ptr %1732, align 4, !tbaa !9
  %1734 = load ptr, ptr %9, align 8, !tbaa !5
  %1735 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1734, i32 0, i32 11
  %1736 = getelementptr inbounds [3 x i32], ptr %1735, i64 0, i64 1
  %1737 = load i32, ptr %1736, align 4, !tbaa !9
  %1738 = add i32 %1733, %1737
  %1739 = load i32, ptr %19, align 4, !tbaa !9
  %1740 = icmp ne i32 %1738, %1739
  br i1 %1740, label %1741, label %1752

1741:                                             ; preds = %1729
  br label %1742

1742:                                             ; preds = %1741
  br label %1743

1743:                                             ; preds = %1749, %1742
  br label %1744

1744:                                             ; preds = %1743
  store i32 -1, ptr %16, align 4, !tbaa !9
  %1745 = load ptr, ptr %9, align 8, !tbaa !5
  %1746 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1745, i32 0, i32 0
  store i32 21, ptr %1746, align 8, !tbaa !22
  br label %2944

1747:                                             ; preds = %120
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748
  br label %1743

1750:                                             ; No predecessors!
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751, %1729
  %1753 = load ptr, ptr %9, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1753, i32 0, i32 14
  %1755 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1754, i64 0, i64 0
  %1756 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1755, i32 0, i32 0
  %1757 = getelementptr inbounds [288 x i8], ptr %1756, i64 0, i64 0
  %1758 = load ptr, ptr %9, align 8, !tbaa !5
  %1759 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1758, i32 0, i32 16
  %1760 = getelementptr inbounds [457 x i8], ptr %1759, i64 0, i64 0
  %1761 = load ptr, ptr %9, align 8, !tbaa !5
  %1762 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1761, i32 0, i32 11
  %1763 = getelementptr inbounds [3 x i32], ptr %1762, i64 0, i64 0
  %1764 = load i32, ptr %1763, align 4, !tbaa !9
  %1765 = zext i32 %1764 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1757, ptr align 4 %1760, i64 %1765, i1 false)
  %1766 = load ptr, ptr %9, align 8, !tbaa !5
  %1767 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1766, i32 0, i32 14
  %1768 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1767, i64 0, i64 1
  %1769 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1768, i32 0, i32 0
  %1770 = getelementptr inbounds [288 x i8], ptr %1769, i64 0, i64 0
  %1771 = load ptr, ptr %9, align 8, !tbaa !5
  %1772 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1771, i32 0, i32 16
  %1773 = getelementptr inbounds [457 x i8], ptr %1772, i64 0, i64 0
  %1774 = load ptr, ptr %9, align 8, !tbaa !5
  %1775 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1774, i32 0, i32 11
  %1776 = getelementptr inbounds [3 x i32], ptr %1775, i64 0, i64 0
  %1777 = load i32, ptr %1776, align 4, !tbaa !9
  %1778 = zext i32 %1777 to i64
  %1779 = getelementptr inbounds i8, ptr %1773, i64 %1778
  %1780 = load ptr, ptr %9, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1780, i32 0, i32 11
  %1782 = getelementptr inbounds [3 x i32], ptr %1781, i64 0, i64 1
  %1783 = load i32, ptr %1782, align 4, !tbaa !9
  %1784 = zext i32 %1783 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1770, ptr align 1 %1779, i64 %1784, i1 false)
  br label %1785

1785:                                             ; preds = %1752, %1372
  br label %1786

1786:                                             ; preds = %1785
  %1787 = load ptr, ptr %9, align 8, !tbaa !5
  %1788 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1787, i32 0, i32 6
  %1789 = load i32, ptr %1788, align 8, !tbaa !31
  %1790 = add i32 %1789, -1
  store i32 %1790, ptr %1788, align 8, !tbaa !31
  br label %1125, !llvm.loop !62

1791:                                             ; preds = %1125
  br label %1792

1792:                                             ; preds = %2725, %2674, %2614, %1791
  br label %1793

1793:                                             ; preds = %2156, %1792
  %1794 = load ptr, ptr %23, align 8, !tbaa !5
  %1795 = load ptr, ptr %22, align 8, !tbaa !5
  %1796 = ptrtoint ptr %1794 to i64
  %1797 = ptrtoint ptr %1795 to i64
  %1798 = sub i64 %1796, %1797
  %1799 = icmp slt i64 %1798, 4
  br i1 %1799, label %1807, label %1800

1800:                                             ; preds = %1793
  %1801 = load ptr, ptr %25, align 8, !tbaa !5
  %1802 = load ptr, ptr %24, align 8, !tbaa !5
  %1803 = ptrtoint ptr %1801 to i64
  %1804 = ptrtoint ptr %1802 to i64
  %1805 = sub i64 %1803, %1804
  %1806 = icmp slt i64 %1805, 2
  br i1 %1806, label %1807, label %2024

1807:                                             ; preds = %1800, %1793
  br label %1808

1808:                                             ; preds = %1807
  %1809 = load i32, ptr %17, align 4, !tbaa !9
  %1810 = icmp ult i32 %1809, 15
  br i1 %1810, label %1811, label %1954

1811:                                             ; preds = %1808
  %1812 = load ptr, ptr %23, align 8, !tbaa !5
  %1813 = load ptr, ptr %22, align 8, !tbaa !5
  %1814 = ptrtoint ptr %1812 to i64
  %1815 = ptrtoint ptr %1813 to i64
  %1816 = sub i64 %1814, %1815
  %1817 = icmp slt i64 %1816, 2
  br i1 %1817, label %1818, label %1930

1818:                                             ; preds = %1811
  br label %1819

1819:                                             ; preds = %1926, %1818
  %1820 = load ptr, ptr %9, align 8, !tbaa !5
  %1821 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1820, i32 0, i32 14
  %1822 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1821, i64 0, i64 0
  %1823 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1822, i32 0, i32 1
  %1824 = load i64, ptr %21, align 8, !tbaa !17
  %1825 = and i64 %1824, 1023
  %1826 = getelementptr inbounds [1024 x i16], ptr %1823, i64 0, i64 %1825
  %1827 = load i16, ptr %1826, align 2, !tbaa !52
  %1828 = sext i16 %1827 to i32
  store i32 %1828, ptr %60, align 4, !tbaa !9
  %1829 = load i32, ptr %60, align 4, !tbaa !9
  %1830 = icmp sge i32 %1829, 0
  br i1 %1830, label %1831, label %1842

1831:                                             ; preds = %1819
  %1832 = load i32, ptr %60, align 4, !tbaa !9
  %1833 = ashr i32 %1832, 9
  store i32 %1833, ptr %61, align 4, !tbaa !9
  %1834 = load i32, ptr %61, align 4, !tbaa !9
  %1835 = icmp ne i32 %1834, 0
  br i1 %1835, label %1836, label %1841

1836:                                             ; preds = %1831
  %1837 = load i32, ptr %17, align 4, !tbaa !9
  %1838 = load i32, ptr %61, align 4, !tbaa !9
  %1839 = icmp uge i32 %1837, %1838
  br i1 %1839, label %1840, label %1841

1840:                                             ; preds = %1836
  br label %1929

1841:                                             ; preds = %1836, %1831
  br label %1880

1842:                                             ; preds = %1819
  %1843 = load i32, ptr %17, align 4, !tbaa !9
  %1844 = icmp ugt i32 %1843, 10
  br i1 %1844, label %1845, label %1879

1845:                                             ; preds = %1842
  store i32 10, ptr %61, align 4, !tbaa !9
  br label %1846

1846:                                             ; preds = %1872, %1845
  %1847 = load ptr, ptr %9, align 8, !tbaa !5
  %1848 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1847, i32 0, i32 14
  %1849 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1848, i64 0, i64 0
  %1850 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1849, i32 0, i32 2
  %1851 = load i32, ptr %60, align 4, !tbaa !9
  %1852 = xor i32 %1851, -1
  %1853 = sext i32 %1852 to i64
  %1854 = load i64, ptr %21, align 8, !tbaa !17
  %1855 = load i32, ptr %61, align 4, !tbaa !9
  %1856 = add i32 %1855, 1
  store i32 %1856, ptr %61, align 4, !tbaa !9
  %1857 = zext i32 %1855 to i64
  %1858 = lshr i64 %1854, %1857
  %1859 = and i64 %1858, 1
  %1860 = add i64 %1853, %1859
  %1861 = getelementptr inbounds [576 x i16], ptr %1850, i64 0, i64 %1860
  %1862 = load i16, ptr %1861, align 2, !tbaa !52
  %1863 = sext i16 %1862 to i32
  store i32 %1863, ptr %60, align 4, !tbaa !9
  br label %1864

1864:                                             ; preds = %1846
  %1865 = load i32, ptr %60, align 4, !tbaa !9
  %1866 = icmp slt i32 %1865, 0
  br i1 %1866, label %1867, label %1872

1867:                                             ; preds = %1864
  %1868 = load i32, ptr %17, align 4, !tbaa !9
  %1869 = load i32, ptr %61, align 4, !tbaa !9
  %1870 = add i32 %1869, 1
  %1871 = icmp uge i32 %1868, %1870
  br label %1872

1872:                                             ; preds = %1867, %1864
  %1873 = phi i1 [ false, %1864 ], [ %1871, %1867 ]
  br i1 %1873, label %1846, label %1874, !llvm.loop !63

1874:                                             ; preds = %1872
  %1875 = load i32, ptr %60, align 4, !tbaa !9
  %1876 = icmp sge i32 %1875, 0
  br i1 %1876, label %1877, label %1878

1877:                                             ; preds = %1874
  br label %1929

1878:                                             ; preds = %1874
  br label %1879

1879:                                             ; preds = %1878, %1842
  br label %1880

1880:                                             ; preds = %1879, %1841
  br label %1881

1881:                                             ; preds = %1880
  %1882 = load ptr, ptr %22, align 8, !tbaa !5
  %1883 = load ptr, ptr %23, align 8, !tbaa !5
  %1884 = icmp uge ptr %1882, %1883
  br i1 %1884, label %1885, label %1909

1885:                                             ; preds = %1881
  br label %1886

1886:                                             ; preds = %1907, %1885
  %1887 = load i32, ptr %15, align 4, !tbaa !9
  %1888 = and i32 %1887, 2
  %1889 = icmp ne i32 %1888, 0
  br i1 %1889, label %1890, label %1906

1890:                                             ; preds = %1886
  br label %1891

1891:                                             ; preds = %1890
  store i32 1, ptr %16, align 4, !tbaa !9
  %1892 = load ptr, ptr %9, align 8, !tbaa !5
  %1893 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1892, i32 0, i32 0
  store i32 23, ptr %1893, align 8, !tbaa !22
  br label %2944

1894:                                             ; preds = %120
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895
  %1897 = load ptr, ptr %22, align 8, !tbaa !5
  %1898 = load ptr, ptr %23, align 8, !tbaa !5
  %1899 = icmp ult ptr %1897, %1898
  br i1 %1899, label %1900, label %1905

1900:                                             ; preds = %1896
  %1901 = load ptr, ptr %22, align 8, !tbaa !5
  %1902 = getelementptr inbounds i8, ptr %1901, i32 1
  store ptr %1902, ptr %22, align 8, !tbaa !5
  %1903 = load i8, ptr %1901, align 1, !tbaa !27
  %1904 = zext i8 %1903 to i32
  store i32 %1904, ptr %62, align 4, !tbaa !9
  br label %1908

1905:                                             ; preds = %1896
  br label %1907

1906:                                             ; preds = %1886
  store i32 0, ptr %62, align 4, !tbaa !9
  br label %1908

1907:                                             ; preds = %1905
  br label %1886

1908:                                             ; preds = %1906, %1900
  br label %1914

1909:                                             ; preds = %1881
  %1910 = load ptr, ptr %22, align 8, !tbaa !5
  %1911 = getelementptr inbounds i8, ptr %1910, i32 1
  store ptr %1911, ptr %22, align 8, !tbaa !5
  %1912 = load i8, ptr %1910, align 1, !tbaa !27
  %1913 = zext i8 %1912 to i32
  store i32 %1913, ptr %62, align 4, !tbaa !9
  br label %1914

1914:                                             ; preds = %1909, %1908
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  %1917 = load i32, ptr %62, align 4, !tbaa !9
  %1918 = zext i32 %1917 to i64
  %1919 = load i32, ptr %17, align 4, !tbaa !9
  %1920 = zext i32 %1919 to i64
  %1921 = shl i64 %1918, %1920
  %1922 = load i64, ptr %21, align 8, !tbaa !17
  %1923 = or i64 %1922, %1921
  store i64 %1923, ptr %21, align 8, !tbaa !17
  %1924 = load i32, ptr %17, align 4, !tbaa !9
  %1925 = add i32 %1924, 8
  store i32 %1925, ptr %17, align 4, !tbaa !9
  br label %1926

1926:                                             ; preds = %1916
  %1927 = load i32, ptr %17, align 4, !tbaa !9
  %1928 = icmp ult i32 %1927, 15
  br i1 %1928, label %1819, label %1929, !llvm.loop !64

1929:                                             ; preds = %1926, %1877, %1840
  br label %1953

1930:                                             ; preds = %1811
  %1931 = load ptr, ptr %22, align 8, !tbaa !5
  %1932 = getelementptr inbounds i8, ptr %1931, i64 0
  %1933 = load i8, ptr %1932, align 1, !tbaa !27
  %1934 = zext i8 %1933 to i64
  %1935 = load i32, ptr %17, align 4, !tbaa !9
  %1936 = zext i32 %1935 to i64
  %1937 = shl i64 %1934, %1936
  %1938 = load ptr, ptr %22, align 8, !tbaa !5
  %1939 = getelementptr inbounds i8, ptr %1938, i64 1
  %1940 = load i8, ptr %1939, align 1, !tbaa !27
  %1941 = zext i8 %1940 to i64
  %1942 = load i32, ptr %17, align 4, !tbaa !9
  %1943 = add i32 %1942, 8
  %1944 = zext i32 %1943 to i64
  %1945 = shl i64 %1941, %1944
  %1946 = or i64 %1937, %1945
  %1947 = load i64, ptr %21, align 8, !tbaa !17
  %1948 = or i64 %1947, %1946
  store i64 %1948, ptr %21, align 8, !tbaa !17
  %1949 = load ptr, ptr %22, align 8, !tbaa !5
  %1950 = getelementptr inbounds i8, ptr %1949, i64 2
  store ptr %1950, ptr %22, align 8, !tbaa !5
  %1951 = load i32, ptr %17, align 4, !tbaa !9
  %1952 = add i32 %1951, 16
  store i32 %1952, ptr %17, align 4, !tbaa !9
  br label %1953

1953:                                             ; preds = %1930, %1929
  br label %1954

1954:                                             ; preds = %1953, %1808
  %1955 = load ptr, ptr %9, align 8, !tbaa !5
  %1956 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1955, i32 0, i32 14
  %1957 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1956, i64 0, i64 0
  %1958 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1957, i32 0, i32 1
  %1959 = load i64, ptr %21, align 8, !tbaa !17
  %1960 = and i64 %1959, 1023
  %1961 = getelementptr inbounds [1024 x i16], ptr %1958, i64 0, i64 %1960
  %1962 = load i16, ptr %1961, align 2, !tbaa !52
  %1963 = sext i16 %1962 to i32
  store i32 %1963, ptr %60, align 4, !tbaa !9
  %1964 = icmp sge i32 %1963, 0
  br i1 %1964, label %1965, label %1970

1965:                                             ; preds = %1954
  %1966 = load i32, ptr %60, align 4, !tbaa !9
  %1967 = ashr i32 %1966, 9
  store i32 %1967, ptr %61, align 4, !tbaa !9
  %1968 = load i32, ptr %60, align 4, !tbaa !9
  %1969 = and i32 %1968, 511
  store i32 %1969, ptr %60, align 4, !tbaa !9
  br label %1993

1970:                                             ; preds = %1954
  store i32 10, ptr %61, align 4, !tbaa !9
  br label %1971

1971:                                             ; preds = %1989, %1970
  %1972 = load ptr, ptr %9, align 8, !tbaa !5
  %1973 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %1972, i32 0, i32 14
  %1974 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %1973, i64 0, i64 0
  %1975 = getelementptr inbounds %struct.tinfl_huff_table, ptr %1974, i32 0, i32 2
  %1976 = load i32, ptr %60, align 4, !tbaa !9
  %1977 = xor i32 %1976, -1
  %1978 = sext i32 %1977 to i64
  %1979 = load i64, ptr %21, align 8, !tbaa !17
  %1980 = load i32, ptr %61, align 4, !tbaa !9
  %1981 = add i32 %1980, 1
  store i32 %1981, ptr %61, align 4, !tbaa !9
  %1982 = zext i32 %1980 to i64
  %1983 = lshr i64 %1979, %1982
  %1984 = and i64 %1983, 1
  %1985 = add i64 %1978, %1984
  %1986 = getelementptr inbounds [576 x i16], ptr %1975, i64 0, i64 %1985
  %1987 = load i16, ptr %1986, align 2, !tbaa !52
  %1988 = sext i16 %1987 to i32
  store i32 %1988, ptr %60, align 4, !tbaa !9
  br label %1989

1989:                                             ; preds = %1971
  %1990 = load i32, ptr %60, align 4, !tbaa !9
  %1991 = icmp slt i32 %1990, 0
  br i1 %1991, label %1971, label %1992, !llvm.loop !65

1992:                                             ; preds = %1989
  br label %1993

1993:                                             ; preds = %1992, %1965
  %1994 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1994, ptr %19, align 4, !tbaa !9
  %1995 = load i32, ptr %61, align 4, !tbaa !9
  %1996 = load i64, ptr %21, align 8, !tbaa !17
  %1997 = zext i32 %1995 to i64
  %1998 = lshr i64 %1996, %1997
  store i64 %1998, ptr %21, align 8, !tbaa !17
  %1999 = load i32, ptr %61, align 4, !tbaa !9
  %2000 = load i32, ptr %17, align 4, !tbaa !9
  %2001 = sub i32 %2000, %1999
  store i32 %2001, ptr %17, align 4, !tbaa !9
  br label %2002

2002:                                             ; preds = %1993
  br label %2003

2003:                                             ; preds = %2002
  %2004 = load i32, ptr %19, align 4, !tbaa !9
  %2005 = icmp uge i32 %2004, 256
  br i1 %2005, label %2006, label %2007

2006:                                             ; preds = %2003
  br label %2157

2007:                                             ; preds = %2003
  br label %2008

2008:                                             ; preds = %2018, %2007
  %2009 = load ptr, ptr %24, align 8, !tbaa !5
  %2010 = load ptr, ptr %25, align 8, !tbaa !5
  %2011 = icmp uge ptr %2009, %2010
  br i1 %2011, label %2012, label %2019

2012:                                             ; preds = %2008
  br label %2013

2013:                                             ; preds = %2012
  store i32 2, ptr %16, align 4, !tbaa !9
  %2014 = load ptr, ptr %9, align 8, !tbaa !5
  %2015 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2014, i32 0, i32 0
  store i32 24, ptr %2015, align 8, !tbaa !22
  br label %2944

2016:                                             ; preds = %120
  br label %2017

2017:                                             ; preds = %2016
  br label %2018

2018:                                             ; preds = %2017
  br label %2008, !llvm.loop !66

2019:                                             ; preds = %2008
  %2020 = load i32, ptr %19, align 4, !tbaa !9
  %2021 = trunc i32 %2020 to i8
  %2022 = load ptr, ptr %24, align 8, !tbaa !5
  %2023 = getelementptr inbounds i8, ptr %2022, i32 1
  store ptr %2023, ptr %24, align 8, !tbaa !5
  store i8 %2021, ptr %2022, align 1, !tbaa !27
  br label %2156

2024:                                             ; preds = %1800
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  %2025 = load i32, ptr %17, align 4, !tbaa !9
  %2026 = icmp ult i32 %2025, 30
  br i1 %2026, label %2027, label %2040

2027:                                             ; preds = %2024
  %2028 = load ptr, ptr %22, align 8, !tbaa !5
  %2029 = load i32, ptr %2028, align 4, !tbaa !9
  %2030 = zext i32 %2029 to i64
  %2031 = load i32, ptr %17, align 4, !tbaa !9
  %2032 = zext i32 %2031 to i64
  %2033 = shl i64 %2030, %2032
  %2034 = load i64, ptr %21, align 8, !tbaa !17
  %2035 = or i64 %2034, %2033
  store i64 %2035, ptr %21, align 8, !tbaa !17
  %2036 = load ptr, ptr %22, align 8, !tbaa !5
  %2037 = getelementptr inbounds i8, ptr %2036, i64 4
  store ptr %2037, ptr %22, align 8, !tbaa !5
  %2038 = load i32, ptr %17, align 4, !tbaa !9
  %2039 = add i32 %2038, 32
  store i32 %2039, ptr %17, align 4, !tbaa !9
  br label %2040

2040:                                             ; preds = %2027, %2024
  %2041 = load ptr, ptr %9, align 8, !tbaa !5
  %2042 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2041, i32 0, i32 14
  %2043 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2042, i64 0, i64 0
  %2044 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2043, i32 0, i32 1
  %2045 = load i64, ptr %21, align 8, !tbaa !17
  %2046 = and i64 %2045, 1023
  %2047 = getelementptr inbounds [1024 x i16], ptr %2044, i64 0, i64 %2046
  %2048 = load i16, ptr %2047, align 2, !tbaa !52
  %2049 = sext i16 %2048 to i32
  store i32 %2049, ptr %63, align 4, !tbaa !9
  %2050 = icmp sge i32 %2049, 0
  br i1 %2050, label %2051, label %2054

2051:                                             ; preds = %2040
  %2052 = load i32, ptr %63, align 4, !tbaa !9
  %2053 = ashr i32 %2052, 9
  store i32 %2053, ptr %64, align 4, !tbaa !9
  br label %2077

2054:                                             ; preds = %2040
  store i32 10, ptr %64, align 4, !tbaa !9
  br label %2055

2055:                                             ; preds = %2073, %2054
  %2056 = load ptr, ptr %9, align 8, !tbaa !5
  %2057 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2056, i32 0, i32 14
  %2058 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2057, i64 0, i64 0
  %2059 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2058, i32 0, i32 2
  %2060 = load i32, ptr %63, align 4, !tbaa !9
  %2061 = xor i32 %2060, -1
  %2062 = sext i32 %2061 to i64
  %2063 = load i64, ptr %21, align 8, !tbaa !17
  %2064 = load i32, ptr %64, align 4, !tbaa !9
  %2065 = add i32 %2064, 1
  store i32 %2065, ptr %64, align 4, !tbaa !9
  %2066 = zext i32 %2064 to i64
  %2067 = lshr i64 %2063, %2066
  %2068 = and i64 %2067, 1
  %2069 = add i64 %2062, %2068
  %2070 = getelementptr inbounds [576 x i16], ptr %2059, i64 0, i64 %2069
  %2071 = load i16, ptr %2070, align 2, !tbaa !52
  %2072 = sext i16 %2071 to i32
  store i32 %2072, ptr %63, align 4, !tbaa !9
  br label %2073

2073:                                             ; preds = %2055
  %2074 = load i32, ptr %63, align 4, !tbaa !9
  %2075 = icmp slt i32 %2074, 0
  br i1 %2075, label %2055, label %2076, !llvm.loop !67

2076:                                             ; preds = %2073
  br label %2077

2077:                                             ; preds = %2076, %2051
  %2078 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %2078, ptr %19, align 4, !tbaa !9
  %2079 = load i32, ptr %64, align 4, !tbaa !9
  %2080 = load i64, ptr %21, align 8, !tbaa !17
  %2081 = zext i32 %2079 to i64
  %2082 = lshr i64 %2080, %2081
  store i64 %2082, ptr %21, align 8, !tbaa !17
  %2083 = load i32, ptr %64, align 4, !tbaa !9
  %2084 = load i32, ptr %17, align 4, !tbaa !9
  %2085 = sub i32 %2084, %2083
  store i32 %2085, ptr %17, align 4, !tbaa !9
  %2086 = load i32, ptr %19, align 4, !tbaa !9
  %2087 = and i32 %2086, 256
  %2088 = icmp ne i32 %2087, 0
  br i1 %2088, label %2089, label %2090

2089:                                             ; preds = %2077
  store i32 211, ptr %28, align 4
  br label %2153

2090:                                             ; preds = %2077
  %2091 = load ptr, ptr %9, align 8, !tbaa !5
  %2092 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2091, i32 0, i32 14
  %2093 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2092, i64 0, i64 0
  %2094 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2093, i32 0, i32 1
  %2095 = load i64, ptr %21, align 8, !tbaa !17
  %2096 = and i64 %2095, 1023
  %2097 = getelementptr inbounds [1024 x i16], ptr %2094, i64 0, i64 %2096
  %2098 = load i16, ptr %2097, align 2, !tbaa !52
  %2099 = sext i16 %2098 to i32
  store i32 %2099, ptr %63, align 4, !tbaa !9
  %2100 = icmp sge i32 %2099, 0
  br i1 %2100, label %2101, label %2104

2101:                                             ; preds = %2090
  %2102 = load i32, ptr %63, align 4, !tbaa !9
  %2103 = ashr i32 %2102, 9
  store i32 %2103, ptr %64, align 4, !tbaa !9
  br label %2127

2104:                                             ; preds = %2090
  store i32 10, ptr %64, align 4, !tbaa !9
  br label %2105

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

2123:                                             ; preds = %2105
  %2124 = load i32, ptr %63, align 4, !tbaa !9
  %2125 = icmp slt i32 %2124, 0
  br i1 %2125, label %2105, label %2126, !llvm.loop !68

2126:                                             ; preds = %2123
  br label %2127

2127:                                             ; preds = %2126, %2101
  %2128 = load i32, ptr %64, align 4, !tbaa !9
  %2129 = load i64, ptr %21, align 8, !tbaa !17
  %2130 = zext i32 %2128 to i64
  %2131 = lshr i64 %2129, %2130
  store i64 %2131, ptr %21, align 8, !tbaa !17
  %2132 = load i32, ptr %64, align 4, !tbaa !9
  %2133 = load i32, ptr %17, align 4, !tbaa !9
  %2134 = sub i32 %2133, %2132
  store i32 %2134, ptr %17, align 4, !tbaa !9
  %2135 = load i32, ptr %19, align 4, !tbaa !9
  %2136 = trunc i32 %2135 to i8
  %2137 = load ptr, ptr %24, align 8, !tbaa !5
  %2138 = getelementptr inbounds i8, ptr %2137, i64 0
  store i8 %2136, ptr %2138, align 1, !tbaa !27
  %2139 = load i32, ptr %63, align 4, !tbaa !9
  %2140 = and i32 %2139, 256
  %2141 = icmp ne i32 %2140, 0
  br i1 %2141, label %2142, label %2146

2142:                                             ; preds = %2127
  %2143 = load ptr, ptr %24, align 8, !tbaa !5
  %2144 = getelementptr inbounds i8, ptr %2143, i32 1
  store ptr %2144, ptr %24, align 8, !tbaa !5
  %2145 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %2145, ptr %19, align 4, !tbaa !9
  store i32 211, ptr %28, align 4
  br label %2153

2146:                                             ; preds = %2127
  %2147 = load i32, ptr %63, align 4, !tbaa !9
  %2148 = trunc i32 %2147 to i8
  %2149 = load ptr, ptr %24, align 8, !tbaa !5
  %2150 = getelementptr inbounds i8, ptr %2149, i64 1
  store i8 %2148, ptr %2150, align 1, !tbaa !27
  %2151 = load ptr, ptr %24, align 8, !tbaa !5
  %2152 = getelementptr inbounds i8, ptr %2151, i64 2
  store ptr %2152, ptr %24, align 8, !tbaa !5
  store i32 0, ptr %28, align 4
  br label %2153

2153:                                             ; preds = %2146, %2142, %2089
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  %2154 = load i32, ptr %28, align 4
  switch i32 %2154, label %3137 [
    i32 0, label %2155
    i32 211, label %2157
  ]

2155:                                             ; preds = %2153
  br label %2156

2156:                                             ; preds = %2155, %2019
  br label %1793

2157:                                             ; preds = %2153, %2006
  %2158 = load i32, ptr %19, align 4, !tbaa !9
  %2159 = and i32 %2158, 511
  store i32 %2159, ptr %19, align 4, !tbaa !9
  %2160 = icmp eq i32 %2159, 256
  br i1 %2160, label %2161, label %2162

2161:                                             ; preds = %2157
  br label %2726

2162:                                             ; preds = %2157
  %2163 = load i32, ptr %19, align 4, !tbaa !9
  %2164 = sub i32 %2163, 257
  %2165 = zext i32 %2164 to i64
  %2166 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_extra, i64 0, i64 %2165
  %2167 = load i32, ptr %2166, align 4, !tbaa !9
  store i32 %2167, ptr %20, align 4, !tbaa !9
  %2168 = load i32, ptr %19, align 4, !tbaa !9
  %2169 = sub i32 %2168, 257
  %2170 = zext i32 %2169 to i64
  %2171 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_base, i64 0, i64 %2170
  %2172 = load i32, ptr %2171, align 4, !tbaa !9
  store i32 %2172, ptr %19, align 4, !tbaa !9
  %2173 = load i32, ptr %20, align 4, !tbaa !9
  %2174 = icmp ne i32 %2173, 0
  br i1 %2174, label %2175, label %2252

2175:                                             ; preds = %2162
  br label %2176

2176:                                             ; preds = %2175
  %2177 = load i32, ptr %17, align 4, !tbaa !9
  %2178 = load i32, ptr %20, align 4, !tbaa !9
  %2179 = icmp ult i32 %2177, %2178
  br i1 %2179, label %2180, label %2232

2180:                                             ; preds = %2176
  br label %2181

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

2182:                                             ; preds = %2181
  %2183 = load ptr, ptr %22, align 8, !tbaa !5
  %2184 = load ptr, ptr %23, align 8, !tbaa !5
  %2185 = icmp uge ptr %2183, %2184
  br i1 %2185, label %2186, label %2210

2186:                                             ; preds = %2182
  br label %2187

2187:                                             ; preds = %2208, %2186
  %2188 = load i32, ptr %15, align 4, !tbaa !9
  %2189 = and i32 %2188, 2
  %2190 = icmp ne i32 %2189, 0
  br i1 %2190, label %2191, label %2207

2191:                                             ; preds = %2187
  br label %2192

2192:                                             ; preds = %2191
  store i32 1, ptr %16, align 4, !tbaa !9
  %2193 = load ptr, ptr %9, align 8, !tbaa !5
  %2194 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2193, i32 0, i32 0
  store i32 25, ptr %2194, align 8, !tbaa !22
  br label %2944

2195:                                             ; preds = %120
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

2197:                                             ; preds = %2196
  %2198 = load ptr, ptr %22, align 8, !tbaa !5
  %2199 = load ptr, ptr %23, align 8, !tbaa !5
  %2200 = icmp ult ptr %2198, %2199
  br i1 %2200, label %2201, label %2206

2201:                                             ; preds = %2197
  %2202 = load ptr, ptr %22, align 8, !tbaa !5
  %2203 = getelementptr inbounds i8, ptr %2202, i32 1
  store ptr %2203, ptr %22, align 8, !tbaa !5
  %2204 = load i8, ptr %2202, align 1, !tbaa !27
  %2205 = zext i8 %2204 to i32
  store i32 %2205, ptr %66, align 4, !tbaa !9
  br label %2209

2206:                                             ; preds = %2197
  br label %2208

2207:                                             ; preds = %2187
  store i32 0, ptr %66, align 4, !tbaa !9
  br label %2209

2208:                                             ; preds = %2206
  br label %2187

2209:                                             ; preds = %2207, %2201
  br label %2215

2210:                                             ; preds = %2182
  %2211 = load ptr, ptr %22, align 8, !tbaa !5
  %2212 = getelementptr inbounds i8, ptr %2211, i32 1
  store ptr %2212, ptr %22, align 8, !tbaa !5
  %2213 = load i8, ptr %2211, align 1, !tbaa !27
  %2214 = zext i8 %2213 to i32
  store i32 %2214, ptr %66, align 4, !tbaa !9
  br label %2215

2215:                                             ; preds = %2210, %2209
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

2217:                                             ; preds = %2216
  %2218 = load i32, ptr %66, align 4, !tbaa !9
  %2219 = zext i32 %2218 to i64
  %2220 = load i32, ptr %17, align 4, !tbaa !9
  %2221 = zext i32 %2220 to i64
  %2222 = shl i64 %2219, %2221
  %2223 = load i64, ptr %21, align 8, !tbaa !17
  %2224 = or i64 %2223, %2222
  store i64 %2224, ptr %21, align 8, !tbaa !17
  %2225 = load i32, ptr %17, align 4, !tbaa !9
  %2226 = add i32 %2225, 8
  store i32 %2226, ptr %17, align 4, !tbaa !9
  br label %2227

2227:                                             ; preds = %2217
  %2228 = load i32, ptr %17, align 4, !tbaa !9
  %2229 = load i32, ptr %20, align 4, !tbaa !9
  %2230 = icmp ult i32 %2228, %2229
  br i1 %2230, label %2181, label %2231, !llvm.loop !69

2231:                                             ; preds = %2227
  br label %2232

2232:                                             ; preds = %2231, %2176
  %2233 = load i64, ptr %21, align 8, !tbaa !17
  %2234 = load i32, ptr %20, align 4, !tbaa !9
  %2235 = shl i32 1, %2234
  %2236 = sub nsw i32 %2235, 1
  %2237 = sext i32 %2236 to i64
  %2238 = and i64 %2233, %2237
  %2239 = trunc i64 %2238 to i32
  store i32 %2239, ptr %65, align 4, !tbaa !9
  %2240 = load i32, ptr %20, align 4, !tbaa !9
  %2241 = load i64, ptr %21, align 8, !tbaa !17
  %2242 = zext i32 %2240 to i64
  %2243 = lshr i64 %2241, %2242
  store i64 %2243, ptr %21, align 8, !tbaa !17
  %2244 = load i32, ptr %20, align 4, !tbaa !9
  %2245 = load i32, ptr %17, align 4, !tbaa !9
  %2246 = sub i32 %2245, %2244
  store i32 %2246, ptr %17, align 4, !tbaa !9
  br label %2247

2247:                                             ; preds = %2232
  br label %2248

2248:                                             ; preds = %2247
  %2249 = load i32, ptr %65, align 4, !tbaa !9
  %2250 = load i32, ptr %19, align 4, !tbaa !9
  %2251 = add i32 %2250, %2249
  store i32 %2251, ptr %19, align 4, !tbaa !9
  br label %2252

2252:                                             ; preds = %2248, %2162
  br label %2253

2253:                                             ; preds = %2252
  %2254 = load i32, ptr %17, align 4, !tbaa !9
  %2255 = icmp ult i32 %2254, 15
  br i1 %2255, label %2256, label %2399

2256:                                             ; preds = %2253
  %2257 = load ptr, ptr %23, align 8, !tbaa !5
  %2258 = load ptr, ptr %22, align 8, !tbaa !5
  %2259 = ptrtoint ptr %2257 to i64
  %2260 = ptrtoint ptr %2258 to i64
  %2261 = sub i64 %2259, %2260
  %2262 = icmp slt i64 %2261, 2
  br i1 %2262, label %2263, label %2375

2263:                                             ; preds = %2256
  br label %2264

2264:                                             ; preds = %2371, %2263
  %2265 = load ptr, ptr %9, align 8, !tbaa !5
  %2266 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2265, i32 0, i32 14
  %2267 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2266, i64 0, i64 1
  %2268 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2267, i32 0, i32 1
  %2269 = load i64, ptr %21, align 8, !tbaa !17
  %2270 = and i64 %2269, 1023
  %2271 = getelementptr inbounds [1024 x i16], ptr %2268, i64 0, i64 %2270
  %2272 = load i16, ptr %2271, align 2, !tbaa !52
  %2273 = sext i16 %2272 to i32
  store i32 %2273, ptr %67, align 4, !tbaa !9
  %2274 = load i32, ptr %67, align 4, !tbaa !9
  %2275 = icmp sge i32 %2274, 0
  br i1 %2275, label %2276, label %2287

2276:                                             ; preds = %2264
  %2277 = load i32, ptr %67, align 4, !tbaa !9
  %2278 = ashr i32 %2277, 9
  store i32 %2278, ptr %68, align 4, !tbaa !9
  %2279 = load i32, ptr %68, align 4, !tbaa !9
  %2280 = icmp ne i32 %2279, 0
  br i1 %2280, label %2281, label %2286

2281:                                             ; preds = %2276
  %2282 = load i32, ptr %17, align 4, !tbaa !9
  %2283 = load i32, ptr %68, align 4, !tbaa !9
  %2284 = icmp uge i32 %2282, %2283
  br i1 %2284, label %2285, label %2286

2285:                                             ; preds = %2281
  br label %2374

2286:                                             ; preds = %2281, %2276
  br label %2325

2287:                                             ; preds = %2264
  %2288 = load i32, ptr %17, align 4, !tbaa !9
  %2289 = icmp ugt i32 %2288, 10
  br i1 %2289, label %2290, label %2324

2290:                                             ; preds = %2287
  store i32 10, ptr %68, align 4, !tbaa !9
  br label %2291

2291:                                             ; preds = %2317, %2290
  %2292 = load ptr, ptr %9, align 8, !tbaa !5
  %2293 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2292, i32 0, i32 14
  %2294 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2293, i64 0, i64 1
  %2295 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2294, i32 0, i32 2
  %2296 = load i32, ptr %67, align 4, !tbaa !9
  %2297 = xor i32 %2296, -1
  %2298 = sext i32 %2297 to i64
  %2299 = load i64, ptr %21, align 8, !tbaa !17
  %2300 = load i32, ptr %68, align 4, !tbaa !9
  %2301 = add i32 %2300, 1
  store i32 %2301, ptr %68, align 4, !tbaa !9
  %2302 = zext i32 %2300 to i64
  %2303 = lshr i64 %2299, %2302
  %2304 = and i64 %2303, 1
  %2305 = add i64 %2298, %2304
  %2306 = getelementptr inbounds [576 x i16], ptr %2295, i64 0, i64 %2305
  %2307 = load i16, ptr %2306, align 2, !tbaa !52
  %2308 = sext i16 %2307 to i32
  store i32 %2308, ptr %67, align 4, !tbaa !9
  br label %2309

2309:                                             ; preds = %2291
  %2310 = load i32, ptr %67, align 4, !tbaa !9
  %2311 = icmp slt i32 %2310, 0
  br i1 %2311, label %2312, label %2317

2312:                                             ; preds = %2309
  %2313 = load i32, ptr %17, align 4, !tbaa !9
  %2314 = load i32, ptr %68, align 4, !tbaa !9
  %2315 = add i32 %2314, 1
  %2316 = icmp uge i32 %2313, %2315
  br label %2317

2317:                                             ; preds = %2312, %2309
  %2318 = phi i1 [ false, %2309 ], [ %2316, %2312 ]
  br i1 %2318, label %2291, label %2319, !llvm.loop !70

2319:                                             ; preds = %2317
  %2320 = load i32, ptr %67, align 4, !tbaa !9
  %2321 = icmp sge i32 %2320, 0
  br i1 %2321, label %2322, label %2323

2322:                                             ; preds = %2319
  br label %2374

2323:                                             ; preds = %2319
  br label %2324

2324:                                             ; preds = %2323, %2287
  br label %2325

2325:                                             ; preds = %2324, %2286
  br label %2326

2326:                                             ; preds = %2325
  %2327 = load ptr, ptr %22, align 8, !tbaa !5
  %2328 = load ptr, ptr %23, align 8, !tbaa !5
  %2329 = icmp uge ptr %2327, %2328
  br i1 %2329, label %2330, label %2354

2330:                                             ; preds = %2326
  br label %2331

2331:                                             ; preds = %2352, %2330
  %2332 = load i32, ptr %15, align 4, !tbaa !9
  %2333 = and i32 %2332, 2
  %2334 = icmp ne i32 %2333, 0
  br i1 %2334, label %2335, label %2351

2335:                                             ; preds = %2331
  br label %2336

2336:                                             ; preds = %2335
  store i32 1, ptr %16, align 4, !tbaa !9
  %2337 = load ptr, ptr %9, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2337, i32 0, i32 0
  store i32 26, ptr %2338, align 8, !tbaa !22
  br label %2944

2339:                                             ; preds = %120
  br label %2340

2340:                                             ; preds = %2339
  br label %2341

2341:                                             ; preds = %2340
  %2342 = load ptr, ptr %22, align 8, !tbaa !5
  %2343 = load ptr, ptr %23, align 8, !tbaa !5
  %2344 = icmp ult ptr %2342, %2343
  br i1 %2344, label %2345, label %2350

2345:                                             ; preds = %2341
  %2346 = load ptr, ptr %22, align 8, !tbaa !5
  %2347 = getelementptr inbounds i8, ptr %2346, i32 1
  store ptr %2347, ptr %22, align 8, !tbaa !5
  %2348 = load i8, ptr %2346, align 1, !tbaa !27
  %2349 = zext i8 %2348 to i32
  store i32 %2349, ptr %69, align 4, !tbaa !9
  br label %2353

2350:                                             ; preds = %2341
  br label %2352

2351:                                             ; preds = %2331
  store i32 0, ptr %69, align 4, !tbaa !9
  br label %2353

2352:                                             ; preds = %2350
  br label %2331

2353:                                             ; preds = %2351, %2345
  br label %2359

2354:                                             ; preds = %2326
  %2355 = load ptr, ptr %22, align 8, !tbaa !5
  %2356 = getelementptr inbounds i8, ptr %2355, i32 1
  store ptr %2356, ptr %22, align 8, !tbaa !5
  %2357 = load i8, ptr %2355, align 1, !tbaa !27
  %2358 = zext i8 %2357 to i32
  store i32 %2358, ptr %69, align 4, !tbaa !9
  br label %2359

2359:                                             ; preds = %2354, %2353
  br label %2360

2360:                                             ; preds = %2359
  br label %2361

2361:                                             ; preds = %2360
  %2362 = load i32, ptr %69, align 4, !tbaa !9
  %2363 = zext i32 %2362 to i64
  %2364 = load i32, ptr %17, align 4, !tbaa !9
  %2365 = zext i32 %2364 to i64
  %2366 = shl i64 %2363, %2365
  %2367 = load i64, ptr %21, align 8, !tbaa !17
  %2368 = or i64 %2367, %2366
  store i64 %2368, ptr %21, align 8, !tbaa !17
  %2369 = load i32, ptr %17, align 4, !tbaa !9
  %2370 = add i32 %2369, 8
  store i32 %2370, ptr %17, align 4, !tbaa !9
  br label %2371

2371:                                             ; preds = %2361
  %2372 = load i32, ptr %17, align 4, !tbaa !9
  %2373 = icmp ult i32 %2372, 15
  br i1 %2373, label %2264, label %2374, !llvm.loop !71

2374:                                             ; preds = %2371, %2322, %2285
  br label %2398

2375:                                             ; preds = %2256
  %2376 = load ptr, ptr %22, align 8, !tbaa !5
  %2377 = getelementptr inbounds i8, ptr %2376, i64 0
  %2378 = load i8, ptr %2377, align 1, !tbaa !27
  %2379 = zext i8 %2378 to i64
  %2380 = load i32, ptr %17, align 4, !tbaa !9
  %2381 = zext i32 %2380 to i64
  %2382 = shl i64 %2379, %2381
  %2383 = load ptr, ptr %22, align 8, !tbaa !5
  %2384 = getelementptr inbounds i8, ptr %2383, i64 1
  %2385 = load i8, ptr %2384, align 1, !tbaa !27
  %2386 = zext i8 %2385 to i64
  %2387 = load i32, ptr %17, align 4, !tbaa !9
  %2388 = add i32 %2387, 8
  %2389 = zext i32 %2388 to i64
  %2390 = shl i64 %2386, %2389
  %2391 = or i64 %2382, %2390
  %2392 = load i64, ptr %21, align 8, !tbaa !17
  %2393 = or i64 %2392, %2391
  store i64 %2393, ptr %21, align 8, !tbaa !17
  %2394 = load ptr, ptr %22, align 8, !tbaa !5
  %2395 = getelementptr inbounds i8, ptr %2394, i64 2
  store ptr %2395, ptr %22, align 8, !tbaa !5
  %2396 = load i32, ptr %17, align 4, !tbaa !9
  %2397 = add i32 %2396, 16
  store i32 %2397, ptr %17, align 4, !tbaa !9
  br label %2398

2398:                                             ; preds = %2375, %2374
  br label %2399

2399:                                             ; preds = %2398, %2253
  %2400 = load ptr, ptr %9, align 8, !tbaa !5
  %2401 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2400, i32 0, i32 14
  %2402 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2401, i64 0, i64 1
  %2403 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2402, i32 0, i32 1
  %2404 = load i64, ptr %21, align 8, !tbaa !17
  %2405 = and i64 %2404, 1023
  %2406 = getelementptr inbounds [1024 x i16], ptr %2403, i64 0, i64 %2405
  %2407 = load i16, ptr %2406, align 2, !tbaa !52
  %2408 = sext i16 %2407 to i32
  store i32 %2408, ptr %67, align 4, !tbaa !9
  %2409 = icmp sge i32 %2408, 0
  br i1 %2409, label %2410, label %2415

2410:                                             ; preds = %2399
  %2411 = load i32, ptr %67, align 4, !tbaa !9
  %2412 = ashr i32 %2411, 9
  store i32 %2412, ptr %68, align 4, !tbaa !9
  %2413 = load i32, ptr %67, align 4, !tbaa !9
  %2414 = and i32 %2413, 511
  store i32 %2414, ptr %67, align 4, !tbaa !9
  br label %2438

2415:                                             ; preds = %2399
  store i32 10, ptr %68, align 4, !tbaa !9
  br label %2416

2416:                                             ; preds = %2434, %2415
  %2417 = load ptr, ptr %9, align 8, !tbaa !5
  %2418 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2417, i32 0, i32 14
  %2419 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %2418, i64 0, i64 1
  %2420 = getelementptr inbounds %struct.tinfl_huff_table, ptr %2419, i32 0, i32 2
  %2421 = load i32, ptr %67, align 4, !tbaa !9
  %2422 = xor i32 %2421, -1
  %2423 = sext i32 %2422 to i64
  %2424 = load i64, ptr %21, align 8, !tbaa !17
  %2425 = load i32, ptr %68, align 4, !tbaa !9
  %2426 = add i32 %2425, 1
  store i32 %2426, ptr %68, align 4, !tbaa !9
  %2427 = zext i32 %2425 to i64
  %2428 = lshr i64 %2424, %2427
  %2429 = and i64 %2428, 1
  %2430 = add i64 %2423, %2429
  %2431 = getelementptr inbounds [576 x i16], ptr %2420, i64 0, i64 %2430
  %2432 = load i16, ptr %2431, align 2, !tbaa !52
  %2433 = sext i16 %2432 to i32
  store i32 %2433, ptr %67, align 4, !tbaa !9
  br label %2434

2434:                                             ; preds = %2416
  %2435 = load i32, ptr %67, align 4, !tbaa !9
  %2436 = icmp slt i32 %2435, 0
  br i1 %2436, label %2416, label %2437, !llvm.loop !72

2437:                                             ; preds = %2434
  br label %2438

2438:                                             ; preds = %2437, %2410
  %2439 = load i32, ptr %67, align 4, !tbaa !9
  store i32 %2439, ptr %18, align 4, !tbaa !9
  %2440 = load i32, ptr %68, align 4, !tbaa !9
  %2441 = load i64, ptr %21, align 8, !tbaa !17
  %2442 = zext i32 %2440 to i64
  %2443 = lshr i64 %2441, %2442
  store i64 %2443, ptr %21, align 8, !tbaa !17
  %2444 = load i32, ptr %68, align 4, !tbaa !9
  %2445 = load i32, ptr %17, align 4, !tbaa !9
  %2446 = sub i32 %2445, %2444
  store i32 %2446, ptr %17, align 4, !tbaa !9
  br label %2447

2447:                                             ; preds = %2438
  br label %2448

2448:                                             ; preds = %2447
  %2449 = load i32, ptr %18, align 4, !tbaa !9
  %2450 = zext i32 %2449 to i64
  %2451 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_extra, i64 0, i64 %2450
  %2452 = load i32, ptr %2451, align 4, !tbaa !9
  store i32 %2452, ptr %20, align 4, !tbaa !9
  %2453 = load i32, ptr %18, align 4, !tbaa !9
  %2454 = zext i32 %2453 to i64
  %2455 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_base, i64 0, i64 %2454
  %2456 = load i32, ptr %2455, align 4, !tbaa !9
  store i32 %2456, ptr %18, align 4, !tbaa !9
  %2457 = load i32, ptr %20, align 4, !tbaa !9
  %2458 = icmp ne i32 %2457, 0
  br i1 %2458, label %2459, label %2536

2459:                                             ; preds = %2448
  br label %2460

2460:                                             ; preds = %2459
  %2461 = load i32, ptr %17, align 4, !tbaa !9
  %2462 = load i32, ptr %20, align 4, !tbaa !9
  %2463 = icmp ult i32 %2461, %2462
  br i1 %2463, label %2464, label %2516

2464:                                             ; preds = %2460
  br label %2465

2465:                                             ; preds = %2511, %2464
  br label %2466

2466:                                             ; preds = %2465
  %2467 = load ptr, ptr %22, align 8, !tbaa !5
  %2468 = load ptr, ptr %23, align 8, !tbaa !5
  %2469 = icmp uge ptr %2467, %2468
  br i1 %2469, label %2470, label %2494

2470:                                             ; preds = %2466
  br label %2471

2471:                                             ; preds = %2492, %2470
  %2472 = load i32, ptr %15, align 4, !tbaa !9
  %2473 = and i32 %2472, 2
  %2474 = icmp ne i32 %2473, 0
  br i1 %2474, label %2475, label %2491

2475:                                             ; preds = %2471
  br label %2476

2476:                                             ; preds = %2475
  store i32 1, ptr %16, align 4, !tbaa !9
  %2477 = load ptr, ptr %9, align 8, !tbaa !5
  %2478 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2477, i32 0, i32 0
  store i32 27, ptr %2478, align 8, !tbaa !22
  br label %2944

2479:                                             ; preds = %120
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

2481:                                             ; preds = %2480
  %2482 = load ptr, ptr %22, align 8, !tbaa !5
  %2483 = load ptr, ptr %23, align 8, !tbaa !5
  %2484 = icmp ult ptr %2482, %2483
  br i1 %2484, label %2485, label %2490

2485:                                             ; preds = %2481
  %2486 = load ptr, ptr %22, align 8, !tbaa !5
  %2487 = getelementptr inbounds i8, ptr %2486, i32 1
  store ptr %2487, ptr %22, align 8, !tbaa !5
  %2488 = load i8, ptr %2486, align 1, !tbaa !27
  %2489 = zext i8 %2488 to i32
  store i32 %2489, ptr %71, align 4, !tbaa !9
  br label %2493

2490:                                             ; preds = %2481
  br label %2492

2491:                                             ; preds = %2471
  store i32 0, ptr %71, align 4, !tbaa !9
  br label %2493

2492:                                             ; preds = %2490
  br label %2471

2493:                                             ; preds = %2491, %2485
  br label %2499

2494:                                             ; preds = %2466
  %2495 = load ptr, ptr %22, align 8, !tbaa !5
  %2496 = getelementptr inbounds i8, ptr %2495, i32 1
  store ptr %2496, ptr %22, align 8, !tbaa !5
  %2497 = load i8, ptr %2495, align 1, !tbaa !27
  %2498 = zext i8 %2497 to i32
  store i32 %2498, ptr %71, align 4, !tbaa !9
  br label %2499

2499:                                             ; preds = %2494, %2493
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  %2502 = load i32, ptr %71, align 4, !tbaa !9
  %2503 = zext i32 %2502 to i64
  %2504 = load i32, ptr %17, align 4, !tbaa !9
  %2505 = zext i32 %2504 to i64
  %2506 = shl i64 %2503, %2505
  %2507 = load i64, ptr %21, align 8, !tbaa !17
  %2508 = or i64 %2507, %2506
  store i64 %2508, ptr %21, align 8, !tbaa !17
  %2509 = load i32, ptr %17, align 4, !tbaa !9
  %2510 = add i32 %2509, 8
  store i32 %2510, ptr %17, align 4, !tbaa !9
  br label %2511

2511:                                             ; preds = %2501
  %2512 = load i32, ptr %17, align 4, !tbaa !9
  %2513 = load i32, ptr %20, align 4, !tbaa !9
  %2514 = icmp ult i32 %2512, %2513
  br i1 %2514, label %2465, label %2515, !llvm.loop !73

2515:                                             ; preds = %2511
  br label %2516

2516:                                             ; preds = %2515, %2460
  %2517 = load i64, ptr %21, align 8, !tbaa !17
  %2518 = load i32, ptr %20, align 4, !tbaa !9
  %2519 = shl i32 1, %2518
  %2520 = sub nsw i32 %2519, 1
  %2521 = sext i32 %2520 to i64
  %2522 = and i64 %2517, %2521
  %2523 = trunc i64 %2522 to i32
  store i32 %2523, ptr %70, align 4, !tbaa !9
  %2524 = load i32, ptr %20, align 4, !tbaa !9
  %2525 = load i64, ptr %21, align 8, !tbaa !17
  %2526 = zext i32 %2524 to i64
  %2527 = lshr i64 %2525, %2526
  store i64 %2527, ptr %21, align 8, !tbaa !17
  %2528 = load i32, ptr %20, align 4, !tbaa !9
  %2529 = load i32, ptr %17, align 4, !tbaa !9
  %2530 = sub i32 %2529, %2528
  store i32 %2530, ptr %17, align 4, !tbaa !9
  br label %2531

2531:                                             ; preds = %2516
  br label %2532

2532:                                             ; preds = %2531
  %2533 = load i32, ptr %70, align 4, !tbaa !9
  %2534 = load i32, ptr %18, align 4, !tbaa !9
  %2535 = add i32 %2534, %2533
  store i32 %2535, ptr %18, align 4, !tbaa !9
  br label %2536

2536:                                             ; preds = %2532, %2448
  %2537 = load ptr, ptr %24, align 8, !tbaa !5
  %2538 = load ptr, ptr %12, align 8, !tbaa !5
  %2539 = ptrtoint ptr %2537 to i64
  %2540 = ptrtoint ptr %2538 to i64
  %2541 = sub i64 %2539, %2540
  store i64 %2541, ptr %27, align 8, !tbaa !11
  %2542 = load i32, ptr %18, align 4, !tbaa !9
  %2543 = zext i32 %2542 to i64
  %2544 = load i64, ptr %27, align 8, !tbaa !11
  %2545 = icmp ugt i64 %2543, %2544
  br i1 %2545, label %2546, label %2561

2546:                                             ; preds = %2536
  %2547 = load i32, ptr %15, align 4, !tbaa !9
  %2548 = and i32 %2547, 4
  %2549 = icmp ne i32 %2548, 0
  br i1 %2549, label %2550, label %2561

2550:                                             ; preds = %2546
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2558, %2551
  br label %2553

2553:                                             ; preds = %2552
  store i32 -1, ptr %16, align 4, !tbaa !9
  %2554 = load ptr, ptr %9, align 8, !tbaa !5
  %2555 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2554, i32 0, i32 0
  store i32 37, ptr %2555, align 8, !tbaa !22
  br label %2944

2556:                                             ; preds = %120
  br label %2557

2557:                                             ; preds = %2556
  br label %2558

2558:                                             ; preds = %2557
  br label %2552

2559:                                             ; No predecessors!
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560, %2546, %2536
  %2562 = load ptr, ptr %12, align 8, !tbaa !5
  %2563 = load i64, ptr %27, align 8, !tbaa !11
  %2564 = load i32, ptr %18, align 4, !tbaa !9
  %2565 = zext i32 %2564 to i64
  %2566 = sub i64 %2563, %2565
  %2567 = load i64, ptr %26, align 8, !tbaa !11
  %2568 = and i64 %2566, %2567
  %2569 = getelementptr inbounds i8, ptr %2562, i64 %2568
  store ptr %2569, ptr %59, align 8, !tbaa !5
  %2570 = load ptr, ptr %24, align 8, !tbaa !5
  %2571 = load ptr, ptr %59, align 8, !tbaa !5
  %2572 = icmp ugt ptr %2570, %2571
  br i1 %2572, label %2573, label %2575

2573:                                             ; preds = %2561
  %2574 = load ptr, ptr %24, align 8, !tbaa !5
  br label %2577

2575:                                             ; preds = %2561
  %2576 = load ptr, ptr %59, align 8, !tbaa !5
  br label %2577

2577:                                             ; preds = %2575, %2573
  %2578 = phi ptr [ %2574, %2573 ], [ %2576, %2575 ]
  %2579 = load i32, ptr %19, align 4, !tbaa !9
  %2580 = zext i32 %2579 to i64
  %2581 = getelementptr inbounds i8, ptr %2578, i64 %2580
  %2582 = load ptr, ptr %25, align 8, !tbaa !5
  %2583 = icmp ugt ptr %2581, %2582
  br i1 %2583, label %2584, label %2615

2584:                                             ; preds = %2577
  br label %2585

2585:                                             ; preds = %2601, %2584
  %2586 = load i32, ptr %19, align 4, !tbaa !9
  %2587 = add i32 %2586, -1
  store i32 %2587, ptr %19, align 4, !tbaa !9
  %2588 = icmp ne i32 %2586, 0
  br i1 %2588, label %2589, label %2614

2589:                                             ; preds = %2585
  br label %2590

2590:                                             ; preds = %2600, %2589
  %2591 = load ptr, ptr %24, align 8, !tbaa !5
  %2592 = load ptr, ptr %25, align 8, !tbaa !5
  %2593 = icmp uge ptr %2591, %2592
  br i1 %2593, label %2594, label %2601

2594:                                             ; preds = %2590
  br label %2595

2595:                                             ; preds = %2594
  store i32 2, ptr %16, align 4, !tbaa !9
  %2596 = load ptr, ptr %9, align 8, !tbaa !5
  %2597 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2596, i32 0, i32 0
  store i32 53, ptr %2597, align 8, !tbaa !22
  br label %2944

2598:                                             ; preds = %120
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  br label %2590, !llvm.loop !74

2601:                                             ; preds = %2590
  %2602 = load ptr, ptr %12, align 8, !tbaa !5
  %2603 = load i64, ptr %27, align 8, !tbaa !11
  %2604 = add i64 %2603, 1
  store i64 %2604, ptr %27, align 8, !tbaa !11
  %2605 = load i32, ptr %18, align 4, !tbaa !9
  %2606 = zext i32 %2605 to i64
  %2607 = sub i64 %2603, %2606
  %2608 = load i64, ptr %26, align 8, !tbaa !11
  %2609 = and i64 %2607, %2608
  %2610 = getelementptr inbounds i8, ptr %2602, i64 %2609
  %2611 = load i8, ptr %2610, align 1, !tbaa !27
  %2612 = load ptr, ptr %24, align 8, !tbaa !5
  %2613 = getelementptr inbounds i8, ptr %2612, i32 1
  store ptr %2613, ptr %24, align 8, !tbaa !5
  store i8 %2611, ptr %2612, align 1, !tbaa !27
  br label %2585, !llvm.loop !75

2614:                                             ; preds = %2585
  br label %1792

2615:                                             ; preds = %2577
  %2616 = load i32, ptr %19, align 4, !tbaa !9
  %2617 = icmp uge i32 %2616, 9
  br i1 %2617, label %2618, label %2677

2618:                                             ; preds = %2615
  %2619 = load i32, ptr %19, align 4, !tbaa !9
  %2620 = load i32, ptr %18, align 4, !tbaa !9
  %2621 = icmp ule i32 %2619, %2620
  br i1 %2621, label %2622, label %2677

2622:                                             ; preds = %2618
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #4
  %2623 = load ptr, ptr %59, align 8, !tbaa !5
  %2624 = load i32, ptr %19, align 4, !tbaa !9
  %2625 = and i32 %2624, -8
  %2626 = zext i32 %2625 to i64
  %2627 = getelementptr inbounds i8, ptr %2623, i64 %2626
  store ptr %2627, ptr %72, align 8, !tbaa !5
  br label %2628

2628:                                             ; preds = %2641, %2622
  %2629 = load ptr, ptr %59, align 8, !tbaa !5
  %2630 = getelementptr inbounds i32, ptr %2629, i64 0
  %2631 = load i32, ptr %2630, align 4, !tbaa !9
  %2632 = load ptr, ptr %24, align 8, !tbaa !5
  %2633 = getelementptr inbounds i32, ptr %2632, i64 0
  store i32 %2631, ptr %2633, align 4, !tbaa !9
  %2634 = load ptr, ptr %59, align 8, !tbaa !5
  %2635 = getelementptr inbounds i32, ptr %2634, i64 1
  %2636 = load i32, ptr %2635, align 4, !tbaa !9
  %2637 = load ptr, ptr %24, align 8, !tbaa !5
  %2638 = getelementptr inbounds i32, ptr %2637, i64 1
  store i32 %2636, ptr %2638, align 4, !tbaa !9
  %2639 = load ptr, ptr %24, align 8, !tbaa !5
  %2640 = getelementptr inbounds i8, ptr %2639, i64 8
  store ptr %2640, ptr %24, align 8, !tbaa !5
  br label %2641

2641:                                             ; preds = %2628
  %2642 = load ptr, ptr %59, align 8, !tbaa !5
  %2643 = getelementptr inbounds i8, ptr %2642, i64 8
  store ptr %2643, ptr %59, align 8, !tbaa !5
  %2644 = load ptr, ptr %72, align 8, !tbaa !5
  %2645 = icmp ult ptr %2643, %2644
  br i1 %2645, label %2628, label %2646, !llvm.loop !76

2646:                                             ; preds = %2641
  %2647 = load i32, ptr %19, align 4, !tbaa !9
  %2648 = and i32 %2647, 7
  store i32 %2648, ptr %19, align 4, !tbaa !9
  %2649 = icmp ult i32 %2648, 3
  br i1 %2649, label %2650, label %2673

2650:                                             ; preds = %2646
  %2651 = load i32, ptr %19, align 4, !tbaa !9
  %2652 = icmp ne i32 %2651, 0
  br i1 %2652, label %2653, label %2672

2653:                                             ; preds = %2650
  %2654 = load ptr, ptr %59, align 8, !tbaa !5
  %2655 = getelementptr inbounds i8, ptr %2654, i64 0
  %2656 = load i8, ptr %2655, align 1, !tbaa !27
  %2657 = load ptr, ptr %24, align 8, !tbaa !5
  %2658 = getelementptr inbounds i8, ptr %2657, i64 0
  store i8 %2656, ptr %2658, align 1, !tbaa !27
  %2659 = load i32, ptr %19, align 4, !tbaa !9
  %2660 = icmp ugt i32 %2659, 1
  br i1 %2660, label %2661, label %2667

2661:                                             ; preds = %2653
  %2662 = load ptr, ptr %59, align 8, !tbaa !5
  %2663 = getelementptr inbounds i8, ptr %2662, i64 1
  %2664 = load i8, ptr %2663, align 1, !tbaa !27
  %2665 = load ptr, ptr %24, align 8, !tbaa !5
  %2666 = getelementptr inbounds i8, ptr %2665, i64 1
  store i8 %2664, ptr %2666, align 1, !tbaa !27
  br label %2667

2667:                                             ; preds = %2661, %2653
  %2668 = load i32, ptr %19, align 4, !tbaa !9
  %2669 = load ptr, ptr %24, align 8, !tbaa !5
  %2670 = zext i32 %2668 to i64
  %2671 = getelementptr inbounds i8, ptr %2669, i64 %2670
  store ptr %2671, ptr %24, align 8, !tbaa !5
  br label %2672

2672:                                             ; preds = %2667, %2650
  store i32 210, ptr %28, align 4
  br label %2674

2673:                                             ; preds = %2646
  store i32 0, ptr %28, align 4
  br label %2674

2674:                                             ; preds = %2673, %2672
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  %2675 = load i32, ptr %28, align 4
  switch i32 %2675, label %3137 [
    i32 0, label %2676
    i32 210, label %1792
  ]

2676:                                             ; preds = %2674
  br label %2677

2677:                                             ; preds = %2676, %2618, %2615
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2699, %2678
  %2680 = load ptr, ptr %59, align 8, !tbaa !5
  %2681 = getelementptr inbounds i8, ptr %2680, i64 0
  %2682 = load i8, ptr %2681, align 1, !tbaa !27
  %2683 = load ptr, ptr %24, align 8, !tbaa !5
  %2684 = getelementptr inbounds i8, ptr %2683, i64 0
  store i8 %2682, ptr %2684, align 1, !tbaa !27
  %2685 = load ptr, ptr %59, align 8, !tbaa !5
  %2686 = getelementptr inbounds i8, ptr %2685, i64 1
  %2687 = load i8, ptr %2686, align 1, !tbaa !27
  %2688 = load ptr, ptr %24, align 8, !tbaa !5
  %2689 = getelementptr inbounds i8, ptr %2688, i64 1
  store i8 %2687, ptr %2689, align 1, !tbaa !27
  %2690 = load ptr, ptr %59, align 8, !tbaa !5
  %2691 = getelementptr inbounds i8, ptr %2690, i64 2
  %2692 = load i8, ptr %2691, align 1, !tbaa !27
  %2693 = load ptr, ptr %24, align 8, !tbaa !5
  %2694 = getelementptr inbounds i8, ptr %2693, i64 2
  store i8 %2692, ptr %2694, align 1, !tbaa !27
  %2695 = load ptr, ptr %24, align 8, !tbaa !5
  %2696 = getelementptr inbounds i8, ptr %2695, i64 3
  store ptr %2696, ptr %24, align 8, !tbaa !5
  %2697 = load ptr, ptr %59, align 8, !tbaa !5
  %2698 = getelementptr inbounds i8, ptr %2697, i64 3
  store ptr %2698, ptr %59, align 8, !tbaa !5
  br label %2699

2699:                                             ; preds = %2679
  %2700 = load i32, ptr %19, align 4, !tbaa !9
  %2701 = sub i32 %2700, 3
  store i32 %2701, ptr %19, align 4, !tbaa !9
  %2702 = icmp sgt i32 %2701, 2
  br i1 %2702, label %2679, label %2703, !llvm.loop !77

2703:                                             ; preds = %2699
  %2704 = load i32, ptr %19, align 4, !tbaa !9
  %2705 = icmp sgt i32 %2704, 0
  br i1 %2705, label %2706, label %2725

2706:                                             ; preds = %2703
  %2707 = load ptr, ptr %59, align 8, !tbaa !5
  %2708 = getelementptr inbounds i8, ptr %2707, i64 0
  %2709 = load i8, ptr %2708, align 1, !tbaa !27
  %2710 = load ptr, ptr %24, align 8, !tbaa !5
  %2711 = getelementptr inbounds i8, ptr %2710, i64 0
  store i8 %2709, ptr %2711, align 1, !tbaa !27
  %2712 = load i32, ptr %19, align 4, !tbaa !9
  %2713 = icmp sgt i32 %2712, 1
  br i1 %2713, label %2714, label %2720

2714:                                             ; preds = %2706
  %2715 = load ptr, ptr %59, align 8, !tbaa !5
  %2716 = getelementptr inbounds i8, ptr %2715, i64 1
  %2717 = load i8, ptr %2716, align 1, !tbaa !27
  %2718 = load ptr, ptr %24, align 8, !tbaa !5
  %2719 = getelementptr inbounds i8, ptr %2718, i64 1
  store i8 %2717, ptr %2719, align 1, !tbaa !27
  br label %2720

2720:                                             ; preds = %2714, %2706
  %2721 = load i32, ptr %19, align 4, !tbaa !9
  %2722 = load ptr, ptr %24, align 8, !tbaa !5
  %2723 = zext i32 %2721 to i64
  %2724 = getelementptr inbounds i8, ptr %2722, i64 %2723
  store ptr %2724, ptr %24, align 8, !tbaa !5
  br label %2725

2725:                                             ; preds = %2720, %2703
  br label %1792

2726:                                             ; preds = %2161
  br label %2727

2727:                                             ; preds = %2726, %848
  br label %2728

2728:                                             ; preds = %2727, %832
  br label %2729

2729:                                             ; preds = %2728
  %2730 = load ptr, ptr %9, align 8, !tbaa !5
  %2731 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2730, i32 0, i32 5
  %2732 = load i32, ptr %2731, align 4, !tbaa !30
  %2733 = and i32 %2732, 1
  %2734 = icmp ne i32 %2733, 0
  %2735 = xor i1 %2734, true
  br i1 %2735, label %307, label %2736, !llvm.loop !78

2736:                                             ; preds = %2729
  %2737 = load i32, ptr %15, align 4, !tbaa !9
  %2738 = and i32 %2737, 1
  %2739 = icmp ne i32 %2738, 0
  br i1 %2739, label %2740, label %2932

2740:                                             ; preds = %2736
  br label %2741

2741:                                             ; preds = %2740
  %2742 = load i32, ptr %17, align 4, !tbaa !9
  %2743 = load i32, ptr %17, align 4, !tbaa !9
  %2744 = and i32 %2743, 7
  %2745 = icmp ult i32 %2742, %2744
  br i1 %2745, label %2746, label %2799

2746:                                             ; preds = %2741
  br label %2747

2747:                                             ; preds = %2793, %2746
  br label %2748

2748:                                             ; preds = %2747
  %2749 = load ptr, ptr %22, align 8, !tbaa !5
  %2750 = load ptr, ptr %23, align 8, !tbaa !5
  %2751 = icmp uge ptr %2749, %2750
  br i1 %2751, label %2752, label %2776

2752:                                             ; preds = %2748
  br label %2753

2753:                                             ; preds = %2774, %2752
  %2754 = load i32, ptr %15, align 4, !tbaa !9
  %2755 = and i32 %2754, 2
  %2756 = icmp ne i32 %2755, 0
  br i1 %2756, label %2757, label %2773

2757:                                             ; preds = %2753
  br label %2758

2758:                                             ; preds = %2757
  store i32 1, ptr %16, align 4, !tbaa !9
  %2759 = load ptr, ptr %9, align 8, !tbaa !5
  %2760 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2759, i32 0, i32 0
  store i32 32, ptr %2760, align 8, !tbaa !22
  br label %2944

2761:                                             ; preds = %120
  br label %2762

2762:                                             ; preds = %2761
  br label %2763

2763:                                             ; preds = %2762
  %2764 = load ptr, ptr %22, align 8, !tbaa !5
  %2765 = load ptr, ptr %23, align 8, !tbaa !5
  %2766 = icmp ult ptr %2764, %2765
  br i1 %2766, label %2767, label %2772

2767:                                             ; preds = %2763
  %2768 = load ptr, ptr %22, align 8, !tbaa !5
  %2769 = getelementptr inbounds i8, ptr %2768, i32 1
  store ptr %2769, ptr %22, align 8, !tbaa !5
  %2770 = load i8, ptr %2768, align 1, !tbaa !27
  %2771 = zext i8 %2770 to i32
  store i32 %2771, ptr %73, align 4, !tbaa !9
  br label %2775

2772:                                             ; preds = %2763
  br label %2774

2773:                                             ; preds = %2753
  store i32 0, ptr %73, align 4, !tbaa !9
  br label %2775

2774:                                             ; preds = %2772
  br label %2753

2775:                                             ; preds = %2773, %2767
  br label %2781

2776:                                             ; preds = %2748
  %2777 = load ptr, ptr %22, align 8, !tbaa !5
  %2778 = getelementptr inbounds i8, ptr %2777, i32 1
  store ptr %2778, ptr %22, align 8, !tbaa !5
  %2779 = load i8, ptr %2777, align 1, !tbaa !27
  %2780 = zext i8 %2779 to i32
  store i32 %2780, ptr %73, align 4, !tbaa !9
  br label %2781

2781:                                             ; preds = %2776, %2775
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  %2784 = load i32, ptr %73, align 4, !tbaa !9
  %2785 = zext i32 %2784 to i64
  %2786 = load i32, ptr %17, align 4, !tbaa !9
  %2787 = zext i32 %2786 to i64
  %2788 = shl i64 %2785, %2787
  %2789 = load i64, ptr %21, align 8, !tbaa !17
  %2790 = or i64 %2789, %2788
  store i64 %2790, ptr %21, align 8, !tbaa !17
  %2791 = load i32, ptr %17, align 4, !tbaa !9
  %2792 = add i32 %2791, 8
  store i32 %2792, ptr %17, align 4, !tbaa !9
  br label %2793

2793:                                             ; preds = %2783
  %2794 = load i32, ptr %17, align 4, !tbaa !9
  %2795 = load i32, ptr %17, align 4, !tbaa !9
  %2796 = and i32 %2795, 7
  %2797 = icmp ult i32 %2794, %2796
  br i1 %2797, label %2747, label %2798, !llvm.loop !79

2798:                                             ; preds = %2793
  br label %2799

2799:                                             ; preds = %2798, %2741
  %2800 = load i32, ptr %17, align 4, !tbaa !9
  %2801 = and i32 %2800, 7
  %2802 = load i64, ptr %21, align 8, !tbaa !17
  %2803 = zext i32 %2801 to i64
  %2804 = lshr i64 %2802, %2803
  store i64 %2804, ptr %21, align 8, !tbaa !17
  %2805 = load i32, ptr %17, align 4, !tbaa !9
  %2806 = and i32 %2805, 7
  %2807 = load i32, ptr %17, align 4, !tbaa !9
  %2808 = sub i32 %2807, %2806
  store i32 %2808, ptr %17, align 4, !tbaa !9
  br label %2809

2809:                                             ; preds = %2799
  br label %2810

2810:                                             ; preds = %2809
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2811

2811:                                             ; preds = %2928, %2810
  %2812 = load i32, ptr %19, align 4, !tbaa !9
  %2813 = icmp ult i32 %2812, 4
  br i1 %2813, label %2814, label %2931

2814:                                             ; preds = %2811
  %2815 = load i32, ptr %17, align 4, !tbaa !9
  %2816 = icmp ne i32 %2815, 0
  br i1 %2816, label %2817, label %2882

2817:                                             ; preds = %2814
  br label %2818

2818:                                             ; preds = %2817
  %2819 = load i32, ptr %17, align 4, !tbaa !9
  %2820 = icmp ult i32 %2819, 8
  br i1 %2820, label %2821, label %2872

2821:                                             ; preds = %2818
  br label %2822

2822:                                             ; preds = %2868, %2821
  br label %2823

2823:                                             ; preds = %2822
  %2824 = load ptr, ptr %22, align 8, !tbaa !5
  %2825 = load ptr, ptr %23, align 8, !tbaa !5
  %2826 = icmp uge ptr %2824, %2825
  br i1 %2826, label %2827, label %2851

2827:                                             ; preds = %2823
  br label %2828

2828:                                             ; preds = %2849, %2827
  %2829 = load i32, ptr %15, align 4, !tbaa !9
  %2830 = and i32 %2829, 2
  %2831 = icmp ne i32 %2830, 0
  br i1 %2831, label %2832, label %2848

2832:                                             ; preds = %2828
  br label %2833

2833:                                             ; preds = %2832
  store i32 1, ptr %16, align 4, !tbaa !9
  %2834 = load ptr, ptr %9, align 8, !tbaa !5
  %2835 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2834, i32 0, i32 0
  store i32 41, ptr %2835, align 8, !tbaa !22
  br label %2944

2836:                                             ; preds = %120
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  %2839 = load ptr, ptr %22, align 8, !tbaa !5
  %2840 = load ptr, ptr %23, align 8, !tbaa !5
  %2841 = icmp ult ptr %2839, %2840
  br i1 %2841, label %2842, label %2847

2842:                                             ; preds = %2838
  %2843 = load ptr, ptr %22, align 8, !tbaa !5
  %2844 = getelementptr inbounds i8, ptr %2843, i32 1
  store ptr %2844, ptr %22, align 8, !tbaa !5
  %2845 = load i8, ptr %2843, align 1, !tbaa !27
  %2846 = zext i8 %2845 to i32
  store i32 %2846, ptr %75, align 4, !tbaa !9
  br label %2850

2847:                                             ; preds = %2838
  br label %2849

2848:                                             ; preds = %2828
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %2850

2849:                                             ; preds = %2847
  br label %2828

2850:                                             ; preds = %2848, %2842
  br label %2856

2851:                                             ; preds = %2823
  %2852 = load ptr, ptr %22, align 8, !tbaa !5
  %2853 = getelementptr inbounds i8, ptr %2852, i32 1
  store ptr %2853, ptr %22, align 8, !tbaa !5
  %2854 = load i8, ptr %2852, align 1, !tbaa !27
  %2855 = zext i8 %2854 to i32
  store i32 %2855, ptr %75, align 4, !tbaa !9
  br label %2856

2856:                                             ; preds = %2851, %2850
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  %2859 = load i32, ptr %75, align 4, !tbaa !9
  %2860 = zext i32 %2859 to i64
  %2861 = load i32, ptr %17, align 4, !tbaa !9
  %2862 = zext i32 %2861 to i64
  %2863 = shl i64 %2860, %2862
  %2864 = load i64, ptr %21, align 8, !tbaa !17
  %2865 = or i64 %2864, %2863
  store i64 %2865, ptr %21, align 8, !tbaa !17
  %2866 = load i32, ptr %17, align 4, !tbaa !9
  %2867 = add i32 %2866, 8
  store i32 %2867, ptr %17, align 4, !tbaa !9
  br label %2868

2868:                                             ; preds = %2858
  %2869 = load i32, ptr %17, align 4, !tbaa !9
  %2870 = icmp ult i32 %2869, 8
  br i1 %2870, label %2822, label %2871, !llvm.loop !80

2871:                                             ; preds = %2868
  br label %2872

2872:                                             ; preds = %2871, %2818
  %2873 = load i64, ptr %21, align 8, !tbaa !17
  %2874 = and i64 %2873, 255
  %2875 = trunc i64 %2874 to i32
  store i32 %2875, ptr %74, align 4, !tbaa !9
  %2876 = load i64, ptr %21, align 8, !tbaa !17
  %2877 = lshr i64 %2876, 8
  store i64 %2877, ptr %21, align 8, !tbaa !17
  %2878 = load i32, ptr %17, align 4, !tbaa !9
  %2879 = sub i32 %2878, 8
  store i32 %2879, ptr %17, align 4, !tbaa !9
  br label %2880

2880:                                             ; preds = %2872
  br label %2881

2881:                                             ; preds = %2880
  br label %2919

2882:                                             ; preds = %2814
  br label %2883

2883:                                             ; preds = %2882
  %2884 = load ptr, ptr %22, align 8, !tbaa !5
  %2885 = load ptr, ptr %23, align 8, !tbaa !5
  %2886 = icmp uge ptr %2884, %2885
  br i1 %2886, label %2887, label %2911

2887:                                             ; preds = %2883
  br label %2888

2888:                                             ; preds = %2909, %2887
  %2889 = load i32, ptr %15, align 4, !tbaa !9
  %2890 = and i32 %2889, 2
  %2891 = icmp ne i32 %2890, 0
  br i1 %2891, label %2892, label %2908

2892:                                             ; preds = %2888
  br label %2893

2893:                                             ; preds = %2892
  store i32 1, ptr %16, align 4, !tbaa !9
  %2894 = load ptr, ptr %9, align 8, !tbaa !5
  %2895 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2894, i32 0, i32 0
  store i32 42, ptr %2895, align 8, !tbaa !22
  br label %2944

2896:                                             ; preds = %120
  br label %2897

2897:                                             ; preds = %2896
  br label %2898

2898:                                             ; preds = %2897
  %2899 = load ptr, ptr %22, align 8, !tbaa !5
  %2900 = load ptr, ptr %23, align 8, !tbaa !5
  %2901 = icmp ult ptr %2899, %2900
  br i1 %2901, label %2902, label %2907

2902:                                             ; preds = %2898
  %2903 = load ptr, ptr %22, align 8, !tbaa !5
  %2904 = getelementptr inbounds i8, ptr %2903, i32 1
  store ptr %2904, ptr %22, align 8, !tbaa !5
  %2905 = load i8, ptr %2903, align 1, !tbaa !27
  %2906 = zext i8 %2905 to i32
  store i32 %2906, ptr %74, align 4, !tbaa !9
  br label %2910

2907:                                             ; preds = %2898
  br label %2909

2908:                                             ; preds = %2888
  store i32 0, ptr %74, align 4, !tbaa !9
  br label %2910

2909:                                             ; preds = %2907
  br label %2888

2910:                                             ; preds = %2908, %2902
  br label %2916

2911:                                             ; preds = %2883
  %2912 = load ptr, ptr %22, align 8, !tbaa !5
  %2913 = getelementptr inbounds i8, ptr %2912, i32 1
  store ptr %2913, ptr %22, align 8, !tbaa !5
  %2914 = load i8, ptr %2912, align 1, !tbaa !27
  %2915 = zext i8 %2914 to i32
  store i32 %2915, ptr %74, align 4, !tbaa !9
  br label %2916

2916:                                             ; preds = %2911, %2910
  br label %2917

2917:                                             ; preds = %2916
  br label %2918

2918:                                             ; preds = %2917
  br label %2919

2919:                                             ; preds = %2918, %2881
  %2920 = load ptr, ptr %9, align 8, !tbaa !5
  %2921 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2920, i32 0, i32 4
  %2922 = load i32, ptr %2921, align 8, !tbaa !26
  %2923 = shl i32 %2922, 8
  %2924 = load i32, ptr %74, align 4, !tbaa !9
  %2925 = or i32 %2923, %2924
  %2926 = load ptr, ptr %9, align 8, !tbaa !5
  %2927 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2926, i32 0, i32 4
  store i32 %2925, ptr %2927, align 8, !tbaa !26
  br label %2928

2928:                                             ; preds = %2919
  %2929 = load i32, ptr %19, align 4, !tbaa !9
  %2930 = add i32 %2929, 1
  store i32 %2930, ptr %19, align 4, !tbaa !9
  br label %2811, !llvm.loop !81

2931:                                             ; preds = %2811
  br label %2932

2932:                                             ; preds = %2931, %2736
  br label %2933

2933:                                             ; preds = %2932
  br label %2934

2934:                                             ; preds = %2940, %2933
  br label %2935

2935:                                             ; preds = %2934
  store i32 0, ptr %16, align 4, !tbaa !9
  %2936 = load ptr, ptr %9, align 8, !tbaa !5
  %2937 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2936, i32 0, i32 0
  store i32 34, ptr %2937, align 8, !tbaa !22
  br label %2944

2938:                                             ; preds = %120
  br label %2939

2939:                                             ; preds = %2938
  br label %2940

2940:                                             ; preds = %2939
  br label %2934

2941:                                             ; No predecessors!
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942, %120
  br label %2944

2944:                                             ; preds = %2943, %2935, %2893, %2833, %2758, %2595, %2553, %2476, %2336, %2192, %2013, %1891, %1744, %1638, %1607, %1474, %1203, %1056, %936, %841, %750, %741, %725, %702, %648, %615, %542, %477, %402, %323, %297, %207, %165
  %2945 = load i32, ptr %17, align 4, !tbaa !9
  %2946 = load ptr, ptr %9, align 8, !tbaa !5
  %2947 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2946, i32 0, i32 1
  store i32 %2945, ptr %2947, align 4, !tbaa !13
  %2948 = load i64, ptr %21, align 8, !tbaa !17
  %2949 = load ptr, ptr %9, align 8, !tbaa !5
  %2950 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2949, i32 0, i32 12
  store i64 %2948, ptr %2950, align 8, !tbaa !16
  %2951 = load i32, ptr %18, align 4, !tbaa !9
  %2952 = load ptr, ptr %9, align 8, !tbaa !5
  %2953 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2952, i32 0, i32 8
  store i32 %2951, ptr %2953, align 8, !tbaa !18
  %2954 = load i32, ptr %19, align 4, !tbaa !9
  %2955 = load ptr, ptr %9, align 8, !tbaa !5
  %2956 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2955, i32 0, i32 9
  store i32 %2954, ptr %2956, align 4, !tbaa !19
  %2957 = load i32, ptr %20, align 4, !tbaa !9
  %2958 = load ptr, ptr %9, align 8, !tbaa !5
  %2959 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2958, i32 0, i32 10
  store i32 %2957, ptr %2959, align 8, !tbaa !20
  %2960 = load i64, ptr %27, align 8, !tbaa !11
  %2961 = load ptr, ptr %9, align 8, !tbaa !5
  %2962 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2961, i32 0, i32 13
  store i64 %2960, ptr %2962, align 8, !tbaa !21
  %2963 = load ptr, ptr %22, align 8, !tbaa !5
  %2964 = load ptr, ptr %10, align 8, !tbaa !5
  %2965 = ptrtoint ptr %2963 to i64
  %2966 = ptrtoint ptr %2964 to i64
  %2967 = sub i64 %2965, %2966
  %2968 = load ptr, ptr %11, align 8, !tbaa !5
  store i64 %2967, ptr %2968, align 8, !tbaa !11
  %2969 = load ptr, ptr %24, align 8, !tbaa !5
  %2970 = load ptr, ptr %13, align 8, !tbaa !5
  %2971 = ptrtoint ptr %2969 to i64
  %2972 = ptrtoint ptr %2970 to i64
  %2973 = sub i64 %2971, %2972
  %2974 = load ptr, ptr %14, align 8, !tbaa !5
  store i64 %2973, ptr %2974, align 8, !tbaa !11
  %2975 = load i32, ptr %15, align 4, !tbaa !9
  %2976 = and i32 %2975, 9
  %2977 = icmp ne i32 %2976, 0
  br i1 %2977, label %2978, label %3133

2978:                                             ; preds = %2944
  %2979 = load i32, ptr %16, align 4, !tbaa !9
  %2980 = icmp sge i32 %2979, 0
  br i1 %2980, label %2981, label %3133

2981:                                             ; preds = %2978
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #4
  %2982 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %2982, ptr %76, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #4
  %2983 = load ptr, ptr %14, align 8, !tbaa !5
  %2984 = load i64, ptr %2983, align 8, !tbaa !11
  store i64 %2984, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #4
  %2985 = load ptr, ptr %9, align 8, !tbaa !5
  %2986 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2985, i32 0, i32 7
  %2987 = load i32, ptr %2986, align 4, !tbaa !25
  %2988 = and i32 %2987, 65535
  store i32 %2988, ptr %79, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #4
  %2989 = load ptr, ptr %9, align 8, !tbaa !5
  %2990 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %2989, i32 0, i32 7
  %2991 = load i32, ptr %2990, align 4, !tbaa !25
  %2992 = lshr i32 %2991, 16
  store i32 %2992, ptr %80, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #4
  %2993 = load i64, ptr %77, align 8, !tbaa !11
  %2994 = urem i64 %2993, 5552
  store i64 %2994, ptr %81, align 8, !tbaa !11
  br label %2995

2995:                                             ; preds = %3102, %2981
  %2996 = load i64, ptr %77, align 8, !tbaa !11
  %2997 = icmp ne i64 %2996, 0
  br i1 %2997, label %2998, label %3110

2998:                                             ; preds = %2995
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %2999

2999:                                             ; preds = %3078, %2998
  %3000 = load i32, ptr %78, align 4, !tbaa !9
  %3001 = add i32 %3000, 7
  %3002 = zext i32 %3001 to i64
  %3003 = load i64, ptr %81, align 8, !tbaa !11
  %3004 = icmp ult i64 %3002, %3003
  br i1 %3004, label %3005, label %3083

3005:                                             ; preds = %2999
  %3006 = load ptr, ptr %76, align 8, !tbaa !5
  %3007 = getelementptr inbounds i8, ptr %3006, i64 0
  %3008 = load i8, ptr %3007, align 1, !tbaa !27
  %3009 = zext i8 %3008 to i32
  %3010 = load i32, ptr %79, align 4, !tbaa !9
  %3011 = add i32 %3010, %3009
  store i32 %3011, ptr %79, align 4, !tbaa !9
  %3012 = load i32, ptr %79, align 4, !tbaa !9
  %3013 = load i32, ptr %80, align 4, !tbaa !9
  %3014 = add i32 %3013, %3012
  store i32 %3014, ptr %80, align 4, !tbaa !9
  %3015 = load ptr, ptr %76, align 8, !tbaa !5
  %3016 = getelementptr inbounds i8, ptr %3015, i64 1
  %3017 = load i8, ptr %3016, align 1, !tbaa !27
  %3018 = zext i8 %3017 to i32
  %3019 = load i32, ptr %79, align 4, !tbaa !9
  %3020 = add i32 %3019, %3018
  store i32 %3020, ptr %79, align 4, !tbaa !9
  %3021 = load i32, ptr %79, align 4, !tbaa !9
  %3022 = load i32, ptr %80, align 4, !tbaa !9
  %3023 = add i32 %3022, %3021
  store i32 %3023, ptr %80, align 4, !tbaa !9
  %3024 = load ptr, ptr %76, align 8, !tbaa !5
  %3025 = getelementptr inbounds i8, ptr %3024, i64 2
  %3026 = load i8, ptr %3025, align 1, !tbaa !27
  %3027 = zext i8 %3026 to i32
  %3028 = load i32, ptr %79, align 4, !tbaa !9
  %3029 = add i32 %3028, %3027
  store i32 %3029, ptr %79, align 4, !tbaa !9
  %3030 = load i32, ptr %79, align 4, !tbaa !9
  %3031 = load i32, ptr %80, align 4, !tbaa !9
  %3032 = add i32 %3031, %3030
  store i32 %3032, ptr %80, align 4, !tbaa !9
  %3033 = load ptr, ptr %76, align 8, !tbaa !5
  %3034 = getelementptr inbounds i8, ptr %3033, i64 3
  %3035 = load i8, ptr %3034, align 1, !tbaa !27
  %3036 = zext i8 %3035 to i32
  %3037 = load i32, ptr %79, align 4, !tbaa !9
  %3038 = add i32 %3037, %3036
  store i32 %3038, ptr %79, align 4, !tbaa !9
  %3039 = load i32, ptr %79, align 4, !tbaa !9
  %3040 = load i32, ptr %80, align 4, !tbaa !9
  %3041 = add i32 %3040, %3039
  store i32 %3041, ptr %80, align 4, !tbaa !9
  %3042 = load ptr, ptr %76, align 8, !tbaa !5
  %3043 = getelementptr inbounds i8, ptr %3042, i64 4
  %3044 = load i8, ptr %3043, align 1, !tbaa !27
  %3045 = zext i8 %3044 to i32
  %3046 = load i32, ptr %79, align 4, !tbaa !9
  %3047 = add i32 %3046, %3045
  store i32 %3047, ptr %79, align 4, !tbaa !9
  %3048 = load i32, ptr %79, align 4, !tbaa !9
  %3049 = load i32, ptr %80, align 4, !tbaa !9
  %3050 = add i32 %3049, %3048
  store i32 %3050, ptr %80, align 4, !tbaa !9
  %3051 = load ptr, ptr %76, align 8, !tbaa !5
  %3052 = getelementptr inbounds i8, ptr %3051, i64 5
  %3053 = load i8, ptr %3052, align 1, !tbaa !27
  %3054 = zext i8 %3053 to i32
  %3055 = load i32, ptr %79, align 4, !tbaa !9
  %3056 = add i32 %3055, %3054
  store i32 %3056, ptr %79, align 4, !tbaa !9
  %3057 = load i32, ptr %79, align 4, !tbaa !9
  %3058 = load i32, ptr %80, align 4, !tbaa !9
  %3059 = add i32 %3058, %3057
  store i32 %3059, ptr %80, align 4, !tbaa !9
  %3060 = load ptr, ptr %76, align 8, !tbaa !5
  %3061 = getelementptr inbounds i8, ptr %3060, i64 6
  %3062 = load i8, ptr %3061, align 1, !tbaa !27
  %3063 = zext i8 %3062 to i32
  %3064 = load i32, ptr %79, align 4, !tbaa !9
  %3065 = add i32 %3064, %3063
  store i32 %3065, ptr %79, align 4, !tbaa !9
  %3066 = load i32, ptr %79, align 4, !tbaa !9
  %3067 = load i32, ptr %80, align 4, !tbaa !9
  %3068 = add i32 %3067, %3066
  store i32 %3068, ptr %80, align 4, !tbaa !9
  %3069 = load ptr, ptr %76, align 8, !tbaa !5
  %3070 = getelementptr inbounds i8, ptr %3069, i64 7
  %3071 = load i8, ptr %3070, align 1, !tbaa !27
  %3072 = zext i8 %3071 to i32
  %3073 = load i32, ptr %79, align 4, !tbaa !9
  %3074 = add i32 %3073, %3072
  store i32 %3074, ptr %79, align 4, !tbaa !9
  %3075 = load i32, ptr %79, align 4, !tbaa !9
  %3076 = load i32, ptr %80, align 4, !tbaa !9
  %3077 = add i32 %3076, %3075
  store i32 %3077, ptr %80, align 4, !tbaa !9
  br label %3078

3078:                                             ; preds = %3005
  %3079 = load i32, ptr %78, align 4, !tbaa !9
  %3080 = add i32 %3079, 8
  store i32 %3080, ptr %78, align 4, !tbaa !9
  %3081 = load ptr, ptr %76, align 8, !tbaa !5
  %3082 = getelementptr inbounds i8, ptr %3081, i64 8
  store ptr %3082, ptr %76, align 8, !tbaa !5
  br label %2999, !llvm.loop !82

3083:                                             ; preds = %2999
  br label %3084

3084:                                             ; preds = %3099, %3083
  %3085 = load i32, ptr %78, align 4, !tbaa !9
  %3086 = zext i32 %3085 to i64
  %3087 = load i64, ptr %81, align 8, !tbaa !11
  %3088 = icmp ult i64 %3086, %3087
  br i1 %3088, label %3089, label %3102

3089:                                             ; preds = %3084
  %3090 = load ptr, ptr %76, align 8, !tbaa !5
  %3091 = getelementptr inbounds i8, ptr %3090, i32 1
  store ptr %3091, ptr %76, align 8, !tbaa !5
  %3092 = load i8, ptr %3090, align 1, !tbaa !27
  %3093 = zext i8 %3092 to i32
  %3094 = load i32, ptr %79, align 4, !tbaa !9
  %3095 = add i32 %3094, %3093
  store i32 %3095, ptr %79, align 4, !tbaa !9
  %3096 = load i32, ptr %79, align 4, !tbaa !9
  %3097 = load i32, ptr %80, align 4, !tbaa !9
  %3098 = add i32 %3097, %3096
  store i32 %3098, ptr %80, align 4, !tbaa !9
  br label %3099

3099:                                             ; preds = %3089
  %3100 = load i32, ptr %78, align 4, !tbaa !9
  %3101 = add i32 %3100, 1
  store i32 %3101, ptr %78, align 4, !tbaa !9
  br label %3084, !llvm.loop !83

3102:                                             ; preds = %3084
  %3103 = load i32, ptr %79, align 4, !tbaa !9
  %3104 = urem i32 %3103, 65521
  store i32 %3104, ptr %79, align 4, !tbaa !9
  %3105 = load i32, ptr %80, align 4, !tbaa !9
  %3106 = urem i32 %3105, 65521
  store i32 %3106, ptr %80, align 4, !tbaa !9
  %3107 = load i64, ptr %81, align 8, !tbaa !11
  %3108 = load i64, ptr %77, align 8, !tbaa !11
  %3109 = sub i64 %3108, %3107
  store i64 %3109, ptr %77, align 8, !tbaa !11
  store i64 5552, ptr %81, align 8, !tbaa !11
  br label %2995, !llvm.loop !84

3110:                                             ; preds = %2995
  %3111 = load i32, ptr %80, align 4, !tbaa !9
  %3112 = shl i32 %3111, 16
  %3113 = load i32, ptr %79, align 4, !tbaa !9
  %3114 = add i32 %3112, %3113
  %3115 = load ptr, ptr %9, align 8, !tbaa !5
  %3116 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %3115, i32 0, i32 7
  store i32 %3114, ptr %3116, align 4, !tbaa !25
  %3117 = load i32, ptr %16, align 4, !tbaa !9
  %3118 = icmp eq i32 %3117, 0
  br i1 %3118, label %3119, label %3132

3119:                                             ; preds = %3110
  %3120 = load i32, ptr %15, align 4, !tbaa !9
  %3121 = and i32 %3120, 1
  %3122 = icmp ne i32 %3121, 0
  br i1 %3122, label %3123, label %3132

3123:                                             ; preds = %3119
  %3124 = load ptr, ptr %9, align 8, !tbaa !5
  %3125 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %3124, i32 0, i32 7
  %3126 = load i32, ptr %3125, align 4, !tbaa !25
  %3127 = load ptr, ptr %9, align 8, !tbaa !5
  %3128 = getelementptr inbounds %struct.tinfl_decompressor_tag, ptr %3127, i32 0, i32 4
  %3129 = load i32, ptr %3128, align 8, !tbaa !26
  %3130 = icmp ne i32 %3126, %3129
  br i1 %3130, label %3131, label %3132

3131:                                             ; preds = %3123
  store i32 -2, ptr %16, align 4, !tbaa !9
  br label %3132

3132:                                             ; preds = %3131, %3123, %3119, %3110
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  br label %3133

3133:                                             ; preds = %3132, %2978, %2944
  %3134 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %3134, ptr %8, align 4
  store i32 1, ptr %28, align 4
  br label %3135

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

3137:                                             ; preds = %2674, %2153, %1366
  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

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 = { 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, !15, i64 56, !12, i64 64, !7, i64 72, !7, i64 10536, !7, i64 10540}
!15 = !{!"long long", !7, i64 0}
!16 = !{!14, !15, i64 56}
!17 = !{!15, !15, i64 0}
!18 = !{!14, !10, i64 32}
!19 = !{!14, !10, i64 36}
!20 = !{!14, !10, i64 40}
!21 = !{!14, !12, i64 64}
!22 = !{!14, !10, i64 0}
!23 = !{!14, !10, i64 12}
!24 = !{!14, !10, i64 8}
!25 = !{!14, !10, i64 28}
!26 = !{!14, !10, i64 16}
!27 = !{!7, !7, i64 0}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!14, !10, i64 20}
!31 = !{!14, !10, i64 24}
!32 = distinct !{!32, !29}
!33 = distinct !{!33, !29}
!34 = distinct !{!34, !29}
!35 = distinct !{!35, !29}
!36 = distinct !{!36, !29}
!37 = distinct !{!37, !29}
!38 = distinct !{!38, !29}
!39 = distinct !{!39, !29}
!40 = distinct !{!40, !29}
!41 = distinct !{!41, !29}
!42 = distinct !{!42, !29}
!43 = distinct !{!43, !29}
!44 = distinct !{!44, !29}
!45 = distinct !{!45, !29}
!46 = distinct !{!46, !29}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}
!49 = distinct !{!49, !29}
!50 = distinct !{!50, !29}
!51 = distinct !{!51, !29}
!52 = !{!53, !53, i64 0}
!53 = !{!"short", !7, i64 0}
!54 = distinct !{!54, !29}
!55 = distinct !{!55, !29}
!56 = distinct !{!56, !29}
!57 = distinct !{!57, !29}
!58 = distinct !{!58, !29}
!59 = distinct !{!59, !29}
!60 = distinct !{!60, !29}
!61 = distinct !{!61, !29}
!62 = distinct !{!62, !29}
!63 = distinct !{!63, !29}
!64 = distinct !{!64, !29}
!65 = distinct !{!65, !29}
!66 = distinct !{!66, !29}
!67 = distinct !{!67, !29}
!68 = distinct !{!68, !29}
!69 = distinct !{!69, !29}
!70 = distinct !{!70, !29}
!71 = distinct !{!71, !29}
!72 = distinct !{!72, !29}
!73 = distinct !{!73, !29}
!74 = distinct !{!74, !29}
!75 = distinct !{!75, !29}
!76 = distinct !{!76, !29}
!77 = distinct !{!77, !29}
!78 = distinct !{!78, !29}
!79 = distinct !{!79, !29}
!80 = distinct !{!80, !29}
!81 = distinct !{!81, !29}
!82 = distinct !{!82, !29}
!83 = distinct !{!83, !29}
!84 = distinct !{!84, !29}


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

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

@tinfl_decompress.s_length_base = external hidden local_unnamed_addr constant [31 x i32], align 16
@tinfl_decompress.s_length_extra = external hidden local_unnamed_addr constant [31 x i32], align 16
@tinfl_decompress.s_dist_base = external hidden local_unnamed_addr constant [32 x i32], align 16
@tinfl_decompress.s_dist_extra = external hidden local_unnamed_addr constant [32 x i32], align 16
@tinfl_decompress.s_length_dezigzag = external hidden local_unnamed_addr constant [19 x i8], align 16
@tinfl_decompress.s_min_table_sizes = external hidden local_unnamed_addr constant [3 x i32], align 4
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

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

25:                                               ; preds = %7
  %26 = getelementptr inbounds i8, ptr %0, i64 4
  %27 = load i32, ptr %26, align 4, !tbaa !9
  %28 = getelementptr inbounds i8, ptr %0, i64 56
  %29 = load i64, ptr %28, align 8, !tbaa !13
  %30 = getelementptr inbounds i8, ptr %0, i64 32
  %31 = load i32, ptr %30, align 8, !tbaa !14
  %32 = getelementptr inbounds i8, ptr %0, i64 36
  %33 = load i32, ptr %32, align 4, !tbaa !15
  %34 = getelementptr inbounds i8, ptr %0, i64 40
  %35 = load i32, ptr %34, align 8, !tbaa !16
  %36 = getelementptr inbounds i8, ptr %0, i64 64
  %37 = load i64, ptr %36, align 8, !tbaa !17
  %38 = load i32, ptr %0, align 8, !tbaa !18
  switch i32 %38, label %1202 [
    i32 0, label %39
    i32 1, label %48
    i32 2, label %64
    i32 36, label %.sink.split2148
    i32 3, label %95
    i32 5, label %117
    i32 6, label %141
    i32 7, label %170
    i32 39, label %.sink.split2148
    i32 51, label %212
    i32 52, label %236
    i32 9, label %243
    i32 38, label %248
    i32 40, label %247
    i32 10, label %.sink.split2148
    i32 11, label %278
    i32 14, label %319
    i32 35, label %.sink.split2148
    i32 16, label %585
    i32 17, label %.sink.split2148
    i32 18, label %657
    i32 21, label %.sink.split2148
    i32 23, label %747
    i32 24, label %801
    i32 25, label %887
    i32 26, label %945
    i32 27, label %1007
    i32 37, label %.sink.split2148
    i32 53, label %1043
    i32 32, label %1134
    i32 41, label %1158
    i32 42, label %1185
    i32 34, label %1201
  ], !llvm.loop !19

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

45:                                               ; preds = %39
  %.not1769 = icmp sgt i64 %10, 0
  br i1 %.not1769, label %57, label %46

46:                                               ; preds = %48, %45
  %.01242 = phi i64 [ %29, %48 ], [ 0, %45 ]
  %.01135 = phi i32 [ %35, %48 ], [ 0, %45 ]
  %.01025 = phi i32 [ %33, %48 ], [ 0, %45 ]
  %.0929 = phi i32 [ %31, %48 ], [ 0, %45 ]
  %.0900 = phi i32 [ %27, %48 ], [ 0, %45 ]
  %47 = and i32 %6, 2
  %.not1770 = icmp eq i32 %47, 0
  br i1 %.not1770, label %55, label %.sink.split2148

48:                                               ; preds = %25
  %49 = icmp sgt i64 %10, 0
  br i1 %49, label %50, label %46

50:                                               ; preds = %48
  %51 = getelementptr inbounds i8, ptr %1, i64 1
  %52 = load i8, ptr %1, align 1, !tbaa !25
  %53 = zext i8 %52 to i32
  %54 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 %53, ptr %54, align 8, !tbaa !22
  br label %61

55:                                               ; preds = %46
  %56 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 0, ptr %56, align 8, !tbaa !22
  br label %61

57:                                               ; preds = %45
  %58 = getelementptr inbounds i8, ptr %1, i64 1
  %59 = load i8, ptr %1, align 1, !tbaa !25
  %60 = zext i8 %59 to i32
  store i32 %60, ptr %41, align 8, !tbaa !22
  br label %61

61:                                               ; preds = %57, %55, %50
  %.01352 = phi ptr [ %51, %50 ], [ %1, %55 ], [ %58, %57 ]
  %.11243 = phi i64 [ %29, %50 ], [ %.01242, %55 ], [ 0, %57 ]
  %.11136 = phi i32 [ %35, %50 ], [ %.01135, %55 ], [ 0, %57 ]
  %.11026 = phi i32 [ %33, %50 ], [ %.01025, %55 ], [ 0, %57 ]
  %.1930 = phi i32 [ %31, %50 ], [ %.0929, %55 ], [ 0, %57 ]
  %.1901 = phi i32 [ %27, %50 ], [ %.0900, %55 ], [ 0, %57 ]
  %.not1771 = icmp ult ptr %.01352, %11
  br i1 %.not1771, label %.sink.split2151, label %62

62:                                               ; preds = %64, %61
  %.11353 = phi ptr [ %1, %64 ], [ %.01352, %61 ]
  %.21244 = phi i64 [ %29, %64 ], [ %.11243, %61 ]
  %.21137 = phi i32 [ %35, %64 ], [ %.11136, %61 ]
  %.21027 = phi i32 [ %33, %64 ], [ %.11026, %61 ]
  %.2931 = phi i32 [ %31, %64 ], [ %.1930, %61 ]
  %.2902 = phi i32 [ %27, %64 ], [ %.1901, %61 ]
  %63 = and i32 %6, 2
  %.not1772 = icmp eq i32 %63, 0
  br i1 %.not1772, label %69, label %.sink.split2148

64:                                               ; preds = %25
  %65 = icmp sgt i64 %10, 0
  br i1 %65, label %.sink.split2151, label %62

.sink.split2151:                                  ; preds = %61, %64
  %.sink2154 = phi ptr [ %1, %64 ], [ %.01352, %61 ]
  %.31245.ph = phi i64 [ %29, %64 ], [ %.11243, %61 ]
  %.31138.ph = phi i32 [ %35, %64 ], [ %.11136, %61 ]
  %.3932.ph = phi i32 [ %31, %64 ], [ %.1930, %61 ]
  %.3.ph = phi i32 [ %27, %64 ], [ %.1901, %61 ]
  %66 = getelementptr inbounds i8, ptr %.sink2154, i64 1
  %67 = load i8, ptr %.sink2154, align 1, !tbaa !25
  %68 = zext i8 %67 to i32
  br label %69

69:                                               ; preds = %.sink.split2151, %62
  %.sink = phi i32 [ 0, %62 ], [ %68, %.sink.split2151 ]
  %.21354 = phi ptr [ %.11353, %62 ], [ %66, %.sink.split2151 ]
  %.31245 = phi i64 [ %.21244, %62 ], [ %.31245.ph, %.sink.split2151 ]
  %.31138 = phi i32 [ %.21137, %62 ], [ %.31138.ph, %.sink.split2151 ]
  %.3932 = phi i32 [ %.2931, %62 ], [ %.3932.ph, %.sink.split2151 ]
  %.3 = phi i32 [ %.2902, %62 ], [ %.3.ph, %.sink.split2151 ]
  %70 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 %.sink, ptr %70, align 4, !tbaa !21
  %71 = getelementptr inbounds i8, ptr %0, i64 8
  %72 = load i32, ptr %71, align 8, !tbaa !22
  %73 = shl i32 %72, 8
  %74 = or disjoint i32 %73, %.sink
  %75 = urem i32 %74, 31
  %76 = and i32 %.sink, 32
  %77 = or disjoint i32 %75, %76
  %or.cond1841 = icmp ne i32 %77, 0
  %78 = and i32 %72, 15
  %79 = icmp ne i32 %78, 8
  %80 = select i1 %or.cond1841, i1 true, i1 %79
  br i1 %.not, label %81, label %89

81:                                               ; preds = %69
  %82 = lshr i32 %72, 4
  %83 = shl nuw i32 256, %82
  %84 = icmp ugt i32 %83, 32768
  %85 = zext nneg i32 %83 to i64
  %86 = icmp ult i64 %21, %85
  %87 = select i1 %84, i1 true, i1 %86
  %88 = or i1 %87, %80
  br i1 %88, label %.sink.split2148, label %90

89:                                               ; preds = %69
  br i1 %80, label %.sink.split2148, label %90

90:                                               ; preds = %39, %89, %81, %1126
  %.01548 = phi ptr [ %.861634, %1126 ], [ %4, %81 ], [ %4, %89 ], [ %4, %39 ]
  %.01457 = phi i64 [ %.771534, %1126 ], [ %37, %81 ], [ %37, %89 ], [ %37, %39 ]
  %.51357 = phi ptr [ %.851437, %1126 ], [ %.21354, %81 ], [ %.21354, %89 ], [ %1, %39 ]
  %.61248 = phi i64 [ %.871329, %1126 ], [ %.31245, %81 ], [ %.31245, %89 ], [ 0, %39 ]
  %.61141 = phi i32 [ %.841219, %1126 ], [ %.31138, %81 ], [ %.31138, %89 ], [ 0, %39 ]
  %.61031 = phi i32 [ %.861111, %1126 ], [ 0, %81 ], [ 0, %89 ], [ 0, %39 ]
  %.6935 = phi i32 [ %.821011, %1126 ], [ %.3932, %81 ], [ %.3932, %89 ], [ 0, %39 ]
  %.6 = phi i32 [ %.87, %1126 ], [ %.3, %81 ], [ %.3, %89 ], [ 0, %39 ]
  %91 = icmp ult i32 %.6, 3
  br i1 %91, label %92, label %106

92:                                               ; preds = %90, %99
  %.11549 = phi ptr [ %.01548, %90 ], [ %.31551, %99 ]
  %.11458 = phi i64 [ %.01457, %90 ], [ %.31460, %99 ]
  %.61358 = phi ptr [ %.51357, %90 ], [ %.81360, %99 ]
  %.71249 = phi i64 [ %.61248, %90 ], [ %103, %99 ]
  %.71142 = phi i32 [ %.61141, %90 ], [ %.91144, %99 ]
  %.71032 = phi i32 [ %.61031, %90 ], [ %.91034, %99 ]
  %.7936 = phi i32 [ %.6935, %90 ], [ %.9938, %99 ]
  %.7 = phi i32 [ %.6, %90 ], [ %104, %99 ]
  %.not1775 = icmp ult ptr %.61358, %11
  br i1 %.not1775, label %.sink.split, label %93

93:                                               ; preds = %95, %92
  %.21550 = phi ptr [ %.11549, %92 ], [ %4, %95 ]
  %.21459 = phi i64 [ %.11458, %92 ], [ %37, %95 ]
  %.71359 = phi ptr [ %.61358, %92 ], [ %1, %95 ]
  %.81250 = phi i64 [ %.71249, %92 ], [ %29, %95 ]
  %.81143 = phi i32 [ %.71142, %92 ], [ %35, %95 ]
  %.81033 = phi i32 [ %.71032, %92 ], [ %33, %95 ]
  %.8937 = phi i32 [ %.7936, %92 ], [ %31, %95 ]
  %.8 = phi i32 [ %.7, %92 ], [ %27, %95 ]
  %94 = and i32 %6, 2
  %.not1776 = icmp eq i32 %94, 0
  br i1 %.not1776, label %99, label %.sink.split2148

95:                                               ; preds = %25
  %96 = icmp sgt i64 %10, 0
  br i1 %96, label %.sink.split, label %93

.sink.split:                                      ; preds = %92, %95
  %.sink2123 = phi ptr [ %1, %95 ], [ %.61358, %92 ]
  %.31551.ph = phi ptr [ %4, %95 ], [ %.11549, %92 ]
  %.31460.ph = phi i64 [ %37, %95 ], [ %.11458, %92 ]
  %.91251.ph = phi i64 [ %29, %95 ], [ %.71249, %92 ]
  %.91144.ph = phi i32 [ %35, %95 ], [ %.71142, %92 ]
  %.91034.ph = phi i32 [ %33, %95 ], [ %.71032, %92 ]
  %.9938.ph = phi i32 [ %31, %95 ], [ %.7936, %92 ]
  %.9.ph = phi i32 [ %27, %95 ], [ %.7, %92 ]
  %97 = getelementptr inbounds i8, ptr %.sink2123, i64 1
  %98 = load i8, ptr %.sink2123, align 1, !tbaa !25
  br label %99

99:                                               ; preds = %.sink.split, %93
  %.31551 = phi ptr [ %.21550, %93 ], [ %.31551.ph, %.sink.split ]
  %.31460 = phi i64 [ %.21459, %93 ], [ %.31460.ph, %.sink.split ]
  %.01454.shrunk = phi i8 [ 0, %93 ], [ %98, %.sink.split ]
  %.81360 = phi ptr [ %.71359, %93 ], [ %97, %.sink.split ]
  %.91251 = phi i64 [ %.81250, %93 ], [ %.91251.ph, %.sink.split ]
  %.91144 = phi i32 [ %.81143, %93 ], [ %.91144.ph, %.sink.split ]
  %.91034 = phi i32 [ %.81033, %93 ], [ %.91034.ph, %.sink.split ]
  %.9938 = phi i32 [ %.8937, %93 ], [ %.9938.ph, %.sink.split ]
  %.9 = phi i32 [ %.8, %93 ], [ %.9.ph, %.sink.split ]
  %100 = zext i8 %.01454.shrunk to i64
  %101 = zext nneg i32 %.9 to i64
  %102 = shl i64 %100, %101
  %103 = or i64 %102, %.91251
  %104 = add i32 %.9, 8
  %105 = icmp ult i32 %104, 3
  br i1 %105, label %92, label %106, !llvm.loop !26

106:                                              ; preds = %99, %90
  %.41552 = phi ptr [ %.31551, %99 ], [ %.01548, %90 ]
  %.41461 = phi i64 [ %.31460, %99 ], [ %.01457, %90 ]
  %.91361 = phi ptr [ %.81360, %99 ], [ %.51357, %90 ]
  %.101252 = phi i64 [ %103, %99 ], [ %.61248, %90 ]
  %.101145 = phi i32 [ %.91144, %99 ], [ %.61141, %90 ]
  %.101035 = phi i32 [ %.91034, %99 ], [ %.61031, %90 ]
  %.10939 = phi i32 [ %.9938, %99 ], [ %.6935, %90 ]
  %.10 = phi i32 [ %104, %99 ], [ %.6, %90 ]
  %107 = trunc i64 %.101252 to i32
  %108 = and i32 %107, 7
  %109 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %108, ptr %109, align 4, !tbaa !27
  %110 = lshr i64 %.101252, 3
  %111 = add i32 %.10, -3
  %112 = lshr i32 %108, 1
  %113 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %112, ptr %113, align 8, !tbaa !28
  %114 = icmp ult i32 %108, 2
  br i1 %114, label %128, label %262

115:                                              ; preds = %117
  %116 = and i32 %6, 2
  %.not1767 = icmp eq i32 %116, 0
  br i1 %.not1767, label %123, label %.sink.split2148

117:                                              ; preds = %25
  %118 = icmp sgt i64 %10, 0
  br i1 %118, label %119, label %115

119:                                              ; preds = %117
  %120 = getelementptr inbounds i8, ptr %1, i64 1
  %121 = load i8, ptr %1, align 1, !tbaa !25
  %122 = zext i8 %121 to i64
  br label %123

123:                                              ; preds = %115, %119
  %.01453 = phi i64 [ %122, %119 ], [ 0, %115 ]
  %.121364 = phi ptr [ %120, %119 ], [ %1, %115 ]
  %124 = zext nneg i32 %27 to i64
  %125 = shl i64 %.01453, %124
  %126 = or i64 %125, %29
  %127 = add i32 %27, 8
  br label %128

128:                                              ; preds = %106, %123
  %.81556 = phi ptr [ %4, %123 ], [ %.41552, %106 ]
  %.81465 = phi i64 [ %37, %123 ], [ %.41461, %106 ]
  %.131365 = phi ptr [ %.121364, %123 ], [ %.91361, %106 ]
  %.141256 = phi i64 [ %126, %123 ], [ %110, %106 ]
  %.141149 = phi i32 [ %35, %123 ], [ %.101145, %106 ]
  %.14943 = phi i32 [ %31, %123 ], [ %.10939, %106 ]
  %.14 = phi i32 [ %127, %123 ], [ %111, %106 ]
  %129 = and i32 %.14, 7
  %130 = zext nneg i32 %129 to i64
  %131 = lshr i64 %.141256, %130
  %132 = and i32 %.14, -8
  br label %133

133:                                              ; preds = %188, %128
  %.91557 = phi ptr [ %.81556, %128 ], [ %.151563, %188 ]
  %.91466 = phi i64 [ %.81465, %128 ], [ %.151472, %188 ]
  %.141366 = phi ptr [ %.131365, %128 ], [ %.201372, %188 ]
  %.151257 = phi i64 [ %131, %128 ], [ %.211263, %188 ]
  %.151150 = phi i32 [ %.141149, %128 ], [ %.211156, %188 ]
  %.141039 = phi i32 [ 0, %128 ], [ %189, %188 ]
  %.15944 = phi i32 [ %.14943, %128 ], [ %.21950, %188 ]
  %.15 = phi i32 [ %132, %128 ], [ %.21, %188 ]
  %134 = icmp ult i32 %.141039, 4
  br i1 %134, label %135, label %190

135:                                              ; preds = %133
  %.not1832 = icmp eq i32 %.15, 0
  br i1 %.not1832, label %167, label %136

136:                                              ; preds = %135
  %137 = icmp ult i32 %.15, 8
  br i1 %137, label %138, label %160

138:                                              ; preds = %136, %153
  %.101558 = phi ptr [ %.91557, %136 ], [ %.121560, %153 ]
  %.101467 = phi i64 [ %.91466, %136 ], [ %.121469, %153 ]
  %.151367 = phi ptr [ %.141366, %136 ], [ %.171369, %153 ]
  %.161258 = phi i64 [ %.151257, %136 ], [ %157, %153 ]
  %.161151 = phi i32 [ %.151150, %136 ], [ %.181153, %153 ]
  %.151040 = phi i32 [ %.141039, %136 ], [ %.171042, %153 ]
  %.16945 = phi i32 [ %.15944, %136 ], [ %.18947, %153 ]
  %.16 = phi i32 [ %.15, %136 ], [ %158, %153 ]
  %.not1835 = icmp ult ptr %.151367, %11
  br i1 %.not1835, label %.thread, label %139

139:                                              ; preds = %141, %138
  %.111559 = phi ptr [ %.101558, %138 ], [ %4, %141 ]
  %.111468 = phi i64 [ %.101467, %138 ], [ %37, %141 ]
  %.161368 = phi ptr [ %.151367, %138 ], [ %1, %141 ]
  %.171259 = phi i64 [ %.161258, %138 ], [ %29, %141 ]
  %.171152 = phi i32 [ %.161151, %138 ], [ %35, %141 ]
  %.161041 = phi i32 [ %.151040, %138 ], [ %33, %141 ]
  %.17946 = phi i32 [ %.16945, %138 ], [ %31, %141 ]
  %.17 = phi i32 [ %.16, %138 ], [ %27, %141 ]
  %140 = and i32 %6, 2
  %.not1836 = icmp eq i32 %140, 0
  br i1 %.not1836, label %153, label %.sink.split2148

141:                                              ; preds = %25
  %142 = icmp sgt i64 %10, 0
  br i1 %142, label %143, label %139

143:                                              ; preds = %141
  %144 = getelementptr inbounds i8, ptr %1, i64 1
  %145 = load i8, ptr %1, align 1, !tbaa !25
  br label %153

.thread:                                          ; preds = %138
  %146 = getelementptr inbounds i8, ptr %.151367, i64 1
  %147 = load i8, ptr %.151367, align 1, !tbaa !25
  %148 = zext i8 %147 to i64
  %149 = zext nneg i32 %.16 to i64
  %150 = shl nuw nsw i64 %148, %149
  %151 = or i64 %150, %.161258
  %152 = add nuw nsw i32 %.16, 8
  br label %160

153:                                              ; preds = %139, %143
  %.121560 = phi ptr [ %4, %143 ], [ %.111559, %139 ]
  %.121469 = phi i64 [ %37, %143 ], [ %.111468, %139 ]
  %.01452.shrunk = phi i8 [ %145, %143 ], [ 0, %139 ]
  %.171369 = phi ptr [ %144, %143 ], [ %.161368, %139 ]
  %.181260 = phi i64 [ %29, %143 ], [ %.171259, %139 ]
  %.181153 = phi i32 [ %35, %143 ], [ %.171152, %139 ]
  %.171042 = phi i32 [ %33, %143 ], [ %.161041, %139 ]
  %.18947 = phi i32 [ %31, %143 ], [ %.17946, %139 ]
  %.18 = phi i32 [ %27, %143 ], [ %.17, %139 ]
  %154 = zext i8 %.01452.shrunk to i64
  %155 = zext nneg i32 %.18 to i64
  %156 = shl i64 %154, %155
  %157 = or i64 %156, %.181260
  %158 = add i32 %.18, 8
  %159 = icmp ugt i32 %.18, -9
  br i1 %159, label %138, label %160, !llvm.loop !29

160:                                              ; preds = %.thread, %153, %136
  %.131561 = phi ptr [ %.121560, %153 ], [ %.91557, %136 ], [ %.101558, %.thread ]
  %.131470 = phi i64 [ %.121469, %153 ], [ %.91466, %136 ], [ %.101467, %.thread ]
  %.181370 = phi ptr [ %.171369, %153 ], [ %.141366, %136 ], [ %146, %.thread ]
  %.191261 = phi i64 [ %157, %153 ], [ %.151257, %136 ], [ %151, %.thread ]
  %.191154 = phi i32 [ %.181153, %153 ], [ %.151150, %136 ], [ %.161151, %.thread ]
  %.181043 = phi i32 [ %.171042, %153 ], [ %.141039, %136 ], [ %.151040, %.thread ]
  %.19948 = phi i32 [ %.18947, %153 ], [ %.15944, %136 ], [ %.16945, %.thread ]
  %.19 = phi i32 [ %158, %153 ], [ %.15, %136 ], [ %152, %.thread ]
  %161 = trunc i64 %.191261 to i8
  %162 = getelementptr inbounds i8, ptr %0, i64 10536
  %163 = zext i32 %.181043 to i64
  %164 = getelementptr inbounds [4 x i8], ptr %162, i64 0, i64 %163
  store i8 %161, ptr %164, align 1, !tbaa !25
  %165 = lshr i64 %.191261, 8
  %166 = add i32 %.19, -8
  br label %188

167:                                              ; preds = %135
  %.not1833 = icmp ult ptr %.141366, %11
  br i1 %.not1833, label %182, label %168

168:                                              ; preds = %170, %167
  %.141562 = phi ptr [ %.91557, %167 ], [ %4, %170 ]
  %.141471 = phi i64 [ %.91466, %167 ], [ %37, %170 ]
  %.191371 = phi ptr [ %.141366, %167 ], [ %1, %170 ]
  %.201262 = phi i64 [ %.151257, %167 ], [ %29, %170 ]
  %.201155 = phi i32 [ %.151150, %167 ], [ %35, %170 ]
  %.191044 = phi i32 [ %.141039, %167 ], [ %33, %170 ]
  %.20949 = phi i32 [ %.15944, %167 ], [ %31, %170 ]
  %.20 = phi i32 [ 0, %167 ], [ %27, %170 ]
  %169 = and i32 %6, 2
  %.not1834 = icmp eq i32 %169, 0
  br i1 %.not1834, label %178, label %.sink.split2148

170:                                              ; preds = %25
  %171 = icmp sgt i64 %10, 0
  br i1 %171, label %172, label %168

172:                                              ; preds = %170
  %173 = getelementptr inbounds i8, ptr %1, i64 1
  %174 = load i8, ptr %1, align 1, !tbaa !25
  %175 = getelementptr inbounds i8, ptr %0, i64 10536
  %176 = zext i32 %33 to i64
  %177 = getelementptr inbounds [4 x i8], ptr %175, i64 0, i64 %176
  store i8 %174, ptr %177, align 1, !tbaa !25
  br label %188

178:                                              ; preds = %168
  %179 = getelementptr inbounds i8, ptr %0, i64 10536
  %180 = zext i32 %.191044 to i64
  %181 = getelementptr inbounds [4 x i8], ptr %179, i64 0, i64 %180
  store i8 0, ptr %181, align 1, !tbaa !25
  br label %188

182:                                              ; preds = %167
  %183 = getelementptr inbounds i8, ptr %.141366, i64 1
  %184 = load i8, ptr %.141366, align 1, !tbaa !25
  %185 = getelementptr inbounds i8, ptr %0, i64 10536
  %186 = zext nneg i32 %.141039 to i64
  %187 = getelementptr inbounds [4 x i8], ptr %185, i64 0, i64 %186
  store i8 %184, ptr %187, align 1, !tbaa !25
  br label %188

188:                                              ; preds = %160, %172, %178, %182
  %.151563 = phi ptr [ %.131561, %160 ], [ %.141562, %178 ], [ %.91557, %182 ], [ %4, %172 ]
  %.151472 = phi i64 [ %.131470, %160 ], [ %.141471, %178 ], [ %.91466, %182 ], [ %37, %172 ]
  %.201372 = phi ptr [ %.181370, %160 ], [ %.191371, %178 ], [ %183, %182 ], [ %173, %172 ]
  %.211263 = phi i64 [ %165, %160 ], [ %.201262, %178 ], [ %.151257, %182 ], [ %29, %172 ]
  %.211156 = phi i32 [ %.191154, %160 ], [ %.201155, %178 ], [ %.151150, %182 ], [ %35, %172 ]
  %.201045 = phi i32 [ %.181043, %160 ], [ %.191044, %178 ], [ %.141039, %182 ], [ %33, %172 ]
  %.21950 = phi i32 [ %.19948, %160 ], [ %.20949, %178 ], [ %.15944, %182 ], [ %31, %172 ]
  %.21 = phi i32 [ %166, %160 ], [ %.20, %178 ], [ 0, %182 ], [ %27, %172 ]
  %189 = add i32 %.201045, 1
  br label %133, !llvm.loop !30

190:                                              ; preds = %133
  %191 = getelementptr inbounds i8, ptr %0, i64 10536
  %192 = load i8, ptr %191, align 8, !tbaa !25
  %193 = zext i8 %192 to i32
  %194 = getelementptr inbounds i8, ptr %0, i64 10537
  %195 = load i8, ptr %194, align 1, !tbaa !25
  %196 = zext i8 %195 to i32
  %197 = shl nuw nsw i32 %196, 8
  %198 = or disjoint i32 %197, %193
  %199 = getelementptr inbounds i8, ptr %0, i64 10538
  %200 = load i16, ptr %199, align 2
  %201 = zext i16 %200 to i32
  %202 = xor i32 %198, %201
  %.not1817 = icmp eq i32 %202, 65535
  br i1 %.not1817, label %203, label %.sink.split2148

203:                                              ; preds = %190, %237
  %.171565 = phi ptr [ %.91557, %190 ], [ %239, %237 ]
  %.171474 = phi i64 [ %.91466, %190 ], [ %.221479, %237 ]
  %.221374 = phi ptr [ %.141366, %190 ], [ %.271379, %237 ]
  %.231265 = phi i64 [ %.151257, %190 ], [ %.281270, %237 ]
  %.231158 = phi i32 [ %.151150, %190 ], [ %.281163, %237 ]
  %.221047 = phi i32 [ %198, %190 ], [ %240, %237 ]
  %.23952 = phi i32 [ %.15944, %190 ], [ %.27956, %237 ]
  %.23 = phi i32 [ %.15, %190 ], [ %.28, %237 ]
  %204 = icmp ne i32 %.221047, 0
  %205 = icmp ne i32 %.23, 0
  %206 = select i1 %204, i1 %205, i1 false
  br i1 %206, label %207, label %241

207:                                              ; preds = %203
  %208 = icmp ult i32 %.23, 8
  br i1 %208, label %209, label %231

209:                                              ; preds = %207, %224
  %.181566 = phi ptr [ %.171565, %207 ], [ %.201568, %224 ]
  %.181475 = phi i64 [ %.171474, %207 ], [ %.201477, %224 ]
  %.231375 = phi ptr [ %.221374, %207 ], [ %.251377, %224 ]
  %.241266 = phi i64 [ %.231265, %207 ], [ %228, %224 ]
  %.241159 = phi i32 [ %.231158, %207 ], [ %.261161, %224 ]
  %.231048 = phi i32 [ %.221047, %207 ], [ %.251050, %224 ]
  %.24953 = phi i32 [ %.23952, %207 ], [ %.26955, %224 ]
  %.24 = phi i32 [ %.23, %207 ], [ %229, %224 ]
  %.not1829 = icmp ult ptr %.231375, %11
  br i1 %.not1829, label %.thread1863, label %210

210:                                              ; preds = %212, %209
  %.191567 = phi ptr [ %.181566, %209 ], [ %4, %212 ]
  %.191476 = phi i64 [ %.181475, %209 ], [ %37, %212 ]
  %.241376 = phi ptr [ %.231375, %209 ], [ %1, %212 ]
  %.251267 = phi i64 [ %.241266, %209 ], [ %29, %212 ]
  %.251160 = phi i32 [ %.241159, %209 ], [ %35, %212 ]
  %.241049 = phi i32 [ %.231048, %209 ], [ %33, %212 ]
  %.25954 = phi i32 [ %.24953, %209 ], [ %31, %212 ]
  %.25 = phi i32 [ %.24, %209 ], [ %27, %212 ]
  %211 = and i32 %6, 2
  %.not1830 = icmp eq i32 %211, 0
  br i1 %.not1830, label %224, label %.sink.split2148

212:                                              ; preds = %25
  %213 = icmp sgt i64 %10, 0
  br i1 %213, label %214, label %210

214:                                              ; preds = %212
  %215 = getelementptr inbounds i8, ptr %1, i64 1
  %216 = load i8, ptr %1, align 1, !tbaa !25
  br label %224

.thread1863:                                      ; preds = %209
  %217 = getelementptr inbounds i8, ptr %.231375, i64 1
  %218 = load i8, ptr %.231375, align 1, !tbaa !25
  %219 = zext i8 %218 to i64
  %220 = zext nneg i32 %.24 to i64
  %221 = shl nuw nsw i64 %219, %220
  %222 = or i64 %221, %.241266
  %223 = add nuw nsw i32 %.24, 8
  br label %231

224:                                              ; preds = %210, %214
  %.201568 = phi ptr [ %4, %214 ], [ %.191567, %210 ]
  %.201477 = phi i64 [ %37, %214 ], [ %.191476, %210 ]
  %.01451.shrunk = phi i8 [ %216, %214 ], [ 0, %210 ]
  %.251377 = phi ptr [ %215, %214 ], [ %.241376, %210 ]
  %.261268 = phi i64 [ %29, %214 ], [ %.251267, %210 ]
  %.261161 = phi i32 [ %35, %214 ], [ %.251160, %210 ]
  %.251050 = phi i32 [ %33, %214 ], [ %.241049, %210 ]
  %.26955 = phi i32 [ %31, %214 ], [ %.25954, %210 ]
  %.26 = phi i32 [ %27, %214 ], [ %.25, %210 ]
  %225 = zext i8 %.01451.shrunk to i64
  %226 = zext nneg i32 %.26 to i64
  %227 = shl i64 %225, %226
  %228 = or i64 %227, %.261268
  %229 = add i32 %.26, 8
  %230 = icmp ugt i32 %.26, -9
  br i1 %230, label %209, label %231, !llvm.loop !31

231:                                              ; preds = %.thread1863, %224, %207
  %.211569 = phi ptr [ %.201568, %224 ], [ %.171565, %207 ], [ %.181566, %.thread1863 ]
  %.211478 = phi i64 [ %.201477, %224 ], [ %.171474, %207 ], [ %.181475, %.thread1863 ]
  %.261378 = phi ptr [ %.251377, %224 ], [ %.221374, %207 ], [ %217, %.thread1863 ]
  %.271269 = phi i64 [ %228, %224 ], [ %.231265, %207 ], [ %222, %.thread1863 ]
  %.271162 = phi i32 [ %.261161, %224 ], [ %.231158, %207 ], [ %.241159, %.thread1863 ]
  %.261051 = phi i32 [ %.251050, %224 ], [ %.221047, %207 ], [ %.231048, %.thread1863 ]
  %.27 = phi i32 [ %229, %224 ], [ %.23, %207 ], [ %223, %.thread1863 ]
  %232 = trunc i64 %.271269 to i32
  %233 = and i32 %232, 255
  %234 = lshr i64 %.271269, 8
  %235 = add i32 %.27, -8
  br label %236

236:                                              ; preds = %25, %231
  %.221570 = phi ptr [ %.211569, %231 ], [ %4, %25 ]
  %.221479 = phi i64 [ %.211478, %231 ], [ %37, %25 ]
  %.271379 = phi ptr [ %.261378, %231 ], [ %1, %25 ]
  %.281270 = phi i64 [ %234, %231 ], [ %29, %25 ]
  %.281163 = phi i32 [ %.271162, %231 ], [ %35, %25 ]
  %.271052 = phi i32 [ %.261051, %231 ], [ %33, %25 ]
  %.27956 = phi i32 [ %233, %231 ], [ %31, %25 ]
  %.28 = phi i32 [ %235, %231 ], [ %27, %25 ]
  %.not1831 = icmp ult ptr %.221570, %13
  br i1 %.not1831, label %237, label %.sink.split2148

237:                                              ; preds = %236
  %238 = trunc i32 %.27956 to i8
  %239 = getelementptr inbounds i8, ptr %.221570, i64 1
  store i8 %238, ptr %.221570, align 1, !tbaa !25
  %240 = add i32 %.271052, -1
  br label %203, !llvm.loop !32

241:                                              ; preds = %203, %249
  %.231571 = phi ptr [ %.171565, %203 ], [ %259, %249 ]
  %.231480 = phi i64 [ %.171474, %203 ], [ %.251482, %249 ]
  %.281380 = phi ptr [ %.221374, %203 ], [ %258, %249 ]
  %.291271 = phi i64 [ %.231265, %203 ], [ %.311273, %249 ]
  %.291164 = phi i32 [ %.231158, %203 ], [ %.311166, %249 ]
  %.281053 = phi i32 [ %.221047, %203 ], [ %261, %249 ]
  %.28957 = phi i32 [ %.23952, %203 ], [ %.30959, %249 ]
  %.29 = phi i32 [ %.23, %203 ], [ %.31, %249 ]
  %.not1818 = icmp eq i32 %.281053, 0
  br i1 %.not1818, label %1126, label %242

242:                                              ; preds = %241, %243
  %.241572 = phi ptr [ %.231571, %241 ], [ %4, %243 ]
  %.241481 = phi i64 [ %.231480, %241 ], [ %37, %243 ]
  %.291381 = phi ptr [ %.281380, %241 ], [ %1, %243 ]
  %.301272 = phi i64 [ %.291271, %241 ], [ %29, %243 ]
  %.301165 = phi i32 [ %.291164, %241 ], [ %35, %243 ]
  %.291054 = phi i32 [ %.281053, %241 ], [ %33, %243 ]
  %.29958 = phi i32 [ %.28957, %241 ], [ %31, %243 ]
  %.30 = phi i32 [ %.29, %241 ], [ %27, %243 ]
  %.not1826 = icmp ult ptr %.241572, %13
  br i1 %.not1826, label %244, label %.sink.split2148

243:                                              ; preds = %25
  br label %242, !llvm.loop !33

244:                                              ; preds = %242, %248
  %.251573 = phi ptr [ %.241572, %242 ], [ %4, %248 ]
  %.251482 = phi i64 [ %.241481, %242 ], [ %37, %248 ]
  %.301382 = phi ptr [ %.291381, %242 ], [ %1, %248 ]
  %.311273 = phi i64 [ %.301272, %242 ], [ %29, %248 ]
  %.311166 = phi i32 [ %.301165, %242 ], [ %35, %248 ]
  %.301055 = phi i32 [ %.291054, %242 ], [ %33, %248 ]
  %.30959 = phi i32 [ %.29958, %242 ], [ %31, %248 ]
  %.31 = phi i32 [ %.30, %242 ], [ %27, %248 ]
  %.not1827 = icmp ult ptr %.301382, %11
  br i1 %.not1827, label %249, label %245

245:                                              ; preds = %244
  %246 = and i32 %6, 2
  %.not1828 = icmp eq i32 %246, 0
  br i1 %.not1828, label %247, label %.sink.split2148

247:                                              ; preds = %25, %245
  %.261574 = phi ptr [ %.251573, %245 ], [ %4, %25 ]
  %.261483 = phi i64 [ %.251482, %245 ], [ %37, %25 ]
  %.311383 = phi ptr [ %.301382, %245 ], [ %1, %25 ]
  %.321274 = phi i64 [ %.311273, %245 ], [ %29, %25 ]
  %.321167 = phi i32 [ %.311166, %245 ], [ %35, %25 ]
  %.311056 = phi i32 [ %.301055, %245 ], [ %33, %25 ]
  %.31960 = phi i32 [ %.30959, %245 ], [ %31, %25 ]
  %.32 = phi i32 [ %.31, %245 ], [ %27, %25 ]
  br label %.sink.split2148

248:                                              ; preds = %25
  br label %244, !llvm.loop !34

249:                                              ; preds = %244
  %250 = ptrtoint ptr %13 to i64
  %251 = ptrtoint ptr %.251573 to i64
  %252 = sub i64 %250, %251
  %253 = ptrtoint ptr %11 to i64
  %254 = ptrtoint ptr %.301382 to i64
  %255 = sub i64 %253, %254
  %. = tail call i64 @llvm.umin.i64(i64 %252, i64 %255)
  %256 = zext i32 %.301055 to i64
  %257 = tail call i64 @llvm.umin.i64(i64 %., i64 %256)
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.251573, ptr align 1 %.301382, i64 %257, i1 false)
  %258 = getelementptr inbounds i8, ptr %.301382, i64 %257
  %259 = getelementptr inbounds i8, ptr %.251573, i64 %257
  %260 = trunc nuw i64 %257 to i32
  %261 = sub i32 %.301055, %260
  br label %241, !llvm.loop !35

262:                                              ; preds = %106
  switch i32 %112, label %267 [
    i32 3, label %.sink.split2148
    i32 1, label %.lr.ph1944.preheader
  ]

.lr.ph1944.preheader:                             ; preds = %262
  %263 = getelementptr i8, ptr %0, i64 72
  %264 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 288, ptr %264, align 4, !tbaa !36
  %265 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 32, ptr %265, align 4, !tbaa !36
  %266 = getelementptr inbounds i8, ptr %0, i64 3560
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %266, i8 5, i64 32, i1 false)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(144) %263, i8 8, i64 144, i1 false), !tbaa !25
  %scevgep = getelementptr i8, ptr %0, i64 216
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(112) %scevgep, i8 9, i64 112, i1 false), !tbaa !25
  %scevgep2038 = getelementptr i8, ptr %0, i64 328
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(24) %scevgep2038, i8 7, i64 24, i1 false), !tbaa !25
  %scevgep2039 = getelementptr i8, ptr %0, i64 352
  store i64 578721382704613384, ptr %scevgep2039, align 1
  br label %.loopexit1911

267:                                              ; preds = %262, %293
  %.281576 = phi ptr [ %.321580, %293 ], [ %.41552, %262 ]
  %.281485 = phi i64 [ %.321489, %293 ], [ %.41461, %262 ]
  %.331385 = phi ptr [ %.371389, %293 ], [ %.91361, %262 ]
  %.341276 = phi i64 [ %302, %293 ], [ %110, %262 ]
  %.341169 = phi i32 [ %.381173, %293 ], [ %.101145, %262 ]
  %.331058 = phi i32 [ %307, %293 ], [ 0, %262 ]
  %.33962 = phi i32 [ %.37966, %293 ], [ %.10939, %262 ]
  %.34 = phi i32 [ %303, %293 ], [ %111, %262 ]
  %268 = icmp ult i32 %.331058, 3
  br i1 %268, label %269, label %308

269:                                              ; preds = %267
  %270 = zext nneg i32 %.331058 to i64
  %271 = getelementptr inbounds [4 x i8], ptr @.str.11, i64 0, i64 %270
  %272 = load i8, ptr %271, align 1, !tbaa !25
  %273 = sext i8 %272 to i32
  %274 = icmp ult i32 %.34, %273
  br i1 %274, label %275, label %293

275:                                              ; preds = %269, %282
  %.291577 = phi ptr [ %.281576, %269 ], [ %.311579, %282 ]
  %.291486 = phi i64 [ %.281485, %269 ], [ %.311488, %282 ]
  %.341386 = phi ptr [ %.331385, %269 ], [ %.361388, %282 ]
  %.351277 = phi i64 [ %.341276, %269 ], [ %286, %282 ]
  %.351170 = phi i32 [ %.341169, %269 ], [ %.371172, %282 ]
  %.341059 = phi i32 [ %.331058, %269 ], [ %.361061, %282 ]
  %.34963 = phi i32 [ %.33962, %269 ], [ %.36965, %282 ]
  %.35 = phi i32 [ %.34, %269 ], [ %287, %282 ]
  %.not1779 = icmp ult ptr %.341386, %11
  br i1 %.not1779, label %.sink.split2124, label %276

276:                                              ; preds = %278, %275
  %.301578 = phi ptr [ %.291577, %275 ], [ %4, %278 ]
  %.301487 = phi i64 [ %.291486, %275 ], [ %37, %278 ]
  %.351387 = phi ptr [ %.341386, %275 ], [ %1, %278 ]
  %.361278 = phi i64 [ %.351277, %275 ], [ %29, %278 ]
  %.361171 = phi i32 [ %.351170, %275 ], [ %35, %278 ]
  %.351060 = phi i32 [ %.341059, %275 ], [ %33, %278 ]
  %.35964 = phi i32 [ %.34963, %275 ], [ %31, %278 ]
  %.36 = phi i32 [ %.35, %275 ], [ %27, %278 ]
  %277 = and i32 %6, 2
  %.not1780 = icmp eq i32 %277, 0
  br i1 %.not1780, label %282, label %.sink.split2148

278:                                              ; preds = %25
  %279 = icmp sgt i64 %10, 0
  br i1 %279, label %.sink.split2124, label %276

.sink.split2124:                                  ; preds = %275, %278
  %.sink2126 = phi ptr [ %1, %278 ], [ %.341386, %275 ]
  %.311579.ph = phi ptr [ %4, %278 ], [ %.291577, %275 ]
  %.311488.ph = phi i64 [ %37, %278 ], [ %.291486, %275 ]
  %.371279.ph = phi i64 [ %29, %278 ], [ %.351277, %275 ]
  %.371172.ph = phi i32 [ %35, %278 ], [ %.351170, %275 ]
  %.361061.ph = phi i32 [ %33, %278 ], [ %.341059, %275 ]
  %.36965.ph = phi i32 [ %31, %278 ], [ %.34963, %275 ]
  %.37.ph = phi i32 [ %27, %278 ], [ %.35, %275 ]
  %280 = getelementptr inbounds i8, ptr %.sink2126, i64 1
  %281 = load i8, ptr %.sink2126, align 1, !tbaa !25
  br label %282

282:                                              ; preds = %.sink.split2124, %276
  %.311579 = phi ptr [ %.301578, %276 ], [ %.311579.ph, %.sink.split2124 ]
  %.311488 = phi i64 [ %.301487, %276 ], [ %.311488.ph, %.sink.split2124 ]
  %.361388 = phi ptr [ %.351387, %276 ], [ %280, %.sink.split2124 ]
  %.01343.shrunk = phi i8 [ 0, %276 ], [ %281, %.sink.split2124 ]
  %.371279 = phi i64 [ %.361278, %276 ], [ %.371279.ph, %.sink.split2124 ]
  %.371172 = phi i32 [ %.361171, %276 ], [ %.371172.ph, %.sink.split2124 ]
  %.361061 = phi i32 [ %.351060, %276 ], [ %.361061.ph, %.sink.split2124 ]
  %.36965 = phi i32 [ %.35964, %276 ], [ %.36965.ph, %.sink.split2124 ]
  %.37 = phi i32 [ %.36, %276 ], [ %.37.ph, %.sink.split2124 ]
  %283 = zext i8 %.01343.shrunk to i64
  %284 = zext nneg i32 %.37 to i64
  %285 = shl i64 %283, %284
  %286 = or i64 %285, %.371279
  %287 = add i32 %.37, 8
  %288 = zext i32 %.361061 to i64
  %289 = getelementptr inbounds [4 x i8], ptr @.str.11, i64 0, i64 %288
  %290 = load i8, ptr %289, align 1, !tbaa !25
  %291 = sext i8 %290 to i32
  %292 = icmp ult i32 %287, %291
  br i1 %292, label %275, label %293, !llvm.loop !37

293:                                              ; preds = %282, %269
  %.pre-phi2087 = phi i32 [ %291, %282 ], [ %273, %269 ]
  %294 = phi i8 [ %290, %282 ], [ %272, %269 ]
  %.pre-phi = phi i64 [ %288, %282 ], [ %270, %269 ]
  %.321580 = phi ptr [ %.311579, %282 ], [ %.281576, %269 ]
  %.321489 = phi i64 [ %.311488, %282 ], [ %.281485, %269 ]
  %.371389 = phi ptr [ %.361388, %282 ], [ %.331385, %269 ]
  %.381280 = phi i64 [ %286, %282 ], [ %.341276, %269 ]
  %.381173 = phi i32 [ %.371172, %282 ], [ %.341169, %269 ]
  %.371062 = phi i32 [ %.361061, %282 ], [ %.331058, %269 ]
  %.37966 = phi i32 [ %.36965, %282 ], [ %.33962, %269 ]
  %.38 = phi i32 [ %287, %282 ], [ %.34, %269 ]
  %295 = zext nneg i8 %294 to i32
  %notmask = shl nsw i32 -1, %295
  %296 = xor i32 %notmask, -1
  %297 = trunc i64 %.381280 to i32
  %298 = and i32 %296, %297
  %299 = getelementptr inbounds i8, ptr %0, i64 44
  %300 = getelementptr inbounds [3 x i32], ptr %299, i64 0, i64 %.pre-phi
  %301 = zext nneg i32 %.pre-phi2087 to i64
  %302 = lshr i64 %.381280, %301
  %303 = sub i32 %.38, %.pre-phi2087
  %304 = getelementptr inbounds [3 x i32], ptr @tinfl_decompress.s_min_table_sizes, i64 0, i64 %.pre-phi
  %305 = load i32, ptr %304, align 4, !tbaa !36
  %306 = add i32 %298, %305
  store i32 %306, ptr %300, align 4, !tbaa !36
  %307 = add i32 %.371062, 1
  br label %267, !llvm.loop !38

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

310:                                              ; preds = %330, %308
  %.331581 = phi ptr [ %.281576, %308 ], [ %.371585, %330 ]
  %.331490 = phi i64 [ %.281485, %308 ], [ %.371494, %330 ]
  %.381390 = phi ptr [ %.331385, %308 ], [ %.421394, %330 ]
  %.391281 = phi i64 [ %.341276, %308 ], [ %333, %330 ]
  %.391174 = phi i32 [ %.341169, %308 ], [ %.431178, %330 ]
  %.381063 = phi i32 [ 0, %308 ], [ %341, %330 ]
  %.38967 = phi i32 [ %.33962, %308 ], [ %.42971, %330 ]
  %.39 = phi i32 [ %.34, %308 ], [ %334, %330 ]
  %311 = getelementptr inbounds i8, ptr %0, i64 52
  %312 = load i32, ptr %311, align 4, !tbaa !36
  %313 = icmp ult i32 %.381063, %312
  br i1 %313, label %314, label %342

314:                                              ; preds = %310
  %315 = icmp ult i32 %.39, 3
  br i1 %315, label %316, label %330

316:                                              ; preds = %314, %323
  %.341582 = phi ptr [ %.331581, %314 ], [ %.361584, %323 ]
  %.341491 = phi i64 [ %.331490, %314 ], [ %.361493, %323 ]
  %.391391 = phi ptr [ %.381390, %314 ], [ %.411393, %323 ]
  %.401282 = phi i64 [ %.391281, %314 ], [ %327, %323 ]
  %.401175 = phi i32 [ %.391174, %314 ], [ %.421177, %323 ]
  %.391064 = phi i32 [ %.381063, %314 ], [ %.411066, %323 ]
  %.39968 = phi i32 [ %.38967, %314 ], [ %.41970, %323 ]
  %.40 = phi i32 [ %.39, %314 ], [ %328, %323 ]
  %.not1777 = icmp ult ptr %.391391, %11
  br i1 %.not1777, label %.sink.split2127, label %317

317:                                              ; preds = %319, %316
  %.351583 = phi ptr [ %.341582, %316 ], [ %4, %319 ]
  %.351492 = phi i64 [ %.341491, %316 ], [ %37, %319 ]
  %.401392 = phi ptr [ %.391391, %316 ], [ %1, %319 ]
  %.411283 = phi i64 [ %.401282, %316 ], [ %29, %319 ]
  %.411176 = phi i32 [ %.401175, %316 ], [ %35, %319 ]
  %.401065 = phi i32 [ %.391064, %316 ], [ %33, %319 ]
  %.40969 = phi i32 [ %.39968, %316 ], [ %31, %319 ]
  %.41 = phi i32 [ %.40, %316 ], [ %27, %319 ]
  %318 = and i32 %6, 2
  %.not1778 = icmp eq i32 %318, 0
  br i1 %.not1778, label %323, label %.sink.split2148

319:                                              ; preds = %25
  %320 = icmp sgt i64 %10, 0
  br i1 %320, label %.sink.split2127, label %317

.sink.split2127:                                  ; preds = %316, %319
  %.sink2129 = phi ptr [ %1, %319 ], [ %.391391, %316 ]
  %.361584.ph = phi ptr [ %4, %319 ], [ %.341582, %316 ]
  %.361493.ph = phi i64 [ %37, %319 ], [ %.341491, %316 ]
  %.421284.ph = phi i64 [ %29, %319 ], [ %.401282, %316 ]
  %.421177.ph = phi i32 [ %35, %319 ], [ %.401175, %316 ]
  %.411066.ph = phi i32 [ %33, %319 ], [ %.391064, %316 ]
  %.41970.ph = phi i32 [ %31, %319 ], [ %.39968, %316 ]
  %.42.ph = phi i32 [ %27, %319 ], [ %.40, %316 ]
  %321 = getelementptr inbounds i8, ptr %.sink2129, i64 1
  %322 = load i8, ptr %.sink2129, align 1, !tbaa !25
  br label %323

323:                                              ; preds = %.sink.split2127, %317
  %.361584 = phi ptr [ %.351583, %317 ], [ %.361584.ph, %.sink.split2127 ]
  %.361493 = phi i64 [ %.351492, %317 ], [ %.361493.ph, %.sink.split2127 ]
  %.411393 = phi ptr [ %.401392, %317 ], [ %321, %.sink.split2127 ]
  %.421284 = phi i64 [ %.411283, %317 ], [ %.421284.ph, %.sink.split2127 ]
  %.01241.shrunk = phi i8 [ 0, %317 ], [ %322, %.sink.split2127 ]
  %.421177 = phi i32 [ %.411176, %317 ], [ %.421177.ph, %.sink.split2127 ]
  %.411066 = phi i32 [ %.401065, %317 ], [ %.411066.ph, %.sink.split2127 ]
  %.41970 = phi i32 [ %.40969, %317 ], [ %.41970.ph, %.sink.split2127 ]
  %.42 = phi i32 [ %.41, %317 ], [ %.42.ph, %.sink.split2127 ]
  %324 = zext i8 %.01241.shrunk to i64
  %325 = zext nneg i32 %.42 to i64
  %326 = shl i64 %324, %325
  %327 = or i64 %326, %.421284
  %328 = add i32 %.42, 8
  %329 = icmp ult i32 %328, 3
  br i1 %329, label %316, label %330, !llvm.loop !39

330:                                              ; preds = %323, %314
  %.371585 = phi ptr [ %.361584, %323 ], [ %.331581, %314 ]
  %.371494 = phi i64 [ %.361493, %323 ], [ %.331490, %314 ]
  %.421394 = phi ptr [ %.411393, %323 ], [ %.381390, %314 ]
  %.431285 = phi i64 [ %327, %323 ], [ %.391281, %314 ]
  %.431178 = phi i32 [ %.421177, %323 ], [ %.391174, %314 ]
  %.421067 = phi i32 [ %.411066, %323 ], [ %.381063, %314 ]
  %.42971 = phi i32 [ %.41970, %323 ], [ %.38967, %314 ]
  %.43 = phi i32 [ %328, %323 ], [ %.39, %314 ]
  %331 = trunc i64 %.431285 to i8
  %332 = and i8 %331, 7
  %333 = lshr i64 %.431285, 3
  %334 = add i32 %.43, -3
  %335 = getelementptr inbounds i8, ptr %0, i64 7048
  %336 = zext i32 %.421067 to i64
  %337 = getelementptr inbounds [19 x i8], ptr @tinfl_decompress.s_length_dezigzag, i64 0, i64 %336
  %338 = load i8, ptr %337, align 1, !tbaa !25
  %339 = zext i8 %338 to i64
  %340 = getelementptr inbounds [288 x i8], ptr %335, i64 0, i64 %339
  store i8 %332, ptr %340, align 1, !tbaa !25
  %341 = add i32 %.421067, 1
  br label %310, !llvm.loop !40

342:                                              ; preds = %310
  store i32 19, ptr %311, align 4, !tbaa !36
  %.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 !28
  br label %.loopexit1911

.loopexit1911:                                    ; preds = %342, %.lr.ph1944.preheader, %700
  %343 = phi i32 [ %703, %700 ], [ %.pre.pre, %342 ], [ 1, %.lr.ph1944.preheader ]
  %.391587 = phi ptr [ %.521600, %700 ], [ %.331581, %342 ], [ %.41552, %.lr.ph1944.preheader ]
  %.391496 = phi i64 [ %.521509, %700 ], [ %.331490, %342 ], [ %.41461, %.lr.ph1944.preheader ]
  %.441396 = phi ptr [ %.571409, %700 ], [ %.381390, %342 ], [ %.91361, %.lr.ph1944.preheader ]
  %.451287 = phi i64 [ %.581300, %700 ], [ %.391281, %342 ], [ %110, %.lr.ph1944.preheader ]
  %.451180 = phi i32 [ %.581193, %700 ], [ %.391174, %342 ], [ %.101145, %.lr.ph1944.preheader ]
  %.441069 = phi i32 [ %.571082, %700 ], [ %.381063, %342 ], [ %.101035, %.lr.ph1944.preheader ]
  %.44973 = phi i32 [ %.56985, %700 ], [ %.38967, %342 ], [ %.10939, %.lr.ph1944.preheader ]
  %.45 = phi i32 [ %.58, %700 ], [ %.39, %342 ], [ %111, %.lr.ph1944.preheader ]
  %344 = icmp sgt i32 %343, -1
  br i1 %344, label %345, label %.preheader2241

345:                                              ; preds = %.loopexit1911
  %346 = getelementptr inbounds i8, ptr %0, i64 72
  %347 = zext nneg i32 %343 to i64
  %348 = getelementptr inbounds [3 x %struct.tinfl_huff_table], ptr %346, i64 0, i64 %347
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %9, i8 0, i64 64, i1 false)
  %349 = getelementptr inbounds i8, ptr %348, i64 288
  %350 = getelementptr inbounds i8, ptr %348, i64 2336
  %351 = getelementptr inbounds i8, ptr %0, i64 44
  %352 = getelementptr inbounds [3 x i32], ptr %351, i64 0, i64 %347
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(3200) %349, i8 0, i64 3200, i1 false)
  %353 = load i32, ptr %352, align 4, !tbaa !36
  %.not1998 = icmp eq i32 %353, 0
  br i1 %.not1998, label %._crit_edge, label %.lr.ph1946.preheader

.lr.ph1946.preheader:                             ; preds = %345
  %wide.trip.count = zext i32 %353 to i64
  %xtraiter = and i64 %wide.trip.count, 3
  %354 = icmp ult i32 %353, 4
  br i1 %354, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1946.preheader.new

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

.lr.ph1946:                                       ; preds = %.lr.ph1946, %.lr.ph1946.preheader.new
  %indvars.iv = phi i64 [ 0, %.lr.ph1946.preheader.new ], [ %indvars.iv.next.3, %.lr.ph1946 ]
  %niter = phi i64 [ 0, %.lr.ph1946.preheader.new ], [ %niter.next.3, %.lr.ph1946 ]
  %355 = getelementptr inbounds [288 x i8], ptr %348, i64 0, i64 %indvars.iv
  %356 = load i8, ptr %355, align 1, !tbaa !25
  %357 = zext i8 %356 to i64
  %358 = getelementptr inbounds [16 x i32], ptr %9, i64 0, i64 %357
  %359 = load i32, ptr %358, align 4, !tbaa !36
  %360 = add i32 %359, 1
  store i32 %360, ptr %358, align 4, !tbaa !36
  %indvars.iv.next = or disjoint i64 %indvars.iv, 1
  %361 = getelementptr inbounds [288 x i8], ptr %348, i64 0, i64 %indvars.iv.next
  %362 = load i8, ptr %361, align 1, !tbaa !25
  %363 = zext i8 %362 to i64
  %364 = getelementptr inbounds [16 x i32], ptr %9, i64 0, i64 %363
  %365 = load i32, ptr %364, align 4, !tbaa !36
  %366 = add i32 %365, 1
  store i32 %366, ptr %364, align 4, !tbaa !36
  %indvars.iv.next.1 = or disjoint i64 %indvars.iv, 2
  %367 = getelementptr inbounds [288 x i8], ptr %348, i64 0, i64 %indvars.iv.next.1
  %368 = load i8, ptr %367, align 1, !tbaa !25
  %369 = zext i8 %368 to i64
  %370 = getelementptr inbounds [16 x i32], ptr %9, i64 0, i64 %369
  %371 = load i32, ptr %370, align 4, !tbaa !36
  %372 = add i32 %371, 1
  store i32 %372, ptr %370, align 4, !tbaa !36
  %indvars.iv.next.2 = or disjoint i64 %indvars.iv, 3
  %373 = getelementptr inbounds [288 x i8], ptr %348, i64 0, i64 %indvars.iv.next.2
  %374 = load i8, ptr %373, align 1, !tbaa !25
  %375 = zext i8 %374 to i64
  %376 = getelementptr inbounds [16 x i32], ptr %9, i64 0, i64 %375
  %377 = load i32, ptr %376, align 4, !tbaa !36
  %378 = add i32 %377, 1
  store i32 %378, ptr %376, align 4, !tbaa !36
  %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_edge.loopexit.unr-lcssa, label %.lr.ph1946, !llvm.loop !41

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

.lr.ph1946.epil:                                  ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph1946.epil
  %indvars.iv.epil = phi i64 [ %indvars.iv.next.epil, %.lr.ph1946.epil ], [ %indvars.iv.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1946.epil ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %379 = getelementptr inbounds [288 x i8], ptr %348, i64 0, i64 %indvars.iv.epil
  %380 = load i8, ptr %379, align 1, !tbaa !25
  %381 = zext i8 %380 to i64
  %382 = getelementptr inbounds [16 x i32], ptr %9, i64 0, i64 %381
  %383 = load i32, ptr %382, align 4, !tbaa !36
  %384 = add i32 %383, 1
  store i32 %384, ptr %382, align 4, !tbaa !36
  %indvars.iv.next.epil = add nuw nsw i64 %indvars.iv.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge.loopexit, label %.lr.ph1946.epil, !llvm.loop !42

._crit_edge.loopexit:                             ; preds = %.lr.ph1946.epil, %._crit_edge.loopexit.unr-lcssa
  %.phi.trans.insert2058 = getelementptr inbounds i8, ptr %9, i64 4
  %.pre2059 = load i32, ptr %.phi.trans.insert2058, align 4, !tbaa !36
  %.phi.trans.insert2060 = getelementptr inbounds i8, ptr %9, i64 8
  %.pre2061 = load i32, ptr %.phi.trans.insert2060, align 8, !tbaa !36
  %.phi.trans.insert2062 = getelementptr inbounds i8, ptr %9, i64 12
  %.pre2063 = load i32, ptr %.phi.trans.insert2062, align 4, !tbaa !36
  %.phi.trans.insert2064 = getelementptr inbounds i8, ptr %9, i64 16
  %.pre2065 = load i32, ptr %.phi.trans.insert2064, align 16, !tbaa !36
  %.phi.trans.insert2066 = getelementptr inbounds i8, ptr %9, i64 20
  %.pre2067 = load i32, ptr %.phi.trans.insert2066, align 4, !tbaa !36
  %.phi.trans.insert2068 = getelementptr inbounds i8, ptr %9, i64 24
  %.pre2069 = load i32, ptr %.phi.trans.insert2068, align 8, !tbaa !36
  %.phi.trans.insert2070 = getelementptr inbounds i8, ptr %9, i64 28
  %.pre2071 = load i32, ptr %.phi.trans.insert2070, align 4, !tbaa !36
  %.phi.trans.insert2072 = getelementptr inbounds i8, ptr %9, i64 32
  %.pre2073 = load i32, ptr %.phi.trans.insert2072, align 16, !tbaa !36
  %.phi.trans.insert2074 = getelementptr inbounds i8, ptr %9, i64 36
  %.pre2075 = load i32, ptr %.phi.trans.insert2074, align 4, !tbaa !36
  %.phi.trans.insert2076 = getelementptr inbounds i8, ptr %9, i64 40
  %.pre2077 = load i32, ptr %.phi.trans.insert2076, align 8, !tbaa !36
  %.phi.trans.insert2078 = getelementptr inbounds i8, ptr %9, i64 44
  %.pre2079 = load i32, ptr %.phi.trans.insert2078, align 4, !tbaa !36
  %.phi.trans.insert2080 = getelementptr inbounds i8, ptr %9, i64 48
  %.pre2081 = load i32, ptr %.phi.trans.insert2080, align 16, !tbaa !36
  %.phi.trans.insert2082 = getelementptr inbounds i8, ptr %9, i64 52
  %.pre2083 = load i32, ptr %.phi.trans.insert2082, align 4, !tbaa !36
  %.phi.trans.insert2084 = getelementptr inbounds i8, ptr %9, i64 56
  %.pre2085 = load i32, ptr %.phi.trans.insert2084, align 8, !tbaa !36
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %345
  %385 = phi i32 [ %.pre2085, %._crit_edge.loopexit ], [ 0, %345 ]
  %386 = phi i32 [ %.pre2083, %._crit_edge.loopexit ], [ 0, %345 ]
  %387 = phi i32 [ %.pre2081, %._crit_edge.loopexit ], [ 0, %345 ]
  %388 = phi i32 [ %.pre2079, %._crit_edge.loopexit ], [ 0, %345 ]
  %389 = phi i32 [ %.pre2077, %._crit_edge.loopexit ], [ 0, %345 ]
  %390 = phi i32 [ %.pre2075, %._crit_edge.loopexit ], [ 0, %345 ]
  %391 = phi i32 [ %.pre2073, %._crit_edge.loopexit ], [ 0, %345 ]
  %392 = phi i32 [ %.pre2071, %._crit_edge.loopexit ], [ 0, %345 ]
  %393 = phi i32 [ %.pre2069, %._crit_edge.loopexit ], [ 0, %345 ]
  %394 = phi i32 [ %.pre2067, %._crit_edge.loopexit ], [ 0, %345 ]
  %395 = phi i32 [ %.pre2065, %._crit_edge.loopexit ], [ 0, %345 ]
  %396 = phi i32 [ %.pre2063, %._crit_edge.loopexit ], [ 0, %345 ]
  %397 = phi i32 [ %.pre2061, %._crit_edge.loopexit ], [ 0, %345 ]
  %398 = phi i32 [ %.pre2059, %._crit_edge.loopexit ], [ 0, %345 ]
  %399 = getelementptr inbounds i8, ptr %8, i64 4
  store i32 0, ptr %399, align 4, !tbaa !36
  store i32 0, ptr %8, align 16, !tbaa !36
  %400 = shl i32 %398, 1
  %401 = getelementptr inbounds i8, ptr %8, i64 8
  store i32 %400, ptr %401, align 8, !tbaa !36
  %402 = add i32 %397, %398
  %403 = add i32 %397, %400
  %404 = shl i32 %403, 1
  %405 = getelementptr inbounds i8, ptr %8, i64 12
  store i32 %404, ptr %405, align 4, !tbaa !36
  %406 = add i32 %396, %402
  %407 = add i32 %396, %404
  %408 = shl i32 %407, 1
  %409 = getelementptr inbounds i8, ptr %8, i64 16
  store i32 %408, ptr %409, align 16, !tbaa !36
  %410 = add i32 %395, %406
  %411 = add i32 %395, %408
  %412 = shl i32 %411, 1
  %413 = getelementptr inbounds i8, ptr %8, i64 20
  store i32 %412, ptr %413, align 4, !tbaa !36
  %414 = add i32 %394, %410
  %415 = add i32 %394, %412
  %416 = shl i32 %415, 1
  %417 = getelementptr inbounds i8, ptr %8, i64 24
  store i32 %416, ptr %417, align 8, !tbaa !36
  %418 = add i32 %393, %414
  %419 = add i32 %393, %416
  %420 = shl i32 %419, 1
  %421 = getelementptr inbounds i8, ptr %8, i64 28
  store i32 %420, ptr %421, align 4, !tbaa !36
  %422 = add i32 %392, %418
  %423 = add i32 %392, %420
  %424 = shl i32 %423, 1
  %425 = getelementptr inbounds i8, ptr %8, i64 32
  store i32 %424, ptr %425, align 16, !tbaa !36
  %426 = add i32 %391, %422
  %427 = add i32 %391, %424
  %428 = shl i32 %427, 1
  %429 = getelementptr inbounds i8, ptr %8, i64 36
  store i32 %428, ptr %429, align 4, !tbaa !36
  %430 = add i32 %390, %426
  %431 = add i32 %390, %428
  %432 = shl i32 %431, 1
  %433 = getelementptr inbounds i8, ptr %8, i64 40
  store i32 %432, ptr %433, align 8, !tbaa !36
  %434 = add i32 %389, %430
  %435 = add i32 %389, %432
  %436 = shl i32 %435, 1
  %437 = getelementptr inbounds i8, ptr %8, i64 44
  store i32 %436, ptr %437, align 4, !tbaa !36
  %438 = add i32 %388, %434
  %439 = add i32 %388, %436
  %440 = shl i32 %439, 1
  %441 = getelementptr inbounds i8, ptr %8, i64 48
  store i32 %440, ptr %441, align 16, !tbaa !36
  %442 = add i32 %387, %438
  %443 = add i32 %387, %440
  %444 = shl i32 %443, 1
  %445 = getelementptr inbounds i8, ptr %8, i64 52
  store i32 %444, ptr %445, align 4, !tbaa !36
  %446 = add i32 %386, %442
  %447 = add i32 %386, %444
  %448 = shl i32 %447, 1
  %449 = getelementptr inbounds i8, ptr %8, i64 56
  store i32 %448, ptr %449, align 8, !tbaa !36
  %450 = add i32 %385, %446
  %451 = add i32 %385, %448
  %452 = shl i32 %451, 1
  %453 = getelementptr inbounds i8, ptr %8, i64 60
  store i32 %452, ptr %453, align 4, !tbaa !36
  %454 = getelementptr inbounds i8, ptr %9, i64 60
  %455 = load i32, ptr %454, align 4, !tbaa !36
  %456 = add i32 %455, %450
  %457 = add i32 %455, %452
  %458 = shl i32 %457, 1
  %459 = getelementptr inbounds i8, ptr %8, i64 64
  store i32 %458, ptr %459, align 16, !tbaa !36
  %460 = icmp ne i32 %458, 65536
  %461 = icmp ugt i32 %456, 1
  %or.cond = select i1 %460, i1 %461, i1 false
  br i1 %or.cond, label %.sink.split2148, label %.preheader1899

.preheader1899:                                   ; preds = %._crit_edge
  br i1 %.not1998, label %._crit_edge1970, label %.lr.ph1969.preheader

.lr.ph1969.preheader:                             ; preds = %.preheader1899
  %wide.trip.count2051 = zext i32 %353 to i64
  br label %.lr.ph1969

.lr.ph1969:                                       ; preds = %.lr.ph1969.preheader, %.loopexit1898
  %indvars.iv2048 = phi i64 [ 0, %.lr.ph1969.preheader ], [ %indvars.iv.next2049, %.loopexit1898 ]
  %.012361967 = phi i32 [ -1, %.lr.ph1969.preheader ], [ %.41240, %.loopexit1898 ]
  %462 = getelementptr inbounds [288 x i8], ptr %348, i64 0, i64 %indvars.iv2048
  %463 = load i8, ptr %462, align 1, !tbaa !25
  %464 = zext i8 %463 to i32
  %.not1812 = icmp eq i8 %463, 0
  br i1 %.not1812, label %.loopexit1898, label %465

465:                                              ; preds = %.lr.ph1969
  %466 = zext i8 %463 to i64
  %467 = getelementptr inbounds [17 x i32], ptr %8, i64 0, i64 %466
  %468 = load i32, ptr %467, align 4, !tbaa !36
  %469 = add i32 %468, 1
  store i32 %469, ptr %467, align 4, !tbaa !36
  %xtraiter2267 = and i32 %464, 3
  %470 = icmp ult i8 %463, 4
  br i1 %470, label %.unr-lcssa, label %.new

.new:                                             ; preds = %465
  %unroll_iter2273 = and i32 %464, 252
  br label %471

471:                                              ; preds = %471, %.new
  %.011241953 = phi i32 [ %468, %.new ], [ %485, %471 ]
  %.011261951 = phi i32 [ 0, %.new ], [ %484, %471 ]
  %niter2274 = phi i32 [ 0, %.new ], [ %niter2274.next.3, %471 ]
  %472 = shl i32 %.011261951, 3
  %473 = shl i32 %.011241953, 2
  %474 = and i32 %473, 4
  %475 = or disjoint i32 %472, %474
  %476 = and i32 %.011241953, 2
  %477 = or disjoint i32 %476, %475
  %478 = lshr i32 %.011241953, 2
  %479 = and i32 %478, 1
  %480 = or disjoint i32 %479, %477
  %481 = lshr i32 %.011241953, 3
  %482 = shl i32 %480, 1
  %483 = and i32 %481, 1
  %484 = or disjoint i32 %483, %482
  %485 = lshr i32 %.011241953, 4
  %niter2274.next.3 = add i32 %niter2274, 4
  %niter2274.ncmp.3 = icmp eq i32 %niter2274.next.3, %unroll_iter2273
  br i1 %niter2274.ncmp.3, label %.unr-lcssa, label %471, !llvm.loop !44

.unr-lcssa:                                       ; preds = %471, %465
  %.011241953.lcssa.ph = phi i32 [ poison, %465 ], [ %481, %471 ]
  %.lcssa2226.ph = phi i32 [ poison, %465 ], [ %482, %471 ]
  %.lcssa2225.ph = phi i32 [ poison, %465 ], [ %484, %471 ]
  %.011241953.unr = phi i32 [ %468, %465 ], [ %485, %471 ]
  %.011261951.unr = phi i32 [ 0, %465 ], [ %484, %471 ]
  %lcmp.mod2269.not = icmp eq i32 %xtraiter2267, 0
  br i1 %lcmp.mod2269.not, label %.epilog-lcssa, label %.epil.preheader

.epil.preheader:                                  ; preds = %.unr-lcssa, %.epil.preheader
  %.011241953.epil = phi i32 [ %489, %.epil.preheader ], [ %.011241953.unr, %.unr-lcssa ]
  %.011261951.epil = phi i32 [ %488, %.epil.preheader ], [ %.011261951.unr, %.unr-lcssa ]
  %epil.iter2268 = phi i32 [ %epil.iter2268.next, %.epil.preheader ], [ 0, %.unr-lcssa ]
  %486 = shl i32 %.011261951.epil, 1
  %487 = and i32 %.011241953.epil, 1
  %488 = or disjoint i32 %487, %486
  %489 = lshr i32 %.011241953.epil, 1
  %epil.iter2268.next = add i32 %epil.iter2268, 1
  %epil.iter2268.cmp.not = icmp eq i32 %epil.iter2268.next, %xtraiter2267
  br i1 %epil.iter2268.cmp.not, label %.epilog-lcssa, label %.epil.preheader, !llvm.loop !45

.epilog-lcssa:                                    ; preds = %.epil.preheader, %.unr-lcssa
  %.011241953.lcssa = phi i32 [ %.011241953.lcssa.ph, %.unr-lcssa ], [ %.011241953.epil, %.epil.preheader ]
  %.lcssa2226 = phi i32 [ %.lcssa2226.ph, %.unr-lcssa ], [ %486, %.epil.preheader ]
  %.lcssa2225 = phi i32 [ %.lcssa2225.ph, %.unr-lcssa ], [ %488, %.epil.preheader ]
  %490 = icmp ult i8 %463, 11
  br i1 %490, label %491, label %505

491:                                              ; preds = %.epilog-lcssa
  %492 = shl nuw nsw i32 %464, 9
  %493 = trunc nuw i64 %indvars.iv2048 to i32
  %494 = or i32 %492, %493
  %495 = trunc i32 %494 to i16
  %496 = icmp ult i32 %.lcssa2226, 1024
  br i1 %496, label %.lr.ph1966, label %.loopexit1898

.lr.ph1966:                                       ; preds = %491
  %497 = shl nuw nsw i32 1, %464
  %498 = and i32 %.011241953.lcssa, 1
  %499 = or disjoint i32 %.lcssa2226, %498
  %500 = zext nneg i32 %499 to i64
  %501 = zext nneg i32 %497 to i64
  br label %502

502:                                              ; preds = %.lr.ph1966, %502
  %indvars.iv2045 = phi i64 [ %500, %.lr.ph1966 ], [ %indvars.iv.next2046, %502 ]
  %503 = getelementptr inbounds [1024 x i16], ptr %349, i64 0, i64 %indvars.iv2045
  store i16 %495, ptr %503, align 2, !tbaa !46
  %indvars.iv.next2046 = add nuw nsw i64 %indvars.iv2045, %501
  %504 = icmp ult i64 %indvars.iv.next2046, 1024
  br i1 %504, label %502, label %.loopexit1898, !llvm.loop !48

505:                                              ; preds = %.epilog-lcssa
  %506 = and i32 %.lcssa2225, 1023
  %507 = zext nneg i32 %506 to i64
  %508 = getelementptr inbounds [1024 x i16], ptr %349, i64 0, i64 %507
  %509 = load i16, ptr %508, align 2, !tbaa !46
  %510 = sext i16 %509 to i32
  %511 = icmp eq i16 %509, 0
  br i1 %511, label %512, label %515

512:                                              ; preds = %505
  %513 = trunc i32 %.012361967 to i16
  store i16 %513, ptr %508, align 2, !tbaa !46
  %514 = add nsw i32 %.012361967, -2
  br label %515

515:                                              ; preds = %512, %505
  %.11237 = phi i32 [ %514, %512 ], [ %.012361967, %505 ]
  %.01233 = phi i32 [ %.012361967, %512 ], [ %510, %505 ]
  %516 = lshr i32 %.lcssa2226, 9
  %.not2000 = icmp eq i8 %463, 11
  br i1 %.not2000, label %._crit_edge1960, label %.lr.ph1959

.lr.ph1959:                                       ; preds = %515, %529
  %.211281957 = phi i32 [ %517, %529 ], [ %516, %515 ]
  %.011321956 = phi i32 [ %530, %529 ], [ %464, %515 ]
  %.112341955 = phi i32 [ %.21235, %529 ], [ %.01233, %515 ]
  %.212381954 = phi i32 [ %.31239, %529 ], [ %.11237, %515 ]
  %517 = lshr i32 %.211281957, 1
  %518 = and i32 %517, 1
  %519 = xor i32 %.112341955, -1
  %520 = add i32 %518, %519
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds [576 x i16], ptr %350, i64 0, i64 %521
  %523 = load i16, ptr %522, align 2, !tbaa !46
  %.not1816 = icmp eq i16 %523, 0
  br i1 %.not1816, label %524, label %527

524:                                              ; preds = %.lr.ph1959
  %525 = trunc i32 %.212381954 to i16
  store i16 %525, ptr %522, align 2, !tbaa !46
  %526 = add nsw i32 %.212381954, -2
  br label %529

527:                                              ; preds = %.lr.ph1959
  %528 = sext i16 %523 to i32
  br label %529

529:                                              ; preds = %524, %527
  %.31239 = phi i32 [ %.212381954, %527 ], [ %526, %524 ]
  %.21235 = phi i32 [ %528, %527 ], [ %.212381954, %524 ]
  %530 = add nsw i32 %.011321956, -1
  %531 = icmp ugt i32 %530, 11
  br i1 %531, label %.lr.ph1959, label %._crit_edge1960, !llvm.loop !50

._crit_edge1960:                                  ; preds = %529, %515
  %.21238.lcssa = phi i32 [ %.11237, %515 ], [ %.31239, %529 ]
  %.11234.lcssa = phi i32 [ %.01233, %515 ], [ %.21235, %529 ]
  %.21128.lcssa = phi i32 [ %516, %515 ], [ %517, %529 ]
  %532 = lshr i32 %.21128.lcssa, 1
  %.neg = and i32 %532, 1
  %533 = trunc i64 %indvars.iv2048 to i16
  %534 = xor i32 %.11234.lcssa, -1
  %535 = add i32 %.neg, %534
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds [576 x i16], ptr %350, i64 0, i64 %536
  store i16 %533, ptr %537, align 2, !tbaa !46
  br label %.loopexit1898

.loopexit1898:                                    ; preds = %502, %491, %.lr.ph1969, %._crit_edge1960
  %.41240 = phi i32 [ %.21238.lcssa, %._crit_edge1960 ], [ %.012361967, %.lr.ph1969 ], [ %.012361967, %491 ], [ %.012361967, %502 ]
  %indvars.iv.next2049 = add nuw nsw i64 %indvars.iv2048, 1
  %exitcond2052.not = icmp eq i64 %indvars.iv.next2049, %wide.trip.count2051
  br i1 %exitcond2052.not, label %._crit_edge1970, label %.lr.ph1969, !llvm.loop !51

._crit_edge1970:                                  ; preds = %.loopexit1898, %.preheader1899
  %538 = icmp eq i32 %343, 2
  br i1 %538, label %539, label %700

539:                                              ; preds = %._crit_edge1970, %688, %638
  %.411589 = phi ptr [ %.451593, %638 ], [ %.501598, %688 ], [ %.391587, %._crit_edge1970 ]
  %.411498 = phi i64 [ %.451502, %638 ], [ %.501507, %688 ], [ %.391496, %._crit_edge1970 ]
  %.461398 = phi ptr [ %.501402, %638 ], [ %.551407, %688 ], [ %.441396, %._crit_edge1970 ]
  %.471289 = phi i64 [ %635, %638 ], [ %673, %688 ], [ %.451287, %._crit_edge1970 ]
  %.471182 = phi i32 [ %.511186, %638 ], [ %.561191, %688 ], [ %.451180, %._crit_edge1970 ]
  %.461071 = phi i32 [ %641, %638 ], [ %691, %688 ], [ 0, %._crit_edge1970 ]
  %.46975 = phi i32 [ %.2928, %638 ], [ %.54983, %688 ], [ %.44973, %._crit_edge1970 ]
  %.47 = phi i32 [ %636, %638 ], [ %674, %688 ], [ %.45, %._crit_edge1970 ]
  %540 = getelementptr inbounds i8, ptr %0, i64 44
  %541 = load i32, ptr %540, align 4, !tbaa !36
  %542 = getelementptr inbounds i8, ptr %0, i64 48
  %543 = load i32, ptr %542, align 4, !tbaa !36
  %544 = add i32 %543, %541
  %545 = icmp ult i32 %.461071, %544
  br i1 %545, label %546, label %692

546:                                              ; preds = %539
  %547 = icmp ult i32 %.47, 15
  br i1 %547, label %548, label %611

548:                                              ; preds = %546
  %549 = ptrtoint ptr %11 to i64
  %550 = ptrtoint ptr %.461398 to i64
  %551 = sub i64 %549, %550
  %552 = icmp slt i64 %551, 2
  br i1 %552, label %553, label %596

553:                                              ; preds = %548, %589
  %.421590 = phi ptr [ %.411589, %548 ], [ %.441592, %589 ]
  %.421499 = phi i64 [ %.411498, %548 ], [ %.441501, %589 ]
  %.471399 = phi ptr [ %.461398, %548 ], [ %.491401, %589 ]
  %.481290 = phi i64 [ %.471289, %548 ], [ %593, %589 ]
  %.481183 = phi i32 [ %.471182, %548 ], [ %.501185, %589 ]
  %.471072 = phi i32 [ %.461071, %548 ], [ %.491074, %589 ]
  %.47976 = phi i32 [ %.46975, %548 ], [ %.49978, %589 ]
  %.48 = phi i32 [ %.47, %548 ], [ %594, %589 ]
  %554 = getelementptr inbounds i8, ptr %0, i64 7336
  %555 = and i64 %.481290, 1023
  %556 = getelementptr inbounds [1024 x i16], ptr %554, i64 0, i64 %555
  %557 = load i16, ptr %556, align 2, !tbaa !46
  %558 = sext i16 %557 to i32
  %559 = icmp sgt i16 %557, -1
  br i1 %559, label %560, label %562

560:                                              ; preds = %553
  %.not1805 = icmp ult i16 %557, 512
  %561 = lshr i32 %558, 9
  %.not1806 = icmp ult i32 %.48, %561
  %or.cond1843 = select i1 %.not1805, i1 true, i1 %.not1806
  br i1 %or.cond1843, label %582, label %611

562:                                              ; preds = %553
  %563 = icmp ugt i32 %.48, 10
  br i1 %563, label %.preheader1897, label %582

.preheader1897:                                   ; preds = %562
  %564 = getelementptr inbounds i8, ptr %0, i64 9384
  br label %565

565:                                              ; preds = %.preheader1897, %565
  %.0926 = phi i32 [ %575, %565 ], [ %558, %.preheader1897 ]
  %.0923 = phi i32 [ %568, %565 ], [ 10, %.preheader1897 ]
  %566 = xor i32 %.0926, -1
  %567 = sext i32 %566 to i64
  %568 = add i32 %.0923, 1
  %569 = zext nneg i32 %.0923 to i64
  %570 = lshr i64 %.481290, %569
  %571 = and i64 %570, 1
  %572 = add nsw i64 %571, %567
  %573 = getelementptr inbounds [576 x i16], ptr %564, i64 0, i64 %572
  %574 = load i16, ptr %573, align 2, !tbaa !46
  %575 = sext i16 %574 to i32
  %576 = icmp slt i16 %574, 0
  %577 = add i32 %.0923, 2
  %578 = icmp uge i32 %.48, %577
  %579 = select i1 %576, i1 %578, i1 false
  br i1 %579, label %565, label %580, !llvm.loop !52

580:                                              ; preds = %565
  %581 = icmp sgt i16 %574, -1
  br i1 %581, label %611, label %582

582:                                              ; preds = %560, %580, %562
  %.not1807 = icmp ult ptr %.471399, %11
  br i1 %.not1807, label %.sink.split2130, label %583

583:                                              ; preds = %585, %582
  %.431591 = phi ptr [ %.421590, %582 ], [ %4, %585 ]
  %.431500 = phi i64 [ %.421499, %582 ], [ %37, %585 ]
  %.481400 = phi ptr [ %.471399, %582 ], [ %1, %585 ]
  %.491291 = phi i64 [ %.481290, %582 ], [ %29, %585 ]
  %.491184 = phi i32 [ %.481183, %582 ], [ %35, %585 ]
  %.481073 = phi i32 [ %.471072, %582 ], [ %33, %585 ]
  %.48977 = phi i32 [ %.47976, %582 ], [ %31, %585 ]
  %.49 = phi i32 [ %.48, %582 ], [ %27, %585 ]
  %584 = and i32 %6, 2
  %.not1808 = icmp eq i32 %584, 0
  br i1 %.not1808, label %589, label %.sink.split2148

585:                                              ; preds = %25
  %586 = icmp sgt i64 %10, 0
  br i1 %586, label %.sink.split2130, label %583

.sink.split2130:                                  ; preds = %582, %585
  %.sink2132 = phi ptr [ %1, %585 ], [ %.471399, %582 ]
  %.441592.ph = phi ptr [ %4, %585 ], [ %.421590, %582 ]
  %.441501.ph = phi i64 [ %37, %585 ], [ %.421499, %582 ]
  %.501292.ph = phi i64 [ %29, %585 ], [ %.481290, %582 ]
  %.501185.ph = phi i32 [ %35, %585 ], [ %.481183, %582 ]
  %.491074.ph = phi i32 [ %33, %585 ], [ %.471072, %582 ]
  %.49978.ph = phi i32 [ %31, %585 ], [ %.47976, %582 ]
  %.50.ph = phi i32 [ %27, %585 ], [ %.48, %582 ]
  %587 = getelementptr inbounds i8, ptr %.sink2132, i64 1
  %588 = load i8, ptr %.sink2132, align 1, !tbaa !25
  br label %589

589:                                              ; preds = %.sink.split2130, %583
  %.441592 = phi ptr [ %.431591, %583 ], [ %.441592.ph, %.sink.split2130 ]
  %.441501 = phi i64 [ %.431500, %583 ], [ %.441501.ph, %.sink.split2130 ]
  %.491401 = phi ptr [ %.481400, %583 ], [ %587, %.sink.split2130 ]
  %.501292 = phi i64 [ %.491291, %583 ], [ %.501292.ph, %.sink.split2130 ]
  %.501185 = phi i32 [ %.491184, %583 ], [ %.501185.ph, %.sink.split2130 ]
  %.491074 = phi i32 [ %.481073, %583 ], [ %.491074.ph, %.sink.split2130 ]
  %.49978 = phi i32 [ %.48977, %583 ], [ %.49978.ph, %.sink.split2130 ]
  %.0922.shrunk = phi i8 [ 0, %583 ], [ %588, %.sink.split2130 ]
  %.50 = phi i32 [ %.49, %583 ], [ %.50.ph, %.sink.split2130 ]
  %590 = zext i8 %.0922.shrunk to i64
  %591 = zext nneg i32 %.50 to i64
  %592 = shl i64 %590, %591
  %593 = or i64 %592, %.501292
  %594 = add i32 %.50, 8
  %595 = icmp ult i32 %594, 15
  br i1 %595, label %553, label %611, !llvm.loop !53

596:                                              ; preds = %548
  %597 = load i8, ptr %.461398, align 1, !tbaa !25
  %598 = zext i8 %597 to i64
  %599 = zext nneg i32 %.47 to i64
  %600 = shl nuw nsw i64 %598, %599
  %601 = getelementptr inbounds i8, ptr %.461398, i64 1
  %602 = load i8, ptr %601, align 1, !tbaa !25
  %603 = zext i8 %602 to i64
  %604 = add nuw nsw i32 %.47, 8
  %605 = zext nneg i32 %604 to i64
  %606 = shl nuw nsw i64 %603, %605
  %607 = or i64 %600, %606
  %608 = or i64 %607, %.471289
  %609 = getelementptr inbounds i8, ptr %.461398, i64 2
  %610 = or disjoint i32 %.47, 16
  br label %611

611:                                              ; preds = %560, %596, %580, %589, %546
  %.451593 = phi ptr [ %.441592, %589 ], [ %.421590, %580 ], [ %.411589, %596 ], [ %.411589, %546 ], [ %.421590, %560 ]
  %.451502 = phi i64 [ %.441501, %589 ], [ %.421499, %580 ], [ %.411498, %596 ], [ %.411498, %546 ], [ %.421499, %560 ]
  %.501402 = phi ptr [ %.491401, %589 ], [ %.471399, %580 ], [ %609, %596 ], [ %.461398, %546 ], [ %.471399, %560 ]
  %.511293 = phi i64 [ %593, %589 ], [ %.481290, %580 ], [ %608, %596 ], [ %.471289, %546 ], [ %.481290, %560 ]
  %.511186 = phi i32 [ %.501185, %589 ], [ %.481183, %580 ], [ %.471182, %596 ], [ %.471182, %546 ], [ %.481183, %560 ]
  %.501075 = phi i32 [ %.491074, %589 ], [ %.471072, %580 ], [ %.461071, %596 ], [ %.461071, %546 ], [ %.471072, %560 ]
  %.51 = phi i32 [ %594, %589 ], [ %.48, %580 ], [ %610, %596 ], [ %.47, %546 ], [ %.48, %560 ]
  %612 = getelementptr inbounds i8, ptr %0, i64 7336
  %613 = and i64 %.511293, 1023
  %614 = getelementptr inbounds [1024 x i16], ptr %612, i64 0, i64 %613
  %615 = load i16, ptr %614, align 2, !tbaa !46
  %616 = sext i16 %615 to i32
  %617 = icmp sgt i16 %615, -1
  br i1 %617, label %619, label %.preheader1896

.preheader1896:                                   ; preds = %611
  %618 = getelementptr inbounds i8, ptr %0, i64 9384
  br label %622

619:                                              ; preds = %611
  %620 = lshr i32 %616, 9
  %621 = and i32 %616, 511
  br label %.loopexit

622:                                              ; preds = %.preheader1896, %622
  %.1927 = phi i32 [ %632, %622 ], [ %616, %.preheader1896 ]
  %.1924 = phi i32 [ %625, %622 ], [ 10, %.preheader1896 ]
  %623 = xor i32 %.1927, -1
  %624 = sext i32 %623 to i64
  %625 = add i32 %.1924, 1
  %626 = zext nneg i32 %.1924 to i64
  %627 = lshr i64 %.511293, %626
  %628 = and i64 %627, 1
  %629 = add nsw i64 %628, %624
  %630 = getelementptr inbounds [576 x i16], ptr %618, i64 0, i64 %629
  %631 = load i16, ptr %630, align 2, !tbaa !46
  %632 = sext i16 %631 to i32
  %633 = icmp slt i16 %631, 0
  br i1 %633, label %622, label %.loopexit, !llvm.loop !54

.loopexit:                                        ; preds = %622, %619
  %.2928 = phi i32 [ %621, %619 ], [ %632, %622 ]
  %.2925 = phi i32 [ %620, %619 ], [ %625, %622 ]
  %634 = zext nneg i32 %.2925 to i64
  %635 = lshr i64 %.511293, %634
  %636 = sub i32 %.51, %.2925
  %637 = icmp ult i32 %.2928, 16
  br i1 %637, label %638, label %644

638:                                              ; preds = %.loopexit
  %639 = trunc nuw nsw i32 %.2928 to i8
  %640 = getelementptr inbounds i8, ptr %0, i64 10540
  %641 = add i32 %.501075, 1
  %642 = zext i32 %.501075 to i64
  %643 = getelementptr inbounds [457 x i8], ptr %640, i64 0, i64 %642
  store i8 %639, ptr %643, align 1, !tbaa !25
  br label %539, !llvm.loop !55

644:                                              ; preds = %.loopexit
  %645 = icmp ne i32 %.2928, 16
  %646 = icmp ne i32 %.501075, 0
  %or.cond3 = select i1 %645, i1 true, i1 %646
  br i1 %or.cond3, label %647, label %.sink.split2148

647:                                              ; preds = %644
  %648 = add nsw i32 %.2928, -16
  %649 = zext i32 %648 to i64
  %650 = getelementptr inbounds [4 x i8], ptr @.str.12, i64 0, i64 %649
  %651 = load i8, ptr %650, align 1, !tbaa !25
  %652 = sext i8 %651 to i32
  %653 = icmp ult i32 %636, %652
  br i1 %653, label %654, label %668

654:                                              ; preds = %647, %661
  %.471595 = phi ptr [ %.451593, %647 ], [ %.491597, %661 ]
  %.471504 = phi i64 [ %.451502, %647 ], [ %.491506, %661 ]
  %.521404 = phi ptr [ %.501402, %647 ], [ %.541406, %661 ]
  %.531295 = phi i64 [ %635, %647 ], [ %665, %661 ]
  %.531188 = phi i32 [ %652, %647 ], [ %.551190, %661 ]
  %.521077 = phi i32 [ %.501075, %647 ], [ %.541079, %661 ]
  %.51980 = phi i32 [ %.2928, %647 ], [ %.53982, %661 ]
  %.53 = phi i32 [ %636, %647 ], [ %666, %661 ]
  %.not1809 = icmp ult ptr %.521404, %11
  br i1 %.not1809, label %.sink.split2133, label %655

655:                                              ; preds = %657, %654
  %.481596 = phi ptr [ %.471595, %654 ], [ %4, %657 ]
  %.481505 = phi i64 [ %.471504, %654 ], [ %37, %657 ]
  %.531405 = phi ptr [ %.521404, %654 ], [ %1, %657 ]
  %.541296 = phi i64 [ %.531295, %654 ], [ %29, %657 ]
  %.541189 = phi i32 [ %.531188, %654 ], [ %35, %657 ]
  %.531078 = phi i32 [ %.521077, %654 ], [ %33, %657 ]
  %.52981 = phi i32 [ %.51980, %654 ], [ %31, %657 ]
  %.54 = phi i32 [ %.53, %654 ], [ %27, %657 ]
  %656 = and i32 %6, 2
  %.not1810 = icmp eq i32 %656, 0
  br i1 %.not1810, label %661, label %.sink.split2148

657:                                              ; preds = %25
  %658 = icmp sgt i64 %10, 0
  br i1 %658, label %.sink.split2133, label %655

.sink.split2133:                                  ; preds = %654, %657
  %.sink2135 = phi ptr [ %1, %657 ], [ %.521404, %654 ]
  %.491597.ph = phi ptr [ %4, %657 ], [ %.471595, %654 ]
  %.491506.ph = phi i64 [ %37, %657 ], [ %.471504, %654 ]
  %.551297.ph = phi i64 [ %29, %657 ], [ %.531295, %654 ]
  %.551190.ph = phi i32 [ %35, %657 ], [ %.531188, %654 ]
  %.541079.ph = phi i32 [ %33, %657 ], [ %.521077, %654 ]
  %.53982.ph = phi i32 [ %31, %657 ], [ %.51980, %654 ]
  %.55.ph = phi i32 [ %27, %657 ], [ %.53, %654 ]
  %659 = getelementptr inbounds i8, ptr %.sink2135, i64 1
  %660 = load i8, ptr %.sink2135, align 1, !tbaa !25
  br label %661

661:                                              ; preds = %.sink.split2133, %655
  %.491597 = phi ptr [ %.481596, %655 ], [ %.491597.ph, %.sink.split2133 ]
  %.491506 = phi i64 [ %.481505, %655 ], [ %.491506.ph, %.sink.split2133 ]
  %.541406 = phi ptr [ %.531405, %655 ], [ %659, %.sink.split2133 ]
  %.551297 = phi i64 [ %.541296, %655 ], [ %.551297.ph, %.sink.split2133 ]
  %.551190 = phi i32 [ %.541189, %655 ], [ %.551190.ph, %.sink.split2133 ]
  %.541079 = phi i32 [ %.531078, %655 ], [ %.541079.ph, %.sink.split2133 ]
  %.53982 = phi i32 [ %.52981, %655 ], [ %.53982.ph, %.sink.split2133 ]
  %.0921.shrunk = phi i8 [ 0, %655 ], [ %660, %.sink.split2133 ]
  %.55 = phi i32 [ %.54, %655 ], [ %.55.ph, %.sink.split2133 ]
  %662 = zext i8 %.0921.shrunk to i64
  %663 = zext nneg i32 %.55 to i64
  %664 = shl i64 %662, %663
  %665 = or i64 %664, %.551297
  %666 = add i32 %.55, 8
  %667 = icmp ult i32 %666, %.551190
  br i1 %667, label %654, label %._crit_edge2088, !llvm.loop !56

._crit_edge2088:                                  ; preds = %661
  %.pre2089 = add i32 %.53982, -16
  %.pre2091 = zext i32 %.pre2089 to i64
  br label %668

668:                                              ; preds = %._crit_edge2088, %647
  %.pre-phi2092 = phi i64 [ %.pre2091, %._crit_edge2088 ], [ %649, %647 ]
  %.501598 = phi ptr [ %.491597, %._crit_edge2088 ], [ %.451593, %647 ]
  %.501507 = phi i64 [ %.491506, %._crit_edge2088 ], [ %.451502, %647 ]
  %.551407 = phi ptr [ %.541406, %._crit_edge2088 ], [ %.501402, %647 ]
  %.561298 = phi i64 [ %665, %._crit_edge2088 ], [ %635, %647 ]
  %.561191 = phi i32 [ %.551190, %._crit_edge2088 ], [ %652, %647 ]
  %.551080 = phi i32 [ %.541079, %._crit_edge2088 ], [ %.501075, %647 ]
  %.54983 = phi i32 [ %.53982, %._crit_edge2088 ], [ %.2928, %647 ]
  %.56 = phi i32 [ %666, %._crit_edge2088 ], [ %636, %647 ]
  %notmask1811 = shl nsw i32 -1, %.561191
  %669 = xor i32 %notmask1811, -1
  %670 = trunc i64 %.561298 to i32
  %671 = and i32 %669, %670
  %672 = zext nneg i32 %.561191 to i64
  %673 = lshr i64 %.561298, %672
  %674 = sub i32 %.56, %.561191
  %675 = getelementptr inbounds [4 x i8], ptr @.str.13, i64 0, i64 %.pre-phi2092
  %676 = load i8, ptr %675, align 1, !tbaa !25
  %677 = sext i8 %676 to i32
  %678 = add i32 %671, %677
  %679 = getelementptr inbounds i8, ptr %0, i64 10540
  %680 = zext i32 %.551080 to i64
  %681 = getelementptr inbounds i8, ptr %679, i64 %680
  %682 = icmp eq i32 %.54983, 16
  br i1 %682, label %683, label %688

683:                                              ; preds = %668
  %684 = add i32 %.551080, -1
  %685 = zext i32 %684 to i64
  %686 = getelementptr inbounds [457 x i8], ptr %679, i64 0, i64 %685
  %687 = load i8, ptr %686, align 1, !tbaa !25
  br label %688

688:                                              ; preds = %668, %683
  %689 = phi i8 [ %687, %683 ], [ 0, %668 ]
  %690 = zext i32 %678 to i64
  tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %681, i8 %689, i64 %690, i1 false)
  %691 = add i32 %678, %.551080
  br label %539, !llvm.loop !55

692:                                              ; preds = %539
  %.not1804 = icmp eq i32 %544, %.461071
  br i1 %.not1804, label %693, label %.sink.split2148

693:                                              ; preds = %692
  %694 = getelementptr inbounds i8, ptr %0, i64 72
  %695 = getelementptr inbounds i8, ptr %0, i64 10540
  %696 = zext i32 %541 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %694, ptr nonnull align 4 %695, i64 %696, i1 false)
  %697 = getelementptr inbounds i8, ptr %0, i64 3560
  %698 = getelementptr inbounds i8, ptr %695, i64 %696
  %699 = zext i32 %543 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %697, ptr nonnull align 1 %698, i64 %699, i1 false)
  br label %700

700:                                              ; preds = %._crit_edge1970, %693
  %.521600 = phi ptr [ %.411589, %693 ], [ %.391587, %._crit_edge1970 ]
  %.521509 = phi i64 [ %.411498, %693 ], [ %.391496, %._crit_edge1970 ]
  %.571409 = phi ptr [ %.461398, %693 ], [ %.441396, %._crit_edge1970 ]
  %.581300 = phi i64 [ %.471289, %693 ], [ %.451287, %._crit_edge1970 ]
  %.581193 = phi i32 [ %.471182, %693 ], [ %.451180, %._crit_edge1970 ]
  %.571082 = phi i32 [ %.461071, %693 ], [ %.441069, %._crit_edge1970 ]
  %.56985 = phi i32 [ %.46975, %693 ], [ %.44973, %._crit_edge1970 ]
  %.58 = phi i32 [ %.47, %693 ], [ %.45, %._crit_edge1970 ]
  %701 = getelementptr inbounds i8, ptr %0, i64 24
  %702 = load i32, ptr %701, align 8, !tbaa !28
  %703 = add i32 %702, -1
  store i32 %703, ptr %701, align 8, !tbaa !28
  br label %.loopexit1911, !llvm.loop !57

704:                                              ; preds = %.preheader2241, %869
  %.541602 = phi ptr [ %872, %869 ], [ %.541602.ph, %.preheader2241 ]
  %.591411 = phi ptr [ %.651417, %869 ], [ %.591411.ph, %.preheader2241 ]
  %.601302 = phi i64 [ %863, %869 ], [ %.601302.ph, %.preheader2241 ]
  %.591084 = phi i32 [ %.1908, %869 ], [ %.591084.ph, %.preheader2241 ]
  %.60 = phi i32 [ %864, %869 ], [ %.60.ph, %.preheader2241 ]
  %705 = ptrtoint ptr %.591411 to i64
  %706 = sub i64 %805, %705
  %707 = icmp slt i64 %706, 4
  %708 = ptrtoint ptr %.541602 to i64
  %709 = sub i64 %806, %708
  %710 = icmp slt i64 %709, 2
  %or.cond1847 = select i1 %707, i1 true, i1 %710
  br i1 %or.cond1847, label %711, label %810

711:                                              ; preds = %704
  %712 = icmp ult i32 %.60, 15
  br i1 %712, label %713, label %773

713:                                              ; preds = %711
  %714 = icmp slt i64 %706, 2
  br i1 %714, label %715, label %758

715:                                              ; preds = %713, %751
  %.551603 = phi ptr [ %.541602, %713 ], [ %.571605, %751 ]
  %.551512 = phi i64 [ %.541511.ph, %713 ], [ %.571514, %751 ]
  %.601412 = phi ptr [ %.591411, %713 ], [ %.621414, %751 ]
  %.611303 = phi i64 [ %.601302, %713 ], [ %755, %751 ]
  %.611196 = phi i32 [ %.601195.ph, %713 ], [ %.631198, %751 ]
  %.601085 = phi i32 [ %.591084, %713 ], [ %.621087, %751 ]
  %.59988 = phi i32 [ %.58987.ph, %713 ], [ %.61990, %751 ]
  %.61 = phi i32 [ %.60, %713 ], [ %756, %751 ]
  %716 = getelementptr inbounds i8, ptr %0, i64 360
  %717 = and i64 %.611303, 1023
  %718 = getelementptr inbounds [1024 x i16], ptr %716, i64 0, i64 %717
  %719 = load i16, ptr %718, align 2, !tbaa !46
  %720 = sext i16 %719 to i32
  %721 = icmp sgt i16 %719, -1
  br i1 %721, label %722, label %724

722:                                              ; preds = %715
  %.not1783 = icmp ult i16 %719, 512
  %723 = lshr i32 %720, 9
  %.not1784 = icmp ult i32 %.61, %723
  %or.cond1848 = select i1 %.not1783, i1 true, i1 %.not1784
  br i1 %or.cond1848, label %744, label %773

724:                                              ; preds = %715
  %725 = icmp ugt i32 %.61, 10
  br i1 %725, label %.preheader1905, label %744

.preheader1905:                                   ; preds = %724
  %726 = getelementptr inbounds i8, ptr %0, i64 2408
  br label %727

727:                                              ; preds = %.preheader1905, %727
  %.0915 = phi i32 [ %737, %727 ], [ %720, %.preheader1905 ]
  %.0912 = phi i32 [ %730, %727 ], [ 10, %.preheader1905 ]
  %728 = xor i32 %.0915, -1
  %729 = sext i32 %728 to i64
  %730 = add i32 %.0912, 1
  %731 = zext nneg i32 %.0912 to i64
  %732 = lshr i64 %.611303, %731
  %733 = and i64 %732, 1
  %734 = add nsw i64 %733, %729
  %735 = getelementptr inbounds [576 x i16], ptr %726, i64 0, i64 %734
  %736 = load i16, ptr %735, align 2, !tbaa !46
  %737 = sext i16 %736 to i32
  %738 = icmp slt i16 %736, 0
  %739 = add i32 %.0912, 2
  %740 = icmp uge i32 %.61, %739
  %741 = select i1 %738, i1 %740, i1 false
  br i1 %741, label %727, label %742, !llvm.loop !58

742:                                              ; preds = %727
  %743 = icmp sgt i16 %736, -1
  br i1 %743, label %773, label %744

744:                                              ; preds = %722, %742, %724
  %.not1785 = icmp ult ptr %.601412, %11
  br i1 %.not1785, label %.sink.split2136, label %745

745:                                              ; preds = %747, %744
  %.561604 = phi ptr [ %.551603, %744 ], [ %4, %747 ]
  %.561513 = phi i64 [ %.551512, %744 ], [ %37, %747 ]
  %.611413 = phi ptr [ %.601412, %744 ], [ %1, %747 ]
  %.621304 = phi i64 [ %.611303, %744 ], [ %29, %747 ]
  %.621197 = phi i32 [ %.611196, %744 ], [ %35, %747 ]
  %.611086 = phi i32 [ %.601085, %744 ], [ %33, %747 ]
  %.60989 = phi i32 [ %.59988, %744 ], [ %31, %747 ]
  %.62 = phi i32 [ %.61, %744 ], [ %27, %747 ]
  %746 = and i32 %6, 2
  %.not1786 = icmp eq i32 %746, 0
  br i1 %.not1786, label %751, label %.sink.split2148

747:                                              ; preds = %25
  %748 = icmp sgt i64 %10, 0
  br i1 %748, label %.sink.split2136, label %745

.sink.split2136:                                  ; preds = %744, %747
  %.sink2138 = phi ptr [ %1, %747 ], [ %.601412, %744 ]
  %.571605.ph = phi ptr [ %4, %747 ], [ %.551603, %744 ]
  %.571514.ph = phi i64 [ %37, %747 ], [ %.551512, %744 ]
  %.631305.ph = phi i64 [ %29, %747 ], [ %.611303, %744 ]
  %.631198.ph = phi i32 [ %35, %747 ], [ %.611196, %744 ]
  %.621087.ph = phi i32 [ %33, %747 ], [ %.601085, %744 ]
  %.61990.ph = phi i32 [ %31, %747 ], [ %.59988, %744 ]
  %.63.ph = phi i32 [ %27, %747 ], [ %.61, %744 ]
  %749 = getelementptr inbounds i8, ptr %.sink2138, i64 1
  %750 = load i8, ptr %.sink2138, align 1, !tbaa !25
  br label %751

751:                                              ; preds = %.sink.split2136, %745
  %.571605 = phi ptr [ %.561604, %745 ], [ %.571605.ph, %.sink.split2136 ]
  %.571514 = phi i64 [ %.561513, %745 ], [ %.571514.ph, %.sink.split2136 ]
  %.621414 = phi ptr [ %.611413, %745 ], [ %749, %.sink.split2136 ]
  %.631305 = phi i64 [ %.621304, %745 ], [ %.631305.ph, %.sink.split2136 ]
  %.631198 = phi i32 [ %.621197, %745 ], [ %.631198.ph, %.sink.split2136 ]
  %.621087 = phi i32 [ %.611086, %745 ], [ %.621087.ph, %.sink.split2136 ]
  %.61990 = phi i32 [ %.60989, %745 ], [ %.61990.ph, %.sink.split2136 ]
  %.0911.shrunk = phi i8 [ 0, %745 ], [ %750, %.sink.split2136 ]
  %.63 = phi i32 [ %.62, %745 ], [ %.63.ph, %.sink.split2136 ]
  %752 = zext i8 %.0911.shrunk to i64
  %753 = zext nneg i32 %.63 to i64
  %754 = shl i64 %752, %753
  %755 = or i64 %754, %.631305
  %756 = add i32 %.63, 8
  %757 = icmp ult i32 %756, 15
  br i1 %757, label %715, label %773, !llvm.loop !59

758:                                              ; preds = %713
  %759 = load i8, ptr %.591411, align 1, !tbaa !25
  %760 = zext i8 %759 to i64
  %761 = zext nneg i32 %.60 to i64
  %762 = shl nuw nsw i64 %760, %761
  %763 = getelementptr inbounds i8, ptr %.591411, i64 1
  %764 = load i8, ptr %763, align 1, !tbaa !25
  %765 = zext i8 %764 to i64
  %766 = add nuw nsw i32 %.60, 8
  %767 = zext nneg i32 %766 to i64
  %768 = shl nuw nsw i64 %765, %767
  %769 = or i64 %762, %768
  %770 = or i64 %769, %.601302
  %771 = getelementptr inbounds i8, ptr %.591411, i64 2
  %772 = or disjoint i32 %.60, 16
  br label %773

773:                                              ; preds = %722, %758, %742, %751, %711
  %.581606 = phi ptr [ %.571605, %751 ], [ %.551603, %742 ], [ %.541602, %758 ], [ %.541602, %711 ], [ %.551603, %722 ]
  %.581515 = phi i64 [ %.571514, %751 ], [ %.551512, %742 ], [ %.541511.ph, %758 ], [ %.541511.ph, %711 ], [ %.551512, %722 ]
  %.631415 = phi ptr [ %.621414, %751 ], [ %.601412, %742 ], [ %771, %758 ], [ %.591411, %711 ], [ %.601412, %722 ]
  %.641306 = phi i64 [ %755, %751 ], [ %.611303, %742 ], [ %770, %758 ], [ %.601302, %711 ], [ %.611303, %722 ]
  %.641199 = phi i32 [ %.631198, %751 ], [ %.611196, %742 ], [ %.601195.ph, %758 ], [ %.601195.ph, %711 ], [ %.611196, %722 ]
  %.62991 = phi i32 [ %.61990, %751 ], [ %.59988, %742 ], [ %.58987.ph, %758 ], [ %.58987.ph, %711 ], [ %.59988, %722 ]
  %.64 = phi i32 [ %756, %751 ], [ %.61, %742 ], [ %772, %758 ], [ %.60, %711 ], [ %.61, %722 ]
  %774 = getelementptr inbounds i8, ptr %0, i64 360
  %775 = and i64 %.641306, 1023
  %776 = getelementptr inbounds [1024 x i16], ptr %774, i64 0, i64 %775
  %777 = load i16, ptr %776, align 2, !tbaa !46
  %778 = sext i16 %777 to i32
  %779 = icmp sgt i16 %777, -1
  br i1 %779, label %781, label %.preheader1903

.preheader1903:                                   ; preds = %773
  %780 = getelementptr inbounds i8, ptr %0, i64 2408
  br label %784

781:                                              ; preds = %773
  %782 = lshr i32 %778, 9
  %783 = and i32 %778, 511
  br label %.loopexit1904

784:                                              ; preds = %.preheader1903, %784
  %.1916 = phi i32 [ %794, %784 ], [ %778, %.preheader1903 ]
  %.1913 = phi i32 [ %787, %784 ], [ 10, %.preheader1903 ]
  %785 = xor i32 %.1916, -1
  %786 = sext i32 %785 to i64
  %787 = add i32 %.1913, 1
  %788 = zext nneg i32 %.1913 to i64
  %789 = lshr i64 %.641306, %788
  %790 = and i64 %789, 1
  %791 = add nsw i64 %790, %786
  %792 = getelementptr inbounds [576 x i16], ptr %780, i64 0, i64 %791
  %793 = load i16, ptr %792, align 2, !tbaa !46
  %794 = sext i16 %793 to i32
  %795 = icmp slt i16 %793, 0
  br i1 %795, label %784, label %.loopexit1904, !llvm.loop !60

.loopexit1904:                                    ; preds = %784, %781
  %.2917 = phi i32 [ %783, %781 ], [ %794, %784 ]
  %.2914 = phi i32 [ %782, %781 ], [ %787, %784 ]
  %796 = zext nneg i32 %.2914 to i64
  %797 = lshr i64 %.641306, %796
  %798 = sub i32 %.64, %.2914
  %799 = icmp ugt i32 %.2917, 255
  br i1 %799, label %.thread1873, label %800

800:                                              ; preds = %.loopexit1904, %801
  %.591607 = phi ptr [ %.581606, %.loopexit1904 ], [ %4, %801 ]
  %.591516 = phi i64 [ %.581515, %.loopexit1904 ], [ %37, %801 ]
  %.641416 = phi ptr [ %.631415, %.loopexit1904 ], [ %1, %801 ]
  %.651307 = phi i64 [ %797, %.loopexit1904 ], [ %29, %801 ]
  %.651200 = phi i32 [ %.641199, %.loopexit1904 ], [ %35, %801 ]
  %.631088 = phi i32 [ %.2917, %.loopexit1904 ], [ %33, %801 ]
  %.63992 = phi i32 [ %.62991, %.loopexit1904 ], [ %31, %801 ]
  %.65 = phi i32 [ %798, %.loopexit1904 ], [ %27, %801 ]
  %.not1787 = icmp ult ptr %.591607, %13
  br i1 %.not1787, label %802, label %.sink.split2148

801:                                              ; preds = %25
  br label %800, !llvm.loop !61

802:                                              ; preds = %800
  %803 = trunc i32 %.631088 to i8
  %804 = getelementptr inbounds i8, ptr %.591607, i64 1
  store i8 %803, ptr %.591607, align 1, !tbaa !25
  br label %.preheader2241

.preheader2241:                                   ; preds = %1040, %.loopexit1911, %802, %1092, %1100, %1123, %1114
  %.541602.ph = phi ptr [ %1110, %1114 ], [ %1125, %1123 ], [ %.lcssa2172, %1092 ], [ %1102, %1100 ], [ %804, %802 ], [ %.391587, %.loopexit1911 ], [ %.781626, %1040 ]
  %.541511.ph = phi i64 [ %1028, %1114 ], [ %1028, %1123 ], [ %1028, %1092 ], [ %1028, %1100 ], [ %.591516, %802 ], [ %.391496, %.loopexit1911 ], [ %.751532, %1040 ]
  %.591411.ph = phi ptr [ %.811433, %1114 ], [ %.811433, %1123 ], [ %.811433, %1092 ], [ %.811433, %1100 ], [ %.641416, %802 ], [ %.441396, %.loopexit1911 ], [ %.831435, %1040 ]
  %.601302.ph = phi i64 [ %.831325, %1114 ], [ %.831325, %1123 ], [ %.831325, %1092 ], [ %.831325, %1100 ], [ %.651307, %802 ], [ %.451287, %.loopexit1911 ], [ %.851327, %1040 ]
  %.601195.ph = phi i32 [ %.801215, %1114 ], [ %.801215, %1123 ], [ %.801215, %1092 ], [ %.801215, %1100 ], [ %.651200, %802 ], [ %.451180, %.loopexit1911 ], [ %.821217, %1040 ]
  %.591084.ph = phi i32 [ %1112, %1114 ], [ %1112, %1123 ], [ %1090, %1092 ], [ %1090, %1100 ], [ %.631088, %802 ], [ %.441069, %.loopexit1911 ], [ -1, %1040 ]
  %.58987.ph = phi i32 [ %.781007, %1114 ], [ %.781007, %1123 ], [ %.781007, %1092 ], [ %.781007, %1100 ], [ %.63992, %802 ], [ %.44973, %.loopexit1911 ], [ %.801009, %1040 ]
  %.60.ph = phi i32 [ %.83, %1114 ], [ %.83, %1123 ], [ %.83, %1092 ], [ %.83, %1100 ], [ %.65, %802 ], [ %.45, %.loopexit1911 ], [ %.85, %1040 ]
  %805 = ptrtoint ptr %11 to i64
  %806 = ptrtoint ptr %13 to i64
  %807 = getelementptr inbounds i8, ptr %0, i64 360
  %808 = getelementptr inbounds i8, ptr %0, i64 2408
  %809 = getelementptr inbounds i8, ptr %0, i64 2408
  br label %704

810:                                              ; preds = %704
  %811 = icmp ult i32 %.60, 30
  br i1 %811, label %812, label %820

812:                                              ; preds = %810
  %813 = load i32, ptr %.591411, align 4, !tbaa !36
  %814 = zext i32 %813 to i64
  %815 = zext nneg i32 %.60 to i64
  %816 = shl nuw nsw i64 %814, %815
  %817 = or i64 %816, %.601302
  %818 = getelementptr inbounds i8, ptr %.591411, i64 4
  %819 = or disjoint i32 %.60, 32
  br label %820

820:                                              ; preds = %812, %810
  %.651417 = phi ptr [ %818, %812 ], [ %.591411, %810 ]
  %.661308 = phi i64 [ %817, %812 ], [ %.601302, %810 ]
  %.66 = phi i32 [ %819, %812 ], [ %.60, %810 ]
  %821 = and i64 %.661308, 1023
  %822 = getelementptr inbounds [1024 x i16], ptr %807, i64 0, i64 %821
  %823 = load i16, ptr %822, align 2, !tbaa !46
  %824 = sext i16 %823 to i32
  %825 = icmp sgt i16 %823, -1
  br i1 %825, label %826, label %.preheader1908

826:                                              ; preds = %820
  %827 = lshr i32 %824, 9
  br label %.loopexit1909

.preheader1908:                                   ; preds = %820, %.preheader1908
  %.0907 = phi i32 [ %837, %.preheader1908 ], [ %824, %820 ]
  %.0903 = phi i32 [ %830, %.preheader1908 ], [ 10, %820 ]
  %828 = xor i32 %.0907, -1
  %829 = sext i32 %828 to i64
  %830 = add i32 %.0903, 1
  %831 = zext nneg i32 %.0903 to i64
  %832 = lshr i64 %.661308, %831
  %833 = and i64 %832, 1
  %834 = add nsw i64 %833, %829
  %835 = getelementptr inbounds [576 x i16], ptr %808, i64 0, i64 %834
  %836 = load i16, ptr %835, align 2, !tbaa !46
  %837 = sext i16 %836 to i32
  %838 = icmp slt i16 %836, 0
  br i1 %838, label %.preheader1908, label %.loopexit1909, !llvm.loop !62

.loopexit1909:                                    ; preds = %.preheader1908, %826
  %.1908 = phi i32 [ %824, %826 ], [ %837, %.preheader1908 ]
  %.1904 = phi i32 [ %827, %826 ], [ %830, %.preheader1908 ]
  %839 = zext nneg i32 %.1904 to i64
  %840 = lshr i64 %.661308, %839
  %841 = sub i32 %.66, %.1904
  %842 = and i32 %.1908, 256
  %.not1781 = icmp eq i32 %842, 0
  br i1 %.not1781, label %843, label %.thread1873

843:                                              ; preds = %.loopexit1909
  %844 = and i64 %840, 1023
  %845 = getelementptr inbounds [1024 x i16], ptr %807, i64 0, i64 %844
  %846 = load i16, ptr %845, align 2, !tbaa !46
  %847 = sext i16 %846 to i32
  %848 = icmp sgt i16 %846, -1
  br i1 %848, label %849, label %.preheader1906

849:                                              ; preds = %843
  %850 = lshr i32 %847, 9
  br label %.loopexit1907

.preheader1906:                                   ; preds = %843, %.preheader1906
  %.2909 = phi i32 [ %860, %.preheader1906 ], [ %847, %843 ]
  %.2905 = phi i32 [ %853, %.preheader1906 ], [ 10, %843 ]
  %851 = xor i32 %.2909, -1
  %852 = sext i32 %851 to i64
  %853 = add i32 %.2905, 1
  %854 = zext nneg i32 %.2905 to i64
  %855 = lshr i64 %840, %854
  %856 = and i64 %855, 1
  %857 = add nsw i64 %856, %852
  %858 = getelementptr inbounds [576 x i16], ptr %809, i64 0, i64 %857
  %859 = load i16, ptr %858, align 2, !tbaa !46
  %860 = sext i16 %859 to i32
  %861 = icmp slt i16 %859, 0
  br i1 %861, label %.preheader1906, label %.loopexit1907, !llvm.loop !63

.loopexit1907:                                    ; preds = %.preheader1906, %849
  %.3910 = phi i32 [ %847, %849 ], [ %860, %.preheader1906 ]
  %.3906 = phi i32 [ %850, %849 ], [ %853, %.preheader1906 ]
  %862 = zext nneg i32 %.3906 to i64
  %863 = lshr i64 %840, %862
  %864 = sub i32 %841, %.3906
  %865 = trunc i32 %.1908 to i8
  store i8 %865, ptr %.541602, align 1, !tbaa !25
  %866 = and i32 %.3910, 256
  %.not1782 = icmp eq i32 %866, 0
  br i1 %.not1782, label %869, label %867

867:                                              ; preds = %.loopexit1907
  %868 = getelementptr inbounds i8, ptr %.541602, i64 1
  br label %.thread1873

869:                                              ; preds = %.loopexit1907
  %870 = trunc i32 %.3910 to i8
  %871 = getelementptr inbounds i8, ptr %.541602, i64 1
  store i8 %870, ptr %871, align 1, !tbaa !25
  %872 = getelementptr inbounds i8, ptr %.541602, i64 2
  br label %704

.thread1873:                                      ; preds = %.loopexit1909, %867, %.loopexit1904
  %.621610 = phi ptr [ %.581606, %.loopexit1904 ], [ %868, %867 ], [ %.541602, %.loopexit1909 ]
  %.611518 = phi i64 [ %.581515, %.loopexit1904 ], [ %.541511.ph, %867 ], [ %.541511.ph, %.loopexit1909 ]
  %.671419 = phi ptr [ %.631415, %.loopexit1904 ], [ %.651417, %867 ], [ %.651417, %.loopexit1909 ]
  %.691311 = phi i64 [ %797, %.loopexit1904 ], [ %863, %867 ], [ %840, %.loopexit1909 ]
  %.671202 = phi i32 [ %.641199, %.loopexit1904 ], [ %.601195.ph, %867 ], [ %.601195.ph, %.loopexit1909 ]
  %.661091 = phi i32 [ %.2917, %.loopexit1904 ], [ %.3910, %867 ], [ %.1908, %.loopexit1909 ]
  %.65994 = phi i32 [ %.62991, %.loopexit1904 ], [ %.58987.ph, %867 ], [ %.58987.ph, %.loopexit1909 ]
  %.69 = phi i32 [ %798, %.loopexit1904 ], [ %864, %867 ], [ %841, %.loopexit1909 ]
  %873 = and i32 %.661091, 511
  %874 = icmp eq i32 %873, 256
  br i1 %874, label %1126, label %875

875:                                              ; preds = %.thread1873
  %876 = add nsw i32 %873, -257
  %877 = zext i32 %876 to i64
  %878 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_extra, i64 0, i64 %877
  %879 = load i32, ptr %878, align 4, !tbaa !36
  %880 = getelementptr inbounds [31 x i32], ptr @tinfl_decompress.s_length_base, i64 0, i64 %877
  %881 = load i32, ptr %880, align 4, !tbaa !36
  %.not1788 = icmp eq i32 %879, 0
  br i1 %.not1788, label %906, label %882

882:                                              ; preds = %875
  %883 = icmp ult i32 %.69, %879
  br i1 %883, label %884, label %898

884:                                              ; preds = %882, %891
  %.631611 = phi ptr [ %.621610, %882 ], [ %.651613, %891 ]
  %.621519 = phi i64 [ %.611518, %882 ], [ %.641521, %891 ]
  %.681420 = phi ptr [ %.671419, %882 ], [ %.701422, %891 ]
  %.701312 = phi i64 [ %.691311, %882 ], [ %895, %891 ]
  %.681203 = phi i32 [ %879, %882 ], [ %.701205, %891 ]
  %.671092 = phi i32 [ %881, %882 ], [ %.691094, %891 ]
  %.66995 = phi i32 [ %.65994, %882 ], [ %.68997, %891 ]
  %.70 = phi i32 [ %.69, %882 ], [ %896, %891 ]
  %.not1789 = icmp ult ptr %.681420, %11
  br i1 %.not1789, label %.sink.split2139, label %885

885:                                              ; preds = %887, %884
  %.641612 = phi ptr [ %.631611, %884 ], [ %4, %887 ]
  %.631520 = phi i64 [ %.621519, %884 ], [ %37, %887 ]
  %.691421 = phi ptr [ %.681420, %884 ], [ %1, %887 ]
  %.711313 = phi i64 [ %.701312, %884 ], [ %29, %887 ]
  %.691204 = phi i32 [ %.681203, %884 ], [ %35, %887 ]
  %.681093 = phi i32 [ %.671092, %884 ], [ %33, %887 ]
  %.67996 = phi i32 [ %.66995, %884 ], [ %31, %887 ]
  %.71 = phi i32 [ %.70, %884 ], [ %27, %887 ]
  %886 = and i32 %6, 2
  %.not1790 = icmp eq i32 %886, 0
  br i1 %.not1790, label %891, label %.sink.split2148

887:                                              ; preds = %25
  %888 = icmp sgt i64 %10, 0
  br i1 %888, label %.sink.split2139, label %885

.sink.split2139:                                  ; preds = %884, %887
  %.sink2141 = phi ptr [ %1, %887 ], [ %.681420, %884 ]
  %.651613.ph = phi ptr [ %4, %887 ], [ %.631611, %884 ]
  %.641521.ph = phi i64 [ %37, %887 ], [ %.621519, %884 ]
  %.721314.ph = phi i64 [ %29, %887 ], [ %.701312, %884 ]
  %.701205.ph = phi i32 [ %35, %887 ], [ %.681203, %884 ]
  %.691094.ph = phi i32 [ %33, %887 ], [ %.671092, %884 ]
  %.68997.ph = phi i32 [ %31, %887 ], [ %.66995, %884 ]
  %.72.ph = phi i32 [ %27, %887 ], [ %.70, %884 ]
  %889 = getelementptr inbounds i8, ptr %.sink2141, i64 1
  %890 = load i8, ptr %.sink2141, align 1, !tbaa !25
  br label %891

891:                                              ; preds = %.sink.split2139, %885
  %.651613 = phi ptr [ %.641612, %885 ], [ %.651613.ph, %.sink.split2139 ]
  %.641521 = phi i64 [ %.631520, %885 ], [ %.641521.ph, %.sink.split2139 ]
  %.701422 = phi ptr [ %.691421, %885 ], [ %889, %.sink.split2139 ]
  %.721314 = phi i64 [ %.711313, %885 ], [ %.721314.ph, %.sink.split2139 ]
  %.701205 = phi i32 [ %.691204, %885 ], [ %.701205.ph, %.sink.split2139 ]
  %.691094 = phi i32 [ %.681093, %885 ], [ %.691094.ph, %.sink.split2139 ]
  %.68997 = phi i32 [ %.67996, %885 ], [ %.68997.ph, %.sink.split2139 ]
  %.72 = phi i32 [ %.71, %885 ], [ %.72.ph, %.sink.split2139 ]
  %.0899.shrunk = phi i8 [ 0, %885 ], [ %890, %.sink.split2139 ]
  %892 = zext i8 %.0899.shrunk to i64
  %893 = zext nneg i32 %.72 to i64
  %894 = shl i64 %892, %893
  %895 = or i64 %894, %.721314
  %896 = add i32 %.72, 8
  %897 = icmp ult i32 %896, %.701205
  br i1 %897, label %884, label %898, !llvm.loop !64

898:                                              ; preds = %891, %882
  %.661614 = phi ptr [ %.651613, %891 ], [ %.621610, %882 ]
  %.651522 = phi i64 [ %.641521, %891 ], [ %.611518, %882 ]
  %.711423 = phi ptr [ %.701422, %891 ], [ %.671419, %882 ]
  %.731315 = phi i64 [ %895, %891 ], [ %.691311, %882 ]
  %.711206 = phi i32 [ %.701205, %891 ], [ %879, %882 ]
  %.701095 = phi i32 [ %.691094, %891 ], [ %881, %882 ]
  %.69998 = phi i32 [ %.68997, %891 ], [ %.65994, %882 ]
  %.73 = phi i32 [ %896, %891 ], [ %.69, %882 ]
  %notmask1791 = shl nsw i32 -1, %.711206
  %899 = xor i32 %notmask1791, -1
  %900 = trunc i64 %.731315 to i32
  %901 = and i32 %899, %900
  %902 = zext nneg i32 %.711206 to i64
  %903 = lshr i64 %.731315, %902
  %904 = sub i32 %.73, %.711206
  %905 = add i32 %901, %.701095
  br label %906

906:                                              ; preds = %875, %898
  %.671615 = phi ptr [ %.661614, %898 ], [ %.621610, %875 ]
  %.661523 = phi i64 [ %.651522, %898 ], [ %.611518, %875 ]
  %.721424 = phi ptr [ %.711423, %898 ], [ %.671419, %875 ]
  %.741316 = phi i64 [ %903, %898 ], [ %.691311, %875 ]
  %.721207 = phi i32 [ %.711206, %898 ], [ 0, %875 ]
  %.711096 = phi i32 [ %905, %898 ], [ %881, %875 ]
  %.70999 = phi i32 [ %.69998, %898 ], [ %.65994, %875 ]
  %.74 = phi i32 [ %904, %898 ], [ %.69, %875 ]
  %907 = icmp ult i32 %.74, 15
  br i1 %907, label %908, label %971

908:                                              ; preds = %906
  %909 = ptrtoint ptr %11 to i64
  %910 = ptrtoint ptr %.721424 to i64
  %911 = sub i64 %909, %910
  %912 = icmp slt i64 %911, 2
  br i1 %912, label %913, label %956

913:                                              ; preds = %908, %949
  %.681616 = phi ptr [ %.671615, %908 ], [ %.701618, %949 ]
  %.671524 = phi i64 [ %.661523, %908 ], [ %.691526, %949 ]
  %.731425 = phi ptr [ %.721424, %908 ], [ %.751427, %949 ]
  %.751317 = phi i64 [ %.741316, %908 ], [ %953, %949 ]
  %.731208 = phi i32 [ %.721207, %908 ], [ %.751210, %949 ]
  %.721097 = phi i32 [ %.711096, %908 ], [ %.741099, %949 ]
  %.711000 = phi i32 [ %.70999, %908 ], [ %.731002, %949 ]
  %.75 = phi i32 [ %.74, %908 ], [ %954, %949 ]
  %914 = getelementptr inbounds i8, ptr %0, i64 3848
  %915 = and i64 %.751317, 1023
  %916 = getelementptr inbounds [1024 x i16], ptr %914, i64 0, i64 %915
  %917 = load i16, ptr %916, align 2, !tbaa !46
  %918 = sext i16 %917 to i32
  %919 = icmp sgt i16 %917, -1
  br i1 %919, label %920, label %922

920:                                              ; preds = %913
  %.not1792 = icmp ult i16 %917, 512
  %921 = lshr i32 %918, 9
  %.not1793 = icmp ult i32 %.75, %921
  %or.cond1849 = or i1 %.not1792, %.not1793
  br i1 %or.cond1849, label %942, label %971

922:                                              ; preds = %913
  %923 = icmp ugt i32 %.75, 10
  br i1 %923, label %.preheader1902, label %942

.preheader1902:                                   ; preds = %922
  %924 = getelementptr inbounds i8, ptr %0, i64 5896
  br label %925

925:                                              ; preds = %.preheader1902, %925
  %.0896 = phi i32 [ %935, %925 ], [ %918, %.preheader1902 ]
  %.0893 = phi i32 [ %928, %925 ], [ 10, %.preheader1902 ]
  %926 = xor i32 %.0896, -1
  %927 = sext i32 %926 to i64
  %928 = add i32 %.0893, 1
  %929 = zext nneg i32 %.0893 to i64
  %930 = lshr i64 %.751317, %929
  %931 = and i64 %930, 1
  %932 = add nsw i64 %931, %927
  %933 = getelementptr inbounds [576 x i16], ptr %924, i64 0, i64 %932
  %934 = load i16, ptr %933, align 2, !tbaa !46
  %935 = sext i16 %934 to i32
  %936 = icmp slt i16 %934, 0
  %937 = add i32 %.0893, 2
  %938 = icmp uge i32 %.75, %937
  %939 = and i1 %936, %938
  br i1 %939, label %925, label %940, !llvm.loop !65

940:                                              ; preds = %925
  %941 = icmp sgt i16 %934, -1
  br i1 %941, label %971, label %942

942:                                              ; preds = %920, %940, %922
  %.not1794 = icmp ult ptr %.731425, %11
  br i1 %.not1794, label %.sink.split2142, label %943

943:                                              ; preds = %945, %942
  %.691617 = phi ptr [ %.681616, %942 ], [ %4, %945 ]
  %.681525 = phi i64 [ %.671524, %942 ], [ %37, %945 ]
  %.741426 = phi ptr [ %.731425, %942 ], [ %1, %945 ]
  %.761318 = phi i64 [ %.751317, %942 ], [ %29, %945 ]
  %.741209 = phi i32 [ %.731208, %942 ], [ %35, %945 ]
  %.731098 = phi i32 [ %.721097, %942 ], [ %33, %945 ]
  %.721001 = phi i32 [ %.711000, %942 ], [ %31, %945 ]
  %.76 = phi i32 [ %.75, %942 ], [ %27, %945 ]
  %944 = and i32 %6, 2
  %.not1795 = icmp eq i32 %944, 0
  br i1 %.not1795, label %949, label %.sink.split2148

945:                                              ; preds = %25
  %946 = icmp sgt i64 %10, 0
  br i1 %946, label %.sink.split2142, label %943

.sink.split2142:                                  ; preds = %942, %945
  %.sink2144 = phi ptr [ %1, %945 ], [ %.731425, %942 ]
  %.701618.ph = phi ptr [ %4, %945 ], [ %.681616, %942 ]
  %.691526.ph = phi i64 [ %37, %945 ], [ %.671524, %942 ]
  %.771319.ph = phi i64 [ %29, %945 ], [ %.751317, %942 ]
  %.751210.ph = phi i32 [ %35, %945 ], [ %.731208, %942 ]
  %.741099.ph = phi i32 [ %33, %945 ], [ %.721097, %942 ]
  %.731002.ph = phi i32 [ %31, %945 ], [ %.711000, %942 ]
  %.77.ph = phi i32 [ %27, %945 ], [ %.75, %942 ]
  %947 = getelementptr inbounds i8, ptr %.sink2144, i64 1
  %948 = load i8, ptr %.sink2144, align 1, !tbaa !25
  br label %949

949:                                              ; preds = %.sink.split2142, %943
  %.701618 = phi ptr [ %.691617, %943 ], [ %.701618.ph, %.sink.split2142 ]
  %.691526 = phi i64 [ %.681525, %943 ], [ %.691526.ph, %.sink.split2142 ]
  %.751427 = phi ptr [ %.741426, %943 ], [ %947, %.sink.split2142 ]
  %.771319 = phi i64 [ %.761318, %943 ], [ %.771319.ph, %.sink.split2142 ]
  %.751210 = phi i32 [ %.741209, %943 ], [ %.751210.ph, %.sink.split2142 ]
  %.741099 = phi i32 [ %.731098, %943 ], [ %.741099.ph, %.sink.split2142 ]
  %.731002 = phi i32 [ %.721001, %943 ], [ %.731002.ph, %.sink.split2142 ]
  %.77 = phi i32 [ %.76, %943 ], [ %.77.ph, %.sink.split2142 ]
  %.0892.shrunk = phi i8 [ 0, %943 ], [ %948, %.sink.split2142 ]
  %950 = zext i8 %.0892.shrunk to i64
  %951 = zext nneg i32 %.77 to i64
  %952 = shl i64 %950, %951
  %953 = or i64 %952, %.771319
  %954 = add i32 %.77, 8
  %955 = icmp ult i32 %954, 15
  br i1 %955, label %913, label %971, !llvm.loop !66

956:                                              ; preds = %908
  %957 = load i8, ptr %.721424, align 1, !tbaa !25
  %958 = zext i8 %957 to i64
  %959 = zext nneg i32 %.74 to i64
  %960 = shl nuw nsw i64 %958, %959
  %961 = getelementptr inbounds i8, ptr %.721424, i64 1
  %962 = load i8, ptr %961, align 1, !tbaa !25
  %963 = zext i8 %962 to i64
  %964 = add nuw nsw i32 %.74, 8
  %965 = zext nneg i32 %964 to i64
  %966 = shl nuw nsw i64 %963, %965
  %967 = or i64 %960, %966
  %968 = or i64 %967, %.741316
  %969 = getelementptr inbounds i8, ptr %.721424, i64 2
  %970 = or disjoint i32 %.74, 16
  br label %971

971:                                              ; preds = %920, %956, %940, %949, %906
  %.711619 = phi ptr [ %.701618, %949 ], [ %.681616, %940 ], [ %.671615, %956 ], [ %.671615, %906 ], [ %.681616, %920 ]
  %.701527 = phi i64 [ %.691526, %949 ], [ %.671524, %940 ], [ %.661523, %956 ], [ %.661523, %906 ], [ %.671524, %920 ]
  %.761428 = phi ptr [ %.751427, %949 ], [ %.731425, %940 ], [ %969, %956 ], [ %.721424, %906 ], [ %.731425, %920 ]
  %.781320 = phi i64 [ %953, %949 ], [ %.751317, %940 ], [ %968, %956 ], [ %.741316, %906 ], [ %.751317, %920 ]
  %.751100 = phi i32 [ %.741099, %949 ], [ %.721097, %940 ], [ %.711096, %956 ], [ %.711096, %906 ], [ %.721097, %920 ]
  %.78 = phi i32 [ %954, %949 ], [ %.75, %940 ], [ %970, %956 ], [ %.74, %906 ], [ %.75, %920 ]
  %972 = getelementptr inbounds i8, ptr %0, i64 3848
  %973 = and i64 %.781320, 1023
  %974 = getelementptr inbounds [1024 x i16], ptr %972, i64 0, i64 %973
  %975 = load i16, ptr %974, align 2, !tbaa !46
  %976 = sext i16 %975 to i32
  %977 = icmp sgt i16 %975, -1
  br i1 %977, label %979, label %.preheader1900

.preheader1900:                                   ; preds = %971
  %978 = getelementptr inbounds i8, ptr %0, i64 5896
  br label %982

979:                                              ; preds = %971
  %980 = lshr i32 %976, 9
  %981 = and i32 %976, 511
  br label %.loopexit1901

982:                                              ; preds = %.preheader1900, %982
  %.1897 = phi i32 [ %992, %982 ], [ %976, %.preheader1900 ]
  %.1894 = phi i32 [ %985, %982 ], [ 10, %.preheader1900 ]
  %983 = xor i32 %.1897, -1
  %984 = sext i32 %983 to i64
  %985 = add i32 %.1894, 1
  %986 = zext nneg i32 %.1894 to i64
  %987 = lshr i64 %.781320, %986
  %988 = and i64 %987, 1
  %989 = add nsw i64 %988, %984
  %990 = getelementptr inbounds [576 x i16], ptr %978, i64 0, i64 %989
  %991 = load i16, ptr %990, align 2, !tbaa !46
  %992 = sext i16 %991 to i32
  %993 = icmp slt i16 %991, 0
  br i1 %993, label %982, label %.loopexit1901, !llvm.loop !67

.loopexit1901:                                    ; preds = %982, %979
  %.2898 = phi i32 [ %981, %979 ], [ %992, %982 ]
  %.2895 = phi i32 [ %980, %979 ], [ %985, %982 ]
  %994 = zext nneg i32 %.2895 to i64
  %995 = lshr i64 %.781320, %994
  %996 = sub i32 %.78, %.2895
  %997 = zext nneg i32 %.2898 to i64
  %998 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_extra, i64 0, i64 %997
  %999 = load i32, ptr %998, align 4, !tbaa !36
  %1000 = getelementptr inbounds [32 x i32], ptr @tinfl_decompress.s_dist_base, i64 0, i64 %997
  %1001 = load i32, ptr %1000, align 4, !tbaa !36
  %.not1796 = icmp eq i32 %999, 0
  br i1 %.not1796, label %1026, label %1002

1002:                                             ; preds = %.loopexit1901
  %1003 = icmp ult i32 %996, %999
  br i1 %1003, label %1004, label %1018

1004:                                             ; preds = %1002, %1011
  %.721620 = phi ptr [ %.711619, %1002 ], [ %.741622, %1011 ]
  %.711528 = phi i64 [ %.701527, %1002 ], [ %.731530, %1011 ]
  %.771429 = phi ptr [ %.761428, %1002 ], [ %.791431, %1011 ]
  %.791321 = phi i64 [ %995, %1002 ], [ %1015, %1011 ]
  %.761211 = phi i32 [ %999, %1002 ], [ %.781213, %1011 ]
  %.761101 = phi i32 [ %.751100, %1002 ], [ %.781103, %1011 ]
  %.741003 = phi i32 [ %1001, %1002 ], [ %.761005, %1011 ]
  %.79 = phi i32 [ %996, %1002 ], [ %1016, %1011 ]
  %.not1797 = icmp ult ptr %.771429, %11
  br i1 %.not1797, label %.sink.split2145, label %1005

1005:                                             ; preds = %1007, %1004
  %.731621 = phi ptr [ %.721620, %1004 ], [ %4, %1007 ]
  %.721529 = phi i64 [ %.711528, %1004 ], [ %37, %1007 ]
  %.781430 = phi ptr [ %.771429, %1004 ], [ %1, %1007 ]
  %.801322 = phi i64 [ %.791321, %1004 ], [ %29, %1007 ]
  %.771212 = phi i32 [ %.761211, %1004 ], [ %35, %1007 ]
  %.771102 = phi i32 [ %.761101, %1004 ], [ %33, %1007 ]
  %.751004 = phi i32 [ %.741003, %1004 ], [ %31, %1007 ]
  %.80 = phi i32 [ %.79, %1004 ], [ %27, %1007 ]
  %1006 = and i32 %6, 2
  %.not1798 = icmp eq i32 %1006, 0
  br i1 %.not1798, label %1011, label %.sink.split2148

1007:                                             ; preds = %25
  %1008 = icmp sgt i64 %10, 0
  br i1 %1008, label %.sink.split2145, label %1005

.sink.split2145:                                  ; preds = %1004, %1007
  %.sink2147 = phi ptr [ %1, %1007 ], [ %.771429, %1004 ]
  %.741622.ph = phi ptr [ %4, %1007 ], [ %.721620, %1004 ]
  %.731530.ph = phi i64 [ %37, %1007 ], [ %.711528, %1004 ]
  %.811323.ph = phi i64 [ %29, %1007 ], [ %.791321, %1004 ]
  %.781213.ph = phi i32 [ %35, %1007 ], [ %.761211, %1004 ]
  %.781103.ph = phi i32 [ %33, %1007 ], [ %.761101, %1004 ]
  %.761005.ph = phi i32 [ %31, %1007 ], [ %.741003, %1004 ]
  %.81.ph = phi i32 [ %27, %1007 ], [ %.79, %1004 ]
  %1009 = getelementptr inbounds i8, ptr %.sink2147, i64 1
  %1010 = load i8, ptr %.sink2147, align 1, !tbaa !25
  br label %1011

1011:                                             ; preds = %.sink.split2145, %1005
  %.741622 = phi ptr [ %.731621, %1005 ], [ %.741622.ph, %.sink.split2145 ]
  %.731530 = phi i64 [ %.721529, %1005 ], [ %.731530.ph, %.sink.split2145 ]
  %.791431 = phi ptr [ %.781430, %1005 ], [ %1009, %.sink.split2145 ]
  %.811323 = phi i64 [ %.801322, %1005 ], [ %.811323.ph, %.sink.split2145 ]
  %.781213 = phi i32 [ %.771212, %1005 ], [ %.781213.ph, %.sink.split2145 ]
  %.781103 = phi i32 [ %.771102, %1005 ], [ %.781103.ph, %.sink.split2145 ]
  %.761005 = phi i32 [ %.751004, %1005 ], [ %.761005.ph, %.sink.split2145 ]
  %.81 = phi i32 [ %.80, %1005 ], [ %.81.ph, %.sink.split2145 ]
  %.0888.shrunk = phi i8 [ 0, %1005 ], [ %1010, %.sink.split2145 ]
  %1012 = zext i8 %.0888.shrunk to i64
  %1013 = zext nneg i32 %.81 to i64
  %1014 = shl i64 %1012, %1013
  %1015 = or i64 %1014, %.811323
  %1016 = add i32 %.81, 8
  %1017 = icmp ult i32 %1016, %.781213
  br i1 %1017, label %1004, label %1018, !llvm.loop !68

1018:                                             ; preds = %1011, %1002
  %.751623 = phi ptr [ %.741622, %1011 ], [ %.711619, %1002 ]
  %.801432 = phi ptr [ %.791431, %1011 ], [ %.761428, %1002 ]
  %.821324 = phi i64 [ %1015, %1011 ], [ %995, %1002 ]
  %.791214 = phi i32 [ %.781213, %1011 ], [ %999, %1002 ]
  %.791104 = phi i32 [ %.781103, %1011 ], [ %.751100, %1002 ]
  %.771006 = phi i32 [ %.761005, %1011 ], [ %1001, %1002 ]
  %.82 = phi i32 [ %1016, %1011 ], [ %996, %1002 ]
  %notmask1799 = shl nsw i32 -1, %.791214
  %1019 = xor i32 %notmask1799, -1
  %1020 = trunc i64 %.821324 to i32
  %1021 = and i32 %1019, %1020
  %1022 = zext nneg i32 %.791214 to i64
  %1023 = lshr i64 %.821324, %1022
  %1024 = sub i32 %.82, %.791214
  %1025 = add i32 %.771006, %1021
  br label %1026

1026:                                             ; preds = %1018, %.loopexit1901
  %.761624 = phi ptr [ %.751623, %1018 ], [ %.711619, %.loopexit1901 ]
  %.811433 = phi ptr [ %.801432, %1018 ], [ %.761428, %.loopexit1901 ]
  %.831325 = phi i64 [ %1023, %1018 ], [ %995, %.loopexit1901 ]
  %.801215 = phi i32 [ %.791214, %1018 ], [ 0, %.loopexit1901 ]
  %.801105 = phi i32 [ %.791104, %1018 ], [ %.751100, %.loopexit1901 ]
  %.781007 = phi i32 [ %1025, %1018 ], [ %1001, %.loopexit1901 ]
  %.83 = phi i32 [ %1024, %1018 ], [ %996, %.loopexit1901 ]
  %1027 = ptrtoint ptr %.761624 to i64
  %1028 = sub i64 %1027, %16
  %1029 = zext i32 %.781007 to i64
  %1030 = icmp uge i64 %1028, %1029
  %brmerge = or i1 %.not, %1030
  br i1 %brmerge, label %1031, label %.sink.split2148

1031:                                             ; preds = %1026
  %1032 = sub i64 %1028, %1029
  %1033 = and i64 %1032, %20
  %1034 = getelementptr inbounds i8, ptr %3, i64 %1033
  %1035 = icmp ugt ptr %.761624, %1034
  %1036 = select i1 %1035, ptr %.761624, ptr %1034
  %1037 = zext i32 %.801105 to i64
  %1038 = getelementptr inbounds i8, ptr %1036, i64 %1037
  %1039 = icmp ugt ptr %1038, %13
  br i1 %1039, label %1040, label %1052

1040:                                             ; preds = %1031, %1044
  %.781626 = phi ptr [ %1051, %1044 ], [ %.761624, %1031 ]
  %.751532 = phi i64 [ %1045, %1044 ], [ %1028, %1031 ]
  %.831435 = phi ptr [ %.841436, %1044 ], [ %.811433, %1031 ]
  %.851327 = phi i64 [ %.861328, %1044 ], [ %.831325, %1031 ]
  %.821217 = phi i32 [ %.831218, %1044 ], [ %.801215, %1031 ]
  %.821107 = phi i32 [ %.831108, %1044 ], [ %.801105, %1031 ]
  %.801009 = phi i32 [ %.811010, %1044 ], [ %.781007, %1031 ]
  %.85 = phi i32 [ %.86, %1044 ], [ %.83, %1031 ]
  %1041 = add i32 %.821107, -1
  %.not1802 = icmp eq i32 %.821107, 0
  br i1 %.not1802, label %.preheader2241, label %1042

1042:                                             ; preds = %1040, %1043
  %.791627 = phi ptr [ %4, %1043 ], [ %.781626, %1040 ]
  %.761533 = phi i64 [ %37, %1043 ], [ %.751532, %1040 ]
  %.841436 = phi ptr [ %1, %1043 ], [ %.831435, %1040 ]
  %.861328 = phi i64 [ %29, %1043 ], [ %.851327, %1040 ]
  %.831218 = phi i32 [ %35, %1043 ], [ %.821217, %1040 ]
  %.831108 = phi i32 [ %33, %1043 ], [ %1041, %1040 ]
  %.811010 = phi i32 [ %31, %1043 ], [ %.801009, %1040 ]
  %.86 = phi i32 [ %27, %1043 ], [ %.85, %1040 ]
  %.not1803 = icmp ult ptr %.791627, %13
  br i1 %.not1803, label %1044, label %.sink.split2148

1043:                                             ; preds = %25
  br label %1042, !llvm.loop !69

1044:                                             ; preds = %1042
  %1045 = add i64 %.761533, 1
  %1046 = zext i32 %.811010 to i64
  %1047 = sub i64 %.761533, %1046
  %1048 = and i64 %1047, %20
  %1049 = getelementptr inbounds i8, ptr %3, i64 %1048
  %1050 = load i8, ptr %1049, align 1, !tbaa !25
  %1051 = getelementptr inbounds i8, ptr %.791627, i64 1
  store i8 %1050, ptr %.791627, align 1, !tbaa !25
  br label %1040, !llvm.loop !70

1052:                                             ; preds = %1031
  %1053 = icmp ult i32 %.801105, 9
  %.not1800 = icmp ugt i32 %.801105, %.781007
  %or.cond1851 = or i1 %1053, %.not1800
  br i1 %or.cond1851, label %.thread1880.preheader, label %1054

.thread1880.preheader:                            ; preds = %.loopexit2214, %1052
  %.841632.ph = phi ptr [ %.lcssa2172, %.loopexit2214 ], [ %.761624, %1052 ]
  %.851110.ph = phi i32 [ %1090, %.loopexit2214 ], [ %.801105, %1052 ]
  %.2920.ph = phi ptr [ %.lcssa2171, %.loopexit2214 ], [ %1034, %1052 ]
  br label %.thread1880

1054:                                             ; preds = %1052
  %1055 = and i32 %.801105, -8
  %1056 = zext i32 %1055 to i64
  %1057 = getelementptr inbounds i8, ptr %1034, i64 %1056
  %1058 = add i64 %1033, %16
  %1059 = add i64 %1058, %1056
  %1060 = add i64 %1058, 8
  %umax2185 = tail call i64 @llvm.umax.i64(i64 %1059, i64 %1060)
  %1061 = xor i64 %1033, -1
  %1062 = add i64 %umax2185, %1061
  %1063 = sub i64 %1062, %16
  %1064 = lshr i64 %1063, 3
  %1065 = add nuw nsw i64 %1064, 1
  %min.iters.check = icmp ult i64 %1063, 232
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %1054
  %1066 = add i64 %1033, %16
  %1067 = add i64 %1066, %1056
  %1068 = add i64 %1066, 8
  %umax = tail call i64 @llvm.umax.i64(i64 %1067, i64 %1068)
  %1069 = xor i64 %1033, -1
  %1070 = add i64 %umax, %1069
  %1071 = sub i64 %1070, %16
  %1072 = and i64 %1071, -8
  %1073 = add i64 %1072, 8
  %scevgep2183 = getelementptr i8, ptr %.761624, i64 %1073
  %1074 = getelementptr i8, ptr %3, i64 %1033
  %1075 = getelementptr i8, ptr %1074, i64 %1072
  %scevgep2184 = getelementptr i8, ptr %1075, i64 8
  %bound0 = icmp ult ptr %.761624, %scevgep2184
  %bound1 = icmp ult ptr %1034, %scevgep2183
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %1065, 4611686018427387900
  %1076 = shl i64 %n.vec, 3
  %ind.end = getelementptr i8, ptr %.761624, i64 %1076
  %1077 = shl i64 %n.vec, 3
  %ind.end2186 = getelementptr i8, ptr %1034, i64 %1077
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = shl i64 %index, 3
  %1078 = or disjoint i64 %offset.idx, 16
  %next.gep = getelementptr i8, ptr %.761624, i64 %offset.idx
  %next.gep2188 = getelementptr i8, ptr %.761624, i64 %1078
  %offset.idx2189 = shl i64 %index, 3
  %1079 = or disjoint i64 %offset.idx2189, 16
  %next.gep2190 = getelementptr i8, ptr %1034, i64 %offset.idx2189
  %next.gep2191 = getelementptr i8, ptr %1034, i64 %1079
  %wide.vec = load <4 x i32>, ptr %next.gep2190, align 4, !tbaa !36
  %wide.vec2192 = load <4 x i32>, ptr %next.gep2191, align 4, !tbaa !36
  store <4 x i32> %wide.vec, ptr %next.gep, align 4, !tbaa !36
  store <4 x i32> %wide.vec2192, ptr %next.gep2188, align 4, !tbaa !36
  %index.next = add nuw i64 %index, 4
  %1080 = icmp eq i64 %index.next, %n.vec
  br i1 %1080, label %middle.block, label %vector.body, !llvm.loop !71

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %1065, %n.vec
  %cmo = shl i64 %n.vec, 3
  %1081 = add i64 %cmo, -8
  %ind.escape = getelementptr i8, ptr %.761624, i64 %1081
  %cmo2197 = shl i64 %n.vec, 3
  %1082 = getelementptr i8, ptr %1034, i64 %cmo2197
  %ind.escape2198 = getelementptr i8, ptr %1082, i64 -8
  br i1 %cmp.n, label %.loopexit2214, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %1054
  %.801628.ph = phi ptr [ %.761624, %vector.memcheck ], [ %.761624, %1054 ], [ %ind.end, %middle.block ]
  %.0918.ph = phi ptr [ %1034, %vector.memcheck ], [ %1034, %1054 ], [ %ind.end2186, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.801628 = phi ptr [ %1087, %scalar.ph ], [ %.801628.ph, %scalar.ph.preheader ]
  %.0918 = phi ptr [ %1088, %scalar.ph ], [ %.0918.ph, %scalar.ph.preheader ]
  %1083 = load i32, ptr %.0918, align 4, !tbaa !36
  store i32 %1083, ptr %.801628, align 4, !tbaa !36
  %1084 = getelementptr inbounds i8, ptr %.0918, i64 4
  %1085 = load i32, ptr %1084, align 4, !tbaa !36
  %1086 = getelementptr inbounds i8, ptr %.801628, i64 4
  store i32 %1085, ptr %1086, align 4, !tbaa !36
  %1087 = getelementptr inbounds i8, ptr %.801628, i64 8
  %1088 = getelementptr inbounds i8, ptr %.0918, i64 8
  %1089 = icmp ult ptr %1088, %1057
  br i1 %1089, label %scalar.ph, label %.loopexit2214, !llvm.loop !73

.loopexit2214:                                    ; preds = %scalar.ph, %middle.block
  %.801628.lcssa = phi ptr [ %ind.escape, %middle.block ], [ %.801628, %scalar.ph ]
  %.0918.lcssa = phi ptr [ %ind.escape2198, %middle.block ], [ %.0918, %scalar.ph ]
  %.lcssa2172 = phi ptr [ %ind.end, %middle.block ], [ %1087, %scalar.ph ]
  %.lcssa2171 = phi ptr [ %ind.end2186, %middle.block ], [ %1088, %scalar.ph ]
  %1090 = and i32 %.801105, 7
  %1091 = icmp ult i32 %1090, 3
  br i1 %1091, label %1092, label %.thread1880.preheader

1092:                                             ; preds = %.loopexit2214
  %.not1801 = icmp eq i32 %1090, 0
  br i1 %.not1801, label %.preheader2241, label %1093

1093:                                             ; preds = %1092
  %1094 = load i8, ptr %.lcssa2171, align 1, !tbaa !25
  store i8 %1094, ptr %.lcssa2172, align 1, !tbaa !25
  %1095 = icmp eq i32 %1090, 2
  br i1 %1095, label %1096, label %1100

1096:                                             ; preds = %1093
  %1097 = getelementptr inbounds i8, ptr %.0918.lcssa, i64 9
  %1098 = load i8, ptr %1097, align 1, !tbaa !25
  %1099 = getelementptr inbounds i8, ptr %.801628.lcssa, i64 9
  store i8 %1098, ptr %1099, align 1, !tbaa !25
  br label %1100

1100:                                             ; preds = %1096, %1093
  %1101 = zext nneg i32 %1090 to i64
  %1102 = getelementptr inbounds i8, ptr %.lcssa2172, i64 %1101
  br label %.preheader2241

.thread1880:                                      ; preds = %.thread1880.preheader, %.thread1880
  %.841632 = phi ptr [ %1110, %.thread1880 ], [ %.841632.ph, %.thread1880.preheader ]
  %.851110 = phi i32 [ %1112, %.thread1880 ], [ %.851110.ph, %.thread1880.preheader ]
  %.2920 = phi ptr [ %1111, %.thread1880 ], [ %.2920.ph, %.thread1880.preheader ]
  %1103 = load i8, ptr %.2920, align 1, !tbaa !25
  store i8 %1103, ptr %.841632, align 1, !tbaa !25
  %1104 = getelementptr inbounds i8, ptr %.2920, i64 1
  %1105 = load i8, ptr %1104, align 1, !tbaa !25
  %1106 = getelementptr inbounds i8, ptr %.841632, i64 1
  store i8 %1105, ptr %1106, align 1, !tbaa !25
  %1107 = getelementptr inbounds i8, ptr %.2920, i64 2
  %1108 = load i8, ptr %1107, align 1, !tbaa !25
  %1109 = getelementptr inbounds i8, ptr %.841632, i64 2
  store i8 %1108, ptr %1109, align 1, !tbaa !25
  %1110 = getelementptr inbounds i8, ptr %.841632, i64 3
  %1111 = getelementptr inbounds i8, ptr %.2920, i64 3
  %1112 = add i32 %.851110, -3
  %1113 = icmp sgt i32 %1112, 2
  br i1 %1113, label %.thread1880, label %1114, !llvm.loop !74

1114:                                             ; preds = %.thread1880
  %1115 = icmp sgt i32 %1112, 0
  br i1 %1115, label %1116, label %.preheader2241

1116:                                             ; preds = %1114
  %1117 = load i8, ptr %1111, align 1, !tbaa !25
  store i8 %1117, ptr %1110, align 1, !tbaa !25
  %1118 = icmp eq i32 %1112, 2
  br i1 %1118, label %1119, label %1123

1119:                                             ; preds = %1116
  %1120 = getelementptr inbounds i8, ptr %.2920, i64 4
  %1121 = load i8, ptr %1120, align 1, !tbaa !25
  %1122 = getelementptr inbounds i8, ptr %.841632, i64 4
  store i8 %1121, ptr %1122, align 1, !tbaa !25
  br label %1123

1123:                                             ; preds = %1119, %1116
  %1124 = zext nneg i32 %1112 to i64
  %1125 = getelementptr inbounds i8, ptr %1110, i64 %1124
  br label %.preheader2241

1126:                                             ; preds = %241, %.thread1873
  %.861634 = phi ptr [ %.621610, %.thread1873 ], [ %.231571, %241 ]
  %.771534 = phi i64 [ %.611518, %.thread1873 ], [ %.231480, %241 ]
  %.851437 = phi ptr [ %.671419, %.thread1873 ], [ %.281380, %241 ]
  %.871329 = phi i64 [ %.691311, %.thread1873 ], [ %.291271, %241 ]
  %.841219 = phi i32 [ %.671202, %.thread1873 ], [ %.291164, %241 ]
  %.861111 = phi i32 [ 256, %.thread1873 ], [ 0, %241 ]
  %.821011 = phi i32 [ %.65994, %.thread1873 ], [ %.28957, %241 ]
  %.87 = phi i32 [ %.69, %.thread1873 ], [ %.29, %241 ]
  %1127 = getelementptr inbounds i8, ptr %0, i64 20
  %1128 = load i32, ptr %1127, align 4, !tbaa !27
  %1129 = and i32 %1128, 1
  %.not1819 = icmp eq i32 %1129, 0
  br i1 %.not1819, label %90, label %1130, !llvm.loop !75

1130:                                             ; preds = %1126
  %1131 = and i32 %6, 1
  %.not1820 = icmp eq i32 %1131, 0
  br i1 %.not1820, label %.sink.split2148, label %1145

1132:                                             ; preds = %1134
  %1133 = and i32 %6, 2
  %.not1766 = icmp eq i32 %1133, 0
  br i1 %.not1766, label %1140, label %.sink.split2148

1134:                                             ; preds = %25
  %1135 = icmp sgt i64 %10, 0
  br i1 %1135, label %1136, label %1132

1136:                                             ; preds = %1134
  %1137 = getelementptr inbounds i8, ptr %1, i64 1
  %1138 = load i8, ptr %1, align 1, !tbaa !25
  %1139 = zext i8 %1138 to i64
  br label %1140

1140:                                             ; preds = %1132, %1136
  %.881440 = phi ptr [ %1137, %1136 ], [ %1, %1132 ]
  %.0886 = phi i64 [ %1139, %1136 ], [ 0, %1132 ]
  %1141 = zext nneg i32 %27 to i64
  %1142 = shl i64 %.0886, %1141
  %1143 = or i64 %1142, %29
  %1144 = add i32 %27, 8
  br label %1145

1145:                                             ; preds = %1130, %1140
  %.901638 = phi ptr [ %4, %1140 ], [ %.861634, %1130 ]
  %.811538 = phi i64 [ %37, %1140 ], [ %.771534, %1130 ]
  %.891441 = phi ptr [ %.881440, %1140 ], [ %.851437, %1130 ]
  %.911333 = phi i64 [ %1143, %1140 ], [ %.871329, %1130 ]
  %.881223 = phi i32 [ %35, %1140 ], [ %.841219, %1130 ]
  %.861015 = phi i32 [ %31, %1140 ], [ %.821011, %1130 ]
  %.91 = phi i32 [ %1144, %1140 ], [ %.87, %1130 ]
  %1146 = and i32 %.91, 7
  %1147 = zext nneg i32 %1146 to i64
  %1148 = lshr i64 %.911333, %1147
  %1149 = and i32 %.91, -8
  br label %1150

1150:                                             ; preds = %1195, %1145
  %.911639 = phi ptr [ %.971645, %1195 ], [ %.901638, %1145 ]
  %.821539 = phi i64 [ %.881545, %1195 ], [ %.811538, %1145 ]
  %.901442 = phi ptr [ %.961448, %1195 ], [ %.891441, %1145 ]
  %.921334 = phi i64 [ %.981340, %1195 ], [ %1148, %1145 ]
  %.891224 = phi i32 [ %.951230, %1195 ], [ %.881223, %1145 ]
  %.901115 = phi i32 [ %1200, %1195 ], [ 0, %1145 ]
  %.871016 = phi i32 [ %.931022, %1195 ], [ %.861015, %1145 ]
  %.92 = phi i32 [ %.98, %1195 ], [ %1149, %1145 ]
  %1151 = icmp ult i32 %.901115, 4
  br i1 %1151, label %1152, label %.sink.split2148

1152:                                             ; preds = %1150
  %.not1821 = icmp eq i32 %.92, 0
  br i1 %.not1821, label %1182, label %1153

1153:                                             ; preds = %1152
  %1154 = icmp ult i32 %.92, 8
  br i1 %1154, label %1155, label %1177

1155:                                             ; preds = %1153, %1171
  %.921640 = phi ptr [ %.911639, %1153 ], [ %.941642, %1171 ]
  %.831540 = phi i64 [ %.821539, %1153 ], [ %.851542, %1171 ]
  %.911443 = phi ptr [ %.901442, %1153 ], [ %.931445, %1171 ]
  %.931335 = phi i64 [ %.921334, %1153 ], [ %1174, %1171 ]
  %.901225 = phi i32 [ %.891224, %1153 ], [ %.921227, %1171 ]
  %.911116 = phi i32 [ %.901115, %1153 ], [ %.931118, %1171 ]
  %.881017 = phi i32 [ %.871016, %1153 ], [ %.901019, %1171 ]
  %.93 = phi i32 [ %.92, %1153 ], [ %1175, %1171 ]
  %.not1824 = icmp ult ptr %.911443, %11
  br i1 %.not1824, label %.thread1884, label %1156

1156:                                             ; preds = %1158, %1155
  %.931641 = phi ptr [ %.921640, %1155 ], [ %4, %1158 ]
  %.841541 = phi i64 [ %.831540, %1155 ], [ %37, %1158 ]
  %.921444 = phi ptr [ %.911443, %1155 ], [ %1, %1158 ]
  %.941336 = phi i64 [ %.931335, %1155 ], [ %29, %1158 ]
  %.911226 = phi i32 [ %.901225, %1155 ], [ %35, %1158 ]
  %.921117 = phi i32 [ %.911116, %1155 ], [ %33, %1158 ]
  %.891018 = phi i32 [ %.881017, %1155 ], [ %31, %1158 ]
  %.94 = phi i32 [ %.93, %1155 ], [ %27, %1158 ]
  %1157 = and i32 %6, 2
  %.not1825 = icmp eq i32 %1157, 0
  br i1 %.not1825, label %1171, label %.sink.split2148

1158:                                             ; preds = %25
  %1159 = icmp sgt i64 %10, 0
  br i1 %1159, label %1160, label %1156

1160:                                             ; preds = %1158
  %1161 = getelementptr inbounds i8, ptr %1, i64 1
  %1162 = load i8, ptr %1, align 1, !tbaa !25
  %1163 = zext i8 %1162 to i64
  br label %1171

.thread1884:                                      ; preds = %1155
  %1164 = getelementptr inbounds i8, ptr %.911443, i64 1
  %1165 = load i8, ptr %.911443, align 1, !tbaa !25
  %1166 = zext i8 %1165 to i64
  %1167 = zext nneg i32 %.93 to i64
  %1168 = shl nuw nsw i64 %1166, %1167
  %1169 = or i64 %1168, %.931335
  %1170 = add nuw nsw i32 %.93, 8
  br label %1177

1171:                                             ; preds = %1156, %1160
  %.941642 = phi ptr [ %4, %1160 ], [ %.931641, %1156 ]
  %.851542 = phi i64 [ %37, %1160 ], [ %.841541, %1156 ]
  %.931445 = phi ptr [ %1161, %1160 ], [ %.921444, %1156 ]
  %.951337 = phi i64 [ %29, %1160 ], [ %.941336, %1156 ]
  %.921227 = phi i32 [ %35, %1160 ], [ %.911226, %1156 ]
  %.931118 = phi i32 [ %33, %1160 ], [ %.921117, %1156 ]
  %.901019 = phi i32 [ %31, %1160 ], [ %.891018, %1156 ]
  %.95 = phi i32 [ %27, %1160 ], [ %.94, %1156 ]
  %.0884.shrunk = phi i64 [ %1163, %1160 ], [ 0, %1156 ]
  %1172 = zext nneg i32 %.95 to i64
  %1173 = shl i64 %.0884.shrunk, %1172
  %1174 = or i64 %1173, %.951337
  %1175 = add i32 %.95, 8
  %1176 = icmp ugt i32 %.95, -9
  br i1 %1176, label %1155, label %1177, !llvm.loop !76

1177:                                             ; preds = %.thread1884, %1171, %1153
  %.951643 = phi ptr [ %.941642, %1171 ], [ %.911639, %1153 ], [ %.921640, %.thread1884 ]
  %.861543 = phi i64 [ %.851542, %1171 ], [ %.821539, %1153 ], [ %.831540, %.thread1884 ]
  %.941446 = phi ptr [ %.931445, %1171 ], [ %.901442, %1153 ], [ %1164, %.thread1884 ]
  %.961338 = phi i64 [ %1174, %1171 ], [ %.921334, %1153 ], [ %1169, %.thread1884 ]
  %.931228 = phi i32 [ %.921227, %1171 ], [ %.891224, %1153 ], [ %.901225, %.thread1884 ]
  %.941119 = phi i32 [ %.931118, %1171 ], [ %.901115, %1153 ], [ %.911116, %.thread1884 ]
  %.911020 = phi i32 [ %.901019, %1171 ], [ %.871016, %1153 ], [ %.881017, %.thread1884 ]
  %.96 = phi i32 [ %1175, %1171 ], [ %.92, %1153 ], [ %1170, %.thread1884 ]
  %1178 = trunc i64 %.961338 to i32
  %1179 = and i32 %1178, 255
  %1180 = lshr i64 %.961338, 8
  %1181 = add i32 %.96, -8
  br label %1195

1182:                                             ; preds = %1152
  %.not1822 = icmp ult ptr %.901442, %11
  br i1 %.not1822, label %1191, label %1183

1183:                                             ; preds = %1185, %1182
  %.961644 = phi ptr [ %.911639, %1182 ], [ %4, %1185 ]
  %.871544 = phi i64 [ %.821539, %1182 ], [ %37, %1185 ]
  %.951447 = phi ptr [ %.901442, %1182 ], [ %1, %1185 ]
  %.971339 = phi i64 [ %.921334, %1182 ], [ %29, %1185 ]
  %.941229 = phi i32 [ %.891224, %1182 ], [ %35, %1185 ]
  %.951120 = phi i32 [ %.901115, %1182 ], [ %33, %1185 ]
  %.921021 = phi i32 [ %.871016, %1182 ], [ %31, %1185 ]
  %.97 = phi i32 [ 0, %1182 ], [ %27, %1185 ]
  %1184 = and i32 %6, 2
  %.not1823 = icmp eq i32 %1184, 0
  br i1 %.not1823, label %1195, label %.sink.split2148

1185:                                             ; preds = %25
  %1186 = icmp sgt i64 %10, 0
  br i1 %1186, label %1187, label %1183

1187:                                             ; preds = %1185
  %1188 = getelementptr inbounds i8, ptr %1, i64 1
  %1189 = load i8, ptr %1, align 1, !tbaa !25
  %1190 = zext i8 %1189 to i32
  br label %1195

1191:                                             ; preds = %1182
  %1192 = getelementptr inbounds i8, ptr %.901442, i64 1
  %1193 = load i8, ptr %.901442, align 1, !tbaa !25
  %1194 = zext i8 %1193 to i32
  br label %1195

1195:                                             ; preds = %1183, %1191, %1187, %1177
  %.971645 = phi ptr [ %4, %1187 ], [ %.951643, %1177 ], [ %.911639, %1191 ], [ %.961644, %1183 ]
  %.881545 = phi i64 [ %37, %1187 ], [ %.861543, %1177 ], [ %.821539, %1191 ], [ %.871544, %1183 ]
  %.961448 = phi ptr [ %1188, %1187 ], [ %.941446, %1177 ], [ %1192, %1191 ], [ %.951447, %1183 ]
  %.981340 = phi i64 [ %29, %1187 ], [ %1180, %1177 ], [ %.921334, %1191 ], [ %.971339, %1183 ]
  %.951230 = phi i32 [ %35, %1187 ], [ %.931228, %1177 ], [ %.891224, %1191 ], [ %.941229, %1183 ]
  %.961121 = phi i32 [ %33, %1187 ], [ %.941119, %1177 ], [ %.901115, %1191 ], [ %.951120, %1183 ]
  %.931022 = phi i32 [ %31, %1187 ], [ %.911020, %1177 ], [ %.871016, %1191 ], [ %.921021, %1183 ]
  %.98 = phi i32 [ %27, %1187 ], [ %1181, %1177 ], [ 0, %1191 ], [ %.97, %1183 ]
  %.0885 = phi i32 [ %1190, %1187 ], [ %1179, %1177 ], [ %1194, %1191 ], [ 0, %1183 ]
  %1196 = getelementptr inbounds i8, ptr %0, i64 16
  %1197 = load i32, ptr %1196, align 8, !tbaa !24
  %1198 = shl i32 %1197, 8
  %1199 = or disjoint i32 %1198, %.0885
  store i32 %1199, ptr %1196, align 8, !tbaa !24
  %1200 = add i32 %.961121, 1
  br label %1150, !llvm.loop !77

1201:                                             ; preds = %25
  br label %.sink.split2148

.sink.split2148:                                  ; preds = %25, %25, %25, %25, %25, %25, %1150, %1130, %1183, %1156, %1132, %1042, %1026, %1005, %943, %885, %800, %745, %692, %655, %644, %583, %._crit_edge, %317, %276, %262, %245, %242, %236, %210, %190, %168, %139, %115, %93, %89, %25, %81, %62, %46, %247, %1201
  %.sink2150 = phi i32 [ 40, %247 ], [ 1, %46 ], [ 2, %62 ], [ 36, %81 ], [ %38, %25 ], [ 36, %89 ], [ 3, %93 ], [ 5, %115 ], [ 6, %139 ], [ 7, %168 ], [ 39, %190 ], [ 51, %210 ], [ 52, %236 ], [ 9, %242 ], [ 38, %245 ], [ 10, %262 ], [ 11, %276 ], [ 14, %317 ], [ 35, %._crit_edge ], [ 16, %583 ], [ 17, %644 ], [ 18, %655 ], [ 21, %692 ], [ 23, %745 ], [ 24, %800 ], [ 25, %885 ], [ 26, %943 ], [ 27, %1005 ], [ 37, %1026 ], [ 53, %1042 ], [ 32, %1132 ], [ 41, %1156 ], [ 42, %1183 ], [ 34, %1130 ], [ 34, %1150 ], [ %38, %1201 ], [ %38, %25 ], [ %38, %25 ], [ %38, %25 ], [ %38, %25 ], [ %38, %25 ], [ %38, %25 ]
  %.991647.ph = phi ptr [ %.261574, %247 ], [ %4, %46 ], [ %4, %62 ], [ %4, %81 ], [ %4, %25 ], [ %4, %89 ], [ %.21550, %93 ], [ %4, %115 ], [ %.111559, %139 ], [ %.141562, %168 ], [ %.91557, %190 ], [ %.191567, %210 ], [ %.221570, %236 ], [ %.241572, %242 ], [ %.251573, %245 ], [ %.41552, %262 ], [ %.301578, %276 ], [ %.351583, %317 ], [ %.391587, %._crit_edge ], [ %.431591, %583 ], [ %.451593, %644 ], [ %.481596, %655 ], [ %.411589, %692 ], [ %.561604, %745 ], [ %.591607, %800 ], [ %.641612, %885 ], [ %.691617, %943 ], [ %.731621, %1005 ], [ %.761624, %1026 ], [ %.791627, %1042 ], [ %4, %1132 ], [ %.931641, %1156 ], [ %.961644, %1183 ], [ %.861634, %1130 ], [ %.911639, %1150 ], [ %4, %1201 ], [ %4, %25 ], [ %4, %25 ], [ %4, %25 ], [ %4, %25 ], [ %4, %25 ], [ %4, %25 ]
  %.901547.ph = phi i64 [ %.261483, %247 ], [ %37, %46 ], [ %37, %62 ], [ %37, %81 ], [ %37, %25 ], [ %37, %89 ], [ %.21459, %93 ], [ %37, %115 ], [ %.111468, %139 ], [ %.141471, %168 ], [ %.91466, %190 ], [ %.191476, %210 ], [ %.221479, %236 ], [ %.241481, %242 ], [ %.251482, %245 ], [ %.41461, %262 ], [ %.301487, %276 ], [ %.351492, %317 ], [ %.391496, %._crit_edge ], [ %.431500, %583 ], [ %.451502, %644 ], [ %.481505, %655 ], [ %.411498, %692 ], [ %.561513, %745 ], [ %.591516, %800 ], [ %.631520, %885 ], [ %.681525, %943 ], [ %.721529, %1005 ], [ %1028, %1026 ], [ %.761533, %1042 ], [ %37, %1132 ], [ %.841541, %1156 ], [ %.871544, %1183 ], [ %.771534, %1130 ], [ %.821539, %1150 ], [ %37, %1201 ], [ %37, %25 ], [ %37, %25 ], [ %37, %25 ], [ %37, %25 ], [ %37, %25 ], [ %37, %25 ]
  %.981450.ph = phi ptr [ %.311383, %247 ], [ %1, %46 ], [ %.11353, %62 ], [ %.21354, %81 ], [ %1, %25 ], [ %.21354, %89 ], [ %.71359, %93 ], [ %1, %115 ], [ %.161368, %139 ], [ %.191371, %168 ], [ %.141366, %190 ], [ %.241376, %210 ], [ %.271379, %236 ], [ %.291381, %242 ], [ %.301382, %245 ], [ %.91361, %262 ], [ %.351387, %276 ], [ %.401392, %317 ], [ %.441396, %._crit_edge ], [ %.481400, %583 ], [ %.501402, %644 ], [ %.531405, %655 ], [ %.461398, %692 ], [ %.611413, %745 ], [ %.641416, %800 ], [ %.691421, %885 ], [ %.741426, %943 ], [ %.781430, %1005 ], [ %.811433, %1026 ], [ %.841436, %1042 ], [ %1, %1132 ], [ %.921444, %1156 ], [ %.951447, %1183 ], [ %.851437, %1130 ], [ %.901442, %1150 ], [ %1, %1201 ], [ %1, %25 ], [ %1, %25 ], [ %1, %25 ], [ %1, %25 ], [ %1, %25 ], [ %1, %25 ]
  %.1001342.ph = phi i64 [ %.321274, %247 ], [ %.01242, %46 ], [ %.21244, %62 ], [ %.31245, %81 ], [ %29, %25 ], [ %.31245, %89 ], [ %.81250, %93 ], [ %29, %115 ], [ %.171259, %139 ], [ %.201262, %168 ], [ %.151257, %190 ], [ %.251267, %210 ], [ %.281270, %236 ], [ %.301272, %242 ], [ %.311273, %245 ], [ %110, %262 ], [ %.361278, %276 ], [ %.411283, %317 ], [ %.451287, %._crit_edge ], [ %.491291, %583 ], [ %635, %644 ], [ %.541296, %655 ], [ %.471289, %692 ], [ %.621304, %745 ], [ %.651307, %800 ], [ %.711313, %885 ], [ %.761318, %943 ], [ %.801322, %1005 ], [ %.831325, %1026 ], [ %.861328, %1042 ], [ %29, %1132 ], [ %.941336, %1156 ], [ %.971339, %1183 ], [ %.871329, %1130 ], [ %.921334, %1150 ], [ %29, %1201 ], [ %29, %25 ], [ %29, %25 ], [ %29, %25 ], [ %29, %25 ], [ %29, %25 ], [ %29, %25 ]
  %.971232.ph = phi i32 [ %.321167, %247 ], [ %.01135, %46 ], [ %.21137, %62 ], [ %.31138, %81 ], [ %35, %25 ], [ %.31138, %89 ], [ %.81143, %93 ], [ %35, %115 ], [ %.171152, %139 ], [ %.201155, %168 ], [ %.151150, %190 ], [ %.251160, %210 ], [ %.281163, %236 ], [ %.301165, %242 ], [ %.311166, %245 ], [ %.101145, %262 ], [ %.361171, %276 ], [ %.411176, %317 ], [ %.451180, %._crit_edge ], [ %.491184, %583 ], [ %.511186, %644 ], [ %.541189, %655 ], [ %.471182, %692 ], [ %.621197, %745 ], [ %.651200, %800 ], [ %.691204, %885 ], [ %.741209, %943 ], [ %.771212, %1005 ], [ %.801215, %1026 ], [ %.831218, %1042 ], [ %35, %1132 ], [ %.911226, %1156 ], [ %.941229, %1183 ], [ %.841219, %1130 ], [ %.891224, %1150 ], [ %35, %1201 ], [ %35, %25 ], [ %35, %25 ], [ %35, %25 ], [ %35, %25 ], [ %35, %25 ], [ %35, %25 ]
  %.981123.ph = phi i32 [ %.311056, %247 ], [ %.01025, %46 ], [ %.21027, %62 ], [ 1, %81 ], [ %33, %25 ], [ 1, %89 ], [ %.81033, %93 ], [ %33, %115 ], [ %.161041, %139 ], [ %.191044, %168 ], [ %198, %190 ], [ %.241049, %210 ], [ %.271052, %236 ], [ %.291054, %242 ], [ %.301055, %245 ], [ %.101035, %262 ], [ %.351060, %276 ], [ %.401065, %317 ], [ %.441069, %._crit_edge ], [ %.481073, %583 ], [ 0, %644 ], [ %.531078, %655 ], [ %.461071, %692 ], [ %.611086, %745 ], [ %.631088, %800 ], [ %.681093, %885 ], [ %.731098, %943 ], [ %.771102, %1005 ], [ %.801105, %1026 ], [ %.831108, %1042 ], [ %33, %1132 ], [ %.921117, %1156 ], [ %.951120, %1183 ], [ %.861111, %1130 ], [ %.901115, %1150 ], [ %33, %1201 ], [ %33, %25 ], [ %33, %25 ], [ %33, %25 ], [ %33, %25 ], [ %33, %25 ], [ %33, %25 ]
  %.951024.ph = phi i32 [ %.31960, %247 ], [ %.0929, %46 ], [ %.2931, %62 ], [ %.3932, %81 ], [ %31, %25 ], [ %.3932, %89 ], [ %.8937, %93 ], [ %31, %115 ], [ %.17946, %139 ], [ %.20949, %168 ], [ %.15944, %190 ], [ %.25954, %210 ], [ %.27956, %236 ], [ %.29958, %242 ], [ %.30959, %245 ], [ %.10939, %262 ], [ %.35964, %276 ], [ %.40969, %317 ], [ %.44973, %._crit_edge ], [ %.48977, %583 ], [ 16, %644 ], [ %.52981, %655 ], [ %.46975, %692 ], [ %.60989, %745 ], [ %.63992, %800 ], [ %.67996, %885 ], [ %.721001, %943 ], [ %.751004, %1005 ], [ %.781007, %1026 ], [ %.811010, %1042 ], [ %31, %1132 ], [ %.891018, %1156 ], [ %.921021, %1183 ], [ %.821011, %1130 ], [ %.871016, %1150 ], [ %31, %1201 ], [ %31, %25 ], [ %31, %25 ], [ %31, %25 ], [ %31, %25 ], [ %31, %25 ], [ %31, %25 ]
  %.100.ph = phi i32 [ %.32, %247 ], [ %.0900, %46 ], [ %.2902, %62 ], [ %.3, %81 ], [ %27, %25 ], [ %.3, %89 ], [ %.8, %93 ], [ %27, %115 ], [ %.17, %139 ], [ %.20, %168 ], [ %.15, %190 ], [ %.25, %210 ], [ %.28, %236 ], [ %.30, %242 ], [ %.31, %245 ], [ %111, %262 ], [ %.36, %276 ], [ %.41, %317 ], [ %.45, %._crit_edge ], [ %.49, %583 ], [ %636, %644 ], [ %.54, %655 ], [ %.47, %692 ], [ %.62, %745 ], [ %.65, %800 ], [ %.71, %885 ], [ %.76, %943 ], [ %.80, %1005 ], [ %.83, %1026 ], [ %.86, %1042 ], [ %27, %1132 ], [ %.94, %1156 ], [ %.97, %1183 ], [ %.87, %1130 ], [ %.92, %1150 ], [ %27, %1201 ], [ %27, %25 ], [ %27, %25 ], [ %27, %25 ], [ %27, %25 ], [ %27, %25 ], [ %27, %25 ]
  %.ph = phi i1 [ false, %247 ], [ true, %46 ], [ true, %62 ], [ false, %81 ], [ false, %25 ], [ false, %89 ], [ true, %93 ], [ true, %115 ], [ true, %139 ], [ true, %168 ], [ false, %190 ], [ true, %210 ], [ true, %236 ], [ true, %242 ], [ true, %245 ], [ false, %262 ], [ true, %276 ], [ true, %317 ], [ false, %._crit_edge ], [ true, %583 ], [ false, %644 ], [ true, %655 ], [ false, %692 ], [ true, %745 ], [ true, %800 ], [ true, %885 ], [ true, %943 ], [ true, %1005 ], [ false, %1026 ], [ true, %1042 ], [ true, %1132 ], [ true, %1156 ], [ true, %1183 ], [ true, %1130 ], [ true, %1150 ], [ true, %1201 ], [ false, %25 ], [ false, %25 ], [ false, %25 ], [ false, %25 ], [ false, %25 ], [ false, %25 ]
  %.ph2149 = phi i1 [ false, %247 ], [ false, %46 ], [ false, %62 ], [ false, %81 ], [ false, %25 ], [ false, %89 ], [ false, %93 ], [ false, %115 ], [ false, %139 ], [ false, %168 ], [ false, %190 ], [ false, %210 ], [ false, %236 ], [ false, %242 ], [ false, %245 ], [ false, %262 ], [ false, %276 ], [ false, %317 ], [ false, %._crit_edge ], [ false, %583 ], [ false, %644 ], [ false, %655 ], [ false, %692 ], [ false, %745 ], [ false, %800 ], [ false, %885 ], [ false, %943 ], [ false, %1005 ], [ false, %1026 ], [ false, %1042 ], [ false, %1132 ], [ false, %1156 ], [ false, %1183 ], [ true, %1130 ], [ true, %1150 ], [ true, %1201 ], [ false, %25 ], [ false, %25 ], [ false, %25 ], [ false, %25 ], [ false, %25 ], [ false, %25 ]
  %.0889.ph = phi i32 [ -1, %247 ], [ 1, %46 ], [ 1, %62 ], [ -1, %81 ], [ -1, %25 ], [ -1, %89 ], [ 1, %93 ], [ 1, %115 ], [ 1, %139 ], [ 1, %168 ], [ -1, %190 ], [ 1, %210 ], [ 2, %236 ], [ 2, %242 ], [ 1, %245 ], [ -1, %262 ], [ 1, %276 ], [ 1, %317 ], [ -1, %._crit_edge ], [ 1, %583 ], [ -1, %644 ], [ 1, %655 ], [ -1, %692 ], [ 1, %745 ], [ 2, %800 ], [ 1, %885 ], [ 1, %943 ], [ 1, %1005 ], [ -1, %1026 ], [ 2, %1042 ], [ 1, %1132 ], [ 1, %1156 ], [ 1, %1183 ], [ 0, %1130 ], [ 0, %1150 ], [ 0, %1201 ], [ -1, %25 ], [ -1, %25 ], [ -1, %25 ], [ -1, %25 ], [ -1, %25 ], [ -1, %25 ]
  store i32 %.sink2150, ptr %0, align 8, !tbaa !18
  br label %1202

1202:                                             ; preds = %.sink.split2148, %25
  %.991647 = phi ptr [ %4, %25 ], [ %.991647.ph, %.sink.split2148 ]
  %.901547 = phi i64 [ %37, %25 ], [ %.901547.ph, %.sink.split2148 ]
  %.981450 = phi ptr [ %1, %25 ], [ %.981450.ph, %.sink.split2148 ]
  %.1001342 = phi i64 [ %29, %25 ], [ %.1001342.ph, %.sink.split2148 ]
  %.971232 = phi i32 [ %35, %25 ], [ %.971232.ph, %.sink.split2148 ]
  %.981123 = phi i32 [ %33, %25 ], [ %.981123.ph, %.sink.split2148 ]
  %.951024 = phi i32 [ %31, %25 ], [ %.951024.ph, %.sink.split2148 ]
  %.100 = phi i32 [ %27, %25 ], [ %.100.ph, %.sink.split2148 ]
  %1203 = phi i1 [ false, %25 ], [ %.ph, %.sink.split2148 ]
  %1204 = phi i1 [ false, %25 ], [ %.ph2149, %.sink.split2148 ]
  %.0889 = phi i32 [ -1, %25 ], [ %.0889.ph, %.sink.split2148 ]
  store i32 %.100, ptr %26, align 4, !tbaa !9
  store i64 %.1001342, ptr %28, align 8, !tbaa !13
  store i32 %.951024, ptr %30, align 8, !tbaa !14
  store i32 %.981123, ptr %32, align 4, !tbaa !15
  store i32 %.971232, ptr %34, align 8, !tbaa !16
  store i64 %.901547, ptr %36, align 8, !tbaa !17
  %1205 = ptrtoint ptr %.981450 to i64
  %1206 = ptrtoint ptr %1 to i64
  %1207 = sub i64 %1205, %1206
  store i64 %1207, ptr %2, align 8, !tbaa !5
  %1208 = ptrtoint ptr %.991647 to i64
  %1209 = sub i64 %1208, %15
  store i64 %1209, ptr %5, align 8, !tbaa !5
  %1210 = and i32 %6, 9
  %1211 = icmp ne i32 %1210, 0
  %or.cond5 = and i1 %1211, %1203
  br i1 %or.cond5, label %1212, label %1304

1212:                                             ; preds = %1202
  %1213 = getelementptr inbounds i8, ptr %0, i64 28
  %1214 = load i32, ptr %1213, align 4, !tbaa !23
  %1215 = and i32 %1214, 65535
  %1216 = lshr i32 %1214, 16
  %.not18371989 = icmp eq i64 %1209, 0
  br i1 %.not18371989, label %._crit_edge1995, label %.preheader1895.preheader

.preheader1895.preheader:                         ; preds = %1212
  %1217 = urem i64 %1209, 5552
  br label %.preheader1895

.preheader1895:                                   ; preds = %.preheader1895.preheader, %._crit_edge1985
  %.01994 = phi i64 [ 5552, %._crit_edge1985 ], [ %1217, %.preheader1895.preheader ]
  %.08741993 = phi i32 [ %1295, %._crit_edge1985 ], [ %1216, %.preheader1895.preheader ]
  %.08751992 = phi i32 [ %1294, %._crit_edge1985 ], [ %1215, %.preheader1895.preheader ]
  %.08801991 = phi i64 [ %1296, %._crit_edge1985 ], [ %1209, %.preheader1895.preheader ]
  %.08811990 = phi ptr [ %.2883.lcssa, %._crit_edge1985 ], [ %4, %.preheader1895.preheader ]
  %1218 = icmp ugt i64 %.01994, 7
  br i1 %1218, label %.lr.ph1975.preheader, label %.preheader

.lr.ph1975.preheader:                             ; preds = %.preheader1895
  %1219 = trunc nuw nsw i64 %.01994 to i32
  br label %.lr.ph1975

.preheader:                                       ; preds = %.lr.ph1975, %.preheader1895
  %.1882.lcssa = phi ptr [ %.08811990, %.preheader1895 ], [ %1271, %.lr.ph1975 ]
  %.0878.lcssa = phi i32 [ 0, %.preheader1895 ], [ %1270, %.lr.ph1975 ]
  %.1876.lcssa = phi i32 [ %.08751992, %.preheader1895 ], [ %1268, %.lr.ph1975 ]
  %.1.lcssa = phi i32 [ %.08741993, %.preheader1895 ], [ %1269, %.lr.ph1975 ]
  %1220 = zext i32 %.0878.lcssa to i64
  %1221 = icmp ugt i64 %.01994, %1220
  br i1 %1221, label %.lr.ph1984.preheader, label %._crit_edge1985

.lr.ph1984.preheader:                             ; preds = %.preheader
  %1222 = sub nsw i64 %.01994, %1220
  %1223 = sub nsw i64 %.01994, %1220
  %xtraiter2275 = and i64 %1223, 3
  %lcmp.mod2276.not = icmp eq i64 %xtraiter2275, 0
  br i1 %lcmp.mod2276.not, label %.lr.ph1984.prol.loopexit, label %.lr.ph1984.prol

.lr.ph1984.prol:                                  ; preds = %.lr.ph1984.preheader, %.lr.ph1984.prol
  %indvars.iv2053.prol = phi i64 [ %indvars.iv.next2054.prol, %.lr.ph1984.prol ], [ %1220, %.lr.ph1984.preheader ]
  %.21983.prol = phi i32 [ %1228, %.lr.ph1984.prol ], [ %.1.lcssa, %.lr.ph1984.preheader ]
  %.28771982.prol = phi i32 [ %1227, %.lr.ph1984.prol ], [ %.1876.lcssa, %.lr.ph1984.preheader ]
  %.28831980.prol = phi ptr [ %1224, %.lr.ph1984.prol ], [ %.1882.lcssa, %.lr.ph1984.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1984.prol ], [ 0, %.lr.ph1984.preheader ]
  %1224 = getelementptr inbounds i8, ptr %.28831980.prol, i64 1
  %1225 = load i8, ptr %.28831980.prol, align 1, !tbaa !25
  %1226 = zext i8 %1225 to i32
  %1227 = add i32 %.28771982.prol, %1226
  %1228 = add i32 %1227, %.21983.prol
  %indvars.iv.next2054.prol = add nuw nsw i64 %indvars.iv2053.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter2275
  br i1 %prol.iter.cmp.not, label %.lr.ph1984.prol.loopexit, label %.lr.ph1984.prol, !llvm.loop !78

.lr.ph1984.prol.loopexit:                         ; preds = %.lr.ph1984.prol, %.lr.ph1984.preheader
  %.lcssa2219.unr = phi i32 [ poison, %.lr.ph1984.preheader ], [ %1227, %.lr.ph1984.prol ]
  %.lcssa2218.unr = phi i32 [ poison, %.lr.ph1984.preheader ], [ %1228, %.lr.ph1984.prol ]
  %indvars.iv2053.unr = phi i64 [ %1220, %.lr.ph1984.preheader ], [ %indvars.iv.next2054.prol, %.lr.ph1984.prol ]
  %.21983.unr = phi i32 [ %.1.lcssa, %.lr.ph1984.preheader ], [ %1228, %.lr.ph1984.prol ]
  %.28771982.unr = phi i32 [ %.1876.lcssa, %.lr.ph1984.preheader ], [ %1227, %.lr.ph1984.prol ]
  %.28831980.unr = phi ptr [ %.1882.lcssa, %.lr.ph1984.preheader ], [ %1224, %.lr.ph1984.prol ]
  %1229 = sub nsw i64 %1220, %.01994
  %1230 = icmp ugt i64 %1229, -4
  br i1 %1230, label %._crit_edge1985.loopexit, label %.lr.ph1984

.lr.ph1975:                                       ; preds = %.lr.ph1975.preheader, %.lr.ph1975
  %.11974 = phi i32 [ %1269, %.lr.ph1975 ], [ %.08741993, %.lr.ph1975.preheader ]
  %.18761973 = phi i32 [ %1268, %.lr.ph1975 ], [ %.08751992, %.lr.ph1975.preheader ]
  %.08781972 = phi i32 [ %1270, %.lr.ph1975 ], [ 0, %.lr.ph1975.preheader ]
  %.18821971 = phi ptr [ %1271, %.lr.ph1975 ], [ %.08811990, %.lr.ph1975.preheader ]
  %1231 = load i8, ptr %.18821971, align 1, !tbaa !25
  %1232 = zext i8 %1231 to i32
  %1233 = add i32 %.18761973, %1232
  %1234 = add i32 %1233, %.11974
  %1235 = getelementptr inbounds i8, ptr %.18821971, i64 1
  %1236 = load i8, ptr %1235, align 1, !tbaa !25
  %1237 = zext i8 %1236 to i32
  %1238 = add i32 %1233, %1237
  %1239 = add i32 %1234, %1238
  %1240 = getelementptr inbounds i8, ptr %.18821971, i64 2
  %1241 = load i8, ptr %1240, align 1, !tbaa !25
  %1242 = zext i8 %1241 to i32
  %1243 = add i32 %1238, %1242
  %1244 = add i32 %1239, %1243
  %1245 = getelementptr inbounds i8, ptr %.18821971, i64 3
  %1246 = load i8, ptr %1245, align 1, !tbaa !25
  %1247 = zext i8 %1246 to i32
  %1248 = add i32 %1243, %1247
  %1249 = add i32 %1244, %1248
  %1250 = getelementptr inbounds i8, ptr %.18821971, i64 4
  %1251 = load i8, ptr %1250, align 1, !tbaa !25
  %1252 = zext i8 %1251 to i32
  %1253 = add i32 %1248, %1252
  %1254 = add i32 %1249, %1253
  %1255 = getelementptr inbounds i8, ptr %.18821971, i64 5
  %1256 = load i8, ptr %1255, align 1, !tbaa !25
  %1257 = zext i8 %1256 to i32
  %1258 = add i32 %1253, %1257
  %1259 = add i32 %1254, %1258
  %1260 = getelementptr inbounds i8, ptr %.18821971, i64 6
  %1261 = load i8, ptr %1260, align 1, !tbaa !25
  %1262 = zext i8 %1261 to i32
  %1263 = add i32 %1258, %1262
  %1264 = add i32 %1259, %1263
  %1265 = getelementptr inbounds i8, ptr %.18821971, i64 7
  %1266 = load i8, ptr %1265, align 1, !tbaa !25
  %1267 = zext i8 %1266 to i32
  %1268 = add i32 %1263, %1267
  %1269 = add i32 %1264, %1268
  %1270 = add nuw i32 %.08781972, 8
  %1271 = getelementptr inbounds i8, ptr %.18821971, i64 8
  %1272 = or disjoint i32 %1270, 7
  %1273 = icmp ult i32 %1272, %1219
  br i1 %1273, label %.lr.ph1975, label %.preheader, !llvm.loop !79

.lr.ph1984:                                       ; preds = %.lr.ph1984.prol.loopexit, %.lr.ph1984
  %indvars.iv2053 = phi i64 [ %indvars.iv.next2054.3, %.lr.ph1984 ], [ %indvars.iv2053.unr, %.lr.ph1984.prol.loopexit ]
  %.21983 = phi i32 [ %1293, %.lr.ph1984 ], [ %.21983.unr, %.lr.ph1984.prol.loopexit ]
  %.28771982 = phi i32 [ %1292, %.lr.ph1984 ], [ %.28771982.unr, %.lr.ph1984.prol.loopexit ]
  %.28831980 = phi ptr [ %1289, %.lr.ph1984 ], [ %.28831980.unr, %.lr.ph1984.prol.loopexit ]
  %1274 = getelementptr inbounds i8, ptr %.28831980, i64 1
  %1275 = load i8, ptr %.28831980, align 1, !tbaa !25
  %1276 = zext i8 %1275 to i32
  %1277 = add i32 %.28771982, %1276
  %1278 = add i32 %1277, %.21983
  %1279 = getelementptr inbounds i8, ptr %.28831980, i64 2
  %1280 = load i8, ptr %1274, align 1, !tbaa !25
  %1281 = zext i8 %1280 to i32
  %1282 = add i32 %1277, %1281
  %1283 = add i32 %1282, %1278
  %1284 = getelementptr inbounds i8, ptr %.28831980, i64 3
  %1285 = load i8, ptr %1279, align 1, !tbaa !25
  %1286 = zext i8 %1285 to i32
  %1287 = add i32 %1282, %1286
  %1288 = add i32 %1287, %1283
  %1289 = getelementptr inbounds i8, ptr %.28831980, i64 4
  %1290 = load i8, ptr %1284, align 1, !tbaa !25
  %1291 = zext i8 %1290 to i32
  %1292 = add i32 %1287, %1291
  %1293 = add i32 %1292, %1288
  %indvars.iv.next2054.3 = add nuw nsw i64 %indvars.iv2053, 4
  %exitcond2057.not.3 = icmp eq i64 %indvars.iv.next2054.3, %.01994
  br i1 %exitcond2057.not.3, label %._crit_edge1985.loopexit, label %.lr.ph1984, !llvm.loop !80

._crit_edge1985.loopexit:                         ; preds = %.lr.ph1984, %.lr.ph1984.prol.loopexit
  %.lcssa2219 = phi i32 [ %.lcssa2219.unr, %.lr.ph1984.prol.loopexit ], [ %1292, %.lr.ph1984 ]
  %.lcssa2218 = phi i32 [ %.lcssa2218.unr, %.lr.ph1984.prol.loopexit ], [ %1293, %.lr.ph1984 ]
  %scevgep2055 = getelementptr i8, ptr %.1882.lcssa, i64 %1222
  br label %._crit_edge1985

._crit_edge1985:                                  ; preds = %._crit_edge1985.loopexit, %.preheader
  %.2883.lcssa = phi ptr [ %.1882.lcssa, %.preheader ], [ %scevgep2055, %._crit_edge1985.loopexit ]
  %.2877.lcssa = phi i32 [ %.1876.lcssa, %.preheader ], [ %.lcssa2219, %._crit_edge1985.loopexit ]
  %.2.lcssa = phi i32 [ %.1.lcssa, %.preheader ], [ %.lcssa2218, %._crit_edge1985.loopexit ]
  %1294 = urem i32 %.2877.lcssa, 65521
  %1295 = urem i32 %.2.lcssa, 65521
  %1296 = sub i64 %.08801991, %.01994
  %.not1837 = icmp eq i64 %1296, 0
  br i1 %.not1837, label %._crit_edge1995, label %.preheader1895, !llvm.loop !81

._crit_edge1995:                                  ; preds = %._crit_edge1985, %1212
  %.0875.lcssa = phi i32 [ %1215, %1212 ], [ %1294, %._crit_edge1985 ]
  %.0874.lcssa = phi i32 [ %1216, %1212 ], [ %1295, %._crit_edge1985 ]
  %1297 = shl nuw i32 %.0874.lcssa, 16
  %1298 = or disjoint i32 %1297, %.0875.lcssa
  store i32 %1298, ptr %1213, align 4, !tbaa !23
  br i1 %1204, label %1299, label %1304

1299:                                             ; preds = %._crit_edge1995
  %1300 = and i32 %6, 1
  %.not1838 = icmp eq i32 %1300, 0
  br i1 %.not1838, label %1304, label %1301

1301:                                             ; preds = %1299
  %1302 = getelementptr inbounds i8, ptr %0, i64 16
  %1303 = load i32, ptr %1302, align 8, !tbaa !24
  %.not1839 = icmp eq i32 %1298, %1303
  %spec.select = select i1 %.not1839, i32 0, i32 -2
  br label %1304

1304:                                             ; preds = %1301, %1202, %1299, %._crit_edge1995, %24
  %.0887 = phi i32 [ -3, %24 ], [ %.0889, %1202 ], [ 0, %1299 ], [ %.0889, %._crit_edge1995 ], [ %spec.select, %1301 ]
  ret i32 %.0887
}

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

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

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

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

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

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


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