; LLVM IR from mncoppola/rpef :: utilities_src/squashfs4.1/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 %1325 [
    i32 1, label %471
    i32 2, label %734
    i32 3, label %966
    i32 4, label %1161
    i32 5, label %1161
    i32 6, label %1324
    i32 7, label %1324
  ]

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 %1336

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 ptr, ptr %28, align 8, !tbaa !15
  %952 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %951, i32 0, i32 4
  %953 = load i32, ptr %952, align 1
  %954 = load i32, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 3), align 4, !tbaa !62
  %955 = add i32 %953, %954
  %956 = sub i32 %955, 1
  %957 = load i16, ptr getelementptr inbounds (%struct.squashfs_super_block, ptr @sBlk, i32 0, i32 6), align 2, !tbaa !63
  %958 = zext i16 %957 to i32
  %959 = lshr i32 %956, %958
  store i32 %959, ptr @read_inode_1.i, align 8, !tbaa !64
  %960 = load ptr, ptr %28, align 8, !tbaa !15
  %961 = getelementptr inbounds %struct.squashfs_reg_inode_header_1, ptr %960, i32 0, i32 3
  %962 = load i32, ptr %961, align 1, !tbaa !60
  %963 = zext i32 %962 to i64
  store i64 %963, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 9), align 8, !tbaa !51
  %964 = load ptr, ptr %7, align 8, !tbaa !15
  %965 = getelementptr inbounds i8, ptr %964, i64 15
  store ptr %965, 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 %1336

966:                                              ; 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
  %967 = load i32, ptr @swap, align 4, !tbaa !5
  %968 = icmp ne i32 %967, 0
  br i1 %968, label %969, label %1121

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

974:                                              ; preds = %985, %969
  %975 = load i32, ptr %37, align 4, !tbaa !5
  %976 = load i32, ptr %38, align 4, !tbaa !5
  %977 = add nsw i32 4, %976
  %978 = icmp slt i32 %975, %977
  br i1 %978, label %979, label %988

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

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

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

1004:                                             ; preds = %1015, %988
  %1005 = load i32, ptr %37, align 4, !tbaa !5
  %1006 = load i32, ptr %38, align 4, !tbaa !5
  %1007 = add nsw i32 12, %1006
  %1008 = icmp slt i32 %1005, %1007
  br i1 %1008, label %1009, label %1018

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

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

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

1035:                                             ; preds = %1046, %1018
  %1036 = load i32, ptr %37, align 4, !tbaa !5
  %1037 = load i32, ptr %38, align 4, !tbaa !5
  %1038 = add nsw i32 4, %1037
  %1039 = icmp slt i32 %1036, %1038
  br i1 %1039, label %1040, label %1049

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

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

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

1066:                                             ; preds = %1077, %1049
  %1067 = load i32, ptr %37, align 4, !tbaa !5
  %1068 = load i32, ptr %38, align 4, !tbaa !5
  %1069 = add nsw i32 4, %1068
  %1070 = icmp slt i32 %1067, %1069
  br i1 %1070, label %1071, label %1080

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

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

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

1098:                                             ; preds = %1109, %1080
  %1099 = load i32, ptr %37, align 4, !tbaa !5
  %1100 = load i32, ptr %38, align 4, !tbaa !5
  %1101 = add nsw i32 16, %1100
  %1102 = icmp slt i32 %1099, %1101
  br i1 %1102, label %1103, label %1112

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

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

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

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

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

1134:                                             ; preds = %1124
  br label %1135

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

1140:                                             ; No predecessors!
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

1142:                                             ; preds = %1141, %1124
  %1143 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 10), align 8, !tbaa !76
  %1144 = load ptr, ptr %7, align 8, !tbaa !15
  %1145 = getelementptr inbounds i8, ptr %1144, i64 5
  %1146 = load ptr, ptr %35, align 8, !tbaa !15
  %1147 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1146, i32 0, i32 2
  %1148 = load i16, ptr %1147, align 1, !tbaa !74
  %1149 = zext i16 %1148 to i64
  %1150 = call ptr @strncpy(ptr noundef %1143, ptr noundef %1145, i64 noundef %1149) #8
  %1151 = load ptr, ptr getelementptr inbounds (%struct.inode, ptr @read_inode_1.i, i32 0, i32 10), align 8, !tbaa !76
  %1152 = load ptr, ptr %35, align 8, !tbaa !15
  %1153 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1152, i32 0, i32 2
  %1154 = load i16, ptr %1153, align 1, !tbaa !74
  %1155 = zext i16 %1154 to i64
  %1156 = getelementptr inbounds i8, ptr %1151, i64 %1155
  store i8 0, ptr %1156, align 1, !tbaa !17
  %1157 = load ptr, ptr %35, align 8, !tbaa !15
  %1158 = getelementptr inbounds %struct.squashfs_symlink_inode_header_1, ptr %1157, i32 0, i32 2
  %1159 = load i16, ptr %1158, align 1, !tbaa !74
  %1160 = zext i16 %1159 to i64
  store i64 %1160, 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 %1336

1161:                                             ; 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
  %1162 = load i32, ptr @swap, align 4, !tbaa !5
  %1163 = icmp ne i32 %1162, 0
  br i1 %1163, label %1164, label %1316

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

1169:                                             ; preds = %1180, %1164
  %1170 = load i32, ptr %44, align 4, !tbaa !5
  %1171 = load i32, ptr %45, align 4, !tbaa !5
  %1172 = add nsw i32 4, %1171
  %1173 = icmp slt i32 %1170, %1172
  br i1 %1173, label %1174, label %1183

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

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

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

1199:                                             ; preds = %1210, %1183
  %1200 = load i32, ptr %44, align 4, !tbaa !5
  %1201 = load i32, ptr %45, align 4, !tbaa !5
  %1202 = add nsw i32 12, %1201
  %1203 = icmp slt i32 %1200, %1202
  br i1 %1203, label %1204, label %1213

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

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

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

1230:                                             ; preds = %1241, %1213
  %1231 = load i32, ptr %44, align 4, !tbaa !5
  %1232 = load i32, ptr %45, align 4, !tbaa !5
  %1233 = add nsw i32 4, %1232
  %1234 = icmp slt i32 %1231, %1233
  br i1 %1234, label %1235, label %1244

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

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

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

1261:                                             ; preds = %1272, %1244
  %1262 = load i32, ptr %44, align 4, !tbaa !5
  %1263 = load i32, ptr %45, align 4, !tbaa !5
  %1264 = add nsw i32 4, %1263
  %1265 = icmp slt i32 %1262, %1264
  br i1 %1265, label %1266, label %1275

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

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

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

1293:                                             ; preds = %1304, %1275
  %1294 = load i32, ptr %44, align 4, !tbaa !5
  %1295 = load i32, ptr %45, align 4, !tbaa !5
  %1296 = add nsw i32 16, %1295
  %1297 = icmp slt i32 %1294, %1296
  br i1 %1297, label %1298, label %1307

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

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

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

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

1319:                                             ; preds = %1316, %1307
  %1320 = load ptr, ptr %42, align 8, !tbaa !15
  %1321 = getelementptr inbounds %struct.squashfs_dev_inode_header_1, ptr %1320, i32 0, i32 2
  %1322 = load i16, ptr %1321, align 1, !tbaa !82
  %1323 = zext i16 %1322 to i64
  store i64 %1323, 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 %1336

1324:                                             ; 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 %1336

1325:                                             ; preds = %464
  br label %1326

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

1334:                                             ; No predecessors!
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335, %1324, %1319, %1142, %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.01119.0.copyload = load i8, ptr %11, align 1
  %.sroa.51121.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.51121.0.copyload = load i8, ptr %.sroa.51121.0..sroa_idx, align 1
  %.sroa.61122.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.61122.0.copyload = load i8, ptr %.sroa.61122.0..sroa_idx, align 1
  %.sroa.111100.0.insert.ext = zext i8 %.sroa.01119.0.copyload to i64
  %.sroa.111100.0.insert.shift = shl nuw nsw i64 %.sroa.111100.0.insert.ext, 12
  %21 = lshr i64 %.sroa.111100.0.insert.ext, 4
  %.sroa.101084.0.insert.ext1086 = zext i8 %.sroa.51121.0.copyload to i64
  %.sroa.101084.0.insert.shift1087 = shl nuw nsw i64 %.sroa.101084.0.insert.ext1086, 4
  %.sroa.101084.0.insert.insert1089 = or disjoint i64 %.sroa.111100.0.insert.shift, %.sroa.101084.0.insert.shift1087
  %22 = or disjoint i64 %.sroa.101084.0.insert.insert1089, %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.61122.0.copyload, i8 %.sroa.61122.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
  %.pre1124 = 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 [ %.pre1124, %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.61067.0.extract.shift = lshr i32 %43, 16
  %.sroa.81069.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.61067.0.extract.shift, 20
  %sh.diff391 = shl nuw nsw i32 %.sroa.61067.0.extract.shift, 12
  %53 = and i32 %sh.diff391, 983040
  %54 = and i32 %52, 15728640
  %55 = or disjoint i32 %53, %54
  %.sroa.151033.0.insert.shift1051 = shl i32 %.sroa.81069.0.extract.shift, 28
  %sh.diff395 = shl nuw nsw i32 %.sroa.81069.0.extract.shift, 20
  %56 = and i32 %sh.diff395, 251658240
  %57 = or disjoint i32 %56, %.sroa.151033.0.insert.shift1051
  %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 ]
  %.in1133.in = phi i32 [ %55, %44 ], [ %43, %42 ]
  %.in1134 = phi i32 [ %51, %44 ], [ %43, %42 ]
  store i32 %.sink, ptr @read_inode_1.header, align 1
  %61 = trunc i32 %.in1134 to i16
  %.in1133 = lshr i32 %.in1133.in, 16
  %62 = trunc i32 %.in1133 to i8
  %63 = and i32 %.sink, 251658240
  %64 = icmp eq i32 %63, 117440512
  %. = select i1 %64, i16 -16384, i16 4096
  %.1137 = select i1 %64, i32 7, i32 6
  %65 = lshr i16 %61, 4
  %66 = or disjoint i16 %65, %.
  %storemerge399 = zext i16 %66 to i32
  store i32 %storemerge399, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 40), align 8, !tbaa !19
  store i32 %.1137, 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 ], [ %.1137, %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 %172 [
    i32 1, label %98
    i32 2, label %118
    i32 3, label %139
    i32 4, label %161
    i32 5, label %161
    i32 6, label %171
    i32 7, label %171
  ]

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

99:                                               ; preds = %98
  %.sroa.0969.0.copyload = load i8, ptr %11, align 1
  %.sroa.5971.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5971.0.copyload = load i8, ptr %.sroa.5971.0..sroa_idx, align 1
  %.sroa.6972.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6972.0.copyload = load i8, ptr %.sroa.6972.0..sroa_idx, align 1
  %.sroa.8974.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.8974.0.copyload = load i8, ptr %.sroa.8974.0..sroa_idx, align 1
  %.sroa.9975.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.9975.0.copyload = load i8, ptr %.sroa.9975.0..sroa_idx, align 1
  %.sroa.10976.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 5
  %.sroa.10976.0.copyload = load i8, ptr %.sroa.10976.0..sroa_idx, align 1
  %.sroa.12978.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 6
  %.sroa.12978.0.copyload = load i8, ptr %.sroa.12978.0..sroa_idx, align 1
  %.sroa.13979.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.13979.0.copyload = load i8, ptr %.sroa.13979.0..sroa_idx, align 1
  %.sroa.14980.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.14980.0.copyload = load i8, ptr %.sroa.14980.0..sroa_idx, align 1
  %.sroa.15981.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.15981.0.copyload = load i8, ptr %.sroa.15981.0..sroa_idx, align 1
  %.sroa.16982.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 10
  %.sroa.16982.0.copyload = load i8, ptr %.sroa.16982.0..sroa_idx, align 1
  %.sroa.17983.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.17983.0.copyload = load i8, ptr %.sroa.17983.0..sroa_idx, align 1
  %.sroa.18984.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 12
  %.sroa.18984.0.copyload = load i8, ptr %.sroa.18984.0..sroa_idx, align 1
  %.sroa.19985.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 13
  %.sroa.19985.0.copyload = load i8, ptr %.sroa.19985.0..sroa_idx, align 1
  %.sroa.27.0.insert.ext = zext i8 %.sroa.0969.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.22898.0.insert.ext900 = zext i8 %.sroa.5971.0.copyload to i64
  %.sroa.22898.0.insert.shift901 = shl nuw nsw i64 %.sroa.22898.0.insert.ext900, 4
  %.sroa.22898.0.insert.insert903 = or disjoint i64 %.sroa.27.0.insert.shift, %.sroa.22898.0.insert.shift901
  %101 = or disjoint i64 %.sroa.22898.0.insert.insert903, %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.6972.0.copyload, i8 %.sroa.6972.0.copyload, i8 4)
  store i8 %103, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.27.0.insert.ext950 = zext i8 %.sroa.8974.0.copyload to i64
  %.sroa.27.0.insert.shift951 = shl nuw i64 %.sroa.27.0.insert.ext950, 56
  %.sroa.22898.0.insert.ext915 = zext i8 %.sroa.9975.0.copyload to i64
  %.sroa.22898.0.insert.shift916 = shl nuw nsw i64 %.sroa.22898.0.insert.ext915, 48
  %.sroa.22898.0.insert.insert918 = or disjoint i64 %.sroa.27.0.insert.shift951, %.sroa.22898.0.insert.shift916
  %.sroa.19862.0.insert.ext879 = zext i8 %.sroa.10976.0.copyload to i64
  %.sroa.19862.0.insert.shift880 = shl nuw nsw i64 %.sroa.19862.0.insert.ext879, 40
  %.sroa.19862.0.insert.insert882 = or disjoint i64 %.sroa.22898.0.insert.insert918, %.sroa.19862.0.insert.shift880
  %104 = lshr i64 %.sroa.19862.0.insert.insert882, 45
  %.sroa.27.0.insert.shift956 = shl nuw nsw i64 %.sroa.19862.0.insert.ext879, 27
  %.sroa.22898.0.insert.ext920 = zext i8 %.sroa.12978.0.copyload to i64
  %.sroa.22898.0.insert.shift921 = shl nuw nsw i64 %.sroa.22898.0.insert.ext920, 19
  %.sroa.22898.0.insert.insert923 = or disjoint i64 %.sroa.27.0.insert.shift956, %.sroa.22898.0.insert.shift921
  %105 = or disjoint i64 %.sroa.22898.0.insert.insert923, %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.ext960 = zext i8 %.sroa.13979.0.copyload to i32
  %.sroa.27.0.insert.shift961 = shl nuw i32 %.sroa.27.0.insert.ext960, 24
  %.sroa.22898.0.insert.ext925 = zext i8 %.sroa.14980.0.copyload to i32
  %.sroa.22898.0.insert.shift926 = shl nuw nsw i32 %.sroa.22898.0.insert.ext925, 16
  %.sroa.22898.0.insert.insert928 = or disjoint i32 %.sroa.27.0.insert.shift961, %.sroa.22898.0.insert.shift926
  %.sroa.19862.0.insert.ext889 = zext i8 %.sroa.15981.0.copyload to i32
  %.sroa.19862.0.insert.shift890 = shl nuw nsw i32 %.sroa.19862.0.insert.ext889, 8
  %.sroa.19862.0.insert.insert892 = or disjoint i32 %.sroa.22898.0.insert.insert928, %.sroa.19862.0.insert.shift890
  %.sroa.18826.0.insert.ext853 = zext i8 %.sroa.16982.0.copyload to i32
  %.sroa.18826.0.insert.insert856 = or disjoint i32 %.sroa.19862.0.insert.insert892, %.sroa.18826.0.insert.ext853
  store i32 %.sroa.18826.0.insert.insert856, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 7), align 1, !tbaa !26
  %.sroa.27.0.insert.ext965 = zext i8 %.sroa.17983.0.copyload to i64
  %.sroa.27.0.insert.shift966 = shl nuw nsw i64 %.sroa.27.0.insert.ext965, 16
  %.sroa.22898.0.insert.ext930 = zext i8 %.sroa.18984.0.copyload to i64
  %.sroa.22898.0.insert.shift931 = shl nuw nsw i64 %.sroa.22898.0.insert.ext930, 8
  %.sroa.22898.0.insert.insert933 = or disjoint i64 %.sroa.27.0.insert.shift966, %.sroa.22898.0.insert.shift931
  %.sroa.19862.0.insert.ext894 = zext i8 %.sroa.19985.0.copyload to i64
  %.sroa.19862.0.insert.insert897 = or disjoint i64 %.sroa.22898.0.insert.insert933, %.sroa.19862.0.insert.ext894
  %107 = trunc nuw i64 %.sroa.19862.0.insert.insert897 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)
  %.pre1130 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1
  %.pre1131 = load i24, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 11), align 1
  %.pre1132 = 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 [ %.pre1132, %108 ], [ %.sroa.18826.0.insert.insert856, %99 ]
  %111 = phi i24 [ %.pre1131, %108 ], [ %107, %99 ]
  %112 = phi i32 [ %.pre1130, %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 %180

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

119:                                              ; preds = %118
  %.sroa.0786.0.copyload = load i8, ptr %11, align 1
  %.sroa.5788.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5788.0.copyload = load i8, ptr %.sroa.5788.0..sroa_idx, align 1
  %.sroa.6789.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6789.0.copyload = load i8, ptr %.sroa.6789.0..sroa_idx, align 1
  %.sroa.8791.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.8791.0.copyload = load i8, ptr %.sroa.8791.0..sroa_idx, align 1
  %.sroa.9792.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.9792.0.copyload = load i8, ptr %.sroa.9792.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.12793.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 7
  %.sroa.12793.0.copyload = load i8, ptr %.sroa.12793.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.14794.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 9
  %.sroa.14794.0.copyload = load i8, ptr %.sroa.14794.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.16795.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 11
  %.sroa.16795.0.copyload = load i8, ptr %.sroa.16795.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.19796.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 14
  %.sroa.19796.0.copyload = load i8, ptr %.sroa.19796.0..sroa_idx, align 1
  %.sroa.26.0.insert.ext = zext i8 %.sroa.0786.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.ext727 = zext i8 %.sroa.5788.0.copyload to i64
  %.sroa.22.0.insert.shift728 = shl nuw nsw i64 %.sroa.22.0.insert.ext727, 4
  %.sroa.22.0.insert.insert730 = or disjoint i64 %.sroa.26.0.insert.shift, %.sroa.22.0.insert.shift728
  %121 = or disjoint i64 %.sroa.22.0.insert.insert730, %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.6789.0.copyload, i8 %.sroa.6789.0.copyload, i8 4)
  store i8 %123, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.26.0.insert.ext772 = zext i8 %.sroa.8791.0.copyload to i32
  %.sroa.26.0.insert.shift773 = shl nuw i32 %.sroa.26.0.insert.ext772, 24
  %.sroa.22.0.insert.ext742 = zext i8 %.sroa.9792.0.copyload to i32
  %.sroa.22.0.insert.shift743 = shl nuw nsw i32 %.sroa.22.0.insert.ext742, 16
  %.sroa.22.0.insert.insert745 = or disjoint i32 %.sroa.26.0.insert.shift773, %.sroa.22.0.insert.shift743
  %.sroa.19.0.insert.ext712 = zext i8 %.sroa.10.0.copyload to i32
  %.sroa.19.0.insert.shift713 = shl nuw nsw i32 %.sroa.19.0.insert.ext712, 8
  %.sroa.19.0.insert.insert715 = or disjoint i32 %.sroa.22.0.insert.insert745, %.sroa.19.0.insert.shift713
  %.sroa.16.0.insert.ext682 = zext i8 %.sroa.11.0.copyload to i32
  %.sroa.16.0.insert.insert685 = or disjoint i32 %.sroa.19.0.insert.insert715, %.sroa.16.0.insert.ext682
  store i32 %.sroa.16.0.insert.insert685, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !31
  %.sroa.26.0.insert.ext777 = zext i8 %.sroa.12793.0.copyload to i32
  %.sroa.26.0.insert.shift778 = shl nuw i32 %.sroa.26.0.insert.ext777, 24
  %.sroa.22.0.insert.ext747 = zext i8 %.sroa.13.0.copyload to i32
  %.sroa.22.0.insert.shift748 = shl nuw nsw i32 %.sroa.22.0.insert.ext747, 16
  %.sroa.22.0.insert.insert750 = or disjoint i32 %.sroa.26.0.insert.shift778, %.sroa.22.0.insert.shift748
  %.sroa.19.0.insert.ext717 = zext i8 %.sroa.14794.0.copyload to i32
  %.sroa.19.0.insert.shift718 = shl nuw nsw i32 %.sroa.19.0.insert.ext717, 8
  %.sroa.19.0.insert.insert720 = or disjoint i32 %.sroa.22.0.insert.insert750, %.sroa.19.0.insert.shift718
  %.sroa.16.0.insert.ext687 = zext i8 %.sroa.15.0.copyload to i32
  %.sroa.16.0.insert.insert690 = or disjoint i32 %.sroa.19.0.insert.insert720, %.sroa.16.0.insert.ext687
  store i32 %.sroa.16.0.insert.insert690, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 7), align 1, !tbaa !33
  %.sroa.26.0.insert.ext782 = zext i8 %.sroa.16795.0.copyload to i32
  %.sroa.26.0.insert.shift783 = shl nuw i32 %.sroa.26.0.insert.ext782, 24
  %.sroa.22.0.insert.ext752 = zext i8 %.sroa.17.0.copyload to i32
  %.sroa.22.0.insert.shift753 = shl nuw nsw i32 %.sroa.22.0.insert.ext752, 16
  %.sroa.22.0.insert.insert755 = or disjoint i32 %.sroa.26.0.insert.shift783, %.sroa.22.0.insert.shift753
  %.sroa.19.0.insert.ext722 = zext i8 %.sroa.18.0.copyload to i32
  %.sroa.19.0.insert.shift723 = shl nuw nsw i32 %.sroa.19.0.insert.ext722, 8
  %.sroa.19.0.insert.insert725 = or disjoint i32 %.sroa.22.0.insert.insert755, %.sroa.19.0.insert.shift723
  %.sroa.16.0.insert.ext692 = zext i8 %.sroa.19796.0.copyload to i32
  %.sroa.16.0.insert.insert695 = or disjoint i32 %.sroa.19.0.insert.insert725, %.sroa.16.0.insert.ext692
  store i32 %.sroa.16.0.insert.insert695, 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)
  %.pre1127 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 11), align 1
  %.pre1128 = load i32, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !31
  %.pre1129 = 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 [ %.pre1129, %124 ], [ %.sroa.16.0.insert.insert690, %119 ]
  %127 = phi i32 [ %.pre1128, %124 ], [ %.sroa.16.0.insert.insert685, %119 ]
  %128 = phi i32 [ %.pre1127, %124 ], [ %.sroa.16.0.insert.insert695, %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 = add i32 %128, -1
  %133 = add i32 %132, %131
  %134 = load i16, ptr getelementptr inbounds (i8, ptr @sBlk, i64 22), align 2, !tbaa !35
  %135 = zext nneg i16 %134 to i32
  %136 = lshr i32 %133, %135
  store i32 %136, ptr @read_inode_1.i, align 8, !tbaa !36
  %137 = zext i32 %126 to i64
  store i64 %137, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 48), align 8, !tbaa !30
  %138 = getelementptr inbounds i8, ptr %11, i64 15
  store ptr %138, 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 %180

139:                                              ; preds = %85
  br i1 %.not, label %145, label %140

140:                                              ; preds = %139
  %.sroa.0634.0.copyload = load i8, ptr %11, align 1
  %.sroa.5636.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 1
  %.sroa.5636.0.copyload = load i8, ptr %.sroa.5636.0..sroa_idx, align 1
  %.sroa.6637.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 2
  %.sroa.6637.0.copyload = load i8, ptr %.sroa.6637.0..sroa_idx, align 1
  %.sroa.8639.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 3
  %.sroa.8639.0.copyload = load i8, ptr %.sroa.8639.0..sroa_idx, align 1
  %.sroa.9640.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 4
  %.sroa.9640.0.copyload = load i8, ptr %.sroa.9640.0..sroa_idx, align 1
  %.sroa.14609.0.insert.ext = zext i8 %.sroa.0634.0.copyload to i64
  %.sroa.14609.0.insert.shift = shl nuw nsw i64 %.sroa.14609.0.insert.ext, 12
  %141 = lshr i64 %.sroa.14609.0.insert.ext, 4
  %.sroa.12588.0.insert.ext590 = zext i8 %.sroa.5636.0.copyload to i64
  %.sroa.12588.0.insert.shift591 = shl nuw nsw i64 %.sroa.12588.0.insert.ext590, 4
  %.sroa.12588.0.insert.insert593 = or disjoint i64 %.sroa.14609.0.insert.shift, %.sroa.12588.0.insert.shift591
  %142 = or disjoint i64 %.sroa.12588.0.insert.insert593, %141
  %143 = trunc i64 %142 to i16
  store i16 %143, ptr @read_inode_1.header, align 1
  %144 = tail call i8 @llvm.fshl.i8(i8 %.sroa.6637.0.copyload, i8 %.sroa.6637.0.copyload, i8 4)
  store i8 %144, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.14609.0.insert.ext626 = zext i8 %.sroa.8639.0.copyload to i16
  %.sroa.14609.0.insert.shift627 = shl nuw i16 %.sroa.14609.0.insert.ext626, 8
  %.sroa.12588.0.insert.ext605 = zext i8 %.sroa.9640.0.copyload to i16
  %.sroa.12588.0.insert.insert608 = or disjoint i16 %.sroa.14609.0.insert.shift627, %.sroa.12588.0.insert.ext605
  store i16 %.sroa.12588.0.insert.insert608, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !41
  br label %146

145:                                              ; preds = %139
  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)
  %.pre1126 = load i16, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !41
  br label %146

146:                                              ; preds = %145, %140
  %147 = phi i16 [ %.pre1126, %145 ], [ %.sroa.12588.0.insert.insert608, %140 ]
  %148 = zext i16 %147 to i64
  %149 = add nuw nsw i64 %148, 1
  %150 = tail call noalias ptr @malloc(i64 noundef %149) #12
  store ptr %150, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 56), align 8, !tbaa !43
  %151 = icmp eq ptr %150, null
  br i1 %151, label %152, label %157

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

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

161:                                              ; preds = %85, %85
  br i1 %.not, label %167, label %162

162:                                              ; preds = %161
  %.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
  %163 = lshr i64 %.sroa.14.0.insert.ext, 4
  %.sroa.12.0.insert.ext526 = zext i8 %.sroa.5.0.copyload to i64
  %.sroa.12.0.insert.shift527 = shl nuw nsw i64 %.sroa.12.0.insert.ext526, 4
  %.sroa.12.0.insert.insert529 = or disjoint i64 %.sroa.14.0.insert.shift, %.sroa.12.0.insert.shift527
  %164 = or disjoint i64 %.sroa.12.0.insert.insert529, %163
  %165 = trunc i64 %164 to i16
  store i16 %165, ptr @read_inode_1.header, align 1
  %166 = tail call i8 @llvm.fshl.i8(i8 %.sroa.6.0.copyload, i8 %.sroa.6.0.copyload, i8 4)
  store i8 %166, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 2), align 1
  %.sroa.14.0.insert.ext561 = zext i8 %.sroa.8.0.copyload to i16
  %.sroa.14.0.insert.shift562 = shl nuw i16 %.sroa.14.0.insert.ext561, 8
  %.sroa.12.0.insert.ext541 = zext i8 %.sroa.9.0.copyload to i16
  %.sroa.12.0.insert.insert544 = or disjoint i16 %.sroa.14.0.insert.shift562, %.sroa.12.0.insert.ext541
  store i16 %.sroa.12.0.insert.insert544, ptr getelementptr inbounds (i8, ptr @read_inode_1.header, i64 3), align 1, !tbaa !45
  br label %168

167:                                              ; preds = %161
  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 !45
  br label %168

168:                                              ; preds = %167, %162
  %169 = phi i16 [ %.pre1125, %167 ], [ %.sroa.12.0.insert.insert544, %162 ]
  %170 = zext i16 %169 to i64
  store i64 %170, ptr getelementptr inbounds (i8, ptr @read_inode_1.i, i64 16), align 8, !tbaa !28
  br label %180

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

172:                                              ; preds = %85
  %173 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull @screen_mutex) #9
  %174 = load ptr, ptr @stderr, align 8, !tbaa !13
  %175 = load i16, ptr @read_inode_1.header, align 1
  %176 = and i16 %175, 15
  %177 = zext nneg i16 %176 to i32
  %178 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %174, ptr noundef nonnull @.str.2, i32 noundef %177) #10
  %179 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @screen_mutex) #9
  tail call void @exit(i32 noundef 1) #11
  unreachable

180:                                              ; preds = %171, %168, %157, %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