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

; 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_2 = type { %struct.squashfs_reg_inode_header_2 }
%struct.squashfs_reg_inode_header_2 = type { i32, i32, i32, i32, i32, i32, [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_2 = type { i32 }
%struct.squashfs_dir_inode_header_2 = type <{ i64, i32, [3 x i8] }>
%struct.squashfs_ldir_inode_header_2 = type <{ i32, [5 x i8], i32, [3 x i8], i16, [0 x %struct.squashfs_dir_index_2] }>
%struct.squashfs_dir_index_2 = type { [7 x i8], i8, [0 x i8] }
%struct.squashfs_symlink_inode_header_2 = type <{ i32, i16, [0 x i8] }>
%struct.squashfs_dev_inode_header_2 = type <{ i32, i16 }>

@swap = external global i32, align 4
@sBlk = external global %struct.super_block, align 8
@screen_mutex = external global %union.pthread_mutex_t, align 8
@stderr = external global ptr, align 8
@read_inode_2.header = external hidden global %union.squashfs_inode_header_2, align 1
@inode_table_hash = external global [65536 x ptr], align 16
@inode_table = external global ptr, align 8
@read_inode_2.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
@inode_number = external global i32, align 4
@.str.5 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [69 x i8], align 1

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local ptr @read_inode_2(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_2, 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_2, 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_2, 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_2, 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_symlink_inode_header_2, 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_dev_inode_header_2, 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
  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
  %49 = load i64, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 15), align 8, !tbaa !9
  %50 = load i32, ptr %3, align 4, !tbaa !5
  %51 = zext i32 %50 to i64
  %52 = add nsw i64 %49, %51
  store i64 %52, ptr %5, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %53 = load i64, ptr %5, align 8, !tbaa !14
  %54 = call i32 @lookup_entry(ptr noundef @inode_table_hash, i64 noundef %53)
  store i32 %54, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %55 = load ptr, ptr @inode_table, align 8, !tbaa !15
  %56 = load i32, ptr %6, align 4, !tbaa !5
  %57 = sext i32 %56 to i64
  %58 = getelementptr inbounds i8, ptr %55, i64 %57
  %59 = load i32, ptr %4, align 4, !tbaa !5
  %60 = zext i32 %59 to i64
  %61 = getelementptr inbounds i8, ptr %58, i64 %60
  store ptr %61, ptr %7, align 8, !tbaa !15
  %62 = load i32, ptr %6, align 4, !tbaa !5
  %63 = icmp eq i32 %62, -1
  br i1 %63, label %64, label %73

64:                                               ; preds = %2
  br label %65

65:                                               ; preds = %64
  %66 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %67 = load ptr, ptr @stderr, align 8, !tbaa !15
  %68 = load i64, ptr %5, align 8, !tbaa !14
  %69 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %67, ptr noundef @.str.4, i64 noundef %68) #8
  %70 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

71:                                               ; No predecessors!
  br label %72

72:                                               ; preds = %71
  br label %73

73:                                               ; preds = %72, %2
  %74 = load i32, ptr @swap, align 4, !tbaa !5
  %75 = icmp ne i32 %74, 0
  br i1 %75, label %76, label %189

76:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %77 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %8, ptr align 1 %77, i64 4, 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_2.header, i8 0, i64 4, i1 false)
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %78 = getelementptr inbounds i8, ptr %8, i64 0
  store ptr %78, ptr %12, align 8, !tbaa !15
  %79 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %79, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %80

80:                                               ; preds = %91, %76
  %81 = load i32, ptr %9, align 4, !tbaa !5
  %82 = load i32, ptr %10, align 4, !tbaa !5
  %83 = add nsw i32 4, %82
  %84 = icmp slt i32 %81, %83
  br i1 %84, label %85, label %94

85:                                               ; preds = %80
  %86 = load ptr, ptr %12, align 8, !tbaa !15
  %87 = getelementptr inbounds i8, ptr %86, i32 1
  store ptr %87, ptr %12, align 8, !tbaa !15
  %88 = load i8, ptr %86, align 1, !tbaa !17
  %89 = load ptr, ptr %13, align 8, !tbaa !15
  %90 = getelementptr inbounds i8, ptr %89, i32 -1
  store ptr %90, ptr %13, align 8, !tbaa !15
  store i8 %88, ptr %89, align 1, !tbaa !17
  br label %91

91:                                               ; preds = %85
  %92 = load i32, ptr %9, align 4, !tbaa !5
  %93 = add nsw i32 %92, 8
  store i32 %93, ptr %9, align 4, !tbaa !5
  br label %80, !llvm.loop !18

94:                                               ; preds = %80
  %95 = load i64, ptr %11, align 8, !tbaa !14
  %96 = load i32, ptr %10, align 4, !tbaa !5
  %97 = sub nsw i32 60, %96
  %98 = zext i32 %97 to i64
  %99 = lshr i64 %95, %98
  %100 = trunc i64 %99 to i32
  %101 = load i32, ptr @read_inode_2.header, align 1
  %102 = and i32 %100, 15
  %103 = and i32 %101, -16
  %104 = or i32 %103, %102
  store i32 %104, ptr @read_inode_2.header, align 1
  store i32 4, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %105 = getelementptr inbounds i8, ptr %8, i64 0
  store ptr %105, ptr %12, align 8, !tbaa !15
  %106 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %106, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %107

107:                                              ; preds = %118, %94
  %108 = load i32, ptr %9, align 4, !tbaa !5
  %109 = load i32, ptr %10, align 4, !tbaa !5
  %110 = add nsw i32 12, %109
  %111 = icmp slt i32 %108, %110
  br i1 %111, label %112, label %121

112:                                              ; preds = %107
  %113 = load ptr, ptr %12, align 8, !tbaa !15
  %114 = getelementptr inbounds i8, ptr %113, i32 1
  store ptr %114, ptr %12, align 8, !tbaa !15
  %115 = load i8, ptr %113, align 1, !tbaa !17
  %116 = load ptr, ptr %13, align 8, !tbaa !15
  %117 = getelementptr inbounds i8, ptr %116, i32 -1
  store ptr %117, ptr %13, align 8, !tbaa !15
  store i8 %115, ptr %116, align 1, !tbaa !17
  br label %118

118:                                              ; preds = %112
  %119 = load i32, ptr %9, align 4, !tbaa !5
  %120 = add nsw i32 %119, 8
  store i32 %120, ptr %9, align 4, !tbaa !5
  br label %107, !llvm.loop !20

121:                                              ; preds = %107
  %122 = load i64, ptr %11, align 8, !tbaa !14
  %123 = load i32, ptr %10, align 4, !tbaa !5
  %124 = sub nsw i32 52, %123
  %125 = zext i32 %124 to i64
  %126 = lshr i64 %122, %125
  %127 = trunc i64 %126 to i32
  %128 = load i32, ptr @read_inode_2.header, align 1
  %129 = and i32 %127, 4095
  %130 = shl i32 %129, 4
  %131 = and i32 %128, -65521
  %132 = or i32 %131, %130
  store i32 %132, ptr @read_inode_2.header, align 1
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %133 = getelementptr inbounds i8, ptr %8, i64 2
  store ptr %133, ptr %12, align 8, !tbaa !15
  %134 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %134, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %135

135:                                              ; preds = %146, %121
  %136 = load i32, ptr %9, align 4, !tbaa !5
  %137 = load i32, ptr %10, align 4, !tbaa !5
  %138 = add nsw i32 8, %137
  %139 = icmp slt i32 %136, %138
  br i1 %139, label %140, label %149

140:                                              ; preds = %135
  %141 = load ptr, ptr %12, align 8, !tbaa !15
  %142 = getelementptr inbounds i8, ptr %141, i32 1
  store ptr %142, ptr %12, align 8, !tbaa !15
  %143 = load i8, ptr %141, align 1, !tbaa !17
  %144 = load ptr, ptr %13, align 8, !tbaa !15
  %145 = getelementptr inbounds i8, ptr %144, i32 -1
  store ptr %145, ptr %13, align 8, !tbaa !15
  store i8 %143, ptr %144, align 1, !tbaa !17
  br label %146

146:                                              ; preds = %140
  %147 = load i32, ptr %9, align 4, !tbaa !5
  %148 = add nsw i32 %147, 8
  store i32 %148, ptr %9, align 4, !tbaa !5
  br label %135, !llvm.loop !21

149:                                              ; preds = %135
  %150 = load i64, ptr %11, align 8, !tbaa !14
  %151 = load i32, ptr %10, align 4, !tbaa !5
  %152 = sub nsw i32 56, %151
  %153 = zext i32 %152 to i64
  %154 = lshr i64 %150, %153
  %155 = trunc i64 %154 to i32
  %156 = load i32, ptr @read_inode_2.header, align 1
  %157 = and i32 %155, 255
  %158 = shl i32 %157, 16
  %159 = and i32 %156, -16711681
  %160 = or i32 %159, %158
  store i32 %160, ptr @read_inode_2.header, align 1
  store i32 0, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %161 = getelementptr inbounds i8, ptr %8, i64 3
  store ptr %161, ptr %12, align 8, !tbaa !15
  %162 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %162, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %163

163:                                              ; preds = %174, %149
  %164 = load i32, ptr %9, align 4, !tbaa !5
  %165 = load i32, ptr %10, align 4, !tbaa !5
  %166 = add nsw i32 8, %165
  %167 = icmp slt i32 %164, %166
  br i1 %167, label %168, label %177

168:                                              ; preds = %163
  %169 = load ptr, ptr %12, align 8, !tbaa !15
  %170 = getelementptr inbounds i8, ptr %169, i32 1
  store ptr %170, ptr %12, align 8, !tbaa !15
  %171 = load i8, ptr %169, align 1, !tbaa !17
  %172 = load ptr, ptr %13, align 8, !tbaa !15
  %173 = getelementptr inbounds i8, ptr %172, i32 -1
  store ptr %173, ptr %13, align 8, !tbaa !15
  store i8 %171, ptr %172, align 1, !tbaa !17
  br label %174

174:                                              ; preds = %168
  %175 = load i32, ptr %9, align 4, !tbaa !5
  %176 = add nsw i32 %175, 8
  store i32 %176, ptr %9, align 4, !tbaa !5
  br label %163, !llvm.loop !22

177:                                              ; preds = %163
  %178 = load i64, ptr %11, align 8, !tbaa !14
  %179 = load i32, ptr %10, align 4, !tbaa !5
  %180 = sub nsw i32 56, %179
  %181 = zext i32 %180 to i64
  %182 = lshr i64 %178, %181
  %183 = trunc i64 %182 to i32
  %184 = load i32, ptr @read_inode_2.header, align 1
  %185 = and i32 %183, 255
  %186 = shl i32 %185, 24
  %187 = and i32 %184, 16777215
  %188 = or i32 %187, %186
  store i32 %188, ptr @read_inode_2.header, align 1
  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 4, ptr %8) #8
  br label %191

189:                                              ; preds = %73
  %190 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 @read_inode_2.header, ptr align 1 %190, i64 4, i1 false)
  br label %191

191:                                              ; preds = %189, %177
  store i32 -1, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 15), align 4, !tbaa !23
  %192 = load ptr, ptr @uid_table, align 8, !tbaa !15
  %193 = load i32, ptr @read_inode_2.header, align 1
  %194 = lshr i32 %193, 16
  %195 = and i32 %194, 255
  %196 = zext i32 %195 to i64
  %197 = getelementptr inbounds i32, ptr %192, i64 %196
  %198 = load i32, ptr %197, align 4, !tbaa !5
  store i32 %198, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 13), align 4, !tbaa !26
  %199 = load i32, ptr @read_inode_2.header, align 1
  %200 = lshr i32 %199, 24
  %201 = icmp eq i32 %200, 255
  br i1 %201, label %202, label %204

202:                                              ; preds = %191
  %203 = load i32, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 13), align 4, !tbaa !26
  br label %211

204:                                              ; preds = %191
  %205 = load ptr, ptr @guid_table, align 8, !tbaa !15
  %206 = load i32, ptr @read_inode_2.header, align 1
  %207 = lshr i32 %206, 24
  %208 = zext i32 %207 to i64
  %209 = getelementptr inbounds i32, ptr %205, i64 %208
  %210 = load i32, ptr %209, align 4, !tbaa !5
  br label %211

211:                                              ; preds = %204, %202
  %212 = phi i32 [ %203, %202 ], [ %210, %204 ]
  store i32 %212, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 5), align 8, !tbaa !27
  %213 = load i32, ptr @read_inode_2.header, align 1
  %214 = and i32 %213, 15
  %215 = zext i32 %214 to i64
  %216 = getelementptr inbounds [0 x i32], ptr @lookup_type, i64 0, i64 %215
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = load i32, ptr @read_inode_2.header, align 1
  %219 = lshr i32 %218, 4
  %220 = and i32 %219, 4095
  %221 = or i32 %217, %220
  store i32 %221, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 7), align 8, !tbaa !28
  %222 = load i32, ptr @read_inode_2.header, align 1
  %223 = and i32 %222, 15
  store i32 %223, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 12), align 8, !tbaa !29
  %224 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 2), align 8, !tbaa !30
  %225 = zext i32 %224 to i64
  store i64 %225, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 11), align 8, !tbaa !31
  %226 = load i32, ptr @inode_number, align 4, !tbaa !5
  %227 = add nsw i32 %226, 1
  store i32 %227, ptr @inode_number, align 4, !tbaa !5
  store i32 %226, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 6), align 4, !tbaa !32
  %228 = load i32, ptr @read_inode_2.header, align 1
  %229 = and i32 %228, 15
  switch i32 %229, label %1402 [
    i32 1, label %230
    i32 8, label %484
    i32 2, label %755
    i32 3, label %1061
    i32 4, label %1247
    i32 5, label %1247
    i32 6, label %1401
    i32 7, label %1401
  ]

230:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  store ptr @read_inode_2.header, ptr %14, align 8, !tbaa !15
  %231 = load i32, ptr @swap, align 4, !tbaa !5
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %233, label %462

233:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 15, ptr %15) #8
  %234 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %15, ptr align 1 %234, i64 15, 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_2.header, i8 0, i64 15, i1 false)
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %235 = getelementptr inbounds i8, ptr %15, i64 0
  store ptr %235, ptr %19, align 8, !tbaa !15
  %236 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %236, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %237

237:                                              ; preds = %248, %233
  %238 = load i32, ptr %16, align 4, !tbaa !5
  %239 = load i32, ptr %17, align 4, !tbaa !5
  %240 = add nsw i32 4, %239
  %241 = icmp slt i32 %238, %240
  br i1 %241, label %242, label %251

242:                                              ; preds = %237
  %243 = load ptr, ptr %19, align 8, !tbaa !15
  %244 = getelementptr inbounds i8, ptr %243, i32 1
  store ptr %244, ptr %19, align 8, !tbaa !15
  %245 = load i8, ptr %243, align 1, !tbaa !17
  %246 = load ptr, ptr %20, align 8, !tbaa !15
  %247 = getelementptr inbounds i8, ptr %246, i32 -1
  store ptr %247, ptr %20, align 8, !tbaa !15
  store i8 %245, ptr %246, align 1, !tbaa !17
  br label %248

248:                                              ; preds = %242
  %249 = load i32, ptr %16, align 4, !tbaa !5
  %250 = add nsw i32 %249, 8
  store i32 %250, ptr %16, align 4, !tbaa !5
  br label %237, !llvm.loop !33

251:                                              ; preds = %237
  %252 = load i64, ptr %18, align 8, !tbaa !14
  %253 = load i32, ptr %17, align 4, !tbaa !5
  %254 = sub nsw i32 60, %253
  %255 = zext i32 %254 to i64
  %256 = lshr i64 %252, %255
  %257 = trunc i64 %256 to i32
  %258 = zext i32 %257 to i64
  %259 = load i64, ptr @read_inode_2.header, align 1
  %260 = and i64 %258, 15
  %261 = and i64 %259, -16
  %262 = or i64 %261, %260
  store i64 %262, ptr @read_inode_2.header, align 1
  %263 = trunc i64 %260 to i32
  store i32 4, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %264 = getelementptr inbounds i8, ptr %15, i64 0
  store ptr %264, ptr %19, align 8, !tbaa !15
  %265 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %265, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %266

266:                                              ; preds = %277, %251
  %267 = load i32, ptr %16, align 4, !tbaa !5
  %268 = load i32, ptr %17, align 4, !tbaa !5
  %269 = add nsw i32 12, %268
  %270 = icmp slt i32 %267, %269
  br i1 %270, label %271, label %280

271:                                              ; preds = %266
  %272 = load ptr, ptr %19, align 8, !tbaa !15
  %273 = getelementptr inbounds i8, ptr %272, i32 1
  store ptr %273, ptr %19, align 8, !tbaa !15
  %274 = load i8, ptr %272, align 1, !tbaa !17
  %275 = load ptr, ptr %20, align 8, !tbaa !15
  %276 = getelementptr inbounds i8, ptr %275, i32 -1
  store ptr %276, ptr %20, align 8, !tbaa !15
  store i8 %274, ptr %275, align 1, !tbaa !17
  br label %277

277:                                              ; preds = %271
  %278 = load i32, ptr %16, align 4, !tbaa !5
  %279 = add nsw i32 %278, 8
  store i32 %279, ptr %16, align 4, !tbaa !5
  br label %266, !llvm.loop !34

280:                                              ; preds = %266
  %281 = load i64, ptr %18, align 8, !tbaa !14
  %282 = load i32, ptr %17, align 4, !tbaa !5
  %283 = sub nsw i32 52, %282
  %284 = zext i32 %283 to i64
  %285 = lshr i64 %281, %284
  %286 = trunc i64 %285 to i32
  %287 = zext i32 %286 to i64
  %288 = load i64, ptr @read_inode_2.header, align 1
  %289 = and i64 %287, 4095
  %290 = shl i64 %289, 4
  %291 = and i64 %288, -65521
  %292 = or i64 %291, %290
  store i64 %292, ptr @read_inode_2.header, align 1
  %293 = trunc i64 %289 to i32
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %294 = getelementptr inbounds i8, ptr %15, i64 2
  store ptr %294, ptr %19, align 8, !tbaa !15
  %295 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %295, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %296

296:                                              ; preds = %307, %280
  %297 = load i32, ptr %16, align 4, !tbaa !5
  %298 = load i32, ptr %17, align 4, !tbaa !5
  %299 = add nsw i32 8, %298
  %300 = icmp slt i32 %297, %299
  br i1 %300, label %301, label %310

301:                                              ; preds = %296
  %302 = load ptr, ptr %19, align 8, !tbaa !15
  %303 = getelementptr inbounds i8, ptr %302, i32 1
  store ptr %303, ptr %19, align 8, !tbaa !15
  %304 = load i8, ptr %302, align 1, !tbaa !17
  %305 = load ptr, ptr %20, align 8, !tbaa !15
  %306 = getelementptr inbounds i8, ptr %305, i32 -1
  store ptr %306, ptr %20, align 8, !tbaa !15
  store i8 %304, ptr %305, align 1, !tbaa !17
  br label %307

307:                                              ; preds = %301
  %308 = load i32, ptr %16, align 4, !tbaa !5
  %309 = add nsw i32 %308, 8
  store i32 %309, ptr %16, align 4, !tbaa !5
  br label %296, !llvm.loop !35

310:                                              ; preds = %296
  %311 = load i64, ptr %18, align 8, !tbaa !14
  %312 = load i32, ptr %17, align 4, !tbaa !5
  %313 = sub nsw i32 56, %312
  %314 = zext i32 %313 to i64
  %315 = lshr i64 %311, %314
  %316 = trunc i64 %315 to i32
  %317 = zext i32 %316 to i64
  %318 = load i64, ptr @read_inode_2.header, align 1
  %319 = and i64 %317, 255
  %320 = shl i64 %319, 16
  %321 = and i64 %318, -16711681
  %322 = or i64 %321, %320
  store i64 %322, ptr @read_inode_2.header, align 1
  %323 = trunc i64 %319 to i32
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %324 = getelementptr inbounds i8, ptr %15, i64 3
  store ptr %324, ptr %19, align 8, !tbaa !15
  %325 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %325, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %326

326:                                              ; preds = %337, %310
  %327 = load i32, ptr %16, align 4, !tbaa !5
  %328 = load i32, ptr %17, align 4, !tbaa !5
  %329 = add nsw i32 8, %328
  %330 = icmp slt i32 %327, %329
  br i1 %330, label %331, label %340

331:                                              ; preds = %326
  %332 = load ptr, ptr %19, align 8, !tbaa !15
  %333 = getelementptr inbounds i8, ptr %332, i32 1
  store ptr %333, ptr %19, align 8, !tbaa !15
  %334 = load i8, ptr %332, align 1, !tbaa !17
  %335 = load ptr, ptr %20, align 8, !tbaa !15
  %336 = getelementptr inbounds i8, ptr %335, i32 -1
  store ptr %336, ptr %20, align 8, !tbaa !15
  store i8 %334, ptr %335, align 1, !tbaa !17
  br label %337

337:                                              ; preds = %331
  %338 = load i32, ptr %16, align 4, !tbaa !5
  %339 = add nsw i32 %338, 8
  store i32 %339, ptr %16, align 4, !tbaa !5
  br label %326, !llvm.loop !36

340:                                              ; preds = %326
  %341 = load i64, ptr %18, align 8, !tbaa !14
  %342 = load i32, ptr %17, align 4, !tbaa !5
  %343 = sub nsw i32 56, %342
  %344 = zext i32 %343 to i64
  %345 = lshr i64 %341, %344
  %346 = trunc i64 %345 to i32
  %347 = zext i32 %346 to i64
  %348 = load i64, ptr @read_inode_2.header, align 1
  %349 = and i64 %347, 255
  %350 = shl i64 %349, 24
  %351 = and i64 %348, -4278190081
  %352 = or i64 %351, %350
  store i64 %352, ptr @read_inode_2.header, align 1
  %353 = trunc i64 %349 to i32
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %354 = getelementptr inbounds i8, ptr %15, i64 4
  store ptr %354, ptr %19, align 8, !tbaa !15
  %355 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %355, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %356

356:                                              ; preds = %367, %340
  %357 = load i32, ptr %16, align 4, !tbaa !5
  %358 = load i32, ptr %17, align 4, !tbaa !5
  %359 = add nsw i32 19, %358
  %360 = icmp slt i32 %357, %359
  br i1 %360, label %361, label %370

361:                                              ; preds = %356
  %362 = load ptr, ptr %19, align 8, !tbaa !15
  %363 = getelementptr inbounds i8, ptr %362, i32 1
  store ptr %363, ptr %19, align 8, !tbaa !15
  %364 = load i8, ptr %362, align 1, !tbaa !17
  %365 = load ptr, ptr %20, align 8, !tbaa !15
  %366 = getelementptr inbounds i8, ptr %365, i32 -1
  store ptr %366, ptr %20, align 8, !tbaa !15
  store i8 %364, ptr %365, align 1, !tbaa !17
  br label %367

367:                                              ; preds = %361
  %368 = load i32, ptr %16, align 4, !tbaa !5
  %369 = add nsw i32 %368, 8
  store i32 %369, ptr %16, align 4, !tbaa !5
  br label %356, !llvm.loop !37

370:                                              ; preds = %356
  %371 = load i64, ptr %18, align 8, !tbaa !14
  %372 = load i32, ptr %17, align 4, !tbaa !5
  %373 = sub nsw i32 45, %372
  %374 = zext i32 %373 to i64
  %375 = lshr i64 %371, %374
  %376 = trunc i64 %375 to i32
  %377 = zext i32 %376 to i64
  %378 = load i64, ptr @read_inode_2.header, align 1
  %379 = and i64 %377, 524287
  %380 = shl i64 %379, 32
  %381 = and i64 %378, -2251795518717953
  %382 = or i64 %381, %380
  store i64 %382, ptr @read_inode_2.header, align 1
  %383 = trunc i64 %379 to i32
  store i32 3, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %384 = getelementptr inbounds i8, ptr %15, i64 6
  store ptr %384, ptr %19, align 8, !tbaa !15
  %385 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %385, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %386

386:                                              ; preds = %397, %370
  %387 = load i32, ptr %16, align 4, !tbaa !5
  %388 = load i32, ptr %17, align 4, !tbaa !5
  %389 = add nsw i32 13, %388
  %390 = icmp slt i32 %387, %389
  br i1 %390, label %391, label %400

391:                                              ; preds = %386
  %392 = load ptr, ptr %19, align 8, !tbaa !15
  %393 = getelementptr inbounds i8, ptr %392, i32 1
  store ptr %393, ptr %19, align 8, !tbaa !15
  %394 = load i8, ptr %392, align 1, !tbaa !17
  %395 = load ptr, ptr %20, align 8, !tbaa !15
  %396 = getelementptr inbounds i8, ptr %395, i32 -1
  store ptr %396, ptr %20, align 8, !tbaa !15
  store i8 %394, ptr %395, align 1, !tbaa !17
  br label %397

397:                                              ; preds = %391
  %398 = load i32, ptr %16, align 4, !tbaa !5
  %399 = add nsw i32 %398, 8
  store i32 %399, ptr %16, align 4, !tbaa !5
  br label %386, !llvm.loop !38

400:                                              ; preds = %386
  %401 = load i64, ptr %18, align 8, !tbaa !14
  %402 = load i32, ptr %17, align 4, !tbaa !5
  %403 = sub nsw i32 51, %402
  %404 = zext i32 %403 to i64
  %405 = lshr i64 %401, %404
  %406 = trunc i64 %405 to i32
  %407 = zext i32 %406 to i64
  %408 = load i64, ptr @read_inode_2.header, align 1
  %409 = and i64 %407, 8191
  %410 = shl i64 %409, 51
  %411 = and i64 %408, 2251799813685247
  %412 = or i64 %411, %410
  store i64 %412, ptr @read_inode_2.header, align 1
  %413 = trunc i64 %409 to i32
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %414 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %414, ptr %19, align 8, !tbaa !15
  %415 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %415, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %416

416:                                              ; preds = %427, %400
  %417 = load i32, ptr %16, align 4, !tbaa !5
  %418 = load i32, ptr %17, align 4, !tbaa !5
  %419 = add nsw i32 32, %418
  %420 = icmp slt i32 %417, %419
  br i1 %420, label %421, label %430

421:                                              ; preds = %416
  %422 = load ptr, ptr %19, align 8, !tbaa !15
  %423 = getelementptr inbounds i8, ptr %422, i32 1
  store ptr %423, ptr %19, align 8, !tbaa !15
  %424 = load i8, ptr %422, align 1, !tbaa !17
  %425 = load ptr, ptr %20, align 8, !tbaa !15
  %426 = getelementptr inbounds i8, ptr %425, i32 -1
  store ptr %426, ptr %20, align 8, !tbaa !15
  store i8 %424, ptr %425, align 1, !tbaa !17
  br label %427

427:                                              ; preds = %421
  %428 = load i32, ptr %16, align 4, !tbaa !5
  %429 = add nsw i32 %428, 8
  store i32 %429, ptr %16, align 4, !tbaa !5
  br label %416, !llvm.loop !39

430:                                              ; preds = %416
  %431 = load i64, ptr %18, align 8, !tbaa !14
  %432 = load i32, ptr %17, align 4, !tbaa !5
  %433 = sub nsw i32 32, %432
  %434 = zext i32 %433 to i64
  %435 = lshr i64 %431, %434
  %436 = trunc i64 %435 to i32
  store i32 %436, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_2, ptr @read_inode_2.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
  %437 = getelementptr inbounds i8, ptr %15, i64 12
  store ptr %437, ptr %19, align 8, !tbaa !15
  %438 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %438, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %439

439:                                              ; preds = %450, %430
  %440 = load i32, ptr %16, align 4, !tbaa !5
  %441 = load i32, ptr %17, align 4, !tbaa !5
  %442 = add nsw i32 24, %441
  %443 = icmp slt i32 %440, %442
  br i1 %443, label %444, label %453

444:                                              ; preds = %439
  %445 = load ptr, ptr %19, align 8, !tbaa !15
  %446 = getelementptr inbounds i8, ptr %445, i32 1
  store ptr %446, ptr %19, align 8, !tbaa !15
  %447 = load i8, ptr %445, align 1, !tbaa !17
  %448 = load ptr, ptr %20, align 8, !tbaa !15
  %449 = getelementptr inbounds i8, ptr %448, i32 -1
  store ptr %449, ptr %20, align 8, !tbaa !15
  store i8 %447, ptr %448, align 1, !tbaa !17
  br label %450

450:                                              ; preds = %444
  %451 = load i32, ptr %16, align 4, !tbaa !5
  %452 = add nsw i32 %451, 8
  store i32 %452, ptr %16, align 4, !tbaa !5
  br label %439, !llvm.loop !40

453:                                              ; preds = %439
  %454 = load i64, ptr %18, align 8, !tbaa !14
  %455 = load i32, ptr %17, align 4, !tbaa !5
  %456 = sub nsw i32 40, %455
  %457 = zext i32 %456 to i64
  %458 = lshr i64 %454, %457
  %459 = trunc i64 %458 to i32
  %460 = trunc i32 %459 to i24
  store i24 %460, ptr getelementptr inbounds (%struct.squashfs_dir_inode_header_2, ptr @read_inode_2.header, i32 0, i32 2), align 1
  %461 = zext i24 %460 to i32
  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 15, ptr %15) #8
  br label %464

462:                                              ; preds = %230
  %463 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 @read_inode_2.header, ptr align 1 %463, i64 15, i1 false)
  br label %464

464:                                              ; preds = %462, %453
  %465 = load ptr, ptr %14, align 8, !tbaa !15
  %466 = load i64, ptr %465, align 1
  %467 = lshr i64 %466, 32
  %468 = and i64 %467, 524287
  %469 = trunc i64 %468 to i32
  %470 = zext i32 %469 to i64
  store i64 %470, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  %471 = load ptr, ptr %14, align 8, !tbaa !15
  %472 = load i64, ptr %471, align 1
  %473 = lshr i64 %472, 51
  %474 = trunc i64 %473 to i32
  store i32 %474, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 8), align 4, !tbaa !42
  %475 = load ptr, ptr %14, align 8, !tbaa !15
  %476 = getelementptr inbounds %struct.squashfs_dir_inode_header_2, ptr %475, i32 0, i32 2
  %477 = load i24, ptr %476, align 1
  %478 = zext i24 %477 to i32
  %479 = zext i32 %478 to i64
  store i64 %479, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 9), align 8, !tbaa !43
  %480 = load ptr, ptr %14, align 8, !tbaa !15
  %481 = getelementptr inbounds %struct.squashfs_dir_inode_header_2, ptr %480, i32 0, i32 1
  %482 = load i32, ptr %481, align 1, !tbaa !44
  %483 = zext i32 %482 to i64
  store i64 %483, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 11), align 8, !tbaa !31
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %1412

484:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  store ptr @read_inode_2.header, ptr %21, align 8, !tbaa !15
  %485 = load i32, ptr @swap, align 4, !tbaa !5
  %486 = icmp ne i32 %485, 0
  br i1 %486, label %487, label %732

487:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 18, ptr %22) #8
  %488 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %22, ptr align 1 %488, i64 18, 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_2.header, i8 0, i64 18, i1 false)
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %489 = getelementptr inbounds i8, ptr %22, i64 0
  store ptr %489, ptr %26, align 8, !tbaa !15
  %490 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %490, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %491

491:                                              ; preds = %502, %487
  %492 = load i32, ptr %23, align 4, !tbaa !5
  %493 = load i32, ptr %24, align 4, !tbaa !5
  %494 = add nsw i32 4, %493
  %495 = icmp slt i32 %492, %494
  br i1 %495, label %496, label %505

496:                                              ; preds = %491
  %497 = load ptr, ptr %26, align 8, !tbaa !15
  %498 = getelementptr inbounds i8, ptr %497, i32 1
  store ptr %498, ptr %26, align 8, !tbaa !15
  %499 = load i8, ptr %497, align 1, !tbaa !17
  %500 = load ptr, ptr %27, align 8, !tbaa !15
  %501 = getelementptr inbounds i8, ptr %500, i32 -1
  store ptr %501, ptr %27, align 8, !tbaa !15
  store i8 %499, ptr %500, align 1, !tbaa !17
  br label %502

502:                                              ; preds = %496
  %503 = load i32, ptr %23, align 4, !tbaa !5
  %504 = add nsw i32 %503, 8
  store i32 %504, ptr %23, align 4, !tbaa !5
  br label %491, !llvm.loop !46

505:                                              ; preds = %491
  %506 = load i64, ptr %25, align 8, !tbaa !14
  %507 = load i32, ptr %24, align 4, !tbaa !5
  %508 = sub nsw i32 60, %507
  %509 = zext i32 %508 to i64
  %510 = lshr i64 %506, %509
  %511 = trunc i64 %510 to i32
  %512 = load i32, ptr @read_inode_2.header, align 1
  %513 = and i32 %511, 15
  %514 = and i32 %512, -16
  %515 = or i32 %514, %513
  store i32 %515, ptr @read_inode_2.header, align 1
  store i32 4, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %516 = getelementptr inbounds i8, ptr %22, i64 0
  store ptr %516, ptr %26, align 8, !tbaa !15
  %517 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %517, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %518

518:                                              ; preds = %529, %505
  %519 = load i32, ptr %23, align 4, !tbaa !5
  %520 = load i32, ptr %24, align 4, !tbaa !5
  %521 = add nsw i32 12, %520
  %522 = icmp slt i32 %519, %521
  br i1 %522, label %523, label %532

523:                                              ; preds = %518
  %524 = load ptr, ptr %26, align 8, !tbaa !15
  %525 = getelementptr inbounds i8, ptr %524, i32 1
  store ptr %525, ptr %26, align 8, !tbaa !15
  %526 = load i8, ptr %524, align 1, !tbaa !17
  %527 = load ptr, ptr %27, align 8, !tbaa !15
  %528 = getelementptr inbounds i8, ptr %527, i32 -1
  store ptr %528, ptr %27, align 8, !tbaa !15
  store i8 %526, ptr %527, align 1, !tbaa !17
  br label %529

529:                                              ; preds = %523
  %530 = load i32, ptr %23, align 4, !tbaa !5
  %531 = add nsw i32 %530, 8
  store i32 %531, ptr %23, align 4, !tbaa !5
  br label %518, !llvm.loop !47

532:                                              ; preds = %518
  %533 = load i64, ptr %25, align 8, !tbaa !14
  %534 = load i32, ptr %24, align 4, !tbaa !5
  %535 = sub nsw i32 52, %534
  %536 = zext i32 %535 to i64
  %537 = lshr i64 %533, %536
  %538 = trunc i64 %537 to i32
  %539 = load i32, ptr @read_inode_2.header, align 1
  %540 = and i32 %538, 4095
  %541 = shl i32 %540, 4
  %542 = and i32 %539, -65521
  %543 = or i32 %542, %541
  store i32 %543, ptr @read_inode_2.header, align 1
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %544 = getelementptr inbounds i8, ptr %22, i64 2
  store ptr %544, ptr %26, align 8, !tbaa !15
  %545 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %545, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %546

546:                                              ; preds = %557, %532
  %547 = load i32, ptr %23, align 4, !tbaa !5
  %548 = load i32, ptr %24, align 4, !tbaa !5
  %549 = add nsw i32 8, %548
  %550 = icmp slt i32 %547, %549
  br i1 %550, label %551, label %560

551:                                              ; preds = %546
  %552 = load ptr, ptr %26, align 8, !tbaa !15
  %553 = getelementptr inbounds i8, ptr %552, i32 1
  store ptr %553, ptr %26, align 8, !tbaa !15
  %554 = load i8, ptr %552, align 1, !tbaa !17
  %555 = load ptr, ptr %27, align 8, !tbaa !15
  %556 = getelementptr inbounds i8, ptr %555, i32 -1
  store ptr %556, ptr %27, align 8, !tbaa !15
  store i8 %554, ptr %555, align 1, !tbaa !17
  br label %557

557:                                              ; preds = %551
  %558 = load i32, ptr %23, align 4, !tbaa !5
  %559 = add nsw i32 %558, 8
  store i32 %559, ptr %23, align 4, !tbaa !5
  br label %546, !llvm.loop !48

560:                                              ; preds = %546
  %561 = load i64, ptr %25, align 8, !tbaa !14
  %562 = load i32, ptr %24, align 4, !tbaa !5
  %563 = sub nsw i32 56, %562
  %564 = zext i32 %563 to i64
  %565 = lshr i64 %561, %564
  %566 = trunc i64 %565 to i32
  %567 = load i32, ptr @read_inode_2.header, align 1
  %568 = and i32 %566, 255
  %569 = shl i32 %568, 16
  %570 = and i32 %567, -16711681
  %571 = or i32 %570, %569
  store i32 %571, ptr @read_inode_2.header, align 1
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %572 = getelementptr inbounds i8, ptr %22, i64 3
  store ptr %572, ptr %26, align 8, !tbaa !15
  %573 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %573, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %574

574:                                              ; preds = %585, %560
  %575 = load i32, ptr %23, align 4, !tbaa !5
  %576 = load i32, ptr %24, align 4, !tbaa !5
  %577 = add nsw i32 8, %576
  %578 = icmp slt i32 %575, %577
  br i1 %578, label %579, label %588

579:                                              ; preds = %574
  %580 = load ptr, ptr %26, align 8, !tbaa !15
  %581 = getelementptr inbounds i8, ptr %580, i32 1
  store ptr %581, ptr %26, align 8, !tbaa !15
  %582 = load i8, ptr %580, align 1, !tbaa !17
  %583 = load ptr, ptr %27, align 8, !tbaa !15
  %584 = getelementptr inbounds i8, ptr %583, i32 -1
  store ptr %584, ptr %27, align 8, !tbaa !15
  store i8 %582, ptr %583, align 1, !tbaa !17
  br label %585

585:                                              ; preds = %579
  %586 = load i32, ptr %23, align 4, !tbaa !5
  %587 = add nsw i32 %586, 8
  store i32 %587, ptr %23, align 4, !tbaa !5
  br label %574, !llvm.loop !49

588:                                              ; preds = %574
  %589 = load i64, ptr %25, align 8, !tbaa !14
  %590 = load i32, ptr %24, align 4, !tbaa !5
  %591 = sub nsw i32 56, %590
  %592 = zext i32 %591 to i64
  %593 = lshr i64 %589, %592
  %594 = trunc i64 %593 to i32
  %595 = load i32, ptr @read_inode_2.header, align 1
  %596 = and i32 %594, 255
  %597 = shl i32 %596, 24
  %598 = and i32 %595, 16777215
  %599 = or i32 %598, %597
  store i32 %599, ptr @read_inode_2.header, align 1
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %600 = getelementptr inbounds i8, ptr %22, i64 4
  store ptr %600, ptr %26, align 8, !tbaa !15
  %601 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %601, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %602

602:                                              ; preds = %613, %588
  %603 = load i32, ptr %23, align 4, !tbaa !5
  %604 = load i32, ptr %24, align 4, !tbaa !5
  %605 = add nsw i32 27, %604
  %606 = icmp slt i32 %603, %605
  br i1 %606, label %607, label %616

607:                                              ; preds = %602
  %608 = load ptr, ptr %26, align 8, !tbaa !15
  %609 = getelementptr inbounds i8, ptr %608, i32 1
  store ptr %609, ptr %26, align 8, !tbaa !15
  %610 = load i8, ptr %608, align 1, !tbaa !17
  %611 = load ptr, ptr %27, align 8, !tbaa !15
  %612 = getelementptr inbounds i8, ptr %611, i32 -1
  store ptr %612, ptr %27, align 8, !tbaa !15
  store i8 %610, ptr %611, align 1, !tbaa !17
  br label %613

613:                                              ; preds = %607
  %614 = load i32, ptr %23, align 4, !tbaa !5
  %615 = add nsw i32 %614, 8
  store i32 %615, ptr %23, align 4, !tbaa !5
  br label %602, !llvm.loop !50

616:                                              ; preds = %602
  %617 = load i64, ptr %25, align 8, !tbaa !14
  %618 = load i32, ptr %24, align 4, !tbaa !5
  %619 = sub nsw i32 37, %618
  %620 = zext i32 %619 to i64
  %621 = lshr i64 %617, %620
  %622 = trunc i64 %621 to i32
  %623 = zext i32 %622 to i40
  %624 = load i40, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_2, ptr @read_inode_2.header, i32 0, i32 1), align 1
  %625 = and i40 %623, 134217727
  %626 = and i40 %624, -134217728
  %627 = or i40 %626, %625
  store i40 %627, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_2, ptr @read_inode_2.header, i32 0, i32 1), align 1
  %628 = trunc i40 %625 to i32
  store i32 3, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %629 = getelementptr inbounds i8, ptr %22, i64 7
  store ptr %629, ptr %26, align 8, !tbaa !15
  %630 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %630, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %631

631:                                              ; preds = %642, %616
  %632 = load i32, ptr %23, align 4, !tbaa !5
  %633 = load i32, ptr %24, align 4, !tbaa !5
  %634 = add nsw i32 13, %633
  %635 = icmp slt i32 %632, %634
  br i1 %635, label %636, label %645

636:                                              ; preds = %631
  %637 = load ptr, ptr %26, align 8, !tbaa !15
  %638 = getelementptr inbounds i8, ptr %637, i32 1
  store ptr %638, ptr %26, align 8, !tbaa !15
  %639 = load i8, ptr %637, align 1, !tbaa !17
  %640 = load ptr, ptr %27, align 8, !tbaa !15
  %641 = getelementptr inbounds i8, ptr %640, i32 -1
  store ptr %641, ptr %27, align 8, !tbaa !15
  store i8 %639, ptr %640, align 1, !tbaa !17
  br label %642

642:                                              ; preds = %636
  %643 = load i32, ptr %23, align 4, !tbaa !5
  %644 = add nsw i32 %643, 8
  store i32 %644, ptr %23, align 4, !tbaa !5
  br label %631, !llvm.loop !51

645:                                              ; preds = %631
  %646 = load i64, ptr %25, align 8, !tbaa !14
  %647 = load i32, ptr %24, align 4, !tbaa !5
  %648 = sub nsw i32 51, %647
  %649 = zext i32 %648 to i64
  %650 = lshr i64 %646, %649
  %651 = trunc i64 %650 to i32
  %652 = zext i32 %651 to i40
  %653 = load i40, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_2, ptr @read_inode_2.header, i32 0, i32 1), align 1
  %654 = and i40 %652, 8191
  %655 = shl i40 %654, 27
  %656 = and i40 %653, 134217727
  %657 = or i40 %656, %655
  store i40 %657, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_2, ptr @read_inode_2.header, i32 0, i32 1), align 1
  %658 = trunc i40 %654 to i32
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %659 = getelementptr inbounds i8, ptr %22, i64 9
  store ptr %659, ptr %26, align 8, !tbaa !15
  %660 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %660, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %661

661:                                              ; preds = %672, %645
  %662 = load i32, ptr %23, align 4, !tbaa !5
  %663 = load i32, ptr %24, align 4, !tbaa !5
  %664 = add nsw i32 32, %663
  %665 = icmp slt i32 %662, %664
  br i1 %665, label %666, label %675

666:                                              ; preds = %661
  %667 = load ptr, ptr %26, align 8, !tbaa !15
  %668 = getelementptr inbounds i8, ptr %667, i32 1
  store ptr %668, ptr %26, align 8, !tbaa !15
  %669 = load i8, ptr %667, align 1, !tbaa !17
  %670 = load ptr, ptr %27, align 8, !tbaa !15
  %671 = getelementptr inbounds i8, ptr %670, i32 -1
  store ptr %671, ptr %27, align 8, !tbaa !15
  store i8 %669, ptr %670, align 1, !tbaa !17
  br label %672

672:                                              ; preds = %666
  %673 = load i32, ptr %23, align 4, !tbaa !5
  %674 = add nsw i32 %673, 8
  store i32 %674, ptr %23, align 4, !tbaa !5
  br label %661, !llvm.loop !52

675:                                              ; preds = %661
  %676 = load i64, ptr %25, align 8, !tbaa !14
  %677 = load i32, ptr %24, align 4, !tbaa !5
  %678 = sub nsw i32 32, %677
  %679 = zext i32 %678 to i64
  %680 = lshr i64 %676, %679
  %681 = trunc i64 %680 to i32
  store i32 %681, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_2, ptr @read_inode_2.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
  %682 = getelementptr inbounds i8, ptr %22, i64 13
  store ptr %682, ptr %26, align 8, !tbaa !15
  %683 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %683, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %684

684:                                              ; preds = %695, %675
  %685 = load i32, ptr %23, align 4, !tbaa !5
  %686 = load i32, ptr %24, align 4, !tbaa !5
  %687 = add nsw i32 24, %686
  %688 = icmp slt i32 %685, %687
  br i1 %688, label %689, label %698

689:                                              ; preds = %684
  %690 = load ptr, ptr %26, align 8, !tbaa !15
  %691 = getelementptr inbounds i8, ptr %690, i32 1
  store ptr %691, ptr %26, align 8, !tbaa !15
  %692 = load i8, ptr %690, align 1, !tbaa !17
  %693 = load ptr, ptr %27, align 8, !tbaa !15
  %694 = getelementptr inbounds i8, ptr %693, i32 -1
  store ptr %694, ptr %27, align 8, !tbaa !15
  store i8 %692, ptr %693, align 1, !tbaa !17
  br label %695

695:                                              ; preds = %689
  %696 = load i32, ptr %23, align 4, !tbaa !5
  %697 = add nsw i32 %696, 8
  store i32 %697, ptr %23, align 4, !tbaa !5
  br label %684, !llvm.loop !53

698:                                              ; preds = %684
  %699 = load i64, ptr %25, align 8, !tbaa !14
  %700 = load i32, ptr %24, align 4, !tbaa !5
  %701 = sub nsw i32 40, %700
  %702 = zext i32 %701 to i64
  %703 = lshr i64 %699, %702
  %704 = trunc i64 %703 to i32
  %705 = trunc i32 %704 to i24
  store i24 %705, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_2, ptr @read_inode_2.header, i32 0, i32 3), align 1
  %706 = zext i24 %705 to i32
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %707 = getelementptr inbounds i8, ptr %22, i64 16
  store ptr %707, ptr %26, align 8, !tbaa !15
  %708 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %708, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %709

709:                                              ; preds = %720, %698
  %710 = load i32, ptr %23, align 4, !tbaa !5
  %711 = load i32, ptr %24, align 4, !tbaa !5
  %712 = add nsw i32 16, %711
  %713 = icmp slt i32 %710, %712
  br i1 %713, label %714, label %723

714:                                              ; preds = %709
  %715 = load ptr, ptr %26, align 8, !tbaa !15
  %716 = getelementptr inbounds i8, ptr %715, i32 1
  store ptr %716, ptr %26, align 8, !tbaa !15
  %717 = load i8, ptr %715, align 1, !tbaa !17
  %718 = load ptr, ptr %27, align 8, !tbaa !15
  %719 = getelementptr inbounds i8, ptr %718, i32 -1
  store ptr %719, ptr %27, align 8, !tbaa !15
  store i8 %717, ptr %718, align 1, !tbaa !17
  br label %720

720:                                              ; preds = %714
  %721 = load i32, ptr %23, align 4, !tbaa !5
  %722 = add nsw i32 %721, 8
  store i32 %722, ptr %23, align 4, !tbaa !5
  br label %709, !llvm.loop !54

723:                                              ; preds = %709
  %724 = load i64, ptr %25, align 8, !tbaa !14
  %725 = load i32, ptr %24, align 4, !tbaa !5
  %726 = sub nsw i32 48, %725
  %727 = zext i32 %726 to i64
  %728 = lshr i64 %724, %727
  %729 = trunc i64 %728 to i32
  %730 = trunc i32 %729 to i16
  store i16 %730, ptr getelementptr inbounds (%struct.squashfs_ldir_inode_header_2, ptr @read_inode_2.header, i32 0, i32 4), align 1
  %731 = zext i16 %730 to i32
  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 18, ptr %22) #8
  br label %734

732:                                              ; preds = %484
  %733 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 @read_inode_2.header, ptr align 1 %733, i64 18, i1 false)
  br label %734

734:                                              ; preds = %732, %723
  %735 = load ptr, ptr %21, align 8, !tbaa !15
  %736 = getelementptr inbounds %struct.squashfs_ldir_inode_header_2, ptr %735, i32 0, i32 1
  %737 = load i40, ptr %736, align 1
  %738 = and i40 %737, 134217727
  %739 = trunc i40 %738 to i32
  %740 = zext i32 %739 to i64
  store i64 %740, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  %741 = load ptr, ptr %21, align 8, !tbaa !15
  %742 = getelementptr inbounds %struct.squashfs_ldir_inode_header_2, ptr %741, i32 0, i32 1
  %743 = load i40, ptr %742, align 1
  %744 = lshr i40 %743, 27
  %745 = trunc i40 %744 to i32
  store i32 %745, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 8), align 4, !tbaa !42
  %746 = load ptr, ptr %21, align 8, !tbaa !15
  %747 = getelementptr inbounds %struct.squashfs_ldir_inode_header_2, ptr %746, i32 0, i32 3
  %748 = load i24, ptr %747, align 1
  %749 = zext i24 %748 to i32
  %750 = zext i32 %749 to i64
  store i64 %750, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 9), align 8, !tbaa !43
  %751 = load ptr, ptr %21, align 8, !tbaa !15
  %752 = getelementptr inbounds %struct.squashfs_ldir_inode_header_2, ptr %751, i32 0, i32 2
  %753 = load i32, ptr %752, align 1, !tbaa !55
  %754 = zext i32 %753 to i64
  store i64 %754, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 11), align 8, !tbaa !31
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %1412

755:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  store ptr @read_inode_2.header, ptr %28, align 8, !tbaa !15
  %756 = load i32, ptr @swap, align 4, !tbaa !5
  %757 = icmp ne i32 %756, 0
  br i1 %757, label %758, label %1001

758:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #8
  %759 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %29, ptr align 1 %759, i64 24, 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
  %760 = load ptr, ptr %28, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %760, i8 0, i64 24, i1 false)
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %761 = getelementptr inbounds i8, ptr %29, i64 0
  store ptr %761, ptr %33, align 8, !tbaa !15
  %762 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %762, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %763

763:                                              ; preds = %774, %758
  %764 = load i32, ptr %30, align 4, !tbaa !5
  %765 = load i32, ptr %31, align 4, !tbaa !5
  %766 = add nsw i32 4, %765
  %767 = icmp slt i32 %764, %766
  br i1 %767, label %768, label %777

768:                                              ; preds = %763
  %769 = load ptr, ptr %33, align 8, !tbaa !15
  %770 = getelementptr inbounds i8, ptr %769, i32 1
  store ptr %770, ptr %33, align 8, !tbaa !15
  %771 = load i8, ptr %769, align 1, !tbaa !17
  %772 = load ptr, ptr %34, align 8, !tbaa !15
  %773 = getelementptr inbounds i8, ptr %772, i32 -1
  store ptr %773, ptr %34, align 8, !tbaa !15
  store i8 %771, ptr %772, align 1, !tbaa !17
  br label %774

774:                                              ; preds = %768
  %775 = load i32, ptr %30, align 4, !tbaa !5
  %776 = add nsw i32 %775, 8
  store i32 %776, ptr %30, align 4, !tbaa !5
  br label %763, !llvm.loop !57

777:                                              ; preds = %763
  %778 = load i64, ptr %32, align 8, !tbaa !14
  %779 = load i32, ptr %31, align 4, !tbaa !5
  %780 = sub nsw i32 60, %779
  %781 = zext i32 %780 to i64
  %782 = lshr i64 %778, %781
  %783 = trunc i64 %782 to i32
  %784 = load ptr, ptr %28, align 8, !tbaa !15
  %785 = load i32, ptr %784, align 1
  %786 = and i32 %783, 15
  %787 = and i32 %785, -16
  %788 = or i32 %787, %786
  store i32 %788, ptr %784, align 1
  store i32 4, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %789 = getelementptr inbounds i8, ptr %29, i64 0
  store ptr %789, ptr %33, align 8, !tbaa !15
  %790 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %790, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %791

791:                                              ; preds = %802, %777
  %792 = load i32, ptr %30, align 4, !tbaa !5
  %793 = load i32, ptr %31, align 4, !tbaa !5
  %794 = add nsw i32 12, %793
  %795 = icmp slt i32 %792, %794
  br i1 %795, label %796, label %805

796:                                              ; preds = %791
  %797 = load ptr, ptr %33, align 8, !tbaa !15
  %798 = getelementptr inbounds i8, ptr %797, i32 1
  store ptr %798, ptr %33, align 8, !tbaa !15
  %799 = load i8, ptr %797, align 1, !tbaa !17
  %800 = load ptr, ptr %34, align 8, !tbaa !15
  %801 = getelementptr inbounds i8, ptr %800, i32 -1
  store ptr %801, ptr %34, align 8, !tbaa !15
  store i8 %799, ptr %800, align 1, !tbaa !17
  br label %802

802:                                              ; preds = %796
  %803 = load i32, ptr %30, align 4, !tbaa !5
  %804 = add nsw i32 %803, 8
  store i32 %804, ptr %30, align 4, !tbaa !5
  br label %791, !llvm.loop !58

805:                                              ; preds = %791
  %806 = load i64, ptr %32, align 8, !tbaa !14
  %807 = load i32, ptr %31, align 4, !tbaa !5
  %808 = sub nsw i32 52, %807
  %809 = zext i32 %808 to i64
  %810 = lshr i64 %806, %809
  %811 = trunc i64 %810 to i32
  %812 = load ptr, ptr %28, align 8, !tbaa !15
  %813 = load i32, ptr %812, align 1
  %814 = and i32 %811, 4095
  %815 = shl i32 %814, 4
  %816 = and i32 %813, -65521
  %817 = or i32 %816, %815
  store i32 %817, ptr %812, align 1
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %818 = getelementptr inbounds i8, ptr %29, i64 2
  store ptr %818, ptr %33, align 8, !tbaa !15
  %819 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %819, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %820

820:                                              ; preds = %831, %805
  %821 = load i32, ptr %30, align 4, !tbaa !5
  %822 = load i32, ptr %31, align 4, !tbaa !5
  %823 = add nsw i32 8, %822
  %824 = icmp slt i32 %821, %823
  br i1 %824, label %825, label %834

825:                                              ; preds = %820
  %826 = load ptr, ptr %33, align 8, !tbaa !15
  %827 = getelementptr inbounds i8, ptr %826, i32 1
  store ptr %827, ptr %33, align 8, !tbaa !15
  %828 = load i8, ptr %826, align 1, !tbaa !17
  %829 = load ptr, ptr %34, align 8, !tbaa !15
  %830 = getelementptr inbounds i8, ptr %829, i32 -1
  store ptr %830, ptr %34, align 8, !tbaa !15
  store i8 %828, ptr %829, align 1, !tbaa !17
  br label %831

831:                                              ; preds = %825
  %832 = load i32, ptr %30, align 4, !tbaa !5
  %833 = add nsw i32 %832, 8
  store i32 %833, ptr %30, align 4, !tbaa !5
  br label %820, !llvm.loop !59

834:                                              ; preds = %820
  %835 = load i64, ptr %32, align 8, !tbaa !14
  %836 = load i32, ptr %31, align 4, !tbaa !5
  %837 = sub nsw i32 56, %836
  %838 = zext i32 %837 to i64
  %839 = lshr i64 %835, %838
  %840 = trunc i64 %839 to i32
  %841 = load ptr, ptr %28, align 8, !tbaa !15
  %842 = load i32, ptr %841, align 1
  %843 = and i32 %840, 255
  %844 = shl i32 %843, 16
  %845 = and i32 %842, -16711681
  %846 = or i32 %845, %844
  store i32 %846, ptr %841, align 1
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %847 = getelementptr inbounds i8, ptr %29, i64 3
  store ptr %847, ptr %33, align 8, !tbaa !15
  %848 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %848, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %849

849:                                              ; preds = %860, %834
  %850 = load i32, ptr %30, align 4, !tbaa !5
  %851 = load i32, ptr %31, align 4, !tbaa !5
  %852 = add nsw i32 8, %851
  %853 = icmp slt i32 %850, %852
  br i1 %853, label %854, label %863

854:                                              ; preds = %849
  %855 = load ptr, ptr %33, align 8, !tbaa !15
  %856 = getelementptr inbounds i8, ptr %855, i32 1
  store ptr %856, ptr %33, align 8, !tbaa !15
  %857 = load i8, ptr %855, align 1, !tbaa !17
  %858 = load ptr, ptr %34, align 8, !tbaa !15
  %859 = getelementptr inbounds i8, ptr %858, i32 -1
  store ptr %859, ptr %34, align 8, !tbaa !15
  store i8 %857, ptr %858, align 1, !tbaa !17
  br label %860

860:                                              ; preds = %854
  %861 = load i32, ptr %30, align 4, !tbaa !5
  %862 = add nsw i32 %861, 8
  store i32 %862, ptr %30, align 4, !tbaa !5
  br label %849, !llvm.loop !60

863:                                              ; preds = %849
  %864 = load i64, ptr %32, align 8, !tbaa !14
  %865 = load i32, ptr %31, align 4, !tbaa !5
  %866 = sub nsw i32 56, %865
  %867 = zext i32 %866 to i64
  %868 = lshr i64 %864, %867
  %869 = trunc i64 %868 to i32
  %870 = load ptr, ptr %28, align 8, !tbaa !15
  %871 = load i32, ptr %870, align 1
  %872 = and i32 %869, 255
  %873 = shl i32 %872, 24
  %874 = and i32 %871, 16777215
  %875 = or i32 %874, %873
  store i32 %875, ptr %870, align 1
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %876 = getelementptr inbounds i8, ptr %29, i64 4
  store ptr %876, ptr %33, align 8, !tbaa !15
  %877 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %877, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %878

878:                                              ; preds = %889, %863
  %879 = load i32, ptr %30, align 4, !tbaa !5
  %880 = load i32, ptr %31, 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 %33, align 8, !tbaa !15
  %885 = getelementptr inbounds i8, ptr %884, i32 1
  store ptr %885, ptr %33, align 8, !tbaa !15
  %886 = load i8, ptr %884, align 1, !tbaa !17
  %887 = load ptr, ptr %34, align 8, !tbaa !15
  %888 = getelementptr inbounds i8, ptr %887, i32 -1
  store ptr %888, ptr %34, align 8, !tbaa !15
  store i8 %886, ptr %887, align 1, !tbaa !17
  br label %889

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

892:                                              ; preds = %878
  %893 = load i64, ptr %32, align 8, !tbaa !14
  %894 = load i32, ptr %31, 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
  %899 = load ptr, ptr %28, align 8, !tbaa !15
  %900 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %899, i32 0, i32 1
  store i32 %898, ptr %900, align 1, !tbaa !62
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %901 = getelementptr inbounds i8, ptr %29, i64 8
  store ptr %901, ptr %33, align 8, !tbaa !15
  %902 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %902, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %903

903:                                              ; preds = %914, %892
  %904 = load i32, ptr %30, align 4, !tbaa !5
  %905 = load i32, ptr %31, align 4, !tbaa !5
  %906 = add nsw i32 32, %905
  %907 = icmp slt i32 %904, %906
  br i1 %907, label %908, label %917

908:                                              ; preds = %903
  %909 = load ptr, ptr %33, align 8, !tbaa !15
  %910 = getelementptr inbounds i8, ptr %909, i32 1
  store ptr %910, ptr %33, align 8, !tbaa !15
  %911 = load i8, ptr %909, align 1, !tbaa !17
  %912 = load ptr, ptr %34, align 8, !tbaa !15
  %913 = getelementptr inbounds i8, ptr %912, i32 -1
  store ptr %913, ptr %34, align 8, !tbaa !15
  store i8 %911, ptr %912, align 1, !tbaa !17
  br label %914

914:                                              ; preds = %908
  %915 = load i32, ptr %30, align 4, !tbaa !5
  %916 = add nsw i32 %915, 8
  store i32 %916, ptr %30, align 4, !tbaa !5
  br label %903, !llvm.loop !64

917:                                              ; preds = %903
  %918 = load i64, ptr %32, align 8, !tbaa !14
  %919 = load i32, ptr %31, align 4, !tbaa !5
  %920 = sub nsw i32 32, %919
  %921 = zext i32 %920 to i64
  %922 = lshr i64 %918, %921
  %923 = trunc i64 %922 to i32
  %924 = load ptr, ptr %28, align 8, !tbaa !15
  %925 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %924, i32 0, i32 2
  store i32 %923, ptr %925, align 1, !tbaa !65
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %926 = getelementptr inbounds i8, ptr %29, i64 12
  store ptr %926, ptr %33, align 8, !tbaa !15
  %927 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %927, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %928

928:                                              ; preds = %939, %917
  %929 = load i32, ptr %30, align 4, !tbaa !5
  %930 = load i32, ptr %31, align 4, !tbaa !5
  %931 = add nsw i32 32, %930
  %932 = icmp slt i32 %929, %931
  br i1 %932, label %933, label %942

933:                                              ; preds = %928
  %934 = load ptr, ptr %33, align 8, !tbaa !15
  %935 = getelementptr inbounds i8, ptr %934, i32 1
  store ptr %935, ptr %33, align 8, !tbaa !15
  %936 = load i8, ptr %934, align 1, !tbaa !17
  %937 = load ptr, ptr %34, align 8, !tbaa !15
  %938 = getelementptr inbounds i8, ptr %937, i32 -1
  store ptr %938, ptr %34, align 8, !tbaa !15
  store i8 %936, ptr %937, align 1, !tbaa !17
  br label %939

939:                                              ; preds = %933
  %940 = load i32, ptr %30, align 4, !tbaa !5
  %941 = add nsw i32 %940, 8
  store i32 %941, ptr %30, align 4, !tbaa !5
  br label %928, !llvm.loop !66

942:                                              ; preds = %928
  %943 = load i64, ptr %32, align 8, !tbaa !14
  %944 = load i32, ptr %31, align 4, !tbaa !5
  %945 = sub nsw i32 32, %944
  %946 = zext i32 %945 to i64
  %947 = lshr i64 %943, %946
  %948 = trunc i64 %947 to i32
  %949 = load ptr, ptr %28, align 8, !tbaa !15
  %950 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %949, i32 0, i32 3
  store i32 %948, ptr %950, align 1, !tbaa !67
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %951 = getelementptr inbounds i8, ptr %29, i64 16
  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, %942
  %954 = load i32, ptr %30, align 4, !tbaa !5
  %955 = load i32, ptr %31, align 4, !tbaa !5
  %956 = add nsw i32 32, %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 !68

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 32, %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 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %974, i32 0, i32 4
  store i32 %973, ptr %975, align 1, !tbaa !69
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %976 = getelementptr inbounds i8, ptr %29, i64 20
  store ptr %976, ptr %33, align 8, !tbaa !15
  %977 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %977, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %978

978:                                              ; preds = %989, %967
  %979 = load i32, ptr %30, align 4, !tbaa !5
  %980 = load i32, ptr %31, align 4, !tbaa !5
  %981 = add nsw i32 32, %980
  %982 = icmp slt i32 %979, %981
  br i1 %982, label %983, label %992

983:                                              ; preds = %978
  %984 = load ptr, ptr %33, align 8, !tbaa !15
  %985 = getelementptr inbounds i8, ptr %984, i32 1
  store ptr %985, ptr %33, align 8, !tbaa !15
  %986 = load i8, ptr %984, align 1, !tbaa !17
  %987 = load ptr, ptr %34, align 8, !tbaa !15
  %988 = getelementptr inbounds i8, ptr %987, i32 -1
  store ptr %988, ptr %34, align 8, !tbaa !15
  store i8 %986, ptr %987, align 1, !tbaa !17
  br label %989

989:                                              ; preds = %983
  %990 = load i32, ptr %30, align 4, !tbaa !5
  %991 = add nsw i32 %990, 8
  store i32 %991, ptr %30, align 4, !tbaa !5
  br label %978, !llvm.loop !70

992:                                              ; preds = %978
  %993 = load i64, ptr %32, align 8, !tbaa !14
  %994 = load i32, ptr %31, align 4, !tbaa !5
  %995 = sub nsw i32 32, %994
  %996 = zext i32 %995 to i64
  %997 = lshr i64 %993, %996
  %998 = trunc i64 %997 to i32
  %999 = load ptr, ptr %28, align 8, !tbaa !15
  %1000 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %999, i32 0, i32 5
  store i32 %998, ptr %1000, align 1
  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 24, ptr %29) #8
  br label %1004

1001:                                             ; preds = %755
  %1002 = load ptr, ptr %28, align 8, !tbaa !15
  %1003 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1002, ptr align 1 %1003, i64 24, i1 false)
  br label %1004

1004:                                             ; preds = %1001, %992
  %1005 = load ptr, ptr %28, align 8, !tbaa !15
  %1006 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1005, i32 0, i32 5
  %1007 = load i32, ptr %1006, align 1
  %1008 = zext i32 %1007 to i64
  store i64 %1008, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  %1009 = load ptr, ptr %28, align 8, !tbaa !15
  %1010 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1009, i32 0, i32 1
  %1011 = load i32, ptr %1010, align 1, !tbaa !62
  %1012 = zext i32 %1011 to i64
  store i64 %1012, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 11), align 8, !tbaa !31
  %1013 = load ptr, ptr %28, align 8, !tbaa !15
  %1014 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1013, i32 0, i32 3
  %1015 = load i32, ptr %1014, align 1, !tbaa !67
  %1016 = icmp eq i32 %1015, -1
  br i1 %1016, label %1017, label %1018

1017:                                             ; preds = %1004
  br label %1024

1018:                                             ; preds = %1004
  %1019 = load ptr, ptr %28, align 8, !tbaa !15
  %1020 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1019, i32 0, i32 5
  %1021 = load i32, ptr %1020, align 1
  %1022 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !71
  %1023 = urem i32 %1021, %1022
  br label %1024

1024:                                             ; preds = %1018, %1017
  %1025 = phi i32 [ 0, %1017 ], [ %1023, %1018 ]
  store i32 %1025, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 4), align 4, !tbaa !72
  %1026 = load ptr, ptr %28, align 8, !tbaa !15
  %1027 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1026, i32 0, i32 3
  %1028 = load i32, ptr %1027, align 1, !tbaa !67
  store i32 %1028, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 3), align 8, !tbaa !73
  %1029 = load ptr, ptr %28, align 8, !tbaa !15
  %1030 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1029, i32 0, i32 4
  %1031 = load i32, ptr %1030, align 1, !tbaa !69
  store i32 %1031, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 8), align 4, !tbaa !42
  %1032 = load ptr, ptr %28, align 8, !tbaa !15
  %1033 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1032, i32 0, i32 3
  %1034 = load i32, ptr %1033, align 1, !tbaa !67
  %1035 = icmp eq i32 %1034, -1
  br i1 %1035, label %1036, label %1046

1036:                                             ; preds = %1024
  %1037 = load i64, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  %1038 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !71
  %1039 = zext i32 %1038 to i64
  %1040 = add nsw i64 %1037, %1039
  %1041 = sub nsw i64 %1040, 1
  %1042 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !74
  %1043 = zext i16 %1042 to i32
  %1044 = zext i32 %1043 to i64
  %1045 = ashr i64 %1041, %1044
  br label %1052

1046:                                             ; preds = %1024
  %1047 = load i64, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  %1048 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !74
  %1049 = zext i16 %1048 to i32
  %1050 = zext i32 %1049 to i64
  %1051 = ashr i64 %1047, %1050
  br label %1052

1052:                                             ; preds = %1046, %1036
  %1053 = phi i64 [ %1045, %1036 ], [ %1051, %1046 ]
  %1054 = trunc i64 %1053 to i32
  store i32 %1054, ptr @read_inode_2.i, align 8, !tbaa !75
  %1055 = load ptr, ptr %28, align 8, !tbaa !15
  %1056 = getelementptr inbounds %struct.squashfs_reg_inode_header_2, ptr %1055, i32 0, i32 2
  %1057 = load i32, ptr %1056, align 1, !tbaa !65
  %1058 = zext i32 %1057 to i64
  store i64 %1058, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 9), align 8, !tbaa !43
  store i8 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 14), align 8, !tbaa !76
  %1059 = load ptr, ptr %7, align 8, !tbaa !15
  %1060 = getelementptr inbounds i8, ptr %1059, i64 24
  store ptr %1060, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 1), align 8, !tbaa !77
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %1412

1061:                                             ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store ptr @read_inode_2.header, ptr %35, align 8, !tbaa !15
  %1062 = load i32, ptr @swap, align 4, !tbaa !5
  %1063 = icmp ne i32 %1062, 0
  br i1 %1063, label %1064, label %1207

1064:                                             ; preds = %1061
  call void @llvm.lifetime.start.p0(i64 6, ptr %36) #8
  %1065 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %36, ptr align 1 %1065, i64 6, 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
  %1066 = load ptr, ptr %35, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %1066, i8 0, i64 6, i1 false)
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1067 = getelementptr inbounds i8, ptr %36, i64 0
  store ptr %1067, ptr %40, align 8, !tbaa !15
  %1068 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1068, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1069

1069:                                             ; preds = %1080, %1064
  %1070 = load i32, ptr %37, align 4, !tbaa !5
  %1071 = load i32, ptr %38, align 4, !tbaa !5
  %1072 = add nsw i32 4, %1071
  %1073 = icmp slt i32 %1070, %1072
  br i1 %1073, label %1074, label %1083

1074:                                             ; preds = %1069
  %1075 = load ptr, ptr %40, align 8, !tbaa !15
  %1076 = getelementptr inbounds i8, ptr %1075, i32 1
  store ptr %1076, ptr %40, align 8, !tbaa !15
  %1077 = load i8, ptr %1075, align 1, !tbaa !17
  %1078 = load ptr, ptr %41, align 8, !tbaa !15
  %1079 = getelementptr inbounds i8, ptr %1078, i32 -1
  store ptr %1079, ptr %41, align 8, !tbaa !15
  store i8 %1077, ptr %1078, align 1, !tbaa !17
  br label %1080

1080:                                             ; preds = %1074
  %1081 = load i32, ptr %37, align 4, !tbaa !5
  %1082 = add nsw i32 %1081, 8
  store i32 %1082, ptr %37, align 4, !tbaa !5
  br label %1069, !llvm.loop !78

1083:                                             ; preds = %1069
  %1084 = load i64, ptr %39, align 8, !tbaa !14
  %1085 = load i32, ptr %38, align 4, !tbaa !5
  %1086 = sub nsw i32 60, %1085
  %1087 = zext i32 %1086 to i64
  %1088 = lshr i64 %1084, %1087
  %1089 = trunc i64 %1088 to i32
  %1090 = load ptr, ptr %35, align 8, !tbaa !15
  %1091 = load i32, ptr %1090, align 1
  %1092 = and i32 %1089, 15
  %1093 = and i32 %1091, -16
  %1094 = or i32 %1093, %1092
  store i32 %1094, ptr %1090, align 1
  store i32 4, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1095 = getelementptr inbounds i8, ptr %36, i64 0
  store ptr %1095, ptr %40, align 8, !tbaa !15
  %1096 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1096, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1097

1097:                                             ; preds = %1108, %1083
  %1098 = load i32, ptr %37, align 4, !tbaa !5
  %1099 = load i32, ptr %38, align 4, !tbaa !5
  %1100 = add nsw i32 12, %1099
  %1101 = icmp slt i32 %1098, %1100
  br i1 %1101, label %1102, label %1111

1102:                                             ; preds = %1097
  %1103 = load ptr, ptr %40, align 8, !tbaa !15
  %1104 = getelementptr inbounds i8, ptr %1103, i32 1
  store ptr %1104, ptr %40, align 8, !tbaa !15
  %1105 = load i8, ptr %1103, align 1, !tbaa !17
  %1106 = load ptr, ptr %41, align 8, !tbaa !15
  %1107 = getelementptr inbounds i8, ptr %1106, i32 -1
  store ptr %1107, ptr %41, align 8, !tbaa !15
  store i8 %1105, ptr %1106, align 1, !tbaa !17
  br label %1108

1108:                                             ; preds = %1102
  %1109 = load i32, ptr %37, align 4, !tbaa !5
  %1110 = add nsw i32 %1109, 8
  store i32 %1110, ptr %37, align 4, !tbaa !5
  br label %1097, !llvm.loop !79

1111:                                             ; preds = %1097
  %1112 = load i64, ptr %39, align 8, !tbaa !14
  %1113 = load i32, ptr %38, align 4, !tbaa !5
  %1114 = sub nsw i32 52, %1113
  %1115 = zext i32 %1114 to i64
  %1116 = lshr i64 %1112, %1115
  %1117 = trunc i64 %1116 to i32
  %1118 = load ptr, ptr %35, align 8, !tbaa !15
  %1119 = load i32, ptr %1118, align 1
  %1120 = and i32 %1117, 4095
  %1121 = shl i32 %1120, 4
  %1122 = and i32 %1119, -65521
  %1123 = or i32 %1122, %1121
  store i32 %1123, ptr %1118, align 1
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1124 = getelementptr inbounds i8, ptr %36, i64 2
  store ptr %1124, ptr %40, align 8, !tbaa !15
  %1125 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1125, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1126

1126:                                             ; preds = %1137, %1111
  %1127 = load i32, ptr %37, align 4, !tbaa !5
  %1128 = load i32, ptr %38, align 4, !tbaa !5
  %1129 = add nsw i32 8, %1128
  %1130 = icmp slt i32 %1127, %1129
  br i1 %1130, label %1131, label %1140

1131:                                             ; preds = %1126
  %1132 = load ptr, ptr %40, align 8, !tbaa !15
  %1133 = getelementptr inbounds i8, ptr %1132, i32 1
  store ptr %1133, ptr %40, align 8, !tbaa !15
  %1134 = load i8, ptr %1132, align 1, !tbaa !17
  %1135 = load ptr, ptr %41, align 8, !tbaa !15
  %1136 = getelementptr inbounds i8, ptr %1135, i32 -1
  store ptr %1136, ptr %41, align 8, !tbaa !15
  store i8 %1134, ptr %1135, align 1, !tbaa !17
  br label %1137

1137:                                             ; preds = %1131
  %1138 = load i32, ptr %37, align 4, !tbaa !5
  %1139 = add nsw i32 %1138, 8
  store i32 %1139, ptr %37, align 4, !tbaa !5
  br label %1126, !llvm.loop !80

1140:                                             ; preds = %1126
  %1141 = load i64, ptr %39, align 8, !tbaa !14
  %1142 = load i32, ptr %38, align 4, !tbaa !5
  %1143 = sub nsw i32 56, %1142
  %1144 = zext i32 %1143 to i64
  %1145 = lshr i64 %1141, %1144
  %1146 = trunc i64 %1145 to i32
  %1147 = load ptr, ptr %35, align 8, !tbaa !15
  %1148 = load i32, ptr %1147, align 1
  %1149 = and i32 %1146, 255
  %1150 = shl i32 %1149, 16
  %1151 = and i32 %1148, -16711681
  %1152 = or i32 %1151, %1150
  store i32 %1152, ptr %1147, align 1
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1153 = getelementptr inbounds i8, ptr %36, i64 3
  store ptr %1153, ptr %40, align 8, !tbaa !15
  %1154 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1154, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1155

1155:                                             ; preds = %1166, %1140
  %1156 = load i32, ptr %37, align 4, !tbaa !5
  %1157 = load i32, ptr %38, align 4, !tbaa !5
  %1158 = add nsw i32 8, %1157
  %1159 = icmp slt i32 %1156, %1158
  br i1 %1159, label %1160, label %1169

1160:                                             ; preds = %1155
  %1161 = load ptr, ptr %40, align 8, !tbaa !15
  %1162 = getelementptr inbounds i8, ptr %1161, i32 1
  store ptr %1162, ptr %40, align 8, !tbaa !15
  %1163 = load i8, ptr %1161, align 1, !tbaa !17
  %1164 = load ptr, ptr %41, align 8, !tbaa !15
  %1165 = getelementptr inbounds i8, ptr %1164, i32 -1
  store ptr %1165, ptr %41, align 8, !tbaa !15
  store i8 %1163, ptr %1164, align 1, !tbaa !17
  br label %1166

1166:                                             ; preds = %1160
  %1167 = load i32, ptr %37, align 4, !tbaa !5
  %1168 = add nsw i32 %1167, 8
  store i32 %1168, ptr %37, align 4, !tbaa !5
  br label %1155, !llvm.loop !81

1169:                                             ; preds = %1155
  %1170 = load i64, ptr %39, align 8, !tbaa !14
  %1171 = load i32, ptr %38, align 4, !tbaa !5
  %1172 = sub nsw i32 56, %1171
  %1173 = zext i32 %1172 to i64
  %1174 = lshr i64 %1170, %1173
  %1175 = trunc i64 %1174 to i32
  %1176 = load ptr, ptr %35, align 8, !tbaa !15
  %1177 = load i32, ptr %1176, align 1
  %1178 = and i32 %1175, 255
  %1179 = shl i32 %1178, 24
  %1180 = and i32 %1177, 16777215
  %1181 = or i32 %1180, %1179
  store i32 %1181, ptr %1176, align 1
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1182 = getelementptr inbounds i8, ptr %36, i64 4
  store ptr %1182, ptr %40, align 8, !tbaa !15
  %1183 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1183, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1184

1184:                                             ; preds = %1195, %1169
  %1185 = load i32, ptr %37, align 4, !tbaa !5
  %1186 = load i32, ptr %38, align 4, !tbaa !5
  %1187 = add nsw i32 16, %1186
  %1188 = icmp slt i32 %1185, %1187
  br i1 %1188, label %1189, label %1198

1189:                                             ; preds = %1184
  %1190 = load ptr, ptr %40, align 8, !tbaa !15
  %1191 = getelementptr inbounds i8, ptr %1190, i32 1
  store ptr %1191, ptr %40, align 8, !tbaa !15
  %1192 = load i8, ptr %1190, align 1, !tbaa !17
  %1193 = load ptr, ptr %41, align 8, !tbaa !15
  %1194 = getelementptr inbounds i8, ptr %1193, i32 -1
  store ptr %1194, ptr %41, align 8, !tbaa !15
  store i8 %1192, ptr %1193, align 1, !tbaa !17
  br label %1195

1195:                                             ; preds = %1189
  %1196 = load i32, ptr %37, align 4, !tbaa !5
  %1197 = add nsw i32 %1196, 8
  store i32 %1197, ptr %37, align 4, !tbaa !5
  br label %1184, !llvm.loop !82

1198:                                             ; preds = %1184
  %1199 = load i64, ptr %39, align 8, !tbaa !14
  %1200 = load i32, ptr %38, align 4, !tbaa !5
  %1201 = sub nsw i32 48, %1200
  %1202 = zext i32 %1201 to i64
  %1203 = lshr i64 %1199, %1202
  %1204 = trunc i64 %1203 to i16
  %1205 = load ptr, ptr %35, align 8, !tbaa !15
  %1206 = getelementptr inbounds %struct.squashfs_symlink_inode_header_2, ptr %1205, i32 0, i32 1
  store i16 %1204, ptr %1206, align 1, !tbaa !83
  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 6, ptr %36) #8
  br label %1210

1207:                                             ; preds = %1061
  %1208 = load ptr, ptr %35, align 8, !tbaa !15
  %1209 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1208, ptr align 1 %1209, i64 6, i1 false)
  br label %1210

1210:                                             ; preds = %1207, %1198
  %1211 = load ptr, ptr %35, align 8, !tbaa !15
  %1212 = getelementptr inbounds %struct.squashfs_symlink_inode_header_2, ptr %1211, i32 0, i32 1
  %1213 = load i16, ptr %1212, align 1, !tbaa !83
  %1214 = zext i16 %1213 to i32
  %1215 = add nsw i32 %1214, 1
  %1216 = sext i32 %1215 to i64
  %1217 = call noalias ptr @malloc(i64 noundef %1216) #10
  store ptr %1217, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 10), align 8, !tbaa !85
  %1218 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 10), align 8, !tbaa !85
  %1219 = icmp eq ptr %1218, null
  br i1 %1219, label %1220, label %1228

1220:                                             ; preds = %1210
  br label %1221

1221:                                             ; preds = %1220
  %1222 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1223, ptr noundef @.str.5) #8
  %1225 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

1226:                                             ; No predecessors!
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

1228:                                             ; preds = %1227, %1210
  %1229 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 10), align 8, !tbaa !85
  %1230 = load ptr, ptr %7, align 8, !tbaa !15
  %1231 = getelementptr inbounds i8, ptr %1230, i64 6
  %1232 = load ptr, ptr %35, align 8, !tbaa !15
  %1233 = getelementptr inbounds %struct.squashfs_symlink_inode_header_2, ptr %1232, i32 0, i32 1
  %1234 = load i16, ptr %1233, align 1, !tbaa !83
  %1235 = zext i16 %1234 to i64
  %1236 = call ptr @strncpy(ptr noundef %1229, ptr noundef %1231, i64 noundef %1235) #8
  %1237 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 10), align 8, !tbaa !85
  %1238 = load ptr, ptr %35, align 8, !tbaa !15
  %1239 = getelementptr inbounds %struct.squashfs_symlink_inode_header_2, ptr %1238, i32 0, i32 1
  %1240 = load i16, ptr %1239, align 1, !tbaa !83
  %1241 = zext i16 %1240 to i64
  %1242 = getelementptr inbounds i8, ptr %1237, i64 %1241
  store i8 0, ptr %1242, align 1, !tbaa !17
  %1243 = load ptr, ptr %35, align 8, !tbaa !15
  %1244 = getelementptr inbounds %struct.squashfs_symlink_inode_header_2, ptr %1243, i32 0, i32 1
  %1245 = load i16, ptr %1244, align 1, !tbaa !83
  %1246 = zext i16 %1245 to i64
  store i64 %1246, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %1412

1247:                                             ; preds = %211, %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store ptr @read_inode_2.header, ptr %42, align 8, !tbaa !15
  %1248 = load i32, ptr @swap, align 4, !tbaa !5
  %1249 = icmp ne i32 %1248, 0
  br i1 %1249, label %1250, label %1393

1250:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 6, ptr %43) #8
  %1251 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %43, ptr align 1 %1251, i64 6, 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
  %1252 = load ptr, ptr %42, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %1252, i8 0, i64 6, i1 false)
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1253 = getelementptr inbounds i8, ptr %43, i64 0
  store ptr %1253, ptr %47, align 8, !tbaa !15
  %1254 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1254, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1255

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

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

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

1269:                                             ; preds = %1255
  %1270 = load i64, ptr %46, align 8, !tbaa !14
  %1271 = load i32, ptr %45, align 4, !tbaa !5
  %1272 = sub nsw i32 60, %1271
  %1273 = zext i32 %1272 to i64
  %1274 = lshr i64 %1270, %1273
  %1275 = trunc i64 %1274 to i32
  %1276 = load ptr, ptr %42, align 8, !tbaa !15
  %1277 = load i32, ptr %1276, align 1
  %1278 = and i32 %1275, 15
  %1279 = and i32 %1277, -16
  %1280 = or i32 %1279, %1278
  store i32 %1280, ptr %1276, align 1
  store i32 4, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1281 = getelementptr inbounds i8, ptr %43, i64 0
  store ptr %1281, ptr %47, align 8, !tbaa !15
  %1282 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1282, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1283

1283:                                             ; preds = %1294, %1269
  %1284 = load i32, ptr %44, align 4, !tbaa !5
  %1285 = load i32, ptr %45, align 4, !tbaa !5
  %1286 = add nsw i32 12, %1285
  %1287 = icmp slt i32 %1284, %1286
  br i1 %1287, label %1288, label %1297

1288:                                             ; preds = %1283
  %1289 = load ptr, ptr %47, align 8, !tbaa !15
  %1290 = getelementptr inbounds i8, ptr %1289, i32 1
  store ptr %1290, ptr %47, align 8, !tbaa !15
  %1291 = load i8, ptr %1289, align 1, !tbaa !17
  %1292 = load ptr, ptr %48, align 8, !tbaa !15
  %1293 = getelementptr inbounds i8, ptr %1292, i32 -1
  store ptr %1293, ptr %48, align 8, !tbaa !15
  store i8 %1291, ptr %1292, align 1, !tbaa !17
  br label %1294

1294:                                             ; preds = %1288
  %1295 = load i32, ptr %44, align 4, !tbaa !5
  %1296 = add nsw i32 %1295, 8
  store i32 %1296, ptr %44, align 4, !tbaa !5
  br label %1283, !llvm.loop !87

1297:                                             ; preds = %1283
  %1298 = load i64, ptr %46, align 8, !tbaa !14
  %1299 = load i32, ptr %45, align 4, !tbaa !5
  %1300 = sub nsw i32 52, %1299
  %1301 = zext i32 %1300 to i64
  %1302 = lshr i64 %1298, %1301
  %1303 = trunc i64 %1302 to i32
  %1304 = load ptr, ptr %42, align 8, !tbaa !15
  %1305 = load i32, ptr %1304, align 1
  %1306 = and i32 %1303, 4095
  %1307 = shl i32 %1306, 4
  %1308 = and i32 %1305, -65521
  %1309 = or i32 %1308, %1307
  store i32 %1309, ptr %1304, align 1
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1310 = getelementptr inbounds i8, ptr %43, i64 2
  store ptr %1310, ptr %47, align 8, !tbaa !15
  %1311 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1311, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1312

1312:                                             ; preds = %1323, %1297
  %1313 = load i32, ptr %44, align 4, !tbaa !5
  %1314 = load i32, ptr %45, align 4, !tbaa !5
  %1315 = add nsw i32 8, %1314
  %1316 = icmp slt i32 %1313, %1315
  br i1 %1316, label %1317, label %1326

1317:                                             ; preds = %1312
  %1318 = load ptr, ptr %47, align 8, !tbaa !15
  %1319 = getelementptr inbounds i8, ptr %1318, i32 1
  store ptr %1319, ptr %47, align 8, !tbaa !15
  %1320 = load i8, ptr %1318, align 1, !tbaa !17
  %1321 = load ptr, ptr %48, align 8, !tbaa !15
  %1322 = getelementptr inbounds i8, ptr %1321, i32 -1
  store ptr %1322, ptr %48, align 8, !tbaa !15
  store i8 %1320, ptr %1321, align 1, !tbaa !17
  br label %1323

1323:                                             ; preds = %1317
  %1324 = load i32, ptr %44, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 8
  store i32 %1325, ptr %44, align 4, !tbaa !5
  br label %1312, !llvm.loop !88

1326:                                             ; preds = %1312
  %1327 = load i64, ptr %46, align 8, !tbaa !14
  %1328 = load i32, ptr %45, align 4, !tbaa !5
  %1329 = sub nsw i32 56, %1328
  %1330 = zext i32 %1329 to i64
  %1331 = lshr i64 %1327, %1330
  %1332 = trunc i64 %1331 to i32
  %1333 = load ptr, ptr %42, align 8, !tbaa !15
  %1334 = load i32, ptr %1333, align 1
  %1335 = and i32 %1332, 255
  %1336 = shl i32 %1335, 16
  %1337 = and i32 %1334, -16711681
  %1338 = or i32 %1337, %1336
  store i32 %1338, ptr %1333, align 1
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1339 = getelementptr inbounds i8, ptr %43, i64 3
  store ptr %1339, ptr %47, align 8, !tbaa !15
  %1340 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1340, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1341

1341:                                             ; preds = %1352, %1326
  %1342 = load i32, ptr %44, align 4, !tbaa !5
  %1343 = load i32, ptr %45, align 4, !tbaa !5
  %1344 = add nsw i32 8, %1343
  %1345 = icmp slt i32 %1342, %1344
  br i1 %1345, label %1346, label %1355

1346:                                             ; preds = %1341
  %1347 = load ptr, ptr %47, align 8, !tbaa !15
  %1348 = getelementptr inbounds i8, ptr %1347, i32 1
  store ptr %1348, ptr %47, align 8, !tbaa !15
  %1349 = load i8, ptr %1347, align 1, !tbaa !17
  %1350 = load ptr, ptr %48, align 8, !tbaa !15
  %1351 = getelementptr inbounds i8, ptr %1350, i32 -1
  store ptr %1351, ptr %48, align 8, !tbaa !15
  store i8 %1349, ptr %1350, align 1, !tbaa !17
  br label %1352

1352:                                             ; preds = %1346
  %1353 = load i32, ptr %44, align 4, !tbaa !5
  %1354 = add nsw i32 %1353, 8
  store i32 %1354, ptr %44, align 4, !tbaa !5
  br label %1341, !llvm.loop !89

1355:                                             ; preds = %1341
  %1356 = load i64, ptr %46, align 8, !tbaa !14
  %1357 = load i32, ptr %45, align 4, !tbaa !5
  %1358 = sub nsw i32 56, %1357
  %1359 = zext i32 %1358 to i64
  %1360 = lshr i64 %1356, %1359
  %1361 = trunc i64 %1360 to i32
  %1362 = load ptr, ptr %42, align 8, !tbaa !15
  %1363 = load i32, ptr %1362, align 1
  %1364 = and i32 %1361, 255
  %1365 = shl i32 %1364, 24
  %1366 = and i32 %1363, 16777215
  %1367 = or i32 %1366, %1365
  store i32 %1367, ptr %1362, align 1
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1368 = getelementptr inbounds i8, ptr %43, i64 4
  store ptr %1368, ptr %47, align 8, !tbaa !15
  %1369 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1369, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1370

1370:                                             ; preds = %1381, %1355
  %1371 = load i32, ptr %44, align 4, !tbaa !5
  %1372 = load i32, ptr %45, align 4, !tbaa !5
  %1373 = add nsw i32 16, %1372
  %1374 = icmp slt i32 %1371, %1373
  br i1 %1374, label %1375, label %1384

1375:                                             ; preds = %1370
  %1376 = load ptr, ptr %47, align 8, !tbaa !15
  %1377 = getelementptr inbounds i8, ptr %1376, i32 1
  store ptr %1377, ptr %47, align 8, !tbaa !15
  %1378 = load i8, ptr %1376, align 1, !tbaa !17
  %1379 = load ptr, ptr %48, align 8, !tbaa !15
  %1380 = getelementptr inbounds i8, ptr %1379, i32 -1
  store ptr %1380, ptr %48, align 8, !tbaa !15
  store i8 %1378, ptr %1379, align 1, !tbaa !17
  br label %1381

1381:                                             ; preds = %1375
  %1382 = load i32, ptr %44, align 4, !tbaa !5
  %1383 = add nsw i32 %1382, 8
  store i32 %1383, ptr %44, align 4, !tbaa !5
  br label %1370, !llvm.loop !90

1384:                                             ; preds = %1370
  %1385 = load i64, ptr %46, align 8, !tbaa !14
  %1386 = load i32, ptr %45, align 4, !tbaa !5
  %1387 = sub nsw i32 48, %1386
  %1388 = zext i32 %1387 to i64
  %1389 = lshr i64 %1385, %1388
  %1390 = trunc i64 %1389 to i16
  %1391 = load ptr, ptr %42, align 8, !tbaa !15
  %1392 = getelementptr inbounds %struct.squashfs_dev_inode_header_2, ptr %1391, i32 0, i32 1
  store i16 %1390, ptr %1392, align 1, !tbaa !91
  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 6, ptr %43) #8
  br label %1396

1393:                                             ; preds = %1247
  %1394 = load ptr, ptr %42, align 8, !tbaa !15
  %1395 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1394, ptr align 1 %1395, i64 6, i1 false)
  br label %1396

1396:                                             ; preds = %1393, %1384
  %1397 = load ptr, ptr %42, align 8, !tbaa !15
  %1398 = getelementptr inbounds %struct.squashfs_dev_inode_header_2, ptr %1397, i32 0, i32 1
  %1399 = load i16, ptr %1398, align 1, !tbaa !91
  %1400 = zext i16 %1399 to i64
  store i64 %1400, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %1412

1401:                                             ; preds = %211, %211
  store i64 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_2.i, i32 0, i32 2), align 8, !tbaa !41
  br label %1412

1402:                                             ; preds = %211
  br label %1403

1403:                                             ; preds = %1402
  %1404 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1406 = load i32, ptr @read_inode_2.header, align 1
  %1407 = and i32 %1406, 15
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1405, ptr noundef @.str.6, i32 noundef %1407) #8
  %1409 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

1410:                                             ; No predecessors!
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

1412:                                             ; preds = %1411, %1401, %1396, %1228, %1052, %734, %464
  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_2.i
}

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

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

attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { 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 #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #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 = !{!24, !6, i64 84}
!24 = !{!"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, !25, i64 64, !6, i64 72, !6, i64 76, !7, i64 80, !6, i64 84}
!25 = !{!"long", !7, i64 0}
!26 = !{!24, !6, i64 76}
!27 = !{!24, !6, i64 32}
!28 = !{!24, !6, i64 40}
!29 = !{!24, !6, i64 72}
!30 = !{!10, !6, i64 8}
!31 = !{!24, !25, i64 64}
!32 = !{!24, !6, i64 36}
!33 = distinct !{!33, !19}
!34 = distinct !{!34, !19}
!35 = distinct !{!35, !19}
!36 = distinct !{!36, !19}
!37 = distinct !{!37, !19}
!38 = distinct !{!38, !19}
!39 = distinct !{!39, !19}
!40 = distinct !{!40, !19}
!41 = !{!24, !13, i64 16}
!42 = !{!24, !6, i64 44}
!43 = !{!24, !13, i64 48}
!44 = !{!45, !6, i64 8}
!45 = !{!"squashfs_dir_inode_header_2", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 6, !6, i64 8, !6, i64 12}
!46 = distinct !{!46, !19}
!47 = distinct !{!47, !19}
!48 = distinct !{!48, !19}
!49 = distinct !{!49, !19}
!50 = distinct !{!50, !19}
!51 = distinct !{!51, !19}
!52 = distinct !{!52, !19}
!53 = distinct !{!53, !19}
!54 = distinct !{!54, !19}
!55 = !{!56, !6, i64 9}
!56 = !{!"squashfs_ldir_inode_header_2", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 7, !6, i64 9, !6, i64 13, !6, i64 16, !7, i64 18}
!57 = distinct !{!57, !19}
!58 = distinct !{!58, !19}
!59 = distinct !{!59, !19}
!60 = distinct !{!60, !19}
!61 = distinct !{!61, !19}
!62 = !{!63, !6, i64 4}
!63 = !{!"squashfs_reg_inode_header_2", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !7, i64 24}
!64 = distinct !{!64, !19}
!65 = !{!63, !6, i64 8}
!66 = distinct !{!66, !19}
!67 = !{!63, !6, i64 12}
!68 = distinct !{!68, !19}
!69 = !{!63, !6, i64 16}
!70 = distinct !{!70, !19}
!71 = !{!10, !6, i64 12}
!72 = !{!24, !6, i64 28}
!73 = !{!24, !6, i64 24}
!74 = !{!10, !12, i64 22}
!75 = !{!24, !6, i64 0}
!76 = !{!24, !7, i64 80}
!77 = !{!24, !16, i64 8}
!78 = distinct !{!78, !19}
!79 = distinct !{!79, !19}
!80 = distinct !{!80, !19}
!81 = distinct !{!81, !19}
!82 = distinct !{!82, !19}
!83 = !{!84, !12, i64 4}
!84 = !{!"squashfs_symlink_inode_header_2", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !12, i64 4, !7, i64 6}
!85 = !{!24, !16, i64 56}
!86 = distinct !{!86, !19}
!87 = distinct !{!87, !19}
!88 = distinct !{!88, !19}
!89 = distinct !{!89, !19}
!90 = distinct !{!90, !19}
!91 = !{!92, !12, i64 4}
!92 = !{!"squashfs_dev_inode_header_2", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 3, !12, i64 4}


; 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_2 = type { %struct.squashfs_reg_inode_header_2 }
%struct.squashfs_reg_inode_header_2 = type { i32, i32, i32, i32, i32, i32, [0 x i16] }
%struct.inode = type { i32, ptr, i64, i32, i32, i32, i32, i32, i32, i64, ptr, i64, i32, i32, i8, i32 }

@swap = external local_unnamed_addr global i32, align 4
@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
@read_inode_2.header = external hidden local_unnamed_addr global %union.squashfs_inode_header_2, align 1
@inode_table_hash = external global [65536 x ptr], align 16
@inode_table = external local_unnamed_addr global ptr, align 8
@read_inode_2.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
@inode_number = external local_unnamed_addr global i32, align 4
@.str.5 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [69 x i8], align 1

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef nonnull ptr @read_inode_2(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) #9
  %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) #9
  %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) #10
  %17 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @screen_mutex) #9
  tail call void @exit(i32 noundef 1) #11
  unreachable

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

21:                                               ; preds = %18
  %22 = lshr i32 %20, 4
  %23 = and i32 %22, 15
  %24 = and i32 %20, 65535
  %25 = tail call i32 @llvm.bswap.i32(i32 %24)
  %26 = lshr exact i32 %25, 12
  %27 = and i32 %26, 65520
  %28 = or disjoint i32 %27, %23
  %29 = and i32 %20, -65536
  %30 = or disjoint i32 %29, %28
  br label %31

31:                                               ; preds = %18, %21
  %storemerge = phi i32 [ %30, %21 ], [ %20, %18 ]
  store i32 %storemerge, ptr @read_inode_2.header, align 1
  store i32 -1, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 84), align 4, !tbaa !16
  %32 = load ptr, ptr @uid_table, align 8, !tbaa !13
  %33 = lshr i32 %storemerge, 16
  %34 = and i32 %33, 255
  %35 = zext nneg i32 %34 to i64
  %36 = getelementptr inbounds i32, ptr %32, i64 %35
  %37 = load i32, ptr %36, align 4, !tbaa !15
  store i32 %37, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 76), align 4, !tbaa !19
  %38 = lshr i32 %storemerge, 24
  %39 = icmp eq i32 %38, 255
  br i1 %39, label %45, label %40

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

45:                                               ; preds = %31, %40
  %46 = phi i32 [ %44, %40 ], [ %37, %31 ]
  store i32 %46, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 32), align 8, !tbaa !20
  %47 = and i32 %storemerge, 15
  %48 = zext nneg i32 %47 to i64
  %49 = getelementptr inbounds [0 x i32], ptr @lookup_type, i64 0, i64 %48
  %50 = load i32, ptr %49, align 4, !tbaa !15
  %51 = lshr i32 %storemerge, 4
  %52 = and i32 %51, 4095
  %53 = or i32 %50, %52
  store i32 %53, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 40), align 8, !tbaa !21
  store i32 %47, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 72), align 8, !tbaa !22
  %54 = load i32, ptr getelementptr inbounds (i8, ptr @sBlk, i64 8), align 8, !tbaa !23
  %55 = zext i32 %54 to i64
  store i64 %55, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 64), align 8, !tbaa !24
  %56 = load i32, ptr @inode_number, align 4, !tbaa !15
  %57 = add nsw i32 %56, 1
  store i32 %57, ptr @inode_number, align 4, !tbaa !15
  store i32 %56, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 36), align 4, !tbaa !25
  switch i32 %47, label %175 [
    i32 1, label %58
    i32 8, label %80
    i32 2, label %103
    i32 3, label %138
    i32 4, label %162
    i32 5, label %162
    i32 6, label %174
    i32 7, label %174
  ]

58:                                               ; preds = %45
  br i1 %.not, label %69, label %59

59:                                               ; preds = %58
  %.sroa.01279.0.copyload = load i8, ptr %11, align 1
  %.sroa.51281.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.51281.0.copyload = load i8, ptr %.sroa.51281.0..sroa_idx, align 1
  %.sroa.61282.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.61282.0.copyload = load i8, ptr %.sroa.61282.0..sroa_idx, align 1
  %.sroa.71283.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.71283.0.copyload = load i8, ptr %.sroa.71283.0..sroa_idx, align 1
  %.sroa.81284.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.81284.0.copyload = load i8, ptr %.sroa.81284.0..sroa_idx, align 1
  %.sroa.91285.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.91285.0.copyload = load i8, ptr %.sroa.91285.0..sroa_idx, align 1
  %.sroa.101286.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.101286.0.copyload = load i8, ptr %.sroa.101286.0..sroa_idx, align 1
  %.sroa.121288.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.121288.0.copyload = load i8, ptr %.sroa.121288.0..sroa_idx, align 1
  %.sroa.131289.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.131289.0.copyload = load i8, ptr %.sroa.131289.0..sroa_idx, align 1
  %.sroa.141290.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.141290.0.copyload = load i8, ptr %.sroa.141290.0..sroa_idx, align 1
  %.sroa.151291.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.151291.0.copyload = load i8, ptr %.sroa.151291.0..sroa_idx, align 1
  %.sroa.161292.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.161292.0.copyload = load i8, ptr %.sroa.161292.0..sroa_idx, align 1
  %.sroa.171293.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.171293.0.copyload = load i8, ptr %.sroa.171293.0..sroa_idx, align 1
  %.sroa.181294.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.181294.0.copyload = load i8, ptr %.sroa.181294.0..sroa_idx, align 1
  %.sroa.191295.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.191295.0.copyload = load i8, ptr %.sroa.191295.0..sroa_idx, align 1
  %.sroa.271243.0.insert.ext = zext i8 %.sroa.01279.0.copyload to i64
  %.sroa.271243.0.insert.shift = shl nuw nsw i64 %.sroa.271243.0.insert.ext, 12
  %60 = lshr i64 %.sroa.271243.0.insert.ext, 4
  %.sroa.221207.0.insert.ext1209 = zext i8 %.sroa.51281.0.copyload to i64
  %.sroa.221207.0.insert.shift1210 = shl nuw nsw i64 %.sroa.221207.0.insert.ext1209, 4
  %.sroa.271243.0.insert.shift.masked = and i64 %.sroa.271243.0.insert.shift, 61440
  %61 = or disjoint i64 %.sroa.271243.0.insert.shift.masked, %.sroa.221207.0.insert.shift1210
  %62 = or disjoint i64 %61, %60
  %.sroa.271243.0.insert.ext1250 = zext i8 %.sroa.61282.0.copyload to i64
  %.sroa.271243.0.insert.shift1251 = shl nuw nsw i64 %.sroa.271243.0.insert.ext1250, 16
  %63 = or disjoint i64 %.sroa.271243.0.insert.shift1251, %62
  %.sroa.271243.0.insert.ext1255 = zext i8 %.sroa.71283.0.copyload to i64
  %.sroa.271243.0.insert.shift1256 = shl nuw nsw i64 %.sroa.271243.0.insert.ext1255, 24
  %.sroa.271243.0.insert.ext1260 = zext i8 %.sroa.81284.0.copyload to i64
  %.sroa.271243.0.insert.shift1261 = shl nuw nsw i64 %.sroa.271243.0.insert.ext1260, 43
  %.sroa.221207.0.insert.ext1224 = zext i8 %.sroa.91285.0.copyload to i64
  %.sroa.221207.0.insert.shift1225 = shl nuw nsw i64 %.sroa.221207.0.insert.ext1224, 35
  %.sroa.221207.0.insert.insert1227 = or disjoint i64 %.sroa.271243.0.insert.shift1261, %.sroa.221207.0.insert.shift1225
  %.sroa.191171.0.insert.ext1188 = zext i8 %.sroa.101286.0.copyload to i64
  %.sroa.191171.0.insert.shift1189 = shl nuw nsw i64 %.sroa.191171.0.insert.ext1188, 27
  %.sroa.191171.0.insert.shift1189.masked = and i64 %.sroa.191171.0.insert.shift1189, 30064771072
  %64 = or disjoint i64 %.sroa.221207.0.insert.insert1227, %.sroa.191171.0.insert.shift1189.masked
  %65 = or disjoint i64 %.sroa.271243.0.insert.shift1256, %63
  %66 = or disjoint i64 %64, %65
  %.sroa.271243.0.insert.shift1266 = shl i64 %.sroa.191171.0.insert.ext1188, 59
  %.sroa.221207.0.insert.ext1229 = zext i8 %.sroa.121288.0.copyload to i64
  %.sroa.221207.0.insert.shift1230 = shl nuw nsw i64 %.sroa.221207.0.insert.ext1229, 51
  %.sroa.221207.0.insert.insert1232 = or disjoint i64 %.sroa.271243.0.insert.shift1266, %.sroa.221207.0.insert.shift1230
  %67 = or disjoint i64 %.sroa.221207.0.insert.insert1232, %66
  store i64 %67, ptr @read_inode_2.header, align 1
  %.sroa.271243.0.insert.ext1270 = zext i8 %.sroa.131289.0.copyload to i32
  %.sroa.271243.0.insert.shift1271 = shl nuw i32 %.sroa.271243.0.insert.ext1270, 24
  %.sroa.221207.0.insert.ext1234 = zext i8 %.sroa.141290.0.copyload to i32
  %.sroa.221207.0.insert.shift1235 = shl nuw nsw i32 %.sroa.221207.0.insert.ext1234, 16
  %.sroa.221207.0.insert.insert1237 = or disjoint i32 %.sroa.271243.0.insert.shift1271, %.sroa.221207.0.insert.shift1235
  %.sroa.191171.0.insert.ext1198 = zext i8 %.sroa.151291.0.copyload to i32
  %.sroa.191171.0.insert.shift1199 = shl nuw nsw i32 %.sroa.191171.0.insert.ext1198, 8
  %.sroa.191171.0.insert.insert1201 = or disjoint i32 %.sroa.221207.0.insert.insert1237, %.sroa.191171.0.insert.shift1199
  %.sroa.181135.0.insert.ext1162 = zext i8 %.sroa.161292.0.copyload to i32
  %.sroa.181135.0.insert.insert1165 = or disjoint i32 %.sroa.191171.0.insert.insert1201, %.sroa.181135.0.insert.ext1162
  store i32 %.sroa.181135.0.insert.insert1165, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 8), align 1, !tbaa !26
  %.sroa.271243.0.insert.ext1275 = zext i8 %.sroa.171293.0.copyload to i64
  %.sroa.271243.0.insert.shift1276 = shl nuw nsw i64 %.sroa.271243.0.insert.ext1275, 16
  %.sroa.221207.0.insert.ext1239 = zext i8 %.sroa.181294.0.copyload to i64
  %.sroa.221207.0.insert.shift1240 = shl nuw nsw i64 %.sroa.221207.0.insert.ext1239, 8
  %.sroa.221207.0.insert.insert1242 = or disjoint i64 %.sroa.271243.0.insert.shift1276, %.sroa.221207.0.insert.shift1240
  %.sroa.191171.0.insert.ext1203 = zext i8 %.sroa.191295.0.copyload to i64
  %.sroa.191171.0.insert.insert1206 = or disjoint i64 %.sroa.221207.0.insert.insert1242, %.sroa.191171.0.insert.ext1203
  %68 = trunc nuw i64 %.sroa.191171.0.insert.insert1206 to i24
  store i24 %68, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 12), align 1
  br label %70

69:                                               ; preds = %58
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) @read_inode_2.header, ptr noundef nonnull align 1 dereferenceable(15) %11, i64 15, i1 false)
  %.pre1357 = load i64, ptr @read_inode_2.header, align 1
  %.pre1358 = load i24, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 12), align 1
  %.pre1359 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 8), align 1, !tbaa !27
  br label %70

70:                                               ; preds = %69, %59
  %71 = phi i32 [ %.pre1359, %69 ], [ %.sroa.181135.0.insert.insert1165, %59 ]
  %72 = phi i24 [ %.pre1358, %69 ], [ %68, %59 ]
  %73 = phi i64 [ %.pre1357, %69 ], [ %67, %59 ]
  %74 = lshr i64 %73, 32
  %75 = and i64 %74, 524287
  store i64 %75, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 16), align 8, !tbaa !29
  %76 = lshr i64 %73, 51
  %77 = trunc nuw nsw i64 %76 to i32
  store i32 %77, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 44), align 4, !tbaa !30
  %78 = zext i24 %72 to i64
  store i64 %78, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 48), align 8, !tbaa !31
  %79 = zext i32 %71 to i64
  store i64 %79, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 64), align 8, !tbaa !24
  br label %182

80:                                               ; preds = %45
  br i1 %.not, label %92, label %81

81:                                               ; preds = %80
  %.sroa.01086.0.copyload = load i8, ptr %11, align 1
  %.sroa.51088.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.51088.0.copyload = load i8, ptr %.sroa.51088.0..sroa_idx, align 1
  %.sroa.61089.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.61089.0.copyload = load i8, ptr %.sroa.61089.0..sroa_idx, align 1
  %.sroa.71090.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.71090.0.copyload = load i8, ptr %.sroa.71090.0..sroa_idx, align 1
  %.sroa.81091.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.81091.0.copyload = load i8, ptr %.sroa.81091.0..sroa_idx, align 1
  %.sroa.91092.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.91092.0.copyload = load i8, ptr %.sroa.91092.0..sroa_idx, align 1
  %.sroa.101093.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.101093.0.copyload = load i8, ptr %.sroa.101093.0..sroa_idx, align 1
  %.sroa.111094.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.111094.0.copyload = load i8, ptr %.sroa.111094.0..sroa_idx, align 1
  %.sroa.131096.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.131096.0.copyload = load i8, ptr %.sroa.131096.0..sroa_idx, align 1
  %.sroa.141097.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.141097.0.copyload = load i8, ptr %.sroa.141097.0..sroa_idx, align 1
  %.sroa.151098.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.151098.0.copyload = load i8, ptr %.sroa.151098.0..sroa_idx, align 1
  %.sroa.161099.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.161099.0.copyload = load i8, ptr %.sroa.161099.0..sroa_idx, align 1
  %.sroa.171100.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.171100.0.copyload = load i8, ptr %.sroa.171100.0..sroa_idx, align 1
  %.sroa.181101.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.181101.0.copyload = load i8, ptr %.sroa.181101.0..sroa_idx, align 1
  %.sroa.191102.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.191102.0.copyload = load i8, ptr %.sroa.191102.0..sroa_idx, align 1
  %.sroa.201103.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 15
  %.sroa.201103.0.copyload = load i8, ptr %.sroa.201103.0..sroa_idx, align 1
  %.sroa.211104.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.211104.0.copyload = load i8, ptr %.sroa.211104.0..sroa_idx, align 1
  %.sroa.221105.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.221105.0.copyload = load i8, ptr %.sroa.221105.0..sroa_idx, align 1
  %.sroa.31.0.insert.ext = zext i8 %.sroa.01086.0.copyload to i64
  %.sroa.31.0.insert.shift = shl nuw nsw i64 %.sroa.31.0.insert.ext, 12
  %82 = lshr i64 %.sroa.31.0.insert.ext, 4
  %83 = trunc nuw nsw i64 %82 to i32
  %.sroa.251005.0.insert.ext1007 = zext i8 %.sroa.51088.0.copyload to i64
  %.sroa.251005.0.insert.shift1008 = shl nuw nsw i64 %.sroa.251005.0.insert.ext1007, 4
  %.sroa.251005.0.insert.insert1010 = or disjoint i64 %.sroa.31.0.insert.shift, %.sroa.251005.0.insert.shift1008
  %tr.sh.diff445 = trunc nuw nsw i64 %.sroa.251005.0.insert.insert1010 to i32
  %84 = and i32 %tr.sh.diff445, 65520
  %.sroa.31.0.insert.ext1052 = zext i8 %.sroa.61089.0.copyload to i32
  %.sroa.31.0.insert.shift1053 = shl nuw nsw i32 %.sroa.31.0.insert.ext1052, 16
  %85 = or disjoint i32 %84, %.sroa.31.0.insert.shift1053
  %.sroa.31.0.insert.ext1057 = zext i8 %.sroa.71090.0.copyload to i32
  %.sroa.31.0.insert.shift1058 = shl nuw i32 %.sroa.31.0.insert.ext1057, 24
  %86 = or disjoint i32 %85, %.sroa.31.0.insert.shift1058
  %87 = or disjoint i32 %86, %83
  store i32 %87, ptr @read_inode_2.header, align 1
  %.sroa.31.0.insert.ext1062 = zext i8 %.sroa.81091.0.copyload to i64
  %.sroa.31.0.insert.shift1063 = shl nuw i64 %.sroa.31.0.insert.ext1062, 56
  %.sroa.251005.0.insert.ext1022 = zext i8 %.sroa.91092.0.copyload to i64
  %.sroa.251005.0.insert.shift1023 = shl nuw nsw i64 %.sroa.251005.0.insert.ext1022, 48
  %.sroa.251005.0.insert.insert1025 = or disjoint i64 %.sroa.31.0.insert.shift1063, %.sroa.251005.0.insert.shift1023
  %.sroa.22964.0.insert.ext981 = zext i8 %.sroa.101093.0.copyload to i64
  %.sroa.22964.0.insert.shift982 = shl nuw nsw i64 %.sroa.22964.0.insert.ext981, 40
  %.sroa.22964.0.insert.insert984 = or disjoint i64 %.sroa.251005.0.insert.insert1025, %.sroa.22964.0.insert.shift982
  %.sroa.20923.0.insert.ext940 = zext i8 %.sroa.111094.0.copyload to i64
  %.sroa.20923.0.insert.shift941 = shl nuw nsw i64 %.sroa.20923.0.insert.ext940, 32
  %.sroa.20923.0.insert.insert943 = or disjoint i64 %.sroa.22964.0.insert.insert984, %.sroa.20923.0.insert.shift941
  %88 = lshr i64 %.sroa.20923.0.insert.insert943, 37
  %.sroa.31.0.insert.shift1068 = shl nuw nsw i64 %.sroa.20923.0.insert.ext940, 35
  %.sroa.251005.0.insert.ext1027 = zext i8 %.sroa.131096.0.copyload to i64
  %.sroa.251005.0.insert.shift1028 = shl nuw nsw i64 %.sroa.251005.0.insert.ext1027, 27
  %.sroa.251005.0.insert.insert1030 = or disjoint i64 %.sroa.31.0.insert.shift1068, %.sroa.251005.0.insert.shift1028
  %89 = or disjoint i64 %.sroa.251005.0.insert.insert1030, %88
  %90 = trunc i64 %89 to i40
  store i40 %90, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1
  %.sroa.31.0.insert.ext1072 = zext i8 %.sroa.141097.0.copyload to i32
  %.sroa.31.0.insert.shift1073 = shl nuw i32 %.sroa.31.0.insert.ext1072, 24
  %.sroa.251005.0.insert.ext1032 = zext i8 %.sroa.151098.0.copyload to i32
  %.sroa.251005.0.insert.shift1033 = shl nuw nsw i32 %.sroa.251005.0.insert.ext1032, 16
  %.sroa.251005.0.insert.insert1035 = or disjoint i32 %.sroa.31.0.insert.shift1073, %.sroa.251005.0.insert.shift1033
  %.sroa.22964.0.insert.ext991 = zext i8 %.sroa.161099.0.copyload to i32
  %.sroa.22964.0.insert.shift992 = shl nuw nsw i32 %.sroa.22964.0.insert.ext991, 8
  %.sroa.22964.0.insert.insert994 = or disjoint i32 %.sroa.251005.0.insert.insert1035, %.sroa.22964.0.insert.shift992
  %.sroa.20923.0.insert.ext950 = zext i8 %.sroa.171100.0.copyload to i32
  %.sroa.20923.0.insert.insert953 = or disjoint i32 %.sroa.22964.0.insert.insert994, %.sroa.20923.0.insert.ext950
  store i32 %.sroa.20923.0.insert.insert953, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 9), align 1, !tbaa !26
  %.sroa.31.0.insert.ext1077 = zext i8 %.sroa.181101.0.copyload to i64
  %.sroa.31.0.insert.shift1078 = shl nuw nsw i64 %.sroa.31.0.insert.ext1077, 16
  %.sroa.251005.0.insert.ext1037 = zext i8 %.sroa.191102.0.copyload to i64
  %.sroa.251005.0.insert.shift1038 = shl nuw nsw i64 %.sroa.251005.0.insert.ext1037, 8
  %.sroa.251005.0.insert.insert1040 = or disjoint i64 %.sroa.31.0.insert.shift1078, %.sroa.251005.0.insert.shift1038
  %.sroa.22964.0.insert.ext996 = zext i8 %.sroa.201103.0.copyload to i64
  %.sroa.22964.0.insert.insert999 = or disjoint i64 %.sroa.251005.0.insert.insert1040, %.sroa.22964.0.insert.ext996
  %91 = trunc nuw i64 %.sroa.22964.0.insert.insert999 to i24
  store i24 %91, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 13), align 1
  %.sroa.31.0.insert.ext1082 = zext i8 %.sroa.211104.0.copyload to i16
  %.sroa.31.0.insert.shift1083 = shl nuw i16 %.sroa.31.0.insert.ext1082, 8
  %.sroa.251005.0.insert.ext1042 = zext i8 %.sroa.221105.0.copyload to i16
  %.sroa.251005.0.insert.insert1045 = or disjoint i16 %.sroa.31.0.insert.shift1083, %.sroa.251005.0.insert.ext1042
  store i16 %.sroa.251005.0.insert.insert1045, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 16), align 1
  br label %93

92:                                               ; preds = %80
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(18) @read_inode_2.header, ptr noundef nonnull align 1 dereferenceable(18) %11, i64 18, i1 false)
  %.pre1354 = load i40, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1
  %.pre1355 = load i24, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 13), align 1
  %.pre1356 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 9), align 1, !tbaa !32
  br label %93

93:                                               ; preds = %92, %81
  %94 = phi i32 [ %.pre1356, %92 ], [ %.sroa.20923.0.insert.insert953, %81 ]
  %95 = phi i24 [ %.pre1355, %92 ], [ %91, %81 ]
  %96 = phi i40 [ %.pre1354, %92 ], [ %90, %81 ]
  %97 = and i40 %96, 134217727
  %98 = zext nneg i40 %97 to i64
  store i64 %98, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 16), align 8, !tbaa !29
  %99 = lshr i40 %96, 27
  %100 = trunc nuw nsw i40 %99 to i32
  store i32 %100, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 44), align 4, !tbaa !30
  %101 = zext i24 %95 to i64
  store i64 %101, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 48), align 8, !tbaa !31
  %102 = zext i32 %94 to i64
  store i64 %102, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 64), align 8, !tbaa !24
  br label %182

103:                                              ; preds = %45
  br i1 %.not, label %111, label %104

104:                                              ; preds = %103
  %.sroa.0879.0.copyload = load i8, ptr %11, align 1
  %.sroa.5881.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5881.0.copyload = load i8, ptr %.sroa.5881.0..sroa_idx, align 1
  %.sroa.6882.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6882.0.copyload = load i8, ptr %.sroa.6882.0..sroa_idx, align 1
  %.sroa.7883.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.7883.0.copyload = load i8, ptr %.sroa.7883.0..sroa_idx, align 1
  %.sroa.8884.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.8884.0.copyload = load i8, ptr %.sroa.8884.0..sroa_idx, align 1
  %.sroa.9885.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.9885.0.copyload = load i8, ptr %.sroa.9885.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.12886.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.12886.0.copyload = load i8, ptr %.sroa.12886.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.14887.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.14887.0.copyload = load i8, ptr %.sroa.14887.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.18.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.18.0.copyload = load i8, ptr %.sroa.18.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.20888.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 16
  %.sroa.20888.0.copyload = load i8, ptr %.sroa.20888.0..sroa_idx, align 1
  %.sroa.21.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 17
  %.sroa.21.0.copyload = load i8, ptr %.sroa.21.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.24.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 20
  %.sroa.24.0.copyload = load i8, ptr %.sroa.24.0..sroa_idx, align 1
  %.sroa.25889.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 21
  %.sroa.25889.0.copyload = load i8, ptr %.sroa.25889.0..sroa_idx, align 1
  %.sroa.26.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 22
  %.sroa.26.0.copyload = load i8, ptr %.sroa.26.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.36.0.insert.ext = zext i8 %.sroa.0879.0.copyload to i64
  %.sroa.36.0.insert.shift = shl nuw nsw i64 %.sroa.36.0.insert.ext, 12
  %105 = lshr i64 %.sroa.36.0.insert.ext, 4
  %106 = trunc nuw nsw i64 %105 to i32
  %.sroa.30.0.insert.ext800 = zext i8 %.sroa.5881.0.copyload to i64
  %.sroa.30.0.insert.shift801 = shl nuw nsw i64 %.sroa.30.0.insert.ext800, 4
  %.sroa.30.0.insert.insert803 = or disjoint i64 %.sroa.36.0.insert.shift, %.sroa.30.0.insert.shift801
  %tr.sh.diff438 = trunc nuw nsw i64 %.sroa.30.0.insert.insert803 to i32
  %107 = and i32 %tr.sh.diff438, 65520
  %.sroa.36.0.insert.ext845 = zext i8 %.sroa.6882.0.copyload to i32
  %.sroa.36.0.insert.shift846 = shl nuw nsw i32 %.sroa.36.0.insert.ext845, 16
  %108 = or disjoint i32 %107, %.sroa.36.0.insert.shift846
  %.sroa.36.0.insert.ext850 = zext i8 %.sroa.7883.0.copyload to i32
  %.sroa.36.0.insert.shift851 = shl nuw i32 %.sroa.36.0.insert.ext850, 24
  %109 = or disjoint i32 %108, %.sroa.36.0.insert.shift851
  %110 = or disjoint i32 %109, %106
  store i32 %110, ptr @read_inode_2.header, align 1
  %.sroa.36.0.insert.ext855 = zext i8 %.sroa.8884.0.copyload to i32
  %.sroa.36.0.insert.shift856 = shl nuw i32 %.sroa.36.0.insert.ext855, 24
  %.sroa.30.0.insert.ext815 = zext i8 %.sroa.9885.0.copyload to i32
  %.sroa.30.0.insert.shift816 = shl nuw nsw i32 %.sroa.30.0.insert.ext815, 16
  %.sroa.30.0.insert.insert818 = or disjoint i32 %.sroa.36.0.insert.shift856, %.sroa.30.0.insert.shift816
  %.sroa.25.0.insert.ext775 = zext i8 %.sroa.10.0.copyload to i32
  %.sroa.25.0.insert.shift776 = shl nuw nsw i32 %.sroa.25.0.insert.ext775, 8
  %.sroa.25.0.insert.insert778 = or disjoint i32 %.sroa.30.0.insert.insert818, %.sroa.25.0.insert.shift776
  %.sroa.20.0.insert.ext735 = zext i8 %.sroa.11.0.copyload to i32
  %.sroa.20.0.insert.insert738 = or disjoint i32 %.sroa.25.0.insert.insert778, %.sroa.20.0.insert.ext735
  store i32 %.sroa.20.0.insert.insert738, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1, !tbaa !34
  %.sroa.36.0.insert.ext860 = zext i8 %.sroa.12886.0.copyload to i32
  %.sroa.36.0.insert.shift861 = shl nuw i32 %.sroa.36.0.insert.ext860, 24
  %.sroa.30.0.insert.ext820 = zext i8 %.sroa.13.0.copyload to i32
  %.sroa.30.0.insert.shift821 = shl nuw nsw i32 %.sroa.30.0.insert.ext820, 16
  %.sroa.30.0.insert.insert823 = or disjoint i32 %.sroa.36.0.insert.shift861, %.sroa.30.0.insert.shift821
  %.sroa.25.0.insert.ext780 = zext i8 %.sroa.14887.0.copyload to i32
  %.sroa.25.0.insert.shift781 = shl nuw nsw i32 %.sroa.25.0.insert.ext780, 8
  %.sroa.25.0.insert.insert783 = or disjoint i32 %.sroa.30.0.insert.insert823, %.sroa.25.0.insert.shift781
  %.sroa.20.0.insert.ext740 = zext i8 %.sroa.15.0.copyload to i32
  %.sroa.20.0.insert.insert743 = or disjoint i32 %.sroa.25.0.insert.insert783, %.sroa.20.0.insert.ext740
  store i32 %.sroa.20.0.insert.insert743, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 8), align 1, !tbaa !36
  %.sroa.36.0.insert.ext865 = zext i8 %.sroa.16.0.copyload to i32
  %.sroa.36.0.insert.shift866 = shl nuw i32 %.sroa.36.0.insert.ext865, 24
  %.sroa.30.0.insert.ext825 = zext i8 %.sroa.17.0.copyload to i32
  %.sroa.30.0.insert.shift826 = shl nuw nsw i32 %.sroa.30.0.insert.ext825, 16
  %.sroa.30.0.insert.insert828 = or disjoint i32 %.sroa.36.0.insert.shift866, %.sroa.30.0.insert.shift826
  %.sroa.25.0.insert.ext785 = zext i8 %.sroa.18.0.copyload to i32
  %.sroa.25.0.insert.shift786 = shl nuw nsw i32 %.sroa.25.0.insert.ext785, 8
  %.sroa.25.0.insert.insert788 = or disjoint i32 %.sroa.30.0.insert.insert828, %.sroa.25.0.insert.shift786
  %.sroa.20.0.insert.ext745 = zext i8 %.sroa.19.0.copyload to i32
  %.sroa.20.0.insert.insert748 = or disjoint i32 %.sroa.25.0.insert.insert788, %.sroa.20.0.insert.ext745
  store i32 %.sroa.20.0.insert.insert748, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 12), align 1, !tbaa !37
  %.sroa.36.0.insert.ext870 = zext i8 %.sroa.20888.0.copyload to i32
  %.sroa.36.0.insert.shift871 = shl nuw i32 %.sroa.36.0.insert.ext870, 24
  %.sroa.30.0.insert.ext830 = zext i8 %.sroa.21.0.copyload to i32
  %.sroa.30.0.insert.shift831 = shl nuw nsw i32 %.sroa.30.0.insert.ext830, 16
  %.sroa.30.0.insert.insert833 = or disjoint i32 %.sroa.36.0.insert.shift871, %.sroa.30.0.insert.shift831
  %.sroa.25.0.insert.ext790 = zext i8 %.sroa.22.0.copyload to i32
  %.sroa.25.0.insert.shift791 = shl nuw nsw i32 %.sroa.25.0.insert.ext790, 8
  %.sroa.25.0.insert.insert793 = or disjoint i32 %.sroa.30.0.insert.insert833, %.sroa.25.0.insert.shift791
  %.sroa.20.0.insert.ext750 = zext i8 %.sroa.23.0.copyload to i32
  %.sroa.20.0.insert.insert753 = or disjoint i32 %.sroa.25.0.insert.insert793, %.sroa.20.0.insert.ext750
  store i32 %.sroa.20.0.insert.insert753, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 16), align 1, !tbaa !38
  %.sroa.36.0.insert.ext875 = zext i8 %.sroa.24.0.copyload to i32
  %.sroa.36.0.insert.shift876 = shl nuw i32 %.sroa.36.0.insert.ext875, 24
  %.sroa.30.0.insert.ext835 = zext i8 %.sroa.25889.0.copyload to i32
  %.sroa.30.0.insert.shift836 = shl nuw nsw i32 %.sroa.30.0.insert.ext835, 16
  %.sroa.30.0.insert.insert838 = or disjoint i32 %.sroa.36.0.insert.shift876, %.sroa.30.0.insert.shift836
  %.sroa.25.0.insert.ext795 = zext i8 %.sroa.26.0.copyload to i32
  %.sroa.25.0.insert.shift796 = shl nuw nsw i32 %.sroa.25.0.insert.ext795, 8
  %.sroa.25.0.insert.insert798 = or disjoint i32 %.sroa.30.0.insert.insert838, %.sroa.25.0.insert.shift796
  %.sroa.20.0.insert.ext755 = zext i8 %.sroa.27.0.copyload to i32
  %.sroa.20.0.insert.insert758 = or disjoint i32 %.sroa.25.0.insert.insert798, %.sroa.20.0.insert.ext755
  store i32 %.sroa.20.0.insert.insert758, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 20), align 1
  br label %112

111:                                              ; preds = %103
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(24) @read_inode_2.header, ptr noundef nonnull align 1 dereferenceable(24) %11, i64 24, i1 false)
  %.pre1351 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 20), align 1
  %.pre1352 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1, !tbaa !34
  %.pre1353 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 12), align 1, !tbaa !37
  br label %112

112:                                              ; preds = %111, %104
  %113 = phi i32 [ %.pre1353, %111 ], [ %.sroa.20.0.insert.insert748, %104 ]
  %114 = phi i32 [ %.pre1352, %111 ], [ %.sroa.20.0.insert.insert738, %104 ]
  %115 = phi i32 [ %.pre1351, %111 ], [ %.sroa.20.0.insert.insert758, %104 ]
  %116 = zext i32 %115 to i64
  store i64 %116, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 16), align 8, !tbaa !29
  %117 = zext i32 %114 to i64
  store i64 %117, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 64), align 8, !tbaa !24
  %118 = icmp eq i32 %113, -1
  %119 = load i32, ptr getelementptr inbounds (i8, ptr @sBlk, i64 12), align 4, !tbaa !39
  br i1 %118, label %120, label %127

120:                                              ; preds = %112
  %121 = zext i32 %119 to i64
  %122 = add nsw i64 %116, -1
  %123 = add nsw i64 %122, %121
  %124 = load i16, ptr getelementptr inbounds (i8, ptr @sBlk, i64 22), align 2, !tbaa !40
  %125 = zext nneg i16 %124 to i64
  %126 = ashr i64 %123, %125
  br label %132

127:                                              ; preds = %112
  %128 = urem i32 %115, %119
  %129 = load i16, ptr getelementptr inbounds (i8, ptr @sBlk, i64 22), align 2, !tbaa !40
  %130 = zext nneg i16 %129 to i64
  %131 = lshr i64 %116, %130
  br label %132

132:                                              ; preds = %127, %120
  %.sink1349 = phi i32 [ 0, %120 ], [ %128, %127 ]
  %133 = phi i64 [ %126, %120 ], [ %131, %127 ]
  %.sink = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 16), align 1, !tbaa !38
  store i32 %.sink1349, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 28), align 4
  store i32 %113, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 24), align 8
  store i32 %.sink, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 44), align 4
  %134 = trunc i64 %133 to i32
  store i32 %134, ptr @read_inode_2.i, align 8, !tbaa !41
  %135 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 8), align 1, !tbaa !36
  %136 = zext i32 %135 to i64
  store i64 %136, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 48), align 8, !tbaa !31
  store i8 0, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 80), align 8, !tbaa !42
  %137 = getelementptr inbounds i8, ptr %11, i64 24
  store ptr %137, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 8), align 8, !tbaa !43
  br label %182

138:                                              ; preds = %45
  br i1 %.not, label %146, label %139

139:                                              ; preds = %138
  %.sroa.0679.0.copyload = load i8, ptr %11, align 1
  %.sroa.5681.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5681.0.copyload = load i8, ptr %.sroa.5681.0..sroa_idx, align 1
  %.sroa.6682.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6682.0.copyload = load i8, ptr %.sroa.6682.0..sroa_idx, align 1
  %.sroa.7683.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.7683.0.copyload = load i8, ptr %.sroa.7683.0..sroa_idx, align 1
  %.sroa.8684.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.8684.0.copyload = load i8, ptr %.sroa.8684.0..sroa_idx, align 1
  %.sroa.9685.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.9685.0.copyload = load i8, ptr %.sroa.9685.0..sroa_idx, align 1
  %.sroa.14654.0.insert.ext = zext i8 %.sroa.0679.0.copyload to i64
  %.sroa.14654.0.insert.shift = shl nuw nsw i64 %.sroa.14654.0.insert.ext, 12
  %140 = lshr i64 %.sroa.14654.0.insert.ext, 4
  %141 = trunc nuw nsw i64 %140 to i32
  %.sroa.12633.0.insert.ext635 = zext i8 %.sroa.5681.0.copyload to i64
  %.sroa.12633.0.insert.shift636 = shl nuw nsw i64 %.sroa.12633.0.insert.ext635, 4
  %.sroa.12633.0.insert.insert638 = or disjoint i64 %.sroa.14654.0.insert.shift, %.sroa.12633.0.insert.shift636
  %tr.sh.diff431 = trunc nuw nsw i64 %.sroa.12633.0.insert.insert638 to i32
  %142 = and i32 %tr.sh.diff431, 65520
  %.sroa.14654.0.insert.ext661 = zext i8 %.sroa.6682.0.copyload to i32
  %.sroa.14654.0.insert.shift662 = shl nuw nsw i32 %.sroa.14654.0.insert.ext661, 16
  %143 = or disjoint i32 %142, %.sroa.14654.0.insert.shift662
  %.sroa.14654.0.insert.ext666 = zext i8 %.sroa.7683.0.copyload to i32
  %.sroa.14654.0.insert.shift667 = shl nuw i32 %.sroa.14654.0.insert.ext666, 24
  %144 = or disjoint i32 %143, %.sroa.14654.0.insert.shift667
  %145 = or disjoint i32 %144, %141
  store i32 %145, ptr @read_inode_2.header, align 1
  %.sroa.14654.0.insert.ext671 = zext i8 %.sroa.8684.0.copyload to i16
  %.sroa.14654.0.insert.shift672 = shl nuw i16 %.sroa.14654.0.insert.ext671, 8
  %.sroa.12633.0.insert.ext650 = zext i8 %.sroa.9685.0.copyload to i16
  %.sroa.12633.0.insert.insert653 = or disjoint i16 %.sroa.14654.0.insert.shift672, %.sroa.12633.0.insert.ext650
  store i16 %.sroa.12633.0.insert.insert653, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1, !tbaa !44
  br label %147

146:                                              ; preds = %138
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) @read_inode_2.header, ptr noundef nonnull align 1 dereferenceable(6) %11, i64 6, i1 false)
  %.pre1350 = load i16, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1, !tbaa !44
  br label %147

147:                                              ; preds = %146, %139
  %148 = phi i16 [ %.pre1350, %146 ], [ %.sroa.12633.0.insert.insert653, %139 ]
  %149 = zext i16 %148 to i64
  %150 = add nuw nsw i64 %149, 1
  %151 = tail call noalias ptr @malloc(i64 noundef %150) #12
  store ptr %151, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 56), align 8, !tbaa !46
  %152 = icmp eq ptr %151, null
  br i1 %152, label %153, label %158

153:                                              ; preds = %147
  %154 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull @screen_mutex) #9
  %155 = load ptr, ptr @stderr, align 8, !tbaa !13
  %156 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull @.str.5) #10
  %157 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @screen_mutex) #9
  tail call void @exit(i32 noundef 1) #11
  unreachable

158:                                              ; preds = %147
  %159 = getelementptr inbounds i8, ptr %11, i64 6
  %160 = tail call ptr @strncpy(ptr noundef nonnull %151, ptr noundef nonnull %159, i64 noundef %149) #9
  %161 = getelementptr inbounds i8, ptr %151, i64 %149
  store i8 0, ptr %161, align 1, !tbaa !26
  store i64 %149, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 16), align 8, !tbaa !29
  br label %182

162:                                              ; preds = %45, %45
  br i1 %.not, label %170, label %163

163:                                              ; preds = %162
  %.sroa.0.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.14.0.insert.ext = zext i8 %.sroa.0.0.copyload to i64
  %.sroa.14.0.insert.shift = shl nuw nsw i64 %.sroa.14.0.insert.ext, 12
  %164 = lshr i64 %.sroa.14.0.insert.ext, 4
  %165 = trunc nuw nsw i64 %164 to i32
  %.sroa.12.0.insert.ext572 = zext i8 %.sroa.5.0.copyload to i64
  %.sroa.12.0.insert.shift573 = shl nuw nsw i64 %.sroa.12.0.insert.ext572, 4
  %.sroa.12.0.insert.insert575 = or disjoint i64 %.sroa.14.0.insert.shift, %.sroa.12.0.insert.shift573
  %tr.sh.diff424 = trunc nuw nsw i64 %.sroa.12.0.insert.insert575 to i32
  %166 = and i32 %tr.sh.diff424, 65520
  %.sroa.14.0.insert.ext597 = zext i8 %.sroa.6.0.copyload to i32
  %.sroa.14.0.insert.shift598 = shl nuw nsw i32 %.sroa.14.0.insert.ext597, 16
  %167 = or disjoint i32 %166, %.sroa.14.0.insert.shift598
  %.sroa.14.0.insert.ext602 = zext i8 %.sroa.7.0.copyload to i32
  %.sroa.14.0.insert.shift603 = shl nuw i32 %.sroa.14.0.insert.ext602, 24
  %168 = or disjoint i32 %167, %.sroa.14.0.insert.shift603
  %169 = or disjoint i32 %168, %165
  store i32 %169, ptr @read_inode_2.header, align 1
  %.sroa.14.0.insert.ext607 = zext i8 %.sroa.8.0.copyload to i16
  %.sroa.14.0.insert.shift608 = shl nuw i16 %.sroa.14.0.insert.ext607, 8
  %.sroa.12.0.insert.ext587 = zext i8 %.sroa.9.0.copyload to i16
  %.sroa.12.0.insert.insert590 = or disjoint i16 %.sroa.14.0.insert.shift608, %.sroa.12.0.insert.ext587
  store i16 %.sroa.12.0.insert.insert590, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1, !tbaa !47
  br label %171

170:                                              ; preds = %162
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) @read_inode_2.header, ptr noundef nonnull align 1 dereferenceable(6) %11, i64 6, i1 false)
  %.pre = load i16, ptr getelementptr inbounds (i8, ptr @read_inode_2.header, i64 4), align 1, !tbaa !47
  br label %171

171:                                              ; preds = %170, %163
  %172 = phi i16 [ %.pre, %170 ], [ %.sroa.12.0.insert.insert590, %163 ]
  %173 = zext i16 %172 to i64
  store i64 %173, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 16), align 8, !tbaa !29
  br label %182

174:                                              ; preds = %45, %45
  store i64 0, ptr getelementptr inbounds (i8, ptr @read_inode_2.i, i64 16), align 8, !tbaa !29
  br label %182

175:                                              ; preds = %45
  %176 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull @screen_mutex) #9
  %177 = load ptr, ptr @stderr, align 8, !tbaa !13
  %178 = load i32, ptr @read_inode_2.header, align 1
  %179 = and i32 %178, 15
  %180 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef nonnull @.str.6, i32 noundef %179) #10
  %181 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @screen_mutex) #9
  tail call void @exit(i32 noundef 1) #11
  unreachable

182:                                              ; preds = %174, %171, %158, %132, %93, %70
  ret ptr @read_inode_2.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

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

attributes #0 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 = { 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 #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { nounwind }
attributes #10 = { cold nounwind }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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 = !{!17, !8, i64 84}
!17 = !{!"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, !18, i64 64, !8, i64 72, !8, i64 76, !9, i64 80, !8, i64 84}
!18 = !{!"long", !9, i64 0}
!19 = !{!17, !8, i64 76}
!20 = !{!17, !8, i64 32}
!21 = !{!17, !8, i64 40}
!22 = !{!17, !8, i64 72}
!23 = !{!6, !8, i64 8}
!24 = !{!17, !18, i64 64}
!25 = !{!17, !8, i64 36}
!26 = !{!9, !9, i64 0}
!27 = !{!28, !8, i64 8}
!28 = !{!"squashfs_dir_inode_header_2", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 6, !8, i64 8, !8, i64 12}
!29 = !{!17, !12, i64 16}
!30 = !{!17, !8, i64 44}
!31 = !{!17, !12, i64 48}
!32 = !{!33, !8, i64 9}
!33 = !{!"squashfs_ldir_inode_header_2", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !8, i64 4, !8, i64 7, !8, i64 9, !8, i64 13, !8, i64 16, !9, i64 18}
!34 = !{!35, !8, i64 4}
!35 = !{!"squashfs_reg_inode_header_2", !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 20, !9, i64 24}
!36 = !{!35, !8, i64 8}
!37 = !{!35, !8, i64 12}
!38 = !{!35, !8, i64 16}
!39 = !{!6, !8, i64 12}
!40 = !{!6, !11, i64 22}
!41 = !{!17, !8, i64 0}
!42 = !{!17, !9, i64 80}
!43 = !{!17, !14, i64 8}
!44 = !{!45, !11, i64 4}
!45 = !{!"squashfs_symlink_inode_header_2", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !11, i64 4, !9, i64 6}
!46 = !{!17, !14, i64 56}
!47 = !{!48, !11, i64 4}
!48 = !{!"squashfs_dev_inode_header_2", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 3, !11, i64 4}


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