; LLVM IR from mncoppola/rpef :: utilities_src/squashfs4.2/squashfs-tools (unsquash-3)

; 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.super_block = type { %struct.squashfs_super_block, i32, i32, i64, i64 }
%struct.squashfs_super_block = type { i32, i32, i32, i32, i32, i16, i16, i16, i16, i16, i16, i64, i64, i64, i64, i64, i64, i64, i64 }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%union.squashfs_inode_header_3 = type { %struct.squashfs_lreg_inode_header_3 }
%struct.squashfs_lreg_inode_header_3 = type { i32, i32, i32, i32, i64, i32, i32, i64, [0 x i16] }
%struct.inode = type { i32, ptr, i64, i32, i32, i32, i32, i32, i32, i64, ptr, i64, i32, i32, i8, i32 }
%struct.squashfs_base_inode_header_3 = type { i32, i32, i32 }
%struct.squashfs_dir_inode_header_3 = type { i32, i32, i32, i32, i32, i32, i32 }
%struct.squashfs_ldir_inode_header_3 = type <{ i32, i32, i32, i32, [5 x i8], i32, i16, i32, [0 x %struct.squashfs_dir_index_3] }>
%struct.squashfs_dir_index_3 = type <{ i32, i32, i8, [0 x i8] }>
%struct.squashfs_reg_inode_header_3 = type <{ i32, i32, i32, i64, i32, i32, i32, [0 x i16] }>
%struct.squashfs_symlink_inode_header_3 = type <{ i32, i32, i32, i32, i16, [0 x i8] }>
%struct.squashfs_dev_inode_header_3 = type <{ i32, i32, i32, i32, i16 }>

@sBlk = external global %struct.super_block, align 8
@screen_mutex = external global %union.pthread_mutex_t, align 8
@stderr = external global ptr, align 8
@swap = external global i32, align 4
@read_inode_3.header = external hidden global %union.squashfs_inode_header_3, align 1
@inode_table_hash = external global [65536 x ptr], align 16
@inode_table = external global ptr, align 8
@read_inode_3.i = external hidden global %struct.inode, align 8
@.str.4 = external hidden unnamed_addr constant [68 x i8], align 1
@uid_table = external global ptr, align 8
@guid_table = external global ptr, align 8
@lookup_type = external global [0 x i32], align 4
@.str.5 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [60 x i8], align 1

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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #1

; Function Attrs: nounwind
declare i32 @pthread_mutex_lock(ptr noundef) #2

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

; Function Attrs: nounwind
declare i32 @pthread_mutex_unlock(ptr noundef) #2

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #3

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

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

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

; Function Attrs: nounwind uwtable
define dso_local ptr @read_inode_3(i32 noundef %0, i32 noundef %1) #6 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i64, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca %struct.squashfs_base_inode_header_3, align 1
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i64, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.squashfs_dir_inode_header_3, align 1
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i64, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.squashfs_ldir_inode_header_3, align 1
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i64, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca %struct.squashfs_reg_inode_header_3, align 1
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %struct.squashfs_lreg_inode_header_3, align 1
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i64, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %struct.squashfs_symlink_inode_header_3, align 1
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i64, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca %struct.squashfs_dev_inode_header_3, align 1
  %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
  store i32 %0, ptr %3, align 4, !tbaa !5
  store i32 %1, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  %56 = load i64, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 15), align 8, !tbaa !9
  %57 = load i32, ptr %3, align 4, !tbaa !5
  %58 = zext i32 %57 to i64
  %59 = add nsw i64 %56, %58
  store i64 %59, ptr %5, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %60 = load i64, ptr %5, align 8, !tbaa !14
  %61 = call i32 @lookup_entry(ptr noundef @inode_table_hash, i64 noundef %60)
  store i32 %61, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %62 = load ptr, ptr @inode_table, align 8, !tbaa !15
  %63 = load i32, ptr %6, align 4, !tbaa !5
  %64 = sext i32 %63 to i64
  %65 = getelementptr inbounds i8, ptr %62, i64 %64
  %66 = load i32, ptr %4, align 4, !tbaa !5
  %67 = zext i32 %66 to i64
  %68 = getelementptr inbounds i8, ptr %65, i64 %67
  store ptr %68, ptr %7, align 8, !tbaa !15
  %69 = load i32, ptr %6, align 4, !tbaa !5
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %71, label %80

71:                                               ; preds = %2
  br label %72

72:                                               ; preds = %71
  %73 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %74 = load ptr, ptr @stderr, align 8, !tbaa !15
  %75 = load i64, ptr %5, align 8, !tbaa !14
  %76 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %74, ptr noundef @.str.4, i64 noundef %75) #8
  %77 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

78:                                               ; No predecessors!
  br label %79

79:                                               ; preds = %78
  br label %80

80:                                               ; preds = %79, %2
  %81 = load i32, ptr @swap, align 4, !tbaa !5
  %82 = icmp ne i32 %81, 0
  br i1 %82, label %83, label %242

83:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 12, ptr %8) #8
  %84 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %8, ptr align 1 %84, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  call void @llvm.memset.p0.i64(ptr align 1 @read_inode_3.header, i8 0, i64 12, i1 false)
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %85 = getelementptr inbounds i8, ptr %8, i64 0
  store ptr %85, ptr %12, align 8, !tbaa !15
  %86 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %86, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %87

87:                                               ; preds = %98, %83
  %88 = load i32, ptr %9, align 4, !tbaa !5
  %89 = load i32, ptr %10, align 4, !tbaa !5
  %90 = add nsw i32 4, %89
  %91 = icmp slt i32 %88, %90
  br i1 %91, label %92, label %101

92:                                               ; preds = %87
  %93 = load ptr, ptr %12, align 8, !tbaa !15
  %94 = getelementptr inbounds i8, ptr %93, i32 1
  store ptr %94, ptr %12, align 8, !tbaa !15
  %95 = load i8, ptr %93, align 1, !tbaa !17
  %96 = load ptr, ptr %13, align 8, !tbaa !15
  %97 = getelementptr inbounds i8, ptr %96, i32 -1
  store ptr %97, ptr %13, align 8, !tbaa !15
  store i8 %95, ptr %96, align 1, !tbaa !17
  br label %98

98:                                               ; preds = %92
  %99 = load i32, ptr %9, align 4, !tbaa !5
  %100 = add nsw i32 %99, 8
  store i32 %100, ptr %9, align 4, !tbaa !5
  br label %87, !llvm.loop !18

101:                                              ; preds = %87
  %102 = load i64, ptr %11, align 8, !tbaa !14
  %103 = load i32, ptr %10, align 4, !tbaa !5
  %104 = sub nsw i32 60, %103
  %105 = zext i32 %104 to i64
  %106 = lshr i64 %102, %105
  %107 = trunc i64 %106 to i32
  %108 = load i32, ptr @read_inode_3.header, align 1
  %109 = and i32 %107, 15
  %110 = and i32 %108, -16
  %111 = or i32 %110, %109
  store i32 %111, ptr @read_inode_3.header, align 1
  store i32 4, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %112 = getelementptr inbounds i8, ptr %8, i64 0
  store ptr %112, ptr %12, align 8, !tbaa !15
  %113 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %113, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %114

114:                                              ; preds = %125, %101
  %115 = load i32, ptr %9, align 4, !tbaa !5
  %116 = load i32, ptr %10, align 4, !tbaa !5
  %117 = add nsw i32 12, %116
  %118 = icmp slt i32 %115, %117
  br i1 %118, label %119, label %128

119:                                              ; preds = %114
  %120 = load ptr, ptr %12, align 8, !tbaa !15
  %121 = getelementptr inbounds i8, ptr %120, i32 1
  store ptr %121, ptr %12, align 8, !tbaa !15
  %122 = load i8, ptr %120, align 1, !tbaa !17
  %123 = load ptr, ptr %13, align 8, !tbaa !15
  %124 = getelementptr inbounds i8, ptr %123, i32 -1
  store ptr %124, ptr %13, align 8, !tbaa !15
  store i8 %122, ptr %123, align 1, !tbaa !17
  br label %125

125:                                              ; preds = %119
  %126 = load i32, ptr %9, align 4, !tbaa !5
  %127 = add nsw i32 %126, 8
  store i32 %127, ptr %9, align 4, !tbaa !5
  br label %114, !llvm.loop !20

128:                                              ; preds = %114
  %129 = load i64, ptr %11, align 8, !tbaa !14
  %130 = load i32, ptr %10, align 4, !tbaa !5
  %131 = sub nsw i32 52, %130
  %132 = zext i32 %131 to i64
  %133 = lshr i64 %129, %132
  %134 = trunc i64 %133 to i32
  %135 = load i32, ptr @read_inode_3.header, align 1
  %136 = and i32 %134, 4095
  %137 = shl i32 %136, 4
  %138 = and i32 %135, -65521
  %139 = or i32 %138, %137
  store i32 %139, ptr @read_inode_3.header, align 1
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %140 = getelementptr inbounds i8, ptr %8, i64 2
  store ptr %140, ptr %12, align 8, !tbaa !15
  %141 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %141, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %142

142:                                              ; preds = %153, %128
  %143 = load i32, ptr %9, align 4, !tbaa !5
  %144 = load i32, ptr %10, align 4, !tbaa !5
  %145 = add nsw i32 8, %144
  %146 = icmp slt i32 %143, %145
  br i1 %146, label %147, label %156

147:                                              ; preds = %142
  %148 = load ptr, ptr %12, align 8, !tbaa !15
  %149 = getelementptr inbounds i8, ptr %148, i32 1
  store ptr %149, ptr %12, align 8, !tbaa !15
  %150 = load i8, ptr %148, align 1, !tbaa !17
  %151 = load ptr, ptr %13, align 8, !tbaa !15
  %152 = getelementptr inbounds i8, ptr %151, i32 -1
  store ptr %152, ptr %13, align 8, !tbaa !15
  store i8 %150, ptr %151, align 1, !tbaa !17
  br label %153

153:                                              ; preds = %147
  %154 = load i32, ptr %9, align 4, !tbaa !5
  %155 = add nsw i32 %154, 8
  store i32 %155, ptr %9, align 4, !tbaa !5
  br label %142, !llvm.loop !21

156:                                              ; preds = %142
  %157 = load i64, ptr %11, align 8, !tbaa !14
  %158 = load i32, ptr %10, align 4, !tbaa !5
  %159 = sub nsw i32 56, %158
  %160 = zext i32 %159 to i64
  %161 = lshr i64 %157, %160
  %162 = trunc i64 %161 to i32
  %163 = load i32, ptr @read_inode_3.header, align 1
  %164 = and i32 %162, 255
  %165 = shl i32 %164, 16
  %166 = and i32 %163, -16711681
  %167 = or i32 %166, %165
  store i32 %167, ptr @read_inode_3.header, align 1
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %168 = getelementptr inbounds i8, ptr %8, i64 3
  store ptr %168, ptr %12, align 8, !tbaa !15
  %169 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %169, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %170

170:                                              ; preds = %181, %156
  %171 = load i32, ptr %9, align 4, !tbaa !5
  %172 = load i32, ptr %10, align 4, !tbaa !5
  %173 = add nsw i32 8, %172
  %174 = icmp slt i32 %171, %173
  br i1 %174, label %175, label %184

175:                                              ; preds = %170
  %176 = load ptr, ptr %12, align 8, !tbaa !15
  %177 = getelementptr inbounds i8, ptr %176, i32 1
  store ptr %177, ptr %12, align 8, !tbaa !15
  %178 = load i8, ptr %176, align 1, !tbaa !17
  %179 = load ptr, ptr %13, align 8, !tbaa !15
  %180 = getelementptr inbounds i8, ptr %179, i32 -1
  store ptr %180, ptr %13, align 8, !tbaa !15
  store i8 %178, ptr %179, align 1, !tbaa !17
  br label %181

181:                                              ; preds = %175
  %182 = load i32, ptr %9, align 4, !tbaa !5
  %183 = add nsw i32 %182, 8
  store i32 %183, ptr %9, align 4, !tbaa !5
  br label %170, !llvm.loop !22

184:                                              ; preds = %170
  %185 = load i64, ptr %11, align 8, !tbaa !14
  %186 = load i32, ptr %10, align 4, !tbaa !5
  %187 = sub nsw i32 56, %186
  %188 = zext i32 %187 to i64
  %189 = lshr i64 %185, %188
  %190 = trunc i64 %189 to i32
  %191 = load i32, ptr @read_inode_3.header, align 1
  %192 = and i32 %190, 255
  %193 = shl i32 %192, 24
  %194 = and i32 %191, 16777215
  %195 = or i32 %194, %193
  store i32 %195, ptr @read_inode_3.header, align 1
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %196 = getelementptr inbounds i8, ptr %8, i64 4
  store ptr %196, ptr %12, align 8, !tbaa !15
  %197 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %197, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %198

198:                                              ; preds = %209, %184
  %199 = load i32, ptr %9, align 4, !tbaa !5
  %200 = load i32, ptr %10, align 4, !tbaa !5
  %201 = add nsw i32 32, %200
  %202 = icmp slt i32 %199, %201
  br i1 %202, label %203, label %212

203:                                              ; preds = %198
  %204 = load ptr, ptr %12, align 8, !tbaa !15
  %205 = getelementptr inbounds i8, ptr %204, i32 1
  store ptr %205, ptr %12, align 8, !tbaa !15
  %206 = load i8, ptr %204, align 1, !tbaa !17
  %207 = load ptr, ptr %13, align 8, !tbaa !15
  %208 = getelementptr inbounds i8, ptr %207, i32 -1
  store ptr %208, ptr %13, align 8, !tbaa !15
  store i8 %206, ptr %207, align 1, !tbaa !17
  br label %209

209:                                              ; preds = %203
  %210 = load i32, ptr %9, align 4, !tbaa !5
  %211 = add nsw i32 %210, 8
  store i32 %211, ptr %9, align 4, !tbaa !5
  br label %198, !llvm.loop !23

212:                                              ; preds = %198
  %213 = load i64, ptr %11, align 8, !tbaa !14
  %214 = load i32, ptr %10, align 4, !tbaa !5
  %215 = sub nsw i32 32, %214
  %216 = zext i32 %215 to i64
  %217 = lshr i64 %213, %216
  %218 = trunc i64 %217 to i32
  store i32 %218, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_3, ptr @read_inode_3.header, i32 0, i32 1), align 1, !tbaa !17
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %219 = getelementptr inbounds i8, ptr %8, i64 8
  store ptr %219, ptr %12, align 8, !tbaa !15
  %220 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %220, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %221

221:                                              ; preds = %232, %212
  %222 = load i32, ptr %9, align 4, !tbaa !5
  %223 = load i32, ptr %10, align 4, !tbaa !5
  %224 = add nsw i32 32, %223
  %225 = icmp slt i32 %222, %224
  br i1 %225, label %226, label %235

226:                                              ; preds = %221
  %227 = load ptr, ptr %12, align 8, !tbaa !15
  %228 = getelementptr inbounds i8, ptr %227, i32 1
  store ptr %228, ptr %12, align 8, !tbaa !15
  %229 = load i8, ptr %227, align 1, !tbaa !17
  %230 = load ptr, ptr %13, align 8, !tbaa !15
  %231 = getelementptr inbounds i8, ptr %230, i32 -1
  store ptr %231, ptr %13, align 8, !tbaa !15
  store i8 %229, ptr %230, align 1, !tbaa !17
  br label %232

232:                                              ; preds = %226
  %233 = load i32, ptr %9, align 4, !tbaa !5
  %234 = add nsw i32 %233, 8
  store i32 %234, ptr %9, align 4, !tbaa !5
  br label %221, !llvm.loop !24

235:                                              ; preds = %221
  %236 = load i64, ptr %11, align 8, !tbaa !14
  %237 = load i32, ptr %10, align 4, !tbaa !5
  %238 = sub nsw i32 32, %237
  %239 = zext i32 %238 to i64
  %240 = lshr i64 %236, %239
  %241 = trunc i64 %240 to i32
  store i32 %241, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_3, ptr @read_inode_3.header, i32 0, i32 2), align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %8) #8
  br label %244

242:                                              ; preds = %80
  %243 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 @read_inode_3.header, ptr align 1 %243, i64 12, i1 false)
  br label %244

244:                                              ; preds = %242, %235
  store i32 -1, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 15), align 4, !tbaa !25
  %245 = load ptr, ptr @uid_table, align 8, !tbaa !15
  %246 = load i32, ptr @read_inode_3.header, align 1
  %247 = lshr i32 %246, 16
  %248 = and i32 %247, 255
  %249 = zext i32 %248 to i64
  %250 = getelementptr inbounds i32, ptr %245, i64 %249
  %251 = load i32, ptr %250, align 4, !tbaa !5
  store i32 %251, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 13), align 4, !tbaa !28
  %252 = load i32, ptr @read_inode_3.header, align 1
  %253 = lshr i32 %252, 24
  %254 = icmp eq i32 %253, 255
  br i1 %254, label %255, label %257

255:                                              ; preds = %244
  %256 = load i32, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 13), align 4, !tbaa !28
  br label %264

257:                                              ; preds = %244
  %258 = load ptr, ptr @guid_table, align 8, !tbaa !15
  %259 = load i32, ptr @read_inode_3.header, align 1
  %260 = lshr i32 %259, 24
  %261 = zext i32 %260 to i64
  %262 = getelementptr inbounds i32, ptr %258, i64 %261
  %263 = load i32, ptr %262, align 4, !tbaa !5
  br label %264

264:                                              ; preds = %257, %255
  %265 = phi i32 [ %256, %255 ], [ %263, %257 ]
  store i32 %265, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 5), align 8, !tbaa !29
  %266 = load i32, ptr @read_inode_3.header, align 1
  %267 = and i32 %266, 15
  %268 = zext i32 %267 to i64
  %269 = getelementptr inbounds [0 x i32], ptr @lookup_type, i64 0, i64 %268
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = load i32, ptr @read_inode_3.header, align 1
  %272 = lshr i32 %271, 4
  %273 = and i32 %272, 4095
  %274 = or i32 %270, %273
  store i32 %274, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 7), align 8, !tbaa !30
  %275 = load i32, ptr @read_inode_3.header, align 1
  %276 = and i32 %275, 15
  store i32 %276, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 12), align 8, !tbaa !31
  %277 = load i32, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_3, ptr @read_inode_3.header, i32 0, i32 1), align 1, !tbaa !17
  %278 = zext i32 %277 to i64
  store i64 %278, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 11), align 8, !tbaa !32
  %279 = load i32, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_3, ptr @read_inode_3.header, i32 0, i32 2), align 1, !tbaa !17
  store i32 %279, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 6), align 4, !tbaa !33
  %280 = load i32, ptr @read_inode_3.header, align 1
  %281 = and i32 %280, 15
  switch i32 %281, label %2087 [
    i32 1, label %282
    i32 8, label %584
    i32 2, label %917
    i32 9, label %1242
    i32 3, label %1596
    i32 4, label %1857
    i32 5, label %1857
    i32 6, label %2086
    i32 7, label %2086
  ]

282:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  store ptr @read_inode_3.header, ptr %14, align 8, !tbaa !15
  %283 = load i32, ptr @swap, align 4, !tbaa !5
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %568

285:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 28, ptr %15) #8
  %286 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %15, ptr align 1 %286, i64 28, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  call void @llvm.memset.p0.i64(ptr align 1 @read_inode_3.header, i8 0, i64 28, i1 false)
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %287 = getelementptr inbounds i8, ptr %15, i64 0
  store ptr %287, ptr %19, align 8, !tbaa !15
  %288 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %288, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %289

289:                                              ; preds = %300, %285
  %290 = load i32, ptr %16, align 4, !tbaa !5
  %291 = load i32, ptr %17, align 4, !tbaa !5
  %292 = add nsw i32 4, %291
  %293 = icmp slt i32 %290, %292
  br i1 %293, label %294, label %303

294:                                              ; preds = %289
  %295 = load ptr, ptr %19, align 8, !tbaa !15
  %296 = getelementptr inbounds i8, ptr %295, i32 1
  store ptr %296, ptr %19, align 8, !tbaa !15
  %297 = load i8, ptr %295, align 1, !tbaa !17
  %298 = load ptr, ptr %20, align 8, !tbaa !15
  %299 = getelementptr inbounds i8, ptr %298, i32 -1
  store ptr %299, ptr %20, align 8, !tbaa !15
  store i8 %297, ptr %298, align 1, !tbaa !17
  br label %300

300:                                              ; preds = %294
  %301 = load i32, ptr %16, align 4, !tbaa !5
  %302 = add nsw i32 %301, 8
  store i32 %302, ptr %16, align 4, !tbaa !5
  br label %289, !llvm.loop !34

303:                                              ; preds = %289
  %304 = load i64, ptr %18, align 8, !tbaa !14
  %305 = load i32, ptr %17, align 4, !tbaa !5
  %306 = sub nsw i32 60, %305
  %307 = zext i32 %306 to i64
  %308 = lshr i64 %304, %307
  %309 = trunc i64 %308 to i32
  %310 = load i32, ptr @read_inode_3.header, align 1
  %311 = and i32 %309, 15
  %312 = and i32 %310, -16
  %313 = or i32 %312, %311
  store i32 %313, ptr @read_inode_3.header, align 1
  store i32 4, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %314 = getelementptr inbounds i8, ptr %15, i64 0
  store ptr %314, ptr %19, align 8, !tbaa !15
  %315 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %315, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %316

316:                                              ; preds = %327, %303
  %317 = load i32, ptr %16, align 4, !tbaa !5
  %318 = load i32, ptr %17, align 4, !tbaa !5
  %319 = add nsw i32 12, %318
  %320 = icmp slt i32 %317, %319
  br i1 %320, label %321, label %330

321:                                              ; preds = %316
  %322 = load ptr, ptr %19, align 8, !tbaa !15
  %323 = getelementptr inbounds i8, ptr %322, i32 1
  store ptr %323, ptr %19, align 8, !tbaa !15
  %324 = load i8, ptr %322, align 1, !tbaa !17
  %325 = load ptr, ptr %20, align 8, !tbaa !15
  %326 = getelementptr inbounds i8, ptr %325, i32 -1
  store ptr %326, ptr %20, align 8, !tbaa !15
  store i8 %324, ptr %325, align 1, !tbaa !17
  br label %327

327:                                              ; preds = %321
  %328 = load i32, ptr %16, align 4, !tbaa !5
  %329 = add nsw i32 %328, 8
  store i32 %329, ptr %16, align 4, !tbaa !5
  br label %316, !llvm.loop !35

330:                                              ; preds = %316
  %331 = load i64, ptr %18, align 8, !tbaa !14
  %332 = load i32, ptr %17, align 4, !tbaa !5
  %333 = sub nsw i32 52, %332
  %334 = zext i32 %333 to i64
  %335 = lshr i64 %331, %334
  %336 = trunc i64 %335 to i32
  %337 = load i32, ptr @read_inode_3.header, align 1
  %338 = and i32 %336, 4095
  %339 = shl i32 %338, 4
  %340 = and i32 %337, -65521
  %341 = or i32 %340, %339
  store i32 %341, ptr @read_inode_3.header, align 1
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %342 = getelementptr inbounds i8, ptr %15, i64 2
  store ptr %342, ptr %19, align 8, !tbaa !15
  %343 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %343, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %344

344:                                              ; preds = %355, %330
  %345 = load i32, ptr %16, align 4, !tbaa !5
  %346 = load i32, ptr %17, align 4, !tbaa !5
  %347 = add nsw i32 8, %346
  %348 = icmp slt i32 %345, %347
  br i1 %348, label %349, label %358

349:                                              ; preds = %344
  %350 = load ptr, ptr %19, align 8, !tbaa !15
  %351 = getelementptr inbounds i8, ptr %350, i32 1
  store ptr %351, ptr %19, align 8, !tbaa !15
  %352 = load i8, ptr %350, align 1, !tbaa !17
  %353 = load ptr, ptr %20, align 8, !tbaa !15
  %354 = getelementptr inbounds i8, ptr %353, i32 -1
  store ptr %354, ptr %20, align 8, !tbaa !15
  store i8 %352, ptr %353, align 1, !tbaa !17
  br label %355

355:                                              ; preds = %349
  %356 = load i32, ptr %16, align 4, !tbaa !5
  %357 = add nsw i32 %356, 8
  store i32 %357, ptr %16, align 4, !tbaa !5
  br label %344, !llvm.loop !36

358:                                              ; preds = %344
  %359 = load i64, ptr %18, align 8, !tbaa !14
  %360 = load i32, ptr %17, align 4, !tbaa !5
  %361 = sub nsw i32 56, %360
  %362 = zext i32 %361 to i64
  %363 = lshr i64 %359, %362
  %364 = trunc i64 %363 to i32
  %365 = load i32, ptr @read_inode_3.header, align 1
  %366 = and i32 %364, 255
  %367 = shl i32 %366, 16
  %368 = and i32 %365, -16711681
  %369 = or i32 %368, %367
  store i32 %369, ptr @read_inode_3.header, align 1
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %370 = getelementptr inbounds i8, ptr %15, i64 3
  store ptr %370, ptr %19, align 8, !tbaa !15
  %371 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %371, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %372

372:                                              ; preds = %383, %358
  %373 = load i32, ptr %16, align 4, !tbaa !5
  %374 = load i32, ptr %17, align 4, !tbaa !5
  %375 = add nsw i32 8, %374
  %376 = icmp slt i32 %373, %375
  br i1 %376, label %377, label %386

377:                                              ; preds = %372
  %378 = load ptr, ptr %19, align 8, !tbaa !15
  %379 = getelementptr inbounds i8, ptr %378, i32 1
  store ptr %379, ptr %19, align 8, !tbaa !15
  %380 = load i8, ptr %378, align 1, !tbaa !17
  %381 = load ptr, ptr %20, align 8, !tbaa !15
  %382 = getelementptr inbounds i8, ptr %381, i32 -1
  store ptr %382, ptr %20, align 8, !tbaa !15
  store i8 %380, ptr %381, align 1, !tbaa !17
  br label %383

383:                                              ; preds = %377
  %384 = load i32, ptr %16, align 4, !tbaa !5
  %385 = add nsw i32 %384, 8
  store i32 %385, ptr %16, align 4, !tbaa !5
  br label %372, !llvm.loop !37

386:                                              ; preds = %372
  %387 = load i64, ptr %18, align 8, !tbaa !14
  %388 = load i32, ptr %17, align 4, !tbaa !5
  %389 = sub nsw i32 56, %388
  %390 = zext i32 %389 to i64
  %391 = lshr i64 %387, %390
  %392 = trunc i64 %391 to i32
  %393 = load i32, ptr @read_inode_3.header, align 1
  %394 = and i32 %392, 255
  %395 = shl i32 %394, 24
  %396 = and i32 %393, 16777215
  %397 = or i32 %396, %395
  store i32 %397, ptr @read_inode_3.header, align 1
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %398 = getelementptr inbounds i8, ptr %15, i64 4
  store ptr %398, ptr %19, align 8, !tbaa !15
  %399 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %399, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %400

400:                                              ; preds = %411, %386
  %401 = load i32, ptr %16, align 4, !tbaa !5
  %402 = load i32, ptr %17, align 4, !tbaa !5
  %403 = add nsw i32 32, %402
  %404 = icmp slt i32 %401, %403
  br i1 %404, label %405, label %414

405:                                              ; preds = %400
  %406 = load ptr, ptr %19, align 8, !tbaa !15
  %407 = getelementptr inbounds i8, ptr %406, i32 1
  store ptr %407, ptr %19, align 8, !tbaa !15
  %408 = load i8, ptr %406, align 1, !tbaa !17
  %409 = load ptr, ptr %20, align 8, !tbaa !15
  %410 = getelementptr inbounds i8, ptr %409, i32 -1
  store ptr %410, ptr %20, align 8, !tbaa !15
  store i8 %408, ptr %409, align 1, !tbaa !17
  br label %411

411:                                              ; preds = %405
  %412 = load i32, ptr %16, align 4, !tbaa !5
  %413 = add nsw i32 %412, 8
  store i32 %413, ptr %16, align 4, !tbaa !5
  br label %400, !llvm.loop !38

414:                                              ; preds = %400
  %415 = load i64, ptr %18, align 8, !tbaa !14
  %416 = load i32, ptr %17, align 4, !tbaa !5
  %417 = sub nsw i32 32, %416
  %418 = zext i32 %417 to i64
  %419 = lshr i64 %415, %418
  %420 = trunc i64 %419 to i32
  store i32 %420, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 1), align 1, !tbaa !17
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %421 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %421, ptr %19, align 8, !tbaa !15
  %422 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %422, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %423

423:                                              ; preds = %434, %414
  %424 = load i32, ptr %16, align 4, !tbaa !5
  %425 = load i32, ptr %17, align 4, !tbaa !5
  %426 = add nsw i32 32, %425
  %427 = icmp slt i32 %424, %426
  br i1 %427, label %428, label %437

428:                                              ; preds = %423
  %429 = load ptr, ptr %19, align 8, !tbaa !15
  %430 = getelementptr inbounds i8, ptr %429, i32 1
  store ptr %430, ptr %19, align 8, !tbaa !15
  %431 = load i8, ptr %429, align 1, !tbaa !17
  %432 = load ptr, ptr %20, align 8, !tbaa !15
  %433 = getelementptr inbounds i8, ptr %432, i32 -1
  store ptr %433, ptr %20, align 8, !tbaa !15
  store i8 %431, ptr %432, align 1, !tbaa !17
  br label %434

434:                                              ; preds = %428
  %435 = load i32, ptr %16, align 4, !tbaa !5
  %436 = add nsw i32 %435, 8
  store i32 %436, ptr %16, align 4, !tbaa !5
  br label %423, !llvm.loop !39

437:                                              ; preds = %423
  %438 = load i64, ptr %18, align 8, !tbaa !14
  %439 = load i32, ptr %17, align 4, !tbaa !5
  %440 = sub nsw i32 32, %439
  %441 = zext i32 %440 to i64
  %442 = lshr i64 %438, %441
  %443 = trunc i64 %442 to i32
  store i32 %443, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 2), align 1, !tbaa !17
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %444 = getelementptr inbounds i8, ptr %15, i64 12
  store ptr %444, ptr %19, align 8, !tbaa !15
  %445 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %445, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %446

446:                                              ; preds = %457, %437
  %447 = load i32, ptr %16, align 4, !tbaa !5
  %448 = load i32, ptr %17, align 4, !tbaa !5
  %449 = add nsw i32 32, %448
  %450 = icmp slt i32 %447, %449
  br i1 %450, label %451, label %460

451:                                              ; preds = %446
  %452 = load ptr, ptr %19, align 8, !tbaa !15
  %453 = getelementptr inbounds i8, ptr %452, i32 1
  store ptr %453, ptr %19, align 8, !tbaa !15
  %454 = load i8, ptr %452, align 1, !tbaa !17
  %455 = load ptr, ptr %20, align 8, !tbaa !15
  %456 = getelementptr inbounds i8, ptr %455, i32 -1
  store ptr %456, ptr %20, align 8, !tbaa !15
  store i8 %454, ptr %455, align 1, !tbaa !17
  br label %457

457:                                              ; preds = %451
  %458 = load i32, ptr %16, align 4, !tbaa !5
  %459 = add nsw i32 %458, 8
  store i32 %459, ptr %16, align 4, !tbaa !5
  br label %446, !llvm.loop !40

460:                                              ; preds = %446
  %461 = load i64, ptr %18, align 8, !tbaa !14
  %462 = load i32, ptr %17, align 4, !tbaa !5
  %463 = sub nsw i32 32, %462
  %464 = zext i32 %463 to i64
  %465 = lshr i64 %461, %464
  %466 = trunc i64 %465 to i32
  store i32 %466, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 3), align 1, !tbaa !17
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %467 = getelementptr inbounds i8, ptr %15, i64 16
  store ptr %467, ptr %19, align 8, !tbaa !15
  %468 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %468, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %469

469:                                              ; preds = %480, %460
  %470 = load i32, ptr %16, align 4, !tbaa !5
  %471 = load i32, ptr %17, align 4, !tbaa !5
  %472 = add nsw i32 19, %471
  %473 = icmp slt i32 %470, %472
  br i1 %473, label %474, label %483

474:                                              ; preds = %469
  %475 = load ptr, ptr %19, align 8, !tbaa !15
  %476 = getelementptr inbounds i8, ptr %475, i32 1
  store ptr %476, ptr %19, align 8, !tbaa !15
  %477 = load i8, ptr %475, align 1, !tbaa !17
  %478 = load ptr, ptr %20, align 8, !tbaa !15
  %479 = getelementptr inbounds i8, ptr %478, i32 -1
  store ptr %479, ptr %20, align 8, !tbaa !15
  store i8 %477, ptr %478, align 1, !tbaa !17
  br label %480

480:                                              ; preds = %474
  %481 = load i32, ptr %16, align 4, !tbaa !5
  %482 = add nsw i32 %481, 8
  store i32 %482, ptr %16, align 4, !tbaa !5
  br label %469, !llvm.loop !41

483:                                              ; preds = %469
  %484 = load i64, ptr %18, align 8, !tbaa !14
  %485 = load i32, ptr %17, align 4, !tbaa !5
  %486 = sub nsw i32 45, %485
  %487 = zext i32 %486 to i64
  %488 = lshr i64 %484, %487
  %489 = trunc i64 %488 to i32
  %490 = load i32, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  %491 = and i32 %489, 524287
  %492 = and i32 %490, -524288
  %493 = or i32 %492, %491
  store i32 %493, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  store i32 3, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %494 = getelementptr inbounds i8, ptr %15, i64 18
  store ptr %494, ptr %19, align 8, !tbaa !15
  %495 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %495, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %496

496:                                              ; preds = %507, %483
  %497 = load i32, ptr %16, align 4, !tbaa !5
  %498 = load i32, ptr %17, align 4, !tbaa !5
  %499 = add nsw i32 13, %498
  %500 = icmp slt i32 %497, %499
  br i1 %500, label %501, label %510

501:                                              ; preds = %496
  %502 = load ptr, ptr %19, align 8, !tbaa !15
  %503 = getelementptr inbounds i8, ptr %502, i32 1
  store ptr %503, ptr %19, align 8, !tbaa !15
  %504 = load i8, ptr %502, align 1, !tbaa !17
  %505 = load ptr, ptr %20, align 8, !tbaa !15
  %506 = getelementptr inbounds i8, ptr %505, i32 -1
  store ptr %506, ptr %20, align 8, !tbaa !15
  store i8 %504, ptr %505, align 1, !tbaa !17
  br label %507

507:                                              ; preds = %501
  %508 = load i32, ptr %16, align 4, !tbaa !5
  %509 = add nsw i32 %508, 8
  store i32 %509, ptr %16, align 4, !tbaa !5
  br label %496, !llvm.loop !42

510:                                              ; preds = %496
  %511 = load i64, ptr %18, align 8, !tbaa !14
  %512 = load i32, ptr %17, align 4, !tbaa !5
  %513 = sub nsw i32 51, %512
  %514 = zext i32 %513 to i64
  %515 = lshr i64 %511, %514
  %516 = trunc i64 %515 to i32
  %517 = load i32, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  %518 = and i32 %516, 8191
  %519 = shl i32 %518, 19
  %520 = and i32 %517, 524287
  %521 = or i32 %520, %519
  store i32 %521, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %522 = getelementptr inbounds i8, ptr %15, i64 20
  store ptr %522, ptr %19, align 8, !tbaa !15
  %523 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %523, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %524

524:                                              ; preds = %535, %510
  %525 = load i32, ptr %16, align 4, !tbaa !5
  %526 = load i32, ptr %17, align 4, !tbaa !5
  %527 = add nsw i32 32, %526
  %528 = icmp slt i32 %525, %527
  br i1 %528, label %529, label %538

529:                                              ; preds = %524
  %530 = load ptr, ptr %19, align 8, !tbaa !15
  %531 = getelementptr inbounds i8, ptr %530, i32 1
  store ptr %531, ptr %19, align 8, !tbaa !15
  %532 = load i8, ptr %530, align 1, !tbaa !17
  %533 = load ptr, ptr %20, align 8, !tbaa !15
  %534 = getelementptr inbounds i8, ptr %533, i32 -1
  store ptr %534, ptr %20, align 8, !tbaa !15
  store i8 %532, ptr %533, align 1, !tbaa !17
  br label %535

535:                                              ; preds = %529
  %536 = load i32, ptr %16, align 4, !tbaa !5
  %537 = add nsw i32 %536, 8
  store i32 %537, ptr %16, align 4, !tbaa !5
  br label %524, !llvm.loop !43

538:                                              ; preds = %524
  %539 = load i64, ptr %18, align 8, !tbaa !14
  %540 = load i32, ptr %17, align 4, !tbaa !5
  %541 = sub nsw i32 32, %540
  %542 = zext i32 %541 to i64
  %543 = lshr i64 %539, %542
  %544 = trunc i64 %543 to i32
  store i32 %544, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 5), align 1, !tbaa !17
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %545 = getelementptr inbounds i8, ptr %15, i64 24
  store ptr %545, ptr %19, align 8, !tbaa !15
  %546 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %546, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %547

547:                                              ; preds = %558, %538
  %548 = load i32, ptr %16, align 4, !tbaa !5
  %549 = load i32, ptr %17, align 4, !tbaa !5
  %550 = add nsw i32 32, %549
  %551 = icmp slt i32 %548, %550
  br i1 %551, label %552, label %561

552:                                              ; preds = %547
  %553 = load ptr, ptr %19, align 8, !tbaa !15
  %554 = getelementptr inbounds i8, ptr %553, i32 1
  store ptr %554, ptr %19, align 8, !tbaa !15
  %555 = load i8, ptr %553, align 1, !tbaa !17
  %556 = load ptr, ptr %20, align 8, !tbaa !15
  %557 = getelementptr inbounds i8, ptr %556, i32 -1
  store ptr %557, ptr %20, align 8, !tbaa !15
  store i8 %555, ptr %556, align 1, !tbaa !17
  br label %558

558:                                              ; preds = %552
  %559 = load i32, ptr %16, align 4, !tbaa !5
  %560 = add nsw i32 %559, 8
  store i32 %560, ptr %16, align 4, !tbaa !5
  br label %547, !llvm.loop !44

561:                                              ; preds = %547
  %562 = load i64, ptr %18, align 8, !tbaa !14
  %563 = load i32, ptr %17, align 4, !tbaa !5
  %564 = sub nsw i32 32, %563
  %565 = zext i32 %564 to i64
  %566 = lshr i64 %562, %565
  %567 = trunc i64 %566 to i32
  store i32 %567, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 6), align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 28, ptr %15) #8
  br label %570

568:                                              ; preds = %282
  %569 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 @read_inode_3.header, ptr align 1 %569, i64 28, i1 false)
  br label %570

570:                                              ; preds = %568, %561
  %571 = load ptr, ptr %14, align 8, !tbaa !15
  %572 = getelementptr inbounds %struct.squashfs_dir_inode_header_3, ptr %571, i32 0, i32 4
  %573 = load i32, ptr %572, align 1
  %574 = and i32 %573, 524287
  %575 = zext i32 %574 to i64
  store i64 %575, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  %576 = load ptr, ptr %14, align 8, !tbaa !15
  %577 = getelementptr inbounds %struct.squashfs_dir_inode_header_3, ptr %576, i32 0, i32 4
  %578 = load i32, ptr %577, align 1
  %579 = lshr i32 %578, 19
  store i32 %579, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 8), align 4, !tbaa !46
  %580 = load ptr, ptr %14, align 8, !tbaa !15
  %581 = getelementptr inbounds %struct.squashfs_dir_inode_header_3, ptr %580, i32 0, i32 5
  %582 = load i32, ptr %581, align 1, !tbaa !47
  %583 = zext i32 %582 to i64
  store i64 %583, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 9), align 8, !tbaa !49
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %2097

584:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  store ptr @read_inode_3.header, ptr %21, align 8, !tbaa !15
  %585 = load i32, ptr @swap, align 4, !tbaa !5
  %586 = icmp ne i32 %585, 0
  br i1 %586, label %587, label %899

587:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 31, ptr %22) #8
  %588 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %22, ptr align 1 %588, i64 31, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  call void @llvm.memset.p0.i64(ptr align 1 @read_inode_3.header, i8 0, i64 31, i1 false)
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %589 = getelementptr inbounds i8, ptr %22, i64 0
  store ptr %589, ptr %26, align 8, !tbaa !15
  %590 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %590, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %591

591:                                              ; preds = %602, %587
  %592 = load i32, ptr %23, align 4, !tbaa !5
  %593 = load i32, ptr %24, align 4, !tbaa !5
  %594 = add nsw i32 4, %593
  %595 = icmp slt i32 %592, %594
  br i1 %595, label %596, label %605

596:                                              ; preds = %591
  %597 = load ptr, ptr %26, align 8, !tbaa !15
  %598 = getelementptr inbounds i8, ptr %597, i32 1
  store ptr %598, ptr %26, align 8, !tbaa !15
  %599 = load i8, ptr %597, align 1, !tbaa !17
  %600 = load ptr, ptr %27, align 8, !tbaa !15
  %601 = getelementptr inbounds i8, ptr %600, i32 -1
  store ptr %601, ptr %27, align 8, !tbaa !15
  store i8 %599, ptr %600, align 1, !tbaa !17
  br label %602

602:                                              ; preds = %596
  %603 = load i32, ptr %23, align 4, !tbaa !5
  %604 = add nsw i32 %603, 8
  store i32 %604, ptr %23, align 4, !tbaa !5
  br label %591, !llvm.loop !50

605:                                              ; preds = %591
  %606 = load i64, ptr %25, align 8, !tbaa !14
  %607 = load i32, ptr %24, align 4, !tbaa !5
  %608 = sub nsw i32 60, %607
  %609 = zext i32 %608 to i64
  %610 = lshr i64 %606, %609
  %611 = trunc i64 %610 to i32
  %612 = load i32, ptr @read_inode_3.header, align 1
  %613 = and i32 %611, 15
  %614 = and i32 %612, -16
  %615 = or i32 %614, %613
  store i32 %615, ptr @read_inode_3.header, align 1
  store i32 4, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %616 = getelementptr inbounds i8, ptr %22, i64 0
  store ptr %616, ptr %26, align 8, !tbaa !15
  %617 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %617, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %618

618:                                              ; preds = %629, %605
  %619 = load i32, ptr %23, align 4, !tbaa !5
  %620 = load i32, ptr %24, align 4, !tbaa !5
  %621 = add nsw i32 12, %620
  %622 = icmp slt i32 %619, %621
  br i1 %622, label %623, label %632

623:                                              ; preds = %618
  %624 = load ptr, ptr %26, align 8, !tbaa !15
  %625 = getelementptr inbounds i8, ptr %624, i32 1
  store ptr %625, ptr %26, align 8, !tbaa !15
  %626 = load i8, ptr %624, align 1, !tbaa !17
  %627 = load ptr, ptr %27, align 8, !tbaa !15
  %628 = getelementptr inbounds i8, ptr %627, i32 -1
  store ptr %628, ptr %27, align 8, !tbaa !15
  store i8 %626, ptr %627, align 1, !tbaa !17
  br label %629

629:                                              ; preds = %623
  %630 = load i32, ptr %23, align 4, !tbaa !5
  %631 = add nsw i32 %630, 8
  store i32 %631, ptr %23, align 4, !tbaa !5
  br label %618, !llvm.loop !51

632:                                              ; preds = %618
  %633 = load i64, ptr %25, align 8, !tbaa !14
  %634 = load i32, ptr %24, align 4, !tbaa !5
  %635 = sub nsw i32 52, %634
  %636 = zext i32 %635 to i64
  %637 = lshr i64 %633, %636
  %638 = trunc i64 %637 to i32
  %639 = load i32, ptr @read_inode_3.header, align 1
  %640 = and i32 %638, 4095
  %641 = shl i32 %640, 4
  %642 = and i32 %639, -65521
  %643 = or i32 %642, %641
  store i32 %643, ptr @read_inode_3.header, align 1
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %644 = getelementptr inbounds i8, ptr %22, i64 2
  store ptr %644, ptr %26, align 8, !tbaa !15
  %645 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %645, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %646

646:                                              ; preds = %657, %632
  %647 = load i32, ptr %23, align 4, !tbaa !5
  %648 = load i32, ptr %24, align 4, !tbaa !5
  %649 = add nsw i32 8, %648
  %650 = icmp slt i32 %647, %649
  br i1 %650, label %651, label %660

651:                                              ; preds = %646
  %652 = load ptr, ptr %26, align 8, !tbaa !15
  %653 = getelementptr inbounds i8, ptr %652, i32 1
  store ptr %653, ptr %26, align 8, !tbaa !15
  %654 = load i8, ptr %652, align 1, !tbaa !17
  %655 = load ptr, ptr %27, align 8, !tbaa !15
  %656 = getelementptr inbounds i8, ptr %655, i32 -1
  store ptr %656, ptr %27, align 8, !tbaa !15
  store i8 %654, ptr %655, align 1, !tbaa !17
  br label %657

657:                                              ; preds = %651
  %658 = load i32, ptr %23, align 4, !tbaa !5
  %659 = add nsw i32 %658, 8
  store i32 %659, ptr %23, align 4, !tbaa !5
  br label %646, !llvm.loop !52

660:                                              ; preds = %646
  %661 = load i64, ptr %25, align 8, !tbaa !14
  %662 = load i32, ptr %24, align 4, !tbaa !5
  %663 = sub nsw i32 56, %662
  %664 = zext i32 %663 to i64
  %665 = lshr i64 %661, %664
  %666 = trunc i64 %665 to i32
  %667 = load i32, ptr @read_inode_3.header, align 1
  %668 = and i32 %666, 255
  %669 = shl i32 %668, 16
  %670 = and i32 %667, -16711681
  %671 = or i32 %670, %669
  store i32 %671, ptr @read_inode_3.header, align 1
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %672 = getelementptr inbounds i8, ptr %22, i64 3
  store ptr %672, ptr %26, align 8, !tbaa !15
  %673 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %673, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %674

674:                                              ; preds = %685, %660
  %675 = load i32, ptr %23, align 4, !tbaa !5
  %676 = load i32, ptr %24, align 4, !tbaa !5
  %677 = add nsw i32 8, %676
  %678 = icmp slt i32 %675, %677
  br i1 %678, label %679, label %688

679:                                              ; preds = %674
  %680 = load ptr, ptr %26, align 8, !tbaa !15
  %681 = getelementptr inbounds i8, ptr %680, i32 1
  store ptr %681, ptr %26, align 8, !tbaa !15
  %682 = load i8, ptr %680, align 1, !tbaa !17
  %683 = load ptr, ptr %27, align 8, !tbaa !15
  %684 = getelementptr inbounds i8, ptr %683, i32 -1
  store ptr %684, ptr %27, align 8, !tbaa !15
  store i8 %682, ptr %683, align 1, !tbaa !17
  br label %685

685:                                              ; preds = %679
  %686 = load i32, ptr %23, align 4, !tbaa !5
  %687 = add nsw i32 %686, 8
  store i32 %687, ptr %23, align 4, !tbaa !5
  br label %674, !llvm.loop !53

688:                                              ; preds = %674
  %689 = load i64, ptr %25, align 8, !tbaa !14
  %690 = load i32, ptr %24, align 4, !tbaa !5
  %691 = sub nsw i32 56, %690
  %692 = zext i32 %691 to i64
  %693 = lshr i64 %689, %692
  %694 = trunc i64 %693 to i32
  %695 = load i32, ptr @read_inode_3.header, align 1
  %696 = and i32 %694, 255
  %697 = shl i32 %696, 24
  %698 = and i32 %695, 16777215
  %699 = or i32 %698, %697
  store i32 %699, ptr @read_inode_3.header, align 1
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %700 = getelementptr inbounds i8, ptr %22, i64 4
  store ptr %700, ptr %26, align 8, !tbaa !15
  %701 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %701, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %702

702:                                              ; preds = %713, %688
  %703 = load i32, ptr %23, align 4, !tbaa !5
  %704 = load i32, ptr %24, align 4, !tbaa !5
  %705 = add nsw i32 32, %704
  %706 = icmp slt i32 %703, %705
  br i1 %706, label %707, label %716

707:                                              ; preds = %702
  %708 = load ptr, ptr %26, align 8, !tbaa !15
  %709 = getelementptr inbounds i8, ptr %708, i32 1
  store ptr %709, ptr %26, align 8, !tbaa !15
  %710 = load i8, ptr %708, align 1, !tbaa !17
  %711 = load ptr, ptr %27, align 8, !tbaa !15
  %712 = getelementptr inbounds i8, ptr %711, i32 -1
  store ptr %712, ptr %27, align 8, !tbaa !15
  store i8 %710, ptr %711, align 1, !tbaa !17
  br label %713

713:                                              ; preds = %707
  %714 = load i32, ptr %23, align 4, !tbaa !5
  %715 = add nsw i32 %714, 8
  store i32 %715, ptr %23, align 4, !tbaa !5
  br label %702, !llvm.loop !54

716:                                              ; preds = %702
  %717 = load i64, ptr %25, align 8, !tbaa !14
  %718 = load i32, ptr %24, align 4, !tbaa !5
  %719 = sub nsw i32 32, %718
  %720 = zext i32 %719 to i64
  %721 = lshr i64 %717, %720
  %722 = trunc i64 %721 to i32
  store i32 %722, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 1), align 1, !tbaa !17
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %723 = getelementptr inbounds i8, ptr %22, i64 8
  store ptr %723, ptr %26, align 8, !tbaa !15
  %724 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %724, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %725

725:                                              ; preds = %736, %716
  %726 = load i32, ptr %23, align 4, !tbaa !5
  %727 = load i32, ptr %24, align 4, !tbaa !5
  %728 = add nsw i32 32, %727
  %729 = icmp slt i32 %726, %728
  br i1 %729, label %730, label %739

730:                                              ; preds = %725
  %731 = load ptr, ptr %26, align 8, !tbaa !15
  %732 = getelementptr inbounds i8, ptr %731, i32 1
  store ptr %732, ptr %26, align 8, !tbaa !15
  %733 = load i8, ptr %731, align 1, !tbaa !17
  %734 = load ptr, ptr %27, align 8, !tbaa !15
  %735 = getelementptr inbounds i8, ptr %734, i32 -1
  store ptr %735, ptr %27, align 8, !tbaa !15
  store i8 %733, ptr %734, align 1, !tbaa !17
  br label %736

736:                                              ; preds = %730
  %737 = load i32, ptr %23, align 4, !tbaa !5
  %738 = add nsw i32 %737, 8
  store i32 %738, ptr %23, align 4, !tbaa !5
  br label %725, !llvm.loop !55

739:                                              ; preds = %725
  %740 = load i64, ptr %25, align 8, !tbaa !14
  %741 = load i32, ptr %24, align 4, !tbaa !5
  %742 = sub nsw i32 32, %741
  %743 = zext i32 %742 to i64
  %744 = lshr i64 %740, %743
  %745 = trunc i64 %744 to i32
  store i32 %745, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 2), align 1, !tbaa !17
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %746 = getelementptr inbounds i8, ptr %22, i64 12
  store ptr %746, ptr %26, align 8, !tbaa !15
  %747 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %747, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %748

748:                                              ; preds = %759, %739
  %749 = load i32, ptr %23, align 4, !tbaa !5
  %750 = load i32, ptr %24, align 4, !tbaa !5
  %751 = add nsw i32 32, %750
  %752 = icmp slt i32 %749, %751
  br i1 %752, label %753, label %762

753:                                              ; preds = %748
  %754 = load ptr, ptr %26, align 8, !tbaa !15
  %755 = getelementptr inbounds i8, ptr %754, i32 1
  store ptr %755, ptr %26, align 8, !tbaa !15
  %756 = load i8, ptr %754, align 1, !tbaa !17
  %757 = load ptr, ptr %27, align 8, !tbaa !15
  %758 = getelementptr inbounds i8, ptr %757, i32 -1
  store ptr %758, ptr %27, align 8, !tbaa !15
  store i8 %756, ptr %757, align 1, !tbaa !17
  br label %759

759:                                              ; preds = %753
  %760 = load i32, ptr %23, align 4, !tbaa !5
  %761 = add nsw i32 %760, 8
  store i32 %761, ptr %23, align 4, !tbaa !5
  br label %748, !llvm.loop !56

762:                                              ; preds = %748
  %763 = load i64, ptr %25, align 8, !tbaa !14
  %764 = load i32, ptr %24, align 4, !tbaa !5
  %765 = sub nsw i32 32, %764
  %766 = zext i32 %765 to i64
  %767 = lshr i64 %763, %766
  %768 = trunc i64 %767 to i32
  store i32 %768, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 3), align 1, !tbaa !17
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %769 = getelementptr inbounds i8, ptr %22, i64 16
  store ptr %769, ptr %26, align 8, !tbaa !15
  %770 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %770, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %771

771:                                              ; preds = %782, %762
  %772 = load i32, ptr %23, align 4, !tbaa !5
  %773 = load i32, ptr %24, align 4, !tbaa !5
  %774 = add nsw i32 27, %773
  %775 = icmp slt i32 %772, %774
  br i1 %775, label %776, label %785

776:                                              ; preds = %771
  %777 = load ptr, ptr %26, align 8, !tbaa !15
  %778 = getelementptr inbounds i8, ptr %777, i32 1
  store ptr %778, ptr %26, align 8, !tbaa !15
  %779 = load i8, ptr %777, align 1, !tbaa !17
  %780 = load ptr, ptr %27, align 8, !tbaa !15
  %781 = getelementptr inbounds i8, ptr %780, i32 -1
  store ptr %781, ptr %27, align 8, !tbaa !15
  store i8 %779, ptr %780, align 1, !tbaa !17
  br label %782

782:                                              ; preds = %776
  %783 = load i32, ptr %23, align 4, !tbaa !5
  %784 = add nsw i32 %783, 8
  store i32 %784, ptr %23, align 4, !tbaa !5
  br label %771, !llvm.loop !57

785:                                              ; preds = %771
  %786 = load i64, ptr %25, align 8, !tbaa !14
  %787 = load i32, ptr %24, align 4, !tbaa !5
  %788 = sub nsw i32 37, %787
  %789 = zext i32 %788 to i64
  %790 = lshr i64 %786, %789
  %791 = trunc i64 %790 to i32
  %792 = zext i32 %791 to i40
  %793 = load i40, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  %794 = and i40 %792, 134217727
  %795 = and i40 %793, -134217728
  %796 = or i40 %795, %794
  store i40 %796, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  %797 = trunc i40 %794 to i32
  store i32 3, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %798 = getelementptr inbounds i8, ptr %22, i64 19
  store ptr %798, ptr %26, align 8, !tbaa !15
  %799 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %799, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %800

800:                                              ; preds = %811, %785
  %801 = load i32, ptr %23, align 4, !tbaa !5
  %802 = load i32, ptr %24, align 4, !tbaa !5
  %803 = add nsw i32 13, %802
  %804 = icmp slt i32 %801, %803
  br i1 %804, label %805, label %814

805:                                              ; preds = %800
  %806 = load ptr, ptr %26, align 8, !tbaa !15
  %807 = getelementptr inbounds i8, ptr %806, i32 1
  store ptr %807, ptr %26, align 8, !tbaa !15
  %808 = load i8, ptr %806, align 1, !tbaa !17
  %809 = load ptr, ptr %27, align 8, !tbaa !15
  %810 = getelementptr inbounds i8, ptr %809, i32 -1
  store ptr %810, ptr %27, align 8, !tbaa !15
  store i8 %808, ptr %809, align 1, !tbaa !17
  br label %811

811:                                              ; preds = %805
  %812 = load i32, ptr %23, align 4, !tbaa !5
  %813 = add nsw i32 %812, 8
  store i32 %813, ptr %23, align 4, !tbaa !5
  br label %800, !llvm.loop !58

814:                                              ; preds = %800
  %815 = load i64, ptr %25, align 8, !tbaa !14
  %816 = load i32, ptr %24, align 4, !tbaa !5
  %817 = sub nsw i32 51, %816
  %818 = zext i32 %817 to i64
  %819 = lshr i64 %815, %818
  %820 = trunc i64 %819 to i32
  %821 = zext i32 %820 to i40
  %822 = load i40, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  %823 = and i40 %821, 8191
  %824 = shl i40 %823, 27
  %825 = and i40 %822, 134217727
  %826 = or i40 %825, %824
  store i40 %826, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 4), align 1
  %827 = trunc i40 %823 to i32
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %828 = getelementptr inbounds i8, ptr %22, i64 21
  store ptr %828, ptr %26, align 8, !tbaa !15
  %829 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %829, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %830

830:                                              ; preds = %841, %814
  %831 = load i32, ptr %23, align 4, !tbaa !5
  %832 = load i32, ptr %24, align 4, !tbaa !5
  %833 = add nsw i32 32, %832
  %834 = icmp slt i32 %831, %833
  br i1 %834, label %835, label %844

835:                                              ; preds = %830
  %836 = load ptr, ptr %26, align 8, !tbaa !15
  %837 = getelementptr inbounds i8, ptr %836, i32 1
  store ptr %837, ptr %26, align 8, !tbaa !15
  %838 = load i8, ptr %836, align 1, !tbaa !17
  %839 = load ptr, ptr %27, align 8, !tbaa !15
  %840 = getelementptr inbounds i8, ptr %839, i32 -1
  store ptr %840, ptr %27, align 8, !tbaa !15
  store i8 %838, ptr %839, align 1, !tbaa !17
  br label %841

841:                                              ; preds = %835
  %842 = load i32, ptr %23, align 4, !tbaa !5
  %843 = add nsw i32 %842, 8
  store i32 %843, ptr %23, align 4, !tbaa !5
  br label %830, !llvm.loop !59

844:                                              ; preds = %830
  %845 = load i64, ptr %25, align 8, !tbaa !14
  %846 = load i32, ptr %24, align 4, !tbaa !5
  %847 = sub nsw i32 32, %846
  %848 = zext i32 %847 to i64
  %849 = lshr i64 %845, %848
  %850 = trunc i64 %849 to i32
  store i32 %850, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 5), align 1, !tbaa !17
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %851 = getelementptr inbounds i8, ptr %22, i64 25
  store ptr %851, ptr %26, align 8, !tbaa !15
  %852 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %852, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %853

853:                                              ; preds = %864, %844
  %854 = load i32, ptr %23, align 4, !tbaa !5
  %855 = load i32, ptr %24, align 4, !tbaa !5
  %856 = add nsw i32 16, %855
  %857 = icmp slt i32 %854, %856
  br i1 %857, label %858, label %867

858:                                              ; preds = %853
  %859 = load ptr, ptr %26, align 8, !tbaa !15
  %860 = getelementptr inbounds i8, ptr %859, i32 1
  store ptr %860, ptr %26, align 8, !tbaa !15
  %861 = load i8, ptr %859, align 1, !tbaa !17
  %862 = load ptr, ptr %27, align 8, !tbaa !15
  %863 = getelementptr inbounds i8, ptr %862, i32 -1
  store ptr %863, ptr %27, align 8, !tbaa !15
  store i8 %861, ptr %862, align 1, !tbaa !17
  br label %864

864:                                              ; preds = %858
  %865 = load i32, ptr %23, align 4, !tbaa !5
  %866 = add nsw i32 %865, 8
  store i32 %866, ptr %23, align 4, !tbaa !5
  br label %853, !llvm.loop !60

867:                                              ; preds = %853
  %868 = load i64, ptr %25, align 8, !tbaa !14
  %869 = load i32, ptr %24, align 4, !tbaa !5
  %870 = sub nsw i32 48, %869
  %871 = zext i32 %870 to i64
  %872 = lshr i64 %868, %871
  %873 = trunc i64 %872 to i32
  %874 = trunc i32 %873 to i16
  store i16 %874, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 6), align 1
  %875 = zext i16 %874 to i32
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %876 = getelementptr inbounds i8, ptr %22, i64 27
  store ptr %876, ptr %26, align 8, !tbaa !15
  %877 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %877, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %878

878:                                              ; preds = %889, %867
  %879 = load i32, ptr %23, align 4, !tbaa !5
  %880 = load i32, ptr %24, align 4, !tbaa !5
  %881 = add nsw i32 32, %880
  %882 = icmp slt i32 %879, %881
  br i1 %882, label %883, label %892

883:                                              ; preds = %878
  %884 = load ptr, ptr %26, align 8, !tbaa !15
  %885 = getelementptr inbounds i8, ptr %884, i32 1
  store ptr %885, ptr %26, align 8, !tbaa !15
  %886 = load i8, ptr %884, align 1, !tbaa !17
  %887 = load ptr, ptr %27, align 8, !tbaa !15
  %888 = getelementptr inbounds i8, ptr %887, i32 -1
  store ptr %888, ptr %27, align 8, !tbaa !15
  store i8 %886, ptr %887, align 1, !tbaa !17
  br label %889

889:                                              ; preds = %883
  %890 = load i32, ptr %23, align 4, !tbaa !5
  %891 = add nsw i32 %890, 8
  store i32 %891, ptr %23, align 4, !tbaa !5
  br label %878, !llvm.loop !61

892:                                              ; preds = %878
  %893 = load i64, ptr %25, align 8, !tbaa !14
  %894 = load i32, ptr %24, align 4, !tbaa !5
  %895 = sub nsw i32 32, %894
  %896 = zext i32 %895 to i64
  %897 = lshr i64 %893, %896
  %898 = trunc i64 %897 to i32
  store i32 %898, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_3, ptr @read_inode_3.header, i32 0, i32 7), align 1, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 31, ptr %22) #8
  br label %901

899:                                              ; preds = %584
  %900 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 @read_inode_3.header, ptr align 1 %900, i64 31, i1 false)
  br label %901

901:                                              ; preds = %899, %892
  %902 = load ptr, ptr %21, align 8, !tbaa !15
  %903 = getelementptr inbounds %struct.squashfs_ldir_inode_header_3, ptr %902, i32 0, i32 4
  %904 = load i40, ptr %903, align 1
  %905 = and i40 %904, 134217727
  %906 = trunc i40 %905 to i32
  %907 = zext i32 %906 to i64
  store i64 %907, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  %908 = load ptr, ptr %21, align 8, !tbaa !15
  %909 = getelementptr inbounds %struct.squashfs_ldir_inode_header_3, ptr %908, i32 0, i32 4
  %910 = load i40, ptr %909, align 1
  %911 = lshr i40 %910, 27
  %912 = trunc i40 %911 to i32
  store i32 %912, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 8), align 4, !tbaa !46
  %913 = load ptr, ptr %21, align 8, !tbaa !15
  %914 = getelementptr inbounds %struct.squashfs_ldir_inode_header_3, ptr %913, i32 0, i32 5
  %915 = load i32, ptr %914, align 1, !tbaa !62
  %916 = zext i32 %915 to i64
  store i64 %916, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 9), align 8, !tbaa !49
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %2097

917:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  store ptr @read_inode_3.header, ptr %28, align 8, !tbaa !15
  %918 = load i32, ptr @swap, align 4, !tbaa !5
  %919 = icmp ne i32 %918, 0
  br i1 %919, label %920, label %1187

920:                                              ; preds = %917
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  %921 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %29, ptr align 1 %921, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %922 = load ptr, ptr %28, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %922, i8 0, i64 32, i1 false)
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %923 = getelementptr inbounds i8, ptr %29, i64 0
  store ptr %923, ptr %33, align 8, !tbaa !15
  %924 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %924, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %925

925:                                              ; preds = %936, %920
  %926 = load i32, ptr %30, align 4, !tbaa !5
  %927 = load i32, ptr %31, align 4, !tbaa !5
  %928 = add nsw i32 4, %927
  %929 = icmp slt i32 %926, %928
  br i1 %929, label %930, label %939

930:                                              ; preds = %925
  %931 = load ptr, ptr %33, align 8, !tbaa !15
  %932 = getelementptr inbounds i8, ptr %931, i32 1
  store ptr %932, ptr %33, align 8, !tbaa !15
  %933 = load i8, ptr %931, align 1, !tbaa !17
  %934 = load ptr, ptr %34, align 8, !tbaa !15
  %935 = getelementptr inbounds i8, ptr %934, i32 -1
  store ptr %935, ptr %34, align 8, !tbaa !15
  store i8 %933, ptr %934, align 1, !tbaa !17
  br label %936

936:                                              ; preds = %930
  %937 = load i32, ptr %30, align 4, !tbaa !5
  %938 = add nsw i32 %937, 8
  store i32 %938, ptr %30, align 4, !tbaa !5
  br label %925, !llvm.loop !64

939:                                              ; preds = %925
  %940 = load i64, ptr %32, align 8, !tbaa !14
  %941 = load i32, ptr %31, align 4, !tbaa !5
  %942 = sub nsw i32 60, %941
  %943 = zext i32 %942 to i64
  %944 = lshr i64 %940, %943
  %945 = trunc i64 %944 to i32
  %946 = load ptr, ptr %28, align 8, !tbaa !15
  %947 = load i32, ptr %946, align 1
  %948 = and i32 %945, 15
  %949 = and i32 %947, -16
  %950 = or i32 %949, %948
  store i32 %950, ptr %946, align 1
  store i32 4, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %951 = getelementptr inbounds i8, ptr %29, i64 0
  store ptr %951, ptr %33, align 8, !tbaa !15
  %952 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %952, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %953

953:                                              ; preds = %964, %939
  %954 = load i32, ptr %30, align 4, !tbaa !5
  %955 = load i32, ptr %31, align 4, !tbaa !5
  %956 = add nsw i32 12, %955
  %957 = icmp slt i32 %954, %956
  br i1 %957, label %958, label %967

958:                                              ; preds = %953
  %959 = load ptr, ptr %33, align 8, !tbaa !15
  %960 = getelementptr inbounds i8, ptr %959, i32 1
  store ptr %960, ptr %33, align 8, !tbaa !15
  %961 = load i8, ptr %959, align 1, !tbaa !17
  %962 = load ptr, ptr %34, align 8, !tbaa !15
  %963 = getelementptr inbounds i8, ptr %962, i32 -1
  store ptr %963, ptr %34, align 8, !tbaa !15
  store i8 %961, ptr %962, align 1, !tbaa !17
  br label %964

964:                                              ; preds = %958
  %965 = load i32, ptr %30, align 4, !tbaa !5
  %966 = add nsw i32 %965, 8
  store i32 %966, ptr %30, align 4, !tbaa !5
  br label %953, !llvm.loop !65

967:                                              ; preds = %953
  %968 = load i64, ptr %32, align 8, !tbaa !14
  %969 = load i32, ptr %31, align 4, !tbaa !5
  %970 = sub nsw i32 52, %969
  %971 = zext i32 %970 to i64
  %972 = lshr i64 %968, %971
  %973 = trunc i64 %972 to i32
  %974 = load ptr, ptr %28, align 8, !tbaa !15
  %975 = load i32, ptr %974, align 1
  %976 = and i32 %973, 4095
  %977 = shl i32 %976, 4
  %978 = and i32 %975, -65521
  %979 = or i32 %978, %977
  store i32 %979, ptr %974, align 1
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %980 = getelementptr inbounds i8, ptr %29, i64 2
  store ptr %980, ptr %33, align 8, !tbaa !15
  %981 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %981, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %982

982:                                              ; preds = %993, %967
  %983 = load i32, ptr %30, align 4, !tbaa !5
  %984 = load i32, ptr %31, align 4, !tbaa !5
  %985 = add nsw i32 8, %984
  %986 = icmp slt i32 %983, %985
  br i1 %986, label %987, label %996

987:                                              ; preds = %982
  %988 = load ptr, ptr %33, align 8, !tbaa !15
  %989 = getelementptr inbounds i8, ptr %988, i32 1
  store ptr %989, ptr %33, align 8, !tbaa !15
  %990 = load i8, ptr %988, align 1, !tbaa !17
  %991 = load ptr, ptr %34, align 8, !tbaa !15
  %992 = getelementptr inbounds i8, ptr %991, i32 -1
  store ptr %992, ptr %34, align 8, !tbaa !15
  store i8 %990, ptr %991, align 1, !tbaa !17
  br label %993

993:                                              ; preds = %987
  %994 = load i32, ptr %30, align 4, !tbaa !5
  %995 = add nsw i32 %994, 8
  store i32 %995, ptr %30, align 4, !tbaa !5
  br label %982, !llvm.loop !66

996:                                              ; preds = %982
  %997 = load i64, ptr %32, align 8, !tbaa !14
  %998 = load i32, ptr %31, align 4, !tbaa !5
  %999 = sub nsw i32 56, %998
  %1000 = zext i32 %999 to i64
  %1001 = lshr i64 %997, %1000
  %1002 = trunc i64 %1001 to i32
  %1003 = load ptr, ptr %28, align 8, !tbaa !15
  %1004 = load i32, ptr %1003, align 1
  %1005 = and i32 %1002, 255
  %1006 = shl i32 %1005, 16
  %1007 = and i32 %1004, -16711681
  %1008 = or i32 %1007, %1006
  store i32 %1008, ptr %1003, align 1
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %1009 = getelementptr inbounds i8, ptr %29, i64 3
  store ptr %1009, ptr %33, align 8, !tbaa !15
  %1010 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %1010, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %1011

1011:                                             ; preds = %1022, %996
  %1012 = load i32, ptr %30, align 4, !tbaa !5
  %1013 = load i32, ptr %31, align 4, !tbaa !5
  %1014 = add nsw i32 8, %1013
  %1015 = icmp slt i32 %1012, %1014
  br i1 %1015, label %1016, label %1025

1016:                                             ; preds = %1011
  %1017 = load ptr, ptr %33, align 8, !tbaa !15
  %1018 = getelementptr inbounds i8, ptr %1017, i32 1
  store ptr %1018, ptr %33, align 8, !tbaa !15
  %1019 = load i8, ptr %1017, align 1, !tbaa !17
  %1020 = load ptr, ptr %34, align 8, !tbaa !15
  %1021 = getelementptr inbounds i8, ptr %1020, i32 -1
  store ptr %1021, ptr %34, align 8, !tbaa !15
  store i8 %1019, ptr %1020, align 1, !tbaa !17
  br label %1022

1022:                                             ; preds = %1016
  %1023 = load i32, ptr %30, align 4, !tbaa !5
  %1024 = add nsw i32 %1023, 8
  store i32 %1024, ptr %30, align 4, !tbaa !5
  br label %1011, !llvm.loop !67

1025:                                             ; preds = %1011
  %1026 = load i64, ptr %32, align 8, !tbaa !14
  %1027 = load i32, ptr %31, align 4, !tbaa !5
  %1028 = sub nsw i32 56, %1027
  %1029 = zext i32 %1028 to i64
  %1030 = lshr i64 %1026, %1029
  %1031 = trunc i64 %1030 to i32
  %1032 = load ptr, ptr %28, align 8, !tbaa !15
  %1033 = load i32, ptr %1032, align 1
  %1034 = and i32 %1031, 255
  %1035 = shl i32 %1034, 24
  %1036 = and i32 %1033, 16777215
  %1037 = or i32 %1036, %1035
  store i32 %1037, ptr %1032, align 1
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %1038 = getelementptr inbounds i8, ptr %29, i64 4
  store ptr %1038, ptr %33, align 8, !tbaa !15
  %1039 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %1039, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %1040

1040:                                             ; preds = %1051, %1025
  %1041 = load i32, ptr %30, align 4, !tbaa !5
  %1042 = load i32, ptr %31, align 4, !tbaa !5
  %1043 = add nsw i32 32, %1042
  %1044 = icmp slt i32 %1041, %1043
  br i1 %1044, label %1045, label %1054

1045:                                             ; preds = %1040
  %1046 = load ptr, ptr %33, align 8, !tbaa !15
  %1047 = getelementptr inbounds i8, ptr %1046, i32 1
  store ptr %1047, ptr %33, align 8, !tbaa !15
  %1048 = load i8, ptr %1046, align 1, !tbaa !17
  %1049 = load ptr, ptr %34, align 8, !tbaa !15
  %1050 = getelementptr inbounds i8, ptr %1049, i32 -1
  store ptr %1050, ptr %34, align 8, !tbaa !15
  store i8 %1048, ptr %1049, align 1, !tbaa !17
  br label %1051

1051:                                             ; preds = %1045
  %1052 = load i32, ptr %30, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 8
  store i32 %1053, ptr %30, align 4, !tbaa !5
  br label %1040, !llvm.loop !68

1054:                                             ; preds = %1040
  %1055 = load i64, ptr %32, align 8, !tbaa !14
  %1056 = load i32, ptr %31, align 4, !tbaa !5
  %1057 = sub nsw i32 32, %1056
  %1058 = zext i32 %1057 to i64
  %1059 = lshr i64 %1055, %1058
  %1060 = trunc i64 %1059 to i32
  %1061 = load ptr, ptr %28, align 8, !tbaa !15
  %1062 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1061, i32 0, i32 1
  store i32 %1060, ptr %1062, align 1, !tbaa !69
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %1063 = getelementptr inbounds i8, ptr %29, i64 8
  store ptr %1063, ptr %33, align 8, !tbaa !15
  %1064 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %1064, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %1065

1065:                                             ; preds = %1076, %1054
  %1066 = load i32, ptr %30, align 4, !tbaa !5
  %1067 = load i32, ptr %31, align 4, !tbaa !5
  %1068 = add nsw i32 32, %1067
  %1069 = icmp slt i32 %1066, %1068
  br i1 %1069, label %1070, label %1079

1070:                                             ; preds = %1065
  %1071 = load ptr, ptr %33, align 8, !tbaa !15
  %1072 = getelementptr inbounds i8, ptr %1071, i32 1
  store ptr %1072, ptr %33, align 8, !tbaa !15
  %1073 = load i8, ptr %1071, align 1, !tbaa !17
  %1074 = load ptr, ptr %34, align 8, !tbaa !15
  %1075 = getelementptr inbounds i8, ptr %1074, i32 -1
  store ptr %1075, ptr %34, align 8, !tbaa !15
  store i8 %1073, ptr %1074, align 1, !tbaa !17
  br label %1076

1076:                                             ; preds = %1070
  %1077 = load i32, ptr %30, align 4, !tbaa !5
  %1078 = add nsw i32 %1077, 8
  store i32 %1078, ptr %30, align 4, !tbaa !5
  br label %1065, !llvm.loop !71

1079:                                             ; preds = %1065
  %1080 = load i64, ptr %32, align 8, !tbaa !14
  %1081 = load i32, ptr %31, align 4, !tbaa !5
  %1082 = sub nsw i32 32, %1081
  %1083 = zext i32 %1082 to i64
  %1084 = lshr i64 %1080, %1083
  %1085 = trunc i64 %1084 to i32
  %1086 = load ptr, ptr %28, align 8, !tbaa !15
  %1087 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1086, i32 0, i32 2
  store i32 %1085, ptr %1087, align 1, !tbaa !72
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %1088 = getelementptr inbounds i8, ptr %29, i64 12
  store ptr %1088, ptr %33, align 8, !tbaa !15
  %1089 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %1089, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %1090

1090:                                             ; preds = %1101, %1079
  %1091 = load i32, ptr %30, align 4, !tbaa !5
  %1092 = load i32, ptr %31, align 4, !tbaa !5
  %1093 = add nsw i32 64, %1092
  %1094 = icmp slt i32 %1091, %1093
  br i1 %1094, label %1095, label %1104

1095:                                             ; preds = %1090
  %1096 = load ptr, ptr %33, align 8, !tbaa !15
  %1097 = getelementptr inbounds i8, ptr %1096, i32 1
  store ptr %1097, ptr %33, align 8, !tbaa !15
  %1098 = load i8, ptr %1096, align 1, !tbaa !17
  %1099 = load ptr, ptr %34, align 8, !tbaa !15
  %1100 = getelementptr inbounds i8, ptr %1099, i32 -1
  store ptr %1100, ptr %34, align 8, !tbaa !15
  store i8 %1098, ptr %1099, align 1, !tbaa !17
  br label %1101

1101:                                             ; preds = %1095
  %1102 = load i32, ptr %30, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 8
  store i32 %1103, ptr %30, align 4, !tbaa !5
  br label %1090, !llvm.loop !73

1104:                                             ; preds = %1090
  %1105 = load i64, ptr %32, align 8, !tbaa !14
  %1106 = load i32, ptr %31, align 4, !tbaa !5
  %1107 = sub nsw i32 0, %1106
  %1108 = zext i32 %1107 to i64
  %1109 = lshr i64 %1105, %1108
  %1110 = load ptr, ptr %28, align 8, !tbaa !15
  %1111 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1110, i32 0, i32 3
  store i64 %1109, ptr %1111, align 1, !tbaa !74
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %1112 = getelementptr inbounds i8, ptr %29, i64 20
  store ptr %1112, ptr %33, align 8, !tbaa !15
  %1113 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %1113, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %1114

1114:                                             ; preds = %1125, %1104
  %1115 = load i32, ptr %30, align 4, !tbaa !5
  %1116 = load i32, ptr %31, align 4, !tbaa !5
  %1117 = add nsw i32 32, %1116
  %1118 = icmp slt i32 %1115, %1117
  br i1 %1118, label %1119, label %1128

1119:                                             ; preds = %1114
  %1120 = load ptr, ptr %33, align 8, !tbaa !15
  %1121 = getelementptr inbounds i8, ptr %1120, i32 1
  store ptr %1121, ptr %33, align 8, !tbaa !15
  %1122 = load i8, ptr %1120, align 1, !tbaa !17
  %1123 = load ptr, ptr %34, align 8, !tbaa !15
  %1124 = getelementptr inbounds i8, ptr %1123, i32 -1
  store ptr %1124, ptr %34, align 8, !tbaa !15
  store i8 %1122, ptr %1123, align 1, !tbaa !17
  br label %1125

1125:                                             ; preds = %1119
  %1126 = load i32, ptr %30, align 4, !tbaa !5
  %1127 = add nsw i32 %1126, 8
  store i32 %1127, ptr %30, align 4, !tbaa !5
  br label %1114, !llvm.loop !75

1128:                                             ; preds = %1114
  %1129 = load i64, ptr %32, align 8, !tbaa !14
  %1130 = load i32, ptr %31, align 4, !tbaa !5
  %1131 = sub nsw i32 32, %1130
  %1132 = zext i32 %1131 to i64
  %1133 = lshr i64 %1129, %1132
  %1134 = trunc i64 %1133 to i32
  %1135 = load ptr, ptr %28, align 8, !tbaa !15
  %1136 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1135, i32 0, i32 4
  store i32 %1134, ptr %1136, align 1, !tbaa !76
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %1137 = getelementptr inbounds i8, ptr %29, i64 24
  store ptr %1137, ptr %33, align 8, !tbaa !15
  %1138 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %1138, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %1139

1139:                                             ; preds = %1150, %1128
  %1140 = load i32, ptr %30, align 4, !tbaa !5
  %1141 = load i32, ptr %31, align 4, !tbaa !5
  %1142 = add nsw i32 32, %1141
  %1143 = icmp slt i32 %1140, %1142
  br i1 %1143, label %1144, label %1153

1144:                                             ; preds = %1139
  %1145 = load ptr, ptr %33, align 8, !tbaa !15
  %1146 = getelementptr inbounds i8, ptr %1145, i32 1
  store ptr %1146, ptr %33, align 8, !tbaa !15
  %1147 = load i8, ptr %1145, align 1, !tbaa !17
  %1148 = load ptr, ptr %34, align 8, !tbaa !15
  %1149 = getelementptr inbounds i8, ptr %1148, i32 -1
  store ptr %1149, ptr %34, align 8, !tbaa !15
  store i8 %1147, ptr %1148, align 1, !tbaa !17
  br label %1150

1150:                                             ; preds = %1144
  %1151 = load i32, ptr %30, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 8
  store i32 %1152, ptr %30, align 4, !tbaa !5
  br label %1139, !llvm.loop !77

1153:                                             ; preds = %1139
  %1154 = load i64, ptr %32, align 8, !tbaa !14
  %1155 = load i32, ptr %31, align 4, !tbaa !5
  %1156 = sub nsw i32 32, %1155
  %1157 = zext i32 %1156 to i64
  %1158 = lshr i64 %1154, %1157
  %1159 = trunc i64 %1158 to i32
  %1160 = load ptr, ptr %28, align 8, !tbaa !15
  %1161 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1160, i32 0, i32 5
  store i32 %1159, ptr %1161, align 1, !tbaa !78
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %1162 = getelementptr inbounds i8, ptr %29, i64 28
  store ptr %1162, ptr %33, align 8, !tbaa !15
  %1163 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %1163, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %1164

1164:                                             ; preds = %1175, %1153
  %1165 = load i32, ptr %30, align 4, !tbaa !5
  %1166 = load i32, ptr %31, align 4, !tbaa !5
  %1167 = add nsw i32 32, %1166
  %1168 = icmp slt i32 %1165, %1167
  br i1 %1168, label %1169, label %1178

1169:                                             ; preds = %1164
  %1170 = load ptr, ptr %33, align 8, !tbaa !15
  %1171 = getelementptr inbounds i8, ptr %1170, i32 1
  store ptr %1171, ptr %33, align 8, !tbaa !15
  %1172 = load i8, ptr %1170, align 1, !tbaa !17
  %1173 = load ptr, ptr %34, align 8, !tbaa !15
  %1174 = getelementptr inbounds i8, ptr %1173, i32 -1
  store ptr %1174, ptr %34, align 8, !tbaa !15
  store i8 %1172, ptr %1173, align 1, !tbaa !17
  br label %1175

1175:                                             ; preds = %1169
  %1176 = load i32, ptr %30, align 4, !tbaa !5
  %1177 = add nsw i32 %1176, 8
  store i32 %1177, ptr %30, align 4, !tbaa !5
  br label %1164, !llvm.loop !79

1178:                                             ; preds = %1164
  %1179 = load i64, ptr %32, align 8, !tbaa !14
  %1180 = load i32, ptr %31, align 4, !tbaa !5
  %1181 = sub nsw i32 32, %1180
  %1182 = zext i32 %1181 to i64
  %1183 = lshr i64 %1179, %1182
  %1184 = trunc i64 %1183 to i32
  %1185 = load ptr, ptr %28, align 8, !tbaa !15
  %1186 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1185, i32 0, i32 6
  store i32 %1184, ptr %1186, align 1, !tbaa !80
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br label %1190

1187:                                             ; preds = %917
  %1188 = load ptr, ptr %28, align 8, !tbaa !15
  %1189 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1188, ptr align 1 %1189, i64 32, i1 false)
  br label %1190

1190:                                             ; preds = %1187, %1178
  %1191 = load ptr, ptr %28, align 8, !tbaa !15
  %1192 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1191, i32 0, i32 6
  %1193 = load i32, ptr %1192, align 1, !tbaa !80
  %1194 = zext i32 %1193 to i64
  store i64 %1194, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  %1195 = load ptr, ptr %28, align 8, !tbaa !15
  %1196 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1195, i32 0, i32 4
  %1197 = load i32, ptr %1196, align 1, !tbaa !76
  %1198 = icmp eq i32 %1197, -1
  br i1 %1198, label %1199, label %1200

1199:                                             ; preds = %1190
  br label %1206

1200:                                             ; preds = %1190
  %1201 = load ptr, ptr %28, align 8, !tbaa !15
  %1202 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1201, i32 0, i32 6
  %1203 = load i32, ptr %1202, align 1, !tbaa !80
  %1204 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !81
  %1205 = urem i32 %1203, %1204
  br label %1206

1206:                                             ; preds = %1200, %1199
  %1207 = phi i32 [ 0, %1199 ], [ %1205, %1200 ]
  store i32 %1207, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 4), align 4, !tbaa !82
  %1208 = load ptr, ptr %28, align 8, !tbaa !15
  %1209 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1208, i32 0, i32 4
  %1210 = load i32, ptr %1209, align 1, !tbaa !76
  store i32 %1210, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 3), align 8, !tbaa !83
  %1211 = load ptr, ptr %28, align 8, !tbaa !15
  %1212 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1211, i32 0, i32 5
  %1213 = load i32, ptr %1212, align 1, !tbaa !78
  store i32 %1213, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 8), align 4, !tbaa !46
  %1214 = load ptr, ptr %28, align 8, !tbaa !15
  %1215 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1214, i32 0, i32 4
  %1216 = load i32, ptr %1215, align 1, !tbaa !76
  %1217 = icmp eq i32 %1216, -1
  br i1 %1217, label %1218, label %1228

1218:                                             ; preds = %1206
  %1219 = load i64, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  %1220 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !81
  %1221 = zext i32 %1220 to i64
  %1222 = add nsw i64 %1219, %1221
  %1223 = sub nsw i64 %1222, 1
  %1224 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !84
  %1225 = zext i16 %1224 to i32
  %1226 = zext i32 %1225 to i64
  %1227 = ashr i64 %1223, %1226
  br label %1234

1228:                                             ; preds = %1206
  %1229 = load i64, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  %1230 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !84
  %1231 = zext i16 %1230 to i32
  %1232 = zext i32 %1231 to i64
  %1233 = ashr i64 %1229, %1232
  br label %1234

1234:                                             ; preds = %1228, %1218
  %1235 = phi i64 [ %1227, %1218 ], [ %1233, %1228 ]
  %1236 = trunc i64 %1235 to i32
  store i32 %1236, ptr @read_inode_3.i, align 8, !tbaa !85
  %1237 = load ptr, ptr %28, align 8, !tbaa !15
  %1238 = getelementptr inbounds %struct.squashfs_reg_inode_header_3, ptr %1237, i32 0, i32 3
  %1239 = load i64, ptr %1238, align 1, !tbaa !74
  store i64 %1239, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 9), align 8, !tbaa !49
  store i8 1, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 14), align 8, !tbaa !86
  %1240 = load ptr, ptr %7, align 8, !tbaa !15
  %1241 = getelementptr inbounds i8, ptr %1240, i64 32
  store ptr %1241, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 1), align 8, !tbaa !87
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %2097

1242:                                             ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store ptr @read_inode_3.header, ptr %35, align 8, !tbaa !15
  %1243 = load i32, ptr @swap, align 4, !tbaa !5
  %1244 = icmp ne i32 %1243, 0
  br i1 %1244, label %1245, label %1536

1245:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 40, ptr %36) #8
  %1246 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %36, ptr align 1 %1246, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %1247 = load ptr, ptr %35, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %1247, i8 0, i64 40, i1 false)
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1248 = getelementptr inbounds i8, ptr %36, i64 0
  store ptr %1248, ptr %40, align 8, !tbaa !15
  %1249 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1249, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1250

1250:                                             ; preds = %1261, %1245
  %1251 = load i32, ptr %37, align 4, !tbaa !5
  %1252 = load i32, ptr %38, align 4, !tbaa !5
  %1253 = add nsw i32 4, %1252
  %1254 = icmp slt i32 %1251, %1253
  br i1 %1254, label %1255, label %1264

1255:                                             ; preds = %1250
  %1256 = load ptr, ptr %40, align 8, !tbaa !15
  %1257 = getelementptr inbounds i8, ptr %1256, i32 1
  store ptr %1257, ptr %40, align 8, !tbaa !15
  %1258 = load i8, ptr %1256, align 1, !tbaa !17
  %1259 = load ptr, ptr %41, align 8, !tbaa !15
  %1260 = getelementptr inbounds i8, ptr %1259, i32 -1
  store ptr %1260, ptr %41, align 8, !tbaa !15
  store i8 %1258, ptr %1259, align 1, !tbaa !17
  br label %1261

1261:                                             ; preds = %1255
  %1262 = load i32, ptr %37, align 4, !tbaa !5
  %1263 = add nsw i32 %1262, 8
  store i32 %1263, ptr %37, align 4, !tbaa !5
  br label %1250, !llvm.loop !88

1264:                                             ; preds = %1250
  %1265 = load i64, ptr %39, align 8, !tbaa !14
  %1266 = load i32, ptr %38, align 4, !tbaa !5
  %1267 = sub nsw i32 60, %1266
  %1268 = zext i32 %1267 to i64
  %1269 = lshr i64 %1265, %1268
  %1270 = trunc i64 %1269 to i32
  %1271 = load ptr, ptr %35, align 8, !tbaa !15
  %1272 = load i32, ptr %1271, align 1
  %1273 = and i32 %1270, 15
  %1274 = and i32 %1272, -16
  %1275 = or i32 %1274, %1273
  store i32 %1275, ptr %1271, align 1
  store i32 4, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1276 = getelementptr inbounds i8, ptr %36, i64 0
  store ptr %1276, ptr %40, align 8, !tbaa !15
  %1277 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1277, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1278

1278:                                             ; preds = %1289, %1264
  %1279 = load i32, ptr %37, align 4, !tbaa !5
  %1280 = load i32, ptr %38, align 4, !tbaa !5
  %1281 = add nsw i32 12, %1280
  %1282 = icmp slt i32 %1279, %1281
  br i1 %1282, label %1283, label %1292

1283:                                             ; preds = %1278
  %1284 = load ptr, ptr %40, align 8, !tbaa !15
  %1285 = getelementptr inbounds i8, ptr %1284, i32 1
  store ptr %1285, ptr %40, align 8, !tbaa !15
  %1286 = load i8, ptr %1284, align 1, !tbaa !17
  %1287 = load ptr, ptr %41, align 8, !tbaa !15
  %1288 = getelementptr inbounds i8, ptr %1287, i32 -1
  store ptr %1288, ptr %41, align 8, !tbaa !15
  store i8 %1286, ptr %1287, align 1, !tbaa !17
  br label %1289

1289:                                             ; preds = %1283
  %1290 = load i32, ptr %37, align 4, !tbaa !5
  %1291 = add nsw i32 %1290, 8
  store i32 %1291, ptr %37, align 4, !tbaa !5
  br label %1278, !llvm.loop !89

1292:                                             ; preds = %1278
  %1293 = load i64, ptr %39, align 8, !tbaa !14
  %1294 = load i32, ptr %38, align 4, !tbaa !5
  %1295 = sub nsw i32 52, %1294
  %1296 = zext i32 %1295 to i64
  %1297 = lshr i64 %1293, %1296
  %1298 = trunc i64 %1297 to i32
  %1299 = load ptr, ptr %35, align 8, !tbaa !15
  %1300 = load i32, ptr %1299, align 1
  %1301 = and i32 %1298, 4095
  %1302 = shl i32 %1301, 4
  %1303 = and i32 %1300, -65521
  %1304 = or i32 %1303, %1302
  store i32 %1304, ptr %1299, align 1
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1305 = getelementptr inbounds i8, ptr %36, i64 2
  store ptr %1305, ptr %40, align 8, !tbaa !15
  %1306 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1306, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1307

1307:                                             ; preds = %1318, %1292
  %1308 = load i32, ptr %37, align 4, !tbaa !5
  %1309 = load i32, ptr %38, align 4, !tbaa !5
  %1310 = add nsw i32 8, %1309
  %1311 = icmp slt i32 %1308, %1310
  br i1 %1311, label %1312, label %1321

1312:                                             ; preds = %1307
  %1313 = load ptr, ptr %40, align 8, !tbaa !15
  %1314 = getelementptr inbounds i8, ptr %1313, i32 1
  store ptr %1314, ptr %40, align 8, !tbaa !15
  %1315 = load i8, ptr %1313, align 1, !tbaa !17
  %1316 = load ptr, ptr %41, align 8, !tbaa !15
  %1317 = getelementptr inbounds i8, ptr %1316, i32 -1
  store ptr %1317, ptr %41, align 8, !tbaa !15
  store i8 %1315, ptr %1316, align 1, !tbaa !17
  br label %1318

1318:                                             ; preds = %1312
  %1319 = load i32, ptr %37, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 8
  store i32 %1320, ptr %37, align 4, !tbaa !5
  br label %1307, !llvm.loop !90

1321:                                             ; preds = %1307
  %1322 = load i64, ptr %39, align 8, !tbaa !14
  %1323 = load i32, ptr %38, align 4, !tbaa !5
  %1324 = sub nsw i32 56, %1323
  %1325 = zext i32 %1324 to i64
  %1326 = lshr i64 %1322, %1325
  %1327 = trunc i64 %1326 to i32
  %1328 = load ptr, ptr %35, align 8, !tbaa !15
  %1329 = load i32, ptr %1328, align 1
  %1330 = and i32 %1327, 255
  %1331 = shl i32 %1330, 16
  %1332 = and i32 %1329, -16711681
  %1333 = or i32 %1332, %1331
  store i32 %1333, ptr %1328, align 1
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1334 = getelementptr inbounds i8, ptr %36, i64 3
  store ptr %1334, ptr %40, align 8, !tbaa !15
  %1335 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1335, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1336

1336:                                             ; preds = %1347, %1321
  %1337 = load i32, ptr %37, align 4, !tbaa !5
  %1338 = load i32, ptr %38, align 4, !tbaa !5
  %1339 = add nsw i32 8, %1338
  %1340 = icmp slt i32 %1337, %1339
  br i1 %1340, label %1341, label %1350

1341:                                             ; preds = %1336
  %1342 = load ptr, ptr %40, align 8, !tbaa !15
  %1343 = getelementptr inbounds i8, ptr %1342, i32 1
  store ptr %1343, ptr %40, align 8, !tbaa !15
  %1344 = load i8, ptr %1342, align 1, !tbaa !17
  %1345 = load ptr, ptr %41, align 8, !tbaa !15
  %1346 = getelementptr inbounds i8, ptr %1345, i32 -1
  store ptr %1346, ptr %41, align 8, !tbaa !15
  store i8 %1344, ptr %1345, align 1, !tbaa !17
  br label %1347

1347:                                             ; preds = %1341
  %1348 = load i32, ptr %37, align 4, !tbaa !5
  %1349 = add nsw i32 %1348, 8
  store i32 %1349, ptr %37, align 4, !tbaa !5
  br label %1336, !llvm.loop !91

1350:                                             ; preds = %1336
  %1351 = load i64, ptr %39, align 8, !tbaa !14
  %1352 = load i32, ptr %38, align 4, !tbaa !5
  %1353 = sub nsw i32 56, %1352
  %1354 = zext i32 %1353 to i64
  %1355 = lshr i64 %1351, %1354
  %1356 = trunc i64 %1355 to i32
  %1357 = load ptr, ptr %35, align 8, !tbaa !15
  %1358 = load i32, ptr %1357, align 1
  %1359 = and i32 %1356, 255
  %1360 = shl i32 %1359, 24
  %1361 = and i32 %1358, 16777215
  %1362 = or i32 %1361, %1360
  store i32 %1362, ptr %1357, align 1
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1363 = getelementptr inbounds i8, ptr %36, i64 4
  store ptr %1363, ptr %40, align 8, !tbaa !15
  %1364 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1364, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1365

1365:                                             ; preds = %1376, %1350
  %1366 = load i32, ptr %37, align 4, !tbaa !5
  %1367 = load i32, ptr %38, align 4, !tbaa !5
  %1368 = add nsw i32 32, %1367
  %1369 = icmp slt i32 %1366, %1368
  br i1 %1369, label %1370, label %1379

1370:                                             ; preds = %1365
  %1371 = load ptr, ptr %40, align 8, !tbaa !15
  %1372 = getelementptr inbounds i8, ptr %1371, i32 1
  store ptr %1372, ptr %40, align 8, !tbaa !15
  %1373 = load i8, ptr %1371, align 1, !tbaa !17
  %1374 = load ptr, ptr %41, align 8, !tbaa !15
  %1375 = getelementptr inbounds i8, ptr %1374, i32 -1
  store ptr %1375, ptr %41, align 8, !tbaa !15
  store i8 %1373, ptr %1374, align 1, !tbaa !17
  br label %1376

1376:                                             ; preds = %1370
  %1377 = load i32, ptr %37, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 8
  store i32 %1378, ptr %37, align 4, !tbaa !5
  br label %1365, !llvm.loop !92

1379:                                             ; preds = %1365
  %1380 = load i64, ptr %39, align 8, !tbaa !14
  %1381 = load i32, ptr %38, align 4, !tbaa !5
  %1382 = sub nsw i32 32, %1381
  %1383 = zext i32 %1382 to i64
  %1384 = lshr i64 %1380, %1383
  %1385 = trunc i64 %1384 to i32
  %1386 = load ptr, ptr %35, align 8, !tbaa !15
  %1387 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1386, i32 0, i32 1
  store i32 %1385, ptr %1387, align 1, !tbaa !93
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1388 = getelementptr inbounds i8, ptr %36, i64 8
  store ptr %1388, ptr %40, align 8, !tbaa !15
  %1389 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1389, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1390

1390:                                             ; preds = %1401, %1379
  %1391 = load i32, ptr %37, align 4, !tbaa !5
  %1392 = load i32, ptr %38, align 4, !tbaa !5
  %1393 = add nsw i32 32, %1392
  %1394 = icmp slt i32 %1391, %1393
  br i1 %1394, label %1395, label %1404

1395:                                             ; preds = %1390
  %1396 = load ptr, ptr %40, align 8, !tbaa !15
  %1397 = getelementptr inbounds i8, ptr %1396, i32 1
  store ptr %1397, ptr %40, align 8, !tbaa !15
  %1398 = load i8, ptr %1396, align 1, !tbaa !17
  %1399 = load ptr, ptr %41, align 8, !tbaa !15
  %1400 = getelementptr inbounds i8, ptr %1399, i32 -1
  store ptr %1400, ptr %41, align 8, !tbaa !15
  store i8 %1398, ptr %1399, align 1, !tbaa !17
  br label %1401

1401:                                             ; preds = %1395
  %1402 = load i32, ptr %37, align 4, !tbaa !5
  %1403 = add nsw i32 %1402, 8
  store i32 %1403, ptr %37, align 4, !tbaa !5
  br label %1390, !llvm.loop !95

1404:                                             ; preds = %1390
  %1405 = load i64, ptr %39, align 8, !tbaa !14
  %1406 = load i32, ptr %38, align 4, !tbaa !5
  %1407 = sub nsw i32 32, %1406
  %1408 = zext i32 %1407 to i64
  %1409 = lshr i64 %1405, %1408
  %1410 = trunc i64 %1409 to i32
  %1411 = load ptr, ptr %35, align 8, !tbaa !15
  %1412 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1411, i32 0, i32 2
  store i32 %1410, ptr %1412, align 1, !tbaa !96
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1413 = getelementptr inbounds i8, ptr %36, i64 12
  store ptr %1413, ptr %40, align 8, !tbaa !15
  %1414 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1414, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1415

1415:                                             ; preds = %1426, %1404
  %1416 = load i32, ptr %37, align 4, !tbaa !5
  %1417 = load i32, ptr %38, align 4, !tbaa !5
  %1418 = add nsw i32 32, %1417
  %1419 = icmp slt i32 %1416, %1418
  br i1 %1419, label %1420, label %1429

1420:                                             ; preds = %1415
  %1421 = load ptr, ptr %40, align 8, !tbaa !15
  %1422 = getelementptr inbounds i8, ptr %1421, i32 1
  store ptr %1422, ptr %40, align 8, !tbaa !15
  %1423 = load i8, ptr %1421, align 1, !tbaa !17
  %1424 = load ptr, ptr %41, align 8, !tbaa !15
  %1425 = getelementptr inbounds i8, ptr %1424, i32 -1
  store ptr %1425, ptr %41, align 8, !tbaa !15
  store i8 %1423, ptr %1424, align 1, !tbaa !17
  br label %1426

1426:                                             ; preds = %1420
  %1427 = load i32, ptr %37, align 4, !tbaa !5
  %1428 = add nsw i32 %1427, 8
  store i32 %1428, ptr %37, align 4, !tbaa !5
  br label %1415, !llvm.loop !97

1429:                                             ; preds = %1415
  %1430 = load i64, ptr %39, align 8, !tbaa !14
  %1431 = load i32, ptr %38, align 4, !tbaa !5
  %1432 = sub nsw i32 32, %1431
  %1433 = zext i32 %1432 to i64
  %1434 = lshr i64 %1430, %1433
  %1435 = trunc i64 %1434 to i32
  %1436 = load ptr, ptr %35, align 8, !tbaa !15
  %1437 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1436, i32 0, i32 3
  store i32 %1435, ptr %1437, align 1, !tbaa !98
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1438 = getelementptr inbounds i8, ptr %36, i64 16
  store ptr %1438, ptr %40, align 8, !tbaa !15
  %1439 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1439, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1440

1440:                                             ; preds = %1451, %1429
  %1441 = load i32, ptr %37, align 4, !tbaa !5
  %1442 = load i32, ptr %38, align 4, !tbaa !5
  %1443 = add nsw i32 64, %1442
  %1444 = icmp slt i32 %1441, %1443
  br i1 %1444, label %1445, label %1454

1445:                                             ; preds = %1440
  %1446 = load ptr, ptr %40, align 8, !tbaa !15
  %1447 = getelementptr inbounds i8, ptr %1446, i32 1
  store ptr %1447, ptr %40, align 8, !tbaa !15
  %1448 = load i8, ptr %1446, align 1, !tbaa !17
  %1449 = load ptr, ptr %41, align 8, !tbaa !15
  %1450 = getelementptr inbounds i8, ptr %1449, i32 -1
  store ptr %1450, ptr %41, align 8, !tbaa !15
  store i8 %1448, ptr %1449, align 1, !tbaa !17
  br label %1451

1451:                                             ; preds = %1445
  %1452 = load i32, ptr %37, align 4, !tbaa !5
  %1453 = add nsw i32 %1452, 8
  store i32 %1453, ptr %37, align 4, !tbaa !5
  br label %1440, !llvm.loop !99

1454:                                             ; preds = %1440
  %1455 = load i64, ptr %39, align 8, !tbaa !14
  %1456 = load i32, ptr %38, align 4, !tbaa !5
  %1457 = sub nsw i32 0, %1456
  %1458 = zext i32 %1457 to i64
  %1459 = lshr i64 %1455, %1458
  %1460 = load ptr, ptr %35, align 8, !tbaa !15
  %1461 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1460, i32 0, i32 4
  store i64 %1459, ptr %1461, align 1, !tbaa !100
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1462 = getelementptr inbounds i8, ptr %36, i64 24
  store ptr %1462, ptr %40, align 8, !tbaa !15
  %1463 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1463, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1464

1464:                                             ; preds = %1475, %1454
  %1465 = load i32, ptr %37, align 4, !tbaa !5
  %1466 = load i32, ptr %38, align 4, !tbaa !5
  %1467 = add nsw i32 32, %1466
  %1468 = icmp slt i32 %1465, %1467
  br i1 %1468, label %1469, label %1478

1469:                                             ; preds = %1464
  %1470 = load ptr, ptr %40, align 8, !tbaa !15
  %1471 = getelementptr inbounds i8, ptr %1470, i32 1
  store ptr %1471, ptr %40, align 8, !tbaa !15
  %1472 = load i8, ptr %1470, align 1, !tbaa !17
  %1473 = load ptr, ptr %41, align 8, !tbaa !15
  %1474 = getelementptr inbounds i8, ptr %1473, i32 -1
  store ptr %1474, ptr %41, align 8, !tbaa !15
  store i8 %1472, ptr %1473, align 1, !tbaa !17
  br label %1475

1475:                                             ; preds = %1469
  %1476 = load i32, ptr %37, align 4, !tbaa !5
  %1477 = add nsw i32 %1476, 8
  store i32 %1477, ptr %37, align 4, !tbaa !5
  br label %1464, !llvm.loop !101

1478:                                             ; preds = %1464
  %1479 = load i64, ptr %39, align 8, !tbaa !14
  %1480 = load i32, ptr %38, align 4, !tbaa !5
  %1481 = sub nsw i32 32, %1480
  %1482 = zext i32 %1481 to i64
  %1483 = lshr i64 %1479, %1482
  %1484 = trunc i64 %1483 to i32
  %1485 = load ptr, ptr %35, align 8, !tbaa !15
  %1486 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1485, i32 0, i32 5
  store i32 %1484, ptr %1486, align 1, !tbaa !102
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1487 = getelementptr inbounds i8, ptr %36, i64 28
  store ptr %1487, ptr %40, align 8, !tbaa !15
  %1488 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1488, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1489

1489:                                             ; preds = %1500, %1478
  %1490 = load i32, ptr %37, align 4, !tbaa !5
  %1491 = load i32, ptr %38, align 4, !tbaa !5
  %1492 = add nsw i32 32, %1491
  %1493 = icmp slt i32 %1490, %1492
  br i1 %1493, label %1494, label %1503

1494:                                             ; preds = %1489
  %1495 = load ptr, ptr %40, align 8, !tbaa !15
  %1496 = getelementptr inbounds i8, ptr %1495, i32 1
  store ptr %1496, ptr %40, align 8, !tbaa !15
  %1497 = load i8, ptr %1495, align 1, !tbaa !17
  %1498 = load ptr, ptr %41, align 8, !tbaa !15
  %1499 = getelementptr inbounds i8, ptr %1498, i32 -1
  store ptr %1499, ptr %41, align 8, !tbaa !15
  store i8 %1497, ptr %1498, align 1, !tbaa !17
  br label %1500

1500:                                             ; preds = %1494
  %1501 = load i32, ptr %37, align 4, !tbaa !5
  %1502 = add nsw i32 %1501, 8
  store i32 %1502, ptr %37, align 4, !tbaa !5
  br label %1489, !llvm.loop !103

1503:                                             ; preds = %1489
  %1504 = load i64, ptr %39, align 8, !tbaa !14
  %1505 = load i32, ptr %38, align 4, !tbaa !5
  %1506 = sub nsw i32 32, %1505
  %1507 = zext i32 %1506 to i64
  %1508 = lshr i64 %1504, %1507
  %1509 = trunc i64 %1508 to i32
  %1510 = load ptr, ptr %35, align 8, !tbaa !15
  %1511 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1510, i32 0, i32 6
  store i32 %1509, ptr %1511, align 1, !tbaa !104
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1512 = getelementptr inbounds i8, ptr %36, i64 32
  store ptr %1512, ptr %40, align 8, !tbaa !15
  %1513 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1513, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1514

1514:                                             ; preds = %1525, %1503
  %1515 = load i32, ptr %37, align 4, !tbaa !5
  %1516 = load i32, ptr %38, align 4, !tbaa !5
  %1517 = add nsw i32 64, %1516
  %1518 = icmp slt i32 %1515, %1517
  br i1 %1518, label %1519, label %1528

1519:                                             ; preds = %1514
  %1520 = load ptr, ptr %40, align 8, !tbaa !15
  %1521 = getelementptr inbounds i8, ptr %1520, i32 1
  store ptr %1521, ptr %40, align 8, !tbaa !15
  %1522 = load i8, ptr %1520, align 1, !tbaa !17
  %1523 = load ptr, ptr %41, align 8, !tbaa !15
  %1524 = getelementptr inbounds i8, ptr %1523, i32 -1
  store ptr %1524, ptr %41, align 8, !tbaa !15
  store i8 %1522, ptr %1523, align 1, !tbaa !17
  br label %1525

1525:                                             ; preds = %1519
  %1526 = load i32, ptr %37, align 4, !tbaa !5
  %1527 = add nsw i32 %1526, 8
  store i32 %1527, ptr %37, align 4, !tbaa !5
  br label %1514, !llvm.loop !105

1528:                                             ; preds = %1514
  %1529 = load i64, ptr %39, align 8, !tbaa !14
  %1530 = load i32, ptr %38, align 4, !tbaa !5
  %1531 = sub nsw i32 0, %1530
  %1532 = zext i32 %1531 to i64
  %1533 = lshr i64 %1529, %1532
  %1534 = load ptr, ptr %35, align 8, !tbaa !15
  %1535 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1534, i32 0, i32 7
  store i64 %1533, ptr %1535, align 1, !tbaa !106
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #8
  br label %1539

1536:                                             ; preds = %1242
  %1537 = load ptr, ptr %35, align 8, !tbaa !15
  %1538 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1537, ptr align 1 %1538, i64 40, i1 false)
  br label %1539

1539:                                             ; preds = %1536, %1528
  %1540 = load ptr, ptr %35, align 8, !tbaa !15
  %1541 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1540, i32 0, i32 7
  %1542 = load i64, ptr %1541, align 1, !tbaa !106
  store i64 %1542, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  %1543 = load ptr, ptr %35, align 8, !tbaa !15
  %1544 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1543, i32 0, i32 5
  %1545 = load i32, ptr %1544, align 1, !tbaa !102
  %1546 = icmp eq i32 %1545, -1
  br i1 %1546, label %1547, label %1548

1547:                                             ; preds = %1539
  br label %1555

1548:                                             ; preds = %1539
  %1549 = load ptr, ptr %35, align 8, !tbaa !15
  %1550 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1549, i32 0, i32 7
  %1551 = load i64, ptr %1550, align 1, !tbaa !106
  %1552 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !81
  %1553 = zext i32 %1552 to i64
  %1554 = srem i64 %1551, %1553
  br label %1555

1555:                                             ; preds = %1548, %1547
  %1556 = phi i64 [ 0, %1547 ], [ %1554, %1548 ]
  %1557 = trunc i64 %1556 to i32
  store i32 %1557, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 4), align 4, !tbaa !82
  %1558 = load ptr, ptr %35, align 8, !tbaa !15
  %1559 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1558, i32 0, i32 5
  %1560 = load i32, ptr %1559, align 1, !tbaa !102
  store i32 %1560, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 3), align 8, !tbaa !83
  %1561 = load ptr, ptr %35, align 8, !tbaa !15
  %1562 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1561, i32 0, i32 6
  %1563 = load i32, ptr %1562, align 1, !tbaa !104
  store i32 %1563, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 8), align 4, !tbaa !46
  %1564 = load ptr, ptr %35, align 8, !tbaa !15
  %1565 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1564, i32 0, i32 5
  %1566 = load i32, ptr %1565, align 1, !tbaa !102
  %1567 = icmp eq i32 %1566, -1
  br i1 %1567, label %1568, label %1580

1568:                                             ; preds = %1555
  %1569 = load ptr, ptr %35, align 8, !tbaa !15
  %1570 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1569, i32 0, i32 7
  %1571 = load i64, ptr %1570, align 1, !tbaa !106
  %1572 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !81
  %1573 = zext i32 %1572 to i64
  %1574 = add nsw i64 %1571, %1573
  %1575 = sub nsw i64 %1574, 1
  %1576 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !84
  %1577 = zext i16 %1576 to i32
  %1578 = zext i32 %1577 to i64
  %1579 = ashr i64 %1575, %1578
  br label %1588

1580:                                             ; preds = %1555
  %1581 = load ptr, ptr %35, align 8, !tbaa !15
  %1582 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1581, i32 0, i32 7
  %1583 = load i64, ptr %1582, align 1, !tbaa !106
  %1584 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !84
  %1585 = zext i16 %1584 to i32
  %1586 = zext i32 %1585 to i64
  %1587 = ashr i64 %1583, %1586
  br label %1588

1588:                                             ; preds = %1580, %1568
  %1589 = phi i64 [ %1579, %1568 ], [ %1587, %1580 ]
  %1590 = trunc i64 %1589 to i32
  store i32 %1590, ptr @read_inode_3.i, align 8, !tbaa !85
  %1591 = load ptr, ptr %35, align 8, !tbaa !15
  %1592 = getelementptr inbounds %struct.squashfs_lreg_inode_header_3, ptr %1591, i32 0, i32 4
  %1593 = load i64, ptr %1592, align 1, !tbaa !100
  store i64 %1593, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 9), align 8, !tbaa !49
  store i8 1, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 14), align 8, !tbaa !86
  %1594 = load ptr, ptr %7, align 8, !tbaa !15
  %1595 = getelementptr inbounds i8, ptr %1594, i64 40
  store ptr %1595, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 1), align 8, !tbaa !87
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %2097

1596:                                             ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store ptr @read_inode_3.header, ptr %42, align 8, !tbaa !15
  %1597 = load i32, ptr @swap, align 4, !tbaa !5
  %1598 = icmp ne i32 %1597, 0
  br i1 %1598, label %1599, label %1817

1599:                                             ; preds = %1596
  call void @llvm.lifetime.start.p0(i64 18, ptr %43) #8
  %1600 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %43, ptr align 1 %1600, i64 18, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %1601 = load ptr, ptr %42, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %1601, i8 0, i64 18, i1 false)
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1602 = getelementptr inbounds i8, ptr %43, i64 0
  store ptr %1602, ptr %47, align 8, !tbaa !15
  %1603 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1603, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1604

1604:                                             ; preds = %1615, %1599
  %1605 = load i32, ptr %44, align 4, !tbaa !5
  %1606 = load i32, ptr %45, align 4, !tbaa !5
  %1607 = add nsw i32 4, %1606
  %1608 = icmp slt i32 %1605, %1607
  br i1 %1608, label %1609, label %1618

1609:                                             ; preds = %1604
  %1610 = load ptr, ptr %47, align 8, !tbaa !15
  %1611 = getelementptr inbounds i8, ptr %1610, i32 1
  store ptr %1611, ptr %47, align 8, !tbaa !15
  %1612 = load i8, ptr %1610, align 1, !tbaa !17
  %1613 = load ptr, ptr %48, align 8, !tbaa !15
  %1614 = getelementptr inbounds i8, ptr %1613, i32 -1
  store ptr %1614, ptr %48, align 8, !tbaa !15
  store i8 %1612, ptr %1613, align 1, !tbaa !17
  br label %1615

1615:                                             ; preds = %1609
  %1616 = load i32, ptr %44, align 4, !tbaa !5
  %1617 = add nsw i32 %1616, 8
  store i32 %1617, ptr %44, align 4, !tbaa !5
  br label %1604, !llvm.loop !107

1618:                                             ; preds = %1604
  %1619 = load i64, ptr %46, align 8, !tbaa !14
  %1620 = load i32, ptr %45, align 4, !tbaa !5
  %1621 = sub nsw i32 60, %1620
  %1622 = zext i32 %1621 to i64
  %1623 = lshr i64 %1619, %1622
  %1624 = trunc i64 %1623 to i32
  %1625 = load ptr, ptr %42, align 8, !tbaa !15
  %1626 = load i32, ptr %1625, align 1
  %1627 = and i32 %1624, 15
  %1628 = and i32 %1626, -16
  %1629 = or i32 %1628, %1627
  store i32 %1629, ptr %1625, align 1
  store i32 4, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1630 = getelementptr inbounds i8, ptr %43, i64 0
  store ptr %1630, ptr %47, align 8, !tbaa !15
  %1631 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1631, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1632

1632:                                             ; preds = %1643, %1618
  %1633 = load i32, ptr %44, align 4, !tbaa !5
  %1634 = load i32, ptr %45, align 4, !tbaa !5
  %1635 = add nsw i32 12, %1634
  %1636 = icmp slt i32 %1633, %1635
  br i1 %1636, label %1637, label %1646

1637:                                             ; preds = %1632
  %1638 = load ptr, ptr %47, align 8, !tbaa !15
  %1639 = getelementptr inbounds i8, ptr %1638, i32 1
  store ptr %1639, ptr %47, align 8, !tbaa !15
  %1640 = load i8, ptr %1638, align 1, !tbaa !17
  %1641 = load ptr, ptr %48, align 8, !tbaa !15
  %1642 = getelementptr inbounds i8, ptr %1641, i32 -1
  store ptr %1642, ptr %48, align 8, !tbaa !15
  store i8 %1640, ptr %1641, align 1, !tbaa !17
  br label %1643

1643:                                             ; preds = %1637
  %1644 = load i32, ptr %44, align 4, !tbaa !5
  %1645 = add nsw i32 %1644, 8
  store i32 %1645, ptr %44, align 4, !tbaa !5
  br label %1632, !llvm.loop !108

1646:                                             ; preds = %1632
  %1647 = load i64, ptr %46, align 8, !tbaa !14
  %1648 = load i32, ptr %45, align 4, !tbaa !5
  %1649 = sub nsw i32 52, %1648
  %1650 = zext i32 %1649 to i64
  %1651 = lshr i64 %1647, %1650
  %1652 = trunc i64 %1651 to i32
  %1653 = load ptr, ptr %42, align 8, !tbaa !15
  %1654 = load i32, ptr %1653, align 1
  %1655 = and i32 %1652, 4095
  %1656 = shl i32 %1655, 4
  %1657 = and i32 %1654, -65521
  %1658 = or i32 %1657, %1656
  store i32 %1658, ptr %1653, align 1
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1659 = getelementptr inbounds i8, ptr %43, i64 2
  store ptr %1659, ptr %47, align 8, !tbaa !15
  %1660 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1660, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1661

1661:                                             ; preds = %1672, %1646
  %1662 = load i32, ptr %44, align 4, !tbaa !5
  %1663 = load i32, ptr %45, align 4, !tbaa !5
  %1664 = add nsw i32 8, %1663
  %1665 = icmp slt i32 %1662, %1664
  br i1 %1665, label %1666, label %1675

1666:                                             ; preds = %1661
  %1667 = load ptr, ptr %47, align 8, !tbaa !15
  %1668 = getelementptr inbounds i8, ptr %1667, i32 1
  store ptr %1668, ptr %47, align 8, !tbaa !15
  %1669 = load i8, ptr %1667, align 1, !tbaa !17
  %1670 = load ptr, ptr %48, align 8, !tbaa !15
  %1671 = getelementptr inbounds i8, ptr %1670, i32 -1
  store ptr %1671, ptr %48, align 8, !tbaa !15
  store i8 %1669, ptr %1670, align 1, !tbaa !17
  br label %1672

1672:                                             ; preds = %1666
  %1673 = load i32, ptr %44, align 4, !tbaa !5
  %1674 = add nsw i32 %1673, 8
  store i32 %1674, ptr %44, align 4, !tbaa !5
  br label %1661, !llvm.loop !109

1675:                                             ; preds = %1661
  %1676 = load i64, ptr %46, align 8, !tbaa !14
  %1677 = load i32, ptr %45, align 4, !tbaa !5
  %1678 = sub nsw i32 56, %1677
  %1679 = zext i32 %1678 to i64
  %1680 = lshr i64 %1676, %1679
  %1681 = trunc i64 %1680 to i32
  %1682 = load ptr, ptr %42, align 8, !tbaa !15
  %1683 = load i32, ptr %1682, align 1
  %1684 = and i32 %1681, 255
  %1685 = shl i32 %1684, 16
  %1686 = and i32 %1683, -16711681
  %1687 = or i32 %1686, %1685
  store i32 %1687, ptr %1682, align 1
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1688 = getelementptr inbounds i8, ptr %43, i64 3
  store ptr %1688, ptr %47, align 8, !tbaa !15
  %1689 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1689, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1690

1690:                                             ; preds = %1701, %1675
  %1691 = load i32, ptr %44, align 4, !tbaa !5
  %1692 = load i32, ptr %45, align 4, !tbaa !5
  %1693 = add nsw i32 8, %1692
  %1694 = icmp slt i32 %1691, %1693
  br i1 %1694, label %1695, label %1704

1695:                                             ; preds = %1690
  %1696 = load ptr, ptr %47, align 8, !tbaa !15
  %1697 = getelementptr inbounds i8, ptr %1696, i32 1
  store ptr %1697, ptr %47, align 8, !tbaa !15
  %1698 = load i8, ptr %1696, align 1, !tbaa !17
  %1699 = load ptr, ptr %48, align 8, !tbaa !15
  %1700 = getelementptr inbounds i8, ptr %1699, i32 -1
  store ptr %1700, ptr %48, align 8, !tbaa !15
  store i8 %1698, ptr %1699, align 1, !tbaa !17
  br label %1701

1701:                                             ; preds = %1695
  %1702 = load i32, ptr %44, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 8
  store i32 %1703, ptr %44, align 4, !tbaa !5
  br label %1690, !llvm.loop !110

1704:                                             ; preds = %1690
  %1705 = load i64, ptr %46, align 8, !tbaa !14
  %1706 = load i32, ptr %45, align 4, !tbaa !5
  %1707 = sub nsw i32 56, %1706
  %1708 = zext i32 %1707 to i64
  %1709 = lshr i64 %1705, %1708
  %1710 = trunc i64 %1709 to i32
  %1711 = load ptr, ptr %42, align 8, !tbaa !15
  %1712 = load i32, ptr %1711, align 1
  %1713 = and i32 %1710, 255
  %1714 = shl i32 %1713, 24
  %1715 = and i32 %1712, 16777215
  %1716 = or i32 %1715, %1714
  store i32 %1716, ptr %1711, align 1
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1717 = getelementptr inbounds i8, ptr %43, i64 4
  store ptr %1717, ptr %47, align 8, !tbaa !15
  %1718 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1718, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1719

1719:                                             ; preds = %1730, %1704
  %1720 = load i32, ptr %44, align 4, !tbaa !5
  %1721 = load i32, ptr %45, align 4, !tbaa !5
  %1722 = add nsw i32 32, %1721
  %1723 = icmp slt i32 %1720, %1722
  br i1 %1723, label %1724, label %1733

1724:                                             ; preds = %1719
  %1725 = load ptr, ptr %47, align 8, !tbaa !15
  %1726 = getelementptr inbounds i8, ptr %1725, i32 1
  store ptr %1726, ptr %47, align 8, !tbaa !15
  %1727 = load i8, ptr %1725, align 1, !tbaa !17
  %1728 = load ptr, ptr %48, align 8, !tbaa !15
  %1729 = getelementptr inbounds i8, ptr %1728, i32 -1
  store ptr %1729, ptr %48, align 8, !tbaa !15
  store i8 %1727, ptr %1728, align 1, !tbaa !17
  br label %1730

1730:                                             ; preds = %1724
  %1731 = load i32, ptr %44, align 4, !tbaa !5
  %1732 = add nsw i32 %1731, 8
  store i32 %1732, ptr %44, align 4, !tbaa !5
  br label %1719, !llvm.loop !111

1733:                                             ; preds = %1719
  %1734 = load i64, ptr %46, align 8, !tbaa !14
  %1735 = load i32, ptr %45, align 4, !tbaa !5
  %1736 = sub nsw i32 32, %1735
  %1737 = zext i32 %1736 to i64
  %1738 = lshr i64 %1734, %1737
  %1739 = trunc i64 %1738 to i32
  %1740 = load ptr, ptr %42, align 8, !tbaa !15
  %1741 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1740, i32 0, i32 1
  store i32 %1739, ptr %1741, align 1, !tbaa !112
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1742 = getelementptr inbounds i8, ptr %43, i64 8
  store ptr %1742, ptr %47, align 8, !tbaa !15
  %1743 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1743, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1744

1744:                                             ; preds = %1755, %1733
  %1745 = load i32, ptr %44, align 4, !tbaa !5
  %1746 = load i32, ptr %45, align 4, !tbaa !5
  %1747 = add nsw i32 32, %1746
  %1748 = icmp slt i32 %1745, %1747
  br i1 %1748, label %1749, label %1758

1749:                                             ; preds = %1744
  %1750 = load ptr, ptr %47, align 8, !tbaa !15
  %1751 = getelementptr inbounds i8, ptr %1750, i32 1
  store ptr %1751, ptr %47, align 8, !tbaa !15
  %1752 = load i8, ptr %1750, align 1, !tbaa !17
  %1753 = load ptr, ptr %48, align 8, !tbaa !15
  %1754 = getelementptr inbounds i8, ptr %1753, i32 -1
  store ptr %1754, ptr %48, align 8, !tbaa !15
  store i8 %1752, ptr %1753, align 1, !tbaa !17
  br label %1755

1755:                                             ; preds = %1749
  %1756 = load i32, ptr %44, align 4, !tbaa !5
  %1757 = add nsw i32 %1756, 8
  store i32 %1757, ptr %44, align 4, !tbaa !5
  br label %1744, !llvm.loop !114

1758:                                             ; preds = %1744
  %1759 = load i64, ptr %46, align 8, !tbaa !14
  %1760 = load i32, ptr %45, align 4, !tbaa !5
  %1761 = sub nsw i32 32, %1760
  %1762 = zext i32 %1761 to i64
  %1763 = lshr i64 %1759, %1762
  %1764 = trunc i64 %1763 to i32
  %1765 = load ptr, ptr %42, align 8, !tbaa !15
  %1766 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1765, i32 0, i32 2
  store i32 %1764, ptr %1766, align 1, !tbaa !115
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1767 = getelementptr inbounds i8, ptr %43, i64 12
  store ptr %1767, ptr %47, align 8, !tbaa !15
  %1768 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1768, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1769

1769:                                             ; preds = %1780, %1758
  %1770 = load i32, ptr %44, align 4, !tbaa !5
  %1771 = load i32, ptr %45, align 4, !tbaa !5
  %1772 = add nsw i32 32, %1771
  %1773 = icmp slt i32 %1770, %1772
  br i1 %1773, label %1774, label %1783

1774:                                             ; preds = %1769
  %1775 = load ptr, ptr %47, align 8, !tbaa !15
  %1776 = getelementptr inbounds i8, ptr %1775, i32 1
  store ptr %1776, ptr %47, align 8, !tbaa !15
  %1777 = load i8, ptr %1775, align 1, !tbaa !17
  %1778 = load ptr, ptr %48, align 8, !tbaa !15
  %1779 = getelementptr inbounds i8, ptr %1778, i32 -1
  store ptr %1779, ptr %48, align 8, !tbaa !15
  store i8 %1777, ptr %1778, align 1, !tbaa !17
  br label %1780

1780:                                             ; preds = %1774
  %1781 = load i32, ptr %44, align 4, !tbaa !5
  %1782 = add nsw i32 %1781, 8
  store i32 %1782, ptr %44, align 4, !tbaa !5
  br label %1769, !llvm.loop !116

1783:                                             ; preds = %1769
  %1784 = load i64, ptr %46, align 8, !tbaa !14
  %1785 = load i32, ptr %45, align 4, !tbaa !5
  %1786 = sub nsw i32 32, %1785
  %1787 = zext i32 %1786 to i64
  %1788 = lshr i64 %1784, %1787
  %1789 = trunc i64 %1788 to i32
  %1790 = load ptr, ptr %42, align 8, !tbaa !15
  %1791 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1790, i32 0, i32 3
  store i32 %1789, ptr %1791, align 1, !tbaa !117
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1792 = getelementptr inbounds i8, ptr %43, i64 16
  store ptr %1792, ptr %47, align 8, !tbaa !15
  %1793 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1793, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1794

1794:                                             ; preds = %1805, %1783
  %1795 = load i32, ptr %44, align 4, !tbaa !5
  %1796 = load i32, ptr %45, align 4, !tbaa !5
  %1797 = add nsw i32 16, %1796
  %1798 = icmp slt i32 %1795, %1797
  br i1 %1798, label %1799, label %1808

1799:                                             ; preds = %1794
  %1800 = load ptr, ptr %47, align 8, !tbaa !15
  %1801 = getelementptr inbounds i8, ptr %1800, i32 1
  store ptr %1801, ptr %47, align 8, !tbaa !15
  %1802 = load i8, ptr %1800, align 1, !tbaa !17
  %1803 = load ptr, ptr %48, align 8, !tbaa !15
  %1804 = getelementptr inbounds i8, ptr %1803, i32 -1
  store ptr %1804, ptr %48, align 8, !tbaa !15
  store i8 %1802, ptr %1803, align 1, !tbaa !17
  br label %1805

1805:                                             ; preds = %1799
  %1806 = load i32, ptr %44, align 4, !tbaa !5
  %1807 = add nsw i32 %1806, 8
  store i32 %1807, ptr %44, align 4, !tbaa !5
  br label %1794, !llvm.loop !118

1808:                                             ; preds = %1794
  %1809 = load i64, ptr %46, align 8, !tbaa !14
  %1810 = load i32, ptr %45, align 4, !tbaa !5
  %1811 = sub nsw i32 48, %1810
  %1812 = zext i32 %1811 to i64
  %1813 = lshr i64 %1809, %1812
  %1814 = trunc i64 %1813 to i16
  %1815 = load ptr, ptr %42, align 8, !tbaa !15
  %1816 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1815, i32 0, i32 4
  store i16 %1814, ptr %1816, align 1, !tbaa !119
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 18, ptr %43) #8
  br label %1820

1817:                                             ; preds = %1596
  %1818 = load ptr, ptr %42, align 8, !tbaa !15
  %1819 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1818, ptr align 1 %1819, i64 18, i1 false)
  br label %1820

1820:                                             ; preds = %1817, %1808
  %1821 = load ptr, ptr %42, align 8, !tbaa !15
  %1822 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1821, i32 0, i32 4
  %1823 = load i16, ptr %1822, align 1, !tbaa !119
  %1824 = zext i16 %1823 to i32
  %1825 = add nsw i32 %1824, 1
  %1826 = sext i32 %1825 to i64
  %1827 = call noalias ptr @malloc(i64 noundef %1826) #10
  store ptr %1827, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 10), align 8, !tbaa !120
  %1828 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 10), align 8, !tbaa !120
  %1829 = icmp eq ptr %1828, null
  br i1 %1829, label %1830, label %1838

1830:                                             ; preds = %1820
  br label %1831

1831:                                             ; preds = %1830
  %1832 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef @.str.5) #8
  %1835 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

1836:                                             ; No predecessors!
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

1838:                                             ; preds = %1837, %1820
  %1839 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 10), align 8, !tbaa !120
  %1840 = load ptr, ptr %7, align 8, !tbaa !15
  %1841 = getelementptr inbounds i8, ptr %1840, i64 18
  %1842 = load ptr, ptr %42, align 8, !tbaa !15
  %1843 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1842, i32 0, i32 4
  %1844 = load i16, ptr %1843, align 1, !tbaa !119
  %1845 = zext i16 %1844 to i64
  %1846 = call ptr @strncpy(ptr noundef %1839, ptr noundef %1841, i64 noundef %1845) #8
  %1847 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 10), align 8, !tbaa !120
  %1848 = load ptr, ptr %42, align 8, !tbaa !15
  %1849 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1848, i32 0, i32 4
  %1850 = load i16, ptr %1849, align 1, !tbaa !119
  %1851 = zext i16 %1850 to i64
  %1852 = getelementptr inbounds i8, ptr %1847, i64 %1851
  store i8 0, ptr %1852, align 1, !tbaa !17
  %1853 = load ptr, ptr %42, align 8, !tbaa !15
  %1854 = getelementptr inbounds %struct.squashfs_symlink_inode_header_3, ptr %1853, i32 0, i32 4
  %1855 = load i16, ptr %1854, align 1, !tbaa !119
  %1856 = zext i16 %1855 to i64
  store i64 %1856, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %2097

1857:                                             ; preds = %264, %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  store ptr @read_inode_3.header, ptr %49, align 8, !tbaa !15
  %1858 = load i32, ptr @swap, align 4, !tbaa !5
  %1859 = icmp ne i32 %1858, 0
  br i1 %1859, label %1860, label %2078

1860:                                             ; preds = %1857
  call void @llvm.lifetime.start.p0(i64 18, ptr %50) #8
  %1861 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %50, ptr align 1 %1861, i64 18, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %1862 = load ptr, ptr %49, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %1862, i8 0, i64 18, i1 false)
  store i32 0, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %1863 = getelementptr inbounds i8, ptr %50, i64 0
  store ptr %1863, ptr %54, align 8, !tbaa !15
  %1864 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %1864, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %1865

1865:                                             ; preds = %1876, %1860
  %1866 = load i32, ptr %51, align 4, !tbaa !5
  %1867 = load i32, ptr %52, align 4, !tbaa !5
  %1868 = add nsw i32 4, %1867
  %1869 = icmp slt i32 %1866, %1868
  br i1 %1869, label %1870, label %1879

1870:                                             ; preds = %1865
  %1871 = load ptr, ptr %54, align 8, !tbaa !15
  %1872 = getelementptr inbounds i8, ptr %1871, i32 1
  store ptr %1872, ptr %54, align 8, !tbaa !15
  %1873 = load i8, ptr %1871, align 1, !tbaa !17
  %1874 = load ptr, ptr %55, align 8, !tbaa !15
  %1875 = getelementptr inbounds i8, ptr %1874, i32 -1
  store ptr %1875, ptr %55, align 8, !tbaa !15
  store i8 %1873, ptr %1874, align 1, !tbaa !17
  br label %1876

1876:                                             ; preds = %1870
  %1877 = load i32, ptr %51, align 4, !tbaa !5
  %1878 = add nsw i32 %1877, 8
  store i32 %1878, ptr %51, align 4, !tbaa !5
  br label %1865, !llvm.loop !121

1879:                                             ; preds = %1865
  %1880 = load i64, ptr %53, align 8, !tbaa !14
  %1881 = load i32, ptr %52, align 4, !tbaa !5
  %1882 = sub nsw i32 60, %1881
  %1883 = zext i32 %1882 to i64
  %1884 = lshr i64 %1880, %1883
  %1885 = trunc i64 %1884 to i32
  %1886 = load ptr, ptr %49, align 8, !tbaa !15
  %1887 = load i32, ptr %1886, align 1
  %1888 = and i32 %1885, 15
  %1889 = and i32 %1887, -16
  %1890 = or i32 %1889, %1888
  store i32 %1890, ptr %1886, align 1
  store i32 4, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %1891 = getelementptr inbounds i8, ptr %50, i64 0
  store ptr %1891, ptr %54, align 8, !tbaa !15
  %1892 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %1892, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %1893

1893:                                             ; preds = %1904, %1879
  %1894 = load i32, ptr %51, align 4, !tbaa !5
  %1895 = load i32, ptr %52, align 4, !tbaa !5
  %1896 = add nsw i32 12, %1895
  %1897 = icmp slt i32 %1894, %1896
  br i1 %1897, label %1898, label %1907

1898:                                             ; preds = %1893
  %1899 = load ptr, ptr %54, align 8, !tbaa !15
  %1900 = getelementptr inbounds i8, ptr %1899, i32 1
  store ptr %1900, ptr %54, align 8, !tbaa !15
  %1901 = load i8, ptr %1899, align 1, !tbaa !17
  %1902 = load ptr, ptr %55, align 8, !tbaa !15
  %1903 = getelementptr inbounds i8, ptr %1902, i32 -1
  store ptr %1903, ptr %55, align 8, !tbaa !15
  store i8 %1901, ptr %1902, align 1, !tbaa !17
  br label %1904

1904:                                             ; preds = %1898
  %1905 = load i32, ptr %51, align 4, !tbaa !5
  %1906 = add nsw i32 %1905, 8
  store i32 %1906, ptr %51, align 4, !tbaa !5
  br label %1893, !llvm.loop !122

1907:                                             ; preds = %1893
  %1908 = load i64, ptr %53, align 8, !tbaa !14
  %1909 = load i32, ptr %52, align 4, !tbaa !5
  %1910 = sub nsw i32 52, %1909
  %1911 = zext i32 %1910 to i64
  %1912 = lshr i64 %1908, %1911
  %1913 = trunc i64 %1912 to i32
  %1914 = load ptr, ptr %49, align 8, !tbaa !15
  %1915 = load i32, ptr %1914, align 1
  %1916 = and i32 %1913, 4095
  %1917 = shl i32 %1916, 4
  %1918 = and i32 %1915, -65521
  %1919 = or i32 %1918, %1917
  store i32 %1919, ptr %1914, align 1
  store i32 0, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %1920 = getelementptr inbounds i8, ptr %50, i64 2
  store ptr %1920, ptr %54, align 8, !tbaa !15
  %1921 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %1921, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %1922

1922:                                             ; preds = %1933, %1907
  %1923 = load i32, ptr %51, align 4, !tbaa !5
  %1924 = load i32, ptr %52, align 4, !tbaa !5
  %1925 = add nsw i32 8, %1924
  %1926 = icmp slt i32 %1923, %1925
  br i1 %1926, label %1927, label %1936

1927:                                             ; preds = %1922
  %1928 = load ptr, ptr %54, align 8, !tbaa !15
  %1929 = getelementptr inbounds i8, ptr %1928, i32 1
  store ptr %1929, ptr %54, align 8, !tbaa !15
  %1930 = load i8, ptr %1928, align 1, !tbaa !17
  %1931 = load ptr, ptr %55, align 8, !tbaa !15
  %1932 = getelementptr inbounds i8, ptr %1931, i32 -1
  store ptr %1932, ptr %55, align 8, !tbaa !15
  store i8 %1930, ptr %1931, align 1, !tbaa !17
  br label %1933

1933:                                             ; preds = %1927
  %1934 = load i32, ptr %51, align 4, !tbaa !5
  %1935 = add nsw i32 %1934, 8
  store i32 %1935, ptr %51, align 4, !tbaa !5
  br label %1922, !llvm.loop !123

1936:                                             ; preds = %1922
  %1937 = load i64, ptr %53, align 8, !tbaa !14
  %1938 = load i32, ptr %52, align 4, !tbaa !5
  %1939 = sub nsw i32 56, %1938
  %1940 = zext i32 %1939 to i64
  %1941 = lshr i64 %1937, %1940
  %1942 = trunc i64 %1941 to i32
  %1943 = load ptr, ptr %49, align 8, !tbaa !15
  %1944 = load i32, ptr %1943, align 1
  %1945 = and i32 %1942, 255
  %1946 = shl i32 %1945, 16
  %1947 = and i32 %1944, -16711681
  %1948 = or i32 %1947, %1946
  store i32 %1948, ptr %1943, align 1
  store i32 0, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %1949 = getelementptr inbounds i8, ptr %50, i64 3
  store ptr %1949, ptr %54, align 8, !tbaa !15
  %1950 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %1950, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %1951

1951:                                             ; preds = %1962, %1936
  %1952 = load i32, ptr %51, align 4, !tbaa !5
  %1953 = load i32, ptr %52, align 4, !tbaa !5
  %1954 = add nsw i32 8, %1953
  %1955 = icmp slt i32 %1952, %1954
  br i1 %1955, label %1956, label %1965

1956:                                             ; preds = %1951
  %1957 = load ptr, ptr %54, align 8, !tbaa !15
  %1958 = getelementptr inbounds i8, ptr %1957, i32 1
  store ptr %1958, ptr %54, align 8, !tbaa !15
  %1959 = load i8, ptr %1957, align 1, !tbaa !17
  %1960 = load ptr, ptr %55, align 8, !tbaa !15
  %1961 = getelementptr inbounds i8, ptr %1960, i32 -1
  store ptr %1961, ptr %55, align 8, !tbaa !15
  store i8 %1959, ptr %1960, align 1, !tbaa !17
  br label %1962

1962:                                             ; preds = %1956
  %1963 = load i32, ptr %51, align 4, !tbaa !5
  %1964 = add nsw i32 %1963, 8
  store i32 %1964, ptr %51, align 4, !tbaa !5
  br label %1951, !llvm.loop !124

1965:                                             ; preds = %1951
  %1966 = load i64, ptr %53, align 8, !tbaa !14
  %1967 = load i32, ptr %52, align 4, !tbaa !5
  %1968 = sub nsw i32 56, %1967
  %1969 = zext i32 %1968 to i64
  %1970 = lshr i64 %1966, %1969
  %1971 = trunc i64 %1970 to i32
  %1972 = load ptr, ptr %49, align 8, !tbaa !15
  %1973 = load i32, ptr %1972, align 1
  %1974 = and i32 %1971, 255
  %1975 = shl i32 %1974, 24
  %1976 = and i32 %1973, 16777215
  %1977 = or i32 %1976, %1975
  store i32 %1977, ptr %1972, align 1
  store i32 0, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %1978 = getelementptr inbounds i8, ptr %50, i64 4
  store ptr %1978, ptr %54, align 8, !tbaa !15
  %1979 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %1979, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %1980

1980:                                             ; preds = %1991, %1965
  %1981 = load i32, ptr %51, align 4, !tbaa !5
  %1982 = load i32, ptr %52, align 4, !tbaa !5
  %1983 = add nsw i32 32, %1982
  %1984 = icmp slt i32 %1981, %1983
  br i1 %1984, label %1985, label %1994

1985:                                             ; preds = %1980
  %1986 = load ptr, ptr %54, align 8, !tbaa !15
  %1987 = getelementptr inbounds i8, ptr %1986, i32 1
  store ptr %1987, ptr %54, align 8, !tbaa !15
  %1988 = load i8, ptr %1986, align 1, !tbaa !17
  %1989 = load ptr, ptr %55, align 8, !tbaa !15
  %1990 = getelementptr inbounds i8, ptr %1989, i32 -1
  store ptr %1990, ptr %55, align 8, !tbaa !15
  store i8 %1988, ptr %1989, align 1, !tbaa !17
  br label %1991

1991:                                             ; preds = %1985
  %1992 = load i32, ptr %51, align 4, !tbaa !5
  %1993 = add nsw i32 %1992, 8
  store i32 %1993, ptr %51, align 4, !tbaa !5
  br label %1980, !llvm.loop !125

1994:                                             ; preds = %1980
  %1995 = load i64, ptr %53, align 8, !tbaa !14
  %1996 = load i32, ptr %52, align 4, !tbaa !5
  %1997 = sub nsw i32 32, %1996
  %1998 = zext i32 %1997 to i64
  %1999 = lshr i64 %1995, %1998
  %2000 = trunc i64 %1999 to i32
  %2001 = load ptr, ptr %49, align 8, !tbaa !15
  %2002 = getelementptr inbounds %struct.squashfs_dev_inode_header_3, ptr %2001, i32 0, i32 1
  store i32 %2000, ptr %2002, align 1, !tbaa !126
  store i32 0, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %2003 = getelementptr inbounds i8, ptr %50, i64 8
  store ptr %2003, ptr %54, align 8, !tbaa !15
  %2004 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %2004, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %2005

2005:                                             ; preds = %2016, %1994
  %2006 = load i32, ptr %51, align 4, !tbaa !5
  %2007 = load i32, ptr %52, align 4, !tbaa !5
  %2008 = add nsw i32 32, %2007
  %2009 = icmp slt i32 %2006, %2008
  br i1 %2009, label %2010, label %2019

2010:                                             ; preds = %2005
  %2011 = load ptr, ptr %54, align 8, !tbaa !15
  %2012 = getelementptr inbounds i8, ptr %2011, i32 1
  store ptr %2012, ptr %54, align 8, !tbaa !15
  %2013 = load i8, ptr %2011, align 1, !tbaa !17
  %2014 = load ptr, ptr %55, align 8, !tbaa !15
  %2015 = getelementptr inbounds i8, ptr %2014, i32 -1
  store ptr %2015, ptr %55, align 8, !tbaa !15
  store i8 %2013, ptr %2014, align 1, !tbaa !17
  br label %2016

2016:                                             ; preds = %2010
  %2017 = load i32, ptr %51, align 4, !tbaa !5
  %2018 = add nsw i32 %2017, 8
  store i32 %2018, ptr %51, align 4, !tbaa !5
  br label %2005, !llvm.loop !128

2019:                                             ; preds = %2005
  %2020 = load i64, ptr %53, align 8, !tbaa !14
  %2021 = load i32, ptr %52, align 4, !tbaa !5
  %2022 = sub nsw i32 32, %2021
  %2023 = zext i32 %2022 to i64
  %2024 = lshr i64 %2020, %2023
  %2025 = trunc i64 %2024 to i32
  %2026 = load ptr, ptr %49, align 8, !tbaa !15
  %2027 = getelementptr inbounds %struct.squashfs_dev_inode_header_3, ptr %2026, i32 0, i32 2
  store i32 %2025, ptr %2027, align 1, !tbaa !129
  store i32 0, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %2028 = getelementptr inbounds i8, ptr %50, i64 12
  store ptr %2028, ptr %54, align 8, !tbaa !15
  %2029 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %2029, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %2030

2030:                                             ; preds = %2041, %2019
  %2031 = load i32, ptr %51, align 4, !tbaa !5
  %2032 = load i32, ptr %52, align 4, !tbaa !5
  %2033 = add nsw i32 32, %2032
  %2034 = icmp slt i32 %2031, %2033
  br i1 %2034, label %2035, label %2044

2035:                                             ; preds = %2030
  %2036 = load ptr, ptr %54, align 8, !tbaa !15
  %2037 = getelementptr inbounds i8, ptr %2036, i32 1
  store ptr %2037, ptr %54, align 8, !tbaa !15
  %2038 = load i8, ptr %2036, align 1, !tbaa !17
  %2039 = load ptr, ptr %55, align 8, !tbaa !15
  %2040 = getelementptr inbounds i8, ptr %2039, i32 -1
  store ptr %2040, ptr %55, align 8, !tbaa !15
  store i8 %2038, ptr %2039, align 1, !tbaa !17
  br label %2041

2041:                                             ; preds = %2035
  %2042 = load i32, ptr %51, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 8
  store i32 %2043, ptr %51, align 4, !tbaa !5
  br label %2030, !llvm.loop !130

2044:                                             ; preds = %2030
  %2045 = load i64, ptr %53, align 8, !tbaa !14
  %2046 = load i32, ptr %52, align 4, !tbaa !5
  %2047 = sub nsw i32 32, %2046
  %2048 = zext i32 %2047 to i64
  %2049 = lshr i64 %2045, %2048
  %2050 = trunc i64 %2049 to i32
  %2051 = load ptr, ptr %49, align 8, !tbaa !15
  %2052 = getelementptr inbounds %struct.squashfs_dev_inode_header_3, ptr %2051, i32 0, i32 3
  store i32 %2050, ptr %2052, align 1, !tbaa !131
  store i32 0, ptr %52, align 4, !tbaa !5
  store i64 0, ptr %53, align 8, !tbaa !14
  %2053 = getelementptr inbounds i8, ptr %50, i64 16
  store ptr %2053, ptr %54, align 8, !tbaa !15
  %2054 = getelementptr inbounds i8, ptr %53, i64 7
  store ptr %2054, ptr %55, align 8, !tbaa !15
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %2055

2055:                                             ; preds = %2066, %2044
  %2056 = load i32, ptr %51, align 4, !tbaa !5
  %2057 = load i32, ptr %52, align 4, !tbaa !5
  %2058 = add nsw i32 16, %2057
  %2059 = icmp slt i32 %2056, %2058
  br i1 %2059, label %2060, label %2069

2060:                                             ; preds = %2055
  %2061 = load ptr, ptr %54, align 8, !tbaa !15
  %2062 = getelementptr inbounds i8, ptr %2061, i32 1
  store ptr %2062, ptr %54, align 8, !tbaa !15
  %2063 = load i8, ptr %2061, align 1, !tbaa !17
  %2064 = load ptr, ptr %55, align 8, !tbaa !15
  %2065 = getelementptr inbounds i8, ptr %2064, i32 -1
  store ptr %2065, ptr %55, align 8, !tbaa !15
  store i8 %2063, ptr %2064, align 1, !tbaa !17
  br label %2066

2066:                                             ; preds = %2060
  %2067 = load i32, ptr %51, align 4, !tbaa !5
  %2068 = add nsw i32 %2067, 8
  store i32 %2068, ptr %51, align 4, !tbaa !5
  br label %2055, !llvm.loop !132

2069:                                             ; preds = %2055
  %2070 = load i64, ptr %53, align 8, !tbaa !14
  %2071 = load i32, ptr %52, align 4, !tbaa !5
  %2072 = sub nsw i32 48, %2071
  %2073 = zext i32 %2072 to i64
  %2074 = lshr i64 %2070, %2073
  %2075 = trunc i64 %2074 to i16
  %2076 = load ptr, ptr %49, align 8, !tbaa !15
  %2077 = getelementptr inbounds %struct.squashfs_dev_inode_header_3, ptr %2076, i32 0, i32 4
  store i16 %2075, ptr %2077, align 1, !tbaa !133
  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.end.p0(i64 18, ptr %50) #8
  br label %2081

2078:                                             ; preds = %1857
  %2079 = load ptr, ptr %49, align 8, !tbaa !15
  %2080 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2079, ptr align 1 %2080, i64 18, i1 false)
  br label %2081

2081:                                             ; preds = %2078, %2069
  %2082 = load ptr, ptr %49, align 8, !tbaa !15
  %2083 = getelementptr inbounds %struct.squashfs_dev_inode_header_3, ptr %2082, i32 0, i32 4
  %2084 = load i16, ptr %2083, align 1, !tbaa !133
  %2085 = zext i16 %2084 to i64
  store i64 %2085, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %2097

2086:                                             ; preds = %264, %264
  store i64 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_3.i, i32 0, i32 2), align 8, !tbaa !45
  br label %2097

2087:                                             ; preds = %264
  br label %2088

2088:                                             ; preds = %2087
  %2089 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !15
  %2091 = load i32, ptr @read_inode_3.header, align 1
  %2092 = and i32 %2091, 15
  %2093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef @.str.6, i32 noundef %2092) #8
  %2094 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

2095:                                             ; No predecessors!
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

2097:                                             ; preds = %2096, %2086, %2081, %1838, %1588, %1234, %901, %570
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  ret ptr @read_inode_3.i
}

declare i32 @lookup_entry(ptr noundef, i64 noundef) #7

; Function Attrs: nounwind
declare ptr @strncpy(ptr noundef, ptr noundef, i64 noundef) #2

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

!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, !13, i64 64}
!10 = !{!"super_block", !11, i64 0, !6, i64 96, !6, i64 100, !13, i64 104, !13, i64 112}
!11 = !{!"squashfs_super_block", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !12, i64 20, !12, i64 22, !12, i64 24, !12, i64 26, !12, i64 28, !12, i64 30, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88}
!12 = !{!"short", !7, i64 0}
!13 = !{!"long long", !7, i64 0}
!14 = !{!13, !13, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!7, !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}
!22 = distinct !{!22, !19}
!23 = distinct !{!23, !19}
!24 = distinct !{!24, !19}
!25 = !{!26, !6, i64 84}
!26 = !{!"inode", !6, i64 0, !16, i64 8, !13, i64 16, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !13, i64 48, !16, i64 56, !27, i64 64, !6, i64 72, !6, i64 76, !7, i64 80, !6, i64 84}
!27 = !{!"long", !7, i64 0}
!28 = !{!26, !6, i64 76}
!29 = !{!26, !6, i64 32}
!30 = !{!26, !6, i64 40}
!31 = !{!26, !6, i64 72}
!32 = !{!26, !27, i64 64}
!33 = !{!26, !6, i64 36}
!34 = distinct !{!34, !19}
!35 = distinct !{!35, !19}
!36 = distinct !{!36, !19}
!37 = distinct !{!37, !19}
!38 = distinct !{!38, !19}
!39 = distinct !{!39, !19}
!40 = distinct !{!40, !19}
!41 = distinct !{!41, !19}
!42 = distinct !{!42, !19}
!43 = distinct !{!43, !19}
!44 = distinct !{!44, !19}
!45 = !{!26, !13, i64 16}
!46 = !{!26, !6, i64 44}
!47 = !{!48, !6, i64 20}
!48 = !{!"squashfs_dir_inode_header_3", !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 18, !6, i64 20, !6, i64 24}
!49 = !{!26, !13, i64 48}
!50 = distinct !{!50, !19}
!51 = distinct !{!51, !19}
!52 = distinct !{!52, !19}
!53 = distinct !{!53, !19}
!54 = distinct !{!54, !19}
!55 = distinct !{!55, !19}
!56 = distinct !{!56, !19}
!57 = distinct !{!57, !19}
!58 = distinct !{!58, !19}
!59 = distinct !{!59, !19}
!60 = distinct !{!60, !19}
!61 = distinct !{!61, !19}
!62 = !{!63, !6, i64 21}
!63 = !{!"squashfs_ldir_inode_header_3", !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 19, !6, i64 21, !6, i64 25, !6, i64 27, !7, i64 31}
!64 = distinct !{!64, !19}
!65 = distinct !{!65, !19}
!66 = distinct !{!66, !19}
!67 = distinct !{!67, !19}
!68 = distinct !{!68, !19}
!69 = !{!70, !6, i64 4}
!70 = !{!"squashfs_reg_inode_header_3", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 8, !13, i64 12, !6, i64 20, !6, i64 24, !6, i64 28, !7, i64 32}
!71 = distinct !{!71, !19}
!72 = !{!70, !6, i64 8}
!73 = distinct !{!73, !19}
!74 = !{!70, !13, i64 12}
!75 = distinct !{!75, !19}
!76 = !{!70, !6, i64 20}
!77 = distinct !{!77, !19}
!78 = !{!70, !6, i64 24}
!79 = distinct !{!79, !19}
!80 = !{!70, !6, i64 28}
!81 = !{!10, !6, i64 12}
!82 = !{!26, !6, i64 28}
!83 = !{!26, !6, i64 24}
!84 = !{!10, !12, i64 22}
!85 = !{!26, !6, i64 0}
!86 = !{!26, !7, i64 80}
!87 = !{!26, !16, i64 8}
!88 = distinct !{!88, !19}
!89 = distinct !{!89, !19}
!90 = distinct !{!90, !19}
!91 = distinct !{!91, !19}
!92 = distinct !{!92, !19}
!93 = !{!94, !6, i64 4}
!94 = !{!"squashfs_lreg_inode_header_3", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 8, !6, i64 12, !13, i64 16, !6, i64 24, !6, i64 28, !13, i64 32, !7, i64 40}
!95 = distinct !{!95, !19}
!96 = !{!94, !6, i64 8}
!97 = distinct !{!97, !19}
!98 = !{!94, !6, i64 12}
!99 = distinct !{!99, !19}
!100 = !{!94, !13, i64 16}
!101 = distinct !{!101, !19}
!102 = !{!94, !6, i64 24}
!103 = distinct !{!103, !19}
!104 = !{!94, !6, i64 28}
!105 = distinct !{!105, !19}
!106 = !{!94, !13, i64 32}
!107 = distinct !{!107, !19}
!108 = distinct !{!108, !19}
!109 = distinct !{!109, !19}
!110 = distinct !{!110, !19}
!111 = distinct !{!111, !19}
!112 = !{!113, !6, i64 4}
!113 = !{!"squashfs_symlink_inode_header_3", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 8, !6, i64 12, !12, i64 16, !7, i64 18}
!114 = distinct !{!114, !19}
!115 = !{!113, !6, i64 8}
!116 = distinct !{!116, !19}
!117 = !{!113, !6, i64 12}
!118 = distinct !{!118, !19}
!119 = !{!113, !12, i64 16}
!120 = !{!26, !16, i64 56}
!121 = distinct !{!121, !19}
!122 = distinct !{!122, !19}
!123 = distinct !{!123, !19}
!124 = distinct !{!124, !19}
!125 = distinct !{!125, !19}
!126 = !{!127, !6, i64 4}
!127 = !{!"squashfs_dev_inode_header_3", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 8, !6, i64 12, !12, i64 16}
!128 = distinct !{!128, !19}
!129 = !{!127, !6, i64 8}
!130 = distinct !{!130, !19}
!131 = !{!127, !6, i64 12}
!132 = distinct !{!132, !19}
!133 = !{!127, !12, i64 16}


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

%struct.super_block = type { %struct.squashfs_super_block, i32, i32, i64, i64 }
%struct.squashfs_super_block = type { i32, i32, i32, i32, i32, i16, i16, i16, i16, i16, i16, i64, i64, i64, i64, i64, i64, i64, i64 }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%union.squashfs_inode_header_3 = type { %struct.squashfs_lreg_inode_header_3 }
%struct.squashfs_lreg_inode_header_3 = type { i32, i32, i32, i32, i64, i32, i32, i64, [0 x i16] }
%struct.inode = type { i32, ptr, i64, i32, i32, i32, i32, i32, i32, i64, ptr, i64, i32, i32, i8, i32 }

@sBlk = external local_unnamed_addr global %struct.super_block, align 8
@screen_mutex = external global %union.pthread_mutex_t, align 8
@stderr = external local_unnamed_addr global ptr, align 8
@swap = external local_unnamed_addr global i32, align 4
@read_inode_3.header = external hidden local_unnamed_addr global %union.squashfs_inode_header_3, align 1
@inode_table_hash = external global [65536 x ptr], align 16
@inode_table = external local_unnamed_addr global ptr, align 8
@read_inode_3.i = external hidden global %struct.inode, align 8
@.str.4 = external hidden unnamed_addr constant [68 x i8], align 1
@uid_table = external local_unnamed_addr global ptr, align 8
@guid_table = external local_unnamed_addr global ptr, align 8
@lookup_type = external local_unnamed_addr global [0 x i32], align 4
@.str.5 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [60 x i8], align 1

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #0

; Function Attrs: nounwind
declare i32 @pthread_mutex_lock(ptr noundef) local_unnamed_addr #1

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

; Function Attrs: nounwind
declare i32 @pthread_mutex_unlock(ptr noundef) local_unnamed_addr #1

; Function Attrs: noreturn nounwind
declare void @exit(i32 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: nounwind uwtable
define dso_local noundef nonnull ptr @read_inode_3(i32 noundef %0, i32 noundef %1) local_unnamed_addr #5 {
  %3 = load i64, ptr getelementptr inbounds (i8, ptr @sBlk, i64 64), align 8, !tbaa !5
  %4 = zext i32 %0 to i64
  %5 = add nsw i64 %3, %4
  %6 = tail call i32 @lookup_entry(ptr noundef nonnull @inode_table_hash, i64 noundef %5) #8
  %7 = load ptr, ptr @inode_table, align 8, !tbaa !13
  %8 = sext i32 %6 to i64
  %9 = getelementptr inbounds i8, ptr %7, i64 %8
  %10 = zext i32 %1 to i64
  %11 = getelementptr inbounds i8, ptr %9, i64 %10
  %12 = icmp eq i32 %6, -1
  br i1 %12, label %13, label %18

13:                                               ; preds = %2
  %14 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull @screen_mutex) #8
  %15 = load ptr, ptr @stderr, align 8, !tbaa !13
  %16 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15, ptr noundef nonnull @.str.4, i64 noundef %5) #9
  %17 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @screen_mutex) #8
  tail call void @exit(i32 noundef 1) #10
  unreachable

18:                                               ; preds = %2
  %19 = load i32, ptr @swap, align 4, !tbaa !15
  %.not = icmp eq i32 %19, 0
  br i1 %.not, label %27, label %20

20:                                               ; preds = %18
  %.sroa.02779.0.copyload = load i8, ptr %11, align 1
  %.sroa.52781.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.52781.0.copyload = load i8, ptr %.sroa.52781.0..sroa_idx, align 1
  %.sroa.62782.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.62782.0.copyload = load i8, ptr %.sroa.62782.0..sroa_idx, align 1
  %.sroa.72783.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.72783.0.copyload = load i8, ptr %.sroa.72783.0..sroa_idx, align 1
  %.sroa.82784.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.82784.0.copyload = load i8, ptr %.sroa.82784.0..sroa_idx, align 1
  %.sroa.92785.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.92785.0.copyload = load i8, ptr %.sroa.92785.0..sroa_idx, align 1
  %.sroa.102786.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.102786.0.copyload = load i8, ptr %.sroa.102786.0..sroa_idx, align 1
  %.sroa.112787.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.112787.0.copyload = load i8, ptr %.sroa.112787.0..sroa_idx, align 1
  %.sroa.122788.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.122788.0.copyload = load i8, ptr %.sroa.122788.0..sroa_idx, align 1
  %.sroa.132789.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.132789.0.copyload = load i8, ptr %.sroa.132789.0..sroa_idx, align 1
  %.sroa.142790.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.142790.0.copyload = load i8, ptr %.sroa.142790.0..sroa_idx, align 1
  %.sroa.152791.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.152791.0.copyload = load i8, ptr %.sroa.152791.0..sroa_idx, align 1
  %.sroa.212753.0.insert.ext = zext i8 %.sroa.02779.0.copyload to i64
  %.sroa.212753.0.insert.shift = shl nuw nsw i64 %.sroa.212753.0.insert.ext, 12
  %21 = lshr i64 %.sroa.212753.0.insert.ext, 4
  %22 = trunc nuw nsw i64 %21 to i32
  %.sroa.182727.0.insert.ext2729 = zext i8 %.sroa.52781.0.copyload to i64
  %.sroa.182727.0.insert.shift2730 = shl nuw nsw i64 %.sroa.182727.0.insert.ext2729, 4
  %.sroa.182727.0.insert.insert2732 = or disjoint i64 %.sroa.212753.0.insert.shift, %.sroa.182727.0.insert.shift2730
  %tr.sh.diff = trunc nuw nsw i64 %.sroa.182727.0.insert.insert2732 to i32
  %23 = and i32 %tr.sh.diff, 65520
  %.sroa.212753.0.insert.ext2760 = zext i8 %.sroa.62782.0.copyload to i32
  %.sroa.212753.0.insert.shift2761 = shl nuw nsw i32 %.sroa.212753.0.insert.ext2760, 16
  %24 = or disjoint i32 %23, %.sroa.212753.0.insert.shift2761
  %.sroa.212753.0.insert.ext2765 = zext i8 %.sroa.72783.0.copyload to i32
  %.sroa.212753.0.insert.shift2766 = shl nuw i32 %.sroa.212753.0.insert.ext2765, 24
  %25 = or disjoint i32 %24, %.sroa.212753.0.insert.shift2766
  %26 = or disjoint i32 %25, %22
  store i32 %26, ptr @read_inode_3.header, align 1
  %.sroa.212753.0.insert.ext2770 = zext i8 %.sroa.82784.0.copyload to i32
  %.sroa.212753.0.insert.shift2771 = shl nuw i32 %.sroa.212753.0.insert.ext2770, 24
  %.sroa.182727.0.insert.ext2744 = zext i8 %.sroa.92785.0.copyload to i32
  %.sroa.182727.0.insert.shift2745 = shl nuw nsw i32 %.sroa.182727.0.insert.ext2744, 16
  %.sroa.182727.0.insert.insert2747 = or disjoint i32 %.sroa.212753.0.insert.shift2771, %.sroa.182727.0.insert.shift2745
  %.sroa.162701.0.insert.ext2718 = zext i8 %.sroa.102786.0.copyload to i32
  %.sroa.162701.0.insert.shift2719 = shl nuw nsw i32 %.sroa.162701.0.insert.ext2718, 8
  %.sroa.162701.0.insert.insert2721 = or disjoint i32 %.sroa.182727.0.insert.insert2747, %.sroa.162701.0.insert.shift2719
  %.sroa.142675.0.insert.ext2692 = zext i8 %.sroa.112787.0.copyload to i32
  %.sroa.142675.0.insert.insert2695 = or disjoint i32 %.sroa.162701.0.insert.insert2721, %.sroa.142675.0.insert.ext2692
  store i32 %.sroa.142675.0.insert.insert2695, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !16
  %.sroa.212753.0.insert.ext2775 = zext i8 %.sroa.122788.0.copyload to i32
  %.sroa.212753.0.insert.shift2776 = shl nuw i32 %.sroa.212753.0.insert.ext2775, 24
  %.sroa.182727.0.insert.ext2749 = zext i8 %.sroa.132789.0.copyload to i32
  %.sroa.182727.0.insert.shift2750 = shl nuw nsw i32 %.sroa.182727.0.insert.ext2749, 16
  %.sroa.182727.0.insert.insert2752 = or disjoint i32 %.sroa.212753.0.insert.shift2776, %.sroa.182727.0.insert.shift2750
  %.sroa.162701.0.insert.ext2723 = zext i8 %.sroa.142790.0.copyload to i32
  %.sroa.162701.0.insert.shift2724 = shl nuw nsw i32 %.sroa.162701.0.insert.ext2723, 8
  %.sroa.162701.0.insert.insert2726 = or disjoint i32 %.sroa.182727.0.insert.insert2752, %.sroa.162701.0.insert.shift2724
  %.sroa.142675.0.insert.ext2697 = zext i8 %.sroa.152791.0.copyload to i32
  %.sroa.142675.0.insert.insert2700 = or disjoint i32 %.sroa.162701.0.insert.insert2726, %.sroa.142675.0.insert.ext2697
  store i32 %.sroa.142675.0.insert.insert2700, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !16
  br label %28

27:                                               ; preds = %18
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) @read_inode_3.header, ptr noundef nonnull align 1 dereferenceable(12) %11, i64 12, i1 false)
  %.pre = load i32, ptr @read_inode_3.header, align 1
  br label %28

28:                                               ; preds = %27, %20
  %29 = phi i32 [ %.pre, %27 ], [ %26, %20 ]
  store i32 -1, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 84), align 4, !tbaa !17
  %30 = load ptr, ptr @uid_table, align 8, !tbaa !13
  %31 = lshr i32 %29, 16
  %32 = and i32 %31, 255
  %33 = zext nneg i32 %32 to i64
  %34 = getelementptr inbounds i32, ptr %30, i64 %33
  %35 = load i32, ptr %34, align 4, !tbaa !15
  store i32 %35, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 76), align 4, !tbaa !20
  %36 = lshr i32 %29, 24
  %37 = icmp eq i32 %36, 255
  br i1 %37, label %43, label %38

38:                                               ; preds = %28
  %39 = load ptr, ptr @guid_table, align 8, !tbaa !13
  %40 = zext nneg i32 %36 to i64
  %41 = getelementptr inbounds i32, ptr %39, i64 %40
  %42 = load i32, ptr %41, align 4, !tbaa !15
  br label %43

43:                                               ; preds = %28, %38
  %44 = phi i32 [ %42, %38 ], [ %35, %28 ]
  store i32 %44, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 32), align 8, !tbaa !21
  %45 = and i32 %29, 15
  %46 = zext nneg i32 %45 to i64
  %47 = getelementptr inbounds [0 x i32], ptr @lookup_type, i64 0, i64 %46
  %48 = load i32, ptr %47, align 4, !tbaa !15
  %49 = lshr i32 %29, 4
  %50 = and i32 %49, 4095
  %51 = or i32 %48, %50
  store i32 %51, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 40), align 8, !tbaa !22
  store i32 %45, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 72), align 8, !tbaa !23
  %52 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !16
  %53 = zext i32 %52 to i64
  store i64 %53, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 64), align 8, !tbaa !24
  %54 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !16
  store i32 %54, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 36), align 4, !tbaa !25
  switch i32 %45, label %191 [
    i32 1, label %55
    i32 8, label %74
    i32 2, label %94
    i32 9, label %126
    i32 3, label %154
    i32 4, label %178
    i32 5, label %178
    i32 6, label %190
    i32 7, label %190
  ]

55:                                               ; preds = %43
  br i1 %.not, label %66, label %56

56:                                               ; preds = %55
  %.sroa.02624.0.copyload = load i8, ptr %11, align 1
  %.sroa.52626.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.52626.0.copyload = load i8, ptr %.sroa.52626.0..sroa_idx, align 1
  %.sroa.62627.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.62627.0.copyload = load i8, ptr %.sroa.62627.0..sroa_idx, align 1
  %.sroa.72628.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.72628.0.copyload = load i8, ptr %.sroa.72628.0..sroa_idx, align 1
  %.sroa.82629.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.82629.0.copyload = load i8, ptr %.sroa.82629.0..sroa_idx, align 1
  %.sroa.92630.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.92630.0.copyload = load i8, ptr %.sroa.92630.0..sroa_idx, align 1
  %.sroa.102631.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.102631.0.copyload = load i8, ptr %.sroa.102631.0..sroa_idx, align 1
  %.sroa.112632.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.112632.0.copyload = load i8, ptr %.sroa.112632.0..sroa_idx, align 1
  %.sroa.122633.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.122633.0.copyload = load i8, ptr %.sroa.122633.0..sroa_idx, align 1
  %.sroa.132634.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.132634.0.copyload = load i8, ptr %.sroa.132634.0..sroa_idx, align 1
  %.sroa.142635.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.142635.0.copyload = load i8, ptr %.sroa.142635.0..sroa_idx, align 1
  %.sroa.152636.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.152636.0.copyload = load i8, ptr %.sroa.152636.0..sroa_idx, align 1
  %.sroa.162637.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.162637.0.copyload = load i8, ptr %.sroa.162637.0..sroa_idx, align 1
  %.sroa.172638.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.172638.0.copyload = load i8, ptr %.sroa.172638.0..sroa_idx, align 1
  %.sroa.182639.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.182639.0.copyload = load i8, ptr %.sroa.182639.0..sroa_idx, align 1
  %.sroa.192640.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 15
  %.sroa.192640.0.copyload = load i8, ptr %.sroa.192640.0..sroa_idx, align 1
  %.sroa.202641.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.202641.0.copyload = load i8, ptr %.sroa.202641.0..sroa_idx, align 1
  %.sroa.212642.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.212642.0.copyload = load i8, ptr %.sroa.212642.0..sroa_idx, align 1
  %.sroa.222643.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 18
  %.sroa.222643.0.copyload = load i8, ptr %.sroa.222643.0..sroa_idx, align 1
  %.sroa.242645.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 19
  %.sroa.242645.0.copyload = load i8, ptr %.sroa.242645.0..sroa_idx, align 1
  %.sroa.252646.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 20
  %.sroa.252646.0.copyload = load i8, ptr %.sroa.252646.0..sroa_idx, align 1
  %.sroa.262647.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 21
  %.sroa.262647.0.copyload = load i8, ptr %.sroa.262647.0..sroa_idx, align 1
  %.sroa.272648.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 22
  %.sroa.272648.0.copyload = load i8, ptr %.sroa.272648.0..sroa_idx, align 1
  %.sroa.282649.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 23
  %.sroa.282649.0.copyload = load i8, ptr %.sroa.282649.0..sroa_idx, align 1
  %.sroa.292650.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 24
  %.sroa.292650.0.copyload = load i8, ptr %.sroa.292650.0..sroa_idx, align 1
  %.sroa.302651.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 25
  %.sroa.302651.0.copyload = load i8, ptr %.sroa.302651.0..sroa_idx, align 1
  %.sroa.312652.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 26
  %.sroa.312652.0.copyload = load i8, ptr %.sroa.312652.0..sroa_idx, align 1
  %.sroa.322653.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 27
  %.sroa.322653.0.copyload = load i8, ptr %.sroa.322653.0..sroa_idx, align 1
  %.sroa.432573.0.insert.ext = zext i8 %.sroa.02624.0.copyload to i64
  %.sroa.432573.0.insert.shift = shl nuw nsw i64 %.sroa.432573.0.insert.ext, 12
  %57 = lshr i64 %.sroa.432573.0.insert.ext, 4
  %58 = trunc nuw nsw i64 %57 to i32
  %.sroa.352522.0.insert.ext2524 = zext i8 %.sroa.52626.0.copyload to i64
  %.sroa.352522.0.insert.shift2525 = shl nuw nsw i64 %.sroa.352522.0.insert.ext2524, 4
  %.sroa.352522.0.insert.insert2527 = or disjoint i64 %.sroa.432573.0.insert.shift, %.sroa.352522.0.insert.shift2525
  %tr.sh.diff721 = trunc nuw nsw i64 %.sroa.352522.0.insert.insert2527 to i32
  %59 = and i32 %tr.sh.diff721, 65520
  %.sroa.432573.0.insert.ext2580 = zext i8 %.sroa.62627.0.copyload to i32
  %.sroa.432573.0.insert.shift2581 = shl nuw nsw i32 %.sroa.432573.0.insert.ext2580, 16
  %60 = or disjoint i32 %59, %.sroa.432573.0.insert.shift2581
  %.sroa.432573.0.insert.ext2585 = zext i8 %.sroa.72628.0.copyload to i32
  %.sroa.432573.0.insert.shift2586 = shl nuw i32 %.sroa.432573.0.insert.ext2585, 24
  %61 = or disjoint i32 %60, %.sroa.432573.0.insert.shift2586
  %62 = or disjoint i32 %61, %58
  store i32 %62, ptr @read_inode_3.header, align 1
  %.sroa.432573.0.insert.ext2590 = zext i8 %.sroa.82629.0.copyload to i32
  %.sroa.432573.0.insert.shift2591 = shl nuw i32 %.sroa.432573.0.insert.ext2590, 24
  %.sroa.352522.0.insert.ext2539 = zext i8 %.sroa.92630.0.copyload to i32
  %.sroa.352522.0.insert.shift2540 = shl nuw nsw i32 %.sroa.352522.0.insert.ext2539, 16
  %.sroa.352522.0.insert.insert2542 = or disjoint i32 %.sroa.432573.0.insert.shift2591, %.sroa.352522.0.insert.shift2540
  %.sroa.292471.0.insert.ext2488 = zext i8 %.sroa.102631.0.copyload to i32
  %.sroa.292471.0.insert.shift2489 = shl nuw nsw i32 %.sroa.292471.0.insert.ext2488, 8
  %.sroa.292471.0.insert.insert2491 = or disjoint i32 %.sroa.352522.0.insert.insert2542, %.sroa.292471.0.insert.shift2489
  %.sroa.242420.0.insert.ext2437 = zext i8 %.sroa.112632.0.copyload to i32
  %.sroa.242420.0.insert.insert2440 = or disjoint i32 %.sroa.292471.0.insert.insert2491, %.sroa.242420.0.insert.ext2437
  store i32 %.sroa.242420.0.insert.insert2440, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !16
  %.sroa.432573.0.insert.ext2595 = zext i8 %.sroa.122633.0.copyload to i32
  %.sroa.432573.0.insert.shift2596 = shl nuw i32 %.sroa.432573.0.insert.ext2595, 24
  %.sroa.352522.0.insert.ext2544 = zext i8 %.sroa.132634.0.copyload to i32
  %.sroa.352522.0.insert.shift2545 = shl nuw nsw i32 %.sroa.352522.0.insert.ext2544, 16
  %.sroa.352522.0.insert.insert2547 = or disjoint i32 %.sroa.432573.0.insert.shift2596, %.sroa.352522.0.insert.shift2545
  %.sroa.292471.0.insert.ext2493 = zext i8 %.sroa.142635.0.copyload to i32
  %.sroa.292471.0.insert.shift2494 = shl nuw nsw i32 %.sroa.292471.0.insert.ext2493, 8
  %.sroa.292471.0.insert.insert2496 = or disjoint i32 %.sroa.352522.0.insert.insert2547, %.sroa.292471.0.insert.shift2494
  %.sroa.242420.0.insert.ext2442 = zext i8 %.sroa.152636.0.copyload to i32
  %.sroa.242420.0.insert.insert2445 = or disjoint i32 %.sroa.292471.0.insert.insert2496, %.sroa.242420.0.insert.ext2442
  store i32 %.sroa.242420.0.insert.insert2445, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !16
  %.sroa.432573.0.insert.ext2600 = zext i8 %.sroa.162637.0.copyload to i32
  %.sroa.432573.0.insert.shift2601 = shl nuw i32 %.sroa.432573.0.insert.ext2600, 24
  %.sroa.352522.0.insert.ext2549 = zext i8 %.sroa.172638.0.copyload to i32
  %.sroa.352522.0.insert.shift2550 = shl nuw nsw i32 %.sroa.352522.0.insert.ext2549, 16
  %.sroa.352522.0.insert.insert2552 = or disjoint i32 %.sroa.432573.0.insert.shift2601, %.sroa.352522.0.insert.shift2550
  %.sroa.292471.0.insert.ext2498 = zext i8 %.sroa.182639.0.copyload to i32
  %.sroa.292471.0.insert.shift2499 = shl nuw nsw i32 %.sroa.292471.0.insert.ext2498, 8
  %.sroa.292471.0.insert.insert2501 = or disjoint i32 %.sroa.352522.0.insert.insert2552, %.sroa.292471.0.insert.shift2499
  %.sroa.242420.0.insert.ext2447 = zext i8 %.sroa.192640.0.copyload to i32
  %.sroa.242420.0.insert.insert2450 = or disjoint i32 %.sroa.292471.0.insert.insert2501, %.sroa.242420.0.insert.ext2447
  store i32 %.sroa.242420.0.insert.insert2450, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 12), align 1, !tbaa !16
  %.sroa.432573.0.insert.ext2605 = zext i8 %.sroa.202641.0.copyload to i64
  %.sroa.432573.0.insert.shift2606 = shl nuw i64 %.sroa.432573.0.insert.ext2605, 56
  %.sroa.352522.0.insert.ext2554 = zext i8 %.sroa.212642.0.copyload to i64
  %.sroa.352522.0.insert.shift2555 = shl nuw nsw i64 %.sroa.352522.0.insert.ext2554, 48
  %.sroa.352522.0.insert.insert2557 = or disjoint i64 %.sroa.432573.0.insert.shift2606, %.sroa.352522.0.insert.shift2555
  %.sroa.292471.0.insert.ext2503 = zext i8 %.sroa.222643.0.copyload to i64
  %.sroa.292471.0.insert.shift2504 = shl nuw nsw i64 %.sroa.292471.0.insert.ext2503, 40
  %.sroa.292471.0.insert.insert2506 = or disjoint i64 %.sroa.352522.0.insert.insert2557, %.sroa.292471.0.insert.shift2504
  %63 = lshr i64 %.sroa.292471.0.insert.insert2506, 45
  %.sroa.432573.0.insert.shift2611 = shl nuw nsw i64 %.sroa.292471.0.insert.ext2503, 27
  %.sroa.352522.0.insert.ext2559 = zext i8 %.sroa.242645.0.copyload to i64
  %.sroa.352522.0.insert.shift2560 = shl nuw nsw i64 %.sroa.352522.0.insert.ext2559, 19
  %.sroa.352522.0.insert.insert2562 = or disjoint i64 %.sroa.432573.0.insert.shift2611, %.sroa.352522.0.insert.shift2560
  %64 = or disjoint i64 %.sroa.352522.0.insert.insert2562, %63
  %65 = trunc i64 %64 to i32
  store i32 %65, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1
  %.sroa.432573.0.insert.ext2615 = zext i8 %.sroa.252646.0.copyload to i32
  %.sroa.432573.0.insert.shift2616 = shl nuw i32 %.sroa.432573.0.insert.ext2615, 24
  %.sroa.352522.0.insert.ext2564 = zext i8 %.sroa.262647.0.copyload to i32
  %.sroa.352522.0.insert.shift2565 = shl nuw nsw i32 %.sroa.352522.0.insert.ext2564, 16
  %.sroa.352522.0.insert.insert2567 = or disjoint i32 %.sroa.432573.0.insert.shift2616, %.sroa.352522.0.insert.shift2565
  %.sroa.292471.0.insert.ext2513 = zext i8 %.sroa.272648.0.copyload to i32
  %.sroa.292471.0.insert.shift2514 = shl nuw nsw i32 %.sroa.292471.0.insert.ext2513, 8
  %.sroa.292471.0.insert.insert2516 = or disjoint i32 %.sroa.352522.0.insert.insert2567, %.sroa.292471.0.insert.shift2514
  %.sroa.242420.0.insert.ext2462 = zext i8 %.sroa.282649.0.copyload to i32
  %.sroa.242420.0.insert.insert2465 = or disjoint i32 %.sroa.292471.0.insert.insert2516, %.sroa.242420.0.insert.ext2462
  store i32 %.sroa.242420.0.insert.insert2465, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 20), align 1, !tbaa !16
  %.sroa.432573.0.insert.ext2620 = zext i8 %.sroa.292650.0.copyload to i32
  %.sroa.432573.0.insert.shift2621 = shl nuw i32 %.sroa.432573.0.insert.ext2620, 24
  %.sroa.352522.0.insert.ext2569 = zext i8 %.sroa.302651.0.copyload to i32
  %.sroa.352522.0.insert.shift2570 = shl nuw nsw i32 %.sroa.352522.0.insert.ext2569, 16
  %.sroa.352522.0.insert.insert2572 = or disjoint i32 %.sroa.432573.0.insert.shift2621, %.sroa.352522.0.insert.shift2570
  %.sroa.292471.0.insert.ext2518 = zext i8 %.sroa.312652.0.copyload to i32
  %.sroa.292471.0.insert.shift2519 = shl nuw nsw i32 %.sroa.292471.0.insert.ext2518, 8
  %.sroa.292471.0.insert.insert2521 = or disjoint i32 %.sroa.352522.0.insert.insert2572, %.sroa.292471.0.insert.shift2519
  %.sroa.242420.0.insert.ext2467 = zext i8 %.sroa.322653.0.copyload to i32
  %.sroa.242420.0.insert.insert2470 = or disjoint i32 %.sroa.292471.0.insert.insert2521, %.sroa.242420.0.insert.ext2467
  store i32 %.sroa.242420.0.insert.insert2470, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 24), align 1, !tbaa !16
  br label %67

66:                                               ; preds = %55
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(28) @read_inode_3.header, ptr noundef nonnull align 1 dereferenceable(28) %11, i64 28, i1 false)
  %.pre2802 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 20), align 1, !tbaa !26
  br label %67

67:                                               ; preds = %66, %56
  %68 = phi i32 [ %.pre2802, %66 ], [ %.sroa.242420.0.insert.insert2465, %56 ]
  %69 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1
  %70 = and i32 %69, 524287
  %71 = zext nneg i32 %70 to i64
  store i64 %71, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 16), align 8, !tbaa !28
  %72 = lshr i32 %69, 19
  store i32 %72, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 44), align 4, !tbaa !29
  %73 = zext i32 %68 to i64
  store i64 %73, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 48), align 8, !tbaa !30
  br label %198

74:                                               ; preds = %43
  br i1 %.not, label %85, label %75

75:                                               ; preds = %74
  %.sroa.02346.0.copyload = load i8, ptr %11, align 1
  %.sroa.52348.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.52348.0.copyload = load i8, ptr %.sroa.52348.0..sroa_idx, align 1
  %.sroa.62349.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.62349.0.copyload = load i8, ptr %.sroa.62349.0..sroa_idx, align 1
  %.sroa.72350.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.72350.0.copyload = load i8, ptr %.sroa.72350.0..sroa_idx, align 1
  %.sroa.82351.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.82351.0.copyload = load i8, ptr %.sroa.82351.0..sroa_idx, align 1
  %.sroa.92352.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.92352.0.copyload = load i8, ptr %.sroa.92352.0..sroa_idx, align 1
  %.sroa.102353.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.102353.0.copyload = load i8, ptr %.sroa.102353.0..sroa_idx, align 1
  %.sroa.112354.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.112354.0.copyload = load i8, ptr %.sroa.112354.0..sroa_idx, align 1
  %.sroa.122355.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.122355.0.copyload = load i8, ptr %.sroa.122355.0..sroa_idx, align 1
  %.sroa.132356.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.132356.0.copyload = load i8, ptr %.sroa.132356.0..sroa_idx, align 1
  %.sroa.142357.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.142357.0.copyload = load i8, ptr %.sroa.142357.0..sroa_idx, align 1
  %.sroa.152358.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.152358.0.copyload = load i8, ptr %.sroa.152358.0..sroa_idx, align 1
  %.sroa.162359.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.162359.0.copyload = load i8, ptr %.sroa.162359.0..sroa_idx, align 1
  %.sroa.172360.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.172360.0.copyload = load i8, ptr %.sroa.172360.0..sroa_idx, align 1
  %.sroa.182361.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.182361.0.copyload = load i8, ptr %.sroa.182361.0..sroa_idx, align 1
  %.sroa.192362.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 15
  %.sroa.192362.0.copyload = load i8, ptr %.sroa.192362.0..sroa_idx, align 1
  %.sroa.202363.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.202363.0.copyload = load i8, ptr %.sroa.202363.0..sroa_idx, align 1
  %.sroa.212364.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.212364.0.copyload = load i8, ptr %.sroa.212364.0..sroa_idx, align 1
  %.sroa.222365.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 18
  %.sroa.222365.0.copyload = load i8, ptr %.sroa.222365.0..sroa_idx, align 1
  %.sroa.232366.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 19
  %.sroa.232366.0.copyload = load i8, ptr %.sroa.232366.0..sroa_idx, align 1
  %.sroa.252368.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 20
  %.sroa.252368.0.copyload = load i8, ptr %.sroa.252368.0..sroa_idx, align 1
  %.sroa.262369.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 21
  %.sroa.262369.0.copyload = load i8, ptr %.sroa.262369.0..sroa_idx, align 1
  %.sroa.272370.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 22
  %.sroa.272370.0.copyload = load i8, ptr %.sroa.272370.0..sroa_idx, align 1
  %.sroa.282371.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 23
  %.sroa.282371.0.copyload = load i8, ptr %.sroa.282371.0..sroa_idx, align 1
  %.sroa.292372.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 24
  %.sroa.292372.0.copyload = load i8, ptr %.sroa.292372.0..sroa_idx, align 1
  %.sroa.302373.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 25
  %.sroa.302373.0.copyload = load i8, ptr %.sroa.302373.0..sroa_idx, align 1
  %.sroa.312374.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 26
  %.sroa.312374.0.copyload = load i8, ptr %.sroa.312374.0..sroa_idx, align 1
  %.sroa.322375.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 27
  %.sroa.322375.0.copyload = load i8, ptr %.sroa.322375.0..sroa_idx, align 1
  %.sroa.332376.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 28
  %.sroa.332376.0.copyload = load i8, ptr %.sroa.332376.0..sroa_idx, align 1
  %.sroa.342377.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 29
  %.sroa.342377.0.copyload = load i8, ptr %.sroa.342377.0..sroa_idx, align 1
  %.sroa.352378.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 30
  %.sroa.352378.0.copyload = load i8, ptr %.sroa.352378.0..sroa_idx, align 1
  %.sroa.47.0.insert.ext = zext i8 %.sroa.02346.0.copyload to i64
  %.sroa.47.0.insert.shift = shl nuw nsw i64 %.sroa.47.0.insert.ext, 12
  %76 = lshr i64 %.sroa.47.0.insert.ext, 4
  %77 = trunc nuw nsw i64 %76 to i32
  %.sroa.382235.0.insert.ext2237 = zext i8 %.sroa.52348.0.copyload to i64
  %.sroa.382235.0.insert.shift2238 = shl nuw nsw i64 %.sroa.382235.0.insert.ext2237, 4
  %.sroa.382235.0.insert.insert2240 = or disjoint i64 %.sroa.47.0.insert.shift, %.sroa.382235.0.insert.shift2238
  %tr.sh.diff712 = trunc nuw nsw i64 %.sroa.382235.0.insert.insert2240 to i32
  %78 = and i32 %tr.sh.diff712, 65520
  %.sroa.47.0.insert.ext2297 = zext i8 %.sroa.62349.0.copyload to i32
  %.sroa.47.0.insert.shift2298 = shl nuw nsw i32 %.sroa.47.0.insert.ext2297, 16
  %79 = or disjoint i32 %78, %.sroa.47.0.insert.shift2298
  %.sroa.47.0.insert.ext2302 = zext i8 %.sroa.72350.0.copyload to i32
  %.sroa.47.0.insert.shift2303 = shl nuw i32 %.sroa.47.0.insert.ext2302, 24
  %80 = or disjoint i32 %79, %.sroa.47.0.insert.shift2303
  %81 = or disjoint i32 %80, %77
  store i32 %81, ptr @read_inode_3.header, align 1
  %.sroa.47.0.insert.ext2307 = zext i8 %.sroa.82351.0.copyload to i32
  %.sroa.47.0.insert.shift2308 = shl nuw i32 %.sroa.47.0.insert.ext2307, 24
  %.sroa.382235.0.insert.ext2252 = zext i8 %.sroa.92352.0.copyload to i32
  %.sroa.382235.0.insert.shift2253 = shl nuw nsw i32 %.sroa.382235.0.insert.ext2252, 16
  %.sroa.382235.0.insert.insert2255 = or disjoint i32 %.sroa.47.0.insert.shift2308, %.sroa.382235.0.insert.shift2253
  %.sroa.322179.0.insert.ext2196 = zext i8 %.sroa.102353.0.copyload to i32
  %.sroa.322179.0.insert.shift2197 = shl nuw nsw i32 %.sroa.322179.0.insert.ext2196, 8
  %.sroa.322179.0.insert.insert2199 = or disjoint i32 %.sroa.382235.0.insert.insert2255, %.sroa.322179.0.insert.shift2197
  %.sroa.262123.0.insert.ext2140 = zext i8 %.sroa.112354.0.copyload to i32
  %.sroa.262123.0.insert.insert2143 = or disjoint i32 %.sroa.322179.0.insert.insert2199, %.sroa.262123.0.insert.ext2140
  store i32 %.sroa.262123.0.insert.insert2143, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !16
  %.sroa.47.0.insert.ext2312 = zext i8 %.sroa.122355.0.copyload to i32
  %.sroa.47.0.insert.shift2313 = shl nuw i32 %.sroa.47.0.insert.ext2312, 24
  %.sroa.382235.0.insert.ext2257 = zext i8 %.sroa.132356.0.copyload to i32
  %.sroa.382235.0.insert.shift2258 = shl nuw nsw i32 %.sroa.382235.0.insert.ext2257, 16
  %.sroa.382235.0.insert.insert2260 = or disjoint i32 %.sroa.47.0.insert.shift2313, %.sroa.382235.0.insert.shift2258
  %.sroa.322179.0.insert.ext2201 = zext i8 %.sroa.142357.0.copyload to i32
  %.sroa.322179.0.insert.shift2202 = shl nuw nsw i32 %.sroa.322179.0.insert.ext2201, 8
  %.sroa.322179.0.insert.insert2204 = or disjoint i32 %.sroa.382235.0.insert.insert2260, %.sroa.322179.0.insert.shift2202
  %.sroa.262123.0.insert.ext2145 = zext i8 %.sroa.152358.0.copyload to i32
  %.sroa.262123.0.insert.insert2148 = or disjoint i32 %.sroa.322179.0.insert.insert2204, %.sroa.262123.0.insert.ext2145
  store i32 %.sroa.262123.0.insert.insert2148, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !16
  %.sroa.47.0.insert.ext2317 = zext i8 %.sroa.162359.0.copyload to i32
  %.sroa.47.0.insert.shift2318 = shl nuw i32 %.sroa.47.0.insert.ext2317, 24
  %.sroa.382235.0.insert.ext2262 = zext i8 %.sroa.172360.0.copyload to i32
  %.sroa.382235.0.insert.shift2263 = shl nuw nsw i32 %.sroa.382235.0.insert.ext2262, 16
  %.sroa.382235.0.insert.insert2265 = or disjoint i32 %.sroa.47.0.insert.shift2318, %.sroa.382235.0.insert.shift2263
  %.sroa.322179.0.insert.ext2206 = zext i8 %.sroa.182361.0.copyload to i32
  %.sroa.322179.0.insert.shift2207 = shl nuw nsw i32 %.sroa.322179.0.insert.ext2206, 8
  %.sroa.322179.0.insert.insert2209 = or disjoint i32 %.sroa.382235.0.insert.insert2265, %.sroa.322179.0.insert.shift2207
  %.sroa.262123.0.insert.ext2150 = zext i8 %.sroa.192362.0.copyload to i32
  %.sroa.262123.0.insert.insert2153 = or disjoint i32 %.sroa.322179.0.insert.insert2209, %.sroa.262123.0.insert.ext2150
  store i32 %.sroa.262123.0.insert.insert2153, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 12), align 1, !tbaa !16
  %.sroa.47.0.insert.ext2322 = zext i8 %.sroa.202363.0.copyload to i64
  %.sroa.47.0.insert.shift2323 = shl nuw i64 %.sroa.47.0.insert.ext2322, 56
  %.sroa.382235.0.insert.ext2267 = zext i8 %.sroa.212364.0.copyload to i64
  %.sroa.382235.0.insert.shift2268 = shl nuw nsw i64 %.sroa.382235.0.insert.ext2267, 48
  %.sroa.382235.0.insert.insert2270 = or disjoint i64 %.sroa.47.0.insert.shift2323, %.sroa.382235.0.insert.shift2268
  %.sroa.322179.0.insert.ext2211 = zext i8 %.sroa.222365.0.copyload to i64
  %.sroa.322179.0.insert.shift2212 = shl nuw nsw i64 %.sroa.322179.0.insert.ext2211, 40
  %.sroa.322179.0.insert.insert2214 = or disjoint i64 %.sroa.382235.0.insert.insert2270, %.sroa.322179.0.insert.shift2212
  %.sroa.262123.0.insert.ext2155 = zext i8 %.sroa.232366.0.copyload to i64
  %.sroa.262123.0.insert.shift2156 = shl nuw nsw i64 %.sroa.262123.0.insert.ext2155, 32
  %.sroa.262123.0.insert.insert2158 = or disjoint i64 %.sroa.322179.0.insert.insert2214, %.sroa.262123.0.insert.shift2156
  %82 = lshr i64 %.sroa.262123.0.insert.insert2158, 37
  %.sroa.47.0.insert.shift2328 = shl nuw nsw i64 %.sroa.262123.0.insert.ext2155, 35
  %.sroa.382235.0.insert.ext2272 = zext i8 %.sroa.252368.0.copyload to i64
  %.sroa.382235.0.insert.shift2273 = shl nuw nsw i64 %.sroa.382235.0.insert.ext2272, 27
  %.sroa.382235.0.insert.insert2275 = or disjoint i64 %.sroa.47.0.insert.shift2328, %.sroa.382235.0.insert.shift2273
  %83 = or disjoint i64 %.sroa.382235.0.insert.insert2275, %82
  %84 = trunc i64 %83 to i40
  store i40 %84, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1
  %.sroa.47.0.insert.ext2332 = zext i8 %.sroa.262369.0.copyload to i32
  %.sroa.47.0.insert.shift2333 = shl nuw i32 %.sroa.47.0.insert.ext2332, 24
  %.sroa.382235.0.insert.ext2277 = zext i8 %.sroa.272370.0.copyload to i32
  %.sroa.382235.0.insert.shift2278 = shl nuw nsw i32 %.sroa.382235.0.insert.ext2277, 16
  %.sroa.382235.0.insert.insert2280 = or disjoint i32 %.sroa.47.0.insert.shift2333, %.sroa.382235.0.insert.shift2278
  %.sroa.322179.0.insert.ext2221 = zext i8 %.sroa.282371.0.copyload to i32
  %.sroa.322179.0.insert.shift2222 = shl nuw nsw i32 %.sroa.322179.0.insert.ext2221, 8
  %.sroa.322179.0.insert.insert2224 = or disjoint i32 %.sroa.382235.0.insert.insert2280, %.sroa.322179.0.insert.shift2222
  %.sroa.262123.0.insert.ext2165 = zext i8 %.sroa.292372.0.copyload to i32
  %.sroa.262123.0.insert.insert2168 = or disjoint i32 %.sroa.322179.0.insert.insert2224, %.sroa.262123.0.insert.ext2165
  store i32 %.sroa.262123.0.insert.insert2168, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 21), align 1, !tbaa !16
  %.sroa.47.0.insert.ext2337 = zext i8 %.sroa.302373.0.copyload to i16
  %.sroa.47.0.insert.shift2338 = shl nuw i16 %.sroa.47.0.insert.ext2337, 8
  %.sroa.382235.0.insert.ext2282 = zext i8 %.sroa.312374.0.copyload to i16
  %.sroa.382235.0.insert.insert2285 = or disjoint i16 %.sroa.47.0.insert.shift2338, %.sroa.382235.0.insert.ext2282
  store i16 %.sroa.382235.0.insert.insert2285, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 25), align 1
  %.sroa.47.0.insert.ext2342 = zext i8 %.sroa.322375.0.copyload to i32
  %.sroa.47.0.insert.shift2343 = shl nuw i32 %.sroa.47.0.insert.ext2342, 24
  %.sroa.382235.0.insert.ext2287 = zext i8 %.sroa.332376.0.copyload to i32
  %.sroa.382235.0.insert.shift2288 = shl nuw nsw i32 %.sroa.382235.0.insert.ext2287, 16
  %.sroa.382235.0.insert.insert2290 = or disjoint i32 %.sroa.47.0.insert.shift2343, %.sroa.382235.0.insert.shift2288
  %.sroa.322179.0.insert.ext2231 = zext i8 %.sroa.342377.0.copyload to i32
  %.sroa.322179.0.insert.shift2232 = shl nuw nsw i32 %.sroa.322179.0.insert.ext2231, 8
  %.sroa.322179.0.insert.insert2234 = or disjoint i32 %.sroa.382235.0.insert.insert2290, %.sroa.322179.0.insert.shift2232
  %.sroa.262123.0.insert.ext2175 = zext i8 %.sroa.352378.0.copyload to i32
  %.sroa.262123.0.insert.insert2178 = or disjoint i32 %.sroa.322179.0.insert.insert2234, %.sroa.262123.0.insert.ext2175
  store i32 %.sroa.262123.0.insert.insert2178, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 27), align 1, !tbaa !16
  br label %86

85:                                               ; preds = %74
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(31) @read_inode_3.header, ptr noundef nonnull align 1 dereferenceable(31) %11, i64 31, i1 false)
  %.pre2801 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 21), align 1, !tbaa !31
  br label %86

86:                                               ; preds = %85, %75
  %87 = phi i32 [ %.pre2801, %85 ], [ %.sroa.262123.0.insert.insert2168, %75 ]
  %88 = load i40, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1
  %89 = and i40 %88, 134217727
  %90 = zext nneg i40 %89 to i64
  store i64 %90, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 16), align 8, !tbaa !28
  %91 = lshr i40 %88, 27
  %92 = trunc nuw nsw i40 %91 to i32
  store i32 %92, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 44), align 4, !tbaa !29
  %93 = zext i32 %87 to i64
  store i64 %93, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 48), align 8, !tbaa !30
  br label %198

94:                                               ; preds = %43
  br i1 %.not, label %102, label %95

95:                                               ; preds = %94
  %.sroa.02045.0.copyload = load i8, ptr %11, align 1
  %.sroa.52047.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.52047.0.copyload = load i8, ptr %.sroa.52047.0..sroa_idx, align 1
  %.sroa.62048.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.62048.0.copyload = load i8, ptr %.sroa.62048.0..sroa_idx, align 1
  %.sroa.72049.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.72049.0.copyload = load i8, ptr %.sroa.72049.0..sroa_idx, align 1
  %.sroa.82050.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.82050.0.copyload = load i8, ptr %.sroa.82050.0..sroa_idx, align 1
  %.sroa.92051.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.92051.0.copyload = load i8, ptr %.sroa.92051.0..sroa_idx, align 1
  %.sroa.102052.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.102052.0.copyload = load i8, ptr %.sroa.102052.0..sroa_idx, align 1
  %.sroa.112053.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.112053.0.copyload = load i8, ptr %.sroa.112053.0..sroa_idx, align 1
  %.sroa.122054.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.122054.0.copyload = load i8, ptr %.sroa.122054.0..sroa_idx, align 1
  %.sroa.132055.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.132055.0.copyload = load i8, ptr %.sroa.132055.0..sroa_idx, align 1
  %.sroa.142056.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.142056.0.copyload = load i8, ptr %.sroa.142056.0..sroa_idx, align 1
  %.sroa.152057.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.152057.0.copyload = load i8, ptr %.sroa.152057.0..sroa_idx, align 1
  %.sroa.162058.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.162058.0.copyload = load i8, ptr %.sroa.162058.0..sroa_idx, align 1
  %.sroa.172059.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.172059.0.copyload = load i8, ptr %.sroa.172059.0..sroa_idx, align 1
  %.sroa.182060.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.182060.0.copyload = load i8, ptr %.sroa.182060.0..sroa_idx, align 1
  %.sroa.192061.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 15
  %.sroa.192061.0.copyload = load i8, ptr %.sroa.192061.0..sroa_idx, align 1
  %.sroa.202062.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.202062.0.copyload = load i8, ptr %.sroa.202062.0..sroa_idx, align 1
  %.sroa.212063.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.212063.0.copyload = load i8, ptr %.sroa.212063.0..sroa_idx, align 1
  %.sroa.222064.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 18
  %.sroa.222064.0.copyload = load i8, ptr %.sroa.222064.0..sroa_idx, align 1
  %.sroa.232065.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 19
  %.sroa.232065.0.copyload = load i8, ptr %.sroa.232065.0..sroa_idx, align 1
  %.sroa.242066.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 20
  %.sroa.242066.0.copyload = load i8, ptr %.sroa.242066.0..sroa_idx, align 1
  %.sroa.252067.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 21
  %.sroa.252067.0.copyload = load i8, ptr %.sroa.252067.0..sroa_idx, align 1
  %.sroa.262068.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 22
  %.sroa.262068.0.copyload = load i8, ptr %.sroa.262068.0..sroa_idx, align 1
  %.sroa.272069.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 23
  %.sroa.272069.0.copyload = load i8, ptr %.sroa.272069.0..sroa_idx, align 1
  %.sroa.282070.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 24
  %.sroa.282070.0.copyload = load i8, ptr %.sroa.282070.0..sroa_idx, align 1
  %.sroa.292071.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 25
  %.sroa.292071.0.copyload = load i8, ptr %.sroa.292071.0..sroa_idx, align 1
  %.sroa.302072.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 26
  %.sroa.302072.0.copyload = load i8, ptr %.sroa.302072.0..sroa_idx, align 1
  %.sroa.312073.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 27
  %.sroa.312073.0.copyload = load i8, ptr %.sroa.312073.0..sroa_idx, align 1
  %.sroa.322074.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 28
  %.sroa.322074.0.copyload = load i8, ptr %.sroa.322074.0..sroa_idx, align 1
  %.sroa.332075.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 29
  %.sroa.332075.0.copyload = load i8, ptr %.sroa.332075.0..sroa_idx, align 1
  %.sroa.342076.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 30
  %.sroa.342076.0.copyload = load i8, ptr %.sroa.342076.0..sroa_idx, align 1
  %.sroa.352077.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 31
  %.sroa.352077.0.copyload = load i8, ptr %.sroa.352077.0..sroa_idx, align 1
  %.sroa.45.0.insert.ext = zext i8 %.sroa.02045.0.copyload to i64
  %.sroa.45.0.insert.shift = shl nuw nsw i64 %.sroa.45.0.insert.ext, 12
  %96 = lshr i64 %.sroa.45.0.insert.ext, 4
  %97 = trunc nuw nsw i64 %96 to i32
  %.sroa.381954.0.insert.ext1956 = zext i8 %.sroa.52047.0.copyload to i64
  %.sroa.381954.0.insert.shift1957 = shl nuw nsw i64 %.sroa.381954.0.insert.ext1956, 4
  %.sroa.381954.0.insert.insert1959 = or disjoint i64 %.sroa.45.0.insert.shift, %.sroa.381954.0.insert.shift1957
  %tr.sh.diff705 = trunc nuw nsw i64 %.sroa.381954.0.insert.insert1959 to i32
  %98 = and i32 %tr.sh.diff705, 65520
  %.sroa.45.0.insert.ext2006 = zext i8 %.sroa.62048.0.copyload to i32
  %.sroa.45.0.insert.shift2007 = shl nuw nsw i32 %.sroa.45.0.insert.ext2006, 16
  %99 = or disjoint i32 %98, %.sroa.45.0.insert.shift2007
  %.sroa.45.0.insert.ext2011 = zext i8 %.sroa.72049.0.copyload to i32
  %.sroa.45.0.insert.shift2012 = shl nuw i32 %.sroa.45.0.insert.ext2011, 24
  %100 = or disjoint i32 %99, %.sroa.45.0.insert.shift2012
  %101 = or disjoint i32 %100, %97
  store i32 %101, ptr @read_inode_3.header, align 1
  %.sroa.45.0.insert.ext2016 = zext i8 %.sroa.82050.0.copyload to i32
  %.sroa.45.0.insert.shift2017 = shl nuw i32 %.sroa.45.0.insert.ext2016, 24
  %.sroa.381954.0.insert.ext1971 = zext i8 %.sroa.92051.0.copyload to i32
  %.sroa.381954.0.insert.shift1972 = shl nuw nsw i32 %.sroa.381954.0.insert.ext1971, 16
  %.sroa.381954.0.insert.insert1974 = or disjoint i32 %.sroa.45.0.insert.shift2017, %.sroa.381954.0.insert.shift1972
  %.sroa.321908.0.insert.ext1925 = zext i8 %.sroa.102052.0.copyload to i32
  %.sroa.321908.0.insert.shift1926 = shl nuw nsw i32 %.sroa.321908.0.insert.ext1925, 8
  %.sroa.321908.0.insert.insert1928 = or disjoint i32 %.sroa.381954.0.insert.insert1974, %.sroa.321908.0.insert.shift1926
  %.sroa.261862.0.insert.ext1879 = zext i8 %.sroa.112053.0.copyload to i32
  %.sroa.261862.0.insert.insert1882 = or disjoint i32 %.sroa.321908.0.insert.insert1928, %.sroa.261862.0.insert.ext1879
  store i32 %.sroa.261862.0.insert.insert1882, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !33
  %.sroa.45.0.insert.ext2021 = zext i8 %.sroa.122054.0.copyload to i32
  %.sroa.45.0.insert.shift2022 = shl nuw i32 %.sroa.45.0.insert.ext2021, 24
  %.sroa.381954.0.insert.ext1976 = zext i8 %.sroa.132055.0.copyload to i32
  %.sroa.381954.0.insert.shift1977 = shl nuw nsw i32 %.sroa.381954.0.insert.ext1976, 16
  %.sroa.381954.0.insert.insert1979 = or disjoint i32 %.sroa.45.0.insert.shift2022, %.sroa.381954.0.insert.shift1977
  %.sroa.321908.0.insert.ext1930 = zext i8 %.sroa.142056.0.copyload to i32
  %.sroa.321908.0.insert.shift1931 = shl nuw nsw i32 %.sroa.321908.0.insert.ext1930, 8
  %.sroa.321908.0.insert.insert1933 = or disjoint i32 %.sroa.381954.0.insert.insert1979, %.sroa.321908.0.insert.shift1931
  %.sroa.261862.0.insert.ext1884 = zext i8 %.sroa.152057.0.copyload to i32
  %.sroa.261862.0.insert.insert1887 = or disjoint i32 %.sroa.321908.0.insert.insert1933, %.sroa.261862.0.insert.ext1884
  store i32 %.sroa.261862.0.insert.insert1887, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !35
  %.sroa.45.0.insert.ext2026 = zext i8 %.sroa.162058.0.copyload to i64
  %.sroa.45.0.insert.shift2027 = shl nuw i64 %.sroa.45.0.insert.ext2026, 56
  %.sroa.381954.0.insert.ext1981 = zext i8 %.sroa.172059.0.copyload to i64
  %.sroa.381954.0.insert.shift1982 = shl nuw nsw i64 %.sroa.381954.0.insert.ext1981, 48
  %.sroa.381954.0.insert.insert1984 = or disjoint i64 %.sroa.45.0.insert.shift2027, %.sroa.381954.0.insert.shift1982
  %.sroa.321908.0.insert.ext1935 = zext i8 %.sroa.182060.0.copyload to i64
  %.sroa.321908.0.insert.shift1936 = shl nuw nsw i64 %.sroa.321908.0.insert.ext1935, 40
  %.sroa.321908.0.insert.insert1938 = or disjoint i64 %.sroa.381954.0.insert.insert1984, %.sroa.321908.0.insert.shift1936
  %.sroa.261862.0.insert.ext1889 = zext i8 %.sroa.192061.0.copyload to i64
  %.sroa.261862.0.insert.shift1890 = shl nuw nsw i64 %.sroa.261862.0.insert.ext1889, 32
  %.sroa.261862.0.insert.insert1892 = or disjoint i64 %.sroa.321908.0.insert.insert1938, %.sroa.261862.0.insert.shift1890
  %.sroa.251816.0.insert.ext1843 = zext i8 %.sroa.202062.0.copyload to i64
  %.sroa.251816.0.insert.shift1844 = shl nuw nsw i64 %.sroa.251816.0.insert.ext1843, 24
  %.sroa.251816.0.insert.insert1846 = or disjoint i64 %.sroa.261862.0.insert.insert1892, %.sroa.251816.0.insert.shift1844
  %.sroa.241770.0.insert.ext1797 = zext i8 %.sroa.212063.0.copyload to i64
  %.sroa.241770.0.insert.shift1798 = shl nuw nsw i64 %.sroa.241770.0.insert.ext1797, 16
  %.sroa.231724.0.insert.ext1751 = zext i8 %.sroa.222064.0.copyload to i64
  %.sroa.231724.0.insert.shift1752 = shl nuw nsw i64 %.sroa.231724.0.insert.ext1751, 8
  %.sroa.231724.0.insert.mask1753 = or disjoint i64 %.sroa.251816.0.insert.insert1846, %.sroa.241770.0.insert.shift1798
  %.sroa.01687.0.insert.ext1709 = zext i8 %.sroa.232065.0.copyload to i64
  %.sroa.01687.0.insert.mask1710 = or i64 %.sroa.231724.0.insert.mask1753, %.sroa.231724.0.insert.shift1752
  %.sroa.01687.0.insert.insert1711 = or i64 %.sroa.01687.0.insert.mask1710, %.sroa.01687.0.insert.ext1709
  store i64 %.sroa.01687.0.insert.insert1711, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 12), align 1, !tbaa !36
  %.sroa.45.0.insert.ext2031 = zext i8 %.sroa.242066.0.copyload to i32
  %.sroa.45.0.insert.shift2032 = shl nuw i32 %.sroa.45.0.insert.ext2031, 24
  %.sroa.381954.0.insert.ext1986 = zext i8 %.sroa.252067.0.copyload to i32
  %.sroa.381954.0.insert.shift1987 = shl nuw nsw i32 %.sroa.381954.0.insert.ext1986, 16
  %.sroa.381954.0.insert.insert1989 = or disjoint i32 %.sroa.45.0.insert.shift2032, %.sroa.381954.0.insert.shift1987
  %.sroa.321908.0.insert.ext1940 = zext i8 %.sroa.262068.0.copyload to i32
  %.sroa.321908.0.insert.shift1941 = shl nuw nsw i32 %.sroa.321908.0.insert.ext1940, 8
  %.sroa.321908.0.insert.insert1943 = or disjoint i32 %.sroa.381954.0.insert.insert1989, %.sroa.321908.0.insert.shift1941
  %.sroa.261862.0.insert.ext1894 = zext i8 %.sroa.272069.0.copyload to i32
  %.sroa.261862.0.insert.insert1897 = or disjoint i32 %.sroa.321908.0.insert.insert1943, %.sroa.261862.0.insert.ext1894
  store i32 %.sroa.261862.0.insert.insert1897, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 20), align 1, !tbaa !37
  %.sroa.45.0.insert.ext2036 = zext i8 %.sroa.282070.0.copyload to i32
  %.sroa.45.0.insert.shift2037 = shl nuw i32 %.sroa.45.0.insert.ext2036, 24
  %.sroa.381954.0.insert.ext1991 = zext i8 %.sroa.292071.0.copyload to i32
  %.sroa.381954.0.insert.shift1992 = shl nuw nsw i32 %.sroa.381954.0.insert.ext1991, 16
  %.sroa.381954.0.insert.insert1994 = or disjoint i32 %.sroa.45.0.insert.shift2037, %.sroa.381954.0.insert.shift1992
  %.sroa.321908.0.insert.ext1945 = zext i8 %.sroa.302072.0.copyload to i32
  %.sroa.321908.0.insert.shift1946 = shl nuw nsw i32 %.sroa.321908.0.insert.ext1945, 8
  %.sroa.321908.0.insert.insert1948 = or disjoint i32 %.sroa.381954.0.insert.insert1994, %.sroa.321908.0.insert.shift1946
  %.sroa.261862.0.insert.ext1899 = zext i8 %.sroa.312073.0.copyload to i32
  %.sroa.261862.0.insert.insert1902 = or disjoint i32 %.sroa.321908.0.insert.insert1948, %.sroa.261862.0.insert.ext1899
  store i32 %.sroa.261862.0.insert.insert1902, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 24), align 1, !tbaa !38
  %.sroa.45.0.insert.ext2041 = zext i8 %.sroa.322074.0.copyload to i32
  %.sroa.45.0.insert.shift2042 = shl nuw i32 %.sroa.45.0.insert.ext2041, 24
  %.sroa.381954.0.insert.ext1996 = zext i8 %.sroa.332075.0.copyload to i32
  %.sroa.381954.0.insert.shift1997 = shl nuw nsw i32 %.sroa.381954.0.insert.ext1996, 16
  %.sroa.381954.0.insert.insert1999 = or disjoint i32 %.sroa.45.0.insert.shift2042, %.sroa.381954.0.insert.shift1997
  %.sroa.321908.0.insert.ext1950 = zext i8 %.sroa.342076.0.copyload to i32
  %.sroa.321908.0.insert.shift1951 = shl nuw nsw i32 %.sroa.321908.0.insert.ext1950, 8
  %.sroa.321908.0.insert.insert1953 = or disjoint i32 %.sroa.381954.0.insert.insert1999, %.sroa.321908.0.insert.shift1951
  %.sroa.261862.0.insert.ext1904 = zext i8 %.sroa.352077.0.copyload to i32
  %.sroa.261862.0.insert.insert1907 = or disjoint i32 %.sroa.321908.0.insert.insert1953, %.sroa.261862.0.insert.ext1904
  store i32 %.sroa.261862.0.insert.insert1907, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 28), align 1, !tbaa !39
  br label %103

102:                                              ; preds = %94
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) @read_inode_3.header, ptr noundef nonnull align 1 dereferenceable(32) %11, i64 32, i1 false)
  %.pre2799 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 28), align 1, !tbaa !39
  %.pre2800 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 20), align 1, !tbaa !37
  br label %103

103:                                              ; preds = %102, %95
  %104 = phi i32 [ %.pre2800, %102 ], [ %.sroa.261862.0.insert.insert1897, %95 ]
  %105 = phi i32 [ %.pre2799, %102 ], [ %.sroa.261862.0.insert.insert1907, %95 ]
  %106 = zext i32 %105 to i64
  store i64 %106, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 16), align 8, !tbaa !28
  %107 = icmp eq i32 %104, -1
  %108 = load i32, ptr getelementptr inbounds (i8, ptr @sBlk, i64 12), align 4, !tbaa !40
  br i1 %107, label %109, label %116

109:                                              ; preds = %103
  %110 = zext i32 %108 to i64
  %111 = add nsw i64 %106, -1
  %112 = add nsw i64 %111, %110
  %113 = load i16, ptr getelementptr inbounds (i8, ptr @sBlk, i64 22), align 2, !tbaa !41
  %114 = zext nneg i16 %113 to i64
  %115 = ashr i64 %112, %114
  br label %121

116:                                              ; preds = %103
  %117 = urem i32 %105, %108
  %118 = load i16, ptr getelementptr inbounds (i8, ptr @sBlk, i64 22), align 2, !tbaa !41
  %119 = zext nneg i16 %118 to i64
  %120 = lshr i64 %106, %119
  br label %121

121:                                              ; preds = %116, %109
  %.sink2792 = phi i32 [ 0, %109 ], [ %117, %116 ]
  %122 = phi i64 [ %115, %109 ], [ %120, %116 ]
  %.sink = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 24), align 1, !tbaa !38
  store i32 %.sink2792, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 28), align 4
  store i32 %104, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 24), align 8
  store i32 %.sink, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 44), align 4
  %123 = trunc i64 %122 to i32
  store i32 %123, ptr @read_inode_3.i, align 8, !tbaa !42
  %124 = load i64, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 12), align 1, !tbaa !36
  store i64 %124, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 48), align 8, !tbaa !30
  store i8 1, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 80), align 8, !tbaa !43
  %125 = getelementptr inbounds i8, ptr %11, i64 32
  store ptr %125, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 8), align 8, !tbaa !44
  br label %198

126:                                              ; preds = %43
  br i1 %.not, label %134, label %127

127:                                              ; preds = %126
  %.sroa.01661.0.copyload = load i8, ptr %11, align 1
  %.sroa.51663.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.51663.0.copyload = load i8, ptr %.sroa.51663.0..sroa_idx, align 1
  %.sroa.61664.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.61664.0.copyload = load i8, ptr %.sroa.61664.0..sroa_idx, align 1
  %.sroa.71665.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.71665.0.copyload = load i8, ptr %.sroa.71665.0..sroa_idx, align 1
  %.sroa.81666.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.81666.0.copyload = load i8, ptr %.sroa.81666.0..sroa_idx, align 1
  %.sroa.91667.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.91667.0.copyload = load i8, ptr %.sroa.91667.0..sroa_idx, align 1
  %.sroa.101668.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.101668.0.copyload = load i8, ptr %.sroa.101668.0..sroa_idx, align 1
  %.sroa.111669.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.111669.0.copyload = load i8, ptr %.sroa.111669.0..sroa_idx, align 1
  %.sroa.121670.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.121670.0.copyload = load i8, ptr %.sroa.121670.0..sroa_idx, align 1
  %.sroa.131671.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.131671.0.copyload = load i8, ptr %.sroa.131671.0..sroa_idx, align 1
  %.sroa.141672.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.141672.0.copyload = load i8, ptr %.sroa.141672.0..sroa_idx, align 1
  %.sroa.151673.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.151673.0.copyload = load i8, ptr %.sroa.151673.0..sroa_idx, align 1
  %.sroa.161674.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.161674.0.copyload = load i8, ptr %.sroa.161674.0..sroa_idx, align 1
  %.sroa.171675.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.171675.0.copyload = load i8, ptr %.sroa.171675.0..sroa_idx, align 1
  %.sroa.181676.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.181676.0.copyload = load i8, ptr %.sroa.181676.0..sroa_idx, align 1
  %.sroa.191677.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 15
  %.sroa.191677.0.copyload = load i8, ptr %.sroa.191677.0..sroa_idx, align 1
  %.sroa.201678.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.201678.0.copyload = load i8, ptr %.sroa.201678.0..sroa_idx, align 1
  %.sroa.211679.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.211679.0.copyload = load i8, ptr %.sroa.211679.0..sroa_idx, align 1
  %.sroa.22.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 18
  %.sroa.22.0.copyload = load i8, ptr %.sroa.22.0..sroa_idx, align 1
  %.sroa.23.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 19
  %.sroa.23.0.copyload = load i8, ptr %.sroa.23.0..sroa_idx, align 1
  %.sroa.241680.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 20
  %.sroa.241680.0.copyload = load i8, ptr %.sroa.241680.0..sroa_idx, align 1
  %.sroa.25.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 21
  %.sroa.25.0.copyload = load i8, ptr %.sroa.25.0..sroa_idx, align 1
  %.sroa.261681.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 22
  %.sroa.261681.0.copyload = load i8, ptr %.sroa.261681.0..sroa_idx, align 1
  %.sroa.27.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 23
  %.sroa.27.0.copyload = load i8, ptr %.sroa.27.0..sroa_idx, align 1
  %.sroa.281682.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 24
  %.sroa.281682.0.copyload = load i8, ptr %.sroa.281682.0..sroa_idx, align 1
  %.sroa.291683.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 25
  %.sroa.291683.0.copyload = load i8, ptr %.sroa.291683.0..sroa_idx, align 1
  %.sroa.301684.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 26
  %.sroa.301684.0.copyload = load i8, ptr %.sroa.301684.0..sroa_idx, align 1
  %.sroa.31.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 27
  %.sroa.31.0.copyload = load i8, ptr %.sroa.31.0..sroa_idx, align 1
  %.sroa.321685.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 28
  %.sroa.321685.0.copyload = load i8, ptr %.sroa.321685.0..sroa_idx, align 1
  %.sroa.33.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 29
  %.sroa.33.0.copyload = load i8, ptr %.sroa.33.0..sroa_idx, align 1
  %.sroa.34.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 30
  %.sroa.34.0.copyload = load i8, ptr %.sroa.34.0..sroa_idx, align 1
  %.sroa.35.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 31
  %.sroa.35.0.copyload = load i8, ptr %.sroa.35.0..sroa_idx, align 1
  %.sroa.36.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 32
  %.sroa.36.0.copyload = load i8, ptr %.sroa.36.0..sroa_idx, align 1
  %.sroa.37.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 33
  %.sroa.37.0.copyload = load i8, ptr %.sroa.37.0..sroa_idx, align 1
  %.sroa.38.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 34
  %.sroa.38.0.copyload = load i8, ptr %.sroa.38.0..sroa_idx, align 1
  %.sroa.391686.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 35
  %.sroa.391686.0.copyload = load i8, ptr %.sroa.391686.0..sroa_idx, align 1
  %.sroa.40.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 36
  %.sroa.40.0.copyload = load i8, ptr %.sroa.40.0..sroa_idx, align 1
  %.sroa.41.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 37
  %.sroa.41.0.copyload = load i8, ptr %.sroa.41.0..sroa_idx, align 1
  %.sroa.42.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 38
  %.sroa.42.0.copyload = load i8, ptr %.sroa.42.0..sroa_idx, align 1
  %.sroa.43.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 39
  %.sroa.43.0.copyload = load i8, ptr %.sroa.43.0..sroa_idx, align 1
  %.sroa.54.0.insert.ext = zext i8 %.sroa.01661.0.copyload to i64
  %.sroa.54.0.insert.shift = shl nuw nsw i64 %.sroa.54.0.insert.ext, 12
  %128 = lshr i64 %.sroa.54.0.insert.ext, 4
  %129 = trunc nuw nsw i64 %128 to i32
  %.sroa.46.0.insert.ext1562 = zext i8 %.sroa.51663.0.copyload to i64
  %.sroa.46.0.insert.shift1563 = shl nuw nsw i64 %.sroa.46.0.insert.ext1562, 4
  %.sroa.46.0.insert.insert1565 = or disjoint i64 %.sroa.54.0.insert.shift, %.sroa.46.0.insert.shift1563
  %tr.sh.diff698 = trunc nuw nsw i64 %.sroa.46.0.insert.insert1565 to i32
  %130 = and i32 %tr.sh.diff698, 65520
  %.sroa.54.0.insert.ext1617 = zext i8 %.sroa.61664.0.copyload to i32
  %.sroa.54.0.insert.shift1618 = shl nuw nsw i32 %.sroa.54.0.insert.ext1617, 16
  %131 = or disjoint i32 %130, %.sroa.54.0.insert.shift1618
  %.sroa.54.0.insert.ext1622 = zext i8 %.sroa.71665.0.copyload to i32
  %.sroa.54.0.insert.shift1623 = shl nuw i32 %.sroa.54.0.insert.ext1622, 24
  %132 = or disjoint i32 %131, %.sroa.54.0.insert.shift1623
  %133 = or disjoint i32 %132, %129
  store i32 %133, ptr @read_inode_3.header, align 1
  %.sroa.54.0.insert.ext1627 = zext i8 %.sroa.81666.0.copyload to i32
  %.sroa.54.0.insert.shift1628 = shl nuw i32 %.sroa.54.0.insert.ext1627, 24
  %.sroa.46.0.insert.ext1577 = zext i8 %.sroa.91667.0.copyload to i32
  %.sroa.46.0.insert.shift1578 = shl nuw nsw i32 %.sroa.46.0.insert.ext1577, 16
  %.sroa.46.0.insert.insert1580 = or disjoint i32 %.sroa.54.0.insert.shift1628, %.sroa.46.0.insert.shift1578
  %.sroa.39.0.insert.ext1527 = zext i8 %.sroa.101668.0.copyload to i32
  %.sroa.39.0.insert.shift1528 = shl nuw nsw i32 %.sroa.39.0.insert.ext1527, 8
  %.sroa.39.0.insert.insert1530 = or disjoint i32 %.sroa.46.0.insert.insert1580, %.sroa.39.0.insert.shift1528
  %.sroa.32.0.insert.ext1477 = zext i8 %.sroa.111669.0.copyload to i32
  %.sroa.32.0.insert.insert1480 = or disjoint i32 %.sroa.39.0.insert.insert1530, %.sroa.32.0.insert.ext1477
  store i32 %.sroa.32.0.insert.insert1480, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !45
  %.sroa.54.0.insert.ext1632 = zext i8 %.sroa.121670.0.copyload to i32
  %.sroa.54.0.insert.shift1633 = shl nuw i32 %.sroa.54.0.insert.ext1632, 24
  %.sroa.46.0.insert.ext1582 = zext i8 %.sroa.131671.0.copyload to i32
  %.sroa.46.0.insert.shift1583 = shl nuw nsw i32 %.sroa.46.0.insert.ext1582, 16
  %.sroa.46.0.insert.insert1585 = or disjoint i32 %.sroa.54.0.insert.shift1633, %.sroa.46.0.insert.shift1583
  %.sroa.39.0.insert.ext1532 = zext i8 %.sroa.141672.0.copyload to i32
  %.sroa.39.0.insert.shift1533 = shl nuw nsw i32 %.sroa.39.0.insert.ext1532, 8
  %.sroa.39.0.insert.insert1535 = or disjoint i32 %.sroa.46.0.insert.insert1585, %.sroa.39.0.insert.shift1533
  %.sroa.32.0.insert.ext1482 = zext i8 %.sroa.151673.0.copyload to i32
  %.sroa.32.0.insert.insert1485 = or disjoint i32 %.sroa.39.0.insert.insert1535, %.sroa.32.0.insert.ext1482
  store i32 %.sroa.32.0.insert.insert1485, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !47
  %.sroa.54.0.insert.ext1637 = zext i8 %.sroa.161674.0.copyload to i32
  %.sroa.54.0.insert.shift1638 = shl nuw i32 %.sroa.54.0.insert.ext1637, 24
  %.sroa.46.0.insert.ext1587 = zext i8 %.sroa.171675.0.copyload to i32
  %.sroa.46.0.insert.shift1588 = shl nuw nsw i32 %.sroa.46.0.insert.ext1587, 16
  %.sroa.46.0.insert.insert1590 = or disjoint i32 %.sroa.54.0.insert.shift1638, %.sroa.46.0.insert.shift1588
  %.sroa.39.0.insert.ext1537 = zext i8 %.sroa.181676.0.copyload to i32
  %.sroa.39.0.insert.shift1538 = shl nuw nsw i32 %.sroa.39.0.insert.ext1537, 8
  %.sroa.39.0.insert.insert1540 = or disjoint i32 %.sroa.46.0.insert.insert1590, %.sroa.39.0.insert.shift1538
  %.sroa.32.0.insert.ext1487 = zext i8 %.sroa.191677.0.copyload to i32
  %.sroa.32.0.insert.insert1490 = or disjoint i32 %.sroa.39.0.insert.insert1540, %.sroa.32.0.insert.ext1487
  store i32 %.sroa.32.0.insert.insert1490, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 12), align 1, !tbaa !48
  %.sroa.54.0.insert.ext1642 = zext i8 %.sroa.201678.0.copyload to i64
  %.sroa.54.0.insert.shift1643 = shl nuw i64 %.sroa.54.0.insert.ext1642, 56
  %.sroa.46.0.insert.ext1592 = zext i8 %.sroa.211679.0.copyload to i64
  %.sroa.46.0.insert.shift1593 = shl nuw nsw i64 %.sroa.46.0.insert.ext1592, 48
  %.sroa.46.0.insert.insert1595 = or disjoint i64 %.sroa.54.0.insert.shift1643, %.sroa.46.0.insert.shift1593
  %.sroa.39.0.insert.ext1542 = zext i8 %.sroa.22.0.copyload to i64
  %.sroa.39.0.insert.shift1543 = shl nuw nsw i64 %.sroa.39.0.insert.ext1542, 40
  %.sroa.39.0.insert.insert1545 = or disjoint i64 %.sroa.46.0.insert.insert1595, %.sroa.39.0.insert.shift1543
  %.sroa.32.0.insert.ext1492 = zext i8 %.sroa.23.0.copyload to i64
  %.sroa.32.0.insert.shift1493 = shl nuw nsw i64 %.sroa.32.0.insert.ext1492, 32
  %.sroa.32.0.insert.insert1495 = or disjoint i64 %.sroa.39.0.insert.insert1545, %.sroa.32.0.insert.shift1493
  %.sroa.30.0.insert.ext1442 = zext i8 %.sroa.241680.0.copyload to i64
  %.sroa.30.0.insert.shift1443 = shl nuw nsw i64 %.sroa.30.0.insert.ext1442, 24
  %.sroa.30.0.insert.insert1445 = or disjoint i64 %.sroa.32.0.insert.insert1495, %.sroa.30.0.insert.shift1443
  %.sroa.28.0.insert.ext1392 = zext i8 %.sroa.25.0.copyload to i64
  %.sroa.28.0.insert.shift1393 = shl nuw nsw i64 %.sroa.28.0.insert.ext1392, 16
  %.sroa.26.0.insert.ext1342 = zext i8 %.sroa.261681.0.copyload to i64
  %.sroa.26.0.insert.shift1343 = shl nuw nsw i64 %.sroa.26.0.insert.ext1342, 8
  %.sroa.26.0.insert.mask1344 = or disjoint i64 %.sroa.30.0.insert.insert1445, %.sroa.28.0.insert.shift1393
  %.sroa.01270.0.insert.ext1296 = zext i8 %.sroa.27.0.copyload to i64
  %.sroa.01270.0.insert.mask1297 = or i64 %.sroa.26.0.insert.mask1344, %.sroa.26.0.insert.shift1343
  %.sroa.01270.0.insert.insert1298 = or i64 %.sroa.01270.0.insert.mask1297, %.sroa.01270.0.insert.ext1296
  store i64 %.sroa.01270.0.insert.insert1298, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1, !tbaa !49
  %.sroa.54.0.insert.ext1647 = zext i8 %.sroa.281682.0.copyload to i32
  %.sroa.54.0.insert.shift1648 = shl nuw i32 %.sroa.54.0.insert.ext1647, 24
  %.sroa.46.0.insert.ext1597 = zext i8 %.sroa.291683.0.copyload to i32
  %.sroa.46.0.insert.shift1598 = shl nuw nsw i32 %.sroa.46.0.insert.ext1597, 16
  %.sroa.46.0.insert.insert1600 = or disjoint i32 %.sroa.54.0.insert.shift1648, %.sroa.46.0.insert.shift1598
  %.sroa.39.0.insert.ext1547 = zext i8 %.sroa.301684.0.copyload to i32
  %.sroa.39.0.insert.shift1548 = shl nuw nsw i32 %.sroa.39.0.insert.ext1547, 8
  %.sroa.39.0.insert.insert1550 = or disjoint i32 %.sroa.46.0.insert.insert1600, %.sroa.39.0.insert.shift1548
  %.sroa.32.0.insert.ext1497 = zext i8 %.sroa.31.0.copyload to i32
  %.sroa.32.0.insert.insert1500 = or disjoint i32 %.sroa.39.0.insert.insert1550, %.sroa.32.0.insert.ext1497
  store i32 %.sroa.32.0.insert.insert1500, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 24), align 1, !tbaa !50
  %.sroa.54.0.insert.ext1652 = zext i8 %.sroa.321685.0.copyload to i32
  %.sroa.54.0.insert.shift1653 = shl nuw i32 %.sroa.54.0.insert.ext1652, 24
  %.sroa.46.0.insert.ext1602 = zext i8 %.sroa.33.0.copyload to i32
  %.sroa.46.0.insert.shift1603 = shl nuw nsw i32 %.sroa.46.0.insert.ext1602, 16
  %.sroa.46.0.insert.insert1605 = or disjoint i32 %.sroa.54.0.insert.shift1653, %.sroa.46.0.insert.shift1603
  %.sroa.39.0.insert.ext1552 = zext i8 %.sroa.34.0.copyload to i32
  %.sroa.39.0.insert.shift1553 = shl nuw nsw i32 %.sroa.39.0.insert.ext1552, 8
  %.sroa.39.0.insert.insert1555 = or disjoint i32 %.sroa.46.0.insert.insert1605, %.sroa.39.0.insert.shift1553
  %.sroa.32.0.insert.ext1502 = zext i8 %.sroa.35.0.copyload to i32
  %.sroa.32.0.insert.insert1505 = or disjoint i32 %.sroa.39.0.insert.insert1555, %.sroa.32.0.insert.ext1502
  store i32 %.sroa.32.0.insert.insert1505, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 28), align 1, !tbaa !51
  %.sroa.54.0.insert.ext1657 = zext i8 %.sroa.36.0.copyload to i64
  %.sroa.54.0.insert.shift1658 = shl nuw i64 %.sroa.54.0.insert.ext1657, 56
  %.sroa.46.0.insert.ext1607 = zext i8 %.sroa.37.0.copyload to i64
  %.sroa.46.0.insert.shift1608 = shl nuw nsw i64 %.sroa.46.0.insert.ext1607, 48
  %.sroa.46.0.insert.insert1610 = or disjoint i64 %.sroa.54.0.insert.shift1658, %.sroa.46.0.insert.shift1608
  %.sroa.39.0.insert.ext1557 = zext i8 %.sroa.38.0.copyload to i64
  %.sroa.39.0.insert.shift1558 = shl nuw nsw i64 %.sroa.39.0.insert.ext1557, 40
  %.sroa.39.0.insert.insert1560 = or disjoint i64 %.sroa.46.0.insert.insert1610, %.sroa.39.0.insert.shift1558
  %.sroa.32.0.insert.ext1507 = zext i8 %.sroa.391686.0.copyload to i64
  %.sroa.32.0.insert.shift1508 = shl nuw nsw i64 %.sroa.32.0.insert.ext1507, 32
  %.sroa.32.0.insert.insert1510 = or disjoint i64 %.sroa.39.0.insert.insert1560, %.sroa.32.0.insert.shift1508
  %.sroa.30.0.insert.ext1457 = zext i8 %.sroa.40.0.copyload to i64
  %.sroa.30.0.insert.shift1458 = shl nuw nsw i64 %.sroa.30.0.insert.ext1457, 24
  %.sroa.30.0.insert.insert1460 = or disjoint i64 %.sroa.32.0.insert.insert1510, %.sroa.30.0.insert.shift1458
  %.sroa.28.0.insert.ext1407 = zext i8 %.sroa.41.0.copyload to i64
  %.sroa.28.0.insert.shift1408 = shl nuw nsw i64 %.sroa.28.0.insert.ext1407, 16
  %.sroa.26.0.insert.ext1357 = zext i8 %.sroa.42.0.copyload to i64
  %.sroa.26.0.insert.shift1358 = shl nuw nsw i64 %.sroa.26.0.insert.ext1357, 8
  %.sroa.26.0.insert.mask1359 = or disjoint i64 %.sroa.30.0.insert.insert1460, %.sroa.28.0.insert.shift1408
  %.sroa.01270.0.insert.ext1308 = zext i8 %.sroa.43.0.copyload to i64
  %.sroa.01270.0.insert.mask1309 = or i64 %.sroa.26.0.insert.mask1359, %.sroa.26.0.insert.shift1358
  %.sroa.01270.0.insert.insert1310 = or i64 %.sroa.01270.0.insert.mask1309, %.sroa.01270.0.insert.ext1308
  store i64 %.sroa.01270.0.insert.insert1310, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 32), align 1, !tbaa !52
  br label %135

134:                                              ; preds = %126
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(40) @read_inode_3.header, ptr noundef nonnull align 1 dereferenceable(40) %11, i64 40, i1 false)
  %.pre2797 = load i64, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 32), align 1, !tbaa !52
  %.pre2798 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 24), align 1, !tbaa !50
  br label %135

135:                                              ; preds = %134, %127
  %136 = phi i32 [ %.pre2798, %134 ], [ %.sroa.32.0.insert.insert1500, %127 ]
  %137 = phi i64 [ %.pre2797, %134 ], [ %.sroa.01270.0.insert.insert1310, %127 ]
  store i64 %137, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 16), align 8, !tbaa !28
  %138 = icmp eq i32 %136, -1
  %139 = load i32, ptr getelementptr inbounds (i8, ptr @sBlk, i64 12), align 4, !tbaa !40
  %140 = zext i32 %139 to i64
  %141 = load i16, ptr getelementptr inbounds (i8, ptr @sBlk, i64 22), align 2, !tbaa !41
  %142 = zext nneg i16 %141 to i64
  br i1 %138, label %143, label %146

143:                                              ; preds = %135
  %144 = add i64 %137, -1
  %145 = add i64 %144, %140
  br label %149

146:                                              ; preds = %135
  %147 = srem i64 %137, %140
  %148 = trunc i64 %147 to i32
  br label %149

149:                                              ; preds = %146, %143
  %.sink2803 = phi i64 [ %137, %146 ], [ %145, %143 ]
  %.sink2794 = phi i32 [ %148, %146 ], [ 0, %143 ]
  %150 = ashr i64 %.sink2803, %142
  %.sink2793 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 28), align 1, !tbaa !51
  store i32 %.sink2794, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 28), align 4
  store i32 %136, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 24), align 8
  store i32 %.sink2793, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 44), align 4
  %151 = trunc i64 %150 to i32
  store i32 %151, ptr @read_inode_3.i, align 8, !tbaa !42
  %152 = load i64, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1, !tbaa !49
  store i64 %152, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 48), align 8, !tbaa !30
  store i8 1, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 80), align 8, !tbaa !43
  %153 = getelementptr inbounds i8, ptr %11, i64 40
  store ptr %153, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 8), align 8, !tbaa !44
  br label %198

154:                                              ; preds = %43
  br i1 %.not, label %162, label %155

155:                                              ; preds = %154
  %.sroa.01251.0.copyload = load i8, ptr %11, align 1
  %.sroa.51253.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.51253.0.copyload = load i8, ptr %.sroa.51253.0..sroa_idx, align 1
  %.sroa.61254.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.61254.0.copyload = load i8, ptr %.sroa.61254.0..sroa_idx, align 1
  %.sroa.71255.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.71255.0.copyload = load i8, ptr %.sroa.71255.0..sroa_idx, align 1
  %.sroa.81256.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.81256.0.copyload = load i8, ptr %.sroa.81256.0..sroa_idx, align 1
  %.sroa.91257.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.91257.0.copyload = load i8, ptr %.sroa.91257.0..sroa_idx, align 1
  %.sroa.101258.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.101258.0.copyload = load i8, ptr %.sroa.101258.0..sroa_idx, align 1
  %.sroa.111259.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.111259.0.copyload = load i8, ptr %.sroa.111259.0..sroa_idx, align 1
  %.sroa.121260.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.121260.0.copyload = load i8, ptr %.sroa.121260.0..sroa_idx, align 1
  %.sroa.131261.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.131261.0.copyload = load i8, ptr %.sroa.131261.0..sroa_idx, align 1
  %.sroa.141262.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.141262.0.copyload = load i8, ptr %.sroa.141262.0..sroa_idx, align 1
  %.sroa.151263.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.151263.0.copyload = load i8, ptr %.sroa.151263.0..sroa_idx, align 1
  %.sroa.161264.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.161264.0.copyload = load i8, ptr %.sroa.161264.0..sroa_idx, align 1
  %.sroa.171265.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.171265.0.copyload = load i8, ptr %.sroa.171265.0..sroa_idx, align 1
  %.sroa.181266.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.181266.0.copyload = load i8, ptr %.sroa.181266.0..sroa_idx, align 1
  %.sroa.191267.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 15
  %.sroa.191267.0.copyload = load i8, ptr %.sroa.191267.0..sroa_idx, align 1
  %.sroa.201268.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.201268.0.copyload = load i8, ptr %.sroa.201268.0..sroa_idx, align 1
  %.sroa.211269.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.211269.0.copyload = load i8, ptr %.sroa.211269.0..sroa_idx, align 1
  %.sroa.291215.0.insert.ext = zext i8 %.sroa.01251.0.copyload to i64
  %.sroa.291215.0.insert.shift = shl nuw nsw i64 %.sroa.291215.0.insert.ext, 12
  %156 = lshr i64 %.sroa.291215.0.insert.ext, 4
  %157 = trunc nuw nsw i64 %156 to i32
  %.sroa.241179.0.insert.ext1181 = zext i8 %.sroa.51253.0.copyload to i64
  %.sroa.241179.0.insert.shift1182 = shl nuw nsw i64 %.sroa.241179.0.insert.ext1181, 4
  %.sroa.241179.0.insert.insert1184 = or disjoint i64 %.sroa.291215.0.insert.shift, %.sroa.241179.0.insert.shift1182
  %tr.sh.diff691 = trunc nuw nsw i64 %.sroa.241179.0.insert.insert1184 to i32
  %158 = and i32 %tr.sh.diff691, 65520
  %.sroa.291215.0.insert.ext1222 = zext i8 %.sroa.61254.0.copyload to i32
  %.sroa.291215.0.insert.shift1223 = shl nuw nsw i32 %.sroa.291215.0.insert.ext1222, 16
  %159 = or disjoint i32 %158, %.sroa.291215.0.insert.shift1223
  %.sroa.291215.0.insert.ext1227 = zext i8 %.sroa.71255.0.copyload to i32
  %.sroa.291215.0.insert.shift1228 = shl nuw i32 %.sroa.291215.0.insert.ext1227, 24
  %160 = or disjoint i32 %159, %.sroa.291215.0.insert.shift1228
  %161 = or disjoint i32 %160, %157
  store i32 %161, ptr @read_inode_3.header, align 1
  %.sroa.291215.0.insert.ext1232 = zext i8 %.sroa.81256.0.copyload to i32
  %.sroa.291215.0.insert.shift1233 = shl nuw i32 %.sroa.291215.0.insert.ext1232, 24
  %.sroa.241179.0.insert.ext1196 = zext i8 %.sroa.91257.0.copyload to i32
  %.sroa.241179.0.insert.shift1197 = shl nuw nsw i32 %.sroa.241179.0.insert.ext1196, 16
  %.sroa.241179.0.insert.insert1199 = or disjoint i32 %.sroa.291215.0.insert.shift1233, %.sroa.241179.0.insert.shift1197
  %.sroa.211143.0.insert.ext1160 = zext i8 %.sroa.101258.0.copyload to i32
  %.sroa.211143.0.insert.shift1161 = shl nuw nsw i32 %.sroa.211143.0.insert.ext1160, 8
  %.sroa.211143.0.insert.insert1163 = or disjoint i32 %.sroa.241179.0.insert.insert1199, %.sroa.211143.0.insert.shift1161
  %.sroa.181107.0.insert.ext1124 = zext i8 %.sroa.111259.0.copyload to i32
  %.sroa.181107.0.insert.insert1127 = or disjoint i32 %.sroa.211143.0.insert.insert1163, %.sroa.181107.0.insert.ext1124
  store i32 %.sroa.181107.0.insert.insert1127, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !53
  %.sroa.291215.0.insert.ext1237 = zext i8 %.sroa.121260.0.copyload to i32
  %.sroa.291215.0.insert.shift1238 = shl nuw i32 %.sroa.291215.0.insert.ext1237, 24
  %.sroa.241179.0.insert.ext1201 = zext i8 %.sroa.131261.0.copyload to i32
  %.sroa.241179.0.insert.shift1202 = shl nuw nsw i32 %.sroa.241179.0.insert.ext1201, 16
  %.sroa.241179.0.insert.insert1204 = or disjoint i32 %.sroa.291215.0.insert.shift1238, %.sroa.241179.0.insert.shift1202
  %.sroa.211143.0.insert.ext1165 = zext i8 %.sroa.141262.0.copyload to i32
  %.sroa.211143.0.insert.shift1166 = shl nuw nsw i32 %.sroa.211143.0.insert.ext1165, 8
  %.sroa.211143.0.insert.insert1168 = or disjoint i32 %.sroa.241179.0.insert.insert1204, %.sroa.211143.0.insert.shift1166
  %.sroa.181107.0.insert.ext1129 = zext i8 %.sroa.151263.0.copyload to i32
  %.sroa.181107.0.insert.insert1132 = or disjoint i32 %.sroa.211143.0.insert.insert1168, %.sroa.181107.0.insert.ext1129
  store i32 %.sroa.181107.0.insert.insert1132, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !55
  %.sroa.291215.0.insert.ext1242 = zext i8 %.sroa.161264.0.copyload to i32
  %.sroa.291215.0.insert.shift1243 = shl nuw i32 %.sroa.291215.0.insert.ext1242, 24
  %.sroa.241179.0.insert.ext1206 = zext i8 %.sroa.171265.0.copyload to i32
  %.sroa.241179.0.insert.shift1207 = shl nuw nsw i32 %.sroa.241179.0.insert.ext1206, 16
  %.sroa.241179.0.insert.insert1209 = or disjoint i32 %.sroa.291215.0.insert.shift1243, %.sroa.241179.0.insert.shift1207
  %.sroa.211143.0.insert.ext1170 = zext i8 %.sroa.181266.0.copyload to i32
  %.sroa.211143.0.insert.shift1171 = shl nuw nsw i32 %.sroa.211143.0.insert.ext1170, 8
  %.sroa.211143.0.insert.insert1173 = or disjoint i32 %.sroa.241179.0.insert.insert1209, %.sroa.211143.0.insert.shift1171
  %.sroa.181107.0.insert.ext1134 = zext i8 %.sroa.191267.0.copyload to i32
  %.sroa.181107.0.insert.insert1137 = or disjoint i32 %.sroa.211143.0.insert.insert1173, %.sroa.181107.0.insert.ext1134
  store i32 %.sroa.181107.0.insert.insert1137, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 12), align 1, !tbaa !56
  %.sroa.291215.0.insert.ext1247 = zext i8 %.sroa.201268.0.copyload to i16
  %.sroa.291215.0.insert.shift1248 = shl nuw i16 %.sroa.291215.0.insert.ext1247, 8
  %.sroa.241179.0.insert.ext1211 = zext i8 %.sroa.211269.0.copyload to i16
  %.sroa.241179.0.insert.insert1214 = or disjoint i16 %.sroa.291215.0.insert.shift1248, %.sroa.241179.0.insert.ext1211
  store i16 %.sroa.241179.0.insert.insert1214, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1, !tbaa !57
  br label %163

162:                                              ; preds = %154
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(18) @read_inode_3.header, ptr noundef nonnull align 1 dereferenceable(18) %11, i64 18, i1 false)
  %.pre2796 = load i16, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1, !tbaa !57
  br label %163

163:                                              ; preds = %162, %155
  %164 = phi i16 [ %.pre2796, %162 ], [ %.sroa.241179.0.insert.insert1214, %155 ]
  %165 = zext i16 %164 to i64
  %166 = add nuw nsw i64 %165, 1
  %167 = tail call noalias ptr @malloc(i64 noundef %166) #11
  store ptr %167, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 56), align 8, !tbaa !58
  %168 = icmp eq ptr %167, null
  br i1 %168, label %169, label %174

169:                                              ; preds = %163
  %170 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull @screen_mutex) #8
  %171 = load ptr, ptr @stderr, align 8, !tbaa !13
  %172 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %171, ptr noundef nonnull @.str.5) #9
  %173 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @screen_mutex) #8
  tail call void @exit(i32 noundef 1) #10
  unreachable

174:                                              ; preds = %163
  %175 = getelementptr inbounds i8, ptr %11, i64 18
  %176 = tail call ptr @strncpy(ptr noundef nonnull %167, ptr noundef nonnull %175, i64 noundef %165) #8
  %177 = getelementptr inbounds i8, ptr %167, i64 %165
  store i8 0, ptr %177, align 1, !tbaa !16
  store i64 %165, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 16), align 8, !tbaa !28
  br label %198

178:                                              ; preds = %43, %43
  br i1 %.not, label %186, label %179

179:                                              ; preds = %178
  %.sroa.01074.0.copyload = load i8, ptr %11, align 1
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5.0.copyload = load i8, ptr %.sroa.5.0..sroa_idx, align 1
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6.0.copyload = load i8, ptr %.sroa.6.0..sroa_idx, align 1
  %.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.7.0.copyload = load i8, ptr %.sroa.7.0..sroa_idx, align 1
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.8.0.copyload = load i8, ptr %.sroa.8.0..sroa_idx, align 1
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.9.0.copyload = load i8, ptr %.sroa.9.0..sroa_idx, align 1
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.10.0.copyload = load i8, ptr %.sroa.10.0..sroa_idx, align 1
  %.sroa.11.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.11.0.copyload = load i8, ptr %.sroa.11.0..sroa_idx, align 1
  %.sroa.12.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.12.0.copyload = load i8, ptr %.sroa.12.0..sroa_idx, align 1
  %.sroa.13.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.13.0.copyload = load i8, ptr %.sroa.13.0..sroa_idx, align 1
  %.sroa.14.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.14.0.copyload = load i8, ptr %.sroa.14.0..sroa_idx, align 1
  %.sroa.15.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.15.0.copyload = load i8, ptr %.sroa.15.0..sroa_idx, align 1
  %.sroa.16.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.16.0.copyload = load i8, ptr %.sroa.16.0..sroa_idx, align 1
  %.sroa.17.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.17.0.copyload = load i8, ptr %.sroa.17.0..sroa_idx, align 1
  %.sroa.181076.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.181076.0.copyload = load i8, ptr %.sroa.181076.0..sroa_idx, align 1
  %.sroa.19.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 15
  %.sroa.19.0.copyload = load i8, ptr %.sroa.19.0..sroa_idx, align 1
  %.sroa.20.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.20.0.copyload = load i8, ptr %.sroa.20.0..sroa_idx, align 1
  %.sroa.211077.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.211077.0.copyload = load i8, ptr %.sroa.211077.0..sroa_idx, align 1
  %.sroa.29.0.insert.ext = zext i8 %.sroa.01074.0.copyload to i64
  %.sroa.29.0.insert.shift = shl nuw nsw i64 %.sroa.29.0.insert.ext, 12
  %180 = lshr i64 %.sroa.29.0.insert.ext, 4
  %181 = trunc nuw nsw i64 %180 to i32
  %.sroa.24.0.insert.ext1005 = zext i8 %.sroa.5.0.copyload to i64
  %.sroa.24.0.insert.shift1006 = shl nuw nsw i64 %.sroa.24.0.insert.ext1005, 4
  %.sroa.24.0.insert.insert1008 = or disjoint i64 %.sroa.29.0.insert.shift, %.sroa.24.0.insert.shift1006
  %tr.sh.diff684 = trunc nuw nsw i64 %.sroa.24.0.insert.insert1008 to i32
  %182 = and i32 %tr.sh.diff684, 65520
  %.sroa.29.0.insert.ext1045 = zext i8 %.sroa.6.0.copyload to i32
  %.sroa.29.0.insert.shift1046 = shl nuw nsw i32 %.sroa.29.0.insert.ext1045, 16
  %183 = or disjoint i32 %182, %.sroa.29.0.insert.shift1046
  %.sroa.29.0.insert.ext1050 = zext i8 %.sroa.7.0.copyload to i32
  %.sroa.29.0.insert.shift1051 = shl nuw i32 %.sroa.29.0.insert.ext1050, 24
  %184 = or disjoint i32 %183, %.sroa.29.0.insert.shift1051
  %185 = or disjoint i32 %184, %181
  store i32 %185, ptr @read_inode_3.header, align 1
  %.sroa.29.0.insert.ext1055 = zext i8 %.sroa.8.0.copyload to i32
  %.sroa.29.0.insert.shift1056 = shl nuw i32 %.sroa.29.0.insert.ext1055, 24
  %.sroa.24.0.insert.ext1020 = zext i8 %.sroa.9.0.copyload to i32
  %.sroa.24.0.insert.shift1021 = shl nuw nsw i32 %.sroa.24.0.insert.ext1020, 16
  %.sroa.24.0.insert.insert1023 = or disjoint i32 %.sroa.29.0.insert.shift1056, %.sroa.24.0.insert.shift1021
  %.sroa.21.0.insert.ext985 = zext i8 %.sroa.10.0.copyload to i32
  %.sroa.21.0.insert.shift986 = shl nuw nsw i32 %.sroa.21.0.insert.ext985, 8
  %.sroa.21.0.insert.insert988 = or disjoint i32 %.sroa.24.0.insert.insert1023, %.sroa.21.0.insert.shift986
  %.sroa.18.0.insert.ext950 = zext i8 %.sroa.11.0.copyload to i32
  %.sroa.18.0.insert.insert953 = or disjoint i32 %.sroa.21.0.insert.insert988, %.sroa.18.0.insert.ext950
  store i32 %.sroa.18.0.insert.insert953, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 4), align 1, !tbaa !59
  %.sroa.29.0.insert.ext1060 = zext i8 %.sroa.12.0.copyload to i32
  %.sroa.29.0.insert.shift1061 = shl nuw i32 %.sroa.29.0.insert.ext1060, 24
  %.sroa.24.0.insert.ext1025 = zext i8 %.sroa.13.0.copyload to i32
  %.sroa.24.0.insert.shift1026 = shl nuw nsw i32 %.sroa.24.0.insert.ext1025, 16
  %.sroa.24.0.insert.insert1028 = or disjoint i32 %.sroa.29.0.insert.shift1061, %.sroa.24.0.insert.shift1026
  %.sroa.21.0.insert.ext990 = zext i8 %.sroa.14.0.copyload to i32
  %.sroa.21.0.insert.shift991 = shl nuw nsw i32 %.sroa.21.0.insert.ext990, 8
  %.sroa.21.0.insert.insert993 = or disjoint i32 %.sroa.24.0.insert.insert1028, %.sroa.21.0.insert.shift991
  %.sroa.18.0.insert.ext955 = zext i8 %.sroa.15.0.copyload to i32
  %.sroa.18.0.insert.insert958 = or disjoint i32 %.sroa.21.0.insert.insert993, %.sroa.18.0.insert.ext955
  store i32 %.sroa.18.0.insert.insert958, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 8), align 1, !tbaa !61
  %.sroa.29.0.insert.ext1065 = zext i8 %.sroa.16.0.copyload to i32
  %.sroa.29.0.insert.shift1066 = shl nuw i32 %.sroa.29.0.insert.ext1065, 24
  %.sroa.24.0.insert.ext1030 = zext i8 %.sroa.17.0.copyload to i32
  %.sroa.24.0.insert.shift1031 = shl nuw nsw i32 %.sroa.24.0.insert.ext1030, 16
  %.sroa.24.0.insert.insert1033 = or disjoint i32 %.sroa.29.0.insert.shift1066, %.sroa.24.0.insert.shift1031
  %.sroa.21.0.insert.ext995 = zext i8 %.sroa.181076.0.copyload to i32
  %.sroa.21.0.insert.shift996 = shl nuw nsw i32 %.sroa.21.0.insert.ext995, 8
  %.sroa.21.0.insert.insert998 = or disjoint i32 %.sroa.24.0.insert.insert1033, %.sroa.21.0.insert.shift996
  %.sroa.18.0.insert.ext960 = zext i8 %.sroa.19.0.copyload to i32
  %.sroa.18.0.insert.insert963 = or disjoint i32 %.sroa.21.0.insert.insert998, %.sroa.18.0.insert.ext960
  store i32 %.sroa.18.0.insert.insert963, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 12), align 1, !tbaa !62
  %.sroa.29.0.insert.ext1070 = zext i8 %.sroa.20.0.copyload to i16
  %.sroa.29.0.insert.shift1071 = shl nuw i16 %.sroa.29.0.insert.ext1070, 8
  %.sroa.24.0.insert.ext1035 = zext i8 %.sroa.211077.0.copyload to i16
  %.sroa.24.0.insert.insert1038 = or disjoint i16 %.sroa.29.0.insert.shift1071, %.sroa.24.0.insert.ext1035
  store i16 %.sroa.24.0.insert.insert1038, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1, !tbaa !63
  br label %187

186:                                              ; preds = %178
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(18) @read_inode_3.header, ptr noundef nonnull align 1 dereferenceable(18) %11, i64 18, i1 false)
  %.pre2795 = load i16, ptr getelementptr inbounds (i8, ptr @read_inode_3.header, i64 16), align 1, !tbaa !63
  br label %187

187:                                              ; preds = %186, %179
  %188 = phi i16 [ %.pre2795, %186 ], [ %.sroa.24.0.insert.insert1038, %179 ]
  %189 = zext i16 %188 to i64
  store i64 %189, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 16), align 8, !tbaa !28
  br label %198

190:                                              ; preds = %43, %43
  store i64 0, ptr getelementptr inbounds (i8, ptr @read_inode_3.i, i64 16), align 8, !tbaa !28
  br label %198

191:                                              ; preds = %43
  %192 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull @screen_mutex) #8
  %193 = load ptr, ptr @stderr, align 8, !tbaa !13
  %194 = load i32, ptr @read_inode_3.header, align 1
  %195 = and i32 %194, 15
  %196 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef nonnull @.str.6, i32 noundef %195) #9
  %197 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @screen_mutex) #8
  tail call void @exit(i32 noundef 1) #10
  unreachable

198:                                              ; preds = %190, %187, %174, %149, %121, %86, %67
  ret ptr @read_inode_3.i
}

declare i32 @lookup_entry(ptr noundef, i64 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strncpy(ptr noalias noundef returned writeonly, ptr noalias nocapture noundef readonly, i64 noundef) local_unnamed_addr #7

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

!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, !12, i64 64}
!6 = !{!"super_block", !7, i64 0, !8, i64 96, !8, i64 100, !12, i64 104, !12, i64 112}
!7 = !{!"squashfs_super_block", !8, i64 0, !8, i64 4, !8, i64 8, !8, i64 12, !8, i64 16, !11, i64 20, !11, i64 22, !11, i64 24, !11, i64 26, !11, i64 28, !11, i64 30, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88}
!8 = !{!"int", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C/C++ TBAA"}
!11 = !{!"short", !9, i64 0}
!12 = !{!"long long", !9, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"any pointer", !9, i64 0}
!15 = !{!8, !8, i64 0}
!16 = !{!9, !9, i64 0}
!17 = !{!18, !8, i64 84}
!18 = !{!"inode", !8, i64 0, !14, i64 8, !12, i64 16, !8, i64 24, !8, i64 28, !8, i64 32, !8, i64 36, !8, i64 40, !8, i64 44, !12, i64 48, !14, i64 56, !19, i64 64, !8, i64 72, !8, i64 76, !9, i64 80, !8, i64 84}
!19 = !{!"long", !9, i64 0}
!20 = !{!18, !8, i64 76}
!21 = !{!18, !8, i64 32}
!22 = !{!18, !8, i64 40}
!23 = !{!18, !8, i64 72}
!24 = !{!18, !19, i64 64}
!25 = !{!18, !8, i64 36}
!26 = !{!27, !8, i64 20}
!27 = !{!"squashfs_dir_inode_header_3", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 8, !8, i64 12, !8, i64 16, !8, i64 18, !8, i64 20, !8, i64 24}
!28 = !{!18, !12, i64 16}
!29 = !{!18, !8, i64 44}
!30 = !{!18, !12, i64 48}
!31 = !{!32, !8, i64 21}
!32 = !{!"squashfs_ldir_inode_header_3", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 8, !8, i64 12, !8, i64 16, !8, i64 19, !8, i64 21, !8, i64 25, !8, i64 27, !9, i64 31}
!33 = !{!34, !8, i64 4}
!34 = !{!"squashfs_reg_inode_header_3", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 8, !12, i64 12, !8, i64 20, !8, i64 24, !8, i64 28, !9, i64 32}
!35 = !{!34, !8, i64 8}
!36 = !{!34, !12, i64 12}
!37 = !{!34, !8, i64 20}
!38 = !{!34, !8, i64 24}
!39 = !{!34, !8, i64 28}
!40 = !{!6, !8, i64 12}
!41 = !{!6, !11, i64 22}
!42 = !{!18, !8, i64 0}
!43 = !{!18, !9, i64 80}
!44 = !{!18, !14, i64 8}
!45 = !{!46, !8, i64 4}
!46 = !{!"squashfs_lreg_inode_header_3", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 8, !8, i64 12, !12, i64 16, !8, i64 24, !8, i64 28, !12, i64 32, !9, i64 40}
!47 = !{!46, !8, i64 8}
!48 = !{!46, !8, i64 12}
!49 = !{!46, !12, i64 16}
!50 = !{!46, !8, i64 24}
!51 = !{!46, !8, i64 28}
!52 = !{!46, !12, i64 32}
!53 = !{!54, !8, i64 4}
!54 = !{!"squashfs_symlink_inode_header_3", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 8, !8, i64 12, !11, i64 16, !9, i64 18}
!55 = !{!54, !8, i64 8}
!56 = !{!54, !8, i64 12}
!57 = !{!54, !11, i64 16}
!58 = !{!18, !14, i64 56}
!59 = !{!60, !8, i64 4}
!60 = !{!"squashfs_dev_inode_header_3", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 8, !8, i64 12, !11, i64 16}
!61 = !{!60, !8, i64 8}
!62 = !{!60, !8, i64 12}
!63 = !{!60, !11, i64 16}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass