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

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

%union.squashfs_inode_header_1 = type <{ %struct.squashfs_ipc_inode_header_1, [11 x i8] }>
%struct.squashfs_ipc_inode_header_1 = type { i32 }
%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 }
%struct.inode = type { i32, ptr, i64, i32, i32, i32, i32, i32, i32, i64, ptr, i64, i32, i32, i8, i32 }
%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 }
%struct.squashfs_base_inode_header_1 = type <{ i16, i8 }>
%struct.squashfs_dir_inode_header_1 = type <{ i16, i8, i32, i32, [3 x i8] }>
%struct.squashfs_reg_inode_header_1 = type <{ i16, i8, i32, i32, i32, [0 x i16] }>
%struct.squashfs_symlink_inode_header_1 = type <{ i16, i8, i16, [0 x i8] }>
%struct.squashfs_dev_inode_header_1 = type <{ i16, i8, i16 }>

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #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) #0

; Function Attrs: nounwind uwtable
define dso_local ptr @read_inode_1(i32 noundef %0, i32 noundef %1) #3 {
  %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_1, 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_ipc_inode_header_1, 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_dir_inode_header_1, 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_1, 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_1, 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_1, 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, 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 %196

76:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 3, 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 3, 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_1.header, i8 0, i64 3, 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 = trunc i32 %100 to i16
  %102 = load i16, ptr @read_inode_1.header, align 1
  %103 = and i16 %101, 15
  %104 = and i16 %102, -16
  %105 = or i16 %104, %103
  store i16 %105, ptr @read_inode_1.header, align 1
  %106 = zext i16 %103 to i32
  store i32 4, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %107 = getelementptr inbounds i8, ptr %8, i64 0
  store ptr %107, ptr %12, align 8, !tbaa !15
  %108 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %108, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %109

109:                                              ; preds = %120, %94
  %110 = load i32, ptr %9, align 4, !tbaa !5
  %111 = load i32, ptr %10, align 4, !tbaa !5
  %112 = add nsw i32 12, %111
  %113 = icmp slt i32 %110, %112
  br i1 %113, label %114, label %123

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

120:                                              ; preds = %114
  %121 = load i32, ptr %9, align 4, !tbaa !5
  %122 = add nsw i32 %121, 8
  store i32 %122, ptr %9, align 4, !tbaa !5
  br label %109, !llvm.loop !20

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

139:                                              ; preds = %150, %123
  %140 = load i32, ptr %9, align 4, !tbaa !5
  %141 = load i32, ptr %10, align 4, !tbaa !5
  %142 = add nsw i32 4, %141
  %143 = icmp slt i32 %140, %142
  br i1 %143, label %144, label %153

144:                                              ; preds = %139
  %145 = load ptr, ptr %12, align 8, !tbaa !15
  %146 = getelementptr inbounds i8, ptr %145, i32 1
  store ptr %146, ptr %12, align 8, !tbaa !15
  %147 = load i8, ptr %145, align 1, !tbaa !17
  %148 = load ptr, ptr %13, align 8, !tbaa !15
  %149 = getelementptr inbounds i8, ptr %148, i32 -1
  store ptr %149, ptr %13, align 8, !tbaa !15
  store i8 %147, ptr %148, align 1, !tbaa !17
  br label %150

150:                                              ; preds = %144
  %151 = load i32, ptr %9, align 4, !tbaa !5
  %152 = add nsw i32 %151, 8
  store i32 %152, ptr %9, align 4, !tbaa !5
  br label %139, !llvm.loop !21

153:                                              ; preds = %139
  %154 = load i64, ptr %11, align 8, !tbaa !14
  %155 = load i32, ptr %10, align 4, !tbaa !5
  %156 = sub nsw i32 60, %155
  %157 = zext i32 %156 to i64
  %158 = lshr i64 %154, %157
  %159 = trunc i64 %158 to i32
  %160 = trunc i32 %159 to i8
  %161 = load i8, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_1, ptr @read_inode_1.header, i32 0, i32 1), align 1
  %162 = and i8 %160, 15
  %163 = and i8 %161, -16
  %164 = or i8 %163, %162
  store i8 %164, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_1, ptr @read_inode_1.header, i32 0, i32 1), align 1
  %165 = zext i8 %162 to i32
  store i32 4, ptr %10, align 4, !tbaa !5
  store i64 0, ptr %11, align 8, !tbaa !14
  %166 = getelementptr inbounds i8, ptr %8, i64 2
  store ptr %166, ptr %12, align 8, !tbaa !15
  %167 = getelementptr inbounds i8, ptr %11, i64 7
  store ptr %167, ptr %13, align 8, !tbaa !15
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %168

168:                                              ; preds = %179, %153
  %169 = load i32, ptr %9, align 4, !tbaa !5
  %170 = load i32, ptr %10, align 4, !tbaa !5
  %171 = add nsw i32 4, %170
  %172 = icmp slt i32 %169, %171
  br i1 %172, label %173, label %182

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

179:                                              ; preds = %173
  %180 = load i32, ptr %9, align 4, !tbaa !5
  %181 = add nsw i32 %180, 8
  store i32 %181, ptr %9, align 4, !tbaa !5
  br label %168, !llvm.loop !22

182:                                              ; preds = %168
  %183 = load i64, ptr %11, align 8, !tbaa !14
  %184 = load i32, ptr %10, align 4, !tbaa !5
  %185 = sub nsw i32 60, %184
  %186 = zext i32 %185 to i64
  %187 = lshr i64 %183, %186
  %188 = trunc i64 %187 to i32
  %189 = trunc i32 %188 to i8
  %190 = load i8, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_1, ptr @read_inode_1.header, i32 0, i32 1), align 1
  %191 = and i8 %189, 15
  %192 = shl i8 %191, 4
  %193 = and i8 %190, 15
  %194 = or i8 %193, %192
  store i8 %194, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_1, ptr @read_inode_1.header, i32 0, i32 1), align 1
  %195 = zext i8 %191 to i32
  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 3, ptr %8) #8
  br label %198

196:                                              ; preds = %73
  %197 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 @read_inode_1.header, ptr align 1 %197, i64 3, i1 false)
  br label %198

198:                                              ; preds = %196, %182
  %199 = load ptr, ptr @uid_table, align 8, !tbaa !15
  %200 = load i16, ptr @read_inode_1.header, align 1
  %201 = and i16 %200, 15
  %202 = zext i16 %201 to i32
  %203 = sub nsw i32 %202, 1
  %204 = sdiv i32 %203, 5
  %205 = mul nsw i32 %204, 16
  %206 = load i8, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_1, ptr @read_inode_1.header, i32 0, i32 1), align 1
  %207 = and i8 %206, 15
  %208 = zext i8 %207 to i32
  %209 = add nsw i32 %205, %208
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds i32, ptr %199, i64 %210
  %212 = load i32, ptr %211, align 4, !tbaa !5
  store i32 %212, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 13), align 4, !tbaa !23
  %213 = load i16, ptr @read_inode_1.header, align 1
  %214 = and i16 %213, 15
  %215 = zext i16 %214 to i32
  %216 = icmp eq i32 %215, 0
  br i1 %216, label %217, label %429

217:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  store ptr @read_inode_1.header, ptr %14, align 8, !tbaa !15
  %218 = load i32, ptr @swap, align 4, !tbaa !5
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %220, label %396

220:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %221 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %15, ptr align 1 %221, i64 4, 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
  %222 = load ptr, ptr %14, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %222, i8 0, i64 4, i1 false)
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %223 = getelementptr inbounds i8, ptr %15, i64 0
  store ptr %223, ptr %19, align 8, !tbaa !15
  %224 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %224, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %225

225:                                              ; preds = %236, %220
  %226 = load i32, ptr %16, align 4, !tbaa !5
  %227 = load i32, ptr %17, align 4, !tbaa !5
  %228 = add nsw i32 4, %227
  %229 = icmp slt i32 %226, %228
  br i1 %229, label %230, label %239

230:                                              ; preds = %225
  %231 = load ptr, ptr %19, align 8, !tbaa !15
  %232 = getelementptr inbounds i8, ptr %231, i32 1
  store ptr %232, ptr %19, align 8, !tbaa !15
  %233 = load i8, ptr %231, align 1, !tbaa !17
  %234 = load ptr, ptr %20, align 8, !tbaa !15
  %235 = getelementptr inbounds i8, ptr %234, i32 -1
  store ptr %235, ptr %20, align 8, !tbaa !15
  store i8 %233, ptr %234, align 1, !tbaa !17
  br label %236

236:                                              ; preds = %230
  %237 = load i32, ptr %16, align 4, !tbaa !5
  %238 = add nsw i32 %237, 8
  store i32 %238, ptr %16, align 4, !tbaa !5
  br label %225, !llvm.loop !26

239:                                              ; preds = %225
  %240 = load i64, ptr %18, align 8, !tbaa !14
  %241 = load i32, ptr %17, align 4, !tbaa !5
  %242 = sub nsw i32 60, %241
  %243 = zext i32 %242 to i64
  %244 = lshr i64 %240, %243
  %245 = trunc i64 %244 to i32
  %246 = load ptr, ptr %14, align 8, !tbaa !15
  %247 = load i32, ptr %246, align 1
  %248 = and i32 %245, 15
  %249 = and i32 %247, -16
  %250 = or i32 %249, %248
  store i32 %250, ptr %246, align 1
  store i32 4, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %251 = getelementptr inbounds i8, ptr %15, i64 0
  store ptr %251, ptr %19, align 8, !tbaa !15
  %252 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %252, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %253

253:                                              ; preds = %264, %239
  %254 = load i32, ptr %16, align 4, !tbaa !5
  %255 = load i32, ptr %17, align 4, !tbaa !5
  %256 = add nsw i32 12, %255
  %257 = icmp slt i32 %254, %256
  br i1 %257, label %258, label %267

258:                                              ; preds = %253
  %259 = load ptr, ptr %19, align 8, !tbaa !15
  %260 = getelementptr inbounds i8, ptr %259, i32 1
  store ptr %260, ptr %19, align 8, !tbaa !15
  %261 = load i8, ptr %259, align 1, !tbaa !17
  %262 = load ptr, ptr %20, align 8, !tbaa !15
  %263 = getelementptr inbounds i8, ptr %262, i32 -1
  store ptr %263, ptr %20, align 8, !tbaa !15
  store i8 %261, ptr %262, align 1, !tbaa !17
  br label %264

264:                                              ; preds = %258
  %265 = load i32, ptr %16, align 4, !tbaa !5
  %266 = add nsw i32 %265, 8
  store i32 %266, ptr %16, align 4, !tbaa !5
  br label %253, !llvm.loop !27

267:                                              ; preds = %253
  %268 = load i64, ptr %18, align 8, !tbaa !14
  %269 = load i32, ptr %17, align 4, !tbaa !5
  %270 = sub nsw i32 52, %269
  %271 = zext i32 %270 to i64
  %272 = lshr i64 %268, %271
  %273 = trunc i64 %272 to i32
  %274 = load ptr, ptr %14, align 8, !tbaa !15
  %275 = load i32, ptr %274, align 1
  %276 = and i32 %273, 4095
  %277 = shl i32 %276, 4
  %278 = and i32 %275, -65521
  %279 = or i32 %278, %277
  store i32 %279, ptr %274, align 1
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %280 = getelementptr inbounds i8, ptr %15, i64 2
  store ptr %280, ptr %19, align 8, !tbaa !15
  %281 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %281, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %282

282:                                              ; preds = %293, %267
  %283 = load i32, ptr %16, align 4, !tbaa !5
  %284 = load i32, ptr %17, align 4, !tbaa !5
  %285 = add nsw i32 4, %284
  %286 = icmp slt i32 %283, %285
  br i1 %286, label %287, label %296

287:                                              ; preds = %282
  %288 = load ptr, ptr %19, align 8, !tbaa !15
  %289 = getelementptr inbounds i8, ptr %288, i32 1
  store ptr %289, ptr %19, align 8, !tbaa !15
  %290 = load i8, ptr %288, align 1, !tbaa !17
  %291 = load ptr, ptr %20, align 8, !tbaa !15
  %292 = getelementptr inbounds i8, ptr %291, i32 -1
  store ptr %292, ptr %20, align 8, !tbaa !15
  store i8 %290, ptr %291, align 1, !tbaa !17
  br label %293

293:                                              ; preds = %287
  %294 = load i32, ptr %16, align 4, !tbaa !5
  %295 = add nsw i32 %294, 8
  store i32 %295, ptr %16, align 4, !tbaa !5
  br label %282, !llvm.loop !28

296:                                              ; preds = %282
  %297 = load i64, ptr %18, align 8, !tbaa !14
  %298 = load i32, ptr %17, align 4, !tbaa !5
  %299 = sub nsw i32 60, %298
  %300 = zext i32 %299 to i64
  %301 = lshr i64 %297, %300
  %302 = trunc i64 %301 to i32
  %303 = load ptr, ptr %14, align 8, !tbaa !15
  %304 = load i32, ptr %303, align 1
  %305 = and i32 %302, 15
  %306 = shl i32 %305, 16
  %307 = and i32 %304, -983041
  %308 = or i32 %307, %306
  store i32 %308, ptr %303, align 1
  store i32 4, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %309 = getelementptr inbounds i8, ptr %15, i64 2
  store ptr %309, ptr %19, align 8, !tbaa !15
  %310 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %310, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %311

311:                                              ; preds = %322, %296
  %312 = load i32, ptr %16, align 4, !tbaa !5
  %313 = load i32, ptr %17, align 4, !tbaa !5
  %314 = add nsw i32 4, %313
  %315 = icmp slt i32 %312, %314
  br i1 %315, label %316, label %325

316:                                              ; preds = %311
  %317 = load ptr, ptr %19, align 8, !tbaa !15
  %318 = getelementptr inbounds i8, ptr %317, i32 1
  store ptr %318, ptr %19, align 8, !tbaa !15
  %319 = load i8, ptr %317, align 1, !tbaa !17
  %320 = load ptr, ptr %20, align 8, !tbaa !15
  %321 = getelementptr inbounds i8, ptr %320, i32 -1
  store ptr %321, ptr %20, align 8, !tbaa !15
  store i8 %319, ptr %320, align 1, !tbaa !17
  br label %322

322:                                              ; preds = %316
  %323 = load i32, ptr %16, align 4, !tbaa !5
  %324 = add nsw i32 %323, 8
  store i32 %324, ptr %16, align 4, !tbaa !5
  br label %311, !llvm.loop !29

325:                                              ; preds = %311
  %326 = load i64, ptr %18, align 8, !tbaa !14
  %327 = load i32, ptr %17, align 4, !tbaa !5
  %328 = sub nsw i32 60, %327
  %329 = zext i32 %328 to i64
  %330 = lshr i64 %326, %329
  %331 = trunc i64 %330 to i32
  %332 = load ptr, ptr %14, align 8, !tbaa !15
  %333 = load i32, ptr %332, align 1
  %334 = and i32 %331, 15
  %335 = shl i32 %334, 20
  %336 = and i32 %333, -15728641
  %337 = or i32 %336, %335
  store i32 %337, ptr %332, align 1
  store i32 0, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %338 = getelementptr inbounds i8, ptr %15, i64 3
  store ptr %338, ptr %19, align 8, !tbaa !15
  %339 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %339, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %340

340:                                              ; preds = %351, %325
  %341 = load i32, ptr %16, align 4, !tbaa !5
  %342 = load i32, ptr %17, align 4, !tbaa !5
  %343 = add nsw i32 4, %342
  %344 = icmp slt i32 %341, %343
  br i1 %344, label %345, label %354

345:                                              ; preds = %340
  %346 = load ptr, ptr %19, align 8, !tbaa !15
  %347 = getelementptr inbounds i8, ptr %346, i32 1
  store ptr %347, ptr %19, align 8, !tbaa !15
  %348 = load i8, ptr %346, align 1, !tbaa !17
  %349 = load ptr, ptr %20, align 8, !tbaa !15
  %350 = getelementptr inbounds i8, ptr %349, i32 -1
  store ptr %350, ptr %20, align 8, !tbaa !15
  store i8 %348, ptr %349, align 1, !tbaa !17
  br label %351

351:                                              ; preds = %345
  %352 = load i32, ptr %16, align 4, !tbaa !5
  %353 = add nsw i32 %352, 8
  store i32 %353, ptr %16, align 4, !tbaa !5
  br label %340, !llvm.loop !30

354:                                              ; preds = %340
  %355 = load i64, ptr %18, align 8, !tbaa !14
  %356 = load i32, ptr %17, align 4, !tbaa !5
  %357 = sub nsw i32 60, %356
  %358 = zext i32 %357 to i64
  %359 = lshr i64 %355, %358
  %360 = trunc i64 %359 to i32
  %361 = load ptr, ptr %14, align 8, !tbaa !15
  %362 = load i32, ptr %361, align 1
  %363 = and i32 %360, 15
  %364 = shl i32 %363, 24
  %365 = and i32 %362, -251658241
  %366 = or i32 %365, %364
  store i32 %366, ptr %361, align 1
  store i32 4, ptr %17, align 4, !tbaa !5
  store i64 0, ptr %18, align 8, !tbaa !14
  %367 = getelementptr inbounds i8, ptr %15, i64 3
  store ptr %367, ptr %19, align 8, !tbaa !15
  %368 = getelementptr inbounds i8, ptr %18, i64 7
  store ptr %368, ptr %20, align 8, !tbaa !15
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %369

369:                                              ; preds = %380, %354
  %370 = load i32, ptr %16, align 4, !tbaa !5
  %371 = load i32, ptr %17, align 4, !tbaa !5
  %372 = add nsw i32 4, %371
  %373 = icmp slt i32 %370, %372
  br i1 %373, label %374, label %383

374:                                              ; preds = %369
  %375 = load ptr, ptr %19, align 8, !tbaa !15
  %376 = getelementptr inbounds i8, ptr %375, i32 1
  store ptr %376, ptr %19, align 8, !tbaa !15
  %377 = load i8, ptr %375, align 1, !tbaa !17
  %378 = load ptr, ptr %20, align 8, !tbaa !15
  %379 = getelementptr inbounds i8, ptr %378, i32 -1
  store ptr %379, ptr %20, align 8, !tbaa !15
  store i8 %377, ptr %378, align 1, !tbaa !17
  br label %380

380:                                              ; preds = %374
  %381 = load i32, ptr %16, align 4, !tbaa !5
  %382 = add nsw i32 %381, 8
  store i32 %382, ptr %16, align 4, !tbaa !5
  br label %369, !llvm.loop !31

383:                                              ; preds = %369
  %384 = load i64, ptr %18, align 8, !tbaa !14
  %385 = load i32, ptr %17, align 4, !tbaa !5
  %386 = sub nsw i32 60, %385
  %387 = zext i32 %386 to i64
  %388 = lshr i64 %384, %387
  %389 = trunc i64 %388 to i32
  %390 = load ptr, ptr %14, align 8, !tbaa !15
  %391 = load i32, ptr %390, align 1
  %392 = and i32 %389, 15
  %393 = shl i32 %392, 28
  %394 = and i32 %391, 268435455
  %395 = or i32 %394, %393
  store i32 %395, ptr %390, align 1
  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 4, ptr %15) #8
  br label %399

396:                                              ; preds = %217
  %397 = load ptr, ptr %14, align 8, !tbaa !15
  %398 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %397, ptr align 1 %398, i64 4, i1 false)
  br label %399

399:                                              ; preds = %396, %383
  %400 = load ptr, ptr %14, align 8, !tbaa !15
  %401 = load i32, ptr %400, align 1
  %402 = lshr i32 %401, 24
  %403 = and i32 %402, 15
  %404 = icmp eq i32 %403, 7
  br i1 %404, label %405, label %410

405:                                              ; preds = %399
  %406 = load i16, ptr @read_inode_1.header, align 1
  %407 = lshr i16 %406, 4
  %408 = zext i16 %407 to i32
  %409 = or i32 49152, %408
  store i32 %409, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 7), align 8, !tbaa !32
  store i32 7, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 12), align 8, !tbaa !33
  br label %415

410:                                              ; preds = %399
  %411 = load i16, ptr @read_inode_1.header, align 1
  %412 = lshr i16 %411, 4
  %413 = zext i16 %412 to i32
  %414 = or i32 4096, %413
  store i32 %414, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 7), align 8, !tbaa !32
  store i32 6, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 12), align 8, !tbaa !33
  br label %415

415:                                              ; preds = %410, %405
  %416 = load ptr, ptr @uid_table, align 8, !tbaa !15
  %417 = load ptr, ptr %14, align 8, !tbaa !15
  %418 = load i32, ptr %417, align 1
  %419 = lshr i32 %418, 28
  %420 = mul nsw i32 %419, 16
  %421 = load ptr, ptr %14, align 8, !tbaa !15
  %422 = load i32, ptr %421, align 1
  %423 = lshr i32 %422, 16
  %424 = and i32 %423, 15
  %425 = add nsw i32 %420, %424
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds i32, ptr %416, i64 %426
  %428 = load i32, ptr %427, align 4, !tbaa !5
  store i32 %428, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 13), align 4, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %449

429:                                              ; preds = %198
  %430 = load i16, ptr @read_inode_1.header, align 1
  %431 = and i16 %430, 15
  %432 = zext i16 %431 to i32
  %433 = sub nsw i32 %432, 1
  %434 = srem i32 %433, 5
  %435 = add nsw i32 %434, 1
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds [0 x i32], ptr @lookup_type, i64 0, i64 %436
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = load i16, ptr @read_inode_1.header, align 1
  %440 = lshr i16 %439, 4
  %441 = zext i16 %440 to i32
  %442 = or i32 %438, %441
  store i32 %442, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 7), align 8, !tbaa !32
  %443 = load i16, ptr @read_inode_1.header, align 1
  %444 = and i16 %443, 15
  %445 = zext i16 %444 to i32
  %446 = sub nsw i32 %445, 1
  %447 = srem i32 %446, 5
  %448 = add nsw i32 %447, 1
  store i32 %448, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 12), align 8, !tbaa !33
  br label %449

449:                                              ; preds = %429, %415
  store i32 -1, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 15), align 4, !tbaa !34
  %450 = load i8, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_1, ptr @read_inode_1.header, i32 0, i32 1), align 1
  %451 = lshr i8 %450, 4
  %452 = zext i8 %451 to i32
  %453 = icmp eq i32 %452, 15
  br i1 %453, label %454, label %456

454:                                              ; preds = %449
  %455 = load i32, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 13), align 4, !tbaa !23
  br label %464

456:                                              ; preds = %449
  %457 = load ptr, ptr @guid_table, align 8, !tbaa !15
  %458 = load i8, ptr getelementptr inbounds (%struct.squashfs_base_inode_header_1, ptr @read_inode_1.header, i32 0, i32 1), align 1
  %459 = lshr i8 %458, 4
  %460 = zext i8 %459 to i32
  %461 = zext i32 %460 to i64
  %462 = getelementptr inbounds i32, ptr %457, i64 %461
  %463 = load i32, ptr %462, align 4, !tbaa !5
  br label %464

464:                                              ; preds = %456, %454
  %465 = phi i32 [ %455, %454 ], [ %463, %456 ]
  store i32 %465, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 5), align 8, !tbaa !35
  %466 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 2), align 8, !tbaa !36
  %467 = zext i32 %466 to i64
  store i64 %467, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 11), align 8, !tbaa !37
  %468 = load i32, ptr @inode_number, align 4, !tbaa !5
  %469 = add nsw i32 %468, 1
  store i32 %469, ptr @inode_number, align 4, !tbaa !5
  store i32 %468, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 6), align 4, !tbaa !38
  %470 = load i32, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 12), align 8, !tbaa !33
  switch i32 %470, label %1326 [
    i32 1, label %471
    i32 2, label %734
    i32 3, label %967
    i32 4, label %1162
    i32 5, label %1162
    i32 6, label %1325
    i32 7, label %1325
  ]

471:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  store ptr @read_inode_1.header, ptr %21, align 8, !tbaa !15
  %472 = load i32, ptr @swap, align 4, !tbaa !5
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %474, label %712

474:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 14, ptr %22) #8
  %475 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %22, ptr align 1 %475, i64 14, 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
  %476 = load ptr, ptr %21, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %476, i8 0, i64 14, i1 false)
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %477 = getelementptr inbounds i8, ptr %22, i64 0
  store ptr %477, ptr %26, align 8, !tbaa !15
  %478 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %478, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %479

479:                                              ; preds = %490, %474
  %480 = load i32, ptr %23, align 4, !tbaa !5
  %481 = load i32, ptr %24, align 4, !tbaa !5
  %482 = add nsw i32 4, %481
  %483 = icmp slt i32 %480, %482
  br i1 %483, label %484, label %493

484:                                              ; preds = %479
  %485 = load ptr, ptr %26, align 8, !tbaa !15
  %486 = getelementptr inbounds i8, ptr %485, i32 1
  store ptr %486, ptr %26, align 8, !tbaa !15
  %487 = load i8, ptr %485, align 1, !tbaa !17
  %488 = load ptr, ptr %27, align 8, !tbaa !15
  %489 = getelementptr inbounds i8, ptr %488, i32 -1
  store ptr %489, ptr %27, align 8, !tbaa !15
  store i8 %487, ptr %488, align 1, !tbaa !17
  br label %490

490:                                              ; preds = %484
  %491 = load i32, ptr %23, align 4, !tbaa !5
  %492 = add nsw i32 %491, 8
  store i32 %492, ptr %23, align 4, !tbaa !5
  br label %479, !llvm.loop !39

493:                                              ; preds = %479
  %494 = load i64, ptr %25, align 8, !tbaa !14
  %495 = load i32, ptr %24, align 4, !tbaa !5
  %496 = sub nsw i32 60, %495
  %497 = zext i32 %496 to i64
  %498 = lshr i64 %494, %497
  %499 = trunc i64 %498 to i32
  %500 = load ptr, ptr %21, align 8, !tbaa !15
  %501 = trunc i32 %499 to i16
  %502 = load i16, ptr %500, align 1
  %503 = and i16 %501, 15
  %504 = and i16 %502, -16
  %505 = or i16 %504, %503
  store i16 %505, ptr %500, align 1
  %506 = zext i16 %503 to i32
  store i32 4, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %507 = getelementptr inbounds i8, ptr %22, i64 0
  store ptr %507, ptr %26, align 8, !tbaa !15
  %508 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %508, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %509

509:                                              ; preds = %520, %493
  %510 = load i32, ptr %23, align 4, !tbaa !5
  %511 = load i32, ptr %24, align 4, !tbaa !5
  %512 = add nsw i32 12, %511
  %513 = icmp slt i32 %510, %512
  br i1 %513, label %514, label %523

514:                                              ; preds = %509
  %515 = load ptr, ptr %26, align 8, !tbaa !15
  %516 = getelementptr inbounds i8, ptr %515, i32 1
  store ptr %516, ptr %26, align 8, !tbaa !15
  %517 = load i8, ptr %515, align 1, !tbaa !17
  %518 = load ptr, ptr %27, align 8, !tbaa !15
  %519 = getelementptr inbounds i8, ptr %518, i32 -1
  store ptr %519, ptr %27, align 8, !tbaa !15
  store i8 %517, ptr %518, align 1, !tbaa !17
  br label %520

520:                                              ; preds = %514
  %521 = load i32, ptr %23, align 4, !tbaa !5
  %522 = add nsw i32 %521, 8
  store i32 %522, ptr %23, align 4, !tbaa !5
  br label %509, !llvm.loop !40

523:                                              ; preds = %509
  %524 = load i64, ptr %25, align 8, !tbaa !14
  %525 = load i32, ptr %24, align 4, !tbaa !5
  %526 = sub nsw i32 52, %525
  %527 = zext i32 %526 to i64
  %528 = lshr i64 %524, %527
  %529 = trunc i64 %528 to i32
  %530 = load ptr, ptr %21, align 8, !tbaa !15
  %531 = trunc i32 %529 to i16
  %532 = load i16, ptr %530, align 1
  %533 = and i16 %531, 4095
  %534 = shl i16 %533, 4
  %535 = and i16 %532, 15
  %536 = or i16 %535, %534
  store i16 %536, ptr %530, align 1
  %537 = zext i16 %533 to i32
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %538 = getelementptr inbounds i8, ptr %22, i64 2
  store ptr %538, ptr %26, align 8, !tbaa !15
  %539 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %539, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %540

540:                                              ; preds = %551, %523
  %541 = load i32, ptr %23, align 4, !tbaa !5
  %542 = load i32, ptr %24, align 4, !tbaa !5
  %543 = add nsw i32 4, %542
  %544 = icmp slt i32 %541, %543
  br i1 %544, label %545, label %554

545:                                              ; preds = %540
  %546 = load ptr, ptr %26, align 8, !tbaa !15
  %547 = getelementptr inbounds i8, ptr %546, i32 1
  store ptr %547, ptr %26, align 8, !tbaa !15
  %548 = load i8, ptr %546, align 1, !tbaa !17
  %549 = load ptr, ptr %27, align 8, !tbaa !15
  %550 = getelementptr inbounds i8, ptr %549, i32 -1
  store ptr %550, ptr %27, align 8, !tbaa !15
  store i8 %548, ptr %549, align 1, !tbaa !17
  br label %551

551:                                              ; preds = %545
  %552 = load i32, ptr %23, align 4, !tbaa !5
  %553 = add nsw i32 %552, 8
  store i32 %553, ptr %23, align 4, !tbaa !5
  br label %540, !llvm.loop !41

554:                                              ; preds = %540
  %555 = load i64, ptr %25, align 8, !tbaa !14
  %556 = load i32, ptr %24, align 4, !tbaa !5
  %557 = sub nsw i32 60, %556
  %558 = zext i32 %557 to i64
  %559 = lshr i64 %555, %558
  %560 = trunc i64 %559 to i32
  %561 = load ptr, ptr %21, align 8, !tbaa !15
  %562 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %561, i32 0, i32 1
  %563 = trunc i32 %560 to i8
  %564 = load i8, ptr %562, align 1
  %565 = and i8 %563, 15
  %566 = and i8 %564, -16
  %567 = or i8 %566, %565
  store i8 %567, ptr %562, align 1
  %568 = zext i8 %565 to i32
  store i32 4, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %569 = getelementptr inbounds i8, ptr %22, i64 2
  store ptr %569, ptr %26, align 8, !tbaa !15
  %570 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %570, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %571

571:                                              ; preds = %582, %554
  %572 = load i32, ptr %23, align 4, !tbaa !5
  %573 = load i32, ptr %24, align 4, !tbaa !5
  %574 = add nsw i32 4, %573
  %575 = icmp slt i32 %572, %574
  br i1 %575, label %576, label %585

576:                                              ; preds = %571
  %577 = load ptr, ptr %26, align 8, !tbaa !15
  %578 = getelementptr inbounds i8, ptr %577, i32 1
  store ptr %578, ptr %26, align 8, !tbaa !15
  %579 = load i8, ptr %577, align 1, !tbaa !17
  %580 = load ptr, ptr %27, align 8, !tbaa !15
  %581 = getelementptr inbounds i8, ptr %580, i32 -1
  store ptr %581, ptr %27, align 8, !tbaa !15
  store i8 %579, ptr %580, align 1, !tbaa !17
  br label %582

582:                                              ; preds = %576
  %583 = load i32, ptr %23, align 4, !tbaa !5
  %584 = add nsw i32 %583, 8
  store i32 %584, ptr %23, align 4, !tbaa !5
  br label %571, !llvm.loop !42

585:                                              ; preds = %571
  %586 = load i64, ptr %25, align 8, !tbaa !14
  %587 = load i32, ptr %24, align 4, !tbaa !5
  %588 = sub nsw i32 60, %587
  %589 = zext i32 %588 to i64
  %590 = lshr i64 %586, %589
  %591 = trunc i64 %590 to i32
  %592 = load ptr, ptr %21, align 8, !tbaa !15
  %593 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %592, i32 0, i32 1
  %594 = trunc i32 %591 to i8
  %595 = load i8, ptr %593, align 1
  %596 = and i8 %594, 15
  %597 = shl i8 %596, 4
  %598 = and i8 %595, 15
  %599 = or i8 %598, %597
  store i8 %599, ptr %593, align 1
  %600 = zext i8 %596 to i32
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %601 = getelementptr inbounds i8, ptr %22, i64 3
  store ptr %601, ptr %26, align 8, !tbaa !15
  %602 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %602, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %603

603:                                              ; preds = %614, %585
  %604 = load i32, ptr %23, align 4, !tbaa !5
  %605 = load i32, ptr %24, align 4, !tbaa !5
  %606 = add nsw i32 19, %605
  %607 = icmp slt i32 %604, %606
  br i1 %607, label %608, label %617

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

614:                                              ; preds = %608
  %615 = load i32, ptr %23, align 4, !tbaa !5
  %616 = add nsw i32 %615, 8
  store i32 %616, ptr %23, align 4, !tbaa !5
  br label %603, !llvm.loop !43

617:                                              ; preds = %603
  %618 = load i64, ptr %25, align 8, !tbaa !14
  %619 = load i32, ptr %24, align 4, !tbaa !5
  %620 = sub nsw i32 45, %619
  %621 = zext i32 %620 to i64
  %622 = lshr i64 %618, %621
  %623 = trunc i64 %622 to i32
  %624 = load ptr, ptr %21, align 8, !tbaa !15
  %625 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %624, i32 0, i32 2
  %626 = load i32, ptr %625, align 1
  %627 = and i32 %623, 524287
  %628 = and i32 %626, -524288
  %629 = or i32 %628, %627
  store i32 %629, ptr %625, align 1
  store i32 3, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %630 = getelementptr inbounds i8, ptr %22, i64 5
  store ptr %630, ptr %26, align 8, !tbaa !15
  %631 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %631, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %632

632:                                              ; preds = %643, %617
  %633 = load i32, ptr %23, align 4, !tbaa !5
  %634 = load i32, ptr %24, align 4, !tbaa !5
  %635 = add nsw i32 13, %634
  %636 = icmp slt i32 %633, %635
  br i1 %636, label %637, label %646

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

643:                                              ; preds = %637
  %644 = load i32, ptr %23, align 4, !tbaa !5
  %645 = add nsw i32 %644, 8
  store i32 %645, ptr %23, align 4, !tbaa !5
  br label %632, !llvm.loop !44

646:                                              ; preds = %632
  %647 = load i64, ptr %25, align 8, !tbaa !14
  %648 = load i32, ptr %24, align 4, !tbaa !5
  %649 = sub nsw i32 51, %648
  %650 = zext i32 %649 to i64
  %651 = lshr i64 %647, %650
  %652 = trunc i64 %651 to i32
  %653 = load ptr, ptr %21, align 8, !tbaa !15
  %654 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %653, i32 0, i32 2
  %655 = load i32, ptr %654, align 1
  %656 = and i32 %652, 8191
  %657 = shl i32 %656, 19
  %658 = and i32 %655, 524287
  %659 = or i32 %658, %657
  store i32 %659, ptr %654, align 1
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %660 = getelementptr inbounds i8, ptr %22, i64 7
  store ptr %660, ptr %26, align 8, !tbaa !15
  %661 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %661, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %662

662:                                              ; preds = %673, %646
  %663 = load i32, ptr %23, align 4, !tbaa !5
  %664 = load i32, ptr %24, align 4, !tbaa !5
  %665 = add nsw i32 32, %664
  %666 = icmp slt i32 %663, %665
  br i1 %666, label %667, label %676

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

673:                                              ; preds = %667
  %674 = load i32, ptr %23, align 4, !tbaa !5
  %675 = add nsw i32 %674, 8
  store i32 %675, ptr %23, align 4, !tbaa !5
  br label %662, !llvm.loop !45

676:                                              ; preds = %662
  %677 = load i64, ptr %25, align 8, !tbaa !14
  %678 = load i32, ptr %24, align 4, !tbaa !5
  %679 = sub nsw i32 32, %678
  %680 = zext i32 %679 to i64
  %681 = lshr i64 %677, %680
  %682 = trunc i64 %681 to i32
  %683 = load ptr, ptr %21, align 8, !tbaa !15
  %684 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %683, i32 0, i32 3
  store i32 %682, ptr %684, align 1, !tbaa !46
  store i32 0, ptr %24, align 4, !tbaa !5
  store i64 0, ptr %25, align 8, !tbaa !14
  %685 = getelementptr inbounds i8, ptr %22, i64 11
  store ptr %685, ptr %26, align 8, !tbaa !15
  %686 = getelementptr inbounds i8, ptr %25, i64 7
  store ptr %686, ptr %27, align 8, !tbaa !15
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %687

687:                                              ; preds = %698, %676
  %688 = load i32, ptr %23, align 4, !tbaa !5
  %689 = load i32, ptr %24, align 4, !tbaa !5
  %690 = add nsw i32 24, %689
  %691 = icmp slt i32 %688, %690
  br i1 %691, label %692, label %701

692:                                              ; preds = %687
  %693 = load ptr, ptr %26, align 8, !tbaa !15
  %694 = getelementptr inbounds i8, ptr %693, i32 1
  store ptr %694, ptr %26, align 8, !tbaa !15
  %695 = load i8, ptr %693, align 1, !tbaa !17
  %696 = load ptr, ptr %27, align 8, !tbaa !15
  %697 = getelementptr inbounds i8, ptr %696, i32 -1
  store ptr %697, ptr %27, align 8, !tbaa !15
  store i8 %695, ptr %696, align 1, !tbaa !17
  br label %698

698:                                              ; preds = %692
  %699 = load i32, ptr %23, align 4, !tbaa !5
  %700 = add nsw i32 %699, 8
  store i32 %700, ptr %23, align 4, !tbaa !5
  br label %687, !llvm.loop !48

701:                                              ; preds = %687
  %702 = load i64, ptr %25, align 8, !tbaa !14
  %703 = load i32, ptr %24, align 4, !tbaa !5
  %704 = sub nsw i32 40, %703
  %705 = zext i32 %704 to i64
  %706 = lshr i64 %702, %705
  %707 = trunc i64 %706 to i32
  %708 = load ptr, ptr %21, align 8, !tbaa !15
  %709 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %708, i32 0, i32 4
  %710 = trunc i32 %707 to i24
  store i24 %710, ptr %709, align 1
  %711 = zext i24 %710 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 14, ptr %22) #8
  br label %715

712:                                              ; preds = %471
  %713 = load ptr, ptr %21, align 8, !tbaa !15
  %714 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %713, ptr align 1 %714, i64 14, i1 false)
  br label %715

715:                                              ; preds = %712, %701
  %716 = load ptr, ptr %21, align 8, !tbaa !15
  %717 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %716, i32 0, i32 2
  %718 = load i32, ptr %717, align 1
  %719 = and i32 %718, 524287
  %720 = zext i32 %719 to i64
  store i64 %720, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 2), align 8, !tbaa !49
  %721 = load ptr, ptr %21, align 8, !tbaa !15
  %722 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %721, i32 0, i32 2
  %723 = load i32, ptr %722, align 1
  %724 = lshr i32 %723, 19
  store i32 %724, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 8), align 4, !tbaa !50
  %725 = load ptr, ptr %21, align 8, !tbaa !15
  %726 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %725, i32 0, i32 4
  %727 = load i24, ptr %726, align 1
  %728 = zext i24 %727 to i32
  %729 = zext i32 %728 to i64
  store i64 %729, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 9), align 8, !tbaa !51
  %730 = load ptr, ptr %21, align 8, !tbaa !15
  %731 = getelementptr inbounds %struct.squashfs_dir_inode_header_1, ptr %730, i32 0, i32 3
  %732 = load i32, ptr %731, align 1, !tbaa !46
  %733 = zext i32 %732 to i64
  store i64 %733, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 11), align 8, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %1337

734:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  store ptr @read_inode_1.header, ptr %28, align 8, !tbaa !15
  %735 = load i32, ptr @swap, align 4, !tbaa !5
  %736 = icmp ne i32 %735, 0
  br i1 %736, label %737, label %939

737:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 15, ptr %29) #8
  %738 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %29, ptr align 1 %738, i64 15, 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
  %739 = load ptr, ptr %28, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %739, i8 0, i64 15, i1 false)
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %740 = getelementptr inbounds i8, ptr %29, i64 0
  store ptr %740, ptr %33, align 8, !tbaa !15
  %741 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %741, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %742

742:                                              ; preds = %753, %737
  %743 = load i32, ptr %30, align 4, !tbaa !5
  %744 = load i32, ptr %31, align 4, !tbaa !5
  %745 = add nsw i32 4, %744
  %746 = icmp slt i32 %743, %745
  br i1 %746, label %747, label %756

747:                                              ; preds = %742
  %748 = load ptr, ptr %33, align 8, !tbaa !15
  %749 = getelementptr inbounds i8, ptr %748, i32 1
  store ptr %749, ptr %33, align 8, !tbaa !15
  %750 = load i8, ptr %748, align 1, !tbaa !17
  %751 = load ptr, ptr %34, align 8, !tbaa !15
  %752 = getelementptr inbounds i8, ptr %751, i32 -1
  store ptr %752, ptr %34, align 8, !tbaa !15
  store i8 %750, ptr %751, align 1, !tbaa !17
  br label %753

753:                                              ; preds = %747
  %754 = load i32, ptr %30, align 4, !tbaa !5
  %755 = add nsw i32 %754, 8
  store i32 %755, ptr %30, align 4, !tbaa !5
  br label %742, !llvm.loop !52

756:                                              ; preds = %742
  %757 = load i64, ptr %32, align 8, !tbaa !14
  %758 = load i32, ptr %31, align 4, !tbaa !5
  %759 = sub nsw i32 60, %758
  %760 = zext i32 %759 to i64
  %761 = lshr i64 %757, %760
  %762 = trunc i64 %761 to i32
  %763 = load ptr, ptr %28, align 8, !tbaa !15
  %764 = trunc i32 %762 to i16
  %765 = load i16, ptr %763, align 1
  %766 = and i16 %764, 15
  %767 = and i16 %765, -16
  %768 = or i16 %767, %766
  store i16 %768, ptr %763, align 1
  %769 = zext i16 %766 to i32
  store i32 4, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %770 = getelementptr inbounds i8, ptr %29, i64 0
  store ptr %770, ptr %33, align 8, !tbaa !15
  %771 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %771, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %772

772:                                              ; preds = %783, %756
  %773 = load i32, ptr %30, align 4, !tbaa !5
  %774 = load i32, ptr %31, align 4, !tbaa !5
  %775 = add nsw i32 12, %774
  %776 = icmp slt i32 %773, %775
  br i1 %776, label %777, label %786

777:                                              ; preds = %772
  %778 = load ptr, ptr %33, align 8, !tbaa !15
  %779 = getelementptr inbounds i8, ptr %778, i32 1
  store ptr %779, ptr %33, align 8, !tbaa !15
  %780 = load i8, ptr %778, align 1, !tbaa !17
  %781 = load ptr, ptr %34, align 8, !tbaa !15
  %782 = getelementptr inbounds i8, ptr %781, i32 -1
  store ptr %782, ptr %34, align 8, !tbaa !15
  store i8 %780, ptr %781, align 1, !tbaa !17
  br label %783

783:                                              ; preds = %777
  %784 = load i32, ptr %30, align 4, !tbaa !5
  %785 = add nsw i32 %784, 8
  store i32 %785, ptr %30, align 4, !tbaa !5
  br label %772, !llvm.loop !53

786:                                              ; preds = %772
  %787 = load i64, ptr %32, align 8, !tbaa !14
  %788 = load i32, ptr %31, align 4, !tbaa !5
  %789 = sub nsw i32 52, %788
  %790 = zext i32 %789 to i64
  %791 = lshr i64 %787, %790
  %792 = trunc i64 %791 to i32
  %793 = load ptr, ptr %28, align 8, !tbaa !15
  %794 = trunc i32 %792 to i16
  %795 = load i16, ptr %793, align 1
  %796 = and i16 %794, 4095
  %797 = shl i16 %796, 4
  %798 = and i16 %795, 15
  %799 = or i16 %798, %797
  store i16 %799, ptr %793, align 1
  %800 = zext i16 %796 to i32
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %801 = getelementptr inbounds i8, ptr %29, i64 2
  store ptr %801, ptr %33, align 8, !tbaa !15
  %802 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %802, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %803

803:                                              ; preds = %814, %786
  %804 = load i32, ptr %30, align 4, !tbaa !5
  %805 = load i32, ptr %31, align 4, !tbaa !5
  %806 = add nsw i32 4, %805
  %807 = icmp slt i32 %804, %806
  br i1 %807, label %808, label %817

808:                                              ; preds = %803
  %809 = load ptr, ptr %33, align 8, !tbaa !15
  %810 = getelementptr inbounds i8, ptr %809, i32 1
  store ptr %810, ptr %33, align 8, !tbaa !15
  %811 = load i8, ptr %809, align 1, !tbaa !17
  %812 = load ptr, ptr %34, align 8, !tbaa !15
  %813 = getelementptr inbounds i8, ptr %812, i32 -1
  store ptr %813, ptr %34, align 8, !tbaa !15
  store i8 %811, ptr %812, align 1, !tbaa !17
  br label %814

814:                                              ; preds = %808
  %815 = load i32, ptr %30, align 4, !tbaa !5
  %816 = add nsw i32 %815, 8
  store i32 %816, ptr %30, align 4, !tbaa !5
  br label %803, !llvm.loop !54

817:                                              ; preds = %803
  %818 = load i64, ptr %32, align 8, !tbaa !14
  %819 = load i32, ptr %31, align 4, !tbaa !5
  %820 = sub nsw i32 60, %819
  %821 = zext i32 %820 to i64
  %822 = lshr i64 %818, %821
  %823 = trunc i64 %822 to i32
  %824 = load ptr, ptr %28, align 8, !tbaa !15
  %825 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %824, i32 0, i32 1
  %826 = trunc i32 %823 to i8
  %827 = load i8, ptr %825, align 1
  %828 = and i8 %826, 15
  %829 = and i8 %827, -16
  %830 = or i8 %829, %828
  store i8 %830, ptr %825, align 1
  %831 = zext i8 %828 to i32
  store i32 4, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %832 = getelementptr inbounds i8, ptr %29, i64 2
  store ptr %832, ptr %33, align 8, !tbaa !15
  %833 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %833, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %834

834:                                              ; preds = %845, %817
  %835 = load i32, ptr %30, align 4, !tbaa !5
  %836 = load i32, ptr %31, align 4, !tbaa !5
  %837 = add nsw i32 4, %836
  %838 = icmp slt i32 %835, %837
  br i1 %838, label %839, label %848

839:                                              ; preds = %834
  %840 = load ptr, ptr %33, align 8, !tbaa !15
  %841 = getelementptr inbounds i8, ptr %840, i32 1
  store ptr %841, ptr %33, align 8, !tbaa !15
  %842 = load i8, ptr %840, align 1, !tbaa !17
  %843 = load ptr, ptr %34, align 8, !tbaa !15
  %844 = getelementptr inbounds i8, ptr %843, i32 -1
  store ptr %844, ptr %34, align 8, !tbaa !15
  store i8 %842, ptr %843, align 1, !tbaa !17
  br label %845

845:                                              ; preds = %839
  %846 = load i32, ptr %30, align 4, !tbaa !5
  %847 = add nsw i32 %846, 8
  store i32 %847, ptr %30, align 4, !tbaa !5
  br label %834, !llvm.loop !55

848:                                              ; preds = %834
  %849 = load i64, ptr %32, align 8, !tbaa !14
  %850 = load i32, ptr %31, align 4, !tbaa !5
  %851 = sub nsw i32 60, %850
  %852 = zext i32 %851 to i64
  %853 = lshr i64 %849, %852
  %854 = trunc i64 %853 to i32
  %855 = load ptr, ptr %28, align 8, !tbaa !15
  %856 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %855, i32 0, i32 1
  %857 = trunc i32 %854 to i8
  %858 = load i8, ptr %856, align 1
  %859 = and i8 %857, 15
  %860 = shl i8 %859, 4
  %861 = and i8 %858, 15
  %862 = or i8 %861, %860
  store i8 %862, ptr %856, align 1
  %863 = zext i8 %859 to i32
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %864 = getelementptr inbounds i8, ptr %29, i64 3
  store ptr %864, ptr %33, align 8, !tbaa !15
  %865 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %865, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %866

866:                                              ; preds = %877, %848
  %867 = load i32, ptr %30, align 4, !tbaa !5
  %868 = load i32, ptr %31, align 4, !tbaa !5
  %869 = add nsw i32 32, %868
  %870 = icmp slt i32 %867, %869
  br i1 %870, label %871, label %880

871:                                              ; preds = %866
  %872 = load ptr, ptr %33, align 8, !tbaa !15
  %873 = getelementptr inbounds i8, ptr %872, i32 1
  store ptr %873, ptr %33, align 8, !tbaa !15
  %874 = load i8, ptr %872, align 1, !tbaa !17
  %875 = load ptr, ptr %34, align 8, !tbaa !15
  %876 = getelementptr inbounds i8, ptr %875, i32 -1
  store ptr %876, ptr %34, align 8, !tbaa !15
  store i8 %874, ptr %875, align 1, !tbaa !17
  br label %877

877:                                              ; preds = %871
  %878 = load i32, ptr %30, align 4, !tbaa !5
  %879 = add nsw i32 %878, 8
  store i32 %879, ptr %30, align 4, !tbaa !5
  br label %866, !llvm.loop !56

880:                                              ; preds = %866
  %881 = load i64, ptr %32, align 8, !tbaa !14
  %882 = load i32, ptr %31, align 4, !tbaa !5
  %883 = sub nsw i32 32, %882
  %884 = zext i32 %883 to i64
  %885 = lshr i64 %881, %884
  %886 = trunc i64 %885 to i32
  %887 = load ptr, ptr %28, align 8, !tbaa !15
  %888 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %887, i32 0, i32 2
  store i32 %886, ptr %888, align 1, !tbaa !57
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %889 = getelementptr inbounds i8, ptr %29, i64 7
  store ptr %889, ptr %33, align 8, !tbaa !15
  %890 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %890, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %891

891:                                              ; preds = %902, %880
  %892 = load i32, ptr %30, align 4, !tbaa !5
  %893 = load i32, ptr %31, align 4, !tbaa !5
  %894 = add nsw i32 32, %893
  %895 = icmp slt i32 %892, %894
  br i1 %895, label %896, label %905

896:                                              ; preds = %891
  %897 = load ptr, ptr %33, align 8, !tbaa !15
  %898 = getelementptr inbounds i8, ptr %897, i32 1
  store ptr %898, ptr %33, align 8, !tbaa !15
  %899 = load i8, ptr %897, align 1, !tbaa !17
  %900 = load ptr, ptr %34, align 8, !tbaa !15
  %901 = getelementptr inbounds i8, ptr %900, i32 -1
  store ptr %901, ptr %34, align 8, !tbaa !15
  store i8 %899, ptr %900, align 1, !tbaa !17
  br label %902

902:                                              ; preds = %896
  %903 = load i32, ptr %30, align 4, !tbaa !5
  %904 = add nsw i32 %903, 8
  store i32 %904, ptr %30, align 4, !tbaa !5
  br label %891, !llvm.loop !59

905:                                              ; preds = %891
  %906 = load i64, ptr %32, align 8, !tbaa !14
  %907 = load i32, ptr %31, align 4, !tbaa !5
  %908 = sub nsw i32 32, %907
  %909 = zext i32 %908 to i64
  %910 = lshr i64 %906, %909
  %911 = trunc i64 %910 to i32
  %912 = load ptr, ptr %28, align 8, !tbaa !15
  %913 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %912, i32 0, i32 3
  store i32 %911, ptr %913, align 1, !tbaa !60
  store i32 0, ptr %31, align 4, !tbaa !5
  store i64 0, ptr %32, align 8, !tbaa !14
  %914 = getelementptr inbounds i8, ptr %29, i64 11
  store ptr %914, ptr %33, align 8, !tbaa !15
  %915 = getelementptr inbounds i8, ptr %32, i64 7
  store ptr %915, ptr %34, align 8, !tbaa !15
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %916

916:                                              ; preds = %927, %905
  %917 = load i32, ptr %30, align 4, !tbaa !5
  %918 = load i32, ptr %31, align 4, !tbaa !5
  %919 = add nsw i32 32, %918
  %920 = icmp slt i32 %917, %919
  br i1 %920, label %921, label %930

921:                                              ; preds = %916
  %922 = load ptr, ptr %33, align 8, !tbaa !15
  %923 = getelementptr inbounds i8, ptr %922, i32 1
  store ptr %923, ptr %33, align 8, !tbaa !15
  %924 = load i8, ptr %922, align 1, !tbaa !17
  %925 = load ptr, ptr %34, align 8, !tbaa !15
  %926 = getelementptr inbounds i8, ptr %925, i32 -1
  store ptr %926, ptr %34, align 8, !tbaa !15
  store i8 %924, ptr %925, align 1, !tbaa !17
  br label %927

927:                                              ; preds = %921
  %928 = load i32, ptr %30, align 4, !tbaa !5
  %929 = add nsw i32 %928, 8
  store i32 %929, ptr %30, align 4, !tbaa !5
  br label %916, !llvm.loop !61

930:                                              ; preds = %916
  %931 = load i64, ptr %32, align 8, !tbaa !14
  %932 = load i32, ptr %31, align 4, !tbaa !5
  %933 = sub nsw i32 32, %932
  %934 = zext i32 %933 to i64
  %935 = lshr i64 %931, %934
  %936 = trunc i64 %935 to i32
  %937 = load ptr, ptr %28, align 8, !tbaa !15
  %938 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %937, i32 0, i32 4
  store i32 %936, ptr %938, 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 15, ptr %29) #8
  br label %942

939:                                              ; preds = %734
  %940 = load ptr, ptr %28, align 8, !tbaa !15
  %941 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %940, ptr align 1 %941, i64 15, i1 false)
  br label %942

942:                                              ; preds = %939, %930
  %943 = load ptr, ptr %28, align 8, !tbaa !15
  %944 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %943, i32 0, i32 4
  %945 = load i32, ptr %944, align 1
  %946 = zext i32 %945 to i64
  store i64 %946, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 2), align 8, !tbaa !49
  %947 = load ptr, ptr %28, align 8, !tbaa !15
  %948 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %947, i32 0, i32 2
  %949 = load i32, ptr %948, align 1, !tbaa !57
  %950 = zext i32 %949 to i64
  store i64 %950, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 11), align 8, !tbaa !37
  %951 = load i64, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 2), align 8, !tbaa !49
  %952 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !62
  %953 = zext i32 %952 to i64
  %954 = add nsw i64 %951, %953
  %955 = sub nsw i64 %954, 1
  %956 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !63
  %957 = zext i16 %956 to i32
  %958 = zext i32 %957 to i64
  %959 = ashr i64 %955, %958
  %960 = trunc i64 %959 to i32
  store i32 %960, ptr @read_inode_1.i, align 8, !tbaa !64
  %961 = load ptr, ptr %28, align 8, !tbaa !15
  %962 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %961, i32 0, i32 3
  %963 = load i32, ptr %962, align 1, !tbaa !60
  %964 = zext i32 %963 to i64
  store i64 %964, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 9), align 8, !tbaa !51
  %965 = load ptr, ptr %7, align 8, !tbaa !15
  %966 = getelementptr inbounds i8, ptr %965, i64 15
  store ptr %966, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 1), align 8, !tbaa !65
  store i32 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 3), align 8, !tbaa !66
  store i32 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 4), align 4, !tbaa !67
  store i32 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 8), align 4, !tbaa !50
  store i8 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 14), align 8, !tbaa !68
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %1337

967:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store ptr @read_inode_1.header, ptr %35, align 8, !tbaa !15
  %968 = load i32, ptr @swap, align 4, !tbaa !5
  %969 = icmp ne i32 %968, 0
  br i1 %969, label %970, label %1122

970:                                              ; preds = %967
  call void @llvm.lifetime.start.p0(i64 5, ptr %36) #8
  %971 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %36, ptr align 1 %971, i64 5, 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
  %972 = load ptr, ptr %35, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %972, i8 0, i64 5, i1 false)
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %973 = getelementptr inbounds i8, ptr %36, i64 0
  store ptr %973, ptr %40, align 8, !tbaa !15
  %974 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %974, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %975

975:                                              ; preds = %986, %970
  %976 = load i32, ptr %37, align 4, !tbaa !5
  %977 = load i32, ptr %38, align 4, !tbaa !5
  %978 = add nsw i32 4, %977
  %979 = icmp slt i32 %976, %978
  br i1 %979, label %980, label %989

980:                                              ; preds = %975
  %981 = load ptr, ptr %40, align 8, !tbaa !15
  %982 = getelementptr inbounds i8, ptr %981, i32 1
  store ptr %982, ptr %40, align 8, !tbaa !15
  %983 = load i8, ptr %981, align 1, !tbaa !17
  %984 = load ptr, ptr %41, align 8, !tbaa !15
  %985 = getelementptr inbounds i8, ptr %984, i32 -1
  store ptr %985, ptr %41, align 8, !tbaa !15
  store i8 %983, ptr %984, align 1, !tbaa !17
  br label %986

986:                                              ; preds = %980
  %987 = load i32, ptr %37, align 4, !tbaa !5
  %988 = add nsw i32 %987, 8
  store i32 %988, ptr %37, align 4, !tbaa !5
  br label %975, !llvm.loop !69

989:                                              ; preds = %975
  %990 = load i64, ptr %39, align 8, !tbaa !14
  %991 = load i32, ptr %38, align 4, !tbaa !5
  %992 = sub nsw i32 60, %991
  %993 = zext i32 %992 to i64
  %994 = lshr i64 %990, %993
  %995 = trunc i64 %994 to i32
  %996 = load ptr, ptr %35, align 8, !tbaa !15
  %997 = trunc i32 %995 to i16
  %998 = load i16, ptr %996, align 1
  %999 = and i16 %997, 15
  %1000 = and i16 %998, -16
  %1001 = or i16 %1000, %999
  store i16 %1001, ptr %996, align 1
  %1002 = zext i16 %999 to i32
  store i32 4, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1003 = getelementptr inbounds i8, ptr %36, i64 0
  store ptr %1003, ptr %40, align 8, !tbaa !15
  %1004 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1004, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1005

1005:                                             ; preds = %1016, %989
  %1006 = load i32, ptr %37, align 4, !tbaa !5
  %1007 = load i32, ptr %38, align 4, !tbaa !5
  %1008 = add nsw i32 12, %1007
  %1009 = icmp slt i32 %1006, %1008
  br i1 %1009, label %1010, label %1019

1010:                                             ; preds = %1005
  %1011 = load ptr, ptr %40, align 8, !tbaa !15
  %1012 = getelementptr inbounds i8, ptr %1011, i32 1
  store ptr %1012, ptr %40, align 8, !tbaa !15
  %1013 = load i8, ptr %1011, align 1, !tbaa !17
  %1014 = load ptr, ptr %41, align 8, !tbaa !15
  %1015 = getelementptr inbounds i8, ptr %1014, i32 -1
  store ptr %1015, ptr %41, align 8, !tbaa !15
  store i8 %1013, ptr %1014, align 1, !tbaa !17
  br label %1016

1016:                                             ; preds = %1010
  %1017 = load i32, ptr %37, align 4, !tbaa !5
  %1018 = add nsw i32 %1017, 8
  store i32 %1018, ptr %37, align 4, !tbaa !5
  br label %1005, !llvm.loop !70

1019:                                             ; preds = %1005
  %1020 = load i64, ptr %39, align 8, !tbaa !14
  %1021 = load i32, ptr %38, align 4, !tbaa !5
  %1022 = sub nsw i32 52, %1021
  %1023 = zext i32 %1022 to i64
  %1024 = lshr i64 %1020, %1023
  %1025 = trunc i64 %1024 to i32
  %1026 = load ptr, ptr %35, align 8, !tbaa !15
  %1027 = trunc i32 %1025 to i16
  %1028 = load i16, ptr %1026, align 1
  %1029 = and i16 %1027, 4095
  %1030 = shl i16 %1029, 4
  %1031 = and i16 %1028, 15
  %1032 = or i16 %1031, %1030
  store i16 %1032, ptr %1026, align 1
  %1033 = zext i16 %1029 to i32
  store i32 0, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1034 = getelementptr inbounds i8, ptr %36, i64 2
  store ptr %1034, ptr %40, align 8, !tbaa !15
  %1035 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1035, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1036

1036:                                             ; preds = %1047, %1019
  %1037 = load i32, ptr %37, align 4, !tbaa !5
  %1038 = load i32, ptr %38, align 4, !tbaa !5
  %1039 = add nsw i32 4, %1038
  %1040 = icmp slt i32 %1037, %1039
  br i1 %1040, label %1041, label %1050

1041:                                             ; preds = %1036
  %1042 = load ptr, ptr %40, align 8, !tbaa !15
  %1043 = getelementptr inbounds i8, ptr %1042, i32 1
  store ptr %1043, ptr %40, align 8, !tbaa !15
  %1044 = load i8, ptr %1042, align 1, !tbaa !17
  %1045 = load ptr, ptr %41, align 8, !tbaa !15
  %1046 = getelementptr inbounds i8, ptr %1045, i32 -1
  store ptr %1046, ptr %41, align 8, !tbaa !15
  store i8 %1044, ptr %1045, align 1, !tbaa !17
  br label %1047

1047:                                             ; preds = %1041
  %1048 = load i32, ptr %37, align 4, !tbaa !5
  %1049 = add nsw i32 %1048, 8
  store i32 %1049, ptr %37, align 4, !tbaa !5
  br label %1036, !llvm.loop !71

1050:                                             ; preds = %1036
  %1051 = load i64, ptr %39, align 8, !tbaa !14
  %1052 = load i32, ptr %38, align 4, !tbaa !5
  %1053 = sub nsw i32 60, %1052
  %1054 = zext i32 %1053 to i64
  %1055 = lshr i64 %1051, %1054
  %1056 = trunc i64 %1055 to i32
  %1057 = load ptr, ptr %35, align 8, !tbaa !15
  %1058 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1057, i32 0, i32 1
  %1059 = trunc i32 %1056 to i8
  %1060 = load i8, ptr %1058, align 1
  %1061 = and i8 %1059, 15
  %1062 = and i8 %1060, -16
  %1063 = or i8 %1062, %1061
  store i8 %1063, ptr %1058, align 1
  %1064 = zext i8 %1061 to i32
  store i32 4, ptr %38, align 4, !tbaa !5
  store i64 0, ptr %39, align 8, !tbaa !14
  %1065 = getelementptr inbounds i8, ptr %36, i64 2
  store ptr %1065, ptr %40, align 8, !tbaa !15
  %1066 = getelementptr inbounds i8, ptr %39, i64 7
  store ptr %1066, ptr %41, align 8, !tbaa !15
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1067

1067:                                             ; preds = %1078, %1050
  %1068 = load i32, ptr %37, align 4, !tbaa !5
  %1069 = load i32, ptr %38, align 4, !tbaa !5
  %1070 = add nsw i32 4, %1069
  %1071 = icmp slt i32 %1068, %1070
  br i1 %1071, label %1072, label %1081

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

1078:                                             ; preds = %1072
  %1079 = load i32, ptr %37, align 4, !tbaa !5
  %1080 = add nsw i32 %1079, 8
  store i32 %1080, ptr %37, align 4, !tbaa !5
  br label %1067, !llvm.loop !72

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

1099:                                             ; preds = %1110, %1081
  %1100 = load i32, ptr %37, align 4, !tbaa !5
  %1101 = load i32, ptr %38, align 4, !tbaa !5
  %1102 = add nsw i32 16, %1101
  %1103 = icmp slt i32 %1100, %1102
  br i1 %1103, label %1104, label %1113

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

1110:                                             ; preds = %1104
  %1111 = load i32, ptr %37, align 4, !tbaa !5
  %1112 = add nsw i32 %1111, 8
  store i32 %1112, ptr %37, align 4, !tbaa !5
  br label %1099, !llvm.loop !73

1113:                                             ; preds = %1099
  %1114 = load i64, ptr %39, align 8, !tbaa !14
  %1115 = load i32, ptr %38, align 4, !tbaa !5
  %1116 = sub nsw i32 48, %1115
  %1117 = zext i32 %1116 to i64
  %1118 = lshr i64 %1114, %1117
  %1119 = trunc i64 %1118 to i16
  %1120 = load ptr, ptr %35, align 8, !tbaa !15
  %1121 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1120, i32 0, i32 2
  store i16 %1119, ptr %1121, align 1, !tbaa !74
  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 5, ptr %36) #8
  br label %1125

1122:                                             ; preds = %967
  %1123 = load ptr, ptr %35, align 8, !tbaa !15
  %1124 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1123, ptr align 1 %1124, i64 5, i1 false)
  br label %1125

1125:                                             ; preds = %1122, %1113
  %1126 = load ptr, ptr %35, align 8, !tbaa !15
  %1127 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1126, i32 0, i32 2
  %1128 = load i16, ptr %1127, align 1, !tbaa !74
  %1129 = zext i16 %1128 to i32
  %1130 = add nsw i32 %1129, 1
  %1131 = sext i32 %1130 to i64
  %1132 = call noalias ptr @malloc(i64 noundef %1131) #10
  store ptr %1132, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 10), align 8, !tbaa !76
  %1133 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 10), align 8, !tbaa !76
  %1134 = icmp eq ptr %1133, null
  br i1 %1134, label %1135, label %1143

1135:                                             ; preds = %1125
  br label %1136

1136:                                             ; preds = %1135
  %1137 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef @.str.1) #8
  %1140 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

1141:                                             ; No predecessors!
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142, %1125
  %1144 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 10), align 8, !tbaa !76
  %1145 = load ptr, ptr %7, align 8, !tbaa !15
  %1146 = getelementptr inbounds i8, ptr %1145, i64 5
  %1147 = load ptr, ptr %35, align 8, !tbaa !15
  %1148 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1147, i32 0, i32 2
  %1149 = load i16, ptr %1148, align 1, !tbaa !74
  %1150 = zext i16 %1149 to i64
  %1151 = call ptr @strncpy(ptr noundef %1144, ptr noundef %1146, i64 noundef %1150) #8
  %1152 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 10), align 8, !tbaa !76
  %1153 = load ptr, ptr %35, align 8, !tbaa !15
  %1154 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1153, i32 0, i32 2
  %1155 = load i16, ptr %1154, align 1, !tbaa !74
  %1156 = zext i16 %1155 to i64
  %1157 = getelementptr inbounds i8, ptr %1152, i64 %1156
  store i8 0, ptr %1157, align 1, !tbaa !17
  %1158 = load ptr, ptr %35, align 8, !tbaa !15
  %1159 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1158, i32 0, i32 2
  %1160 = load i16, ptr %1159, align 1, !tbaa !74
  %1161 = zext i16 %1160 to i64
  store i64 %1161, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 2), align 8, !tbaa !49
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %1337

1162:                                             ; preds = %464, %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store ptr @read_inode_1.header, ptr %42, align 8, !tbaa !15
  %1163 = load i32, ptr @swap, align 4, !tbaa !5
  %1164 = icmp ne i32 %1163, 0
  br i1 %1164, label %1165, label %1317

1165:                                             ; preds = %1162
  call void @llvm.lifetime.start.p0(i64 5, ptr %43) #8
  %1166 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %43, ptr align 1 %1166, i64 5, 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
  %1167 = load ptr, ptr %42, align 8, !tbaa !15
  call void @llvm.memset.p0.i64(ptr align 1 %1167, i8 0, i64 5, i1 false)
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1168 = getelementptr inbounds i8, ptr %43, i64 0
  store ptr %1168, ptr %47, align 8, !tbaa !15
  %1169 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1169, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1170

1170:                                             ; preds = %1181, %1165
  %1171 = load i32, ptr %44, align 4, !tbaa !5
  %1172 = load i32, ptr %45, align 4, !tbaa !5
  %1173 = add nsw i32 4, %1172
  %1174 = icmp slt i32 %1171, %1173
  br i1 %1174, label %1175, label %1184

1175:                                             ; preds = %1170
  %1176 = load ptr, ptr %47, align 8, !tbaa !15
  %1177 = getelementptr inbounds i8, ptr %1176, i32 1
  store ptr %1177, ptr %47, align 8, !tbaa !15
  %1178 = load i8, ptr %1176, align 1, !tbaa !17
  %1179 = load ptr, ptr %48, align 8, !tbaa !15
  %1180 = getelementptr inbounds i8, ptr %1179, i32 -1
  store ptr %1180, ptr %48, align 8, !tbaa !15
  store i8 %1178, ptr %1179, align 1, !tbaa !17
  br label %1181

1181:                                             ; preds = %1175
  %1182 = load i32, ptr %44, align 4, !tbaa !5
  %1183 = add nsw i32 %1182, 8
  store i32 %1183, ptr %44, align 4, !tbaa !5
  br label %1170, !llvm.loop !77

1184:                                             ; preds = %1170
  %1185 = load i64, ptr %46, align 8, !tbaa !14
  %1186 = load i32, ptr %45, align 4, !tbaa !5
  %1187 = sub nsw i32 60, %1186
  %1188 = zext i32 %1187 to i64
  %1189 = lshr i64 %1185, %1188
  %1190 = trunc i64 %1189 to i32
  %1191 = load ptr, ptr %42, align 8, !tbaa !15
  %1192 = trunc i32 %1190 to i16
  %1193 = load i16, ptr %1191, align 1
  %1194 = and i16 %1192, 15
  %1195 = and i16 %1193, -16
  %1196 = or i16 %1195, %1194
  store i16 %1196, ptr %1191, align 1
  %1197 = zext i16 %1194 to i32
  store i32 4, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1198 = getelementptr inbounds i8, ptr %43, i64 0
  store ptr %1198, ptr %47, align 8, !tbaa !15
  %1199 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1199, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1200

1200:                                             ; preds = %1211, %1184
  %1201 = load i32, ptr %44, align 4, !tbaa !5
  %1202 = load i32, ptr %45, align 4, !tbaa !5
  %1203 = add nsw i32 12, %1202
  %1204 = icmp slt i32 %1201, %1203
  br i1 %1204, label %1205, label %1214

1205:                                             ; preds = %1200
  %1206 = load ptr, ptr %47, align 8, !tbaa !15
  %1207 = getelementptr inbounds i8, ptr %1206, i32 1
  store ptr %1207, ptr %47, align 8, !tbaa !15
  %1208 = load i8, ptr %1206, align 1, !tbaa !17
  %1209 = load ptr, ptr %48, align 8, !tbaa !15
  %1210 = getelementptr inbounds i8, ptr %1209, i32 -1
  store ptr %1210, ptr %48, align 8, !tbaa !15
  store i8 %1208, ptr %1209, align 1, !tbaa !17
  br label %1211

1211:                                             ; preds = %1205
  %1212 = load i32, ptr %44, align 4, !tbaa !5
  %1213 = add nsw i32 %1212, 8
  store i32 %1213, ptr %44, align 4, !tbaa !5
  br label %1200, !llvm.loop !78

1214:                                             ; preds = %1200
  %1215 = load i64, ptr %46, align 8, !tbaa !14
  %1216 = load i32, ptr %45, align 4, !tbaa !5
  %1217 = sub nsw i32 52, %1216
  %1218 = zext i32 %1217 to i64
  %1219 = lshr i64 %1215, %1218
  %1220 = trunc i64 %1219 to i32
  %1221 = load ptr, ptr %42, align 8, !tbaa !15
  %1222 = trunc i32 %1220 to i16
  %1223 = load i16, ptr %1221, align 1
  %1224 = and i16 %1222, 4095
  %1225 = shl i16 %1224, 4
  %1226 = and i16 %1223, 15
  %1227 = or i16 %1226, %1225
  store i16 %1227, ptr %1221, align 1
  %1228 = zext i16 %1224 to i32
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1229 = getelementptr inbounds i8, ptr %43, i64 2
  store ptr %1229, ptr %47, align 8, !tbaa !15
  %1230 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1230, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1231

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

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

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

1245:                                             ; preds = %1231
  %1246 = load i64, ptr %46, align 8, !tbaa !14
  %1247 = load i32, ptr %45, align 4, !tbaa !5
  %1248 = sub nsw i32 60, %1247
  %1249 = zext i32 %1248 to i64
  %1250 = lshr i64 %1246, %1249
  %1251 = trunc i64 %1250 to i32
  %1252 = load ptr, ptr %42, align 8, !tbaa !15
  %1253 = getelementptr inbounds %struct.squashfs_dev_inode_header_1, ptr %1252, i32 0, i32 1
  %1254 = trunc i32 %1251 to i8
  %1255 = load i8, ptr %1253, align 1
  %1256 = and i8 %1254, 15
  %1257 = and i8 %1255, -16
  %1258 = or i8 %1257, %1256
  store i8 %1258, ptr %1253, align 1
  %1259 = zext i8 %1256 to i32
  store i32 4, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1260 = getelementptr inbounds i8, ptr %43, i64 2
  store ptr %1260, ptr %47, align 8, !tbaa !15
  %1261 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1261, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1262

1262:                                             ; preds = %1273, %1245
  %1263 = load i32, ptr %44, align 4, !tbaa !5
  %1264 = load i32, ptr %45, align 4, !tbaa !5
  %1265 = add nsw i32 4, %1264
  %1266 = icmp slt i32 %1263, %1265
  br i1 %1266, label %1267, label %1276

1267:                                             ; preds = %1262
  %1268 = load ptr, ptr %47, align 8, !tbaa !15
  %1269 = getelementptr inbounds i8, ptr %1268, i32 1
  store ptr %1269, ptr %47, align 8, !tbaa !15
  %1270 = load i8, ptr %1268, align 1, !tbaa !17
  %1271 = load ptr, ptr %48, align 8, !tbaa !15
  %1272 = getelementptr inbounds i8, ptr %1271, i32 -1
  store ptr %1272, ptr %48, align 8, !tbaa !15
  store i8 %1270, ptr %1271, align 1, !tbaa !17
  br label %1273

1273:                                             ; preds = %1267
  %1274 = load i32, ptr %44, align 4, !tbaa !5
  %1275 = add nsw i32 %1274, 8
  store i32 %1275, ptr %44, align 4, !tbaa !5
  br label %1262, !llvm.loop !80

1276:                                             ; preds = %1262
  %1277 = load i64, ptr %46, align 8, !tbaa !14
  %1278 = load i32, ptr %45, align 4, !tbaa !5
  %1279 = sub nsw i32 60, %1278
  %1280 = zext i32 %1279 to i64
  %1281 = lshr i64 %1277, %1280
  %1282 = trunc i64 %1281 to i32
  %1283 = load ptr, ptr %42, align 8, !tbaa !15
  %1284 = getelementptr inbounds %struct.squashfs_dev_inode_header_1, ptr %1283, i32 0, i32 1
  %1285 = trunc i32 %1282 to i8
  %1286 = load i8, ptr %1284, align 1
  %1287 = and i8 %1285, 15
  %1288 = shl i8 %1287, 4
  %1289 = and i8 %1286, 15
  %1290 = or i8 %1289, %1288
  store i8 %1290, ptr %1284, align 1
  %1291 = zext i8 %1287 to i32
  store i32 0, ptr %45, align 4, !tbaa !5
  store i64 0, ptr %46, align 8, !tbaa !14
  %1292 = getelementptr inbounds i8, ptr %43, i64 3
  store ptr %1292, ptr %47, align 8, !tbaa !15
  %1293 = getelementptr inbounds i8, ptr %46, i64 7
  store ptr %1293, ptr %48, align 8, !tbaa !15
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1294

1294:                                             ; preds = %1305, %1276
  %1295 = load i32, ptr %44, align 4, !tbaa !5
  %1296 = load i32, ptr %45, align 4, !tbaa !5
  %1297 = add nsw i32 16, %1296
  %1298 = icmp slt i32 %1295, %1297
  br i1 %1298, label %1299, label %1308

1299:                                             ; preds = %1294
  %1300 = load ptr, ptr %47, align 8, !tbaa !15
  %1301 = getelementptr inbounds i8, ptr %1300, i32 1
  store ptr %1301, ptr %47, align 8, !tbaa !15
  %1302 = load i8, ptr %1300, align 1, !tbaa !17
  %1303 = load ptr, ptr %48, align 8, !tbaa !15
  %1304 = getelementptr inbounds i8, ptr %1303, i32 -1
  store ptr %1304, ptr %48, align 8, !tbaa !15
  store i8 %1302, ptr %1303, align 1, !tbaa !17
  br label %1305

1305:                                             ; preds = %1299
  %1306 = load i32, ptr %44, align 4, !tbaa !5
  %1307 = add nsw i32 %1306, 8
  store i32 %1307, ptr %44, align 4, !tbaa !5
  br label %1294, !llvm.loop !81

1308:                                             ; preds = %1294
  %1309 = load i64, ptr %46, align 8, !tbaa !14
  %1310 = load i32, ptr %45, align 4, !tbaa !5
  %1311 = sub nsw i32 48, %1310
  %1312 = zext i32 %1311 to i64
  %1313 = lshr i64 %1309, %1312
  %1314 = trunc i64 %1313 to i16
  %1315 = load ptr, ptr %42, align 8, !tbaa !15
  %1316 = getelementptr inbounds %struct.squashfs_dev_inode_header_1, ptr %1315, i32 0, i32 2
  store i16 %1314, ptr %1316, align 1, !tbaa !82
  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 5, ptr %43) #8
  br label %1320

1317:                                             ; preds = %1162
  %1318 = load ptr, ptr %42, align 8, !tbaa !15
  %1319 = load ptr, ptr %7, align 8, !tbaa !15
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1318, ptr align 1 %1319, i64 5, i1 false)
  br label %1320

1320:                                             ; preds = %1317, %1308
  %1321 = load ptr, ptr %42, align 8, !tbaa !15
  %1322 = getelementptr inbounds %struct.squashfs_dev_inode_header_1, ptr %1321, i32 0, i32 2
  %1323 = load i16, ptr %1322, align 1, !tbaa !82
  %1324 = zext i16 %1323 to i64
  store i64 %1324, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 2), align 8, !tbaa !49
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %1337

1325:                                             ; preds = %464, %464
  store i64 0, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 2), align 8, !tbaa !49
  br label %1337

1326:                                             ; preds = %464
  br label %1327

1327:                                             ; preds = %1326
  %1328 = call i32 @pthread_mutex_lock(ptr noundef @screen_mutex) #8
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1330 = load i16, ptr @read_inode_1.header, align 1
  %1331 = and i16 %1330, 15
  %1332 = zext i16 %1331 to i32
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1329, ptr noundef @.str.2, i32 noundef %1332) #8
  %1334 = call i32 @pthread_mutex_unlock(ptr noundef @screen_mutex) #8
  call void @exit(i32 noundef 1) #9
  unreachable

1335:                                             ; No predecessors!
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336, %1325, %1320, %1143, %942, %715
  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_1.i
}

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { 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 #4 = { "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 "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 = { 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 #7 = { 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 #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 76}
!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 = distinct !{!26, !19}
!27 = distinct !{!27, !19}
!28 = distinct !{!28, !19}
!29 = distinct !{!29, !19}
!30 = distinct !{!30, !19}
!31 = distinct !{!31, !19}
!32 = !{!24, !6, i64 40}
!33 = !{!24, !6, i64 72}
!34 = !{!24, !6, i64 84}
!35 = !{!24, !6, i64 32}
!36 = !{!10, !6, i64 8}
!37 = !{!24, !25, i64 64}
!38 = !{!24, !6, i64 36}
!39 = distinct !{!39, !19}
!40 = distinct !{!40, !19}
!41 = distinct !{!41, !19}
!42 = distinct !{!42, !19}
!43 = distinct !{!43, !19}
!44 = distinct !{!44, !19}
!45 = distinct !{!45, !19}
!46 = !{!47, !6, i64 7}
!47 = !{!"squashfs_dir_inode_header_1", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 2, !6, i64 3, !6, i64 5, !6, i64 7, !6, i64 11}
!48 = distinct !{!48, !19}
!49 = !{!24, !13, i64 16}
!50 = !{!24, !6, i64 44}
!51 = !{!24, !13, i64 48}
!52 = distinct !{!52, !19}
!53 = distinct !{!53, !19}
!54 = distinct !{!54, !19}
!55 = distinct !{!55, !19}
!56 = distinct !{!56, !19}
!57 = !{!58, !6, i64 3}
!58 = !{!"squashfs_reg_inode_header_1", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 2, !6, i64 3, !6, i64 7, !6, i64 11, !7, i64 15}
!59 = distinct !{!59, !19}
!60 = !{!58, !6, i64 7}
!61 = distinct !{!61, !19}
!62 = !{!10, !6, i64 12}
!63 = !{!10, !12, i64 22}
!64 = !{!24, !6, i64 0}
!65 = !{!24, !16, i64 8}
!66 = !{!24, !6, i64 24}
!67 = !{!24, !6, i64 28}
!68 = !{!24, !7, i64 80}
!69 = distinct !{!69, !19}
!70 = distinct !{!70, !19}
!71 = distinct !{!71, !19}
!72 = distinct !{!72, !19}
!73 = distinct !{!73, !19}
!74 = !{!75, !12, i64 3}
!75 = !{!"squashfs_symlink_inode_header_1", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 2, !12, i64 3, !7, i64 5}
!76 = !{!24, !16, i64 56}
!77 = distinct !{!77, !19}
!78 = distinct !{!78, !19}
!79 = distinct !{!79, !19}
!80 = distinct !{!80, !19}
!81 = distinct !{!81, !19}
!82 = !{!83, !12, i64 3}
!83 = !{!"squashfs_dev_inode_header_1", !6, i64 0, !6, i64 0, !6, i64 2, !6, i64 2, !12, i64 3}


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

%union.squashfs_inode_header_1 = type <{ %struct.squashfs_ipc_inode_header_1, [11 x i8] }>
%struct.squashfs_ipc_inode_header_1 = type { i32 }
%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 }
%struct.inode = type { i32, ptr, i64, i32, i32, i32, i32, i32, i32, i64, ptr, i64, i32, i32, i8, i32 }
%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 }

@swap = external local_unnamed_addr global i32, align 4
@read_inode_1.header = external hidden local_unnamed_addr global %union.squashfs_inode_header_1, align 1
@sBlk = external local_unnamed_addr global %struct.super_block, align 8
@inode_table_hash = external global [65536 x ptr], align 16
@inode_table = external local_unnamed_addr global ptr, align 8
@read_inode_1.i = external hidden global %struct.inode, align 8
@screen_mutex = external global %union.pthread_mutex_t, align 8
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [68 x i8], align 1
@uid_table = external local_unnamed_addr global ptr, align 8
@lookup_type = external local_unnamed_addr global [0 x i32], align 4
@guid_table = external local_unnamed_addr global ptr, align 8
@inode_number = external local_unnamed_addr global i32, align 4
@.str.1 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [70 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: nounwind uwtable
define dso_local noundef nonnull ptr @read_inode_1(i32 noundef %0, i32 noundef %1) local_unnamed_addr #1 {
  %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, 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
  br i1 %.not, label %25, label %20

20:                                               ; preds = %18
  %.sroa.01118.0.copyload = load i8, ptr %11, align 1
  %.sroa.51120.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.51120.0.copyload = load i8, ptr %.sroa.51120.0..sroa_idx, align 1
  %.sroa.61121.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.61121.0.copyload = load i8, ptr %.sroa.61121.0..sroa_idx, align 1
  %.sroa.111099.0.insert.ext = zext i8 %.sroa.01118.0.copyload to i64
  %.sroa.111099.0.insert.shift = shl nuw nsw i64 %.sroa.111099.0.insert.ext, 12
  %21 = lshr i64 %.sroa.111099.0.insert.ext, 4
  %.sroa.101083.0.insert.ext1085 = zext i8 %.sroa.51120.0.copyload to i64
  %.sroa.101083.0.insert.shift1086 = shl nuw nsw i64 %.sroa.101083.0.insert.ext1085, 4
  %.sroa.101083.0.insert.insert1088 = or disjoint i64 %.sroa.111099.0.insert.shift, %.sroa.101083.0.insert.shift1086
  %22 = or disjoint i64 %.sroa.101083.0.insert.insert1088, %21
  %23 = trunc i64 %22 to i16
  store i16 %23, ptr @read_inode_1.header, align 1
  %24 = tail call i8 @llvm.fshl.i8(i8 %.sroa.61121.0.copyload, i8 %.sroa.61121.0.copyload, i8 4)
  store i8 %24, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  br label %26

25:                                               ; preds = %18
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) @read_inode_1.header, ptr noundef nonnull align 1 dereferenceable(3) %11, i64 3, i1 false)
  %.pre = load i16, ptr @read_inode_1.header, align 1
  %.pre1123 = load i8, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  br label %26

26:                                               ; preds = %25, %20
  %27 = phi i8 [ %.pre1123, %25 ], [ %24, %20 ]
  %28 = phi i16 [ %.pre, %25 ], [ %23, %20 ]
  %29 = load ptr, ptr @uid_table, align 8, !tbaa !13
  %30 = and i16 %28, 15
  %31 = zext nneg i16 %30 to i32
  %32 = add nsw i32 %31, -1
  %.lhs.trunc = trunc nsw i32 %32 to i8
  %33 = sdiv i8 %.lhs.trunc, 5
  %34 = srem i8 %.lhs.trunc, 5
  %.sext = zext nneg i8 %33 to i64
  %35 = shl nuw nsw i64 %.sext, 4
  %36 = and i8 %27, 15
  %37 = zext nneg i8 %36 to i64
  %38 = or disjoint i64 %35, %37
  %39 = getelementptr inbounds i32, ptr %29, i64 %38
  %40 = load i32, ptr %39, align 4, !tbaa !15
  store i32 %40, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 76), align 4, !tbaa !16
  %41 = icmp eq i16 %30, 0
  br i1 %41, label %42, label %75

42:                                               ; preds = %26
  %43 = load i32, ptr %11, align 1
  br i1 %.not, label %60, label %44

44:                                               ; preds = %42
  %.sroa.61066.0.extract.shift = lshr i32 %43, 16
  %.sroa.81068.0.extract.shift = lshr i32 %43, 24
  %45 = lshr i32 %43, 4
  %46 = and i32 %45, 15
  %47 = and i32 %43, 65535
  %48 = tail call i32 @llvm.bswap.i32(i32 %47)
  %49 = lshr exact i32 %48, 12
  %50 = and i32 %49, 65520
  %51 = or disjoint i32 %50, %46
  %52 = shl i32 %.sroa.61066.0.extract.shift, 20
  %sh.diff390 = shl nuw nsw i32 %.sroa.61066.0.extract.shift, 12
  %53 = and i32 %sh.diff390, 983040
  %54 = and i32 %52, 15728640
  %55 = or disjoint i32 %53, %54
  %.sroa.151032.0.insert.shift1050 = shl i32 %.sroa.81068.0.extract.shift, 28
  %sh.diff394 = shl nuw nsw i32 %.sroa.81068.0.extract.shift, 20
  %56 = and i32 %sh.diff394, 251658240
  %57 = or disjoint i32 %56, %.sroa.151032.0.insert.shift1050
  %58 = or disjoint i32 %57, %55
  %59 = or disjoint i32 %58, %51
  br label %60

60:                                               ; preds = %42, %44
  %.sink = phi i32 [ %59, %44 ], [ %43, %42 ]
  %.in1132.in = phi i32 [ %55, %44 ], [ %43, %42 ]
  %.in1133 = phi i32 [ %51, %44 ], [ %43, %42 ]
  store i32 %.sink, ptr @read_inode_1.header, align 1
  %61 = trunc i32 %.in1133 to i16
  %.in1132 = lshr i32 %.in1132.in, 16
  %62 = trunc i32 %.in1132 to i8
  %63 = and i32 %.sink, 251658240
  %64 = icmp eq i32 %63, 117440512
  %. = select i1 %64, i16 -16384, i16 4096
  %.1136 = select i1 %64, i32 7, i32 6
  %65 = lshr i16 %61, 4
  %66 = or disjoint i16 %65, %.
  %storemerge398 = zext i16 %66 to i32
  store i32 %storemerge398, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 40), align 8, !tbaa !19
  store i32 %.1136, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 72), align 8, !tbaa !20
  %67 = lshr i32 %.sink, 24
  %68 = and i32 %67, 240
  %69 = lshr i32 %.sink, 16
  %70 = and i32 %69, 15
  %71 = or disjoint i32 %68, %70
  %72 = zext nneg i32 %71 to i64
  %73 = getelementptr inbounds i32, ptr %29, i64 %72
  %74 = load i32, ptr %73, align 4, !tbaa !15
  store i32 %74, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 76), align 4, !tbaa !16
  br label %85

75:                                               ; preds = %26
  %76 = urem i32 %32, 5
  %77 = add nuw nsw i32 %76, 1
  %78 = zext nneg i32 %77 to i64
  %79 = getelementptr inbounds [0 x i32], ptr @lookup_type, i64 0, i64 %78
  %80 = load i32, ptr %79, align 4, !tbaa !15
  %81 = lshr i16 %28, 4
  %82 = zext nneg i16 %81 to i32
  %83 = or i32 %80, %82
  store i32 %83, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 40), align 8, !tbaa !19
  %narrow = add nsw i8 %34, 1
  %84 = zext nneg i8 %narrow to i32
  store i32 %84, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 72), align 8, !tbaa !20
  br label %85

85:                                               ; preds = %75, %60
  %86 = phi i32 [ %84, %75 ], [ %.1136, %60 ]
  %87 = phi i8 [ %27, %75 ], [ %62, %60 ]
  store i32 -1, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 84), align 4, !tbaa !21
  %88 = lshr i8 %87, 4
  %89 = icmp eq i8 %88, 15
  %90 = load ptr, ptr @guid_table, align 8
  %91 = zext nneg i8 %88 to i64
  %92 = getelementptr inbounds i32, ptr %90, i64 %91
  %.in = select i1 %89, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 76), ptr %92
  %93 = load i32, ptr %.in, align 4, !tbaa !15
  store i32 %93, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 32), align 8, !tbaa !22
  %94 = load i32, ptr getelementptr inbounds (i8, ptr @sBlk, i64 8), align 8, !tbaa !23
  %95 = zext i32 %94 to i64
  store i64 %95, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 64), align 8, !tbaa !24
  %96 = load i32, ptr @inode_number, align 4, !tbaa !15
  %97 = add nsw i32 %96, 1
  store i32 %97, ptr @inode_number, align 4, !tbaa !15
  store i32 %96, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 36), align 4, !tbaa !25
  switch i32 %86, label %174 [
    i32 1, label %98
    i32 2, label %118
    i32 3, label %141
    i32 4, label %163
    i32 5, label %163
    i32 6, label %173
    i32 7, label %173
  ]

98:                                               ; preds = %85
  br i1 %.not, label %108, label %99

99:                                               ; preds = %98
  %.sroa.0968.0.copyload = load i8, ptr %11, align 1
  %.sroa.5970.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5970.0.copyload = load i8, ptr %.sroa.5970.0..sroa_idx, align 1
  %.sroa.6971.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6971.0.copyload = load i8, ptr %.sroa.6971.0..sroa_idx, align 1
  %.sroa.8973.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.8973.0.copyload = load i8, ptr %.sroa.8973.0..sroa_idx, align 1
  %.sroa.9974.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.9974.0.copyload = load i8, ptr %.sroa.9974.0..sroa_idx, align 1
  %.sroa.10975.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.10975.0.copyload = load i8, ptr %.sroa.10975.0..sroa_idx, align 1
  %.sroa.12977.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.12977.0.copyload = load i8, ptr %.sroa.12977.0..sroa_idx, align 1
  %.sroa.13978.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.13978.0.copyload = load i8, ptr %.sroa.13978.0..sroa_idx, align 1
  %.sroa.14979.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.14979.0.copyload = load i8, ptr %.sroa.14979.0..sroa_idx, align 1
  %.sroa.15980.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.15980.0.copyload = load i8, ptr %.sroa.15980.0..sroa_idx, align 1
  %.sroa.16981.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.16981.0.copyload = load i8, ptr %.sroa.16981.0..sroa_idx, align 1
  %.sroa.17982.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.17982.0.copyload = load i8, ptr %.sroa.17982.0..sroa_idx, align 1
  %.sroa.18983.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.18983.0.copyload = load i8, ptr %.sroa.18983.0..sroa_idx, align 1
  %.sroa.19984.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.19984.0.copyload = load i8, ptr %.sroa.19984.0..sroa_idx, align 1
  %.sroa.27.0.insert.ext = zext i8 %.sroa.0968.0.copyload to i64
  %.sroa.27.0.insert.shift = shl nuw nsw i64 %.sroa.27.0.insert.ext, 12
  %100 = lshr i64 %.sroa.27.0.insert.ext, 4
  %.sroa.22897.0.insert.ext899 = zext i8 %.sroa.5970.0.copyload to i64
  %.sroa.22897.0.insert.shift900 = shl nuw nsw i64 %.sroa.22897.0.insert.ext899, 4
  %.sroa.22897.0.insert.insert902 = or disjoint i64 %.sroa.27.0.insert.shift, %.sroa.22897.0.insert.shift900
  %101 = or disjoint i64 %.sroa.22897.0.insert.insert902, %100
  %102 = trunc i64 %101 to i16
  store i16 %102, ptr @read_inode_1.header, align 1
  %103 = tail call i8 @llvm.fshl.i8(i8 %.sroa.6971.0.copyload, i8 %.sroa.6971.0.copyload, i8 4)
  store i8 %103, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.27.0.insert.ext949 = zext i8 %.sroa.8973.0.copyload to i64
  %.sroa.27.0.insert.shift950 = shl nuw i64 %.sroa.27.0.insert.ext949, 56
  %.sroa.22897.0.insert.ext914 = zext i8 %.sroa.9974.0.copyload to i64
  %.sroa.22897.0.insert.shift915 = shl nuw nsw i64 %.sroa.22897.0.insert.ext914, 48
  %.sroa.22897.0.insert.insert917 = or disjoint i64 %.sroa.27.0.insert.shift950, %.sroa.22897.0.insert.shift915
  %.sroa.19861.0.insert.ext878 = zext i8 %.sroa.10975.0.copyload to i64
  %.sroa.19861.0.insert.shift879 = shl nuw nsw i64 %.sroa.19861.0.insert.ext878, 40
  %.sroa.19861.0.insert.insert881 = or disjoint i64 %.sroa.22897.0.insert.insert917, %.sroa.19861.0.insert.shift879
  %104 = lshr i64 %.sroa.19861.0.insert.insert881, 45
  %.sroa.27.0.insert.shift955 = shl nuw nsw i64 %.sroa.19861.0.insert.ext878, 27
  %.sroa.22897.0.insert.ext919 = zext i8 %.sroa.12977.0.copyload to i64
  %.sroa.22897.0.insert.shift920 = shl nuw nsw i64 %.sroa.22897.0.insert.ext919, 19
  %.sroa.22897.0.insert.insert922 = or disjoint i64 %.sroa.27.0.insert.shift955, %.sroa.22897.0.insert.shift920
  %105 = or disjoint i64 %.sroa.22897.0.insert.insert922, %104
  %106 = trunc i64 %105 to i32
  store i32 %106, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1
  %.sroa.27.0.insert.ext959 = zext i8 %.sroa.13978.0.copyload to i32
  %.sroa.27.0.insert.shift960 = shl nuw i32 %.sroa.27.0.insert.ext959, 24
  %.sroa.22897.0.insert.ext924 = zext i8 %.sroa.14979.0.copyload to i32
  %.sroa.22897.0.insert.shift925 = shl nuw nsw i32 %.sroa.22897.0.insert.ext924, 16
  %.sroa.22897.0.insert.insert927 = or disjoint i32 %.sroa.27.0.insert.shift960, %.sroa.22897.0.insert.shift925
  %.sroa.19861.0.insert.ext888 = zext i8 %.sroa.15980.0.copyload to i32
  %.sroa.19861.0.insert.shift889 = shl nuw nsw i32 %.sroa.19861.0.insert.ext888, 8
  %.sroa.19861.0.insert.insert891 = or disjoint i32 %.sroa.22897.0.insert.insert927, %.sroa.19861.0.insert.shift889
  %.sroa.18825.0.insert.ext852 = zext i8 %.sroa.16981.0.copyload to i32
  %.sroa.18825.0.insert.insert855 = or disjoint i32 %.sroa.19861.0.insert.insert891, %.sroa.18825.0.insert.ext852
  store i32 %.sroa.18825.0.insert.insert855, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 7), align 1, !tbaa !26
  %.sroa.27.0.insert.ext964 = zext i8 %.sroa.17982.0.copyload to i64
  %.sroa.27.0.insert.shift965 = shl nuw nsw i64 %.sroa.27.0.insert.ext964, 16
  %.sroa.22897.0.insert.ext929 = zext i8 %.sroa.18983.0.copyload to i64
  %.sroa.22897.0.insert.shift930 = shl nuw nsw i64 %.sroa.22897.0.insert.ext929, 8
  %.sroa.22897.0.insert.insert932 = or disjoint i64 %.sroa.27.0.insert.shift965, %.sroa.22897.0.insert.shift930
  %.sroa.19861.0.insert.ext893 = zext i8 %.sroa.19984.0.copyload to i64
  %.sroa.19861.0.insert.insert896 = or disjoint i64 %.sroa.22897.0.insert.insert932, %.sroa.19861.0.insert.ext893
  %107 = trunc nuw i64 %.sroa.19861.0.insert.insert896 to i24
  store i24 %107, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 11), align 1
  br label %109

108:                                              ; preds = %98
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(14) @read_inode_1.header, ptr noundef nonnull align 1 dereferenceable(14) %11, i64 14, i1 false)
  %.pre1129 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1
  %.pre1130 = load i24, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 11), align 1
  %.pre1131 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 7), align 1, !tbaa !26
  br label %109

109:                                              ; preds = %108, %99
  %110 = phi i32 [ %.pre1131, %108 ], [ %.sroa.18825.0.insert.insert855, %99 ]
  %111 = phi i24 [ %.pre1130, %108 ], [ %107, %99 ]
  %112 = phi i32 [ %.pre1129, %108 ], [ %106, %99 ]
  %113 = and i32 %112, 524287
  %114 = zext nneg i32 %113 to i64
  store i64 %114, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 16), align 8, !tbaa !28
  %115 = lshr i32 %112, 19
  store i32 %115, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 44), align 4, !tbaa !29
  %116 = zext i24 %111 to i64
  store i64 %116, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 48), align 8, !tbaa !30
  %117 = zext i32 %110 to i64
  store i64 %117, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 64), align 8, !tbaa !24
  br label %182

118:                                              ; preds = %85
  br i1 %.not, label %124, label %119

119:                                              ; preds = %118
  %.sroa.0785.0.copyload = load i8, ptr %11, align 1
  %.sroa.5787.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5787.0.copyload = load i8, ptr %.sroa.5787.0..sroa_idx, align 1
  %.sroa.6788.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6788.0.copyload = load i8, ptr %.sroa.6788.0..sroa_idx, align 1
  %.sroa.8790.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.8790.0.copyload = load i8, ptr %.sroa.8790.0..sroa_idx, align 1
  %.sroa.9791.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.9791.0.copyload = load i8, ptr %.sroa.9791.0..sroa_idx, align 1
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.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 6
  %.sroa.11.0.copyload = load i8, ptr %.sroa.11.0..sroa_idx, align 1
  %.sroa.12792.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.12792.0.copyload = load i8, ptr %.sroa.12792.0..sroa_idx, align 1
  %.sroa.13.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.13.0.copyload = load i8, ptr %.sroa.13.0..sroa_idx, align 1
  %.sroa.14793.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.14793.0.copyload = load i8, ptr %.sroa.14793.0..sroa_idx, align 1
  %.sroa.15.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.15.0.copyload = load i8, ptr %.sroa.15.0..sroa_idx, align 1
  %.sroa.16794.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.16794.0.copyload = load i8, ptr %.sroa.16794.0..sroa_idx, align 1
  %.sroa.17.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.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 13
  %.sroa.18.0.copyload = load i8, ptr %.sroa.18.0..sroa_idx, align 1
  %.sroa.19795.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.19795.0.copyload = load i8, ptr %.sroa.19795.0..sroa_idx, align 1
  %.sroa.26.0.insert.ext = zext i8 %.sroa.0785.0.copyload to i64
  %.sroa.26.0.insert.shift = shl nuw nsw i64 %.sroa.26.0.insert.ext, 12
  %120 = lshr i64 %.sroa.26.0.insert.ext, 4
  %.sroa.22.0.insert.ext726 = zext i8 %.sroa.5787.0.copyload to i64
  %.sroa.22.0.insert.shift727 = shl nuw nsw i64 %.sroa.22.0.insert.ext726, 4
  %.sroa.22.0.insert.insert729 = or disjoint i64 %.sroa.26.0.insert.shift, %.sroa.22.0.insert.shift727
  %121 = or disjoint i64 %.sroa.22.0.insert.insert729, %120
  %122 = trunc i64 %121 to i16
  store i16 %122, ptr @read_inode_1.header, align 1
  %123 = tail call i8 @llvm.fshl.i8(i8 %.sroa.6788.0.copyload, i8 %.sroa.6788.0.copyload, i8 4)
  store i8 %123, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.26.0.insert.ext771 = zext i8 %.sroa.8790.0.copyload to i32
  %.sroa.26.0.insert.shift772 = shl nuw i32 %.sroa.26.0.insert.ext771, 24
  %.sroa.22.0.insert.ext741 = zext i8 %.sroa.9791.0.copyload to i32
  %.sroa.22.0.insert.shift742 = shl nuw nsw i32 %.sroa.22.0.insert.ext741, 16
  %.sroa.22.0.insert.insert744 = or disjoint i32 %.sroa.26.0.insert.shift772, %.sroa.22.0.insert.shift742
  %.sroa.19.0.insert.ext711 = zext i8 %.sroa.10.0.copyload to i32
  %.sroa.19.0.insert.shift712 = shl nuw nsw i32 %.sroa.19.0.insert.ext711, 8
  %.sroa.19.0.insert.insert714 = or disjoint i32 %.sroa.22.0.insert.insert744, %.sroa.19.0.insert.shift712
  %.sroa.16.0.insert.ext681 = zext i8 %.sroa.11.0.copyload to i32
  %.sroa.16.0.insert.insert684 = or disjoint i32 %.sroa.19.0.insert.insert714, %.sroa.16.0.insert.ext681
  store i32 %.sroa.16.0.insert.insert684, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !31
  %.sroa.26.0.insert.ext776 = zext i8 %.sroa.12792.0.copyload to i32
  %.sroa.26.0.insert.shift777 = shl nuw i32 %.sroa.26.0.insert.ext776, 24
  %.sroa.22.0.insert.ext746 = zext i8 %.sroa.13.0.copyload to i32
  %.sroa.22.0.insert.shift747 = shl nuw nsw i32 %.sroa.22.0.insert.ext746, 16
  %.sroa.22.0.insert.insert749 = or disjoint i32 %.sroa.26.0.insert.shift777, %.sroa.22.0.insert.shift747
  %.sroa.19.0.insert.ext716 = zext i8 %.sroa.14793.0.copyload to i32
  %.sroa.19.0.insert.shift717 = shl nuw nsw i32 %.sroa.19.0.insert.ext716, 8
  %.sroa.19.0.insert.insert719 = or disjoint i32 %.sroa.22.0.insert.insert749, %.sroa.19.0.insert.shift717
  %.sroa.16.0.insert.ext686 = zext i8 %.sroa.15.0.copyload to i32
  %.sroa.16.0.insert.insert689 = or disjoint i32 %.sroa.19.0.insert.insert719, %.sroa.16.0.insert.ext686
  store i32 %.sroa.16.0.insert.insert689, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 7), align 1, !tbaa !33
  %.sroa.26.0.insert.ext781 = zext i8 %.sroa.16794.0.copyload to i32
  %.sroa.26.0.insert.shift782 = shl nuw i32 %.sroa.26.0.insert.ext781, 24
  %.sroa.22.0.insert.ext751 = zext i8 %.sroa.17.0.copyload to i32
  %.sroa.22.0.insert.shift752 = shl nuw nsw i32 %.sroa.22.0.insert.ext751, 16
  %.sroa.22.0.insert.insert754 = or disjoint i32 %.sroa.26.0.insert.shift782, %.sroa.22.0.insert.shift752
  %.sroa.19.0.insert.ext721 = zext i8 %.sroa.18.0.copyload to i32
  %.sroa.19.0.insert.shift722 = shl nuw nsw i32 %.sroa.19.0.insert.ext721, 8
  %.sroa.19.0.insert.insert724 = or disjoint i32 %.sroa.22.0.insert.insert754, %.sroa.19.0.insert.shift722
  %.sroa.16.0.insert.ext691 = zext i8 %.sroa.19795.0.copyload to i32
  %.sroa.16.0.insert.insert694 = or disjoint i32 %.sroa.19.0.insert.insert724, %.sroa.16.0.insert.ext691
  store i32 %.sroa.16.0.insert.insert694, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 11), align 1
  br label %125

124:                                              ; preds = %118
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) @read_inode_1.header, ptr noundef nonnull align 1 dereferenceable(15) %11, i64 15, i1 false)
  %.pre1126 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 11), align 1
  %.pre1127 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !31
  %.pre1128 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 7), align 1, !tbaa !33
  br label %125

125:                                              ; preds = %124, %119
  %126 = phi i32 [ %.pre1128, %124 ], [ %.sroa.16.0.insert.insert689, %119 ]
  %127 = phi i32 [ %.pre1127, %124 ], [ %.sroa.16.0.insert.insert684, %119 ]
  %128 = phi i32 [ %.pre1126, %124 ], [ %.sroa.16.0.insert.insert694, %119 ]
  %129 = zext i32 %128 to i64
  store i64 %129, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 16), align 8, !tbaa !28
  %130 = zext i32 %127 to i64
  store i64 %130, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 64), align 8, !tbaa !24
  %131 = load i32, ptr getelementptr inbounds (i8, ptr @sBlk, i64 12), align 4, !tbaa !34
  %132 = zext i32 %131 to i64
  %133 = add nsw i64 %129, -1
  %134 = add nsw i64 %133, %132
  %135 = load i16, ptr getelementptr inbounds (i8, ptr @sBlk, i64 22), align 2, !tbaa !35
  %136 = zext nneg i16 %135 to i64
  %137 = ashr i64 %134, %136
  %138 = trunc i64 %137 to i32
  store i32 %138, ptr @read_inode_1.i, align 8, !tbaa !36
  %139 = zext i32 %126 to i64
  store i64 %139, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 48), align 8, !tbaa !30
  %140 = getelementptr inbounds i8, ptr %11, i64 15
  store ptr %140, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 8), align 8, !tbaa !37
  store i32 0, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 24), align 8, !tbaa !38
  store i32 0, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 28), align 4, !tbaa !39
  store i32 0, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 44), align 4, !tbaa !29
  store i8 0, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 80), align 8, !tbaa !40
  br label %182

141:                                              ; preds = %85
  br i1 %.not, label %147, label %142

142:                                              ; preds = %141
  %.sroa.0633.0.copyload = load i8, ptr %11, align 1
  %.sroa.5635.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5635.0.copyload = load i8, ptr %.sroa.5635.0..sroa_idx, align 1
  %.sroa.6636.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6636.0.copyload = load i8, ptr %.sroa.6636.0..sroa_idx, align 1
  %.sroa.8638.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.8638.0.copyload = load i8, ptr %.sroa.8638.0..sroa_idx, align 1
  %.sroa.9639.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.9639.0.copyload = load i8, ptr %.sroa.9639.0..sroa_idx, align 1
  %.sroa.14608.0.insert.ext = zext i8 %.sroa.0633.0.copyload to i64
  %.sroa.14608.0.insert.shift = shl nuw nsw i64 %.sroa.14608.0.insert.ext, 12
  %143 = lshr i64 %.sroa.14608.0.insert.ext, 4
  %.sroa.12587.0.insert.ext589 = zext i8 %.sroa.5635.0.copyload to i64
  %.sroa.12587.0.insert.shift590 = shl nuw nsw i64 %.sroa.12587.0.insert.ext589, 4
  %.sroa.12587.0.insert.insert592 = or disjoint i64 %.sroa.14608.0.insert.shift, %.sroa.12587.0.insert.shift590
  %144 = or disjoint i64 %.sroa.12587.0.insert.insert592, %143
  %145 = trunc i64 %144 to i16
  store i16 %145, ptr @read_inode_1.header, align 1
  %146 = tail call i8 @llvm.fshl.i8(i8 %.sroa.6636.0.copyload, i8 %.sroa.6636.0.copyload, i8 4)
  store i8 %146, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.14608.0.insert.ext625 = zext i8 %.sroa.8638.0.copyload to i16
  %.sroa.14608.0.insert.shift626 = shl nuw i16 %.sroa.14608.0.insert.ext625, 8
  %.sroa.12587.0.insert.ext604 = zext i8 %.sroa.9639.0.copyload to i16
  %.sroa.12587.0.insert.insert607 = or disjoint i16 %.sroa.14608.0.insert.shift626, %.sroa.12587.0.insert.ext604
  store i16 %.sroa.12587.0.insert.insert607, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !41
  br label %148

147:                                              ; preds = %141
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) @read_inode_1.header, ptr noundef nonnull align 1 dereferenceable(5) %11, i64 5, i1 false)
  %.pre1125 = load i16, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !41
  br label %148

148:                                              ; preds = %147, %142
  %149 = phi i16 [ %.pre1125, %147 ], [ %.sroa.12587.0.insert.insert607, %142 ]
  %150 = zext i16 %149 to i64
  %151 = add nuw nsw i64 %150, 1
  %152 = tail call noalias ptr @malloc(i64 noundef %151) #12
  store ptr %152, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 56), align 8, !tbaa !43
  %153 = icmp eq ptr %152, null
  br i1 %153, label %154, label %159

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

159:                                              ; preds = %148
  %160 = getelementptr inbounds i8, ptr %11, i64 5
  %161 = tail call ptr @strncpy(ptr noundef nonnull %152, ptr noundef nonnull %160, i64 noundef %150) #9
  %162 = getelementptr inbounds i8, ptr %152, i64 %150
  store i8 0, ptr %162, align 1, !tbaa !44
  store i64 %150, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 16), align 8, !tbaa !28
  br label %182

163:                                              ; preds = %85, %85
  br i1 %.not, label %169, label %164

164:                                              ; preds = %163
  %.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.8.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.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 4
  %.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
  %165 = lshr i64 %.sroa.14.0.insert.ext, 4
  %.sroa.12.0.insert.ext525 = zext i8 %.sroa.5.0.copyload to i64
  %.sroa.12.0.insert.shift526 = shl nuw nsw i64 %.sroa.12.0.insert.ext525, 4
  %.sroa.12.0.insert.insert528 = or disjoint i64 %.sroa.14.0.insert.shift, %.sroa.12.0.insert.shift526
  %166 = or disjoint i64 %.sroa.12.0.insert.insert528, %165
  %167 = trunc i64 %166 to i16
  store i16 %167, ptr @read_inode_1.header, align 1
  %168 = tail call i8 @llvm.fshl.i8(i8 %.sroa.6.0.copyload, i8 %.sroa.6.0.copyload, i8 4)
  store i8 %168, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.14.0.insert.ext560 = zext i8 %.sroa.8.0.copyload to i16
  %.sroa.14.0.insert.shift561 = shl nuw i16 %.sroa.14.0.insert.ext560, 8
  %.sroa.12.0.insert.ext540 = zext i8 %.sroa.9.0.copyload to i16
  %.sroa.12.0.insert.insert543 = or disjoint i16 %.sroa.14.0.insert.shift561, %.sroa.12.0.insert.ext540
  store i16 %.sroa.12.0.insert.insert543, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !45
  br label %170

169:                                              ; preds = %163
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) @read_inode_1.header, ptr noundef nonnull align 1 dereferenceable(5) %11, i64 5, i1 false)
  %.pre1124 = load i16, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !45
  br label %170

170:                                              ; preds = %169, %164
  %171 = phi i16 [ %.pre1124, %169 ], [ %.sroa.12.0.insert.insert543, %164 ]
  %172 = zext i16 %171 to i64
  store i64 %172, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 16), align 8, !tbaa !28
  br label %182

173:                                              ; preds = %85, %85
  store i64 0, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 16), align 8, !tbaa !28
  br label %182

174:                                              ; preds = %85
  %175 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull @screen_mutex) #9
  %176 = load ptr, ptr @stderr, align 8, !tbaa !13
  %177 = load i16, ptr @read_inode_1.header, align 1
  %178 = and i16 %177, 15
  %179 = zext nneg i16 %178 to i32
  %180 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef nonnull @.str.2, 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 = %173, %170, %159, %125, %109
  ret ptr @read_inode_1.i
}

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(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 i8 @llvm.fshl.i8(i8, i8, i8) #8

; 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 = { 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 #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind "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 = { 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 #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 = { 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 #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 76}
!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 40}
!20 = !{!17, !8, i64 72}
!21 = !{!17, !8, i64 84}
!22 = !{!17, !8, i64 32}
!23 = !{!6, !8, i64 8}
!24 = !{!17, !18, i64 64}
!25 = !{!17, !8, i64 36}
!26 = !{!27, !8, i64 7}
!27 = !{!"squashfs_dir_inode_header_1", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 2, !8, i64 3, !8, i64 5, !8, i64 7, !8, i64 11}
!28 = !{!17, !12, i64 16}
!29 = !{!17, !8, i64 44}
!30 = !{!17, !12, i64 48}
!31 = !{!32, !8, i64 3}
!32 = !{!"squashfs_reg_inode_header_1", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 2, !8, i64 3, !8, i64 7, !8, i64 11, !9, i64 15}
!33 = !{!32, !8, i64 7}
!34 = !{!6, !8, i64 12}
!35 = !{!6, !11, i64 22}
!36 = !{!17, !8, i64 0}
!37 = !{!17, !14, i64 8}
!38 = !{!17, !8, i64 24}
!39 = !{!17, !8, i64 28}
!40 = !{!17, !9, i64 80}
!41 = !{!42, !11, i64 3}
!42 = !{!"squashfs_symlink_inode_header_1", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 2, !11, i64 3, !9, i64 5}
!43 = !{!17, !14, i64 56}
!44 = !{!9, !9, i64 0}
!45 = !{!46, !11, i64 3}
!46 = !{!"squashfs_dev_inode_header_1", !8, i64 0, !8, i64 0, !8, i64 2, !8, i64 2, !11, i64 3}


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