; LLVM IR from mncoppola/rpef :: utilities_src/squashfs2.1/squashfs-2.1-r2 (read_fs)

; 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.squashfs_reg_inode_header = type { i32, i32, i32, i32, i32, i32, [0 x i16] }
%struct.squashfs_base_inode_header = type { i32 }
%struct.squashfs_dir_inode_header = type <{ i64, i32, [3 x i8] }>
%struct.squashfs_ldir_inode_header = type <{ i32, [5 x i8], i32, [3 x i8], i16, [0 x %struct.squashfs_dir_index] }>
%struct.squashfs_dir_index = type { [7 x i8], i8, [0 x i8] }
%struct.squashfs_symlink_inode_header = type <{ i32, i16, [0 x i8] }>
%struct.squashfs_super_block = type <{ i32, i32, i32, i32, i32, i32, i32, i64, i16, i8, i32, i64, i32, i32, i32 }>

@swap = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [44 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @read_block(i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #0

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

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #2

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

; Function Attrs: nounwind uwtable
define dso_local i32 @scan_inode_table(i32 noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17) #0 {
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %struct.squashfs_reg_inode_header, align 1
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %struct.squashfs_base_inode_header, align 1
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i64, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i64, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i64, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i64, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca %struct.squashfs_dir_inode_header, align 1
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i64, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i64, align 8
  %75 = alloca ptr, align 8
  %76 = alloca ptr, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i64, align 8
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i64, align 8
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i64, align 8
  %90 = alloca ptr, align 8
  %91 = alloca ptr, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i64, align 8
  %95 = alloca ptr, align 8
  %96 = alloca ptr, align 8
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i64, align 8
  %100 = alloca ptr, align 8
  %101 = alloca ptr, align 8
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i64, align 8
  %105 = alloca ptr, align 8
  %106 = alloca ptr, align 8
  %107 = alloca %struct.squashfs_ldir_inode_header, align 1
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i64, align 8
  %111 = alloca ptr, align 8
  %112 = alloca ptr, align 8
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i64, align 8
  %116 = alloca ptr, align 8
  %117 = alloca ptr, align 8
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i64, align 8
  %121 = alloca ptr, align 8
  %122 = alloca ptr, align 8
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i64, align 8
  %126 = alloca ptr, align 8
  %127 = alloca ptr, align 8
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i64, align 8
  %131 = alloca ptr, align 8
  %132 = alloca ptr, align 8
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i64, align 8
  %136 = alloca ptr, align 8
  %137 = alloca ptr, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i64, align 8
  %141 = alloca ptr, align 8
  %142 = alloca ptr, align 8
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i64, align 8
  %146 = alloca ptr, align 8
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i64, align 8
  %151 = alloca ptr, align 8
  %152 = alloca ptr, align 8
  %153 = alloca %struct.squashfs_reg_inode_header, align 1
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i64, align 8
  %157 = alloca ptr, align 8
  %158 = alloca ptr, align 8
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i64, align 8
  %162 = alloca ptr, align 8
  %163 = alloca ptr, align 8
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i64, align 8
  %167 = alloca ptr, align 8
  %168 = alloca ptr, align 8
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i64, align 8
  %172 = alloca ptr, align 8
  %173 = alloca ptr, align 8
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i64, align 8
  %177 = alloca ptr, align 8
  %178 = alloca ptr, align 8
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i64, align 8
  %182 = alloca ptr, align 8
  %183 = alloca ptr, align 8
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i64, align 8
  %187 = alloca ptr, align 8
  %188 = alloca ptr, align 8
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i64, align 8
  %192 = alloca ptr, align 8
  %193 = alloca ptr, align 8
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i64, align 8
  %197 = alloca ptr, align 8
  %198 = alloca ptr, align 8
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca ptr, align 8
  %205 = alloca i64, align 8
  %206 = alloca ptr, align 8
  %207 = alloca i64, align 8
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i64, align 8
  %213 = alloca ptr, align 8
  %214 = alloca ptr, align 8
  %215 = alloca %struct.squashfs_symlink_inode_header, align 1
  %216 = alloca %struct.squashfs_symlink_inode_header, align 1
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i64, align 8
  %220 = alloca ptr, align 8
  %221 = alloca ptr, align 8
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i64, align 8
  %225 = alloca ptr, align 8
  %226 = alloca ptr, align 8
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i64, align 8
  %230 = alloca ptr, align 8
  %231 = alloca ptr, align 8
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca i64, align 8
  %235 = alloca ptr, align 8
  %236 = alloca ptr, align 8
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i64, align 8
  %240 = alloca ptr, align 8
  %241 = alloca ptr, align 8
  %242 = alloca %struct.squashfs_dir_inode_header, align 1
  %243 = alloca %struct.squashfs_dir_inode_header, align 1
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i64, align 8
  %247 = alloca ptr, align 8
  %248 = alloca ptr, align 8
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i64, align 8
  %252 = alloca ptr, align 8
  %253 = alloca ptr, align 8
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca i64, align 8
  %257 = alloca ptr, align 8
  %258 = alloca ptr, align 8
  %259 = alloca i32, align 4
  %260 = alloca i32, align 4
  %261 = alloca i64, align 8
  %262 = alloca ptr, align 8
  %263 = alloca ptr, align 8
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i64, align 8
  %267 = alloca ptr, align 8
  %268 = alloca ptr, align 8
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i64, align 8
  %272 = alloca ptr, align 8
  %273 = alloca ptr, align 8
  %274 = alloca i32, align 4
  %275 = alloca i32, align 4
  %276 = alloca i64, align 8
  %277 = alloca ptr, align 8
  %278 = alloca ptr, align 8
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca i64, align 8
  %282 = alloca ptr, align 8
  %283 = alloca ptr, align 8
  %284 = alloca %struct.squashfs_ldir_inode_header, align 1
  %285 = alloca i32, align 4
  %286 = alloca %struct.squashfs_ldir_inode_header, align 1
  %287 = alloca i32, align 4
  %288 = alloca i32, align 4
  %289 = alloca i64, align 8
  %290 = alloca ptr, align 8
  %291 = alloca ptr, align 8
  %292 = alloca i32, align 4
  %293 = alloca i32, align 4
  %294 = alloca i64, align 8
  %295 = alloca ptr, align 8
  %296 = alloca ptr, align 8
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca i64, align 8
  %300 = alloca ptr, align 8
  %301 = alloca ptr, align 8
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca i64, align 8
  %305 = alloca ptr, align 8
  %306 = alloca ptr, align 8
  %307 = alloca i32, align 4
  %308 = alloca i32, align 4
  %309 = alloca i64, align 8
  %310 = alloca ptr, align 8
  %311 = alloca ptr, align 8
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i64, align 8
  %315 = alloca ptr, align 8
  %316 = alloca ptr, align 8
  %317 = alloca i32, align 4
  %318 = alloca i32, align 4
  %319 = alloca i64, align 8
  %320 = alloca ptr, align 8
  %321 = alloca ptr, align 8
  %322 = alloca i32, align 4
  %323 = alloca i32, align 4
  %324 = alloca i64, align 8
  %325 = alloca ptr, align 8
  %326 = alloca ptr, align 8
  %327 = alloca i32, align 4
  %328 = alloca i32, align 4
  %329 = alloca i64, align 8
  %330 = alloca ptr, align 8
  %331 = alloca ptr, align 8
  %332 = alloca %struct.squashfs_dir_index, align 1
  %333 = alloca %struct.squashfs_dir_index, align 1
  %334 = alloca i32, align 4
  %335 = alloca i32, align 4
  %336 = alloca i64, align 8
  %337 = alloca ptr, align 8
  %338 = alloca ptr, align 8
  %339 = alloca i32, align 4
  %340 = alloca i32, align 4
  %341 = alloca i64, align 8
  %342 = alloca ptr, align 8
  %343 = alloca ptr, align 8
  %344 = alloca i32, align 4
  %345 = alloca i32, align 4
  %346 = alloca i64, align 8
  %347 = alloca ptr, align 8
  %348 = alloca ptr, align 8
  store i32 %0, ptr %20, align 4, !tbaa !5
  store i32 %1, ptr %21, align 4, !tbaa !5
  store i32 %2, ptr %22, align 4, !tbaa !5
  store i32 %3, ptr %23, align 4, !tbaa !5
  store i32 %4, ptr %24, align 4, !tbaa !5
  store ptr %5, ptr %25, align 8, !tbaa !9
  store ptr %6, ptr %26, align 8, !tbaa !9
  store ptr %7, ptr %27, align 8, !tbaa !9
  store ptr %8, ptr %28, align 8, !tbaa !9
  store ptr %9, ptr %29, align 8, !tbaa !9
  store ptr %10, ptr %30, align 8, !tbaa !9
  store ptr %11, ptr %31, align 8, !tbaa !9
  store ptr %12, ptr %32, align 8, !tbaa !9
  store ptr %13, ptr %33, align 8, !tbaa !9
  store ptr %14, ptr %34, align 8, !tbaa !9
  store ptr %15, ptr %35, align 8, !tbaa !9
  store ptr %16, ptr %36, align 8, !tbaa !9
  store ptr %17, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  store i32 0, ptr %39, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  store i32 0, ptr %40, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  store i32 0, ptr %41, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  br label %349

349:                                              ; preds = %391, %18
  %350 = load i32, ptr %21, align 4, !tbaa !5
  %351 = load i32, ptr %22, align 4, !tbaa !5
  %352 = icmp slt i32 %350, %351
  br i1 %352, label %353, label %392

353:                                              ; preds = %349
  %354 = load i32, ptr %21, align 4, !tbaa !5
  %355 = load i32, ptr %23, align 4, !tbaa !5
  %356 = icmp eq i32 %354, %355
  br i1 %356, label %357, label %360

357:                                              ; preds = %353
  %358 = load i32, ptr %39, align 4, !tbaa !5
  %359 = load ptr, ptr %28, align 8, !tbaa !9
  store i32 %358, ptr %359, align 4, !tbaa !5
  br label %360

360:                                              ; preds = %357, %353
  %361 = load i32, ptr %40, align 4, !tbaa !5
  %362 = load i32, ptr %39, align 4, !tbaa !5
  %363 = sub nsw i32 %361, %362
  %364 = icmp slt i32 %363, 8192
  br i1 %364, label %365, label %375

365:                                              ; preds = %360
  %366 = load ptr, ptr %27, align 8, !tbaa !9
  %367 = load ptr, ptr %366, align 8, !tbaa !9
  %368 = load i32, ptr %40, align 4, !tbaa !5
  %369 = add nsw i32 %368, 8192
  store i32 %369, ptr %40, align 4, !tbaa !5
  %370 = sext i32 %369 to i64
  %371 = call ptr @realloc(ptr noundef %367, i64 noundef %370) #9
  %372 = load ptr, ptr %27, align 8, !tbaa !9
  store ptr %371, ptr %372, align 8, !tbaa !9
  %373 = icmp eq ptr %371, null
  br i1 %373, label %374, label %375

374:                                              ; preds = %365
  store i32 0, ptr %19, align 4
  store i32 1, ptr %44, align 4
  br label %2316

375:                                              ; preds = %365, %360
  %376 = load i32, ptr %20, align 4, !tbaa !5
  %377 = load i32, ptr %21, align 4, !tbaa !5
  %378 = load ptr, ptr %27, align 8, !tbaa !9
  %379 = load ptr, ptr %378, align 8, !tbaa !9
  %380 = load i32, ptr %39, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds i8, ptr %379, i64 %381
  %383 = load ptr, ptr %25, align 8, !tbaa !9
  %384 = call i32 @read_block(i32 noundef %376, i32 noundef %377, ptr noundef %21, ptr noundef %382, ptr noundef %383)
  %385 = load i32, ptr %39, align 4, !tbaa !5
  %386 = add nsw i32 %385, %384
  store i32 %386, ptr %39, align 4, !tbaa !5
  %387 = icmp eq i32 %386, 0
  br i1 %387, label %388, label %391

388:                                              ; preds = %375
  %389 = load ptr, ptr %27, align 8, !tbaa !9
  %390 = load ptr, ptr %389, align 8, !tbaa !9
  call void @free(ptr noundef %390) #8
  store i32 0, ptr %19, align 4
  store i32 1, ptr %44, align 4
  br label %2316

391:                                              ; preds = %375
  br label %349, !llvm.loop !11

392:                                              ; preds = %349
  %393 = load i32, ptr %39, align 4, !tbaa !5
  %394 = load ptr, ptr %28, align 8, !tbaa !9
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = load i32, ptr %24, align 4, !tbaa !5
  %397 = add i32 %395, %396
  %398 = sub i32 %393, %397
  %399 = load ptr, ptr %29, align 8, !tbaa !9
  store i32 %398, ptr %399, align 4, !tbaa !5
  %400 = load ptr, ptr %28, align 8, !tbaa !9
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = load i32, ptr %24, align 4, !tbaa !5
  %403 = add i32 %401, %402
  store i32 %403, ptr %39, align 4, !tbaa !5
  %404 = load i32, ptr @swap, align 4, !tbaa !5
  %405 = icmp ne i32 %404, 0
  br i1 %405, label %406, label %528

406:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %407 = load ptr, ptr %27, align 8, !tbaa !9
  %408 = load ptr, ptr %407, align 8, !tbaa !9
  %409 = load i32, ptr %39, align 4, !tbaa !5
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds i8, ptr %408, i64 %410
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %45, ptr align 1 %411, i64 4, i1 false)
  %412 = load ptr, ptr %26, align 8, !tbaa !9
  call void @llvm.memset.p0.i64(ptr align 1 %412, i8 0, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store i32 0, ptr %47, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  store i64 0, ptr %48, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %413 = getelementptr inbounds i8, ptr %45, i64 0
  store ptr %413, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %414 = getelementptr inbounds i8, ptr %48, i64 7
  store ptr %414, ptr %50, align 8, !tbaa !9
  store i32 0, ptr %46, align 4, !tbaa !5
  br label %415

415:                                              ; preds = %426, %406
  %416 = load i32, ptr %46, align 4, !tbaa !5
  %417 = load i32, ptr %47, align 4, !tbaa !5
  %418 = add nsw i32 4, %417
  %419 = icmp slt i32 %416, %418
  br i1 %419, label %420, label %429

420:                                              ; preds = %415
  %421 = load ptr, ptr %49, align 8, !tbaa !9
  %422 = getelementptr inbounds i8, ptr %421, i32 1
  store ptr %422, ptr %49, align 8, !tbaa !9
  %423 = load i8, ptr %421, align 1, !tbaa !15
  %424 = load ptr, ptr %50, align 8, !tbaa !9
  %425 = getelementptr inbounds i8, ptr %424, i32 -1
  store ptr %425, ptr %50, align 8, !tbaa !9
  store i8 %423, ptr %424, align 1, !tbaa !15
  br label %426

426:                                              ; preds = %420
  %427 = load i32, ptr %46, align 4, !tbaa !5
  %428 = add nsw i32 %427, 8
  store i32 %428, ptr %46, align 4, !tbaa !5
  br label %415, !llvm.loop !16

429:                                              ; preds = %415
  %430 = load i64, ptr %48, align 8, !tbaa !13
  %431 = load i32, ptr %47, align 4, !tbaa !5
  %432 = sub nsw i32 60, %431
  %433 = zext i32 %432 to i64
  %434 = lshr i64 %430, %433
  %435 = trunc i64 %434 to i32
  %436 = load ptr, ptr %26, align 8, !tbaa !9
  %437 = load i32, ptr %436, align 1
  %438 = and i32 %435, 15
  %439 = and i32 %437, -16
  %440 = or i32 %439, %438
  store i32 %440, ptr %436, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  store i32 4, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  store i64 0, ptr %53, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %441 = getelementptr inbounds i8, ptr %45, i64 0
  store ptr %441, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %442 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %442, ptr %55, align 8, !tbaa !9
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %443

443:                                              ; preds = %454, %429
  %444 = load i32, ptr %51, align 4, !tbaa !5
  %445 = load i32, ptr %52, align 4, !tbaa !5
  %446 = add nsw i32 12, %445
  %447 = icmp slt i32 %444, %446
  br i1 %447, label %448, label %457

448:                                              ; preds = %443
  %449 = load ptr, ptr %54, align 8, !tbaa !9
  %450 = getelementptr inbounds i8, ptr %449, i32 1
  store ptr %450, ptr %54, align 8, !tbaa !9
  %451 = load i8, ptr %449, align 1, !tbaa !15
  %452 = load ptr, ptr %55, align 8, !tbaa !9
  %453 = getelementptr inbounds i8, ptr %452, i32 -1
  store ptr %453, ptr %55, align 8, !tbaa !9
  store i8 %451, ptr %452, align 1, !tbaa !15
  br label %454

454:                                              ; preds = %448
  %455 = load i32, ptr %51, align 4, !tbaa !5
  %456 = add nsw i32 %455, 8
  store i32 %456, ptr %51, align 4, !tbaa !5
  br label %443, !llvm.loop !17

457:                                              ; preds = %443
  %458 = load i64, ptr %53, align 8, !tbaa !13
  %459 = load i32, ptr %52, align 4, !tbaa !5
  %460 = sub nsw i32 52, %459
  %461 = zext i32 %460 to i64
  %462 = lshr i64 %458, %461
  %463 = trunc i64 %462 to i32
  %464 = load ptr, ptr %26, align 8, !tbaa !9
  %465 = load i32, ptr %464, align 1
  %466 = and i32 %463, 4095
  %467 = shl i32 %466, 4
  %468 = and i32 %465, -65521
  %469 = or i32 %468, %467
  store i32 %469, ptr %464, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  store i32 0, ptr %57, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  store i64 0, ptr %58, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %470 = getelementptr inbounds i8, ptr %45, i64 2
  store ptr %470, ptr %59, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  %471 = getelementptr inbounds i8, ptr %58, i64 7
  store ptr %471, ptr %60, align 8, !tbaa !9
  store i32 0, ptr %56, align 4, !tbaa !5
  br label %472

472:                                              ; preds = %483, %457
  %473 = load i32, ptr %56, align 4, !tbaa !5
  %474 = load i32, ptr %57, align 4, !tbaa !5
  %475 = add nsw i32 8, %474
  %476 = icmp slt i32 %473, %475
  br i1 %476, label %477, label %486

477:                                              ; preds = %472
  %478 = load ptr, ptr %59, align 8, !tbaa !9
  %479 = getelementptr inbounds i8, ptr %478, i32 1
  store ptr %479, ptr %59, align 8, !tbaa !9
  %480 = load i8, ptr %478, align 1, !tbaa !15
  %481 = load ptr, ptr %60, align 8, !tbaa !9
  %482 = getelementptr inbounds i8, ptr %481, i32 -1
  store ptr %482, ptr %60, align 8, !tbaa !9
  store i8 %480, ptr %481, align 1, !tbaa !15
  br label %483

483:                                              ; preds = %477
  %484 = load i32, ptr %56, align 4, !tbaa !5
  %485 = add nsw i32 %484, 8
  store i32 %485, ptr %56, align 4, !tbaa !5
  br label %472, !llvm.loop !18

486:                                              ; preds = %472
  %487 = load i64, ptr %58, align 8, !tbaa !13
  %488 = load i32, ptr %57, align 4, !tbaa !5
  %489 = sub nsw i32 56, %488
  %490 = zext i32 %489 to i64
  %491 = lshr i64 %487, %490
  %492 = trunc i64 %491 to i32
  %493 = load ptr, ptr %26, align 8, !tbaa !9
  %494 = load i32, ptr %493, align 1
  %495 = and i32 %492, 255
  %496 = shl i32 %495, 16
  %497 = and i32 %494, -16711681
  %498 = or i32 %497, %496
  store i32 %498, ptr %493, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  store i32 0, ptr %62, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  store i64 0, ptr %63, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  %499 = getelementptr inbounds i8, ptr %45, i64 3
  store ptr %499, ptr %64, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  %500 = getelementptr inbounds i8, ptr %63, i64 7
  store ptr %500, ptr %65, align 8, !tbaa !9
  store i32 0, ptr %61, align 4, !tbaa !5
  br label %501

501:                                              ; preds = %512, %486
  %502 = load i32, ptr %61, align 4, !tbaa !5
  %503 = load i32, ptr %62, align 4, !tbaa !5
  %504 = add nsw i32 8, %503
  %505 = icmp slt i32 %502, %504
  br i1 %505, label %506, label %515

506:                                              ; preds = %501
  %507 = load ptr, ptr %64, align 8, !tbaa !9
  %508 = getelementptr inbounds i8, ptr %507, i32 1
  store ptr %508, ptr %64, align 8, !tbaa !9
  %509 = load i8, ptr %507, align 1, !tbaa !15
  %510 = load ptr, ptr %65, align 8, !tbaa !9
  %511 = getelementptr inbounds i8, ptr %510, i32 -1
  store ptr %511, ptr %65, align 8, !tbaa !9
  store i8 %509, ptr %510, align 1, !tbaa !15
  br label %512

512:                                              ; preds = %506
  %513 = load i32, ptr %61, align 4, !tbaa !5
  %514 = add nsw i32 %513, 8
  store i32 %514, ptr %61, align 4, !tbaa !5
  br label %501, !llvm.loop !19

515:                                              ; preds = %501
  %516 = load i64, ptr %63, align 8, !tbaa !13
  %517 = load i32, ptr %62, align 4, !tbaa !5
  %518 = sub nsw i32 56, %517
  %519 = zext i32 %518 to i64
  %520 = lshr i64 %516, %519
  %521 = trunc i64 %520 to i32
  %522 = load ptr, ptr %26, align 8, !tbaa !9
  %523 = load i32, ptr %522, align 1
  %524 = and i32 %521, 255
  %525 = shl i32 %524, 24
  %526 = and i32 %523, 16777215
  %527 = or i32 %526, %525
  store i32 %527, ptr %522, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %535

528:                                              ; preds = %392
  %529 = load ptr, ptr %26, align 8, !tbaa !9
  %530 = load ptr, ptr %27, align 8, !tbaa !9
  %531 = load ptr, ptr %530, align 8, !tbaa !9
  %532 = load i32, ptr %39, align 4, !tbaa !5
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds i8, ptr %531, i64 %533
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %529, ptr align 1 %534, i64 4, i1 false)
  br label %535

535:                                              ; preds = %528, %515
  %536 = load ptr, ptr %26, align 8, !tbaa !9
  %537 = load i32, ptr %536, align 1
  %538 = and i32 %537, 15
  %539 = icmp eq i32 %538, 1
  br i1 %539, label %540, label %799

540:                                              ; preds = %535
  %541 = load i32, ptr @swap, align 4, !tbaa !5
  %542 = icmp ne i32 %541, 0
  br i1 %542, label %543, label %787

543:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 15, ptr %66) #8
  %544 = load ptr, ptr %27, align 8, !tbaa !9
  %545 = load ptr, ptr %544, align 8, !tbaa !9
  %546 = load i32, ptr %39, align 4, !tbaa !5
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds i8, ptr %545, i64 %547
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %66, ptr align 1 %548, i64 15, i1 false)
  %549 = load ptr, ptr %26, align 8, !tbaa !9
  call void @llvm.memset.p0.i64(ptr align 1 %549, i8 0, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  store i32 0, ptr %68, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  store i64 0, ptr %69, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %550 = getelementptr inbounds i8, ptr %66, i64 0
  store ptr %550, ptr %70, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %551 = getelementptr inbounds i8, ptr %69, i64 7
  store ptr %551, ptr %71, align 8, !tbaa !9
  store i32 0, ptr %67, align 4, !tbaa !5
  br label %552

552:                                              ; preds = %563, %543
  %553 = load i32, ptr %67, align 4, !tbaa !5
  %554 = load i32, ptr %68, align 4, !tbaa !5
  %555 = add nsw i32 4, %554
  %556 = icmp slt i32 %553, %555
  br i1 %556, label %557, label %566

557:                                              ; preds = %552
  %558 = load ptr, ptr %70, align 8, !tbaa !9
  %559 = getelementptr inbounds i8, ptr %558, i32 1
  store ptr %559, ptr %70, align 8, !tbaa !9
  %560 = load i8, ptr %558, align 1, !tbaa !15
  %561 = load ptr, ptr %71, align 8, !tbaa !9
  %562 = getelementptr inbounds i8, ptr %561, i32 -1
  store ptr %562, ptr %71, align 8, !tbaa !9
  store i8 %560, ptr %561, align 1, !tbaa !15
  br label %563

563:                                              ; preds = %557
  %564 = load i32, ptr %67, align 4, !tbaa !5
  %565 = add nsw i32 %564, 8
  store i32 %565, ptr %67, align 4, !tbaa !5
  br label %552, !llvm.loop !20

566:                                              ; preds = %552
  %567 = load i64, ptr %69, align 8, !tbaa !13
  %568 = load i32, ptr %68, align 4, !tbaa !5
  %569 = sub nsw i32 60, %568
  %570 = zext i32 %569 to i64
  %571 = lshr i64 %567, %570
  %572 = trunc i64 %571 to i32
  %573 = load ptr, ptr %26, align 8, !tbaa !9
  %574 = zext i32 %572 to i64
  %575 = load i64, ptr %573, align 1
  %576 = and i64 %574, 15
  %577 = and i64 %575, -16
  %578 = or i64 %577, %576
  store i64 %578, ptr %573, align 1
  %579 = trunc i64 %576 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #8
  store i32 4, ptr %73, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  store i64 0, ptr %74, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  %580 = getelementptr inbounds i8, ptr %66, i64 0
  store ptr %580, ptr %75, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #8
  %581 = getelementptr inbounds i8, ptr %74, i64 7
  store ptr %581, ptr %76, align 8, !tbaa !9
  store i32 0, ptr %72, align 4, !tbaa !5
  br label %582

582:                                              ; preds = %593, %566
  %583 = load i32, ptr %72, align 4, !tbaa !5
  %584 = load i32, ptr %73, align 4, !tbaa !5
  %585 = add nsw i32 12, %584
  %586 = icmp slt i32 %583, %585
  br i1 %586, label %587, label %596

587:                                              ; preds = %582
  %588 = load ptr, ptr %75, align 8, !tbaa !9
  %589 = getelementptr inbounds i8, ptr %588, i32 1
  store ptr %589, ptr %75, align 8, !tbaa !9
  %590 = load i8, ptr %588, align 1, !tbaa !15
  %591 = load ptr, ptr %76, align 8, !tbaa !9
  %592 = getelementptr inbounds i8, ptr %591, i32 -1
  store ptr %592, ptr %76, align 8, !tbaa !9
  store i8 %590, ptr %591, align 1, !tbaa !15
  br label %593

593:                                              ; preds = %587
  %594 = load i32, ptr %72, align 4, !tbaa !5
  %595 = add nsw i32 %594, 8
  store i32 %595, ptr %72, align 4, !tbaa !5
  br label %582, !llvm.loop !21

596:                                              ; preds = %582
  %597 = load i64, ptr %74, align 8, !tbaa !13
  %598 = load i32, ptr %73, align 4, !tbaa !5
  %599 = sub nsw i32 52, %598
  %600 = zext i32 %599 to i64
  %601 = lshr i64 %597, %600
  %602 = trunc i64 %601 to i32
  %603 = load ptr, ptr %26, align 8, !tbaa !9
  %604 = zext i32 %602 to i64
  %605 = load i64, ptr %603, align 1
  %606 = and i64 %604, 4095
  %607 = shl i64 %606, 4
  %608 = and i64 %605, -65521
  %609 = or i64 %608, %607
  store i64 %609, ptr %603, align 1
  %610 = trunc i64 %606 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #8
  store i32 0, ptr %78, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  store i64 0, ptr %79, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %611 = getelementptr inbounds i8, ptr %66, i64 2
  store ptr %611, ptr %80, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  %612 = getelementptr inbounds i8, ptr %79, i64 7
  store ptr %612, ptr %81, align 8, !tbaa !9
  store i32 0, ptr %77, align 4, !tbaa !5
  br label %613

613:                                              ; preds = %624, %596
  %614 = load i32, ptr %77, align 4, !tbaa !5
  %615 = load i32, ptr %78, align 4, !tbaa !5
  %616 = add nsw i32 8, %615
  %617 = icmp slt i32 %614, %616
  br i1 %617, label %618, label %627

618:                                              ; preds = %613
  %619 = load ptr, ptr %80, align 8, !tbaa !9
  %620 = getelementptr inbounds i8, ptr %619, i32 1
  store ptr %620, ptr %80, align 8, !tbaa !9
  %621 = load i8, ptr %619, align 1, !tbaa !15
  %622 = load ptr, ptr %81, align 8, !tbaa !9
  %623 = getelementptr inbounds i8, ptr %622, i32 -1
  store ptr %623, ptr %81, align 8, !tbaa !9
  store i8 %621, ptr %622, align 1, !tbaa !15
  br label %624

624:                                              ; preds = %618
  %625 = load i32, ptr %77, align 4, !tbaa !5
  %626 = add nsw i32 %625, 8
  store i32 %626, ptr %77, align 4, !tbaa !5
  br label %613, !llvm.loop !22

627:                                              ; preds = %613
  %628 = load i64, ptr %79, align 8, !tbaa !13
  %629 = load i32, ptr %78, align 4, !tbaa !5
  %630 = sub nsw i32 56, %629
  %631 = zext i32 %630 to i64
  %632 = lshr i64 %628, %631
  %633 = trunc i64 %632 to i32
  %634 = load ptr, ptr %26, align 8, !tbaa !9
  %635 = zext i32 %633 to i64
  %636 = load i64, ptr %634, align 1
  %637 = and i64 %635, 255
  %638 = shl i64 %637, 16
  %639 = and i64 %636, -16711681
  %640 = or i64 %639, %638
  store i64 %640, ptr %634, align 1
  %641 = trunc i64 %637 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #8
  store i32 0, ptr %83, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #8
  store i64 0, ptr %84, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #8
  %642 = getelementptr inbounds i8, ptr %66, i64 3
  store ptr %642, ptr %85, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #8
  %643 = getelementptr inbounds i8, ptr %84, i64 7
  store ptr %643, ptr %86, align 8, !tbaa !9
  store i32 0, ptr %82, align 4, !tbaa !5
  br label %644

644:                                              ; preds = %655, %627
  %645 = load i32, ptr %82, align 4, !tbaa !5
  %646 = load i32, ptr %83, align 4, !tbaa !5
  %647 = add nsw i32 8, %646
  %648 = icmp slt i32 %645, %647
  br i1 %648, label %649, label %658

649:                                              ; preds = %644
  %650 = load ptr, ptr %85, align 8, !tbaa !9
  %651 = getelementptr inbounds i8, ptr %650, i32 1
  store ptr %651, ptr %85, align 8, !tbaa !9
  %652 = load i8, ptr %650, align 1, !tbaa !15
  %653 = load ptr, ptr %86, align 8, !tbaa !9
  %654 = getelementptr inbounds i8, ptr %653, i32 -1
  store ptr %654, ptr %86, align 8, !tbaa !9
  store i8 %652, ptr %653, align 1, !tbaa !15
  br label %655

655:                                              ; preds = %649
  %656 = load i32, ptr %82, align 4, !tbaa !5
  %657 = add nsw i32 %656, 8
  store i32 %657, ptr %82, align 4, !tbaa !5
  br label %644, !llvm.loop !23

658:                                              ; preds = %644
  %659 = load i64, ptr %84, align 8, !tbaa !13
  %660 = load i32, ptr %83, align 4, !tbaa !5
  %661 = sub nsw i32 56, %660
  %662 = zext i32 %661 to i64
  %663 = lshr i64 %659, %662
  %664 = trunc i64 %663 to i32
  %665 = load ptr, ptr %26, align 8, !tbaa !9
  %666 = zext i32 %664 to i64
  %667 = load i64, ptr %665, align 1
  %668 = and i64 %666, 255
  %669 = shl i64 %668, 24
  %670 = and i64 %667, -4278190081
  %671 = or i64 %670, %669
  store i64 %671, ptr %665, align 1
  %672 = trunc i64 %668 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  store i32 0, ptr %88, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #8
  store i64 0, ptr %89, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #8
  %673 = getelementptr inbounds i8, ptr %66, i64 4
  store ptr %673, ptr %90, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #8
  %674 = getelementptr inbounds i8, ptr %89, i64 7
  store ptr %674, ptr %91, align 8, !tbaa !9
  store i32 0, ptr %87, align 4, !tbaa !5
  br label %675

675:                                              ; preds = %686, %658
  %676 = load i32, ptr %87, align 4, !tbaa !5
  %677 = load i32, ptr %88, align 4, !tbaa !5
  %678 = add nsw i32 19, %677
  %679 = icmp slt i32 %676, %678
  br i1 %679, label %680, label %689

680:                                              ; preds = %675
  %681 = load ptr, ptr %90, align 8, !tbaa !9
  %682 = getelementptr inbounds i8, ptr %681, i32 1
  store ptr %682, ptr %90, align 8, !tbaa !9
  %683 = load i8, ptr %681, align 1, !tbaa !15
  %684 = load ptr, ptr %91, align 8, !tbaa !9
  %685 = getelementptr inbounds i8, ptr %684, i32 -1
  store ptr %685, ptr %91, align 8, !tbaa !9
  store i8 %683, ptr %684, align 1, !tbaa !15
  br label %686

686:                                              ; preds = %680
  %687 = load i32, ptr %87, align 4, !tbaa !5
  %688 = add nsw i32 %687, 8
  store i32 %688, ptr %87, align 4, !tbaa !5
  br label %675, !llvm.loop !24

689:                                              ; preds = %675
  %690 = load i64, ptr %89, align 8, !tbaa !13
  %691 = load i32, ptr %88, align 4, !tbaa !5
  %692 = sub nsw i32 45, %691
  %693 = zext i32 %692 to i64
  %694 = lshr i64 %690, %693
  %695 = trunc i64 %694 to i32
  %696 = load ptr, ptr %26, align 8, !tbaa !9
  %697 = zext i32 %695 to i64
  %698 = load i64, ptr %696, align 1
  %699 = and i64 %697, 524287
  %700 = shl i64 %699, 32
  %701 = and i64 %698, -2251795518717953
  %702 = or i64 %701, %700
  store i64 %702, ptr %696, align 1
  %703 = trunc i64 %699 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  store i32 3, ptr %93, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  store i64 0, ptr %94, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %704 = getelementptr inbounds i8, ptr %66, i64 6
  store ptr %704, ptr %95, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  %705 = getelementptr inbounds i8, ptr %94, i64 7
  store ptr %705, ptr %96, align 8, !tbaa !9
  store i32 0, ptr %92, align 4, !tbaa !5
  br label %706

706:                                              ; preds = %717, %689
  %707 = load i32, ptr %92, align 4, !tbaa !5
  %708 = load i32, ptr %93, align 4, !tbaa !5
  %709 = add nsw i32 13, %708
  %710 = icmp slt i32 %707, %709
  br i1 %710, label %711, label %720

711:                                              ; preds = %706
  %712 = load ptr, ptr %95, align 8, !tbaa !9
  %713 = getelementptr inbounds i8, ptr %712, i32 1
  store ptr %713, ptr %95, align 8, !tbaa !9
  %714 = load i8, ptr %712, align 1, !tbaa !15
  %715 = load ptr, ptr %96, align 8, !tbaa !9
  %716 = getelementptr inbounds i8, ptr %715, i32 -1
  store ptr %716, ptr %96, align 8, !tbaa !9
  store i8 %714, ptr %715, align 1, !tbaa !15
  br label %717

717:                                              ; preds = %711
  %718 = load i32, ptr %92, align 4, !tbaa !5
  %719 = add nsw i32 %718, 8
  store i32 %719, ptr %92, align 4, !tbaa !5
  br label %706, !llvm.loop !25

720:                                              ; preds = %706
  %721 = load i64, ptr %94, align 8, !tbaa !13
  %722 = load i32, ptr %93, align 4, !tbaa !5
  %723 = sub nsw i32 51, %722
  %724 = zext i32 %723 to i64
  %725 = lshr i64 %721, %724
  %726 = trunc i64 %725 to i32
  %727 = load ptr, ptr %26, align 8, !tbaa !9
  %728 = zext i32 %726 to i64
  %729 = load i64, ptr %727, align 1
  %730 = and i64 %728, 8191
  %731 = shl i64 %730, 51
  %732 = and i64 %729, 2251799813685247
  %733 = or i64 %732, %731
  store i64 %733, ptr %727, align 1
  %734 = trunc i64 %730 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #8
  store i32 0, ptr %98, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #8
  store i64 0, ptr %99, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #8
  %735 = getelementptr inbounds i8, ptr %66, i64 8
  store ptr %735, ptr %100, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  %736 = getelementptr inbounds i8, ptr %99, i64 7
  store ptr %736, ptr %101, align 8, !tbaa !9
  store i32 0, ptr %97, align 4, !tbaa !5
  br label %737

737:                                              ; preds = %748, %720
  %738 = load i32, ptr %97, align 4, !tbaa !5
  %739 = load i32, ptr %98, align 4, !tbaa !5
  %740 = add nsw i32 32, %739
  %741 = icmp slt i32 %738, %740
  br i1 %741, label %742, label %751

742:                                              ; preds = %737
  %743 = load ptr, ptr %100, align 8, !tbaa !9
  %744 = getelementptr inbounds i8, ptr %743, i32 1
  store ptr %744, ptr %100, align 8, !tbaa !9
  %745 = load i8, ptr %743, align 1, !tbaa !15
  %746 = load ptr, ptr %101, align 8, !tbaa !9
  %747 = getelementptr inbounds i8, ptr %746, i32 -1
  store ptr %747, ptr %101, align 8, !tbaa !9
  store i8 %745, ptr %746, align 1, !tbaa !15
  br label %748

748:                                              ; preds = %742
  %749 = load i32, ptr %97, align 4, !tbaa !5
  %750 = add nsw i32 %749, 8
  store i32 %750, ptr %97, align 4, !tbaa !5
  br label %737, !llvm.loop !26

751:                                              ; preds = %737
  %752 = load i64, ptr %99, align 8, !tbaa !13
  %753 = load i32, ptr %98, align 4, !tbaa !5
  %754 = sub nsw i32 32, %753
  %755 = zext i32 %754 to i64
  %756 = lshr i64 %752, %755
  %757 = trunc i64 %756 to i32
  %758 = load ptr, ptr %26, align 8, !tbaa !9
  %759 = getelementptr inbounds %struct.squashfs_dir_inode_header, ptr %758, i32 0, i32 1
  store i32 %757, ptr %759, align 1, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #8
  store i32 0, ptr %103, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #8
  store i64 0, ptr %104, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #8
  %760 = getelementptr inbounds i8, ptr %66, i64 12
  store ptr %760, ptr %105, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  %761 = getelementptr inbounds i8, ptr %104, i64 7
  store ptr %761, ptr %106, align 8, !tbaa !9
  store i32 0, ptr %102, align 4, !tbaa !5
  br label %762

762:                                              ; preds = %773, %751
  %763 = load i32, ptr %102, align 4, !tbaa !5
  %764 = load i32, ptr %103, align 4, !tbaa !5
  %765 = add nsw i32 24, %764
  %766 = icmp slt i32 %763, %765
  br i1 %766, label %767, label %776

767:                                              ; preds = %762
  %768 = load ptr, ptr %105, align 8, !tbaa !9
  %769 = getelementptr inbounds i8, ptr %768, i32 1
  store ptr %769, ptr %105, align 8, !tbaa !9
  %770 = load i8, ptr %768, align 1, !tbaa !15
  %771 = load ptr, ptr %106, align 8, !tbaa !9
  %772 = getelementptr inbounds i8, ptr %771, i32 -1
  store ptr %772, ptr %106, align 8, !tbaa !9
  store i8 %770, ptr %771, align 1, !tbaa !15
  br label %773

773:                                              ; preds = %767
  %774 = load i32, ptr %102, align 4, !tbaa !5
  %775 = add nsw i32 %774, 8
  store i32 %775, ptr %102, align 4, !tbaa !5
  br label %762, !llvm.loop !27

776:                                              ; preds = %762
  %777 = load i64, ptr %104, align 8, !tbaa !13
  %778 = load i32, ptr %103, align 4, !tbaa !5
  %779 = sub nsw i32 40, %778
  %780 = zext i32 %779 to i64
  %781 = lshr i64 %777, %780
  %782 = trunc i64 %781 to i32
  %783 = load ptr, ptr %26, align 8, !tbaa !9
  %784 = getelementptr inbounds %struct.squashfs_dir_inode_header, ptr %783, i32 0, i32 2
  %785 = trunc i32 %782 to i24
  store i24 %785, ptr %784, align 1
  %786 = zext i24 %785 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 15, ptr %66) #8
  br label %794

787:                                              ; preds = %540
  %788 = load ptr, ptr %26, align 8, !tbaa !9
  %789 = load ptr, ptr %27, align 8, !tbaa !9
  %790 = load ptr, ptr %789, align 8, !tbaa !9
  %791 = load i32, ptr %39, align 4, !tbaa !5
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds i8, ptr %790, i64 %792
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %788, ptr align 1 %793, i64 15, i1 false)
  br label %794

794:                                              ; preds = %787, %776
  %795 = load ptr, ptr %26, align 8, !tbaa !9
  %796 = getelementptr inbounds %struct.squashfs_dir_inode_header, ptr %795, i32 0, i32 2
  %797 = load i24, ptr %796, align 1
  %798 = zext i24 %797 to i32
  store i32 %798, ptr %43, align 4, !tbaa !5
  br label %1078

799:                                              ; preds = %535
  %800 = load i32, ptr @swap, align 4, !tbaa !5
  %801 = icmp ne i32 %800, 0
  br i1 %801, label %802, label %1066

802:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 18, ptr %107) #8
  %803 = load ptr, ptr %27, align 8, !tbaa !9
  %804 = load ptr, ptr %803, align 8, !tbaa !9
  %805 = load i32, ptr %39, align 4, !tbaa !5
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds i8, ptr %804, i64 %806
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %107, ptr align 1 %807, i64 18, i1 false)
  %808 = load ptr, ptr %26, align 8, !tbaa !9
  call void @llvm.memset.p0.i64(ptr align 1 %808, i8 0, i64 18, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #8
  store i32 0, ptr %109, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #8
  store i64 0, ptr %110, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #8
  %809 = getelementptr inbounds i8, ptr %107, i64 0
  store ptr %809, ptr %111, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #8
  %810 = getelementptr inbounds i8, ptr %110, i64 7
  store ptr %810, ptr %112, align 8, !tbaa !9
  store i32 0, ptr %108, align 4, !tbaa !5
  br label %811

811:                                              ; preds = %822, %802
  %812 = load i32, ptr %108, align 4, !tbaa !5
  %813 = load i32, ptr %109, align 4, !tbaa !5
  %814 = add nsw i32 4, %813
  %815 = icmp slt i32 %812, %814
  br i1 %815, label %816, label %825

816:                                              ; preds = %811
  %817 = load ptr, ptr %111, align 8, !tbaa !9
  %818 = getelementptr inbounds i8, ptr %817, i32 1
  store ptr %818, ptr %111, align 8, !tbaa !9
  %819 = load i8, ptr %817, align 1, !tbaa !15
  %820 = load ptr, ptr %112, align 8, !tbaa !9
  %821 = getelementptr inbounds i8, ptr %820, i32 -1
  store ptr %821, ptr %112, align 8, !tbaa !9
  store i8 %819, ptr %820, align 1, !tbaa !15
  br label %822

822:                                              ; preds = %816
  %823 = load i32, ptr %108, align 4, !tbaa !5
  %824 = add nsw i32 %823, 8
  store i32 %824, ptr %108, align 4, !tbaa !5
  br label %811, !llvm.loop !28

825:                                              ; preds = %811
  %826 = load i64, ptr %110, align 8, !tbaa !13
  %827 = load i32, ptr %109, align 4, !tbaa !5
  %828 = sub nsw i32 60, %827
  %829 = zext i32 %828 to i64
  %830 = lshr i64 %826, %829
  %831 = trunc i64 %830 to i32
  %832 = load ptr, ptr %26, align 8, !tbaa !9
  %833 = load i32, ptr %832, align 1
  %834 = and i32 %831, 15
  %835 = and i32 %833, -16
  %836 = or i32 %835, %834
  store i32 %836, ptr %832, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #8
  store i32 4, ptr %114, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #8
  store i64 0, ptr %115, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #8
  %837 = getelementptr inbounds i8, ptr %107, i64 0
  store ptr %837, ptr %116, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #8
  %838 = getelementptr inbounds i8, ptr %115, i64 7
  store ptr %838, ptr %117, align 8, !tbaa !9
  store i32 0, ptr %113, align 4, !tbaa !5
  br label %839

839:                                              ; preds = %850, %825
  %840 = load i32, ptr %113, align 4, !tbaa !5
  %841 = load i32, ptr %114, align 4, !tbaa !5
  %842 = add nsw i32 12, %841
  %843 = icmp slt i32 %840, %842
  br i1 %843, label %844, label %853

844:                                              ; preds = %839
  %845 = load ptr, ptr %116, align 8, !tbaa !9
  %846 = getelementptr inbounds i8, ptr %845, i32 1
  store ptr %846, ptr %116, align 8, !tbaa !9
  %847 = load i8, ptr %845, align 1, !tbaa !15
  %848 = load ptr, ptr %117, align 8, !tbaa !9
  %849 = getelementptr inbounds i8, ptr %848, i32 -1
  store ptr %849, ptr %117, align 8, !tbaa !9
  store i8 %847, ptr %848, align 1, !tbaa !15
  br label %850

850:                                              ; preds = %844
  %851 = load i32, ptr %113, align 4, !tbaa !5
  %852 = add nsw i32 %851, 8
  store i32 %852, ptr %113, align 4, !tbaa !5
  br label %839, !llvm.loop !29

853:                                              ; preds = %839
  %854 = load i64, ptr %115, align 8, !tbaa !13
  %855 = load i32, ptr %114, align 4, !tbaa !5
  %856 = sub nsw i32 52, %855
  %857 = zext i32 %856 to i64
  %858 = lshr i64 %854, %857
  %859 = trunc i64 %858 to i32
  %860 = load ptr, ptr %26, align 8, !tbaa !9
  %861 = load i32, ptr %860, align 1
  %862 = and i32 %859, 4095
  %863 = shl i32 %862, 4
  %864 = and i32 %861, -65521
  %865 = or i32 %864, %863
  store i32 %865, ptr %860, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #8
  store i32 0, ptr %119, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #8
  store i64 0, ptr %120, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #8
  %866 = getelementptr inbounds i8, ptr %107, i64 2
  store ptr %866, ptr %121, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #8
  %867 = getelementptr inbounds i8, ptr %120, i64 7
  store ptr %867, ptr %122, align 8, !tbaa !9
  store i32 0, ptr %118, align 4, !tbaa !5
  br label %868

868:                                              ; preds = %879, %853
  %869 = load i32, ptr %118, align 4, !tbaa !5
  %870 = load i32, ptr %119, align 4, !tbaa !5
  %871 = add nsw i32 8, %870
  %872 = icmp slt i32 %869, %871
  br i1 %872, label %873, label %882

873:                                              ; preds = %868
  %874 = load ptr, ptr %121, align 8, !tbaa !9
  %875 = getelementptr inbounds i8, ptr %874, i32 1
  store ptr %875, ptr %121, align 8, !tbaa !9
  %876 = load i8, ptr %874, align 1, !tbaa !15
  %877 = load ptr, ptr %122, align 8, !tbaa !9
  %878 = getelementptr inbounds i8, ptr %877, i32 -1
  store ptr %878, ptr %122, align 8, !tbaa !9
  store i8 %876, ptr %877, align 1, !tbaa !15
  br label %879

879:                                              ; preds = %873
  %880 = load i32, ptr %118, align 4, !tbaa !5
  %881 = add nsw i32 %880, 8
  store i32 %881, ptr %118, align 4, !tbaa !5
  br label %868, !llvm.loop !30

882:                                              ; preds = %868
  %883 = load i64, ptr %120, align 8, !tbaa !13
  %884 = load i32, ptr %119, align 4, !tbaa !5
  %885 = sub nsw i32 56, %884
  %886 = zext i32 %885 to i64
  %887 = lshr i64 %883, %886
  %888 = trunc i64 %887 to i32
  %889 = load ptr, ptr %26, align 8, !tbaa !9
  %890 = load i32, ptr %889, align 1
  %891 = and i32 %888, 255
  %892 = shl i32 %891, 16
  %893 = and i32 %890, -16711681
  %894 = or i32 %893, %892
  store i32 %894, ptr %889, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #8
  store i32 0, ptr %124, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #8
  store i64 0, ptr %125, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #8
  %895 = getelementptr inbounds i8, ptr %107, i64 3
  store ptr %895, ptr %126, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #8
  %896 = getelementptr inbounds i8, ptr %125, i64 7
  store ptr %896, ptr %127, align 8, !tbaa !9
  store i32 0, ptr %123, align 4, !tbaa !5
  br label %897

897:                                              ; preds = %908, %882
  %898 = load i32, ptr %123, align 4, !tbaa !5
  %899 = load i32, ptr %124, align 4, !tbaa !5
  %900 = add nsw i32 8, %899
  %901 = icmp slt i32 %898, %900
  br i1 %901, label %902, label %911

902:                                              ; preds = %897
  %903 = load ptr, ptr %126, align 8, !tbaa !9
  %904 = getelementptr inbounds i8, ptr %903, i32 1
  store ptr %904, ptr %126, align 8, !tbaa !9
  %905 = load i8, ptr %903, align 1, !tbaa !15
  %906 = load ptr, ptr %127, align 8, !tbaa !9
  %907 = getelementptr inbounds i8, ptr %906, i32 -1
  store ptr %907, ptr %127, align 8, !tbaa !9
  store i8 %905, ptr %906, align 1, !tbaa !15
  br label %908

908:                                              ; preds = %902
  %909 = load i32, ptr %123, align 4, !tbaa !5
  %910 = add nsw i32 %909, 8
  store i32 %910, ptr %123, align 4, !tbaa !5
  br label %897, !llvm.loop !31

911:                                              ; preds = %897
  %912 = load i64, ptr %125, align 8, !tbaa !13
  %913 = load i32, ptr %124, align 4, !tbaa !5
  %914 = sub nsw i32 56, %913
  %915 = zext i32 %914 to i64
  %916 = lshr i64 %912, %915
  %917 = trunc i64 %916 to i32
  %918 = load ptr, ptr %26, align 8, !tbaa !9
  %919 = load i32, ptr %918, align 1
  %920 = and i32 %917, 255
  %921 = shl i32 %920, 24
  %922 = and i32 %919, 16777215
  %923 = or i32 %922, %921
  store i32 %923, ptr %918, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #8
  store i32 0, ptr %129, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #8
  store i64 0, ptr %130, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #8
  %924 = getelementptr inbounds i8, ptr %107, i64 4
  store ptr %924, ptr %131, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #8
  %925 = getelementptr inbounds i8, ptr %130, i64 7
  store ptr %925, ptr %132, align 8, !tbaa !9
  store i32 0, ptr %128, align 4, !tbaa !5
  br label %926

926:                                              ; preds = %937, %911
  %927 = load i32, ptr %128, align 4, !tbaa !5
  %928 = load i32, ptr %129, align 4, !tbaa !5
  %929 = add nsw i32 27, %928
  %930 = icmp slt i32 %927, %929
  br i1 %930, label %931, label %940

931:                                              ; preds = %926
  %932 = load ptr, ptr %131, align 8, !tbaa !9
  %933 = getelementptr inbounds i8, ptr %932, i32 1
  store ptr %933, ptr %131, align 8, !tbaa !9
  %934 = load i8, ptr %932, align 1, !tbaa !15
  %935 = load ptr, ptr %132, align 8, !tbaa !9
  %936 = getelementptr inbounds i8, ptr %935, i32 -1
  store ptr %936, ptr %132, align 8, !tbaa !9
  store i8 %934, ptr %935, align 1, !tbaa !15
  br label %937

937:                                              ; preds = %931
  %938 = load i32, ptr %128, align 4, !tbaa !5
  %939 = add nsw i32 %938, 8
  store i32 %939, ptr %128, align 4, !tbaa !5
  br label %926, !llvm.loop !32

940:                                              ; preds = %926
  %941 = load i64, ptr %130, align 8, !tbaa !13
  %942 = load i32, ptr %129, align 4, !tbaa !5
  %943 = sub nsw i32 37, %942
  %944 = zext i32 %943 to i64
  %945 = lshr i64 %941, %944
  %946 = trunc i64 %945 to i32
  %947 = load ptr, ptr %26, align 8, !tbaa !9
  %948 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %947, i32 0, i32 1
  %949 = zext i32 %946 to i40
  %950 = load i40, ptr %948, align 1
  %951 = and i40 %949, 134217727
  %952 = and i40 %950, -134217728
  %953 = or i40 %952, %951
  store i40 %953, ptr %948, align 1
  %954 = trunc i40 %951 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #8
  store i32 3, ptr %134, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #8
  store i64 0, ptr %135, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #8
  %955 = getelementptr inbounds i8, ptr %107, i64 7
  store ptr %955, ptr %136, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #8
  %956 = getelementptr inbounds i8, ptr %135, i64 7
  store ptr %956, ptr %137, align 8, !tbaa !9
  store i32 0, ptr %133, align 4, !tbaa !5
  br label %957

957:                                              ; preds = %968, %940
  %958 = load i32, ptr %133, align 4, !tbaa !5
  %959 = load i32, ptr %134, align 4, !tbaa !5
  %960 = add nsw i32 13, %959
  %961 = icmp slt i32 %958, %960
  br i1 %961, label %962, label %971

962:                                              ; preds = %957
  %963 = load ptr, ptr %136, align 8, !tbaa !9
  %964 = getelementptr inbounds i8, ptr %963, i32 1
  store ptr %964, ptr %136, align 8, !tbaa !9
  %965 = load i8, ptr %963, align 1, !tbaa !15
  %966 = load ptr, ptr %137, align 8, !tbaa !9
  %967 = getelementptr inbounds i8, ptr %966, i32 -1
  store ptr %967, ptr %137, align 8, !tbaa !9
  store i8 %965, ptr %966, align 1, !tbaa !15
  br label %968

968:                                              ; preds = %962
  %969 = load i32, ptr %133, align 4, !tbaa !5
  %970 = add nsw i32 %969, 8
  store i32 %970, ptr %133, align 4, !tbaa !5
  br label %957, !llvm.loop !33

971:                                              ; preds = %957
  %972 = load i64, ptr %135, align 8, !tbaa !13
  %973 = load i32, ptr %134, align 4, !tbaa !5
  %974 = sub nsw i32 51, %973
  %975 = zext i32 %974 to i64
  %976 = lshr i64 %972, %975
  %977 = trunc i64 %976 to i32
  %978 = load ptr, ptr %26, align 8, !tbaa !9
  %979 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %978, i32 0, i32 1
  %980 = zext i32 %977 to i40
  %981 = load i40, ptr %979, align 1
  %982 = and i40 %980, 8191
  %983 = shl i40 %982, 27
  %984 = and i40 %981, 134217727
  %985 = or i40 %984, %983
  store i40 %985, ptr %979, align 1
  %986 = trunc i40 %982 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #8
  store i32 0, ptr %139, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #8
  store i64 0, ptr %140, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #8
  %987 = getelementptr inbounds i8, ptr %107, i64 9
  store ptr %987, ptr %141, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #8
  %988 = getelementptr inbounds i8, ptr %140, i64 7
  store ptr %988, ptr %142, align 8, !tbaa !9
  store i32 0, ptr %138, align 4, !tbaa !5
  br label %989

989:                                              ; preds = %1000, %971
  %990 = load i32, ptr %138, align 4, !tbaa !5
  %991 = load i32, ptr %139, align 4, !tbaa !5
  %992 = add nsw i32 32, %991
  %993 = icmp slt i32 %990, %992
  br i1 %993, label %994, label %1003

994:                                              ; preds = %989
  %995 = load ptr, ptr %141, align 8, !tbaa !9
  %996 = getelementptr inbounds i8, ptr %995, i32 1
  store ptr %996, ptr %141, align 8, !tbaa !9
  %997 = load i8, ptr %995, align 1, !tbaa !15
  %998 = load ptr, ptr %142, align 8, !tbaa !9
  %999 = getelementptr inbounds i8, ptr %998, i32 -1
  store ptr %999, ptr %142, align 8, !tbaa !9
  store i8 %997, ptr %998, align 1, !tbaa !15
  br label %1000

1000:                                             ; preds = %994
  %1001 = load i32, ptr %138, align 4, !tbaa !5
  %1002 = add nsw i32 %1001, 8
  store i32 %1002, ptr %138, align 4, !tbaa !5
  br label %989, !llvm.loop !34

1003:                                             ; preds = %989
  %1004 = load i64, ptr %140, align 8, !tbaa !13
  %1005 = load i32, ptr %139, align 4, !tbaa !5
  %1006 = sub nsw i32 32, %1005
  %1007 = zext i32 %1006 to i64
  %1008 = lshr i64 %1004, %1007
  %1009 = trunc i64 %1008 to i32
  %1010 = load ptr, ptr %26, align 8, !tbaa !9
  %1011 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %1010, i32 0, i32 2
  store i32 %1009, ptr %1011, align 1, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #8
  store i32 0, ptr %144, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #8
  store i64 0, ptr %145, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #8
  %1012 = getelementptr inbounds i8, ptr %107, i64 13
  store ptr %1012, ptr %146, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #8
  %1013 = getelementptr inbounds i8, ptr %145, i64 7
  store ptr %1013, ptr %147, align 8, !tbaa !9
  store i32 0, ptr %143, align 4, !tbaa !5
  br label %1014

1014:                                             ; preds = %1025, %1003
  %1015 = load i32, ptr %143, align 4, !tbaa !5
  %1016 = load i32, ptr %144, align 4, !tbaa !5
  %1017 = add nsw i32 24, %1016
  %1018 = icmp slt i32 %1015, %1017
  br i1 %1018, label %1019, label %1028

1019:                                             ; preds = %1014
  %1020 = load ptr, ptr %146, align 8, !tbaa !9
  %1021 = getelementptr inbounds i8, ptr %1020, i32 1
  store ptr %1021, ptr %146, align 8, !tbaa !9
  %1022 = load i8, ptr %1020, align 1, !tbaa !15
  %1023 = load ptr, ptr %147, align 8, !tbaa !9
  %1024 = getelementptr inbounds i8, ptr %1023, i32 -1
  store ptr %1024, ptr %147, align 8, !tbaa !9
  store i8 %1022, ptr %1023, align 1, !tbaa !15
  br label %1025

1025:                                             ; preds = %1019
  %1026 = load i32, ptr %143, align 4, !tbaa !5
  %1027 = add nsw i32 %1026, 8
  store i32 %1027, ptr %143, align 4, !tbaa !5
  br label %1014, !llvm.loop !35

1028:                                             ; preds = %1014
  %1029 = load i64, ptr %145, align 8, !tbaa !13
  %1030 = load i32, ptr %144, align 4, !tbaa !5
  %1031 = sub nsw i32 40, %1030
  %1032 = zext i32 %1031 to i64
  %1033 = lshr i64 %1029, %1032
  %1034 = trunc i64 %1033 to i32
  %1035 = load ptr, ptr %26, align 8, !tbaa !9
  %1036 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %1035, i32 0, i32 3
  %1037 = trunc i32 %1034 to i24
  store i24 %1037, ptr %1036, align 1
  %1038 = zext i24 %1037 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #8
  store i32 0, ptr %149, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #8
  store i64 0, ptr %150, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #8
  %1039 = getelementptr inbounds i8, ptr %107, i64 16
  store ptr %1039, ptr %151, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #8
  %1040 = getelementptr inbounds i8, ptr %150, i64 7
  store ptr %1040, ptr %152, align 8, !tbaa !9
  store i32 0, ptr %148, align 4, !tbaa !5
  br label %1041

1041:                                             ; preds = %1052, %1028
  %1042 = load i32, ptr %148, align 4, !tbaa !5
  %1043 = load i32, ptr %149, align 4, !tbaa !5
  %1044 = add nsw i32 16, %1043
  %1045 = icmp slt i32 %1042, %1044
  br i1 %1045, label %1046, label %1055

1046:                                             ; preds = %1041
  %1047 = load ptr, ptr %151, align 8, !tbaa !9
  %1048 = getelementptr inbounds i8, ptr %1047, i32 1
  store ptr %1048, ptr %151, align 8, !tbaa !9
  %1049 = load i8, ptr %1047, align 1, !tbaa !15
  %1050 = load ptr, ptr %152, align 8, !tbaa !9
  %1051 = getelementptr inbounds i8, ptr %1050, i32 -1
  store ptr %1051, ptr %152, align 8, !tbaa !9
  store i8 %1049, ptr %1050, align 1, !tbaa !15
  br label %1052

1052:                                             ; preds = %1046
  %1053 = load i32, ptr %148, align 4, !tbaa !5
  %1054 = add nsw i32 %1053, 8
  store i32 %1054, ptr %148, align 4, !tbaa !5
  br label %1041, !llvm.loop !36

1055:                                             ; preds = %1041
  %1056 = load i64, ptr %150, align 8, !tbaa !13
  %1057 = load i32, ptr %149, align 4, !tbaa !5
  %1058 = sub nsw i32 48, %1057
  %1059 = zext i32 %1058 to i64
  %1060 = lshr i64 %1056, %1059
  %1061 = trunc i64 %1060 to i32
  %1062 = load ptr, ptr %26, align 8, !tbaa !9
  %1063 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %1062, i32 0, i32 4
  %1064 = trunc i32 %1061 to i16
  store i16 %1064, ptr %1063, align 1
  %1065 = zext i16 %1064 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #8
  call void @llvm.lifetime.end.p0(i64 18, ptr %107) #8
  br label %1073

1066:                                             ; preds = %799
  %1067 = load ptr, ptr %26, align 8, !tbaa !9
  %1068 = load ptr, ptr %27, align 8, !tbaa !9
  %1069 = load ptr, ptr %1068, align 8, !tbaa !9
  %1070 = load i32, ptr %39, align 4, !tbaa !5
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds i8, ptr %1069, i64 %1071
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1067, ptr align 1 %1072, i64 18, i1 false)
  br label %1073

1073:                                             ; preds = %1066, %1055
  %1074 = load ptr, ptr %26, align 8, !tbaa !9
  %1075 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %1074, i32 0, i32 3
  %1076 = load i24, ptr %1075, align 1
  %1077 = zext i24 %1076 to i32
  store i32 %1077, ptr %43, align 4, !tbaa !5
  br label %1078

1078:                                             ; preds = %1073, %794
  %1079 = load ptr, ptr %27, align 8, !tbaa !9
  %1080 = load ptr, ptr %1079, align 8, !tbaa !9
  store ptr %1080, ptr %38, align 8, !tbaa !9
  br label %1081

1081:                                             ; preds = %2311, %1078
  %1082 = load ptr, ptr %38, align 8, !tbaa !9
  %1083 = load ptr, ptr %27, align 8, !tbaa !9
  %1084 = load ptr, ptr %1083, align 8, !tbaa !9
  %1085 = load i32, ptr %39, align 4, !tbaa !5
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds i8, ptr %1084, i64 %1086
  %1088 = icmp ult ptr %1082, %1087
  br i1 %1088, label %1089, label %2314

1089:                                             ; preds = %1081
  %1090 = load i32, ptr @swap, align 4, !tbaa !5
  %1091 = icmp ne i32 %1090, 0
  br i1 %1091, label %1092, label %1325

1092:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 24, ptr %153) #8
  %1093 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %153, ptr align 1 %1093, i64 24, i1 false)
  call void @llvm.memset.p0.i64(ptr align 1 %42, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #8
  store i32 0, ptr %155, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #8
  store i64 0, ptr %156, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #8
  %1094 = getelementptr inbounds i8, ptr %153, i64 0
  store ptr %1094, ptr %157, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #8
  %1095 = getelementptr inbounds i8, ptr %156, i64 7
  store ptr %1095, ptr %158, align 8, !tbaa !9
  store i32 0, ptr %154, align 4, !tbaa !5
  br label %1096

1096:                                             ; preds = %1107, %1092
  %1097 = load i32, ptr %154, align 4, !tbaa !5
  %1098 = load i32, ptr %155, align 4, !tbaa !5
  %1099 = add nsw i32 4, %1098
  %1100 = icmp slt i32 %1097, %1099
  br i1 %1100, label %1101, label %1110

1101:                                             ; preds = %1096
  %1102 = load ptr, ptr %157, align 8, !tbaa !9
  %1103 = getelementptr inbounds i8, ptr %1102, i32 1
  store ptr %1103, ptr %157, align 8, !tbaa !9
  %1104 = load i8, ptr %1102, align 1, !tbaa !15
  %1105 = load ptr, ptr %158, align 8, !tbaa !9
  %1106 = getelementptr inbounds i8, ptr %1105, i32 -1
  store ptr %1106, ptr %158, align 8, !tbaa !9
  store i8 %1104, ptr %1105, align 1, !tbaa !15
  br label %1107

1107:                                             ; preds = %1101
  %1108 = load i32, ptr %154, align 4, !tbaa !5
  %1109 = add nsw i32 %1108, 8
  store i32 %1109, ptr %154, align 4, !tbaa !5
  br label %1096, !llvm.loop !37

1110:                                             ; preds = %1096
  %1111 = load i64, ptr %156, align 8, !tbaa !13
  %1112 = load i32, ptr %155, align 4, !tbaa !5
  %1113 = sub nsw i32 60, %1112
  %1114 = zext i32 %1113 to i64
  %1115 = lshr i64 %1111, %1114
  %1116 = trunc i64 %1115 to i32
  %1117 = load i32, ptr %42, align 1
  %1118 = and i32 %1116, 15
  %1119 = and i32 %1117, -16
  %1120 = or i32 %1119, %1118
  store i32 %1120, ptr %42, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #8
  store i32 4, ptr %160, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #8
  store i64 0, ptr %161, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #8
  %1121 = getelementptr inbounds i8, ptr %153, i64 0
  store ptr %1121, ptr %162, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #8
  %1122 = getelementptr inbounds i8, ptr %161, i64 7
  store ptr %1122, ptr %163, align 8, !tbaa !9
  store i32 0, ptr %159, align 4, !tbaa !5
  br label %1123

1123:                                             ; preds = %1134, %1110
  %1124 = load i32, ptr %159, align 4, !tbaa !5
  %1125 = load i32, ptr %160, align 4, !tbaa !5
  %1126 = add nsw i32 12, %1125
  %1127 = icmp slt i32 %1124, %1126
  br i1 %1127, label %1128, label %1137

1128:                                             ; preds = %1123
  %1129 = load ptr, ptr %162, align 8, !tbaa !9
  %1130 = getelementptr inbounds i8, ptr %1129, i32 1
  store ptr %1130, ptr %162, align 8, !tbaa !9
  %1131 = load i8, ptr %1129, align 1, !tbaa !15
  %1132 = load ptr, ptr %163, align 8, !tbaa !9
  %1133 = getelementptr inbounds i8, ptr %1132, i32 -1
  store ptr %1133, ptr %163, align 8, !tbaa !9
  store i8 %1131, ptr %1132, align 1, !tbaa !15
  br label %1134

1134:                                             ; preds = %1128
  %1135 = load i32, ptr %159, align 4, !tbaa !5
  %1136 = add nsw i32 %1135, 8
  store i32 %1136, ptr %159, align 4, !tbaa !5
  br label %1123, !llvm.loop !38

1137:                                             ; preds = %1123
  %1138 = load i64, ptr %161, align 8, !tbaa !13
  %1139 = load i32, ptr %160, align 4, !tbaa !5
  %1140 = sub nsw i32 52, %1139
  %1141 = zext i32 %1140 to i64
  %1142 = lshr i64 %1138, %1141
  %1143 = trunc i64 %1142 to i32
  %1144 = load i32, ptr %42, align 1
  %1145 = and i32 %1143, 4095
  %1146 = shl i32 %1145, 4
  %1147 = and i32 %1144, -65521
  %1148 = or i32 %1147, %1146
  store i32 %1148, ptr %42, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #8
  store i32 0, ptr %165, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #8
  store i64 0, ptr %166, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #8
  %1149 = getelementptr inbounds i8, ptr %153, i64 2
  store ptr %1149, ptr %167, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #8
  %1150 = getelementptr inbounds i8, ptr %166, i64 7
  store ptr %1150, ptr %168, align 8, !tbaa !9
  store i32 0, ptr %164, align 4, !tbaa !5
  br label %1151

1151:                                             ; preds = %1162, %1137
  %1152 = load i32, ptr %164, align 4, !tbaa !5
  %1153 = load i32, ptr %165, align 4, !tbaa !5
  %1154 = add nsw i32 8, %1153
  %1155 = icmp slt i32 %1152, %1154
  br i1 %1155, label %1156, label %1165

1156:                                             ; preds = %1151
  %1157 = load ptr, ptr %167, align 8, !tbaa !9
  %1158 = getelementptr inbounds i8, ptr %1157, i32 1
  store ptr %1158, ptr %167, align 8, !tbaa !9
  %1159 = load i8, ptr %1157, align 1, !tbaa !15
  %1160 = load ptr, ptr %168, align 8, !tbaa !9
  %1161 = getelementptr inbounds i8, ptr %1160, i32 -1
  store ptr %1161, ptr %168, align 8, !tbaa !9
  store i8 %1159, ptr %1160, align 1, !tbaa !15
  br label %1162

1162:                                             ; preds = %1156
  %1163 = load i32, ptr %164, align 4, !tbaa !5
  %1164 = add nsw i32 %1163, 8
  store i32 %1164, ptr %164, align 4, !tbaa !5
  br label %1151, !llvm.loop !39

1165:                                             ; preds = %1151
  %1166 = load i64, ptr %166, align 8, !tbaa !13
  %1167 = load i32, ptr %165, align 4, !tbaa !5
  %1168 = sub nsw i32 56, %1167
  %1169 = zext i32 %1168 to i64
  %1170 = lshr i64 %1166, %1169
  %1171 = trunc i64 %1170 to i32
  %1172 = load i32, ptr %42, align 1
  %1173 = and i32 %1171, 255
  %1174 = shl i32 %1173, 16
  %1175 = and i32 %1172, -16711681
  %1176 = or i32 %1175, %1174
  store i32 %1176, ptr %42, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #8
  store i32 0, ptr %170, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #8
  store i64 0, ptr %171, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #8
  %1177 = getelementptr inbounds i8, ptr %153, i64 3
  store ptr %1177, ptr %172, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #8
  %1178 = getelementptr inbounds i8, ptr %171, i64 7
  store ptr %1178, ptr %173, align 8, !tbaa !9
  store i32 0, ptr %169, align 4, !tbaa !5
  br label %1179

1179:                                             ; preds = %1190, %1165
  %1180 = load i32, ptr %169, align 4, !tbaa !5
  %1181 = load i32, ptr %170, align 4, !tbaa !5
  %1182 = add nsw i32 8, %1181
  %1183 = icmp slt i32 %1180, %1182
  br i1 %1183, label %1184, label %1193

1184:                                             ; preds = %1179
  %1185 = load ptr, ptr %172, align 8, !tbaa !9
  %1186 = getelementptr inbounds i8, ptr %1185, i32 1
  store ptr %1186, ptr %172, align 8, !tbaa !9
  %1187 = load i8, ptr %1185, align 1, !tbaa !15
  %1188 = load ptr, ptr %173, align 8, !tbaa !9
  %1189 = getelementptr inbounds i8, ptr %1188, i32 -1
  store ptr %1189, ptr %173, align 8, !tbaa !9
  store i8 %1187, ptr %1188, align 1, !tbaa !15
  br label %1190

1190:                                             ; preds = %1184
  %1191 = load i32, ptr %169, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 8
  store i32 %1192, ptr %169, align 4, !tbaa !5
  br label %1179, !llvm.loop !40

1193:                                             ; preds = %1179
  %1194 = load i64, ptr %171, align 8, !tbaa !13
  %1195 = load i32, ptr %170, align 4, !tbaa !5
  %1196 = sub nsw i32 56, %1195
  %1197 = zext i32 %1196 to i64
  %1198 = lshr i64 %1194, %1197
  %1199 = trunc i64 %1198 to i32
  %1200 = load i32, ptr %42, align 1
  %1201 = and i32 %1199, 255
  %1202 = shl i32 %1201, 24
  %1203 = and i32 %1200, 16777215
  %1204 = or i32 %1203, %1202
  store i32 %1204, ptr %42, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #8
  store i32 0, ptr %175, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #8
  store i64 0, ptr %176, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #8
  %1205 = getelementptr inbounds i8, ptr %153, i64 4
  store ptr %1205, ptr %177, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #8
  %1206 = getelementptr inbounds i8, ptr %176, i64 7
  store ptr %1206, ptr %178, align 8, !tbaa !9
  store i32 0, ptr %174, align 4, !tbaa !5
  br label %1207

1207:                                             ; preds = %1218, %1193
  %1208 = load i32, ptr %174, align 4, !tbaa !5
  %1209 = load i32, ptr %175, align 4, !tbaa !5
  %1210 = add nsw i32 32, %1209
  %1211 = icmp slt i32 %1208, %1210
  br i1 %1211, label %1212, label %1221

1212:                                             ; preds = %1207
  %1213 = load ptr, ptr %177, align 8, !tbaa !9
  %1214 = getelementptr inbounds i8, ptr %1213, i32 1
  store ptr %1214, ptr %177, align 8, !tbaa !9
  %1215 = load i8, ptr %1213, align 1, !tbaa !15
  %1216 = load ptr, ptr %178, align 8, !tbaa !9
  %1217 = getelementptr inbounds i8, ptr %1216, i32 -1
  store ptr %1217, ptr %178, align 8, !tbaa !9
  store i8 %1215, ptr %1216, align 1, !tbaa !15
  br label %1218

1218:                                             ; preds = %1212
  %1219 = load i32, ptr %174, align 4, !tbaa !5
  %1220 = add nsw i32 %1219, 8
  store i32 %1220, ptr %174, align 4, !tbaa !5
  br label %1207, !llvm.loop !41

1221:                                             ; preds = %1207
  %1222 = load i64, ptr %176, align 8, !tbaa !13
  %1223 = load i32, ptr %175, align 4, !tbaa !5
  %1224 = sub nsw i32 32, %1223
  %1225 = zext i32 %1224 to i64
  %1226 = lshr i64 %1222, %1225
  %1227 = trunc i64 %1226 to i32
  %1228 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 1
  store i32 %1227, ptr %1228, align 1, !tbaa !42
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #8
  store i32 0, ptr %180, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #8
  store i64 0, ptr %181, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #8
  %1229 = getelementptr inbounds i8, ptr %153, i64 8
  store ptr %1229, ptr %182, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #8
  %1230 = getelementptr inbounds i8, ptr %181, i64 7
  store ptr %1230, ptr %183, align 8, !tbaa !9
  store i32 0, ptr %179, align 4, !tbaa !5
  br label %1231

1231:                                             ; preds = %1242, %1221
  %1232 = load i32, ptr %179, align 4, !tbaa !5
  %1233 = load i32, ptr %180, align 4, !tbaa !5
  %1234 = add nsw i32 32, %1233
  %1235 = icmp slt i32 %1232, %1234
  br i1 %1235, label %1236, label %1245

1236:                                             ; preds = %1231
  %1237 = load ptr, ptr %182, align 8, !tbaa !9
  %1238 = getelementptr inbounds i8, ptr %1237, i32 1
  store ptr %1238, ptr %182, align 8, !tbaa !9
  %1239 = load i8, ptr %1237, align 1, !tbaa !15
  %1240 = load ptr, ptr %183, align 8, !tbaa !9
  %1241 = getelementptr inbounds i8, ptr %1240, i32 -1
  store ptr %1241, ptr %183, align 8, !tbaa !9
  store i8 %1239, ptr %1240, align 1, !tbaa !15
  br label %1242

1242:                                             ; preds = %1236
  %1243 = load i32, ptr %179, align 4, !tbaa !5
  %1244 = add nsw i32 %1243, 8
  store i32 %1244, ptr %179, align 4, !tbaa !5
  br label %1231, !llvm.loop !44

1245:                                             ; preds = %1231
  %1246 = load i64, ptr %181, align 8, !tbaa !13
  %1247 = load i32, ptr %180, align 4, !tbaa !5
  %1248 = sub nsw i32 32, %1247
  %1249 = zext i32 %1248 to i64
  %1250 = lshr i64 %1246, %1249
  %1251 = trunc i64 %1250 to i32
  %1252 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 2
  store i32 %1251, ptr %1252, align 1, !tbaa !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #8
  store i32 0, ptr %185, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #8
  store i64 0, ptr %186, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #8
  %1253 = getelementptr inbounds i8, ptr %153, i64 12
  store ptr %1253, ptr %187, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #8
  %1254 = getelementptr inbounds i8, ptr %186, i64 7
  store ptr %1254, ptr %188, align 8, !tbaa !9
  store i32 0, ptr %184, align 4, !tbaa !5
  br label %1255

1255:                                             ; preds = %1266, %1245
  %1256 = load i32, ptr %184, align 4, !tbaa !5
  %1257 = load i32, ptr %185, align 4, !tbaa !5
  %1258 = add nsw i32 32, %1257
  %1259 = icmp slt i32 %1256, %1258
  br i1 %1259, label %1260, label %1269

1260:                                             ; preds = %1255
  %1261 = load ptr, ptr %187, align 8, !tbaa !9
  %1262 = getelementptr inbounds i8, ptr %1261, i32 1
  store ptr %1262, ptr %187, align 8, !tbaa !9
  %1263 = load i8, ptr %1261, align 1, !tbaa !15
  %1264 = load ptr, ptr %188, align 8, !tbaa !9
  %1265 = getelementptr inbounds i8, ptr %1264, i32 -1
  store ptr %1265, ptr %188, align 8, !tbaa !9
  store i8 %1263, ptr %1264, align 1, !tbaa !15
  br label %1266

1266:                                             ; preds = %1260
  %1267 = load i32, ptr %184, align 4, !tbaa !5
  %1268 = add nsw i32 %1267, 8
  store i32 %1268, ptr %184, align 4, !tbaa !5
  br label %1255, !llvm.loop !46

1269:                                             ; preds = %1255
  %1270 = load i64, ptr %186, align 8, !tbaa !13
  %1271 = load i32, ptr %185, align 4, !tbaa !5
  %1272 = sub nsw i32 32, %1271
  %1273 = zext i32 %1272 to i64
  %1274 = lshr i64 %1270, %1273
  %1275 = trunc i64 %1274 to i32
  %1276 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 3
  store i32 %1275, ptr %1276, align 1, !tbaa !47
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #8
  store i32 0, ptr %190, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #8
  store i64 0, ptr %191, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #8
  %1277 = getelementptr inbounds i8, ptr %153, i64 16
  store ptr %1277, ptr %192, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #8
  %1278 = getelementptr inbounds i8, ptr %191, i64 7
  store ptr %1278, ptr %193, align 8, !tbaa !9
  store i32 0, ptr %189, align 4, !tbaa !5
  br label %1279

1279:                                             ; preds = %1290, %1269
  %1280 = load i32, ptr %189, align 4, !tbaa !5
  %1281 = load i32, ptr %190, align 4, !tbaa !5
  %1282 = add nsw i32 32, %1281
  %1283 = icmp slt i32 %1280, %1282
  br i1 %1283, label %1284, label %1293

1284:                                             ; preds = %1279
  %1285 = load ptr, ptr %192, align 8, !tbaa !9
  %1286 = getelementptr inbounds i8, ptr %1285, i32 1
  store ptr %1286, ptr %192, align 8, !tbaa !9
  %1287 = load i8, ptr %1285, align 1, !tbaa !15
  %1288 = load ptr, ptr %193, align 8, !tbaa !9
  %1289 = getelementptr inbounds i8, ptr %1288, i32 -1
  store ptr %1289, ptr %193, align 8, !tbaa !9
  store i8 %1287, ptr %1288, align 1, !tbaa !15
  br label %1290

1290:                                             ; preds = %1284
  %1291 = load i32, ptr %189, align 4, !tbaa !5
  %1292 = add nsw i32 %1291, 8
  store i32 %1292, ptr %189, align 4, !tbaa !5
  br label %1279, !llvm.loop !48

1293:                                             ; preds = %1279
  %1294 = load i64, ptr %191, align 8, !tbaa !13
  %1295 = load i32, ptr %190, align 4, !tbaa !5
  %1296 = sub nsw i32 32, %1295
  %1297 = zext i32 %1296 to i64
  %1298 = lshr i64 %1294, %1297
  %1299 = trunc i64 %1298 to i32
  %1300 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 4
  store i32 %1299, ptr %1300, align 1, !tbaa !49
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #8
  store i32 0, ptr %195, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #8
  store i64 0, ptr %196, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #8
  %1301 = getelementptr inbounds i8, ptr %153, i64 20
  store ptr %1301, ptr %197, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #8
  %1302 = getelementptr inbounds i8, ptr %196, i64 7
  store ptr %1302, ptr %198, align 8, !tbaa !9
  store i32 0, ptr %194, align 4, !tbaa !5
  br label %1303

1303:                                             ; preds = %1314, %1293
  %1304 = load i32, ptr %194, align 4, !tbaa !5
  %1305 = load i32, ptr %195, align 4, !tbaa !5
  %1306 = add nsw i32 32, %1305
  %1307 = icmp slt i32 %1304, %1306
  br i1 %1307, label %1308, label %1317

1308:                                             ; preds = %1303
  %1309 = load ptr, ptr %197, align 8, !tbaa !9
  %1310 = getelementptr inbounds i8, ptr %1309, i32 1
  store ptr %1310, ptr %197, align 8, !tbaa !9
  %1311 = load i8, ptr %1309, align 1, !tbaa !15
  %1312 = load ptr, ptr %198, align 8, !tbaa !9
  %1313 = getelementptr inbounds i8, ptr %1312, i32 -1
  store ptr %1313, ptr %198, align 8, !tbaa !9
  store i8 %1311, ptr %1312, align 1, !tbaa !15
  br label %1314

1314:                                             ; preds = %1308
  %1315 = load i32, ptr %194, align 4, !tbaa !5
  %1316 = add nsw i32 %1315, 8
  store i32 %1316, ptr %194, align 4, !tbaa !5
  br label %1303, !llvm.loop !50

1317:                                             ; preds = %1303
  %1318 = load i64, ptr %196, align 8, !tbaa !13
  %1319 = load i32, ptr %195, align 4, !tbaa !5
  %1320 = sub nsw i32 32, %1319
  %1321 = zext i32 %1320 to i64
  %1322 = lshr i64 %1318, %1321
  %1323 = trunc i64 %1322 to i32
  %1324 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 5
  store i32 %1323, ptr %1324, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %153) #8
  br label %1327

1325:                                             ; preds = %1089
  %1326 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %42, ptr align 1 %1326, i64 24, i1 false)
  br label %1327

1327:                                             ; preds = %1325, %1317
  %1328 = load i32, ptr %42, align 1
  %1329 = and i32 %1328, 15
  switch i32 %1329, label %2303 [
    i32 2, label %1330
    i32 3, label %1494
    i32 1, label %1646
    i32 8, label %1902
    i32 4, label %2285
    i32 5, label %2285
    i32 6, label %2291
    i32 7, label %2297
  ]

1330:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #8
  %1331 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 3
  %1332 = load i32, ptr %1331, align 1, !tbaa !47
  %1333 = zext i32 %1332 to i64
  %1334 = icmp eq i64 %1333, 4294967295
  br i1 %1334, label %1335, label %1336

1335:                                             ; preds = %1330
  br label %1343

1336:                                             ; preds = %1330
  %1337 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 5
  %1338 = load i32, ptr %1337, align 1
  %1339 = load ptr, ptr %25, align 8, !tbaa !9
  %1340 = getelementptr inbounds %struct.squashfs_super_block, ptr %1339, i32 0, i32 12
  %1341 = load i32, ptr %1340, align 1, !tbaa !51
  %1342 = urem i32 %1338, %1341
  br label %1343

1343:                                             ; preds = %1336, %1335
  %1344 = phi i32 [ 0, %1335 ], [ %1342, %1336 ]
  store i32 %1344, ptr %199, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #8
  %1345 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 3
  %1346 = load i32, ptr %1345, align 1, !tbaa !47
  %1347 = zext i32 %1346 to i64
  %1348 = icmp eq i64 %1347, 4294967295
  br i1 %1348, label %1349, label %1363

1349:                                             ; preds = %1343
  %1350 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 5
  %1351 = load i32, ptr %1350, align 1
  %1352 = load ptr, ptr %25, align 8, !tbaa !9
  %1353 = getelementptr inbounds %struct.squashfs_super_block, ptr %1352, i32 0, i32 12
  %1354 = load i32, ptr %1353, align 1, !tbaa !51
  %1355 = add i32 %1351, %1354
  %1356 = sub i32 %1355, 1
  %1357 = load ptr, ptr %25, align 8, !tbaa !9
  %1358 = getelementptr inbounds %struct.squashfs_super_block, ptr %1357, i32 0, i32 7
  %1359 = load i64, ptr %1358, align 1
  %1360 = lshr i64 %1359, 48
  %1361 = trunc i64 %1360 to i32
  %1362 = lshr i32 %1356, %1361
  br label %1372

1363:                                             ; preds = %1343
  %1364 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 5
  %1365 = load i32, ptr %1364, align 1
  %1366 = load ptr, ptr %25, align 8, !tbaa !9
  %1367 = getelementptr inbounds %struct.squashfs_super_block, ptr %1366, i32 0, i32 7
  %1368 = load i64, ptr %1367, align 1
  %1369 = lshr i64 %1368, 48
  %1370 = trunc i64 %1369 to i32
  %1371 = lshr i32 %1365, %1370
  br label %1372

1372:                                             ; preds = %1363, %1349
  %1373 = phi i32 [ %1362, %1349 ], [ %1371, %1363 ]
  store i32 %1373, ptr %200, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #8
  store i32 0, ptr %201, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #8
  %1374 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 2
  %1375 = load i32, ptr %1374, align 1, !tbaa !45
  store i32 %1375, ptr %203, align 4, !tbaa !5
  %1376 = load i32, ptr %200, align 4, !tbaa !5
  %1377 = zext i32 %1376 to i64
  %1378 = call ptr @llvm.stacksave.p0()
  store ptr %1378, ptr %204, align 8
  %1379 = alloca i32, i64 %1377, align 16
  store i64 %1377, ptr %205, align 8
  %1380 = load ptr, ptr %38, align 8, !tbaa !9
  %1381 = getelementptr inbounds i8, ptr %1380, i64 24
  store ptr %1381, ptr %38, align 8, !tbaa !9
  %1382 = load i32, ptr @swap, align 4, !tbaa !5
  %1383 = icmp ne i32 %1382, 0
  br i1 %1383, label %1384, label %1439

1384:                                             ; preds = %1372
  %1385 = load i32, ptr %200, align 4, !tbaa !5
  %1386 = zext i32 %1385 to i64
  %1387 = call ptr @llvm.stacksave.p0()
  store ptr %1387, ptr %206, align 8
  %1388 = alloca i32, i64 %1386, align 16
  store i64 %1386, ptr %207, align 8
  %1389 = load ptr, ptr %38, align 8, !tbaa !9
  %1390 = load i32, ptr %200, align 4, !tbaa !5
  %1391 = sext i32 %1390 to i64
  %1392 = mul i64 %1391, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %1388, ptr align 1 %1389, i64 %1392, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #8
  %1393 = load i32, ptr %200, align 4, !tbaa !5
  %1394 = mul nsw i32 %1393, 4
  %1395 = sext i32 %1394 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %1379, i8 0, i64 %1395, i1 false)
  store i32 0, ptr %208, align 4, !tbaa !5
  store i32 0, ptr %209, align 4, !tbaa !5
  br label %1396

1396:                                             ; preds = %1432, %1384
  %1397 = load i32, ptr %208, align 4, !tbaa !5
  %1398 = load i32, ptr %200, align 4, !tbaa !5
  %1399 = icmp slt i32 %1397, %1398
  br i1 %1399, label %1400, label %1437

1400:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #8
  %1401 = load i32, ptr %209, align 4, !tbaa !5
  %1402 = srem i32 %1401, 8
  store i32 %1402, ptr %211, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #8
  store i64 0, ptr %212, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #8
  %1403 = load i32, ptr %209, align 4, !tbaa !5
  %1404 = sdiv i32 %1403, 8
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds i8, ptr %1388, i64 %1405
  store ptr %1406, ptr %213, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #8
  %1407 = getelementptr inbounds i8, ptr %212, i64 7
  store ptr %1407, ptr %214, align 8, !tbaa !9
  store i32 0, ptr %210, align 4, !tbaa !5
  br label %1408

1408:                                             ; preds = %1419, %1400
  %1409 = load i32, ptr %210, align 4, !tbaa !5
  %1410 = load i32, ptr %211, align 4, !tbaa !5
  %1411 = add nsw i32 32, %1410
  %1412 = icmp slt i32 %1409, %1411
  br i1 %1412, label %1413, label %1422

1413:                                             ; preds = %1408
  %1414 = load ptr, ptr %213, align 8, !tbaa !9
  %1415 = getelementptr inbounds i8, ptr %1414, i32 1
  store ptr %1415, ptr %213, align 8, !tbaa !9
  %1416 = load i8, ptr %1414, align 1, !tbaa !15
  %1417 = load ptr, ptr %214, align 8, !tbaa !9
  %1418 = getelementptr inbounds i8, ptr %1417, i32 -1
  store ptr %1418, ptr %214, align 8, !tbaa !9
  store i8 %1416, ptr %1417, align 1, !tbaa !15
  br label %1419

1419:                                             ; preds = %1413
  %1420 = load i32, ptr %210, align 4, !tbaa !5
  %1421 = add nsw i32 %1420, 8
  store i32 %1421, ptr %210, align 4, !tbaa !5
  br label %1408, !llvm.loop !53

1422:                                             ; preds = %1408
  %1423 = load i64, ptr %212, align 8, !tbaa !13
  %1424 = load i32, ptr %211, align 4, !tbaa !5
  %1425 = sub nsw i32 32, %1424
  %1426 = zext i32 %1425 to i64
  %1427 = lshr i64 %1423, %1426
  %1428 = trunc i64 %1427 to i32
  %1429 = load i32, ptr %208, align 4, !tbaa !5
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds i32, ptr %1379, i64 %1430
  store i32 %1428, ptr %1431, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #8
  br label %1432

1432:                                             ; preds = %1422
  %1433 = load i32, ptr %208, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr %208, align 4, !tbaa !5
  %1435 = load i32, ptr %209, align 4, !tbaa !5
  %1436 = add nsw i32 %1435, 32
  store i32 %1436, ptr %209, align 4, !tbaa !5
  br label %1396, !llvm.loop !54

1437:                                             ; preds = %1396
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #8
  %1438 = load ptr, ptr %206, align 8
  call void @llvm.stackrestore.p0(ptr %1438)
  br label %1444

1439:                                             ; preds = %1372
  %1440 = load ptr, ptr %38, align 8, !tbaa !9
  %1441 = load i32, ptr %200, align 4, !tbaa !5
  %1442 = sext i32 %1441 to i64
  %1443 = mul i64 %1442, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %1379, ptr align 1 %1440, i64 %1443, i1 false)
  br label %1444

1444:                                             ; preds = %1439, %1437
  %1445 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 5
  %1446 = load i32, ptr %1445, align 1
  %1447 = load ptr, ptr %30, align 8, !tbaa !9
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = add i32 %1448, %1446
  store i32 %1449, ptr %1447, align 4, !tbaa !5
  %1450 = load ptr, ptr %32, align 8, !tbaa !9
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = add nsw i32 %1451, 1
  store i32 %1452, ptr %1450, align 4, !tbaa !5
  store i32 0, ptr %202, align 4, !tbaa !5
  br label %1453

1453:                                             ; preds = %1475, %1444
  %1454 = load i32, ptr %202, align 4, !tbaa !5
  %1455 = load i32, ptr %200, align 4, !tbaa !5
  %1456 = icmp slt i32 %1454, %1455
  br i1 %1456, label %1457, label %1478

1457:                                             ; preds = %1453
  %1458 = load i32, ptr %202, align 4, !tbaa !5
  %1459 = sext i32 %1458 to i64
  %1460 = getelementptr inbounds i32, ptr %1379, i64 %1459
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = and i32 %1461, -16777217
  %1463 = icmp ne i32 %1462, 0
  br i1 %1463, label %1464, label %1470

1464:                                             ; preds = %1457
  %1465 = load i32, ptr %202, align 4, !tbaa !5
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds i32, ptr %1379, i64 %1466
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = and i32 %1468, -16777217
  br label %1471

1470:                                             ; preds = %1457
  br label %1471

1471:                                             ; preds = %1470, %1464
  %1472 = phi i32 [ %1469, %1464 ], [ 16777216, %1470 ]
  %1473 = load i32, ptr %201, align 4, !tbaa !5
  %1474 = add i32 %1473, %1472
  store i32 %1474, ptr %201, align 4, !tbaa !5
  br label %1475

1475:                                             ; preds = %1471
  %1476 = load i32, ptr %202, align 4, !tbaa !5
  %1477 = add nsw i32 %1476, 1
  store i32 %1477, ptr %202, align 4, !tbaa !5
  br label %1453, !llvm.loop !55

1478:                                             ; preds = %1453
  %1479 = load i32, ptr %203, align 4, !tbaa !5
  %1480 = load i32, ptr %201, align 4, !tbaa !5
  %1481 = load i32, ptr %200, align 4, !tbaa !5
  %1482 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 3
  %1483 = load i32, ptr %1482, align 1, !tbaa !47
  %1484 = getelementptr inbounds %struct.squashfs_reg_inode_header, ptr %42, i32 0, i32 4
  %1485 = load i32, ptr %1484, align 1, !tbaa !49
  %1486 = load i32, ptr %199, align 4, !tbaa !5
  %1487 = call i32 @add_file(i32 noundef %1479, i32 noundef %1480, ptr noundef %1379, i32 noundef %1481, i32 noundef %1483, i32 noundef %1485, i32 noundef %1486)
  %1488 = load i32, ptr %200, align 4, !tbaa !5
  %1489 = sext i32 %1488 to i64
  %1490 = mul i64 %1489, 4
  %1491 = load ptr, ptr %38, align 8, !tbaa !9
  %1492 = getelementptr inbounds i8, ptr %1491, i64 %1490
  store ptr %1492, ptr %38, align 8, !tbaa !9
  store i32 97, ptr %44, align 4
  %1493 = load ptr, ptr %204, align 8
  call void @llvm.stackrestore.p0(ptr %1493)
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #8
  br label %2310

1494:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 6, ptr %215) #8
  %1495 = load i32, ptr @swap, align 4, !tbaa !5
  %1496 = icmp ne i32 %1495, 0
  br i1 %1496, label %1497, label %1634

1497:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 6, ptr %216) #8
  %1498 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %216, ptr align 1 %1498, i64 6, i1 false)
  call void @llvm.memset.p0.i64(ptr align 1 %215, i8 0, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #8
  store i32 0, ptr %218, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #8
  store i64 0, ptr %219, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #8
  %1499 = getelementptr inbounds i8, ptr %216, i64 0
  store ptr %1499, ptr %220, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #8
  %1500 = getelementptr inbounds i8, ptr %219, i64 7
  store ptr %1500, ptr %221, align 8, !tbaa !9
  store i32 0, ptr %217, align 4, !tbaa !5
  br label %1501

1501:                                             ; preds = %1512, %1497
  %1502 = load i32, ptr %217, align 4, !tbaa !5
  %1503 = load i32, ptr %218, align 4, !tbaa !5
  %1504 = add nsw i32 4, %1503
  %1505 = icmp slt i32 %1502, %1504
  br i1 %1505, label %1506, label %1515

1506:                                             ; preds = %1501
  %1507 = load ptr, ptr %220, align 8, !tbaa !9
  %1508 = getelementptr inbounds i8, ptr %1507, i32 1
  store ptr %1508, ptr %220, align 8, !tbaa !9
  %1509 = load i8, ptr %1507, align 1, !tbaa !15
  %1510 = load ptr, ptr %221, align 8, !tbaa !9
  %1511 = getelementptr inbounds i8, ptr %1510, i32 -1
  store ptr %1511, ptr %221, align 8, !tbaa !9
  store i8 %1509, ptr %1510, align 1, !tbaa !15
  br label %1512

1512:                                             ; preds = %1506
  %1513 = load i32, ptr %217, align 4, !tbaa !5
  %1514 = add nsw i32 %1513, 8
  store i32 %1514, ptr %217, align 4, !tbaa !5
  br label %1501, !llvm.loop !56

1515:                                             ; preds = %1501
  %1516 = load i64, ptr %219, align 8, !tbaa !13
  %1517 = load i32, ptr %218, align 4, !tbaa !5
  %1518 = sub nsw i32 60, %1517
  %1519 = zext i32 %1518 to i64
  %1520 = lshr i64 %1516, %1519
  %1521 = trunc i64 %1520 to i32
  %1522 = load i32, ptr %215, align 1
  %1523 = and i32 %1521, 15
  %1524 = and i32 %1522, -16
  %1525 = or i32 %1524, %1523
  store i32 %1525, ptr %215, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #8
  store i32 4, ptr %223, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #8
  store i64 0, ptr %224, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #8
  %1526 = getelementptr inbounds i8, ptr %216, i64 0
  store ptr %1526, ptr %225, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #8
  %1527 = getelementptr inbounds i8, ptr %224, i64 7
  store ptr %1527, ptr %226, align 8, !tbaa !9
  store i32 0, ptr %222, align 4, !tbaa !5
  br label %1528

1528:                                             ; preds = %1539, %1515
  %1529 = load i32, ptr %222, align 4, !tbaa !5
  %1530 = load i32, ptr %223, align 4, !tbaa !5
  %1531 = add nsw i32 12, %1530
  %1532 = icmp slt i32 %1529, %1531
  br i1 %1532, label %1533, label %1542

1533:                                             ; preds = %1528
  %1534 = load ptr, ptr %225, align 8, !tbaa !9
  %1535 = getelementptr inbounds i8, ptr %1534, i32 1
  store ptr %1535, ptr %225, align 8, !tbaa !9
  %1536 = load i8, ptr %1534, align 1, !tbaa !15
  %1537 = load ptr, ptr %226, align 8, !tbaa !9
  %1538 = getelementptr inbounds i8, ptr %1537, i32 -1
  store ptr %1538, ptr %226, align 8, !tbaa !9
  store i8 %1536, ptr %1537, align 1, !tbaa !15
  br label %1539

1539:                                             ; preds = %1533
  %1540 = load i32, ptr %222, align 4, !tbaa !5
  %1541 = add nsw i32 %1540, 8
  store i32 %1541, ptr %222, align 4, !tbaa !5
  br label %1528, !llvm.loop !57

1542:                                             ; preds = %1528
  %1543 = load i64, ptr %224, align 8, !tbaa !13
  %1544 = load i32, ptr %223, align 4, !tbaa !5
  %1545 = sub nsw i32 52, %1544
  %1546 = zext i32 %1545 to i64
  %1547 = lshr i64 %1543, %1546
  %1548 = trunc i64 %1547 to i32
  %1549 = load i32, ptr %215, align 1
  %1550 = and i32 %1548, 4095
  %1551 = shl i32 %1550, 4
  %1552 = and i32 %1549, -65521
  %1553 = or i32 %1552, %1551
  store i32 %1553, ptr %215, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #8
  store i32 0, ptr %228, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #8
  store i64 0, ptr %229, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #8
  %1554 = getelementptr inbounds i8, ptr %216, i64 2
  store ptr %1554, ptr %230, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #8
  %1555 = getelementptr inbounds i8, ptr %229, i64 7
  store ptr %1555, ptr %231, align 8, !tbaa !9
  store i32 0, ptr %227, align 4, !tbaa !5
  br label %1556

1556:                                             ; preds = %1567, %1542
  %1557 = load i32, ptr %227, align 4, !tbaa !5
  %1558 = load i32, ptr %228, align 4, !tbaa !5
  %1559 = add nsw i32 8, %1558
  %1560 = icmp slt i32 %1557, %1559
  br i1 %1560, label %1561, label %1570

1561:                                             ; preds = %1556
  %1562 = load ptr, ptr %230, align 8, !tbaa !9
  %1563 = getelementptr inbounds i8, ptr %1562, i32 1
  store ptr %1563, ptr %230, align 8, !tbaa !9
  %1564 = load i8, ptr %1562, align 1, !tbaa !15
  %1565 = load ptr, ptr %231, align 8, !tbaa !9
  %1566 = getelementptr inbounds i8, ptr %1565, i32 -1
  store ptr %1566, ptr %231, align 8, !tbaa !9
  store i8 %1564, ptr %1565, align 1, !tbaa !15
  br label %1567

1567:                                             ; preds = %1561
  %1568 = load i32, ptr %227, align 4, !tbaa !5
  %1569 = add nsw i32 %1568, 8
  store i32 %1569, ptr %227, align 4, !tbaa !5
  br label %1556, !llvm.loop !58

1570:                                             ; preds = %1556
  %1571 = load i64, ptr %229, align 8, !tbaa !13
  %1572 = load i32, ptr %228, align 4, !tbaa !5
  %1573 = sub nsw i32 56, %1572
  %1574 = zext i32 %1573 to i64
  %1575 = lshr i64 %1571, %1574
  %1576 = trunc i64 %1575 to i32
  %1577 = load i32, ptr %215, align 1
  %1578 = and i32 %1576, 255
  %1579 = shl i32 %1578, 16
  %1580 = and i32 %1577, -16711681
  %1581 = or i32 %1580, %1579
  store i32 %1581, ptr %215, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #8
  store i32 0, ptr %233, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #8
  store i64 0, ptr %234, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #8
  %1582 = getelementptr inbounds i8, ptr %216, i64 3
  store ptr %1582, ptr %235, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #8
  %1583 = getelementptr inbounds i8, ptr %234, i64 7
  store ptr %1583, ptr %236, align 8, !tbaa !9
  store i32 0, ptr %232, align 4, !tbaa !5
  br label %1584

1584:                                             ; preds = %1595, %1570
  %1585 = load i32, ptr %232, align 4, !tbaa !5
  %1586 = load i32, ptr %233, align 4, !tbaa !5
  %1587 = add nsw i32 8, %1586
  %1588 = icmp slt i32 %1585, %1587
  br i1 %1588, label %1589, label %1598

1589:                                             ; preds = %1584
  %1590 = load ptr, ptr %235, align 8, !tbaa !9
  %1591 = getelementptr inbounds i8, ptr %1590, i32 1
  store ptr %1591, ptr %235, align 8, !tbaa !9
  %1592 = load i8, ptr %1590, align 1, !tbaa !15
  %1593 = load ptr, ptr %236, align 8, !tbaa !9
  %1594 = getelementptr inbounds i8, ptr %1593, i32 -1
  store ptr %1594, ptr %236, align 8, !tbaa !9
  store i8 %1592, ptr %1593, align 1, !tbaa !15
  br label %1595

1595:                                             ; preds = %1589
  %1596 = load i32, ptr %232, align 4, !tbaa !5
  %1597 = add nsw i32 %1596, 8
  store i32 %1597, ptr %232, align 4, !tbaa !5
  br label %1584, !llvm.loop !59

1598:                                             ; preds = %1584
  %1599 = load i64, ptr %234, align 8, !tbaa !13
  %1600 = load i32, ptr %233, align 4, !tbaa !5
  %1601 = sub nsw i32 56, %1600
  %1602 = zext i32 %1601 to i64
  %1603 = lshr i64 %1599, %1602
  %1604 = trunc i64 %1603 to i32
  %1605 = load i32, ptr %215, align 1
  %1606 = and i32 %1604, 255
  %1607 = shl i32 %1606, 24
  %1608 = and i32 %1605, 16777215
  %1609 = or i32 %1608, %1607
  store i32 %1609, ptr %215, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #8
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #8
  store i64 0, ptr %239, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #8
  %1610 = getelementptr inbounds i8, ptr %216, i64 4
  store ptr %1610, ptr %240, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #8
  %1611 = getelementptr inbounds i8, ptr %239, i64 7
  store ptr %1611, ptr %241, align 8, !tbaa !9
  store i32 0, ptr %237, align 4, !tbaa !5
  br label %1612

1612:                                             ; preds = %1623, %1598
  %1613 = load i32, ptr %237, align 4, !tbaa !5
  %1614 = load i32, ptr %238, align 4, !tbaa !5
  %1615 = add nsw i32 16, %1614
  %1616 = icmp slt i32 %1613, %1615
  br i1 %1616, label %1617, label %1626

1617:                                             ; preds = %1612
  %1618 = load ptr, ptr %240, align 8, !tbaa !9
  %1619 = getelementptr inbounds i8, ptr %1618, i32 1
  store ptr %1619, ptr %240, align 8, !tbaa !9
  %1620 = load i8, ptr %1618, align 1, !tbaa !15
  %1621 = load ptr, ptr %241, align 8, !tbaa !9
  %1622 = getelementptr inbounds i8, ptr %1621, i32 -1
  store ptr %1622, ptr %241, align 8, !tbaa !9
  store i8 %1620, ptr %1621, align 1, !tbaa !15
  br label %1623

1623:                                             ; preds = %1617
  %1624 = load i32, ptr %237, align 4, !tbaa !5
  %1625 = add nsw i32 %1624, 8
  store i32 %1625, ptr %237, align 4, !tbaa !5
  br label %1612, !llvm.loop !60

1626:                                             ; preds = %1612
  %1627 = load i64, ptr %239, align 8, !tbaa !13
  %1628 = load i32, ptr %238, align 4, !tbaa !5
  %1629 = sub nsw i32 48, %1628
  %1630 = zext i32 %1629 to i64
  %1631 = lshr i64 %1627, %1630
  %1632 = trunc i64 %1631 to i16
  %1633 = getelementptr inbounds %struct.squashfs_symlink_inode_header, ptr %215, i32 0, i32 1
  store i16 %1632, ptr %1633, align 1, !tbaa !61
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #8
  call void @llvm.lifetime.end.p0(i64 6, ptr %216) #8
  br label %1636

1634:                                             ; preds = %1494
  %1635 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %215, ptr align 1 %1635, i64 6, i1 false)
  br label %1636

1636:                                             ; preds = %1634, %1626
  %1637 = load ptr, ptr %33, align 8, !tbaa !9
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr %1637, align 4, !tbaa !5
  %1640 = getelementptr inbounds %struct.squashfs_symlink_inode_header, ptr %215, i32 0, i32 1
  %1641 = load i16, ptr %1640, align 1, !tbaa !61
  %1642 = zext i16 %1641 to i64
  %1643 = add i64 6, %1642
  %1644 = load ptr, ptr %38, align 8, !tbaa !9
  %1645 = getelementptr inbounds i8, ptr %1644, i64 %1643
  store ptr %1645, ptr %38, align 8, !tbaa !9
  store i32 97, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 6, ptr %215) #8
  br label %2310

1646:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 15, ptr %242) #8
  %1647 = load i32, ptr @swap, align 4, !tbaa !5
  %1648 = icmp ne i32 %1647, 0
  br i1 %1648, label %1649, label %1880

1649:                                             ; preds = %1646
  call void @llvm.lifetime.start.p0(i64 15, ptr %243) #8
  %1650 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %243, ptr align 1 %1650, i64 15, i1 false)
  call void @llvm.memset.p0.i64(ptr align 1 %242, i8 0, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #8
  store i32 0, ptr %245, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #8
  store i64 0, ptr %246, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #8
  %1651 = getelementptr inbounds i8, ptr %243, i64 0
  store ptr %1651, ptr %247, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #8
  %1652 = getelementptr inbounds i8, ptr %246, i64 7
  store ptr %1652, ptr %248, align 8, !tbaa !9
  store i32 0, ptr %244, align 4, !tbaa !5
  br label %1653

1653:                                             ; preds = %1664, %1649
  %1654 = load i32, ptr %244, align 4, !tbaa !5
  %1655 = load i32, ptr %245, align 4, !tbaa !5
  %1656 = add nsw i32 4, %1655
  %1657 = icmp slt i32 %1654, %1656
  br i1 %1657, label %1658, label %1667

1658:                                             ; preds = %1653
  %1659 = load ptr, ptr %247, align 8, !tbaa !9
  %1660 = getelementptr inbounds i8, ptr %1659, i32 1
  store ptr %1660, ptr %247, align 8, !tbaa !9
  %1661 = load i8, ptr %1659, align 1, !tbaa !15
  %1662 = load ptr, ptr %248, align 8, !tbaa !9
  %1663 = getelementptr inbounds i8, ptr %1662, i32 -1
  store ptr %1663, ptr %248, align 8, !tbaa !9
  store i8 %1661, ptr %1662, align 1, !tbaa !15
  br label %1664

1664:                                             ; preds = %1658
  %1665 = load i32, ptr %244, align 4, !tbaa !5
  %1666 = add nsw i32 %1665, 8
  store i32 %1666, ptr %244, align 4, !tbaa !5
  br label %1653, !llvm.loop !64

1667:                                             ; preds = %1653
  %1668 = load i64, ptr %246, align 8, !tbaa !13
  %1669 = load i32, ptr %245, align 4, !tbaa !5
  %1670 = sub nsw i32 60, %1669
  %1671 = zext i32 %1670 to i64
  %1672 = lshr i64 %1668, %1671
  %1673 = trunc i64 %1672 to i32
  %1674 = zext i32 %1673 to i64
  %1675 = load i64, ptr %242, align 1
  %1676 = and i64 %1674, 15
  %1677 = and i64 %1675, -16
  %1678 = or i64 %1677, %1676
  store i64 %1678, ptr %242, align 1
  %1679 = trunc i64 %1676 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #8
  store i32 4, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %251) #8
  store i64 0, ptr %251, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %252) #8
  %1680 = getelementptr inbounds i8, ptr %243, i64 0
  store ptr %1680, ptr %252, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %253) #8
  %1681 = getelementptr inbounds i8, ptr %251, i64 7
  store ptr %1681, ptr %253, align 8, !tbaa !9
  store i32 0, ptr %249, align 4, !tbaa !5
  br label %1682

1682:                                             ; preds = %1693, %1667
  %1683 = load i32, ptr %249, align 4, !tbaa !5
  %1684 = load i32, ptr %250, align 4, !tbaa !5
  %1685 = add nsw i32 12, %1684
  %1686 = icmp slt i32 %1683, %1685
  br i1 %1686, label %1687, label %1696

1687:                                             ; preds = %1682
  %1688 = load ptr, ptr %252, align 8, !tbaa !9
  %1689 = getelementptr inbounds i8, ptr %1688, i32 1
  store ptr %1689, ptr %252, align 8, !tbaa !9
  %1690 = load i8, ptr %1688, align 1, !tbaa !15
  %1691 = load ptr, ptr %253, align 8, !tbaa !9
  %1692 = getelementptr inbounds i8, ptr %1691, i32 -1
  store ptr %1692, ptr %253, align 8, !tbaa !9
  store i8 %1690, ptr %1691, align 1, !tbaa !15
  br label %1693

1693:                                             ; preds = %1687
  %1694 = load i32, ptr %249, align 4, !tbaa !5
  %1695 = add nsw i32 %1694, 8
  store i32 %1695, ptr %249, align 4, !tbaa !5
  br label %1682, !llvm.loop !65

1696:                                             ; preds = %1682
  %1697 = load i64, ptr %251, align 8, !tbaa !13
  %1698 = load i32, ptr %250, align 4, !tbaa !5
  %1699 = sub nsw i32 52, %1698
  %1700 = zext i32 %1699 to i64
  %1701 = lshr i64 %1697, %1700
  %1702 = trunc i64 %1701 to i32
  %1703 = zext i32 %1702 to i64
  %1704 = load i64, ptr %242, align 1
  %1705 = and i64 %1703, 4095
  %1706 = shl i64 %1705, 4
  %1707 = and i64 %1704, -65521
  %1708 = or i64 %1707, %1706
  store i64 %1708, ptr %242, align 1
  %1709 = trunc i64 %1705 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #8
  store i32 0, ptr %255, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #8
  store i64 0, ptr %256, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #8
  %1710 = getelementptr inbounds i8, ptr %243, i64 2
  store ptr %1710, ptr %257, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #8
  %1711 = getelementptr inbounds i8, ptr %256, i64 7
  store ptr %1711, ptr %258, align 8, !tbaa !9
  store i32 0, ptr %254, align 4, !tbaa !5
  br label %1712

1712:                                             ; preds = %1723, %1696
  %1713 = load i32, ptr %254, align 4, !tbaa !5
  %1714 = load i32, ptr %255, align 4, !tbaa !5
  %1715 = add nsw i32 8, %1714
  %1716 = icmp slt i32 %1713, %1715
  br i1 %1716, label %1717, label %1726

1717:                                             ; preds = %1712
  %1718 = load ptr, ptr %257, align 8, !tbaa !9
  %1719 = getelementptr inbounds i8, ptr %1718, i32 1
  store ptr %1719, ptr %257, align 8, !tbaa !9
  %1720 = load i8, ptr %1718, align 1, !tbaa !15
  %1721 = load ptr, ptr %258, align 8, !tbaa !9
  %1722 = getelementptr inbounds i8, ptr %1721, i32 -1
  store ptr %1722, ptr %258, align 8, !tbaa !9
  store i8 %1720, ptr %1721, align 1, !tbaa !15
  br label %1723

1723:                                             ; preds = %1717
  %1724 = load i32, ptr %254, align 4, !tbaa !5
  %1725 = add nsw i32 %1724, 8
  store i32 %1725, ptr %254, align 4, !tbaa !5
  br label %1712, !llvm.loop !66

1726:                                             ; preds = %1712
  %1727 = load i64, ptr %256, align 8, !tbaa !13
  %1728 = load i32, ptr %255, align 4, !tbaa !5
  %1729 = sub nsw i32 56, %1728
  %1730 = zext i32 %1729 to i64
  %1731 = lshr i64 %1727, %1730
  %1732 = trunc i64 %1731 to i32
  %1733 = zext i32 %1732 to i64
  %1734 = load i64, ptr %242, align 1
  %1735 = and i64 %1733, 255
  %1736 = shl i64 %1735, 16
  %1737 = and i64 %1734, -16711681
  %1738 = or i64 %1737, %1736
  store i64 %1738, ptr %242, align 1
  %1739 = trunc i64 %1735 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #8
  store i32 0, ptr %260, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %261) #8
  store i64 0, ptr %261, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %262) #8
  %1740 = getelementptr inbounds i8, ptr %243, i64 3
  store ptr %1740, ptr %262, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #8
  %1741 = getelementptr inbounds i8, ptr %261, i64 7
  store ptr %1741, ptr %263, align 8, !tbaa !9
  store i32 0, ptr %259, align 4, !tbaa !5
  br label %1742

1742:                                             ; preds = %1753, %1726
  %1743 = load i32, ptr %259, align 4, !tbaa !5
  %1744 = load i32, ptr %260, align 4, !tbaa !5
  %1745 = add nsw i32 8, %1744
  %1746 = icmp slt i32 %1743, %1745
  br i1 %1746, label %1747, label %1756

1747:                                             ; preds = %1742
  %1748 = load ptr, ptr %262, align 8, !tbaa !9
  %1749 = getelementptr inbounds i8, ptr %1748, i32 1
  store ptr %1749, ptr %262, align 8, !tbaa !9
  %1750 = load i8, ptr %1748, align 1, !tbaa !15
  %1751 = load ptr, ptr %263, align 8, !tbaa !9
  %1752 = getelementptr inbounds i8, ptr %1751, i32 -1
  store ptr %1752, ptr %263, align 8, !tbaa !9
  store i8 %1750, ptr %1751, align 1, !tbaa !15
  br label %1753

1753:                                             ; preds = %1747
  %1754 = load i32, ptr %259, align 4, !tbaa !5
  %1755 = add nsw i32 %1754, 8
  store i32 %1755, ptr %259, align 4, !tbaa !5
  br label %1742, !llvm.loop !67

1756:                                             ; preds = %1742
  %1757 = load i64, ptr %261, align 8, !tbaa !13
  %1758 = load i32, ptr %260, align 4, !tbaa !5
  %1759 = sub nsw i32 56, %1758
  %1760 = zext i32 %1759 to i64
  %1761 = lshr i64 %1757, %1760
  %1762 = trunc i64 %1761 to i32
  %1763 = zext i32 %1762 to i64
  %1764 = load i64, ptr %242, align 1
  %1765 = and i64 %1763, 255
  %1766 = shl i64 %1765, 24
  %1767 = and i64 %1764, -4278190081
  %1768 = or i64 %1767, %1766
  store i64 %1768, ptr %242, align 1
  %1769 = trunc i64 %1765 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %262) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #8
  store i32 0, ptr %265, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %266) #8
  store i64 0, ptr %266, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %267) #8
  %1770 = getelementptr inbounds i8, ptr %243, i64 4
  store ptr %1770, ptr %267, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %268) #8
  %1771 = getelementptr inbounds i8, ptr %266, i64 7
  store ptr %1771, ptr %268, align 8, !tbaa !9
  store i32 0, ptr %264, align 4, !tbaa !5
  br label %1772

1772:                                             ; preds = %1783, %1756
  %1773 = load i32, ptr %264, align 4, !tbaa !5
  %1774 = load i32, ptr %265, align 4, !tbaa !5
  %1775 = add nsw i32 19, %1774
  %1776 = icmp slt i32 %1773, %1775
  br i1 %1776, label %1777, label %1786

1777:                                             ; preds = %1772
  %1778 = load ptr, ptr %267, align 8, !tbaa !9
  %1779 = getelementptr inbounds i8, ptr %1778, i32 1
  store ptr %1779, ptr %267, align 8, !tbaa !9
  %1780 = load i8, ptr %1778, align 1, !tbaa !15
  %1781 = load ptr, ptr %268, align 8, !tbaa !9
  %1782 = getelementptr inbounds i8, ptr %1781, i32 -1
  store ptr %1782, ptr %268, align 8, !tbaa !9
  store i8 %1780, ptr %1781, align 1, !tbaa !15
  br label %1783

1783:                                             ; preds = %1777
  %1784 = load i32, ptr %264, align 4, !tbaa !5
  %1785 = add nsw i32 %1784, 8
  store i32 %1785, ptr %264, align 4, !tbaa !5
  br label %1772, !llvm.loop !68

1786:                                             ; preds = %1772
  %1787 = load i64, ptr %266, align 8, !tbaa !13
  %1788 = load i32, ptr %265, align 4, !tbaa !5
  %1789 = sub nsw i32 45, %1788
  %1790 = zext i32 %1789 to i64
  %1791 = lshr i64 %1787, %1790
  %1792 = trunc i64 %1791 to i32
  %1793 = zext i32 %1792 to i64
  %1794 = load i64, ptr %242, align 1
  %1795 = and i64 %1793, 524287
  %1796 = shl i64 %1795, 32
  %1797 = and i64 %1794, -2251795518717953
  %1798 = or i64 %1797, %1796
  store i64 %1798, ptr %242, align 1
  %1799 = trunc i64 %1795 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %268) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #8
  store i32 3, ptr %270, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #8
  store i64 0, ptr %271, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #8
  %1800 = getelementptr inbounds i8, ptr %243, i64 6
  store ptr %1800, ptr %272, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %273) #8
  %1801 = getelementptr inbounds i8, ptr %271, i64 7
  store ptr %1801, ptr %273, align 8, !tbaa !9
  store i32 0, ptr %269, align 4, !tbaa !5
  br label %1802

1802:                                             ; preds = %1813, %1786
  %1803 = load i32, ptr %269, align 4, !tbaa !5
  %1804 = load i32, ptr %270, align 4, !tbaa !5
  %1805 = add nsw i32 13, %1804
  %1806 = icmp slt i32 %1803, %1805
  br i1 %1806, label %1807, label %1816

1807:                                             ; preds = %1802
  %1808 = load ptr, ptr %272, align 8, !tbaa !9
  %1809 = getelementptr inbounds i8, ptr %1808, i32 1
  store ptr %1809, ptr %272, align 8, !tbaa !9
  %1810 = load i8, ptr %1808, align 1, !tbaa !15
  %1811 = load ptr, ptr %273, align 8, !tbaa !9
  %1812 = getelementptr inbounds i8, ptr %1811, i32 -1
  store ptr %1812, ptr %273, align 8, !tbaa !9
  store i8 %1810, ptr %1811, align 1, !tbaa !15
  br label %1813

1813:                                             ; preds = %1807
  %1814 = load i32, ptr %269, align 4, !tbaa !5
  %1815 = add nsw i32 %1814, 8
  store i32 %1815, ptr %269, align 4, !tbaa !5
  br label %1802, !llvm.loop !69

1816:                                             ; preds = %1802
  %1817 = load i64, ptr %271, align 8, !tbaa !13
  %1818 = load i32, ptr %270, align 4, !tbaa !5
  %1819 = sub nsw i32 51, %1818
  %1820 = zext i32 %1819 to i64
  %1821 = lshr i64 %1817, %1820
  %1822 = trunc i64 %1821 to i32
  %1823 = zext i32 %1822 to i64
  %1824 = load i64, ptr %242, align 1
  %1825 = and i64 %1823, 8191
  %1826 = shl i64 %1825, 51
  %1827 = and i64 %1824, 2251799813685247
  %1828 = or i64 %1827, %1826
  store i64 %1828, ptr %242, align 1
  %1829 = trunc i64 %1825 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #8
  store i32 0, ptr %275, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %276) #8
  store i64 0, ptr %276, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %277) #8
  %1830 = getelementptr inbounds i8, ptr %243, i64 8
  store ptr %1830, ptr %277, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #8
  %1831 = getelementptr inbounds i8, ptr %276, i64 7
  store ptr %1831, ptr %278, align 8, !tbaa !9
  store i32 0, ptr %274, align 4, !tbaa !5
  br label %1832

1832:                                             ; preds = %1843, %1816
  %1833 = load i32, ptr %274, align 4, !tbaa !5
  %1834 = load i32, ptr %275, align 4, !tbaa !5
  %1835 = add nsw i32 32, %1834
  %1836 = icmp slt i32 %1833, %1835
  br i1 %1836, label %1837, label %1846

1837:                                             ; preds = %1832
  %1838 = load ptr, ptr %277, align 8, !tbaa !9
  %1839 = getelementptr inbounds i8, ptr %1838, i32 1
  store ptr %1839, ptr %277, align 8, !tbaa !9
  %1840 = load i8, ptr %1838, align 1, !tbaa !15
  %1841 = load ptr, ptr %278, align 8, !tbaa !9
  %1842 = getelementptr inbounds i8, ptr %1841, i32 -1
  store ptr %1842, ptr %278, align 8, !tbaa !9
  store i8 %1840, ptr %1841, align 1, !tbaa !15
  br label %1843

1843:                                             ; preds = %1837
  %1844 = load i32, ptr %274, align 4, !tbaa !5
  %1845 = add nsw i32 %1844, 8
  store i32 %1845, ptr %274, align 4, !tbaa !5
  br label %1832, !llvm.loop !70

1846:                                             ; preds = %1832
  %1847 = load i64, ptr %276, align 8, !tbaa !13
  %1848 = load i32, ptr %275, align 4, !tbaa !5
  %1849 = sub nsw i32 32, %1848
  %1850 = zext i32 %1849 to i64
  %1851 = lshr i64 %1847, %1850
  %1852 = trunc i64 %1851 to i32
  %1853 = getelementptr inbounds %struct.squashfs_dir_inode_header, ptr %242, i32 0, i32 1
  store i32 %1852, ptr %1853, align 1, !tbaa !71
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %277) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %276) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #8
  store i32 0, ptr %280, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #8
  store i64 0, ptr %281, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #8
  %1854 = getelementptr inbounds i8, ptr %243, i64 12
  store ptr %1854, ptr %282, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #8
  %1855 = getelementptr inbounds i8, ptr %281, i64 7
  store ptr %1855, ptr %283, align 8, !tbaa !9
  store i32 0, ptr %279, align 4, !tbaa !5
  br label %1856

1856:                                             ; preds = %1867, %1846
  %1857 = load i32, ptr %279, align 4, !tbaa !5
  %1858 = load i32, ptr %280, align 4, !tbaa !5
  %1859 = add nsw i32 24, %1858
  %1860 = icmp slt i32 %1857, %1859
  br i1 %1860, label %1861, label %1870

1861:                                             ; preds = %1856
  %1862 = load ptr, ptr %282, align 8, !tbaa !9
  %1863 = getelementptr inbounds i8, ptr %1862, i32 1
  store ptr %1863, ptr %282, align 8, !tbaa !9
  %1864 = load i8, ptr %1862, align 1, !tbaa !15
  %1865 = load ptr, ptr %283, align 8, !tbaa !9
  %1866 = getelementptr inbounds i8, ptr %1865, i32 -1
  store ptr %1866, ptr %283, align 8, !tbaa !9
  store i8 %1864, ptr %1865, align 1, !tbaa !15
  br label %1867

1867:                                             ; preds = %1861
  %1868 = load i32, ptr %279, align 4, !tbaa !5
  %1869 = add nsw i32 %1868, 8
  store i32 %1869, ptr %279, align 4, !tbaa !5
  br label %1856, !llvm.loop !73

1870:                                             ; preds = %1856
  %1871 = load i64, ptr %281, align 8, !tbaa !13
  %1872 = load i32, ptr %280, align 4, !tbaa !5
  %1873 = sub nsw i32 40, %1872
  %1874 = zext i32 %1873 to i64
  %1875 = lshr i64 %1871, %1874
  %1876 = trunc i64 %1875 to i32
  %1877 = getelementptr inbounds %struct.squashfs_dir_inode_header, ptr %242, i32 0, i32 2
  %1878 = trunc i32 %1876 to i24
  store i24 %1878, ptr %1877, align 1
  %1879 = zext i24 %1878 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #8
  call void @llvm.lifetime.end.p0(i64 15, ptr %243) #8
  br label %1882

1880:                                             ; preds = %1646
  %1881 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %242, ptr align 1 %1881, i64 15, i1 false)
  br label %1882

1882:                                             ; preds = %1880, %1870
  %1883 = getelementptr inbounds %struct.squashfs_dir_inode_header, ptr %242, i32 0, i32 2
  %1884 = load i24, ptr %1883, align 1
  %1885 = zext i24 %1884 to i32
  %1886 = load i32, ptr %43, align 4, !tbaa !5
  %1887 = icmp ult i32 %1885, %1886
  br i1 %1887, label %1888, label %1896

1888:                                             ; preds = %1882
  %1889 = load i64, ptr %242, align 1
  %1890 = lshr i64 %1889, 32
  %1891 = and i64 %1890, 524287
  %1892 = trunc i64 %1891 to i32
  %1893 = load ptr, ptr %31, align 8, !tbaa !9
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = add i32 %1894, %1892
  store i32 %1895, ptr %1893, align 4, !tbaa !5
  br label %1896

1896:                                             ; preds = %1888, %1882
  %1897 = load ptr, ptr %35, align 8, !tbaa !9
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = add nsw i32 %1898, 1
  store i32 %1899, ptr %1897, align 4, !tbaa !5
  %1900 = load ptr, ptr %38, align 8, !tbaa !9
  %1901 = getelementptr inbounds i8, ptr %1900, i64 15
  store ptr %1901, ptr %38, align 8, !tbaa !9
  store i32 97, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 15, ptr %242) #8
  br label %2310

1902:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 18, ptr %284) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #8
  %1903 = load i32, ptr @swap, align 4, !tbaa !5
  %1904 = icmp ne i32 %1903, 0
  br i1 %1904, label %1905, label %2155

1905:                                             ; preds = %1902
  call void @llvm.lifetime.start.p0(i64 18, ptr %286) #8
  %1906 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %286, ptr align 1 %1906, i64 18, i1 false)
  call void @llvm.memset.p0.i64(ptr align 1 %284, i8 0, i64 18, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #8
  store i32 0, ptr %288, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #8
  store i64 0, ptr %289, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #8
  %1907 = getelementptr inbounds i8, ptr %286, i64 0
  store ptr %1907, ptr %290, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #8
  %1908 = getelementptr inbounds i8, ptr %289, i64 7
  store ptr %1908, ptr %291, align 8, !tbaa !9
  store i32 0, ptr %287, align 4, !tbaa !5
  br label %1909

1909:                                             ; preds = %1920, %1905
  %1910 = load i32, ptr %287, align 4, !tbaa !5
  %1911 = load i32, ptr %288, align 4, !tbaa !5
  %1912 = add nsw i32 4, %1911
  %1913 = icmp slt i32 %1910, %1912
  br i1 %1913, label %1914, label %1923

1914:                                             ; preds = %1909
  %1915 = load ptr, ptr %290, align 8, !tbaa !9
  %1916 = getelementptr inbounds i8, ptr %1915, i32 1
  store ptr %1916, ptr %290, align 8, !tbaa !9
  %1917 = load i8, ptr %1915, align 1, !tbaa !15
  %1918 = load ptr, ptr %291, align 8, !tbaa !9
  %1919 = getelementptr inbounds i8, ptr %1918, i32 -1
  store ptr %1919, ptr %291, align 8, !tbaa !9
  store i8 %1917, ptr %1918, align 1, !tbaa !15
  br label %1920

1920:                                             ; preds = %1914
  %1921 = load i32, ptr %287, align 4, !tbaa !5
  %1922 = add nsw i32 %1921, 8
  store i32 %1922, ptr %287, align 4, !tbaa !5
  br label %1909, !llvm.loop !74

1923:                                             ; preds = %1909
  %1924 = load i64, ptr %289, align 8, !tbaa !13
  %1925 = load i32, ptr %288, align 4, !tbaa !5
  %1926 = sub nsw i32 60, %1925
  %1927 = zext i32 %1926 to i64
  %1928 = lshr i64 %1924, %1927
  %1929 = trunc i64 %1928 to i32
  %1930 = load i32, ptr %284, align 1
  %1931 = and i32 %1929, 15
  %1932 = and i32 %1930, -16
  %1933 = or i32 %1932, %1931
  store i32 %1933, ptr %284, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #8
  store i32 4, ptr %293, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #8
  store i64 0, ptr %294, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #8
  %1934 = getelementptr inbounds i8, ptr %286, i64 0
  store ptr %1934, ptr %295, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %296) #8
  %1935 = getelementptr inbounds i8, ptr %294, i64 7
  store ptr %1935, ptr %296, align 8, !tbaa !9
  store i32 0, ptr %292, align 4, !tbaa !5
  br label %1936

1936:                                             ; preds = %1947, %1923
  %1937 = load i32, ptr %292, align 4, !tbaa !5
  %1938 = load i32, ptr %293, align 4, !tbaa !5
  %1939 = add nsw i32 12, %1938
  %1940 = icmp slt i32 %1937, %1939
  br i1 %1940, label %1941, label %1950

1941:                                             ; preds = %1936
  %1942 = load ptr, ptr %295, align 8, !tbaa !9
  %1943 = getelementptr inbounds i8, ptr %1942, i32 1
  store ptr %1943, ptr %295, align 8, !tbaa !9
  %1944 = load i8, ptr %1942, align 1, !tbaa !15
  %1945 = load ptr, ptr %296, align 8, !tbaa !9
  %1946 = getelementptr inbounds i8, ptr %1945, i32 -1
  store ptr %1946, ptr %296, align 8, !tbaa !9
  store i8 %1944, ptr %1945, align 1, !tbaa !15
  br label %1947

1947:                                             ; preds = %1941
  %1948 = load i32, ptr %292, align 4, !tbaa !5
  %1949 = add nsw i32 %1948, 8
  store i32 %1949, ptr %292, align 4, !tbaa !5
  br label %1936, !llvm.loop !75

1950:                                             ; preds = %1936
  %1951 = load i64, ptr %294, align 8, !tbaa !13
  %1952 = load i32, ptr %293, align 4, !tbaa !5
  %1953 = sub nsw i32 52, %1952
  %1954 = zext i32 %1953 to i64
  %1955 = lshr i64 %1951, %1954
  %1956 = trunc i64 %1955 to i32
  %1957 = load i32, ptr %284, align 1
  %1958 = and i32 %1956, 4095
  %1959 = shl i32 %1958, 4
  %1960 = and i32 %1957, -65521
  %1961 = or i32 %1960, %1959
  store i32 %1961, ptr %284, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #8
  store i32 0, ptr %298, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %299) #8
  store i64 0, ptr %299, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %300) #8
  %1962 = getelementptr inbounds i8, ptr %286, i64 2
  store ptr %1962, ptr %300, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #8
  %1963 = getelementptr inbounds i8, ptr %299, i64 7
  store ptr %1963, ptr %301, align 8, !tbaa !9
  store i32 0, ptr %297, align 4, !tbaa !5
  br label %1964

1964:                                             ; preds = %1975, %1950
  %1965 = load i32, ptr %297, align 4, !tbaa !5
  %1966 = load i32, ptr %298, align 4, !tbaa !5
  %1967 = add nsw i32 8, %1966
  %1968 = icmp slt i32 %1965, %1967
  br i1 %1968, label %1969, label %1978

1969:                                             ; preds = %1964
  %1970 = load ptr, ptr %300, align 8, !tbaa !9
  %1971 = getelementptr inbounds i8, ptr %1970, i32 1
  store ptr %1971, ptr %300, align 8, !tbaa !9
  %1972 = load i8, ptr %1970, align 1, !tbaa !15
  %1973 = load ptr, ptr %301, align 8, !tbaa !9
  %1974 = getelementptr inbounds i8, ptr %1973, i32 -1
  store ptr %1974, ptr %301, align 8, !tbaa !9
  store i8 %1972, ptr %1973, align 1, !tbaa !15
  br label %1975

1975:                                             ; preds = %1969
  %1976 = load i32, ptr %297, align 4, !tbaa !5
  %1977 = add nsw i32 %1976, 8
  store i32 %1977, ptr %297, align 4, !tbaa !5
  br label %1964, !llvm.loop !76

1978:                                             ; preds = %1964
  %1979 = load i64, ptr %299, align 8, !tbaa !13
  %1980 = load i32, ptr %298, align 4, !tbaa !5
  %1981 = sub nsw i32 56, %1980
  %1982 = zext i32 %1981 to i64
  %1983 = lshr i64 %1979, %1982
  %1984 = trunc i64 %1983 to i32
  %1985 = load i32, ptr %284, align 1
  %1986 = and i32 %1984, 255
  %1987 = shl i32 %1986, 16
  %1988 = and i32 %1985, -16711681
  %1989 = or i32 %1988, %1987
  store i32 %1989, ptr %284, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %300) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #8
  store i32 0, ptr %303, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %304) #8
  store i64 0, ptr %304, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #8
  %1990 = getelementptr inbounds i8, ptr %286, i64 3
  store ptr %1990, ptr %305, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #8
  %1991 = getelementptr inbounds i8, ptr %304, i64 7
  store ptr %1991, ptr %306, align 8, !tbaa !9
  store i32 0, ptr %302, align 4, !tbaa !5
  br label %1992

1992:                                             ; preds = %2003, %1978
  %1993 = load i32, ptr %302, align 4, !tbaa !5
  %1994 = load i32, ptr %303, align 4, !tbaa !5
  %1995 = add nsw i32 8, %1994
  %1996 = icmp slt i32 %1993, %1995
  br i1 %1996, label %1997, label %2006

1997:                                             ; preds = %1992
  %1998 = load ptr, ptr %305, align 8, !tbaa !9
  %1999 = getelementptr inbounds i8, ptr %1998, i32 1
  store ptr %1999, ptr %305, align 8, !tbaa !9
  %2000 = load i8, ptr %1998, align 1, !tbaa !15
  %2001 = load ptr, ptr %306, align 8, !tbaa !9
  %2002 = getelementptr inbounds i8, ptr %2001, i32 -1
  store ptr %2002, ptr %306, align 8, !tbaa !9
  store i8 %2000, ptr %2001, align 1, !tbaa !15
  br label %2003

2003:                                             ; preds = %1997
  %2004 = load i32, ptr %302, align 4, !tbaa !5
  %2005 = add nsw i32 %2004, 8
  store i32 %2005, ptr %302, align 4, !tbaa !5
  br label %1992, !llvm.loop !77

2006:                                             ; preds = %1992
  %2007 = load i64, ptr %304, align 8, !tbaa !13
  %2008 = load i32, ptr %303, align 4, !tbaa !5
  %2009 = sub nsw i32 56, %2008
  %2010 = zext i32 %2009 to i64
  %2011 = lshr i64 %2007, %2010
  %2012 = trunc i64 %2011 to i32
  %2013 = load i32, ptr %284, align 1
  %2014 = and i32 %2012, 255
  %2015 = shl i32 %2014, 24
  %2016 = and i32 %2013, 16777215
  %2017 = or i32 %2016, %2015
  store i32 %2017, ptr %284, align 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %304) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #8
  store i32 0, ptr %308, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %309) #8
  store i64 0, ptr %309, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %310) #8
  %2018 = getelementptr inbounds i8, ptr %286, i64 4
  store ptr %2018, ptr %310, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %311) #8
  %2019 = getelementptr inbounds i8, ptr %309, i64 7
  store ptr %2019, ptr %311, align 8, !tbaa !9
  store i32 0, ptr %307, align 4, !tbaa !5
  br label %2020

2020:                                             ; preds = %2031, %2006
  %2021 = load i32, ptr %307, align 4, !tbaa !5
  %2022 = load i32, ptr %308, align 4, !tbaa !5
  %2023 = add nsw i32 27, %2022
  %2024 = icmp slt i32 %2021, %2023
  br i1 %2024, label %2025, label %2034

2025:                                             ; preds = %2020
  %2026 = load ptr, ptr %310, align 8, !tbaa !9
  %2027 = getelementptr inbounds i8, ptr %2026, i32 1
  store ptr %2027, ptr %310, align 8, !tbaa !9
  %2028 = load i8, ptr %2026, align 1, !tbaa !15
  %2029 = load ptr, ptr %311, align 8, !tbaa !9
  %2030 = getelementptr inbounds i8, ptr %2029, i32 -1
  store ptr %2030, ptr %311, align 8, !tbaa !9
  store i8 %2028, ptr %2029, align 1, !tbaa !15
  br label %2031

2031:                                             ; preds = %2025
  %2032 = load i32, ptr %307, align 4, !tbaa !5
  %2033 = add nsw i32 %2032, 8
  store i32 %2033, ptr %307, align 4, !tbaa !5
  br label %2020, !llvm.loop !78

2034:                                             ; preds = %2020
  %2035 = load i64, ptr %309, align 8, !tbaa !13
  %2036 = load i32, ptr %308, align 4, !tbaa !5
  %2037 = sub nsw i32 37, %2036
  %2038 = zext i32 %2037 to i64
  %2039 = lshr i64 %2035, %2038
  %2040 = trunc i64 %2039 to i32
  %2041 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 1
  %2042 = zext i32 %2040 to i40
  %2043 = load i40, ptr %2041, align 1
  %2044 = and i40 %2042, 134217727
  %2045 = and i40 %2043, -134217728
  %2046 = or i40 %2045, %2044
  store i40 %2046, ptr %2041, align 1
  %2047 = trunc i40 %2044 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %311) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #8
  store i32 3, ptr %313, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %314) #8
  store i64 0, ptr %314, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %315) #8
  %2048 = getelementptr inbounds i8, ptr %286, i64 7
  store ptr %2048, ptr %315, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %316) #8
  %2049 = getelementptr inbounds i8, ptr %314, i64 7
  store ptr %2049, ptr %316, align 8, !tbaa !9
  store i32 0, ptr %312, align 4, !tbaa !5
  br label %2050

2050:                                             ; preds = %2061, %2034
  %2051 = load i32, ptr %312, align 4, !tbaa !5
  %2052 = load i32, ptr %313, align 4, !tbaa !5
  %2053 = add nsw i32 13, %2052
  %2054 = icmp slt i32 %2051, %2053
  br i1 %2054, label %2055, label %2064

2055:                                             ; preds = %2050
  %2056 = load ptr, ptr %315, align 8, !tbaa !9
  %2057 = getelementptr inbounds i8, ptr %2056, i32 1
  store ptr %2057, ptr %315, align 8, !tbaa !9
  %2058 = load i8, ptr %2056, align 1, !tbaa !15
  %2059 = load ptr, ptr %316, align 8, !tbaa !9
  %2060 = getelementptr inbounds i8, ptr %2059, i32 -1
  store ptr %2060, ptr %316, align 8, !tbaa !9
  store i8 %2058, ptr %2059, align 1, !tbaa !15
  br label %2061

2061:                                             ; preds = %2055
  %2062 = load i32, ptr %312, align 4, !tbaa !5
  %2063 = add nsw i32 %2062, 8
  store i32 %2063, ptr %312, align 4, !tbaa !5
  br label %2050, !llvm.loop !79

2064:                                             ; preds = %2050
  %2065 = load i64, ptr %314, align 8, !tbaa !13
  %2066 = load i32, ptr %313, align 4, !tbaa !5
  %2067 = sub nsw i32 51, %2066
  %2068 = zext i32 %2067 to i64
  %2069 = lshr i64 %2065, %2068
  %2070 = trunc i64 %2069 to i32
  %2071 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 1
  %2072 = zext i32 %2070 to i40
  %2073 = load i40, ptr %2071, align 1
  %2074 = and i40 %2072, 8191
  %2075 = shl i40 %2074, 27
  %2076 = and i40 %2073, 134217727
  %2077 = or i40 %2076, %2075
  store i40 %2077, ptr %2071, align 1
  %2078 = trunc i40 %2074 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %316) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %315) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #8
  store i32 0, ptr %318, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #8
  store i64 0, ptr %319, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %320) #8
  %2079 = getelementptr inbounds i8, ptr %286, i64 9
  store ptr %2079, ptr %320, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %321) #8
  %2080 = getelementptr inbounds i8, ptr %319, i64 7
  store ptr %2080, ptr %321, align 8, !tbaa !9
  store i32 0, ptr %317, align 4, !tbaa !5
  br label %2081

2081:                                             ; preds = %2092, %2064
  %2082 = load i32, ptr %317, align 4, !tbaa !5
  %2083 = load i32, ptr %318, align 4, !tbaa !5
  %2084 = add nsw i32 32, %2083
  %2085 = icmp slt i32 %2082, %2084
  br i1 %2085, label %2086, label %2095

2086:                                             ; preds = %2081
  %2087 = load ptr, ptr %320, align 8, !tbaa !9
  %2088 = getelementptr inbounds i8, ptr %2087, i32 1
  store ptr %2088, ptr %320, align 8, !tbaa !9
  %2089 = load i8, ptr %2087, align 1, !tbaa !15
  %2090 = load ptr, ptr %321, align 8, !tbaa !9
  %2091 = getelementptr inbounds i8, ptr %2090, i32 -1
  store ptr %2091, ptr %321, align 8, !tbaa !9
  store i8 %2089, ptr %2090, align 1, !tbaa !15
  br label %2092

2092:                                             ; preds = %2086
  %2093 = load i32, ptr %317, align 4, !tbaa !5
  %2094 = add nsw i32 %2093, 8
  store i32 %2094, ptr %317, align 4, !tbaa !5
  br label %2081, !llvm.loop !80

2095:                                             ; preds = %2081
  %2096 = load i64, ptr %319, align 8, !tbaa !13
  %2097 = load i32, ptr %318, align 4, !tbaa !5
  %2098 = sub nsw i32 32, %2097
  %2099 = zext i32 %2098 to i64
  %2100 = lshr i64 %2096, %2099
  %2101 = trunc i64 %2100 to i32
  %2102 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 2
  store i32 %2101, ptr %2102, align 1, !tbaa !81
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #8
  store i32 0, ptr %323, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %324) #8
  store i64 0, ptr %324, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %325) #8
  %2103 = getelementptr inbounds i8, ptr %286, i64 13
  store ptr %2103, ptr %325, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %326) #8
  %2104 = getelementptr inbounds i8, ptr %324, i64 7
  store ptr %2104, ptr %326, align 8, !tbaa !9
  store i32 0, ptr %322, align 4, !tbaa !5
  br label %2105

2105:                                             ; preds = %2116, %2095
  %2106 = load i32, ptr %322, align 4, !tbaa !5
  %2107 = load i32, ptr %323, align 4, !tbaa !5
  %2108 = add nsw i32 24, %2107
  %2109 = icmp slt i32 %2106, %2108
  br i1 %2109, label %2110, label %2119

2110:                                             ; preds = %2105
  %2111 = load ptr, ptr %325, align 8, !tbaa !9
  %2112 = getelementptr inbounds i8, ptr %2111, i32 1
  store ptr %2112, ptr %325, align 8, !tbaa !9
  %2113 = load i8, ptr %2111, align 1, !tbaa !15
  %2114 = load ptr, ptr %326, align 8, !tbaa !9
  %2115 = getelementptr inbounds i8, ptr %2114, i32 -1
  store ptr %2115, ptr %326, align 8, !tbaa !9
  store i8 %2113, ptr %2114, align 1, !tbaa !15
  br label %2116

2116:                                             ; preds = %2110
  %2117 = load i32, ptr %322, align 4, !tbaa !5
  %2118 = add nsw i32 %2117, 8
  store i32 %2118, ptr %322, align 4, !tbaa !5
  br label %2105, !llvm.loop !83

2119:                                             ; preds = %2105
  %2120 = load i64, ptr %324, align 8, !tbaa !13
  %2121 = load i32, ptr %323, align 4, !tbaa !5
  %2122 = sub nsw i32 40, %2121
  %2123 = zext i32 %2122 to i64
  %2124 = lshr i64 %2120, %2123
  %2125 = trunc i64 %2124 to i32
  %2126 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 3
  %2127 = trunc i32 %2125 to i24
  store i24 %2127, ptr %2126, align 1
  %2128 = zext i24 %2127 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %324) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %327) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #8
  store i32 0, ptr %328, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %329) #8
  store i64 0, ptr %329, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %330) #8
  %2129 = getelementptr inbounds i8, ptr %286, i64 16
  store ptr %2129, ptr %330, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #8
  %2130 = getelementptr inbounds i8, ptr %329, i64 7
  store ptr %2130, ptr %331, align 8, !tbaa !9
  store i32 0, ptr %327, align 4, !tbaa !5
  br label %2131

2131:                                             ; preds = %2142, %2119
  %2132 = load i32, ptr %327, align 4, !tbaa !5
  %2133 = load i32, ptr %328, align 4, !tbaa !5
  %2134 = add nsw i32 16, %2133
  %2135 = icmp slt i32 %2132, %2134
  br i1 %2135, label %2136, label %2145

2136:                                             ; preds = %2131
  %2137 = load ptr, ptr %330, align 8, !tbaa !9
  %2138 = getelementptr inbounds i8, ptr %2137, i32 1
  store ptr %2138, ptr %330, align 8, !tbaa !9
  %2139 = load i8, ptr %2137, align 1, !tbaa !15
  %2140 = load ptr, ptr %331, align 8, !tbaa !9
  %2141 = getelementptr inbounds i8, ptr %2140, i32 -1
  store ptr %2141, ptr %331, align 8, !tbaa !9
  store i8 %2139, ptr %2140, align 1, !tbaa !15
  br label %2142

2142:                                             ; preds = %2136
  %2143 = load i32, ptr %327, align 4, !tbaa !5
  %2144 = add nsw i32 %2143, 8
  store i32 %2144, ptr %327, align 4, !tbaa !5
  br label %2131, !llvm.loop !84

2145:                                             ; preds = %2131
  %2146 = load i64, ptr %329, align 8, !tbaa !13
  %2147 = load i32, ptr %328, align 4, !tbaa !5
  %2148 = sub nsw i32 48, %2147
  %2149 = zext i32 %2148 to i64
  %2150 = lshr i64 %2146, %2149
  %2151 = trunc i64 %2150 to i32
  %2152 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 4
  %2153 = trunc i32 %2151 to i16
  store i16 %2153, ptr %2152, align 1
  %2154 = zext i16 %2153 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %330) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %329) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %327) #8
  call void @llvm.lifetime.end.p0(i64 18, ptr %286) #8
  br label %2157

2155:                                             ; preds = %1902
  %2156 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %284, ptr align 1 %2156, i64 18, i1 false)
  br label %2157

2157:                                             ; preds = %2155, %2145
  %2158 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 3
  %2159 = load i24, ptr %2158, align 1
  %2160 = zext i24 %2159 to i32
  %2161 = load i32, ptr %43, align 4, !tbaa !5
  %2162 = icmp ult i32 %2160, %2161
  br i1 %2162, label %2163, label %2171

2163:                                             ; preds = %2157
  %2164 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 1
  %2165 = load i40, ptr %2164, align 1
  %2166 = and i40 %2165, 134217727
  %2167 = trunc i40 %2166 to i32
  %2168 = load ptr, ptr %31, align 8, !tbaa !9
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = add i32 %2169, %2167
  store i32 %2170, ptr %2168, align 4, !tbaa !5
  br label %2171

2171:                                             ; preds = %2163, %2157
  %2172 = load ptr, ptr %35, align 8, !tbaa !9
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = add nsw i32 %2173, 1
  store i32 %2174, ptr %2172, align 4, !tbaa !5
  %2175 = load ptr, ptr %38, align 8, !tbaa !9
  %2176 = getelementptr inbounds i8, ptr %2175, i64 18
  store ptr %2176, ptr %38, align 8, !tbaa !9
  store i32 0, ptr %285, align 4, !tbaa !5
  br label %2177

2177:                                             ; preds = %2281, %2171
  %2178 = load i32, ptr %285, align 4, !tbaa !5
  %2179 = getelementptr inbounds %struct.squashfs_ldir_inode_header, ptr %284, i32 0, i32 4
  %2180 = load i16, ptr %2179, align 1
  %2181 = zext i16 %2180 to i32
  %2182 = icmp slt i32 %2178, %2181
  br i1 %2182, label %2183, label %2284

2183:                                             ; preds = %2177
  call void @llvm.lifetime.start.p0(i64 8, ptr %332) #8
  %2184 = load i32, ptr @swap, align 4, !tbaa !5
  %2185 = icmp ne i32 %2184, 0
  br i1 %2185, label %2186, label %2271

2186:                                             ; preds = %2183
  call void @llvm.lifetime.start.p0(i64 8, ptr %333) #8
  %2187 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %333, ptr align 1 %2187, i64 8, i1 false)
  call void @llvm.memset.p0.i64(ptr align 1 %332, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #8
  store i32 0, ptr %335, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %336) #8
  store i64 0, ptr %336, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %337) #8
  %2188 = getelementptr inbounds i8, ptr %333, i64 0
  store ptr %2188, ptr %337, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %338) #8
  %2189 = getelementptr inbounds i8, ptr %336, i64 7
  store ptr %2189, ptr %338, align 8, !tbaa !9
  store i32 0, ptr %334, align 4, !tbaa !5
  br label %2190

2190:                                             ; preds = %2201, %2186
  %2191 = load i32, ptr %334, align 4, !tbaa !5
  %2192 = load i32, ptr %335, align 4, !tbaa !5
  %2193 = add nsw i32 27, %2192
  %2194 = icmp slt i32 %2191, %2193
  br i1 %2194, label %2195, label %2204

2195:                                             ; preds = %2190
  %2196 = load ptr, ptr %337, align 8, !tbaa !9
  %2197 = getelementptr inbounds i8, ptr %2196, i32 1
  store ptr %2197, ptr %337, align 8, !tbaa !9
  %2198 = load i8, ptr %2196, align 1, !tbaa !15
  %2199 = load ptr, ptr %338, align 8, !tbaa !9
  %2200 = getelementptr inbounds i8, ptr %2199, i32 -1
  store ptr %2200, ptr %338, align 8, !tbaa !9
  store i8 %2198, ptr %2199, align 1, !tbaa !15
  br label %2201

2201:                                             ; preds = %2195
  %2202 = load i32, ptr %334, align 4, !tbaa !5
  %2203 = add nsw i32 %2202, 8
  store i32 %2203, ptr %334, align 4, !tbaa !5
  br label %2190, !llvm.loop !85

2204:                                             ; preds = %2190
  %2205 = load i64, ptr %336, align 8, !tbaa !13
  %2206 = load i32, ptr %335, align 4, !tbaa !5
  %2207 = sub nsw i32 37, %2206
  %2208 = zext i32 %2207 to i64
  %2209 = lshr i64 %2205, %2208
  %2210 = trunc i64 %2209 to i32
  %2211 = zext i32 %2210 to i56
  %2212 = load i56, ptr %332, align 1
  %2213 = and i56 %2211, 134217727
  %2214 = and i56 %2212, -134217728
  %2215 = or i56 %2214, %2213
  store i56 %2215, ptr %332, align 1
  %2216 = trunc i56 %2213 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %338) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %336) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #8
  store i32 3, ptr %340, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %341) #8
  store i64 0, ptr %341, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %342) #8
  %2217 = getelementptr inbounds i8, ptr %333, i64 3
  store ptr %2217, ptr %342, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %343) #8
  %2218 = getelementptr inbounds i8, ptr %341, i64 7
  store ptr %2218, ptr %343, align 8, !tbaa !9
  store i32 0, ptr %339, align 4, !tbaa !5
  br label %2219

2219:                                             ; preds = %2230, %2204
  %2220 = load i32, ptr %339, align 4, !tbaa !5
  %2221 = load i32, ptr %340, align 4, !tbaa !5
  %2222 = add nsw i32 29, %2221
  %2223 = icmp slt i32 %2220, %2222
  br i1 %2223, label %2224, label %2233

2224:                                             ; preds = %2219
  %2225 = load ptr, ptr %342, align 8, !tbaa !9
  %2226 = getelementptr inbounds i8, ptr %2225, i32 1
  store ptr %2226, ptr %342, align 8, !tbaa !9
  %2227 = load i8, ptr %2225, align 1, !tbaa !15
  %2228 = load ptr, ptr %343, align 8, !tbaa !9
  %2229 = getelementptr inbounds i8, ptr %2228, i32 -1
  store ptr %2229, ptr %343, align 8, !tbaa !9
  store i8 %2227, ptr %2228, align 1, !tbaa !15
  br label %2230

2230:                                             ; preds = %2224
  %2231 = load i32, ptr %339, align 4, !tbaa !5
  %2232 = add nsw i32 %2231, 8
  store i32 %2232, ptr %339, align 4, !tbaa !5
  br label %2219, !llvm.loop !86

2233:                                             ; preds = %2219
  %2234 = load i64, ptr %341, align 8, !tbaa !13
  %2235 = load i32, ptr %340, align 4, !tbaa !5
  %2236 = sub nsw i32 35, %2235
  %2237 = zext i32 %2236 to i64
  %2238 = lshr i64 %2234, %2237
  %2239 = trunc i64 %2238 to i32
  %2240 = zext i32 %2239 to i56
  %2241 = load i56, ptr %332, align 1
  %2242 = and i56 %2240, 536870911
  %2243 = shl i56 %2242, 27
  %2244 = and i56 %2241, 134217727
  %2245 = or i56 %2244, %2243
  store i56 %2245, ptr %332, align 1
  %2246 = trunc i56 %2242 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %343) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %342) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %341) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #8
  store i32 0, ptr %345, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %346) #8
  store i64 0, ptr %346, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %347) #8
  %2247 = getelementptr inbounds i8, ptr %333, i64 7
  store ptr %2247, ptr %347, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %348) #8
  %2248 = getelementptr inbounds i8, ptr %346, i64 7
  store ptr %2248, ptr %348, align 8, !tbaa !9
  store i32 0, ptr %344, align 4, !tbaa !5
  br label %2249

2249:                                             ; preds = %2260, %2233
  %2250 = load i32, ptr %344, align 4, !tbaa !5
  %2251 = load i32, ptr %345, align 4, !tbaa !5
  %2252 = add nsw i32 8, %2251
  %2253 = icmp slt i32 %2250, %2252
  br i1 %2253, label %2254, label %2263

2254:                                             ; preds = %2249
  %2255 = load ptr, ptr %347, align 8, !tbaa !9
  %2256 = getelementptr inbounds i8, ptr %2255, i32 1
  store ptr %2256, ptr %347, align 8, !tbaa !9
  %2257 = load i8, ptr %2255, align 1, !tbaa !15
  %2258 = load ptr, ptr %348, align 8, !tbaa !9
  %2259 = getelementptr inbounds i8, ptr %2258, i32 -1
  store ptr %2259, ptr %348, align 8, !tbaa !9
  store i8 %2257, ptr %2258, align 1, !tbaa !15
  br label %2260

2260:                                             ; preds = %2254
  %2261 = load i32, ptr %344, align 4, !tbaa !5
  %2262 = add nsw i32 %2261, 8
  store i32 %2262, ptr %344, align 4, !tbaa !5
  br label %2249, !llvm.loop !87

2263:                                             ; preds = %2249
  %2264 = load i64, ptr %346, align 8, !tbaa !13
  %2265 = load i32, ptr %345, align 4, !tbaa !5
  %2266 = sub nsw i32 56, %2265
  %2267 = zext i32 %2266 to i64
  %2268 = lshr i64 %2264, %2267
  %2269 = trunc i64 %2268 to i8
  %2270 = getelementptr inbounds %struct.squashfs_dir_index, ptr %332, i32 0, i32 1
  store i8 %2269, ptr %2270, align 1, !tbaa !88
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #8
  br label %2273

2271:                                             ; preds = %2183
  %2272 = load ptr, ptr %38, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %332, ptr align 1 %2272, i64 8, i1 false)
  br label %2273

2273:                                             ; preds = %2271, %2263
  %2274 = getelementptr inbounds %struct.squashfs_dir_index, ptr %332, i32 0, i32 1
  %2275 = load i8, ptr %2274, align 1, !tbaa !88
  %2276 = zext i8 %2275 to i64
  %2277 = add i64 8, %2276
  %2278 = add i64 %2277, 1
  %2279 = load ptr, ptr %38, align 8, !tbaa !9
  %2280 = getelementptr inbounds i8, ptr %2279, i64 %2278
  store ptr %2280, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %332) #8
  br label %2281

2281:                                             ; preds = %2273
  %2282 = load i32, ptr %285, align 4, !tbaa !5
  %2283 = add nsw i32 %2282, 1
  store i32 %2283, ptr %285, align 4, !tbaa !5
  br label %2177, !llvm.loop !90

2284:                                             ; preds = %2177
  store i32 97, ptr %44, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #8
  call void @llvm.lifetime.end.p0(i64 18, ptr %284) #8
  br label %2310

2285:                                             ; preds = %1327, %1327
  %2286 = load ptr, ptr %34, align 8, !tbaa !9
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = add nsw i32 %2287, 1
  store i32 %2288, ptr %2286, align 4, !tbaa !5
  %2289 = load ptr, ptr %38, align 8, !tbaa !9
  %2290 = getelementptr inbounds i8, ptr %2289, i64 6
  store ptr %2290, ptr %38, align 8, !tbaa !9
  br label %2310

2291:                                             ; preds = %1327
  %2292 = load ptr, ptr %36, align 8, !tbaa !9
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = add nsw i32 %2293, 1
  store i32 %2294, ptr %2292, align 4, !tbaa !5
  %2295 = load ptr, ptr %38, align 8, !tbaa !9
  %2296 = getelementptr inbounds i8, ptr %2295, i64 4
  store ptr %2296, ptr %38, align 8, !tbaa !9
  br label %2310

2297:                                             ; preds = %1327
  %2298 = load ptr, ptr %37, align 8, !tbaa !9
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = add nsw i32 %2299, 1
  store i32 %2300, ptr %2298, align 4, !tbaa !5
  %2301 = load ptr, ptr %38, align 8, !tbaa !9
  %2302 = getelementptr inbounds i8, ptr %2301, i64 4
  store ptr %2302, ptr %38, align 8, !tbaa !9
  br label %2310

2303:                                             ; preds = %1327
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = load i32, ptr %42, align 1
  %2306 = and i32 %2305, 15
  %2307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2304, ptr noundef @.str.3, i32 noundef %2306) #8
  %2308 = load ptr, ptr %27, align 8, !tbaa !9
  %2309 = load ptr, ptr %2308, align 8, !tbaa !9
  call void @free(ptr noundef %2309) #8
  store i32 0, ptr %19, align 4
  store i32 1, ptr %44, align 4
  br label %2316

2310:                                             ; preds = %2297, %2291, %2285, %2284, %1896, %1636, %1478
  br label %2311

2311:                                             ; preds = %2310
  %2312 = load i32, ptr %41, align 4, !tbaa !5
  %2313 = add nsw i32 %2312, 1
  store i32 %2313, ptr %41, align 4, !tbaa !5
  br label %1081, !llvm.loop !91

2314:                                             ; preds = %1081
  %2315 = load i32, ptr %41, align 4, !tbaa !5
  store i32 %2315, ptr %19, align 4
  store i32 1, ptr %44, align 4
  br label %2316

2316:                                             ; preds = %2314, %2303, %388, %374
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  %2317 = load i32, ptr %19, align 4
  ret i32 %2317
}

; Function Attrs: nounwind allocsize(1)
declare ptr @realloc(ptr noundef, i64 noundef) #3

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

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

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

; Function Attrs: nocallback nofree nosync nounwind willreturn
declare ptr @llvm.stacksave.p0() #6

; Function Attrs: nocallback nofree nosync nounwind willreturn
declare void @llvm.stackrestore.p0(ptr) #6

declare i32 @add_file(i32 noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #7

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"long long", !7, i64 0}
!15 = !{!7, !7, i64 0}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12}
!42 = !{!43, !6, i64 4}
!43 = !{!"", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !7, i64 24}
!44 = distinct !{!44, !12}
!45 = !{!43, !6, i64 8}
!46 = distinct !{!46, !12}
!47 = !{!43, !6, i64 12}
!48 = distinct !{!48, !12}
!49 = !{!43, !6, i64 16}
!50 = distinct !{!50, !12}
!51 = !{!52, !6, i64 51}
!52 = !{!"squashfs_super_block", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 30, !6, i64 32, !6, i64 34, !6, i64 36, !6, i64 37, !6, i64 38, !6, i64 39, !14, i64 43, !6, i64 51, !6, i64 55, !6, i64 59}
!53 = distinct !{!53, !12}
!54 = distinct !{!54, !12}
!55 = distinct !{!55, !12}
!56 = distinct !{!56, !12}
!57 = distinct !{!57, !12}
!58 = distinct !{!58, !12}
!59 = distinct !{!59, !12}
!60 = distinct !{!60, !12}
!61 = !{!62, !63, i64 4}
!62 = !{!"", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !63, i64 4, !7, i64 6}
!63 = !{!"short", !7, i64 0}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12}
!66 = distinct !{!66, !12}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12}
!70 = distinct !{!70, !12}
!71 = !{!72, !6, i64 8}
!72 = !{!"", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 6, !6, i64 8, !6, i64 12}
!73 = distinct !{!73, !12}
!74 = distinct !{!74, !12}
!75 = distinct !{!75, !12}
!76 = distinct !{!76, !12}
!77 = distinct !{!77, !12}
!78 = distinct !{!78, !12}
!79 = distinct !{!79, !12}
!80 = distinct !{!80, !12}
!81 = !{!82, !6, i64 9}
!82 = !{!"", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 7, !6, i64 9, !6, i64 13, !6, i64 16, !7, i64 18}
!83 = distinct !{!83, !12}
!84 = distinct !{!84, !12}
!85 = distinct !{!85, !12}
!86 = distinct !{!86, !12}
!87 = distinct !{!87, !12}
!88 = !{!89, !7, i64 7}
!89 = !{!"", !6, i64 0, !6, i64 3, !7, i64 7, !7, i64 8}
!90 = distinct !{!90, !12}
!91 = distinct !{!91, !12}


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

@swap = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [44 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @read_block(i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local i32 @scan_inode_table(i32 noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, ptr noundef %5, ptr nocapture noundef %6, ptr nocapture noundef %7, ptr nocapture noundef %8, ptr nocapture noundef writeonly %9, ptr nocapture noundef %10, ptr nocapture noundef %11, ptr nocapture noundef %12, ptr nocapture noundef %13, ptr nocapture noundef %14, ptr nocapture noundef %15, ptr nocapture noundef %16, ptr nocapture noundef %17) local_unnamed_addr #0 {
  %19 = alloca i32, align 4
  store i32 %1, ptr %19, align 4, !tbaa !5
  br label %20

20:                                               ; preds = %34, %18
  %.0538 = phi i32 [ 0, %18 ], [ %.1539, %34 ]
  %.0534 = phi i32 [ 0, %18 ], [ %40, %34 ]
  %21 = load i32, ptr %19, align 4, !tbaa !5
  %22 = icmp slt i32 %21, %2
  br i1 %22, label %23, label %42

23:                                               ; preds = %20
  %24 = icmp eq i32 %21, %3
  br i1 %24, label %25, label %26

25:                                               ; preds = %23
  store i32 %.0534, ptr %8, align 4, !tbaa !5
  br label %26

26:                                               ; preds = %25, %23
  %27 = sub nsw i32 %.0538, %.0534
  %28 = icmp slt i32 %27, 8192
  %.pre1241 = load ptr, ptr %7, align 8, !tbaa !9
  br i1 %28, label %29, label %34

29:                                               ; preds = %26
  %30 = add nsw i32 %.0538, 8192
  %31 = sext i32 %30 to i64
  %32 = call ptr @realloc(ptr noundef %.pre1241, i64 noundef %31) #9
  store ptr %32, ptr %7, align 8, !tbaa !9
  %33 = icmp eq ptr %32, null
  br i1 %33, label %.loopexit752, label %._crit_edge1239

._crit_edge1239:                                  ; preds = %29
  %.pre1240 = load i32, ptr %19, align 4, !tbaa !5
  br label %34

34:                                               ; preds = %._crit_edge1239, %26
  %35 = phi ptr [ %32, %._crit_edge1239 ], [ %.pre1241, %26 ]
  %36 = phi i32 [ %.pre1240, %._crit_edge1239 ], [ %21, %26 ]
  %.1539 = phi i32 [ %30, %._crit_edge1239 ], [ %.0538, %26 ]
  %37 = sext i32 %.0534 to i64
  %38 = getelementptr inbounds i8, ptr %35, i64 %37
  %39 = call i32 @read_block(i32 noundef %0, i32 noundef %36, ptr noundef nonnull %19, ptr noundef %38, ptr noundef %5)
  %40 = add nsw i32 %39, %.0534
  %41 = icmp eq i32 %40, 0
  br i1 %41, label %.loopexit752.sink.split, label %20, !llvm.loop !11

42:                                               ; preds = %20
  %43 = load i32, ptr %8, align 4, !tbaa !5
  %44 = add i32 %43, %4
  %45 = sub i32 %.0534, %44
  store i32 %45, ptr %9, align 4, !tbaa !5
  %46 = load i32, ptr %8, align 4, !tbaa !5
  %47 = add i32 %46, %4
  %48 = load i32, ptr @swap, align 4, !tbaa !5
  %.not = icmp eq i32 %48, 0
  %49 = load ptr, ptr %7, align 8, !tbaa !9
  %50 = sext i32 %47 to i64
  %51 = getelementptr inbounds i8, ptr %49, i64 %50
  %52 = load i32, ptr %51, align 1
  br i1 %.not, label %63, label %53

53:                                               ; preds = %42
  %54 = lshr i32 %52, 4
  %55 = and i32 %54, 15
  %56 = and i32 %52, 65535
  %57 = call i32 @llvm.bswap.i32(i32 %56)
  %58 = lshr exact i32 %57, 12
  %59 = and i32 %58, 65520
  %60 = or disjoint i32 %59, %55
  %61 = and i32 %52, -65536
  %62 = or disjoint i32 %61, %60
  br label %63

63:                                               ; preds = %42, %53
  %storemerge = phi i32 [ %62, %53 ], [ %52, %42 ]
  store i32 %storemerge, ptr %6, align 1
  %64 = and i32 %storemerge, 15
  %65 = icmp eq i32 %64, 1
  %66 = load i32, ptr @swap, align 4, !tbaa !5
  %.not721 = icmp eq i32 %66, 0
  %67 = load ptr, ptr %7, align 8, !tbaa !9
  %68 = sext i32 %47 to i64
  %69 = getelementptr inbounds i8, ptr %67, i64 %68
  br i1 %65, label %70, label %84

70:                                               ; preds = %63
  br i1 %.not721, label %83, label %71

71:                                               ; preds = %70
  %.sroa.01198.0.copyload = load i8, ptr %69, align 1
  %.sroa.51200.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 1
  %.sroa.51200.0.copyload = load i8, ptr %.sroa.51200.0..sroa_idx, align 1
  %.sroa.61201.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 2
  %.sroa.61201.0.copyload = load i8, ptr %.sroa.61201.0..sroa_idx, align 1
  %.sroa.71202.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 3
  %.sroa.71202.0.copyload = load i8, ptr %.sroa.71202.0..sroa_idx, align 1
  %.sroa.81203.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 4
  %.sroa.81203.0.copyload = load i8, ptr %.sroa.81203.0..sroa_idx, align 1
  %.sroa.91204.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 5
  %.sroa.91204.0.copyload = load i8, ptr %.sroa.91204.0..sroa_idx, align 1
  %.sroa.101205.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 6
  %.sroa.101205.0.copyload = load i8, ptr %.sroa.101205.0..sroa_idx, align 1
  %.sroa.121207.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 7
  %.sroa.121207.0.copyload = load i8, ptr %.sroa.121207.0..sroa_idx, align 1
  %.sroa.131208.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 8
  %.sroa.131208.0.copyload = load i8, ptr %.sroa.131208.0..sroa_idx, align 1
  %.sroa.141209.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 9
  %.sroa.141209.0.copyload = load i8, ptr %.sroa.141209.0..sroa_idx, align 1
  %.sroa.151210.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 10
  %.sroa.151210.0.copyload = load i8, ptr %.sroa.151210.0..sroa_idx, align 1
  %.sroa.161211.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 11
  %.sroa.161211.0.copyload = load i8, ptr %.sroa.161211.0..sroa_idx, align 1
  %.sroa.171212.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 12
  %.sroa.171212.0.copyload = load i8, ptr %.sroa.171212.0..sroa_idx, align 1
  %.sroa.181213.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 13
  %.sroa.181213.0.copyload = load i8, ptr %.sroa.181213.0..sroa_idx, align 1
  %.sroa.191214.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 14
  %.sroa.191214.0.copyload = load i8, ptr %.sroa.191214.0..sroa_idx, align 1
  %.sroa.41197.0.insert.ext = zext i8 %.sroa.01198.0.copyload to i64
  %.sroa.41197.0.insert.shift = shl nuw nsw i64 %.sroa.41197.0.insert.ext, 12
  %72 = lshr i64 %.sroa.41197.0.insert.ext, 4
  %.sroa.41194.0.insert.ext = zext i8 %.sroa.51200.0.copyload to i64
  %.sroa.41194.0.insert.shift = shl nuw nsw i64 %.sroa.41194.0.insert.ext, 4
  %.sroa.41197.0.insert.shift.masked = and i64 %.sroa.41197.0.insert.shift, 61440
  %73 = or disjoint i64 %.sroa.41197.0.insert.shift.masked, %.sroa.41194.0.insert.shift
  %74 = or disjoint i64 %73, %72
  %.sroa.41192.0.insert.ext = zext i8 %.sroa.61201.0.copyload to i64
  %.sroa.41192.0.insert.shift = shl nuw nsw i64 %.sroa.41192.0.insert.ext, 16
  %75 = or disjoint i64 %.sroa.41192.0.insert.shift, %74
  %.sroa.41190.0.insert.ext = zext i8 %.sroa.71202.0.copyload to i64
  %.sroa.41190.0.insert.shift = shl nuw nsw i64 %.sroa.41190.0.insert.ext, 24
  %.sroa.61188.0.insert.ext = zext i8 %.sroa.81203.0.copyload to i64
  %.sroa.61188.0.insert.shift = shl nuw nsw i64 %.sroa.61188.0.insert.ext, 43
  %.sroa.51187.0.insert.ext = zext i8 %.sroa.91204.0.copyload to i64
  %.sroa.51187.0.insert.shift = shl nuw nsw i64 %.sroa.51187.0.insert.ext, 35
  %.sroa.51187.0.insert.insert = or disjoint i64 %.sroa.61188.0.insert.shift, %.sroa.51187.0.insert.shift
  %.sroa.41186.0.insert.ext = zext i8 %.sroa.101205.0.copyload to i64
  %.sroa.41186.0.insert.shift = shl nuw nsw i64 %.sroa.41186.0.insert.ext, 27
  %.sroa.41186.0.insert.shift.masked = and i64 %.sroa.41186.0.insert.shift, 30064771072
  %76 = or disjoint i64 %.sroa.51187.0.insert.insert, %.sroa.41186.0.insert.shift.masked
  %77 = or disjoint i64 %.sroa.41190.0.insert.shift, %75
  %78 = or disjoint i64 %76, %77
  %.sroa.51184.0.insert.shift = shl i64 %.sroa.41186.0.insert.ext, 59
  %.sroa.41183.0.insert.ext = zext i8 %.sroa.121207.0.copyload to i64
  %.sroa.41183.0.insert.shift = shl nuw nsw i64 %.sroa.41183.0.insert.ext, 51
  %.sroa.41183.0.insert.insert = or disjoint i64 %.sroa.51184.0.insert.shift, %.sroa.41183.0.insert.shift
  %79 = or disjoint i64 %.sroa.41183.0.insert.insert, %78
  store i64 %79, ptr %6, align 1
  %.sroa.71181.0.insert.ext = zext i8 %.sroa.131208.0.copyload to i32
  %.sroa.71181.0.insert.shift = shl nuw i32 %.sroa.71181.0.insert.ext, 24
  %.sroa.61180.0.insert.ext = zext i8 %.sroa.141209.0.copyload to i32
  %.sroa.61180.0.insert.shift = shl nuw nsw i32 %.sroa.61180.0.insert.ext, 16
  %.sroa.61180.0.insert.insert = or disjoint i32 %.sroa.71181.0.insert.shift, %.sroa.61180.0.insert.shift
  %.sroa.51179.0.insert.ext = zext i8 %.sroa.151210.0.copyload to i32
  %.sroa.51179.0.insert.shift = shl nuw nsw i32 %.sroa.51179.0.insert.ext, 8
  %.sroa.51179.0.insert.insert = or disjoint i32 %.sroa.61180.0.insert.insert, %.sroa.51179.0.insert.shift
  %.sroa.41178.0.insert.ext = zext i8 %.sroa.161211.0.copyload to i32
  %.sroa.41178.0.insert.insert = or disjoint i32 %.sroa.51179.0.insert.insert, %.sroa.41178.0.insert.ext
  %80 = getelementptr inbounds i8, ptr %6, i64 8
  store i32 %.sroa.41178.0.insert.insert, ptr %80, align 1, !tbaa !13
  %.sroa.61176.0.insert.ext = zext i8 %.sroa.171212.0.copyload to i64
  %.sroa.61176.0.insert.shift = shl nuw nsw i64 %.sroa.61176.0.insert.ext, 16
  %.sroa.51175.0.insert.ext = zext i8 %.sroa.181213.0.copyload to i64
  %.sroa.51175.0.insert.shift = shl nuw nsw i64 %.sroa.51175.0.insert.ext, 8
  %.sroa.51175.0.insert.insert = or disjoint i64 %.sroa.61176.0.insert.shift, %.sroa.51175.0.insert.shift
  %.sroa.41174.0.insert.ext = zext i8 %.sroa.191214.0.copyload to i64
  %.sroa.41174.0.insert.insert = or disjoint i64 %.sroa.51175.0.insert.insert, %.sroa.41174.0.insert.ext
  %81 = getelementptr inbounds i8, ptr %6, i64 12
  %82 = trunc nuw i64 %.sroa.41174.0.insert.insert to i24
  store i24 %82, ptr %81, align 1
  br label %101

83:                                               ; preds = %70
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %6, ptr noundef nonnull align 1 dereferenceable(15) %69, i64 15, i1 false)
  %.phi.trans.insert1229 = getelementptr inbounds i8, ptr %6, i64 12
  %.pre1230 = load i24, ptr %.phi.trans.insert1229, align 1
  br label %101

84:                                               ; preds = %63
  br i1 %.not721, label %100, label %85

85:                                               ; preds = %84
  %.sroa.01153.0.copyload = load i8, ptr %69, align 1
  %.sroa.51155.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 1
  %.sroa.51155.0.copyload = load i8, ptr %.sroa.51155.0..sroa_idx, align 1
  %.sroa.61156.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 2
  %.sroa.61156.0.copyload = load i8, ptr %.sroa.61156.0..sroa_idx, align 1
  %.sroa.71157.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 3
  %.sroa.71157.0.copyload = load i8, ptr %.sroa.71157.0..sroa_idx, align 1
  %.sroa.81158.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 4
  %.sroa.81158.0.copyload = load i8, ptr %.sroa.81158.0..sroa_idx, align 1
  %.sroa.91159.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 5
  %.sroa.91159.0.copyload = load i8, ptr %.sroa.91159.0..sroa_idx, align 1
  %.sroa.101160.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 6
  %.sroa.101160.0.copyload = load i8, ptr %.sroa.101160.0..sroa_idx, align 1
  %.sroa.111161.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 7
  %.sroa.111161.0.copyload = load i8, ptr %.sroa.111161.0..sroa_idx, align 1
  %.sroa.131163.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 8
  %.sroa.131163.0.copyload = load i8, ptr %.sroa.131163.0..sroa_idx, align 1
  %.sroa.141164.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 9
  %.sroa.141164.0.copyload = load i8, ptr %.sroa.141164.0..sroa_idx, align 1
  %.sroa.151165.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 10
  %.sroa.151165.0.copyload = load i8, ptr %.sroa.151165.0..sroa_idx, align 1
  %.sroa.161166.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 11
  %.sroa.161166.0.copyload = load i8, ptr %.sroa.161166.0..sroa_idx, align 1
  %.sroa.171167.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 12
  %.sroa.171167.0.copyload = load i8, ptr %.sroa.171167.0..sroa_idx, align 1
  %.sroa.181168.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 13
  %.sroa.181168.0.copyload = load i8, ptr %.sroa.181168.0..sroa_idx, align 1
  %.sroa.191169.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 14
  %.sroa.191169.0.copyload = load i8, ptr %.sroa.191169.0..sroa_idx, align 1
  %.sroa.201170.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 15
  %.sroa.201170.0.copyload = load i8, ptr %.sroa.201170.0..sroa_idx, align 1
  %.sroa.211171.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 16
  %.sroa.211171.0.copyload = load i8, ptr %.sroa.211171.0..sroa_idx, align 1
  %.sroa.221172.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 17
  %.sroa.221172.0.copyload = load i8, ptr %.sroa.221172.0..sroa_idx, align 1
  %.sroa.41152.0.insert.ext = zext i8 %.sroa.01153.0.copyload to i64
  %.sroa.41152.0.insert.shift = shl nuw nsw i64 %.sroa.41152.0.insert.ext, 12
  %86 = lshr i64 %.sroa.41152.0.insert.ext, 4
  %87 = trunc nuw nsw i64 %86 to i32
  %.sroa.41149.0.insert.ext = zext i8 %.sroa.51155.0.copyload to i64
  %.sroa.41149.0.insert.shift = shl nuw nsw i64 %.sroa.41149.0.insert.ext, 4
  %.sroa.41149.0.insert.insert = or disjoint i64 %.sroa.41152.0.insert.shift, %.sroa.41149.0.insert.shift
  %tr.sh.diff714 = trunc nuw nsw i64 %.sroa.41149.0.insert.insert to i32
  %88 = and i32 %tr.sh.diff714, 65520
  %.sroa.41147.0.insert.ext = zext i8 %.sroa.61156.0.copyload to i32
  %.sroa.41147.0.insert.shift = shl nuw nsw i32 %.sroa.41147.0.insert.ext, 16
  %89 = or disjoint i32 %88, %.sroa.41147.0.insert.shift
  %.sroa.41145.0.insert.ext = zext i8 %.sroa.71157.0.copyload to i32
  %.sroa.41145.0.insert.shift = shl nuw i32 %.sroa.41145.0.insert.ext, 24
  %90 = or disjoint i32 %89, %.sroa.41145.0.insert.shift
  %91 = or disjoint i32 %90, %87
  store i32 %91, ptr %6, align 1
  %.sroa.71143.0.insert.ext = zext i8 %.sroa.81158.0.copyload to i64
  %.sroa.71143.0.insert.shift = shl nuw i64 %.sroa.71143.0.insert.ext, 56
  %.sroa.61142.0.insert.ext = zext i8 %.sroa.91159.0.copyload to i64
  %.sroa.61142.0.insert.shift = shl nuw nsw i64 %.sroa.61142.0.insert.ext, 48
  %.sroa.61142.0.insert.insert = or disjoint i64 %.sroa.71143.0.insert.shift, %.sroa.61142.0.insert.shift
  %.sroa.51141.0.insert.ext = zext i8 %.sroa.101160.0.copyload to i64
  %.sroa.51141.0.insert.shift = shl nuw nsw i64 %.sroa.51141.0.insert.ext, 40
  %.sroa.51141.0.insert.insert = or disjoint i64 %.sroa.61142.0.insert.insert, %.sroa.51141.0.insert.shift
  %.sroa.41140.0.insert.ext = zext i8 %.sroa.111161.0.copyload to i64
  %.sroa.41140.0.insert.shift = shl nuw nsw i64 %.sroa.41140.0.insert.ext, 32
  %.sroa.41140.0.insert.insert = or disjoint i64 %.sroa.51141.0.insert.insert, %.sroa.41140.0.insert.shift
  %92 = lshr i64 %.sroa.41140.0.insert.insert, 37
  %93 = getelementptr inbounds i8, ptr %6, i64 4
  %.sroa.51138.0.insert.shift = shl nuw nsw i64 %.sroa.41140.0.insert.ext, 35
  %.sroa.41137.0.insert.ext = zext i8 %.sroa.131163.0.copyload to i64
  %.sroa.41137.0.insert.shift = shl nuw nsw i64 %.sroa.41137.0.insert.ext, 27
  %.sroa.41137.0.insert.insert = or disjoint i64 %.sroa.51138.0.insert.shift, %.sroa.41137.0.insert.shift
  %94 = or disjoint i64 %.sroa.41137.0.insert.insert, %92
  %95 = trunc i64 %94 to i40
  store i40 %95, ptr %93, align 1
  %.sroa.71135.0.insert.ext = zext i8 %.sroa.141164.0.copyload to i32
  %.sroa.71135.0.insert.shift = shl nuw i32 %.sroa.71135.0.insert.ext, 24
  %.sroa.61134.0.insert.ext = zext i8 %.sroa.151165.0.copyload to i32
  %.sroa.61134.0.insert.shift = shl nuw nsw i32 %.sroa.61134.0.insert.ext, 16
  %.sroa.61134.0.insert.insert = or disjoint i32 %.sroa.71135.0.insert.shift, %.sroa.61134.0.insert.shift
  %.sroa.51133.0.insert.ext = zext i8 %.sroa.161166.0.copyload to i32
  %.sroa.51133.0.insert.shift = shl nuw nsw i32 %.sroa.51133.0.insert.ext, 8
  %.sroa.51133.0.insert.insert = or disjoint i32 %.sroa.61134.0.insert.insert, %.sroa.51133.0.insert.shift
  %.sroa.41132.0.insert.ext = zext i8 %.sroa.171167.0.copyload to i32
  %.sroa.41132.0.insert.insert = or disjoint i32 %.sroa.51133.0.insert.insert, %.sroa.41132.0.insert.ext
  %96 = getelementptr inbounds i8, ptr %6, i64 9
  store i32 %.sroa.41132.0.insert.insert, ptr %96, align 1, !tbaa !13
  %.sroa.61130.0.insert.ext = zext i8 %.sroa.181168.0.copyload to i64
  %.sroa.61130.0.insert.shift = shl nuw nsw i64 %.sroa.61130.0.insert.ext, 16
  %.sroa.51129.0.insert.ext = zext i8 %.sroa.191169.0.copyload to i64
  %.sroa.51129.0.insert.shift = shl nuw nsw i64 %.sroa.51129.0.insert.ext, 8
  %.sroa.51129.0.insert.insert = or disjoint i64 %.sroa.61130.0.insert.shift, %.sroa.51129.0.insert.shift
  %.sroa.41128.0.insert.ext = zext i8 %.sroa.201170.0.copyload to i64
  %.sroa.41128.0.insert.insert = or disjoint i64 %.sroa.51129.0.insert.insert, %.sroa.41128.0.insert.ext
  %97 = getelementptr inbounds i8, ptr %6, i64 13
  %98 = trunc nuw i64 %.sroa.41128.0.insert.insert to i24
  store i24 %98, ptr %97, align 1
  %.sroa.51126.0.insert.ext = zext i8 %.sroa.211171.0.copyload to i16
  %.sroa.51126.0.insert.shift = shl nuw i16 %.sroa.51126.0.insert.ext, 8
  %.sroa.41125.0.insert.ext = zext i8 %.sroa.221172.0.copyload to i16
  %.sroa.41125.0.insert.insert = or disjoint i16 %.sroa.51126.0.insert.shift, %.sroa.41125.0.insert.ext
  %99 = getelementptr inbounds i8, ptr %6, i64 16
  store i16 %.sroa.41125.0.insert.insert, ptr %99, align 1
  br label %101

100:                                              ; preds = %84
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(18) %6, ptr noundef nonnull align 1 dereferenceable(18) %69, i64 18, i1 false)
  %.phi.trans.insert = getelementptr inbounds i8, ptr %6, i64 13
  %.pre = load i24, ptr %.phi.trans.insert, align 1
  br label %101

101:                                              ; preds = %85, %100, %71, %83
  %.sink = phi i24 [ %.pre1230, %83 ], [ %82, %71 ], [ %.pre, %100 ], [ %98, %85 ]
  %102 = sext i32 %47 to i64
  %103 = icmp sgt i32 %47, 0
  br i1 %103, label %.lr.ph926, label %.loopexit752

.lr.ph926:                                        ; preds = %101
  %104 = load ptr, ptr %7, align 8, !tbaa !9
  %105 = getelementptr inbounds i8, ptr %5, i64 51
  %106 = getelementptr inbounds i8, ptr %5, i64 28
  br label %107

107:                                              ; preds = %.lr.ph926, %.loopexit
  %.0530924 = phi ptr [ %104, %.lr.ph926 ], [ %.2, %.loopexit ]
  %.0543922 = phi i32 [ 0, %.lr.ph926 ], [ %277, %.loopexit ]
  %108 = load i32, ptr @swap, align 4, !tbaa !5
  %.not722 = icmp eq i32 %108, 0
  %.sroa.15.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 8
  br i1 %.not722, label %112, label %109

109:                                              ; preds = %107
  %.sroa.01103.0.copyload = load i8, ptr %.0530924, align 1
  %.sroa.121112.0.copyload = load i8, ptr %.sroa.15.0..sroa_idx, align 1
  %.sroa.131113.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 9
  %.sroa.131113.0.copyload = load i8, ptr %.sroa.131113.0..0530924.sroa_idx, align 1
  %.sroa.141114.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 10
  %.sroa.141114.0.copyload = load i8, ptr %.sroa.141114.0..0530924.sroa_idx, align 1
  %.sroa.151115.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 11
  %.sroa.151115.0.copyload = load i8, ptr %.sroa.151115.0..0530924.sroa_idx, align 1
  %.sroa.161116.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 12
  %.sroa.161116.0.copyload = load i8, ptr %.sroa.161116.0..0530924.sroa_idx, align 1
  %.sroa.171117.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 13
  %.sroa.171117.0.copyload = load i8, ptr %.sroa.171117.0..0530924.sroa_idx, align 1
  %.sroa.181118.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 14
  %.sroa.181118.0.copyload = load i8, ptr %.sroa.181118.0..0530924.sroa_idx, align 1
  %.sroa.191119.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 15
  %.sroa.191119.0.copyload = load i8, ptr %.sroa.191119.0..0530924.sroa_idx, align 1
  %.sroa.201120.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 16
  %.sroa.201120.0.copyload = load i8, ptr %.sroa.201120.0..0530924.sroa_idx, align 1
  %.sroa.211121.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 17
  %.sroa.211121.0.copyload = load i8, ptr %.sroa.211121.0..0530924.sroa_idx, align 1
  %.sroa.221122.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 18
  %.sroa.221122.0.copyload = load i8, ptr %.sroa.221122.0..0530924.sroa_idx, align 1
  %.sroa.23.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 19
  %.sroa.23.0.copyload1123 = load i8, ptr %.sroa.23.0..0530924.sroa_idx, align 1
  %.sroa.24.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 20
  %.sroa.24.0.copyload = load i8, ptr %.sroa.24.0..0530924.sroa_idx, align 1
  %.sroa.25.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 21
  %.sroa.25.0.copyload = load i8, ptr %.sroa.25.0..0530924.sroa_idx, align 1
  %.sroa.26.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 22
  %.sroa.26.0.copyload = load i8, ptr %.sroa.26.0..0530924.sroa_idx, align 1
  %.sroa.27.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 23
  %.sroa.27.0.copyload = load i8, ptr %.sroa.27.0..0530924.sroa_idx, align 1
  %110 = lshr i8 %.sroa.01103.0.copyload, 4
  %111 = zext nneg i8 %110 to i32
  %.sroa.71088.0.insert.ext = zext i8 %.sroa.121112.0.copyload to i32
  %.sroa.71088.0.insert.shift = shl nuw i32 %.sroa.71088.0.insert.ext, 24
  %.sroa.61087.0.insert.ext = zext i8 %.sroa.131113.0.copyload to i32
  %.sroa.61087.0.insert.shift = shl nuw nsw i32 %.sroa.61087.0.insert.ext, 16
  %.sroa.61087.0.insert.insert = or disjoint i32 %.sroa.71088.0.insert.shift, %.sroa.61087.0.insert.shift
  %.sroa.51086.0.insert.ext = zext i8 %.sroa.141114.0.copyload to i32
  %.sroa.51086.0.insert.shift = shl nuw nsw i32 %.sroa.51086.0.insert.ext, 8
  %.sroa.51086.0.insert.insert = or disjoint i32 %.sroa.61087.0.insert.insert, %.sroa.51086.0.insert.shift
  %.sroa.41085.0.insert.ext = zext i8 %.sroa.151115.0.copyload to i32
  %.sroa.41085.0.insert.insert = or disjoint i32 %.sroa.51086.0.insert.insert, %.sroa.41085.0.insert.ext
  %.sroa.71083.0.insert.ext = zext i8 %.sroa.161116.0.copyload to i32
  %.sroa.71083.0.insert.shift = shl nuw i32 %.sroa.71083.0.insert.ext, 24
  %.sroa.61082.0.insert.ext = zext i8 %.sroa.171117.0.copyload to i32
  %.sroa.61082.0.insert.shift = shl nuw nsw i32 %.sroa.61082.0.insert.ext, 16
  %.sroa.61082.0.insert.insert = or disjoint i32 %.sroa.71083.0.insert.shift, %.sroa.61082.0.insert.shift
  %.sroa.51081.0.insert.ext = zext i8 %.sroa.181118.0.copyload to i32
  %.sroa.51081.0.insert.shift = shl nuw nsw i32 %.sroa.51081.0.insert.ext, 8
  %.sroa.51081.0.insert.insert = or disjoint i32 %.sroa.61082.0.insert.insert, %.sroa.51081.0.insert.shift
  %.sroa.41080.0.insert.ext = zext i8 %.sroa.191119.0.copyload to i32
  %.sroa.41080.0.insert.insert = or disjoint i32 %.sroa.51081.0.insert.insert, %.sroa.41080.0.insert.ext
  %.sroa.71078.0.insert.ext = zext i8 %.sroa.201120.0.copyload to i32
  %.sroa.71078.0.insert.shift = shl nuw i32 %.sroa.71078.0.insert.ext, 24
  %.sroa.61077.0.insert.ext = zext i8 %.sroa.211121.0.copyload to i32
  %.sroa.61077.0.insert.shift = shl nuw nsw i32 %.sroa.61077.0.insert.ext, 16
  %.sroa.61077.0.insert.insert = or disjoint i32 %.sroa.71078.0.insert.shift, %.sroa.61077.0.insert.shift
  %.sroa.51076.0.insert.ext = zext i8 %.sroa.221122.0.copyload to i32
  %.sroa.51076.0.insert.shift = shl nuw nsw i32 %.sroa.51076.0.insert.ext, 8
  %.sroa.51076.0.insert.insert = or disjoint i32 %.sroa.61077.0.insert.insert, %.sroa.51076.0.insert.shift
  %.sroa.41075.0.insert.ext = zext i8 %.sroa.23.0.copyload1123 to i32
  %.sroa.41075.0.insert.insert = or disjoint i32 %.sroa.51076.0.insert.insert, %.sroa.41075.0.insert.ext
  %.sroa.71073.0.insert.ext = zext i8 %.sroa.24.0.copyload to i32
  %.sroa.71073.0.insert.shift = shl nuw i32 %.sroa.71073.0.insert.ext, 24
  %.sroa.61072.0.insert.ext = zext i8 %.sroa.25.0.copyload to i32
  %.sroa.61072.0.insert.shift = shl nuw nsw i32 %.sroa.61072.0.insert.ext, 16
  %.sroa.61072.0.insert.insert = or disjoint i32 %.sroa.71073.0.insert.shift, %.sroa.61072.0.insert.shift
  %.sroa.51071.0.insert.ext = zext i8 %.sroa.26.0.copyload to i32
  %.sroa.51071.0.insert.shift = shl nuw nsw i32 %.sroa.51071.0.insert.ext, 8
  %.sroa.51071.0.insert.insert = or disjoint i32 %.sroa.61072.0.insert.insert, %.sroa.51071.0.insert.shift
  %.sroa.41070.0.insert.ext = zext i8 %.sroa.27.0.copyload to i32
  %.sroa.41070.0.insert.insert = or disjoint i32 %.sroa.51071.0.insert.insert, %.sroa.41070.0.insert.ext
  br label %123

112:                                              ; preds = %107
  %.sroa.0400.0.copyload = load i32, ptr %.0530924, align 1
  %.sroa.15.0.copyload = load i32, ptr %.sroa.15.0..sroa_idx, align 1
  %.sroa.17406.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 12
  %.sroa.17406.0.copyload = load i32, ptr %.sroa.17406.0..sroa_idx, align 1
  %.sroa.21.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 16
  %.sroa.21.0.copyload = load i32, ptr %.sroa.21.0..sroa_idx, align 1
  %.sroa.23.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 20
  %.sroa.23.0.copyload = load i32, ptr %.sroa.23.0..sroa_idx, align 1
  %113 = lshr i32 %.sroa.17406.0.copyload, 8
  %114 = trunc i32 %113 to i8
  %115 = lshr i32 %.sroa.17406.0.copyload, 16
  %116 = trunc i32 %115 to i8
  %117 = lshr i32 %.sroa.17406.0.copyload, 24
  %118 = trunc nuw i32 %117 to i8
  %119 = trunc i32 %.sroa.21.0.copyload to i8
  %120 = lshr i32 %.sroa.21.0.copyload, 8
  %121 = trunc i32 %120 to i8
  %122 = trunc i32 %.sroa.17406.0.copyload to i8
  br label %123

123:                                              ; preds = %112, %109
  %.sroa.191044.0.copyload = phi i8 [ %.sroa.181118.0.copyload, %109 ], [ %116, %112 ]
  %.sroa.181043.0.copyload = phi i8 [ %.sroa.171117.0.copyload, %109 ], [ %114, %112 ]
  %.sroa.171042.0.copyload = phi i8 [ %.sroa.161116.0.copyload, %109 ], [ %122, %112 ]
  %.sroa.22.0.copyload = phi i8 [ %.sroa.211121.0.copyload, %109 ], [ %121, %112 ]
  %.sroa.21.0.copyload1002 = phi i8 [ %.sroa.201120.0.copyload, %109 ], [ %119, %112 ]
  %.sroa.20.0.copyload1001 = phi i8 [ %.sroa.191119.0.copyload, %109 ], [ %118, %112 ]
  %.sroa.23.1 = phi i32 [ %.sroa.41070.0.insert.insert, %109 ], [ %.sroa.23.0.copyload, %112 ]
  %.sroa.21.1 = phi i32 [ %.sroa.41075.0.insert.insert, %109 ], [ %.sroa.21.0.copyload, %112 ]
  %.sroa.17406.1 = phi i32 [ %.sroa.41080.0.insert.insert, %109 ], [ %.sroa.17406.0.copyload, %112 ]
  %.sroa.15.1 = phi i32 [ %.sroa.41085.0.insert.insert, %109 ], [ %.sroa.15.0.copyload, %112 ]
  %.sroa.0400.1 = phi i32 [ %111, %109 ], [ %.sroa.0400.0.copyload, %112 ]
  %124 = and i32 %.sroa.0400.1, 15
  switch i32 %124, label %266 [
    i32 2, label %125
    i32 3, label %191
    i32 1, label %200
    i32 8, label %216
    i32 4, label %254
    i32 5, label %254
    i32 6, label %258
    i32 7, label %262
  ]

125:                                              ; preds = %123
  %126 = icmp eq i32 %.sroa.17406.1, -1
  %127 = load i32, ptr %105, align 1, !tbaa !14
  br i1 %126, label %128, label %131

128:                                              ; preds = %125
  %129 = add i32 %.sroa.23.1, -1
  %130 = add i32 %129, %127
  br label %133

131:                                              ; preds = %125
  %132 = urem i32 %.sroa.23.1, %127
  br label %133

133:                                              ; preds = %131, %128
  %.sroa.23.1.sink = phi i32 [ %.sroa.23.1, %131 ], [ %130, %128 ]
  %134 = phi i32 [ %132, %131 ], [ 0, %128 ]
  %135 = load i64, ptr %106, align 1
  %136 = lshr i64 %135, 48
  %137 = trunc nuw nsw i64 %136 to i32
  %138 = lshr i32 %.sroa.23.1.sink, %137
  %139 = zext i32 %138 to i64
  %140 = call ptr @llvm.stacksave.p0()
  %141 = alloca i32, i64 %139, align 16
  %142 = getelementptr inbounds i8, ptr %.0530924, i64 24
  %143 = load i32, ptr @swap, align 4, !tbaa !5
  %.not748 = icmp eq i32 %143, 0
  br i1 %.not748, label %162, label %144

144:                                              ; preds = %133
  %145 = call ptr @llvm.stacksave.p0()
  %146 = alloca i32, i64 %139, align 16
  %147 = sext i32 %138 to i64
  %148 = shl nsw i64 %147, 2
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %146, ptr nonnull align 1 %142, i64 %148, i1 false)
  %149 = shl nsw i32 %138, 2
  %150 = sext i32 %149 to i64
  call void @llvm.memset.p0.i64(ptr nonnull align 16 %141, i8 0, i64 %150, i1 false)
  %151 = icmp sgt i32 %138, 0
  br i1 %151, label %.lr.ph908, label %._crit_edge

.lr.ph908:                                        ; preds = %144, %.lr.ph908
  %indvars.iv939 = phi i64 [ %indvars.iv.next940, %.lr.ph908 ], [ 0, %144 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph908 ], [ 0, %144 ]
  %152 = lshr exact i64 %indvars.iv, 3
  %153 = getelementptr inbounds i8, ptr %146, i64 %152
  %154 = getelementptr inbounds i8, ptr %153, i64 1
  %155 = load i8, ptr %153, align 4, !tbaa !13
  %156 = getelementptr inbounds i8, ptr %153, i64 2
  %157 = load i8, ptr %154, align 1, !tbaa !13
  %158 = getelementptr inbounds i8, ptr %153, i64 3
  %159 = load i8, ptr %156, align 2, !tbaa !13
  %160 = load i8, ptr %158, align 1, !tbaa !13
  %.sroa.71068.0.insert.ext = zext i8 %155 to i32
  %.sroa.71068.0.insert.shift = shl nuw i32 %.sroa.71068.0.insert.ext, 24
  %.sroa.61067.0.insert.ext = zext i8 %157 to i32
  %.sroa.61067.0.insert.shift = shl nuw nsw i32 %.sroa.61067.0.insert.ext, 16
  %.sroa.61067.0.insert.insert = or disjoint i32 %.sroa.71068.0.insert.shift, %.sroa.61067.0.insert.shift
  %.sroa.51066.0.insert.ext = zext i8 %159 to i32
  %.sroa.51066.0.insert.shift = shl nuw nsw i32 %.sroa.51066.0.insert.ext, 8
  %.sroa.51066.0.insert.insert = or disjoint i32 %.sroa.61067.0.insert.insert, %.sroa.51066.0.insert.shift
  %.sroa.41065.0.insert.ext = zext i8 %160 to i32
  %.sroa.41065.0.insert.insert = or disjoint i32 %.sroa.51066.0.insert.insert, %.sroa.41065.0.insert.ext
  %161 = getelementptr inbounds i32, ptr %141, i64 %indvars.iv939
  store i32 %.sroa.41065.0.insert.insert, ptr %161, align 4, !tbaa !5
  %indvars.iv.next940 = add nuw nsw i64 %indvars.iv939, 1
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 32
  %exitcond944.not = icmp eq i64 %indvars.iv.next940, %139
  br i1 %exitcond944.not, label %._crit_edge, label %.lr.ph908, !llvm.loop !17

._crit_edge:                                      ; preds = %.lr.ph908, %144
  call void @llvm.stackrestore.p0(ptr %145)
  br label %165

162:                                              ; preds = %133
  %163 = sext i32 %138 to i64
  %164 = shl nsw i64 %163, 2
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %141, ptr nonnull align 1 %142, i64 %164, i1 false)
  br label %165

165:                                              ; preds = %162, %._crit_edge
  %166 = load i32, ptr %10, align 4, !tbaa !5
  %167 = add i32 %166, %.sroa.23.1
  store i32 %167, ptr %10, align 4, !tbaa !5
  %168 = load i32, ptr %12, align 4, !tbaa !5
  %169 = add nsw i32 %168, 1
  store i32 %169, ptr %12, align 4, !tbaa !5
  %170 = icmp sgt i32 %138, 0
  br i1 %170, label %.lr.ph912.preheader, label %._crit_edge913

.lr.ph912.preheader:                              ; preds = %165
  %min.iters.check = icmp ult i32 %138, 8
  br i1 %min.iters.check, label %.lr.ph912.preheader1262, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph912.preheader
  %n.vec = and i64 %139, 2147483640
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.phi = phi <4 x i32> [ zeroinitializer, %vector.ph ], [ %179, %vector.body ]
  %vec.phi1260 = phi <4 x i32> [ zeroinitializer, %vector.ph ], [ %180, %vector.body ]
  %171 = getelementptr inbounds i32, ptr %141, i64 %index
  %172 = getelementptr inbounds i8, ptr %171, i64 16
  %wide.load = load <4 x i32>, ptr %171, align 16, !tbaa !5
  %wide.load1261 = load <4 x i32>, ptr %172, align 16, !tbaa !5
  %173 = and <4 x i32> %wide.load, <i32 -16777217, i32 -16777217, i32 -16777217, i32 -16777217>
  %174 = and <4 x i32> %wide.load1261, <i32 -16777217, i32 -16777217, i32 -16777217, i32 -16777217>
  %175 = icmp eq <4 x i32> %173, zeroinitializer
  %176 = icmp eq <4 x i32> %174, zeroinitializer
  %177 = select <4 x i1> %175, <4 x i32> <i32 16777216, i32 16777216, i32 16777216, i32 16777216>, <4 x i32> %173
  %178 = select <4 x i1> %176, <4 x i32> <i32 16777216, i32 16777216, i32 16777216, i32 16777216>, <4 x i32> %174
  %179 = add <4 x i32> %177, %vec.phi
  %180 = add <4 x i32> %178, %vec.phi1260
  %index.next = add nuw i64 %index, 8
  %181 = icmp eq i64 %index.next, %n.vec
  br i1 %181, label %middle.block, label %vector.body, !llvm.loop !18

middle.block:                                     ; preds = %vector.body
  %bin.rdx = add <4 x i32> %180, %179
  %182 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %bin.rdx)
  %cmp.n = icmp eq i64 %n.vec, %139
  br i1 %cmp.n, label %._crit_edge913, label %.lr.ph912.preheader1262

.lr.ph912.preheader1262:                          ; preds = %middle.block, %.lr.ph912.preheader
  %indvars.iv945.ph = phi i64 [ 0, %.lr.ph912.preheader ], [ %n.vec, %middle.block ]
  %.0631909.ph = phi i32 [ 0, %.lr.ph912.preheader ], [ %182, %middle.block ]
  br label %.lr.ph912

.lr.ph912:                                        ; preds = %.lr.ph912.preheader1262, %.lr.ph912
  %indvars.iv945 = phi i64 [ %indvars.iv.next946, %.lr.ph912 ], [ %indvars.iv945.ph, %.lr.ph912.preheader1262 ]
  %.0631909 = phi i32 [ %186, %.lr.ph912 ], [ %.0631909.ph, %.lr.ph912.preheader1262 ]
  %183 = getelementptr inbounds i32, ptr %141, i64 %indvars.iv945
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = and i32 %184, -16777217
  %.not749 = icmp eq i32 %185, 0
  %spec.select = select i1 %.not749, i32 16777216, i32 %185
  %186 = add i32 %spec.select, %.0631909
  %indvars.iv.next946 = add nuw nsw i64 %indvars.iv945, 1
  %exitcond949.not = icmp eq i64 %indvars.iv.next946, %139
  br i1 %exitcond949.not, label %._crit_edge913, label %.lr.ph912, !llvm.loop !21

._crit_edge913:                                   ; preds = %.lr.ph912, %middle.block, %165
  %.0631.lcssa = phi i32 [ 0, %165 ], [ %182, %middle.block ], [ %186, %.lr.ph912 ]
  %187 = call i32 @add_file(i32 noundef %.sroa.15.1, i32 noundef %.0631.lcssa, ptr noundef nonnull %141, i32 noundef %138, i32 noundef %.sroa.17406.1, i32 noundef %.sroa.21.1, i32 noundef %134) #10
  %188 = sext i32 %138 to i64
  %189 = shl nsw i64 %188, 2
  %190 = getelementptr inbounds i8, ptr %142, i64 %189
  call void @llvm.stackrestore.p0(ptr %140)
  br label %.loopexit

191:                                              ; preds = %123
  %.sroa.12183.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 4
  br i1 %.not722, label %193, label %192

192:                                              ; preds = %191
  %.sroa.81062.0.copyload = load i8, ptr %.sroa.12183.0..sroa_idx, align 1
  %.sroa.91063.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 5
  %.sroa.91063.0.copyload = load i8, ptr %.sroa.91063.0..0530924.sroa_idx, align 1
  %.sroa.51047.0.insert.ext = zext i8 %.sroa.81062.0.copyload to i16
  %.sroa.51047.0.insert.shift = shl nuw i16 %.sroa.51047.0.insert.ext, 8
  %.sroa.41046.0.insert.ext = zext i8 %.sroa.91063.0.copyload to i16
  %.sroa.41046.0.insert.insert = or disjoint i16 %.sroa.51047.0.insert.shift, %.sroa.41046.0.insert.ext
  br label %194

193:                                              ; preds = %191
  %.sroa.12183.0.copyload = load i16, ptr %.sroa.12183.0..sroa_idx, align 1
  br label %194

194:                                              ; preds = %193, %192
  %.sroa.12183.1 = phi i16 [ %.sroa.41046.0.insert.insert, %192 ], [ %.sroa.12183.0.copyload, %193 ]
  %195 = load i32, ptr %13, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr %13, align 4, !tbaa !5
  %197 = zext i16 %.sroa.12183.1 to i64
  %198 = add nuw nsw i64 %197, 6
  %199 = getelementptr inbounds i8, ptr %.0530924, i64 %198
  br label %.loopexit

200:                                              ; preds = %123
  br i1 %.not722, label %203, label %201

201:                                              ; preds = %200
  %.sroa.81033.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 4
  %.sroa.81033.0.copyload = load i8, ptr %.sroa.81033.0..0530924.sroa_idx, align 1
  %.sroa.91034.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 5
  %.sroa.91034.0.copyload = load i8, ptr %.sroa.91034.0..0530924.sroa_idx, align 1
  %.sroa.101035.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 6
  %.sroa.101035.0.copyload = load i8, ptr %.sroa.101035.0..0530924.sroa_idx, align 1
  %.sroa.61018.0.insert.ext = zext i8 %.sroa.81033.0.copyload to i64
  %.sroa.61018.0.insert.shift = shl nuw nsw i64 %.sroa.61018.0.insert.ext, 43
  %.sroa.51017.0.insert.ext = zext i8 %.sroa.91034.0.copyload to i64
  %.sroa.51017.0.insert.shift = shl nuw nsw i64 %.sroa.51017.0.insert.ext, 35
  %.sroa.51017.0.insert.insert = or disjoint i64 %.sroa.61018.0.insert.shift, %.sroa.51017.0.insert.shift
  %.sroa.41016.0.insert.ext = zext i8 %.sroa.101035.0.copyload to i64
  %.sroa.41016.0.insert.shift = shl nuw nsw i64 %.sroa.41016.0.insert.ext, 27
  %.sroa.41016.0.insert.insert = or disjoint i64 %.sroa.51017.0.insert.insert, %.sroa.41016.0.insert.shift
  %.sroa.61006.0.insert.ext = zext i8 %.sroa.171042.0.copyload to i64
  %.sroa.61006.0.insert.shift = shl nuw nsw i64 %.sroa.61006.0.insert.ext, 16
  %.sroa.51005.0.insert.ext = zext i8 %.sroa.181043.0.copyload to i64
  %.sroa.51005.0.insert.shift = shl nuw nsw i64 %.sroa.51005.0.insert.ext, 8
  %.sroa.51005.0.insert.insert = or disjoint i64 %.sroa.61006.0.insert.shift, %.sroa.51005.0.insert.shift
  %.sroa.41004.0.insert.ext = zext i8 %.sroa.191044.0.copyload to i64
  %.sroa.41004.0.insert.insert = or disjoint i64 %.sroa.51005.0.insert.insert, %.sroa.41004.0.insert.ext
  %202 = trunc nuw i64 %.sroa.41004.0.insert.insert to i24
  br label %204

203:                                              ; preds = %200
  %.sroa.0134.0.copyload = load i64, ptr %.0530924, align 1
  %.sroa.18142.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 12
  %.sroa.18142.0.copyload = load i24, ptr %.sroa.18142.0..sroa_idx, align 1
  br label %204

204:                                              ; preds = %203, %201
  %.sroa.0134.1 = phi i64 [ %.sroa.41016.0.insert.insert, %201 ], [ %.sroa.0134.0.copyload, %203 ]
  %.sroa.18142.1 = phi i24 [ %202, %201 ], [ %.sroa.18142.0.copyload, %203 ]
  %205 = icmp ugt i24 %.sink, %.sroa.18142.1
  br i1 %205, label %206, label %212

206:                                              ; preds = %204
  %207 = lshr i64 %.sroa.0134.1, 32
  %208 = trunc nuw i64 %207 to i32
  %209 = and i32 %208, 524287
  %210 = load i32, ptr %11, align 4, !tbaa !5
  %211 = add i32 %210, %209
  store i32 %211, ptr %11, align 4, !tbaa !5
  br label %212

212:                                              ; preds = %206, %204
  %213 = load i32, ptr %15, align 4, !tbaa !5
  %214 = add nsw i32 %213, 1
  store i32 %214, ptr %15, align 4, !tbaa !5
  %215 = getelementptr inbounds i8, ptr %.0530924, i64 15
  br label %.loopexit

216:                                              ; preds = %123
  %.sroa.12.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 4
  br i1 %.not722, label %221, label %217

217:                                              ; preds = %216
  %.sroa.8994.0.copyload = load i8, ptr %.sroa.12.0..sroa_idx, align 1
  %.sroa.9995.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 5
  %.sroa.9995.0.copyload = load i8, ptr %.sroa.9995.0..0530924.sroa_idx, align 1
  %.sroa.10996.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 6
  %.sroa.10996.0.copyload = load i8, ptr %.sroa.10996.0..0530924.sroa_idx, align 1
  %.sroa.11997.0..0530924.sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 7
  %.sroa.11997.0.copyload = load i8, ptr %.sroa.11997.0..0530924.sroa_idx, align 1
  %.sroa.7.0.insert.ext = zext i8 %.sroa.8994.0.copyload to i64
  %.sroa.7.0.insert.shift = shl nuw i64 %.sroa.7.0.insert.ext, 56
  %.sroa.6979.0.insert.ext = zext i8 %.sroa.9995.0.copyload to i64
  %.sroa.6979.0.insert.shift = shl nuw nsw i64 %.sroa.6979.0.insert.ext, 48
  %.sroa.6979.0.insert.insert = or disjoint i64 %.sroa.7.0.insert.shift, %.sroa.6979.0.insert.shift
  %.sroa.5978.0.insert.ext = zext i8 %.sroa.10996.0.copyload to i64
  %.sroa.5978.0.insert.shift = shl nuw nsw i64 %.sroa.5978.0.insert.ext, 40
  %.sroa.5978.0.insert.insert = or disjoint i64 %.sroa.6979.0.insert.insert, %.sroa.5978.0.insert.shift
  %.sroa.4977.0.insert.ext = zext i8 %.sroa.11997.0.copyload to i64
  %.sroa.4977.0.insert.shift = shl nuw nsw i64 %.sroa.4977.0.insert.ext, 32
  %.sroa.4977.0.insert.insert = or disjoint i64 %.sroa.5978.0.insert.insert, %.sroa.4977.0.insert.shift
  %218 = lshr i64 %.sroa.4977.0.insert.insert, 37
  %219 = trunc nuw nsw i64 %218 to i32
  %.sroa.6967.0.insert.ext = zext i8 %.sroa.181043.0.copyload to i64
  %.sroa.6967.0.insert.shift = shl nuw nsw i64 %.sroa.6967.0.insert.ext, 16
  %.sroa.5966.0.insert.ext = zext i8 %.sroa.191044.0.copyload to i64
  %.sroa.5966.0.insert.shift = shl nuw nsw i64 %.sroa.5966.0.insert.ext, 8
  %.sroa.5966.0.insert.insert = or disjoint i64 %.sroa.6967.0.insert.shift, %.sroa.5966.0.insert.shift
  %.sroa.4965.0.insert.ext = zext i8 %.sroa.20.0.copyload1001 to i64
  %.sroa.4965.0.insert.insert = or disjoint i64 %.sroa.5966.0.insert.insert, %.sroa.4965.0.insert.ext
  %220 = trunc nuw i64 %.sroa.4965.0.insert.insert to i24
  %.sroa.5963.0.insert.ext = zext i8 %.sroa.21.0.copyload1002 to i16
  %.sroa.5963.0.insert.shift = shl nuw i16 %.sroa.5963.0.insert.ext, 8
  %.sroa.4962.0.insert.ext = zext i8 %.sroa.22.0.copyload to i16
  %.sroa.4962.0.insert.insert = or disjoint i16 %.sroa.5963.0.insert.shift, %.sroa.4962.0.insert.ext
  br label %222

221:                                              ; preds = %216
  %.sroa.12.0.copyload = load i40, ptr %.sroa.12.0..sroa_idx, align 1
  %.sroa.18.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 13
  %.sroa.18.0.copyload = load i24, ptr %.sroa.18.0..sroa_idx, align 1
  %.sroa.20.0..sroa_idx = getelementptr inbounds i8, ptr %.0530924, i64 16
  %.sroa.20.0.copyload = load i16, ptr %.sroa.20.0..sroa_idx, align 1
  %extract.t738 = trunc i40 %.sroa.12.0.copyload to i32
  br label %222

222:                                              ; preds = %221, %217
  %.sroa.12.1.off0 = phi i32 [ %219, %217 ], [ %extract.t738, %221 ]
  %.sroa.18.1 = phi i24 [ %220, %217 ], [ %.sroa.18.0.copyload, %221 ]
  %.sroa.20.1 = phi i16 [ %.sroa.4962.0.insert.insert, %217 ], [ %.sroa.20.0.copyload, %221 ]
  %223 = icmp ugt i24 %.sink, %.sroa.18.1
  br i1 %223, label %224, label %228

224:                                              ; preds = %222
  %225 = and i32 %.sroa.12.1.off0, 134217727
  %226 = load i32, ptr %11, align 4, !tbaa !5
  %227 = add i32 %226, %225
  store i32 %227, ptr %11, align 4, !tbaa !5
  br label %228

228:                                              ; preds = %224, %222
  %229 = load i32, ptr %15, align 4, !tbaa !5
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr %15, align 4, !tbaa !5
  %231 = getelementptr inbounds i8, ptr %.0530924, i64 18
  %232 = zext i16 %.sroa.20.1 to i32
  %.not928 = icmp eq i16 %.sroa.20.1, 0
  br i1 %.not928, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %228
  %233 = load i32, ptr @swap, align 4, !tbaa !5
  %.not739 = icmp eq i32 %233, 0
  %xtraiter = and i32 %232, 1
  %234 = icmp eq i16 %.sroa.20.1, 1
  br i1 %234, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.lr.ph
  %unroll_iter = and i32 %232, 65534
  br label %235

235:                                              ; preds = %250, %.lr.ph.new
  %.1868 = phi ptr [ %231, %.lr.ph.new ], [ %253, %250 ]
  %niter = phi i32 [ 0, %.lr.ph.new ], [ %niter.next.1, %250 ]
  br i1 %.not739, label %240, label %236

236:                                              ; preds = %235
  %237 = load i64, ptr %.1868, align 1
  %238 = lshr i64 %237, 56
  %239 = trunc nuw i64 %238 to i8
  br label %241

240:                                              ; preds = %235
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %.1868, i64 7
  %.sroa.8.0.copyload = load i8, ptr %.sroa.8.0..sroa_idx, align 1
  br label %241

241:                                              ; preds = %240, %236
  %.sroa.8.2 = phi i8 [ %239, %236 ], [ %.sroa.8.0.copyload, %240 ]
  %242 = zext i8 %.sroa.8.2 to i64
  %243 = add nuw nsw i64 %242, 9
  %244 = getelementptr inbounds i8, ptr %.1868, i64 %243
  br i1 %.not739, label %249, label %245

245:                                              ; preds = %241
  %246 = load i64, ptr %244, align 1
  %247 = lshr i64 %246, 56
  %248 = trunc nuw i64 %247 to i8
  br label %250

249:                                              ; preds = %241
  %.sroa.8.0..sroa_idx.1 = getelementptr inbounds i8, ptr %244, i64 7
  %.sroa.8.0.copyload.1 = load i8, ptr %.sroa.8.0..sroa_idx.1, align 1
  br label %250

250:                                              ; preds = %249, %245
  %.sroa.8.2.1 = phi i8 [ %248, %245 ], [ %.sroa.8.0.copyload.1, %249 ]
  %251 = zext i8 %.sroa.8.2.1 to i64
  %252 = getelementptr inbounds i8, ptr %244, i64 %251
  %253 = getelementptr inbounds i8, ptr %252, i64 9
  %niter.next.1 = add i32 %niter, 2
  %niter.ncmp.1 = icmp eq i32 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.loopexit.loopexit.unr-lcssa, label %235, !llvm.loop !22

254:                                              ; preds = %123, %123
  %255 = load i32, ptr %14, align 4, !tbaa !5
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr %14, align 4, !tbaa !5
  %257 = getelementptr inbounds i8, ptr %.0530924, i64 6
  br label %.loopexit

258:                                              ; preds = %123
  %259 = load i32, ptr %16, align 4, !tbaa !5
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr %16, align 4, !tbaa !5
  %261 = getelementptr inbounds i8, ptr %.0530924, i64 4
  br label %.loopexit

262:                                              ; preds = %123
  %263 = load i32, ptr %17, align 4, !tbaa !5
  %264 = add nsw i32 %263, 1
  store i32 %264, ptr %17, align 4, !tbaa !5
  %265 = getelementptr inbounds i8, ptr %.0530924, i64 4
  br label %.loopexit

266:                                              ; preds = %123
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef nonnull @.str.3, i32 noundef %124) #11
  br label %.loopexit752.sink.split

.loopexit.loopexit.unr-lcssa:                     ; preds = %250, %.lr.ph
  %.lcssa.ph = phi ptr [ poison, %.lr.ph ], [ %253, %250 ]
  %.1868.unr = phi ptr [ %231, %.lr.ph ], [ %253, %250 ]
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit, label %.epil.preheader

.epil.preheader:                                  ; preds = %.loopexit.loopexit.unr-lcssa
  br i1 %.not739, label %273, label %269

269:                                              ; preds = %.epil.preheader
  %270 = load i64, ptr %.1868.unr, align 1
  %271 = lshr i64 %270, 56
  %272 = trunc nuw i64 %271 to i8
  br label %.loopexit.loopexit.epilog-lcssa

273:                                              ; preds = %.epil.preheader
  %.sroa.8.0..sroa_idx.epil = getelementptr inbounds i8, ptr %.1868.unr, i64 7
  %.sroa.8.0.copyload.epil = load i8, ptr %.sroa.8.0..sroa_idx.epil, align 1
  br label %.loopexit.loopexit.epilog-lcssa

.loopexit.loopexit.epilog-lcssa:                  ; preds = %273, %269
  %.sroa.8.2.epil = phi i8 [ %272, %269 ], [ %.sroa.8.0.copyload.epil, %273 ]
  %274 = zext i8 %.sroa.8.2.epil to i64
  %275 = add nuw nsw i64 %274, 9
  %276 = getelementptr inbounds i8, ptr %.1868.unr, i64 %275
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit.epilog-lcssa, %.loopexit.loopexit.unr-lcssa, %228, %._crit_edge913, %194, %212, %254, %258, %262
  %.2 = phi ptr [ %265, %262 ], [ %261, %258 ], [ %257, %254 ], [ %215, %212 ], [ %199, %194 ], [ %190, %._crit_edge913 ], [ %231, %228 ], [ %.lcssa.ph, %.loopexit.loopexit.unr-lcssa ], [ %276, %.loopexit.loopexit.epilog-lcssa ]
  %277 = add nuw nsw i32 %.0543922, 1
  %278 = load ptr, ptr %7, align 8, !tbaa !9
  %279 = getelementptr inbounds i8, ptr %278, i64 %102
  %280 = icmp ult ptr %.2, %279
  br i1 %280, label %107, label %.loopexit752, !llvm.loop !23

.loopexit752.sink.split:                          ; preds = %34, %266
  %281 = load ptr, ptr %7, align 8, !tbaa !9
  call void @free(ptr noundef %281) #10
  br label %.loopexit752

.loopexit752:                                     ; preds = %29, %.loopexit, %.loopexit752.sink.split, %101
  %.0526 = phi i32 [ 0, %101 ], [ 0, %.loopexit752.sink.split ], [ %277, %.loopexit ], [ 0, %29 ]
  ret i32 %.0526
}

; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite)
declare noalias noundef ptr @realloc(ptr allocptr nocapture noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn
declare ptr @llvm.stacksave.p0() #6

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn
declare void @llvm.stackrestore.p0(ptr) #6

declare i32 @add_file(i32 noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.bswap.i32(i32) #8

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.add.v4i32(<4 x i32>) #8

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { mustprogress nocallback nofree nosync nounwind willreturn }
attributes #7 = { "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 #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { nounwind allocsize(1) }
attributes #10 = { nounwind }
attributes #11 = { cold 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !6, i64 51}
!15 = !{!"squashfs_super_block", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 30, !6, i64 32, !6, i64 34, !6, i64 36, !6, i64 37, !6, i64 38, !6, i64 39, !16, i64 43, !6, i64 51, !6, i64 55, !6, i64 59}
!16 = !{!"long long", !7, i64 0}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12, !19, !20}
!19 = !{!"llvm.loop.isvectorized", i32 1}
!20 = !{!"llvm.loop.unroll.runtime.disable"}
!21 = distinct !{!21, !12, !20, !19}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}


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