; LLVM IR from carlk3/no-OS-FatFS-SD-SDIO-SPI-RPi-Pico :: src/ff15/source (ff)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.MKFS_PARM = type { i8, i8, i32, i32, i32 }
%struct.FATFS = type { i8, i8, i8, i8, i8, i8, i16, i16, i16, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, [512 x i8] }

@FatFs = external hidden global [4 x ptr], align 16
@f_mkfs.cst = external hidden constant [7 x i16], align 2
@f_mkfs.cst32 = external hidden constant [7 x i16], align 2
@f_mkfs.defopt = external hidden constant %struct.MKFS_PARM, align 4
@.str = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [20 x i8], align 1

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

; Function Attrs: nounwind uwtable
declare hidden i32 @get_ldnumber(ptr noundef) #1

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

declare ptr @ff_memalloc(i32 noundef) #2

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

; Function Attrs: nounwind uwtable
declare hidden void @st_dword(ptr noundef, i32 noundef) #1

declare i32 @get_fattime() #2

declare void @ff_memfree(ptr noundef) #2

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

declare i32 @disk_write(i8 noundef zeroext, ptr noundef, i64 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @st_qword(ptr noundef, i64 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden void @st_word(ptr noundef, i16 noundef zeroext) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @f_mkfs(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %3) #1 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i16, align 2
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca [2 x i64], align 16
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i8, align 1
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca [3 x i32], align 4
  %48 = alloca i16, align 2
  %49 = alloca i16, align 2
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store i32 %3, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  %52 = call i32 @get_ldnumber(ptr noundef %6)
  store i32 %52, ptr %38, align 4, !tbaa !9
  %53 = load i32, ptr %38, align 4, !tbaa !9
  %54 = icmp slt i32 %53, 0
  br i1 %54, label %55, label %56

55:                                               ; preds = %4
  store i32 11, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

56:                                               ; preds = %4
  %57 = load i32, ptr %38, align 4, !tbaa !9
  %58 = sext i32 %57 to i64
  %59 = getelementptr inbounds [4 x ptr], ptr @FatFs, i64 0, i64 %58
  %60 = load ptr, ptr %59, align 8, !tbaa !5
  %61 = icmp ne ptr %60, null
  br i1 %61, label %62, label %68

62:                                               ; preds = %56
  %63 = load i32, ptr %38, align 4, !tbaa !9
  %64 = sext i32 %63 to i64
  %65 = getelementptr inbounds [4 x ptr], ptr @FatFs, i64 0, i64 %64
  %66 = load ptr, ptr %65, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.FATFS, ptr %66, i32 0, i32 0
  store i8 0, ptr %67, align 8, !tbaa !11
  br label %68

68:                                               ; preds = %62, %56
  %69 = load i32, ptr %38, align 4, !tbaa !9
  %70 = trunc i32 %69 to i8
  store i8 %70, ptr %13, align 1, !tbaa !15
  store i8 0, ptr %14, align 1, !tbaa !15
  %71 = load i8, ptr %13, align 1, !tbaa !15
  %72 = call zeroext i8 @disk_initialize(i8 noundef zeroext %71)
  store i8 %72, ptr %39, align 1, !tbaa !15
  %73 = load i8, ptr %39, align 1, !tbaa !15
  %74 = zext i8 %73 to i32
  %75 = and i32 %74, 1
  %76 = icmp ne i32 %75, 0
  br i1 %76, label %77, label %78

77:                                               ; preds = %68
  store i32 3, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

78:                                               ; preds = %68
  %79 = load i8, ptr %39, align 1, !tbaa !15
  %80 = zext i8 %79 to i32
  %81 = and i32 %80, 4
  %82 = icmp ne i32 %81, 0
  br i1 %82, label %83, label %84

83:                                               ; preds = %78
  store i32 10, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

84:                                               ; preds = %78
  %85 = load ptr, ptr %7, align 8, !tbaa !5
  %86 = icmp ne ptr %85, null
  br i1 %86, label %88, label %87

87:                                               ; preds = %84
  store ptr @f_mkfs.defopt, ptr %7, align 8, !tbaa !5
  br label %88

88:                                               ; preds = %87, %84
  %89 = load ptr, ptr %7, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.MKFS_PARM, ptr %89, i32 0, i32 2
  %91 = load i32, ptr %90, align 4, !tbaa !16
  store i32 %91, ptr %19, align 4, !tbaa !9
  %92 = load i32, ptr %19, align 4, !tbaa !9
  %93 = icmp eq i32 %92, 0
  br i1 %93, label %94, label %97

94:                                               ; preds = %88
  %95 = load i8, ptr %13, align 1, !tbaa !15
  %96 = call i32 @disk_ioctl(i8 noundef zeroext %95, i8 noundef zeroext 3, ptr noundef %19)
  br label %97

97:                                               ; preds = %94, %88
  %98 = load i32, ptr %19, align 4, !tbaa !9
  %99 = icmp eq i32 %98, 0
  br i1 %99, label %109, label %100

100:                                              ; preds = %97
  %101 = load i32, ptr %19, align 4, !tbaa !9
  %102 = icmp ugt i32 %101, 32768
  br i1 %102, label %109, label %103

103:                                              ; preds = %100
  %104 = load i32, ptr %19, align 4, !tbaa !9
  %105 = load i32, ptr %19, align 4, !tbaa !9
  %106 = sub i32 %105, 1
  %107 = and i32 %104, %106
  %108 = icmp ne i32 %107, 0
  br i1 %108, label %109, label %110

109:                                              ; preds = %103, %100, %97
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %110

110:                                              ; preds = %109, %103
  store i16 512, ptr %17, align 2, !tbaa !18
  %111 = load ptr, ptr %7, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.MKFS_PARM, ptr %111, i32 0, i32 0
  %113 = load i8, ptr %112, align 4, !tbaa !19
  %114 = zext i8 %113 to i32
  %115 = and i32 %114, 15
  %116 = trunc i32 %115 to i8
  store i8 %116, ptr %10, align 1, !tbaa !15
  %117 = load ptr, ptr %7, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.MKFS_PARM, ptr %117, i32 0, i32 1
  %119 = load i8, ptr %118, align 1, !tbaa !20
  %120 = zext i8 %119 to i32
  %121 = icmp sge i32 %120, 1
  br i1 %121, label %122, label %133

122:                                              ; preds = %110
  %123 = load ptr, ptr %7, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.MKFS_PARM, ptr %123, i32 0, i32 1
  %125 = load i8, ptr %124, align 1, !tbaa !20
  %126 = zext i8 %125 to i32
  %127 = icmp sle i32 %126, 2
  br i1 %127, label %128, label %133

128:                                              ; preds = %122
  %129 = load ptr, ptr %7, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.MKFS_PARM, ptr %129, i32 0, i32 1
  %131 = load i8, ptr %130, align 1, !tbaa !20
  %132 = zext i8 %131 to i32
  br label %134

133:                                              ; preds = %122, %110
  br label %134

134:                                              ; preds = %133, %128
  %135 = phi i32 [ %132, %128 ], [ 1, %133 ]
  store i32 %135, ptr %35, align 4, !tbaa !9
  %136 = load ptr, ptr %7, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.MKFS_PARM, ptr %136, i32 0, i32 3
  %138 = load i32, ptr %137, align 4, !tbaa !21
  %139 = icmp uge i32 %138, 1
  br i1 %139, label %140, label %158

140:                                              ; preds = %134
  %141 = load ptr, ptr %7, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.MKFS_PARM, ptr %141, i32 0, i32 3
  %143 = load i32, ptr %142, align 4, !tbaa !21
  %144 = icmp ule i32 %143, 32768
  br i1 %144, label %145, label %158

145:                                              ; preds = %140
  %146 = load ptr, ptr %7, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.MKFS_PARM, ptr %146, i32 0, i32 3
  %148 = load i32, ptr %147, align 4, !tbaa !21
  %149 = load i16, ptr %17, align 2, !tbaa !18
  %150 = zext i16 %149 to i32
  %151 = sdiv i32 %150, 32
  %152 = urem i32 %148, %151
  %153 = icmp eq i32 %152, 0
  br i1 %153, label %154, label %158

154:                                              ; preds = %145
  %155 = load ptr, ptr %7, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.MKFS_PARM, ptr %155, i32 0, i32 3
  %157 = load i32, ptr %156, align 4, !tbaa !21
  br label %159

158:                                              ; preds = %145, %140, %134
  br label %159

159:                                              ; preds = %158, %154
  %160 = phi i32 [ %157, %154 ], [ 512, %158 ]
  store i32 %160, ptr %36, align 4, !tbaa !9
  %161 = load ptr, ptr %7, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.MKFS_PARM, ptr %161, i32 0, i32 4
  %163 = load i32, ptr %162, align 4, !tbaa !22
  %164 = icmp ule i32 %163, 16777216
  br i1 %164, label %165, label %179

165:                                              ; preds = %159
  %166 = load ptr, ptr %7, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.MKFS_PARM, ptr %166, i32 0, i32 4
  %168 = load i32, ptr %167, align 4, !tbaa !22
  %169 = load ptr, ptr %7, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.MKFS_PARM, ptr %169, i32 0, i32 4
  %171 = load i32, ptr %170, align 4, !tbaa !22
  %172 = sub i32 %171, 1
  %173 = and i32 %168, %172
  %174 = icmp eq i32 %173, 0
  br i1 %174, label %175, label %179

175:                                              ; preds = %165
  %176 = load ptr, ptr %7, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.MKFS_PARM, ptr %176, i32 0, i32 4
  %178 = load i32, ptr %177, align 4, !tbaa !22
  br label %180

179:                                              ; preds = %165, %159
  br label %180

180:                                              ; preds = %179, %175
  %181 = phi i32 [ %178, %175 ], [ 0, %179 ]
  store i32 %181, ptr %34, align 4, !tbaa !9
  %182 = load i16, ptr %17, align 2, !tbaa !18
  %183 = zext i16 %182 to i32
  %184 = load i32, ptr %34, align 4, !tbaa !9
  %185 = udiv i32 %184, %183
  store i32 %185, ptr %34, align 4, !tbaa !9
  %186 = load i32, ptr %9, align 4, !tbaa !9
  %187 = load i16, ptr %17, align 2, !tbaa !18
  %188 = zext i16 %187 to i32
  %189 = udiv i32 %186, %188
  store i32 %189, ptr %18, align 4, !tbaa !9
  %190 = load i32, ptr %18, align 4, !tbaa !9
  %191 = icmp eq i32 %190, 0
  br i1 %191, label %192, label %193

192:                                              ; preds = %180
  store i32 17, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

193:                                              ; preds = %180
  %194 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %194, ptr %15, align 8, !tbaa !5
  %195 = load ptr, ptr %15, align 8, !tbaa !5
  %196 = icmp ne ptr %195, null
  br i1 %196, label %203, label %197

197:                                              ; preds = %193
  %198 = load i32, ptr %18, align 4, !tbaa !9
  %199 = load i16, ptr %17, align 2, !tbaa !18
  %200 = zext i16 %199 to i32
  %201 = mul i32 %198, %200
  %202 = call ptr @ff_memalloc(i32 noundef %201)
  store ptr %202, ptr %15, align 8, !tbaa !5
  br label %203

203:                                              ; preds = %197, %193
  %204 = load ptr, ptr %15, align 8, !tbaa !5
  %205 = icmp ne ptr %204, null
  br i1 %205, label %207, label %206

206:                                              ; preds = %203
  store i32 17, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

207:                                              ; preds = %203
  store i64 0, ptr %25, align 8, !tbaa !23
  store i64 0, ptr %26, align 8, !tbaa !23
  %208 = load i8, ptr %13, align 1, !tbaa !15
  %209 = call i32 @disk_ioctl(i8 noundef zeroext %208, i8 noundef zeroext 1, ptr noundef %25)
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %211, label %217

211:                                              ; preds = %207
  %212 = load ptr, ptr %8, align 8, !tbaa !5
  %213 = icmp ne ptr %212, null
  br i1 %213, label %216, label %214

214:                                              ; preds = %211
  %215 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %215)
  br label %216

216:                                              ; preds = %214, %211
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

217:                                              ; preds = %207
  %218 = load i8, ptr %10, align 1, !tbaa !15
  %219 = zext i8 %218 to i32
  %220 = and i32 %219, 8
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %252, label %222

222:                                              ; preds = %217
  %223 = load i64, ptr %25, align 8, !tbaa !23
  %224 = icmp uge i64 %223, 268435456
  br i1 %224, label %225, label %243

225:                                              ; preds = %222
  %226 = load i8, ptr %10, align 1, !tbaa !15
  %227 = zext i8 %226 to i32
  %228 = or i32 %227, 128
  %229 = trunc i32 %228 to i8
  store i8 %229, ptr %10, align 1, !tbaa !15
  %230 = load i16, ptr %17, align 2, !tbaa !18
  %231 = zext i16 %230 to i32
  %232 = sdiv i32 1048576, %231
  %233 = sext i32 %232 to i64
  store i64 %233, ptr %26, align 8, !tbaa !23
  %234 = load i64, ptr %26, align 8, !tbaa !23
  %235 = load i16, ptr %17, align 2, !tbaa !18
  %236 = zext i16 %235 to i32
  %237 = sdiv i32 16384, %236
  %238 = sext i32 %237 to i64
  %239 = add i64 %234, %238
  %240 = add i64 %239, 1
  %241 = load i64, ptr %25, align 8, !tbaa !23
  %242 = sub i64 %241, %240
  store i64 %242, ptr %25, align 8, !tbaa !23
  br label %251

243:                                              ; preds = %222
  %244 = load i64, ptr %25, align 8, !tbaa !23
  %245 = icmp ugt i64 %244, 63
  br i1 %245, label %246, label %250

246:                                              ; preds = %243
  store i64 63, ptr %26, align 8, !tbaa !23
  %247 = load i64, ptr %26, align 8, !tbaa !23
  %248 = load i64, ptr %25, align 8, !tbaa !23
  %249 = sub i64 %248, %247
  store i64 %249, ptr %25, align 8, !tbaa !23
  br label %250

250:                                              ; preds = %246, %243
  br label %251

251:                                              ; preds = %250, %225
  br label %252

252:                                              ; preds = %251, %217
  %253 = load i64, ptr %25, align 8, !tbaa !23
  %254 = icmp ult i64 %253, 128
  br i1 %254, label %255, label %261

255:                                              ; preds = %252
  %256 = load ptr, ptr %8, align 8, !tbaa !5
  %257 = icmp ne ptr %256, null
  br i1 %257, label %260, label %258

258:                                              ; preds = %255
  %259 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %259)
  br label %260

260:                                              ; preds = %258, %255
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

261:                                              ; preds = %252
  br label %262

262:                                              ; preds = %261
  %263 = load i8, ptr %10, align 1, !tbaa !15
  %264 = zext i8 %263 to i32
  %265 = and i32 %264, 4
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %267, label %280

267:                                              ; preds = %262
  %268 = load i8, ptr %10, align 1, !tbaa !15
  %269 = zext i8 %268 to i32
  %270 = and i32 %269, 7
  %271 = icmp eq i32 %270, 4
  br i1 %271, label %278, label %272

272:                                              ; preds = %267
  %273 = load i64, ptr %25, align 8, !tbaa !23
  %274 = icmp uge i64 %273, 67108864
  br i1 %274, label %278, label %275

275:                                              ; preds = %272
  %276 = load i32, ptr %34, align 4, !tbaa !9
  %277 = icmp ugt i32 %276, 128
  br i1 %277, label %278, label %279

278:                                              ; preds = %275, %272, %267
  store i8 4, ptr %11, align 1, !tbaa !15
  br label %318

279:                                              ; preds = %275
  br label %280

280:                                              ; preds = %279, %262
  %281 = load i64, ptr %25, align 8, !tbaa !23
  %282 = icmp uge i64 %281, 4294967296
  br i1 %282, label %283, label %289

283:                                              ; preds = %280
  %284 = load ptr, ptr %8, align 8, !tbaa !5
  %285 = icmp ne ptr %284, null
  br i1 %285, label %288, label %286

286:                                              ; preds = %283
  %287 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %287)
  br label %288

288:                                              ; preds = %286, %283
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

289:                                              ; preds = %280
  %290 = load i32, ptr %34, align 4, !tbaa !9
  %291 = icmp ugt i32 %290, 128
  br i1 %291, label %292, label %293

292:                                              ; preds = %289
  store i32 128, ptr %34, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %292, %289
  %294 = load i8, ptr %10, align 1, !tbaa !15
  %295 = zext i8 %294 to i32
  %296 = and i32 %295, 2
  %297 = icmp ne i32 %296, 0
  br i1 %297, label %298, label %305

298:                                              ; preds = %293
  %299 = load i8, ptr %10, align 1, !tbaa !15
  %300 = zext i8 %299 to i32
  %301 = and i32 %300, 1
  %302 = icmp ne i32 %301, 0
  br i1 %302, label %304, label %303

303:                                              ; preds = %298
  store i8 3, ptr %11, align 1, !tbaa !15
  br label %318

304:                                              ; preds = %298
  br label %305

305:                                              ; preds = %304, %293
  %306 = load i8, ptr %10, align 1, !tbaa !15
  %307 = zext i8 %306 to i32
  %308 = and i32 %307, 1
  %309 = icmp ne i32 %308, 0
  br i1 %309, label %316, label %310

310:                                              ; preds = %305
  %311 = load ptr, ptr %8, align 8, !tbaa !5
  %312 = icmp ne ptr %311, null
  br i1 %312, label %315, label %313

313:                                              ; preds = %310
  %314 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %314)
  br label %315

315:                                              ; preds = %313, %310
  store i32 19, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

316:                                              ; preds = %305
  store i8 2, ptr %11, align 1, !tbaa !15
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317, %303, %278
  %319 = load i64, ptr %25, align 8, !tbaa !23
  %320 = trunc i64 %319 to i32
  %321 = call i32 @get_fattime()
  %322 = add i32 %320, %321
  store i32 %322, ptr %24, align 4, !tbaa !9
  %323 = load i8, ptr %11, align 1, !tbaa !15
  %324 = zext i8 %323 to i32
  %325 = icmp eq i32 %324, 4
  br i1 %325, label %326, label %1123

326:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  %327 = load i64, ptr %25, align 8, !tbaa !23
  %328 = icmp ult i64 %327, 4096
  br i1 %328, label %329, label %335

329:                                              ; preds = %326
  %330 = load ptr, ptr %8, align 8, !tbaa !5
  %331 = icmp ne ptr %330, null
  br i1 %331, label %334, label %332

332:                                              ; preds = %329
  %333 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %333)
  br label %334

334:                                              ; preds = %332, %329
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

335:                                              ; preds = %326
  %336 = load i32, ptr %34, align 4, !tbaa !9
  %337 = icmp eq i32 %336, 0
  br i1 %337, label %338, label %347

338:                                              ; preds = %335
  store i32 8, ptr %34, align 4, !tbaa !9
  %339 = load i64, ptr %25, align 8, !tbaa !23
  %340 = icmp uge i64 %339, 524288
  br i1 %340, label %341, label %342

341:                                              ; preds = %338
  store i32 64, ptr %34, align 4, !tbaa !9
  br label %342

342:                                              ; preds = %341, %338
  %343 = load i64, ptr %25, align 8, !tbaa !23
  %344 = icmp uge i64 %343, 67108864
  br i1 %344, label %345, label %346

345:                                              ; preds = %342
  store i32 256, ptr %34, align 4, !tbaa !9
  br label %346

346:                                              ; preds = %345, %342
  br label %347

347:                                              ; preds = %346, %335
  %348 = load i64, ptr %26, align 8, !tbaa !23
  %349 = add i64 %348, 32
  store i64 %349, ptr %27, align 8, !tbaa !23
  %350 = load i64, ptr %25, align 8, !tbaa !23
  %351 = load i32, ptr %34, align 4, !tbaa !9
  %352 = zext i32 %351 to i64
  %353 = udiv i64 %350, %352
  %354 = add i64 %353, 2
  %355 = mul i64 %354, 4
  %356 = load i16, ptr %17, align 2, !tbaa !18
  %357 = zext i16 %356 to i64
  %358 = add i64 %355, %357
  %359 = sub i64 %358, 1
  %360 = trunc i64 %359 to i32
  %361 = load i16, ptr %17, align 2, !tbaa !18
  %362 = zext i16 %361 to i32
  %363 = udiv i32 %360, %362
  store i32 %363, ptr %32, align 4, !tbaa !9
  %364 = load i64, ptr %27, align 8, !tbaa !23
  %365 = load i32, ptr %32, align 4, !tbaa !9
  %366 = zext i32 %365 to i64
  %367 = add i64 %364, %366
  %368 = load i32, ptr %19, align 4, !tbaa !9
  %369 = zext i32 %368 to i64
  %370 = add i64 %367, %369
  %371 = sub i64 %370, 1
  %372 = load i32, ptr %19, align 4, !tbaa !9
  %373 = zext i32 %372 to i64
  %374 = sub i64 %373, 1
  %375 = xor i64 %374, -1
  %376 = and i64 %371, %375
  store i64 %376, ptr %28, align 8, !tbaa !23
  %377 = load i64, ptr %28, align 8, !tbaa !23
  %378 = load i64, ptr %26, align 8, !tbaa !23
  %379 = sub i64 %377, %378
  %380 = load i64, ptr %25, align 8, !tbaa !23
  %381 = udiv i64 %380, 2
  %382 = icmp uge i64 %379, %381
  br i1 %382, label %383, label %389

383:                                              ; preds = %347
  %384 = load ptr, ptr %8, align 8, !tbaa !5
  %385 = icmp ne ptr %384, null
  br i1 %385, label %388, label %386

386:                                              ; preds = %383
  %387 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %387)
  br label %388

388:                                              ; preds = %386, %383
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

389:                                              ; preds = %347
  %390 = load i64, ptr %25, align 8, !tbaa !23
  %391 = load i64, ptr %28, align 8, !tbaa !23
  %392 = load i64, ptr %26, align 8, !tbaa !23
  %393 = sub i64 %391, %392
  %394 = sub i64 %390, %393
  %395 = load i32, ptr %34, align 4, !tbaa !9
  %396 = zext i32 %395 to i64
  %397 = udiv i64 %394, %396
  %398 = trunc i64 %397 to i32
  store i32 %398, ptr %20, align 4, !tbaa !9
  %399 = load i32, ptr %20, align 4, !tbaa !9
  %400 = icmp ult i32 %399, 16
  br i1 %400, label %401, label %407

401:                                              ; preds = %389
  %402 = load ptr, ptr %8, align 8, !tbaa !5
  %403 = icmp ne ptr %402, null
  br i1 %403, label %406, label %404

404:                                              ; preds = %401
  %405 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %405)
  br label %406

406:                                              ; preds = %404, %401
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

407:                                              ; preds = %389
  %408 = load i32, ptr %20, align 4, !tbaa !9
  %409 = icmp ugt i32 %408, 2147483645
  br i1 %409, label %410, label %416

410:                                              ; preds = %407
  %411 = load ptr, ptr %8, align 8, !tbaa !5
  %412 = icmp ne ptr %411, null
  br i1 %412, label %415, label %413

413:                                              ; preds = %410
  %414 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %414)
  br label %415

415:                                              ; preds = %413, %410
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

416:                                              ; preds = %407
  %417 = load i32, ptr %20, align 4, !tbaa !9
  %418 = add i32 %417, 7
  %419 = udiv i32 %418, 8
  store i32 %419, ptr %42, align 4, !tbaa !9
  %420 = load i32, ptr %42, align 4, !tbaa !9
  %421 = load i32, ptr %34, align 4, !tbaa !9
  %422 = load i16, ptr %17, align 2, !tbaa !18
  %423 = zext i16 %422 to i32
  %424 = mul i32 %421, %423
  %425 = add i32 %420, %424
  %426 = sub i32 %425, 1
  %427 = load i32, ptr %34, align 4, !tbaa !9
  %428 = load i16, ptr %17, align 2, !tbaa !18
  %429 = zext i16 %428 to i32
  %430 = mul i32 %427, %429
  %431 = udiv i32 %426, %430
  %432 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 0
  store i32 %431, ptr %432, align 4, !tbaa !9
  %433 = load i64, ptr %28, align 8, !tbaa !23
  %434 = load i32, ptr %34, align 4, !tbaa !9
  %435 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 0
  %436 = load i32, ptr %435, align 4, !tbaa !9
  %437 = mul i32 %434, %436
  %438 = zext i32 %437 to i64
  %439 = add i64 %433, %438
  store i64 %439, ptr %29, align 8, !tbaa !23
  store i32 0, ptr %44, align 4, !tbaa !9
  store i32 0, ptr %51, align 4, !tbaa !9
  store i16 0, ptr %49, align 2, !tbaa !18
  store i32 0, ptr %37, align 4, !tbaa !9
  store i32 0, ptr %50, align 4, !tbaa !9
  store i32 0, ptr %43, align 4, !tbaa !9
  br label %440

440:                                              ; preds = %570, %416
  %441 = load i32, ptr %51, align 4, !tbaa !9
  switch i32 %441, label %498 [
    i32 0, label %442
    i32 1, label %490
  ]

442:                                              ; preds = %440
  %443 = load i16, ptr %49, align 2, !tbaa !18
  %444 = zext i16 %443 to i32
  %445 = call i32 @ff_wtoupper(i32 noundef %444)
  %446 = trunc i32 %445 to i16
  store i16 %446, ptr %48, align 2, !tbaa !18
  %447 = load i16, ptr %48, align 2, !tbaa !18
  %448 = zext i16 %447 to i32
  %449 = load i16, ptr %49, align 2, !tbaa !18
  %450 = zext i16 %449 to i32
  %451 = icmp ne i32 %448, %450
  br i1 %451, label %452, label %455

452:                                              ; preds = %442
  %453 = load i16, ptr %49, align 2, !tbaa !18
  %454 = add i16 %453, 1
  store i16 %454, ptr %49, align 2, !tbaa !18
  br label %508

455:                                              ; preds = %442
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %456

456:                                              ; preds = %482, %455
  %457 = load i16, ptr %49, align 2, !tbaa !18
  %458 = zext i16 %457 to i32
  %459 = load i32, ptr %50, align 4, !tbaa !9
  %460 = add i32 %458, %459
  %461 = trunc i32 %460 to i16
  %462 = zext i16 %461 to i32
  %463 = icmp ne i32 %462, 0
  br i1 %463, label %464, label %479

464:                                              ; preds = %456
  %465 = load i16, ptr %49, align 2, !tbaa !18
  %466 = zext i16 %465 to i32
  %467 = load i32, ptr %50, align 4, !tbaa !9
  %468 = add i32 %466, %467
  %469 = trunc i32 %468 to i16
  %470 = zext i16 %469 to i32
  %471 = load i16, ptr %49, align 2, !tbaa !18
  %472 = zext i16 %471 to i32
  %473 = load i32, ptr %50, align 4, !tbaa !9
  %474 = add i32 %472, %473
  %475 = trunc i32 %474 to i16
  %476 = zext i16 %475 to i32
  %477 = call i32 @ff_wtoupper(i32 noundef %476)
  %478 = icmp eq i32 %470, %477
  br label %479

479:                                              ; preds = %464, %456
  %480 = phi i1 [ false, %456 ], [ %478, %464 ]
  br i1 %480, label %481, label %485

481:                                              ; preds = %479
  br label %482

482:                                              ; preds = %481
  %483 = load i32, ptr %50, align 4, !tbaa !9
  %484 = add i32 %483, 1
  store i32 %484, ptr %50, align 4, !tbaa !9
  br label %456, !llvm.loop !24

485:                                              ; preds = %479
  %486 = load i32, ptr %50, align 4, !tbaa !9
  %487 = icmp uge i32 %486, 128
  br i1 %487, label %488, label %489

488:                                              ; preds = %485
  store i16 -1, ptr %48, align 2, !tbaa !18
  store i32 2, ptr %51, align 4, !tbaa !9
  br label %508

489:                                              ; preds = %485
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %490

490:                                              ; preds = %489, %440
  %491 = load i16, ptr %49, align 2, !tbaa !18
  %492 = add i16 %491, 1
  store i16 %492, ptr %49, align 2, !tbaa !18
  store i16 %491, ptr %48, align 2, !tbaa !18
  %493 = load i32, ptr %50, align 4, !tbaa !9
  %494 = add i32 %493, -1
  store i32 %494, ptr %50, align 4, !tbaa !9
  %495 = icmp eq i32 %494, 0
  br i1 %495, label %496, label %497

496:                                              ; preds = %490
  store i32 0, ptr %51, align 4, !tbaa !9
  br label %497

497:                                              ; preds = %496, %490
  br label %508

498:                                              ; preds = %440
  %499 = load i32, ptr %50, align 4, !tbaa !9
  %500 = trunc i32 %499 to i16
  store i16 %500, ptr %48, align 2, !tbaa !18
  %501 = load i32, ptr %50, align 4, !tbaa !9
  %502 = trunc i32 %501 to i16
  %503 = zext i16 %502 to i32
  %504 = load i16, ptr %49, align 2, !tbaa !18
  %505 = zext i16 %504 to i32
  %506 = add nsw i32 %505, %503
  %507 = trunc i32 %506 to i16
  store i16 %507, ptr %49, align 2, !tbaa !18
  store i32 0, ptr %51, align 4, !tbaa !9
  br label %508

508:                                              ; preds = %498, %497, %488, %452
  %509 = load i16, ptr %48, align 2, !tbaa !18
  %510 = trunc i16 %509 to i8
  %511 = load ptr, ptr %15, align 8, !tbaa !5
  %512 = load i32, ptr %37, align 4, !tbaa !9
  %513 = add i32 %512, 0
  %514 = zext i32 %513 to i64
  %515 = getelementptr inbounds i8, ptr %511, i64 %514
  store i8 %510, ptr %515, align 1, !tbaa !15
  %516 = load i32, ptr %44, align 4, !tbaa !9
  %517 = call i32 @xsum32(i8 noundef zeroext %510, i32 noundef %516)
  store i32 %517, ptr %44, align 4, !tbaa !9
  %518 = load i16, ptr %48, align 2, !tbaa !18
  %519 = zext i16 %518 to i32
  %520 = ashr i32 %519, 8
  %521 = trunc i32 %520 to i8
  %522 = load ptr, ptr %15, align 8, !tbaa !5
  %523 = load i32, ptr %37, align 4, !tbaa !9
  %524 = add i32 %523, 1
  %525 = zext i32 %524 to i64
  %526 = getelementptr inbounds i8, ptr %522, i64 %525
  store i8 %521, ptr %526, align 1, !tbaa !15
  %527 = load i32, ptr %44, align 4, !tbaa !9
  %528 = call i32 @xsum32(i8 noundef zeroext %521, i32 noundef %527)
  store i32 %528, ptr %44, align 4, !tbaa !9
  %529 = load i32, ptr %37, align 4, !tbaa !9
  %530 = add i32 %529, 2
  store i32 %530, ptr %37, align 4, !tbaa !9
  %531 = load i32, ptr %43, align 4, !tbaa !9
  %532 = add i32 %531, 2
  store i32 %532, ptr %43, align 4, !tbaa !9
  %533 = load i16, ptr %49, align 2, !tbaa !18
  %534 = zext i16 %533 to i32
  %535 = icmp eq i32 %534, 0
  br i1 %535, label %543, label %536

536:                                              ; preds = %508
  %537 = load i32, ptr %37, align 4, !tbaa !9
  %538 = load i32, ptr %18, align 4, !tbaa !9
  %539 = load i16, ptr %17, align 2, !tbaa !18
  %540 = zext i16 %539 to i32
  %541 = mul i32 %538, %540
  %542 = icmp eq i32 %537, %541
  br i1 %542, label %543, label %569

543:                                              ; preds = %536, %508
  %544 = load i32, ptr %37, align 4, !tbaa !9
  %545 = load i16, ptr %17, align 2, !tbaa !18
  %546 = zext i16 %545 to i32
  %547 = add i32 %544, %546
  %548 = sub i32 %547, 1
  %549 = load i16, ptr %17, align 2, !tbaa !18
  %550 = zext i16 %549 to i32
  %551 = udiv i32 %548, %550
  store i32 %551, ptr %23, align 4, !tbaa !9
  %552 = load i8, ptr %13, align 1, !tbaa !15
  %553 = load ptr, ptr %15, align 8, !tbaa !5
  %554 = load i64, ptr %29, align 8, !tbaa !23
  %555 = load i32, ptr %23, align 4, !tbaa !9
  %556 = call i32 @disk_write(i8 noundef zeroext %552, ptr noundef %553, i64 noundef %554, i32 noundef %555)
  %557 = icmp ne i32 %556, 0
  br i1 %557, label %558, label %564

558:                                              ; preds = %543
  %559 = load ptr, ptr %8, align 8, !tbaa !5
  %560 = icmp ne ptr %559, null
  br i1 %560, label %563, label %561

561:                                              ; preds = %558
  %562 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %562)
  br label %563

563:                                              ; preds = %561, %558
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

564:                                              ; preds = %543
  %565 = load i32, ptr %23, align 4, !tbaa !9
  %566 = zext i32 %565 to i64
  %567 = load i64, ptr %29, align 8, !tbaa !23
  %568 = add i64 %567, %566
  store i64 %568, ptr %29, align 8, !tbaa !23
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %569

569:                                              ; preds = %564, %536
  br label %570

570:                                              ; preds = %569
  %571 = load i16, ptr %49, align 2, !tbaa !18
  %572 = icmp ne i16 %571, 0
  br i1 %572, label %440, label %573, !llvm.loop !26

573:                                              ; preds = %570
  %574 = load i32, ptr %43, align 4, !tbaa !9
  %575 = load i32, ptr %34, align 4, !tbaa !9
  %576 = load i16, ptr %17, align 2, !tbaa !18
  %577 = zext i16 %576 to i32
  %578 = mul i32 %575, %577
  %579 = add i32 %574, %578
  %580 = sub i32 %579, 1
  %581 = load i32, ptr %34, align 4, !tbaa !9
  %582 = load i16, ptr %17, align 2, !tbaa !18
  %583 = zext i16 %582 to i32
  %584 = mul i32 %581, %583
  %585 = udiv i32 %580, %584
  %586 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 1
  store i32 %585, ptr %586, align 4, !tbaa !9
  %587 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 2
  store i32 1, ptr %587, align 4, !tbaa !9
  %588 = load i64, ptr %28, align 8, !tbaa !23
  store i64 %588, ptr %29, align 8, !tbaa !23
  %589 = load i32, ptr %42, align 4, !tbaa !9
  %590 = load i16, ptr %17, align 2, !tbaa !18
  %591 = zext i16 %590 to i32
  %592 = add i32 %589, %591
  %593 = sub i32 %592, 1
  %594 = load i16, ptr %17, align 2, !tbaa !18
  %595 = zext i16 %594 to i32
  %596 = udiv i32 %593, %595
  store i32 %596, ptr %22, align 4, !tbaa !9
  %597 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 0
  %598 = load i32, ptr %597, align 4, !tbaa !9
  %599 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 1
  %600 = load i32, ptr %599, align 4, !tbaa !9
  %601 = add i32 %598, %600
  %602 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 2
  %603 = load i32, ptr %602, align 4, !tbaa !9
  %604 = add i32 %601, %603
  store i32 %604, ptr %45, align 4, !tbaa !9
  br label %605

605:                                              ; preds = %673, %573
  %606 = load ptr, ptr %15, align 8, !tbaa !5
  %607 = load i32, ptr %18, align 4, !tbaa !9
  %608 = load i16, ptr %17, align 2, !tbaa !18
  %609 = zext i16 %608 to i32
  %610 = mul i32 %607, %609
  %611 = zext i32 %610 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %606, i8 0, i64 %611, i1 false)
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %612

612:                                              ; preds = %626, %605
  %613 = load i32, ptr %45, align 4, !tbaa !9
  %614 = icmp ne i32 %613, 0
  br i1 %614, label %615, label %623

615:                                              ; preds = %612
  %616 = load i32, ptr %37, align 4, !tbaa !9
  %617 = udiv i32 %616, 8
  %618 = load i32, ptr %18, align 4, !tbaa !9
  %619 = load i16, ptr %17, align 2, !tbaa !18
  %620 = zext i16 %619 to i32
  %621 = mul i32 %618, %620
  %622 = icmp ult i32 %617, %621
  br label %623

623:                                              ; preds = %615, %612
  %624 = phi i1 [ false, %612 ], [ %622, %615 ]
  br i1 %624, label %625, label %643

625:                                              ; preds = %623
  br label %626

626:                                              ; preds = %625
  %627 = load i32, ptr %37, align 4, !tbaa !9
  %628 = urem i32 %627, 8
  %629 = shl i32 1, %628
  %630 = load ptr, ptr %15, align 8, !tbaa !5
  %631 = load i32, ptr %37, align 4, !tbaa !9
  %632 = udiv i32 %631, 8
  %633 = zext i32 %632 to i64
  %634 = getelementptr inbounds i8, ptr %630, i64 %633
  %635 = load i8, ptr %634, align 1, !tbaa !15
  %636 = zext i8 %635 to i32
  %637 = or i32 %636, %629
  %638 = trunc i32 %637 to i8
  store i8 %638, ptr %634, align 1, !tbaa !15
  %639 = load i32, ptr %37, align 4, !tbaa !9
  %640 = add i32 %639, 1
  store i32 %640, ptr %37, align 4, !tbaa !9
  %641 = load i32, ptr %45, align 4, !tbaa !9
  %642 = add i32 %641, -1
  store i32 %642, ptr %45, align 4, !tbaa !9
  br label %612, !llvm.loop !27

643:                                              ; preds = %623
  %644 = load i32, ptr %22, align 4, !tbaa !9
  %645 = load i32, ptr %18, align 4, !tbaa !9
  %646 = icmp ugt i32 %644, %645
  br i1 %646, label %647, label %649

647:                                              ; preds = %643
  %648 = load i32, ptr %18, align 4, !tbaa !9
  br label %651

649:                                              ; preds = %643
  %650 = load i32, ptr %22, align 4, !tbaa !9
  br label %651

651:                                              ; preds = %649, %647
  %652 = phi i32 [ %648, %647 ], [ %650, %649 ]
  store i32 %652, ptr %23, align 4, !tbaa !9
  %653 = load i8, ptr %13, align 1, !tbaa !15
  %654 = load ptr, ptr %15, align 8, !tbaa !5
  %655 = load i64, ptr %29, align 8, !tbaa !23
  %656 = load i32, ptr %23, align 4, !tbaa !9
  %657 = call i32 @disk_write(i8 noundef zeroext %653, ptr noundef %654, i64 noundef %655, i32 noundef %656)
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %659, label %665

659:                                              ; preds = %651
  %660 = load ptr, ptr %8, align 8, !tbaa !5
  %661 = icmp ne ptr %660, null
  br i1 %661, label %664, label %662

662:                                              ; preds = %659
  %663 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %663)
  br label %664

664:                                              ; preds = %662, %659
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

665:                                              ; preds = %651
  %666 = load i32, ptr %23, align 4, !tbaa !9
  %667 = zext i32 %666 to i64
  %668 = load i64, ptr %29, align 8, !tbaa !23
  %669 = add i64 %668, %667
  store i64 %669, ptr %29, align 8, !tbaa !23
  %670 = load i32, ptr %23, align 4, !tbaa !9
  %671 = load i32, ptr %22, align 4, !tbaa !9
  %672 = sub i32 %671, %670
  store i32 %672, ptr %22, align 4, !tbaa !9
  br label %673

673:                                              ; preds = %665
  %674 = load i32, ptr %22, align 4, !tbaa !9
  %675 = icmp ne i32 %674, 0
  br i1 %675, label %605, label %676, !llvm.loop !28

676:                                              ; preds = %673
  %677 = load i64, ptr %27, align 8, !tbaa !23
  store i64 %677, ptr %29, align 8, !tbaa !23
  %678 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %678, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %46, align 4, !tbaa !9
  store i32 0, ptr %45, align 4, !tbaa !9
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %679

679:                                              ; preds = %793, %676
  %680 = load ptr, ptr %15, align 8, !tbaa !5
  %681 = load i32, ptr %18, align 4, !tbaa !9
  %682 = load i16, ptr %17, align 2, !tbaa !18
  %683 = zext i16 %682 to i32
  %684 = mul i32 %681, %683
  %685 = zext i32 %684 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %680, i8 0, i64 %685, i1 false)
  store i32 0, ptr %37, align 4, !tbaa !9
  %686 = load i32, ptr %46, align 4, !tbaa !9
  %687 = icmp eq i32 %686, 0
  br i1 %687, label %688, label %705

688:                                              ; preds = %679
  %689 = load ptr, ptr %15, align 8, !tbaa !5
  %690 = load i32, ptr %37, align 4, !tbaa !9
  %691 = zext i32 %690 to i64
  %692 = getelementptr inbounds i8, ptr %689, i64 %691
  call void @st_dword(ptr noundef %692, i32 noundef -8)
  %693 = load i32, ptr %37, align 4, !tbaa !9
  %694 = add i32 %693, 4
  store i32 %694, ptr %37, align 4, !tbaa !9
  %695 = load i32, ptr %46, align 4, !tbaa !9
  %696 = add i32 %695, 1
  store i32 %696, ptr %46, align 4, !tbaa !9
  %697 = load ptr, ptr %15, align 8, !tbaa !5
  %698 = load i32, ptr %37, align 4, !tbaa !9
  %699 = zext i32 %698 to i64
  %700 = getelementptr inbounds i8, ptr %697, i64 %699
  call void @st_dword(ptr noundef %700, i32 noundef -1)
  %701 = load i32, ptr %37, align 4, !tbaa !9
  %702 = add i32 %701, 4
  store i32 %702, ptr %37, align 4, !tbaa !9
  %703 = load i32, ptr %46, align 4, !tbaa !9
  %704 = add i32 %703, 1
  store i32 %704, ptr %46, align 4, !tbaa !9
  br label %705

705:                                              ; preds = %688, %679
  br label %706

706:                                              ; preds = %761, %705
  br label %707

707:                                              ; preds = %730, %706
  %708 = load i32, ptr %45, align 4, !tbaa !9
  %709 = icmp ne i32 %708, 0
  br i1 %709, label %710, label %717

710:                                              ; preds = %707
  %711 = load i32, ptr %37, align 4, !tbaa !9
  %712 = load i32, ptr %18, align 4, !tbaa !9
  %713 = load i16, ptr %17, align 2, !tbaa !18
  %714 = zext i16 %713 to i32
  %715 = mul i32 %712, %714
  %716 = icmp ult i32 %711, %715
  br label %717

717:                                              ; preds = %710, %707
  %718 = phi i1 [ false, %707 ], [ %716, %710 ]
  br i1 %718, label %719, label %738

719:                                              ; preds = %717
  %720 = load ptr, ptr %15, align 8, !tbaa !5
  %721 = load i32, ptr %37, align 4, !tbaa !9
  %722 = zext i32 %721 to i64
  %723 = getelementptr inbounds i8, ptr %720, i64 %722
  %724 = load i32, ptr %45, align 4, !tbaa !9
  %725 = icmp ugt i32 %724, 1
  br i1 %725, label %726, label %729

726:                                              ; preds = %719
  %727 = load i32, ptr %46, align 4, !tbaa !9
  %728 = add i32 %727, 1
  br label %730

729:                                              ; preds = %719
  br label %730

730:                                              ; preds = %729, %726
  %731 = phi i32 [ %728, %726 ], [ -1, %729 ]
  call void @st_dword(ptr noundef %723, i32 noundef %731)
  %732 = load i32, ptr %37, align 4, !tbaa !9
  %733 = add i32 %732, 4
  store i32 %733, ptr %37, align 4, !tbaa !9
  %734 = load i32, ptr %46, align 4, !tbaa !9
  %735 = add i32 %734, 1
  store i32 %735, ptr %46, align 4, !tbaa !9
  %736 = load i32, ptr %45, align 4, !tbaa !9
  %737 = add i32 %736, -1
  store i32 %737, ptr %45, align 4, !tbaa !9
  br label %707, !llvm.loop !29

738:                                              ; preds = %717
  %739 = load i32, ptr %45, align 4, !tbaa !9
  %740 = icmp eq i32 %739, 0
  br i1 %740, label %741, label %750

741:                                              ; preds = %738
  %742 = load i32, ptr %50, align 4, !tbaa !9
  %743 = icmp ult i32 %742, 3
  br i1 %743, label %744, label %750

744:                                              ; preds = %741
  %745 = load i32, ptr %50, align 4, !tbaa !9
  %746 = add i32 %745, 1
  store i32 %746, ptr %50, align 4, !tbaa !9
  %747 = zext i32 %745 to i64
  %748 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 %747
  %749 = load i32, ptr %748, align 4, !tbaa !9
  store i32 %749, ptr %45, align 4, !tbaa !9
  br label %750

750:                                              ; preds = %744, %741, %738
  br label %751

751:                                              ; preds = %750
  %752 = load i32, ptr %45, align 4, !tbaa !9
  %753 = icmp ne i32 %752, 0
  br i1 %753, label %754, label %761

754:                                              ; preds = %751
  %755 = load i32, ptr %37, align 4, !tbaa !9
  %756 = load i32, ptr %18, align 4, !tbaa !9
  %757 = load i16, ptr %17, align 2, !tbaa !18
  %758 = zext i16 %757 to i32
  %759 = mul i32 %756, %758
  %760 = icmp ult i32 %755, %759
  br label %761

761:                                              ; preds = %754, %751
  %762 = phi i1 [ false, %751 ], [ %760, %754 ]
  br i1 %762, label %706, label %763, !llvm.loop !30

763:                                              ; preds = %761
  %764 = load i32, ptr %22, align 4, !tbaa !9
  %765 = load i32, ptr %18, align 4, !tbaa !9
  %766 = icmp ugt i32 %764, %765
  br i1 %766, label %767, label %769

767:                                              ; preds = %763
  %768 = load i32, ptr %18, align 4, !tbaa !9
  br label %771

769:                                              ; preds = %763
  %770 = load i32, ptr %22, align 4, !tbaa !9
  br label %771

771:                                              ; preds = %769, %767
  %772 = phi i32 [ %768, %767 ], [ %770, %769 ]
  store i32 %772, ptr %23, align 4, !tbaa !9
  %773 = load i8, ptr %13, align 1, !tbaa !15
  %774 = load ptr, ptr %15, align 8, !tbaa !5
  %775 = load i64, ptr %29, align 8, !tbaa !23
  %776 = load i32, ptr %23, align 4, !tbaa !9
  %777 = call i32 @disk_write(i8 noundef zeroext %773, ptr noundef %774, i64 noundef %775, i32 noundef %776)
  %778 = icmp ne i32 %777, 0
  br i1 %778, label %779, label %785

779:                                              ; preds = %771
  %780 = load ptr, ptr %8, align 8, !tbaa !5
  %781 = icmp ne ptr %780, null
  br i1 %781, label %784, label %782

782:                                              ; preds = %779
  %783 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %783)
  br label %784

784:                                              ; preds = %782, %779
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

785:                                              ; preds = %771
  %786 = load i32, ptr %23, align 4, !tbaa !9
  %787 = zext i32 %786 to i64
  %788 = load i64, ptr %29, align 8, !tbaa !23
  %789 = add i64 %788, %787
  store i64 %789, ptr %29, align 8, !tbaa !23
  %790 = load i32, ptr %23, align 4, !tbaa !9
  %791 = load i32, ptr %22, align 4, !tbaa !9
  %792 = sub i32 %791, %790
  store i32 %792, ptr %22, align 4, !tbaa !9
  br label %793

793:                                              ; preds = %785
  %794 = load i32, ptr %22, align 4, !tbaa !9
  %795 = icmp ne i32 %794, 0
  br i1 %795, label %679, label %796, !llvm.loop !31

796:                                              ; preds = %793
  %797 = load ptr, ptr %15, align 8, !tbaa !5
  %798 = load i32, ptr %18, align 4, !tbaa !9
  %799 = load i16, ptr %17, align 2, !tbaa !18
  %800 = zext i16 %799 to i32
  %801 = mul i32 %798, %800
  %802 = zext i32 %801 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %797, i8 0, i64 %802, i1 false)
  %803 = load ptr, ptr %15, align 8, !tbaa !5
  %804 = getelementptr inbounds i8, ptr %803, i64 0
  store i8 -125, ptr %804, align 1, !tbaa !15
  %805 = load ptr, ptr %15, align 8, !tbaa !5
  %806 = getelementptr inbounds i8, ptr %805, i64 32
  store i8 -127, ptr %806, align 1, !tbaa !15
  %807 = load ptr, ptr %15, align 8, !tbaa !5
  %808 = getelementptr inbounds i8, ptr %807, i64 32
  %809 = getelementptr inbounds i8, ptr %808, i64 20
  call void @st_dword(ptr noundef %809, i32 noundef 2)
  %810 = load ptr, ptr %15, align 8, !tbaa !5
  %811 = getelementptr inbounds i8, ptr %810, i64 32
  %812 = getelementptr inbounds i8, ptr %811, i64 24
  %813 = load i32, ptr %42, align 4, !tbaa !9
  call void @st_dword(ptr noundef %812, i32 noundef %813)
  %814 = load ptr, ptr %15, align 8, !tbaa !5
  %815 = getelementptr inbounds i8, ptr %814, i64 64
  store i8 -126, ptr %815, align 1, !tbaa !15
  %816 = load ptr, ptr %15, align 8, !tbaa !5
  %817 = getelementptr inbounds i8, ptr %816, i64 64
  %818 = getelementptr inbounds i8, ptr %817, i64 4
  %819 = load i32, ptr %44, align 4, !tbaa !9
  call void @st_dword(ptr noundef %818, i32 noundef %819)
  %820 = load ptr, ptr %15, align 8, !tbaa !5
  %821 = getelementptr inbounds i8, ptr %820, i64 64
  %822 = getelementptr inbounds i8, ptr %821, i64 20
  %823 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 0
  %824 = load i32, ptr %823, align 4, !tbaa !9
  %825 = add i32 2, %824
  call void @st_dword(ptr noundef %822, i32 noundef %825)
  %826 = load ptr, ptr %15, align 8, !tbaa !5
  %827 = getelementptr inbounds i8, ptr %826, i64 64
  %828 = getelementptr inbounds i8, ptr %827, i64 24
  %829 = load i32, ptr %43, align 4, !tbaa !9
  call void @st_dword(ptr noundef %828, i32 noundef %829)
  %830 = load i64, ptr %28, align 8, !tbaa !23
  %831 = load i32, ptr %34, align 4, !tbaa !9
  %832 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 0
  %833 = load i32, ptr %832, align 4, !tbaa !9
  %834 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 1
  %835 = load i32, ptr %834, align 4, !tbaa !9
  %836 = add i32 %833, %835
  %837 = mul i32 %831, %836
  %838 = zext i32 %837 to i64
  %839 = add i64 %830, %838
  store i64 %839, ptr %29, align 8, !tbaa !23
  %840 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %840, ptr %22, align 4, !tbaa !9
  br label %841

841:                                              ; preds = %874, %796
  %842 = load i32, ptr %22, align 4, !tbaa !9
  %843 = load i32, ptr %18, align 4, !tbaa !9
  %844 = icmp ugt i32 %842, %843
  br i1 %844, label %845, label %847

845:                                              ; preds = %841
  %846 = load i32, ptr %18, align 4, !tbaa !9
  br label %849

847:                                              ; preds = %841
  %848 = load i32, ptr %22, align 4, !tbaa !9
  br label %849

849:                                              ; preds = %847, %845
  %850 = phi i32 [ %846, %845 ], [ %848, %847 ]
  store i32 %850, ptr %23, align 4, !tbaa !9
  %851 = load i8, ptr %13, align 1, !tbaa !15
  %852 = load ptr, ptr %15, align 8, !tbaa !5
  %853 = load i64, ptr %29, align 8, !tbaa !23
  %854 = load i32, ptr %23, align 4, !tbaa !9
  %855 = call i32 @disk_write(i8 noundef zeroext %851, ptr noundef %852, i64 noundef %853, i32 noundef %854)
  %856 = icmp ne i32 %855, 0
  br i1 %856, label %857, label %863

857:                                              ; preds = %849
  %858 = load ptr, ptr %8, align 8, !tbaa !5
  %859 = icmp ne ptr %858, null
  br i1 %859, label %862, label %860

860:                                              ; preds = %857
  %861 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %861)
  br label %862

862:                                              ; preds = %860, %857
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

863:                                              ; preds = %849
  %864 = load ptr, ptr %15, align 8, !tbaa !5
  %865 = load i16, ptr %17, align 2, !tbaa !18
  %866 = zext i16 %865 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %864, i8 0, i64 %866, i1 false)
  %867 = load i32, ptr %23, align 4, !tbaa !9
  %868 = zext i32 %867 to i64
  %869 = load i64, ptr %29, align 8, !tbaa !23
  %870 = add i64 %869, %868
  store i64 %870, ptr %29, align 8, !tbaa !23
  %871 = load i32, ptr %23, align 4, !tbaa !9
  %872 = load i32, ptr %22, align 4, !tbaa !9
  %873 = sub i32 %872, %871
  store i32 %873, ptr %22, align 4, !tbaa !9
  br label %874

874:                                              ; preds = %863
  %875 = load i32, ptr %22, align 4, !tbaa !9
  %876 = icmp ne i32 %875, 0
  br i1 %876, label %841, label %877, !llvm.loop !32

877:                                              ; preds = %874
  %878 = load i64, ptr %26, align 8, !tbaa !23
  store i64 %878, ptr %29, align 8, !tbaa !23
  store i32 0, ptr %23, align 4, !tbaa !9
  br label %879

879:                                              ; preds = %1116, %877
  %880 = load i32, ptr %23, align 4, !tbaa !9
  %881 = icmp ult i32 %880, 2
  br i1 %881, label %882, label %1119

882:                                              ; preds = %879
  %883 = load ptr, ptr %15, align 8, !tbaa !5
  %884 = load i16, ptr %17, align 2, !tbaa !18
  %885 = zext i16 %884 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %883, i8 0, i64 %885, i1 false)
  %886 = load ptr, ptr %15, align 8, !tbaa !5
  %887 = getelementptr inbounds i8, ptr %886, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %887, ptr align 1 @.str, i64 11, i1 false)
  %888 = load ptr, ptr %15, align 8, !tbaa !5
  %889 = getelementptr inbounds i8, ptr %888, i64 64
  %890 = load i64, ptr %26, align 8, !tbaa !23
  call void @st_qword(ptr noundef %889, i64 noundef %890)
  %891 = load ptr, ptr %15, align 8, !tbaa !5
  %892 = getelementptr inbounds i8, ptr %891, i64 72
  %893 = load i64, ptr %25, align 8, !tbaa !23
  call void @st_qword(ptr noundef %892, i64 noundef %893)
  %894 = load ptr, ptr %15, align 8, !tbaa !5
  %895 = getelementptr inbounds i8, ptr %894, i64 80
  %896 = load i64, ptr %27, align 8, !tbaa !23
  %897 = load i64, ptr %26, align 8, !tbaa !23
  %898 = sub i64 %896, %897
  %899 = trunc i64 %898 to i32
  call void @st_dword(ptr noundef %895, i32 noundef %899)
  %900 = load ptr, ptr %15, align 8, !tbaa !5
  %901 = getelementptr inbounds i8, ptr %900, i64 84
  %902 = load i32, ptr %32, align 4, !tbaa !9
  call void @st_dword(ptr noundef %901, i32 noundef %902)
  %903 = load ptr, ptr %15, align 8, !tbaa !5
  %904 = getelementptr inbounds i8, ptr %903, i64 88
  %905 = load i64, ptr %28, align 8, !tbaa !23
  %906 = load i64, ptr %26, align 8, !tbaa !23
  %907 = sub i64 %905, %906
  %908 = trunc i64 %907 to i32
  call void @st_dword(ptr noundef %904, i32 noundef %908)
  %909 = load ptr, ptr %15, align 8, !tbaa !5
  %910 = getelementptr inbounds i8, ptr %909, i64 92
  %911 = load i32, ptr %20, align 4, !tbaa !9
  call void @st_dword(ptr noundef %910, i32 noundef %911)
  %912 = load ptr, ptr %15, align 8, !tbaa !5
  %913 = getelementptr inbounds i8, ptr %912, i64 96
  %914 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 0
  %915 = load i32, ptr %914, align 4, !tbaa !9
  %916 = add i32 2, %915
  %917 = getelementptr inbounds [3 x i32], ptr %47, i64 0, i64 1
  %918 = load i32, ptr %917, align 4, !tbaa !9
  %919 = add i32 %916, %918
  call void @st_dword(ptr noundef %913, i32 noundef %919)
  %920 = load ptr, ptr %15, align 8, !tbaa !5
  %921 = getelementptr inbounds i8, ptr %920, i64 100
  %922 = load i32, ptr %24, align 4, !tbaa !9
  call void @st_dword(ptr noundef %921, i32 noundef %922)
  %923 = load ptr, ptr %15, align 8, !tbaa !5
  %924 = getelementptr inbounds i8, ptr %923, i64 104
  call void @st_word(ptr noundef %924, i16 noundef zeroext 256)
  %925 = load ptr, ptr %15, align 8, !tbaa !5
  %926 = getelementptr inbounds i8, ptr %925, i64 108
  store i8 0, ptr %926, align 1, !tbaa !15
  %927 = load i16, ptr %17, align 2, !tbaa !18
  %928 = zext i16 %927 to i32
  store i32 %928, ptr %37, align 4, !tbaa !9
  br label %929

929:                                              ; preds = %934, %882
  %930 = load i32, ptr %37, align 4, !tbaa !9
  %931 = lshr i32 %930, 1
  store i32 %931, ptr %37, align 4, !tbaa !9
  %932 = icmp ne i32 %931, 0
  br i1 %932, label %933, label %939

933:                                              ; preds = %929
  br label %934

934:                                              ; preds = %933
  %935 = load ptr, ptr %15, align 8, !tbaa !5
  %936 = getelementptr inbounds i8, ptr %935, i64 108
  %937 = load i8, ptr %936, align 1, !tbaa !15
  %938 = add i8 %937, 1
  store i8 %938, ptr %936, align 1, !tbaa !15
  br label %929, !llvm.loop !33

939:                                              ; preds = %929
  %940 = load ptr, ptr %15, align 8, !tbaa !5
  %941 = getelementptr inbounds i8, ptr %940, i64 109
  store i8 0, ptr %941, align 1, !tbaa !15
  %942 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %942, ptr %37, align 4, !tbaa !9
  br label %943

943:                                              ; preds = %948, %939
  %944 = load i32, ptr %37, align 4, !tbaa !9
  %945 = lshr i32 %944, 1
  store i32 %945, ptr %37, align 4, !tbaa !9
  %946 = icmp ne i32 %945, 0
  br i1 %946, label %947, label %953

947:                                              ; preds = %943
  br label %948

948:                                              ; preds = %947
  %949 = load ptr, ptr %15, align 8, !tbaa !5
  %950 = getelementptr inbounds i8, ptr %949, i64 109
  %951 = load i8, ptr %950, align 1, !tbaa !15
  %952 = add i8 %951, 1
  store i8 %952, ptr %950, align 1, !tbaa !15
  br label %943, !llvm.loop !34

953:                                              ; preds = %943
  %954 = load ptr, ptr %15, align 8, !tbaa !5
  %955 = getelementptr inbounds i8, ptr %954, i64 110
  store i8 1, ptr %955, align 1, !tbaa !15
  %956 = load ptr, ptr %15, align 8, !tbaa !5
  %957 = getelementptr inbounds i8, ptr %956, i64 111
  store i8 -128, ptr %957, align 1, !tbaa !15
  %958 = load ptr, ptr %15, align 8, !tbaa !5
  %959 = getelementptr inbounds i8, ptr %958, i64 120
  call void @st_word(ptr noundef %959, i16 noundef zeroext -277)
  %960 = load ptr, ptr %15, align 8, !tbaa !5
  %961 = getelementptr inbounds i8, ptr %960, i64 510
  call void @st_word(ptr noundef %961, i16 noundef zeroext -21931)
  store i32 0, ptr %44, align 4, !tbaa !9
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %962

962:                                              ; preds = %985, %953
  %963 = load i32, ptr %37, align 4, !tbaa !9
  %964 = load i16, ptr %17, align 2, !tbaa !18
  %965 = zext i16 %964 to i32
  %966 = icmp ult i32 %963, %965
  br i1 %966, label %967, label %988

967:                                              ; preds = %962
  %968 = load i32, ptr %37, align 4, !tbaa !9
  %969 = icmp ne i32 %968, 106
  br i1 %969, label %970, label %984

970:                                              ; preds = %967
  %971 = load i32, ptr %37, align 4, !tbaa !9
  %972 = icmp ne i32 %971, 107
  br i1 %972, label %973, label %984

973:                                              ; preds = %970
  %974 = load i32, ptr %37, align 4, !tbaa !9
  %975 = icmp ne i32 %974, 112
  br i1 %975, label %976, label %984

976:                                              ; preds = %973
  %977 = load ptr, ptr %15, align 8, !tbaa !5
  %978 = load i32, ptr %37, align 4, !tbaa !9
  %979 = zext i32 %978 to i64
  %980 = getelementptr inbounds i8, ptr %977, i64 %979
  %981 = load i8, ptr %980, align 1, !tbaa !15
  %982 = load i32, ptr %44, align 4, !tbaa !9
  %983 = call i32 @xsum32(i8 noundef zeroext %981, i32 noundef %982)
  store i32 %983, ptr %44, align 4, !tbaa !9
  br label %984

984:                                              ; preds = %976, %973, %970, %967
  br label %985

985:                                              ; preds = %984
  %986 = load i32, ptr %37, align 4, !tbaa !9
  %987 = add i32 %986, 1
  store i32 %987, ptr %37, align 4, !tbaa !9
  br label %962, !llvm.loop !35

988:                                              ; preds = %962
  %989 = load i8, ptr %13, align 1, !tbaa !15
  %990 = load ptr, ptr %15, align 8, !tbaa !5
  %991 = load i64, ptr %29, align 8, !tbaa !23
  %992 = add i64 %991, 1
  store i64 %992, ptr %29, align 8, !tbaa !23
  %993 = call i32 @disk_write(i8 noundef zeroext %989, ptr noundef %990, i64 noundef %991, i32 noundef 1)
  %994 = icmp ne i32 %993, 0
  br i1 %994, label %995, label %1001

995:                                              ; preds = %988
  %996 = load ptr, ptr %8, align 8, !tbaa !5
  %997 = icmp ne ptr %996, null
  br i1 %997, label %1000, label %998

998:                                              ; preds = %995
  %999 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %999)
  br label %1000

1000:                                             ; preds = %998, %995
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

1001:                                             ; preds = %988
  %1002 = load ptr, ptr %15, align 8, !tbaa !5
  %1003 = load i16, ptr %17, align 2, !tbaa !18
  %1004 = zext i16 %1003 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1002, i8 0, i64 %1004, i1 false)
  %1005 = load ptr, ptr %15, align 8, !tbaa !5
  %1006 = load i16, ptr %17, align 2, !tbaa !18
  %1007 = zext i16 %1006 to i32
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds i8, ptr %1005, i64 %1008
  %1010 = getelementptr inbounds i8, ptr %1009, i64 -2
  call void @st_word(ptr noundef %1010, i16 noundef zeroext -21931)
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %1011

1011:                                             ; preds = %1044, %1001
  %1012 = load i32, ptr %50, align 4, !tbaa !9
  %1013 = icmp ult i32 %1012, 9
  br i1 %1013, label %1014, label %1047

1014:                                             ; preds = %1011
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %1015

1015:                                             ; preds = %1021, %1014
  %1016 = load i32, ptr %37, align 4, !tbaa !9
  %1017 = load i16, ptr %17, align 2, !tbaa !18
  %1018 = zext i16 %1017 to i32
  %1019 = icmp ult i32 %1016, %1018
  br i1 %1019, label %1020, label %1030

1020:                                             ; preds = %1015
  br label %1021

1021:                                             ; preds = %1020
  %1022 = load ptr, ptr %15, align 8, !tbaa !5
  %1023 = load i32, ptr %37, align 4, !tbaa !9
  %1024 = add i32 %1023, 1
  store i32 %1024, ptr %37, align 4, !tbaa !9
  %1025 = zext i32 %1023 to i64
  %1026 = getelementptr inbounds i8, ptr %1022, i64 %1025
  %1027 = load i8, ptr %1026, align 1, !tbaa !15
  %1028 = load i32, ptr %44, align 4, !tbaa !9
  %1029 = call i32 @xsum32(i8 noundef zeroext %1027, i32 noundef %1028)
  store i32 %1029, ptr %44, align 4, !tbaa !9
  br label %1015, !llvm.loop !36

1030:                                             ; preds = %1015
  %1031 = load i8, ptr %13, align 1, !tbaa !15
  %1032 = load ptr, ptr %15, align 8, !tbaa !5
  %1033 = load i64, ptr %29, align 8, !tbaa !23
  %1034 = add i64 %1033, 1
  store i64 %1034, ptr %29, align 8, !tbaa !23
  %1035 = call i32 @disk_write(i8 noundef zeroext %1031, ptr noundef %1032, i64 noundef %1033, i32 noundef 1)
  %1036 = icmp ne i32 %1035, 0
  br i1 %1036, label %1037, label %1043

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr %8, align 8, !tbaa !5
  %1039 = icmp ne ptr %1038, null
  br i1 %1039, label %1042, label %1040

1040:                                             ; preds = %1037
  %1041 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1041)
  br label %1042

1042:                                             ; preds = %1040, %1037
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

1043:                                             ; preds = %1030
  br label %1044

1044:                                             ; preds = %1043
  %1045 = load i32, ptr %50, align 4, !tbaa !9
  %1046 = add i32 %1045, 1
  store i32 %1046, ptr %50, align 4, !tbaa !9
  br label %1011, !llvm.loop !37

1047:                                             ; preds = %1011
  %1048 = load ptr, ptr %15, align 8, !tbaa !5
  %1049 = load i16, ptr %17, align 2, !tbaa !18
  %1050 = zext i16 %1049 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1048, i8 0, i64 %1050, i1 false)
  br label %1051

1051:                                             ; preds = %1084, %1047
  %1052 = load i32, ptr %50, align 4, !tbaa !9
  %1053 = icmp ult i32 %1052, 11
  br i1 %1053, label %1054, label %1087

1054:                                             ; preds = %1051
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %1055

1055:                                             ; preds = %1061, %1054
  %1056 = load i32, ptr %37, align 4, !tbaa !9
  %1057 = load i16, ptr %17, align 2, !tbaa !18
  %1058 = zext i16 %1057 to i32
  %1059 = icmp ult i32 %1056, %1058
  br i1 %1059, label %1060, label %1070

1060:                                             ; preds = %1055
  br label %1061

1061:                                             ; preds = %1060
  %1062 = load ptr, ptr %15, align 8, !tbaa !5
  %1063 = load i32, ptr %37, align 4, !tbaa !9
  %1064 = add i32 %1063, 1
  store i32 %1064, ptr %37, align 4, !tbaa !9
  %1065 = zext i32 %1063 to i64
  %1066 = getelementptr inbounds i8, ptr %1062, i64 %1065
  %1067 = load i8, ptr %1066, align 1, !tbaa !15
  %1068 = load i32, ptr %44, align 4, !tbaa !9
  %1069 = call i32 @xsum32(i8 noundef zeroext %1067, i32 noundef %1068)
  store i32 %1069, ptr %44, align 4, !tbaa !9
  br label %1055, !llvm.loop !38

1070:                                             ; preds = %1055
  %1071 = load i8, ptr %13, align 1, !tbaa !15
  %1072 = load ptr, ptr %15, align 8, !tbaa !5
  %1073 = load i64, ptr %29, align 8, !tbaa !23
  %1074 = add i64 %1073, 1
  store i64 %1074, ptr %29, align 8, !tbaa !23
  %1075 = call i32 @disk_write(i8 noundef zeroext %1071, ptr noundef %1072, i64 noundef %1073, i32 noundef 1)
  %1076 = icmp ne i32 %1075, 0
  br i1 %1076, label %1077, label %1083

1077:                                             ; preds = %1070
  %1078 = load ptr, ptr %8, align 8, !tbaa !5
  %1079 = icmp ne ptr %1078, null
  br i1 %1079, label %1082, label %1080

1080:                                             ; preds = %1077
  %1081 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1081)
  br label %1082

1082:                                             ; preds = %1080, %1077
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

1083:                                             ; preds = %1070
  br label %1084

1084:                                             ; preds = %1083
  %1085 = load i32, ptr %50, align 4, !tbaa !9
  %1086 = add i32 %1085, 1
  store i32 %1086, ptr %50, align 4, !tbaa !9
  br label %1051, !llvm.loop !39

1087:                                             ; preds = %1051
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %1088

1088:                                             ; preds = %1099, %1087
  %1089 = load i32, ptr %37, align 4, !tbaa !9
  %1090 = load i16, ptr %17, align 2, !tbaa !18
  %1091 = zext i16 %1090 to i32
  %1092 = icmp ult i32 %1089, %1091
  br i1 %1092, label %1093, label %1102

1093:                                             ; preds = %1088
  %1094 = load ptr, ptr %15, align 8, !tbaa !5
  %1095 = load i32, ptr %37, align 4, !tbaa !9
  %1096 = zext i32 %1095 to i64
  %1097 = getelementptr inbounds i8, ptr %1094, i64 %1096
  %1098 = load i32, ptr %44, align 4, !tbaa !9
  call void @st_dword(ptr noundef %1097, i32 noundef %1098)
  br label %1099

1099:                                             ; preds = %1093
  %1100 = load i32, ptr %37, align 4, !tbaa !9
  %1101 = add i32 %1100, 4
  store i32 %1101, ptr %37, align 4, !tbaa !9
  br label %1088, !llvm.loop !40

1102:                                             ; preds = %1088
  %1103 = load i8, ptr %13, align 1, !tbaa !15
  %1104 = load ptr, ptr %15, align 8, !tbaa !5
  %1105 = load i64, ptr %29, align 8, !tbaa !23
  %1106 = add i64 %1105, 1
  store i64 %1106, ptr %29, align 8, !tbaa !23
  %1107 = call i32 @disk_write(i8 noundef zeroext %1103, ptr noundef %1104, i64 noundef %1105, i32 noundef 1)
  %1108 = icmp ne i32 %1107, 0
  br i1 %1108, label %1109, label %1115

1109:                                             ; preds = %1102
  %1110 = load ptr, ptr %8, align 8, !tbaa !5
  %1111 = icmp ne ptr %1110, null
  br i1 %1111, label %1114, label %1112

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1113)
  br label %1114

1114:                                             ; preds = %1112, %1109
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1120

1115:                                             ; preds = %1102
  br label %1116

1116:                                             ; preds = %1115
  %1117 = load i32, ptr %23, align 4, !tbaa !9
  %1118 = add i32 %1117, 1
  store i32 %1118, ptr %23, align 4, !tbaa !9
  br label %879, !llvm.loop !41

1119:                                             ; preds = %879
  store i32 0, ptr %41, align 4
  br label %1120

1120:                                             ; preds = %1119, %1114, %1082, %1042, %1000, %862, %784, %664, %563, %415, %406, %388, %334
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  %1121 = load i32, ptr %41, align 4
  switch i32 %1121, label %1745 [
    i32 0, label %1122
  ]

1122:                                             ; preds = %1120
  br label %1682

1123:                                             ; preds = %318
  br label %1124

1124:                                             ; preds = %1424, %1123
  %1125 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %1125, ptr %21, align 4, !tbaa !9
  %1126 = load i8, ptr %11, align 1, !tbaa !15
  %1127 = zext i8 %1126 to i32
  %1128 = icmp eq i32 %1127, 3
  br i1 %1128, label %1129, label %1187

1129:                                             ; preds = %1124
  %1130 = load i32, ptr %21, align 4, !tbaa !9
  %1131 = icmp eq i32 %1130, 0
  br i1 %1131, label %1132, label %1160

1132:                                             ; preds = %1129
  %1133 = load i64, ptr %25, align 8, !tbaa !23
  %1134 = trunc i64 %1133 to i32
  %1135 = udiv i32 %1134, 131072
  store i32 %1135, ptr %23, align 4, !tbaa !9
  store i32 0, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %21, align 4, !tbaa !9
  br label %1136

1136:                                             ; preds = %1154, %1132
  %1137 = load i32, ptr %37, align 4, !tbaa !9
  %1138 = zext i32 %1137 to i64
  %1139 = getelementptr inbounds [7 x i16], ptr @f_mkfs.cst32, i64 0, i64 %1138
  %1140 = load i16, ptr %1139, align 2, !tbaa !18
  %1141 = zext i16 %1140 to i32
  %1142 = icmp ne i32 %1141, 0
  br i1 %1142, label %1143, label %1151

1143:                                             ; preds = %1136
  %1144 = load i32, ptr %37, align 4, !tbaa !9
  %1145 = zext i32 %1144 to i64
  %1146 = getelementptr inbounds [7 x i16], ptr @f_mkfs.cst32, i64 0, i64 %1145
  %1147 = load i16, ptr %1146, align 2, !tbaa !18
  %1148 = zext i16 %1147 to i32
  %1149 = load i32, ptr %23, align 4, !tbaa !9
  %1150 = icmp ule i32 %1148, %1149
  br label %1151

1151:                                             ; preds = %1143, %1136
  %1152 = phi i1 [ false, %1136 ], [ %1150, %1143 ]
  br i1 %1152, label %1153, label %1159

1153:                                             ; preds = %1151
  br label %1154

1154:                                             ; preds = %1153
  %1155 = load i32, ptr %37, align 4, !tbaa !9
  %1156 = add i32 %1155, 1
  store i32 %1156, ptr %37, align 4, !tbaa !9
  %1157 = load i32, ptr %21, align 4, !tbaa !9
  %1158 = shl i32 %1157, 1
  store i32 %1158, ptr %21, align 4, !tbaa !9
  br label %1136, !llvm.loop !42

1159:                                             ; preds = %1151
  br label %1160

1160:                                             ; preds = %1159, %1129
  %1161 = load i64, ptr %25, align 8, !tbaa !23
  %1162 = trunc i64 %1161 to i32
  %1163 = load i32, ptr %21, align 4, !tbaa !9
  %1164 = udiv i32 %1162, %1163
  store i32 %1164, ptr %20, align 4, !tbaa !9
  %1165 = load i32, ptr %20, align 4, !tbaa !9
  %1166 = mul i32 %1165, 4
  %1167 = add i32 %1166, 8
  %1168 = load i16, ptr %17, align 2, !tbaa !18
  %1169 = zext i16 %1168 to i32
  %1170 = add i32 %1167, %1169
  %1171 = sub i32 %1170, 1
  %1172 = load i16, ptr %17, align 2, !tbaa !18
  %1173 = zext i16 %1172 to i32
  %1174 = udiv i32 %1171, %1173
  store i32 %1174, ptr %32, align 4, !tbaa !9
  store i32 32, ptr %31, align 4, !tbaa !9
  store i32 0, ptr %33, align 4, !tbaa !9
  %1175 = load i32, ptr %20, align 4, !tbaa !9
  %1176 = icmp ule i32 %1175, 65525
  br i1 %1176, label %1180, label %1177

1177:                                             ; preds = %1160
  %1178 = load i32, ptr %20, align 4, !tbaa !9
  %1179 = icmp ugt i32 %1178, 268435445
  br i1 %1179, label %1180, label %1186

1180:                                             ; preds = %1177, %1160
  %1181 = load ptr, ptr %8, align 8, !tbaa !5
  %1182 = icmp ne ptr %1181, null
  br i1 %1182, label %1185, label %1183

1183:                                             ; preds = %1180
  %1184 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1184)
  br label %1185

1185:                                             ; preds = %1183, %1180
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1186:                                             ; preds = %1177
  br label %1249

1187:                                             ; preds = %1124
  %1188 = load i32, ptr %21, align 4, !tbaa !9
  %1189 = icmp eq i32 %1188, 0
  br i1 %1189, label %1190, label %1218

1190:                                             ; preds = %1187
  %1191 = load i64, ptr %25, align 8, !tbaa !23
  %1192 = trunc i64 %1191 to i32
  %1193 = udiv i32 %1192, 4096
  store i32 %1193, ptr %23, align 4, !tbaa !9
  store i32 0, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %21, align 4, !tbaa !9
  br label %1194

1194:                                             ; preds = %1212, %1190
  %1195 = load i32, ptr %37, align 4, !tbaa !9
  %1196 = zext i32 %1195 to i64
  %1197 = getelementptr inbounds [7 x i16], ptr @f_mkfs.cst, i64 0, i64 %1196
  %1198 = load i16, ptr %1197, align 2, !tbaa !18
  %1199 = zext i16 %1198 to i32
  %1200 = icmp ne i32 %1199, 0
  br i1 %1200, label %1201, label %1209

1201:                                             ; preds = %1194
  %1202 = load i32, ptr %37, align 4, !tbaa !9
  %1203 = zext i32 %1202 to i64
  %1204 = getelementptr inbounds [7 x i16], ptr @f_mkfs.cst, i64 0, i64 %1203
  %1205 = load i16, ptr %1204, align 2, !tbaa !18
  %1206 = zext i16 %1205 to i32
  %1207 = load i32, ptr %23, align 4, !tbaa !9
  %1208 = icmp ule i32 %1206, %1207
  br label %1209

1209:                                             ; preds = %1201, %1194
  %1210 = phi i1 [ false, %1194 ], [ %1208, %1201 ]
  br i1 %1210, label %1211, label %1217

1211:                                             ; preds = %1209
  br label %1212

1212:                                             ; preds = %1211
  %1213 = load i32, ptr %37, align 4, !tbaa !9
  %1214 = add i32 %1213, 1
  store i32 %1214, ptr %37, align 4, !tbaa !9
  %1215 = load i32, ptr %21, align 4, !tbaa !9
  %1216 = shl i32 %1215, 1
  store i32 %1216, ptr %21, align 4, !tbaa !9
  br label %1194, !llvm.loop !43

1217:                                             ; preds = %1209
  br label %1218

1218:                                             ; preds = %1217, %1187
  %1219 = load i64, ptr %25, align 8, !tbaa !23
  %1220 = trunc i64 %1219 to i32
  %1221 = load i32, ptr %21, align 4, !tbaa !9
  %1222 = udiv i32 %1220, %1221
  store i32 %1222, ptr %20, align 4, !tbaa !9
  %1223 = load i32, ptr %20, align 4, !tbaa !9
  %1224 = icmp ugt i32 %1223, 4085
  br i1 %1224, label %1225, label %1229

1225:                                             ; preds = %1218
  %1226 = load i32, ptr %20, align 4, !tbaa !9
  %1227 = mul i32 %1226, 2
  %1228 = add i32 %1227, 4
  store i32 %1228, ptr %23, align 4, !tbaa !9
  br label %1235

1229:                                             ; preds = %1218
  store i8 1, ptr %11, align 1, !tbaa !15
  %1230 = load i32, ptr %20, align 4, !tbaa !9
  %1231 = mul i32 %1230, 3
  %1232 = add i32 %1231, 1
  %1233 = udiv i32 %1232, 2
  %1234 = add i32 %1233, 3
  store i32 %1234, ptr %23, align 4, !tbaa !9
  br label %1235

1235:                                             ; preds = %1229, %1225
  %1236 = load i32, ptr %23, align 4, !tbaa !9
  %1237 = load i16, ptr %17, align 2, !tbaa !18
  %1238 = zext i16 %1237 to i32
  %1239 = add i32 %1236, %1238
  %1240 = sub i32 %1239, 1
  %1241 = load i16, ptr %17, align 2, !tbaa !18
  %1242 = zext i16 %1241 to i32
  %1243 = udiv i32 %1240, %1242
  store i32 %1243, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  %1244 = load i32, ptr %36, align 4, !tbaa !9
  %1245 = mul i32 %1244, 32
  %1246 = load i16, ptr %17, align 2, !tbaa !18
  %1247 = zext i16 %1246 to i32
  %1248 = udiv i32 %1245, %1247
  store i32 %1248, ptr %33, align 4, !tbaa !9
  br label %1249

1249:                                             ; preds = %1235, %1186
  %1250 = load i64, ptr %26, align 8, !tbaa !23
  %1251 = load i32, ptr %31, align 4, !tbaa !9
  %1252 = zext i32 %1251 to i64
  %1253 = add i64 %1250, %1252
  store i64 %1253, ptr %27, align 8, !tbaa !23
  %1254 = load i64, ptr %27, align 8, !tbaa !23
  %1255 = load i32, ptr %32, align 4, !tbaa !9
  %1256 = load i32, ptr %35, align 4, !tbaa !9
  %1257 = mul i32 %1255, %1256
  %1258 = zext i32 %1257 to i64
  %1259 = add i64 %1254, %1258
  %1260 = load i32, ptr %33, align 4, !tbaa !9
  %1261 = zext i32 %1260 to i64
  %1262 = add i64 %1259, %1261
  store i64 %1262, ptr %28, align 8, !tbaa !23
  %1263 = load i64, ptr %28, align 8, !tbaa !23
  %1264 = load i32, ptr %19, align 4, !tbaa !9
  %1265 = zext i32 %1264 to i64
  %1266 = add i64 %1263, %1265
  %1267 = sub i64 %1266, 1
  %1268 = load i32, ptr %19, align 4, !tbaa !9
  %1269 = sub i32 %1268, 1
  %1270 = xor i32 %1269, -1
  %1271 = zext i32 %1270 to i64
  %1272 = and i64 %1267, %1271
  %1273 = load i64, ptr %28, align 8, !tbaa !23
  %1274 = sub i64 %1272, %1273
  %1275 = trunc i64 %1274 to i32
  store i32 %1275, ptr %23, align 4, !tbaa !9
  %1276 = load i8, ptr %11, align 1, !tbaa !15
  %1277 = zext i8 %1276 to i32
  %1278 = icmp eq i32 %1277, 3
  br i1 %1278, label %1279, label %1287

1279:                                             ; preds = %1249
  %1280 = load i32, ptr %23, align 4, !tbaa !9
  %1281 = load i32, ptr %31, align 4, !tbaa !9
  %1282 = add i32 %1281, %1280
  store i32 %1282, ptr %31, align 4, !tbaa !9
  %1283 = load i32, ptr %23, align 4, !tbaa !9
  %1284 = zext i32 %1283 to i64
  %1285 = load i64, ptr %27, align 8, !tbaa !23
  %1286 = add i64 %1285, %1284
  store i64 %1286, ptr %27, align 8, !tbaa !23
  br label %1305

1287:                                             ; preds = %1249
  %1288 = load i32, ptr %23, align 4, !tbaa !9
  %1289 = load i32, ptr %35, align 4, !tbaa !9
  %1290 = urem i32 %1288, %1289
  %1291 = icmp ne i32 %1290, 0
  br i1 %1291, label %1292, label %1299

1292:                                             ; preds = %1287
  %1293 = load i32, ptr %23, align 4, !tbaa !9
  %1294 = add i32 %1293, -1
  store i32 %1294, ptr %23, align 4, !tbaa !9
  %1295 = load i32, ptr %31, align 4, !tbaa !9
  %1296 = add i32 %1295, 1
  store i32 %1296, ptr %31, align 4, !tbaa !9
  %1297 = load i64, ptr %27, align 8, !tbaa !23
  %1298 = add i64 %1297, 1
  store i64 %1298, ptr %27, align 8, !tbaa !23
  br label %1299

1299:                                             ; preds = %1292, %1287
  %1300 = load i32, ptr %23, align 4, !tbaa !9
  %1301 = load i32, ptr %35, align 4, !tbaa !9
  %1302 = udiv i32 %1300, %1301
  %1303 = load i32, ptr %32, align 4, !tbaa !9
  %1304 = add i32 %1303, %1302
  store i32 %1304, ptr %32, align 4, !tbaa !9
  br label %1305

1305:                                             ; preds = %1299, %1279
  %1306 = load i64, ptr %25, align 8, !tbaa !23
  %1307 = load i64, ptr %28, align 8, !tbaa !23
  %1308 = load i32, ptr %21, align 4, !tbaa !9
  %1309 = mul i32 %1308, 16
  %1310 = zext i32 %1309 to i64
  %1311 = add i64 %1307, %1310
  %1312 = load i64, ptr %26, align 8, !tbaa !23
  %1313 = sub i64 %1311, %1312
  %1314 = icmp ult i64 %1306, %1313
  br i1 %1314, label %1315, label %1321

1315:                                             ; preds = %1305
  %1316 = load ptr, ptr %8, align 8, !tbaa !5
  %1317 = icmp ne ptr %1316, null
  br i1 %1317, label %1320, label %1318

1318:                                             ; preds = %1315
  %1319 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1319)
  br label %1320

1320:                                             ; preds = %1318, %1315
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1321:                                             ; preds = %1305
  %1322 = load i64, ptr %25, align 8, !tbaa !23
  %1323 = trunc i64 %1322 to i32
  %1324 = load i32, ptr %31, align 4, !tbaa !9
  %1325 = sub i32 %1323, %1324
  %1326 = load i32, ptr %32, align 4, !tbaa !9
  %1327 = load i32, ptr %35, align 4, !tbaa !9
  %1328 = mul i32 %1326, %1327
  %1329 = sub i32 %1325, %1328
  %1330 = load i32, ptr %33, align 4, !tbaa !9
  %1331 = sub i32 %1329, %1330
  %1332 = load i32, ptr %21, align 4, !tbaa !9
  %1333 = udiv i32 %1331, %1332
  store i32 %1333, ptr %20, align 4, !tbaa !9
  %1334 = load i8, ptr %11, align 1, !tbaa !15
  %1335 = zext i8 %1334 to i32
  %1336 = icmp eq i32 %1335, 3
  br i1 %1336, label %1337, label %1355

1337:                                             ; preds = %1321
  %1338 = load i32, ptr %20, align 4, !tbaa !9
  %1339 = icmp ule i32 %1338, 65525
  br i1 %1339, label %1340, label %1354

1340:                                             ; preds = %1337
  %1341 = load i32, ptr %34, align 4, !tbaa !9
  %1342 = icmp eq i32 %1341, 0
  br i1 %1342, label %1343, label %1348

1343:                                             ; preds = %1340
  %1344 = load i32, ptr %21, align 4, !tbaa !9
  %1345 = udiv i32 %1344, 2
  store i32 %1345, ptr %34, align 4, !tbaa !9
  %1346 = icmp ne i32 %1345, 0
  br i1 %1346, label %1347, label %1348

1347:                                             ; preds = %1343
  br label %1424

1348:                                             ; preds = %1343, %1340
  %1349 = load ptr, ptr %8, align 8, !tbaa !5
  %1350 = icmp ne ptr %1349, null
  br i1 %1350, label %1353, label %1351

1351:                                             ; preds = %1348
  %1352 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1352)
  br label %1353

1353:                                             ; preds = %1351, %1348
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1354:                                             ; preds = %1337
  br label %1355

1355:                                             ; preds = %1354, %1321
  %1356 = load i8, ptr %11, align 1, !tbaa !15
  %1357 = zext i8 %1356 to i32
  %1358 = icmp eq i32 %1357, 2
  br i1 %1358, label %1359, label %1410

1359:                                             ; preds = %1355
  %1360 = load i32, ptr %20, align 4, !tbaa !9
  %1361 = icmp ugt i32 %1360, 65525
  br i1 %1361, label %1362, label %1392

1362:                                             ; preds = %1359
  %1363 = load i32, ptr %34, align 4, !tbaa !9
  %1364 = icmp eq i32 %1363, 0
  br i1 %1364, label %1365, label %1372

1365:                                             ; preds = %1362
  %1366 = load i32, ptr %21, align 4, !tbaa !9
  %1367 = mul i32 %1366, 2
  %1368 = icmp ule i32 %1367, 64
  br i1 %1368, label %1369, label %1372

1369:                                             ; preds = %1365
  %1370 = load i32, ptr %21, align 4, !tbaa !9
  %1371 = mul i32 %1370, 2
  store i32 %1371, ptr %34, align 4, !tbaa !9
  br label %1424

1372:                                             ; preds = %1365, %1362
  %1373 = load i8, ptr %10, align 1, !tbaa !15
  %1374 = zext i8 %1373 to i32
  %1375 = and i32 %1374, 2
  %1376 = icmp ne i32 %1375, 0
  br i1 %1376, label %1377, label %1378

1377:                                             ; preds = %1372
  store i8 3, ptr %11, align 1, !tbaa !15
  br label %1424

1378:                                             ; preds = %1372
  %1379 = load i32, ptr %34, align 4, !tbaa !9
  %1380 = icmp eq i32 %1379, 0
  br i1 %1380, label %1381, label %1386

1381:                                             ; preds = %1378
  %1382 = load i32, ptr %21, align 4, !tbaa !9
  %1383 = mul i32 %1382, 2
  store i32 %1383, ptr %34, align 4, !tbaa !9
  %1384 = icmp ule i32 %1383, 128
  br i1 %1384, label %1385, label %1386

1385:                                             ; preds = %1381
  br label %1424

1386:                                             ; preds = %1381, %1378
  %1387 = load ptr, ptr %8, align 8, !tbaa !5
  %1388 = icmp ne ptr %1387, null
  br i1 %1388, label %1391, label %1389

1389:                                             ; preds = %1386
  %1390 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1390)
  br label %1391

1391:                                             ; preds = %1389, %1386
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1392:                                             ; preds = %1359
  %1393 = load i32, ptr %20, align 4, !tbaa !9
  %1394 = icmp ule i32 %1393, 4085
  br i1 %1394, label %1395, label %1409

1395:                                             ; preds = %1392
  %1396 = load i32, ptr %34, align 4, !tbaa !9
  %1397 = icmp eq i32 %1396, 0
  br i1 %1397, label %1398, label %1403

1398:                                             ; preds = %1395
  %1399 = load i32, ptr %21, align 4, !tbaa !9
  %1400 = mul i32 %1399, 2
  store i32 %1400, ptr %34, align 4, !tbaa !9
  %1401 = icmp ule i32 %1400, 128
  br i1 %1401, label %1402, label %1403

1402:                                             ; preds = %1398
  br label %1424

1403:                                             ; preds = %1398, %1395
  %1404 = load ptr, ptr %8, align 8, !tbaa !5
  %1405 = icmp ne ptr %1404, null
  br i1 %1405, label %1408, label %1406

1406:                                             ; preds = %1403
  %1407 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1407)
  br label %1408

1408:                                             ; preds = %1406, %1403
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1409:                                             ; preds = %1392
  br label %1410

1410:                                             ; preds = %1409, %1355
  %1411 = load i8, ptr %11, align 1, !tbaa !15
  %1412 = zext i8 %1411 to i32
  %1413 = icmp eq i32 %1412, 1
  br i1 %1413, label %1414, label %1423

1414:                                             ; preds = %1410
  %1415 = load i32, ptr %20, align 4, !tbaa !9
  %1416 = icmp ugt i32 %1415, 4085
  br i1 %1416, label %1417, label %1423

1417:                                             ; preds = %1414
  %1418 = load ptr, ptr %8, align 8, !tbaa !5
  %1419 = icmp ne ptr %1418, null
  br i1 %1419, label %1422, label %1420

1420:                                             ; preds = %1417
  %1421 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1421)
  br label %1422

1422:                                             ; preds = %1420, %1417
  store i32 14, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1423:                                             ; preds = %1414, %1410
  br label %1425

1424:                                             ; preds = %1402, %1385, %1377, %1369, %1347
  br i1 true, label %1124, label %1425

1425:                                             ; preds = %1424, %1423
  %1426 = load ptr, ptr %15, align 8, !tbaa !5
  %1427 = load i16, ptr %17, align 2, !tbaa !18
  %1428 = zext i16 %1427 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1426, i8 0, i64 %1428, i1 false)
  %1429 = load ptr, ptr %15, align 8, !tbaa !5
  %1430 = getelementptr inbounds i8, ptr %1429, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1430, ptr align 1 @.str.1, i64 11, i1 false)
  %1431 = load ptr, ptr %15, align 8, !tbaa !5
  %1432 = getelementptr inbounds i8, ptr %1431, i64 11
  %1433 = load i16, ptr %17, align 2, !tbaa !18
  call void @st_word(ptr noundef %1432, i16 noundef zeroext %1433)
  %1434 = load i32, ptr %21, align 4, !tbaa !9
  %1435 = trunc i32 %1434 to i8
  %1436 = load ptr, ptr %15, align 8, !tbaa !5
  %1437 = getelementptr inbounds i8, ptr %1436, i64 13
  store i8 %1435, ptr %1437, align 1, !tbaa !15
  %1438 = load ptr, ptr %15, align 8, !tbaa !5
  %1439 = getelementptr inbounds i8, ptr %1438, i64 14
  %1440 = load i32, ptr %31, align 4, !tbaa !9
  %1441 = trunc i32 %1440 to i16
  call void @st_word(ptr noundef %1439, i16 noundef zeroext %1441)
  %1442 = load i32, ptr %35, align 4, !tbaa !9
  %1443 = trunc i32 %1442 to i8
  %1444 = load ptr, ptr %15, align 8, !tbaa !5
  %1445 = getelementptr inbounds i8, ptr %1444, i64 16
  store i8 %1443, ptr %1445, align 1, !tbaa !15
  %1446 = load ptr, ptr %15, align 8, !tbaa !5
  %1447 = getelementptr inbounds i8, ptr %1446, i64 17
  %1448 = load i8, ptr %11, align 1, !tbaa !15
  %1449 = zext i8 %1448 to i32
  %1450 = icmp eq i32 %1449, 3
  br i1 %1450, label %1451, label %1452

1451:                                             ; preds = %1425
  br label %1454

1452:                                             ; preds = %1425
  %1453 = load i32, ptr %36, align 4, !tbaa !9
  br label %1454

1454:                                             ; preds = %1452, %1451
  %1455 = phi i32 [ 0, %1451 ], [ %1453, %1452 ]
  %1456 = trunc i32 %1455 to i16
  call void @st_word(ptr noundef %1447, i16 noundef zeroext %1456)
  %1457 = load i64, ptr %25, align 8, !tbaa !23
  %1458 = icmp ult i64 %1457, 65536
  br i1 %1458, label %1459, label %1464

1459:                                             ; preds = %1454
  %1460 = load ptr, ptr %15, align 8, !tbaa !5
  %1461 = getelementptr inbounds i8, ptr %1460, i64 19
  %1462 = load i64, ptr %25, align 8, !tbaa !23
  %1463 = trunc i64 %1462 to i16
  call void @st_word(ptr noundef %1461, i16 noundef zeroext %1463)
  br label %1469

1464:                                             ; preds = %1454
  %1465 = load ptr, ptr %15, align 8, !tbaa !5
  %1466 = getelementptr inbounds i8, ptr %1465, i64 32
  %1467 = load i64, ptr %25, align 8, !tbaa !23
  %1468 = trunc i64 %1467 to i32
  call void @st_dword(ptr noundef %1466, i32 noundef %1468)
  br label %1469

1469:                                             ; preds = %1464, %1459
  %1470 = load ptr, ptr %15, align 8, !tbaa !5
  %1471 = getelementptr inbounds i8, ptr %1470, i64 21
  store i8 -8, ptr %1471, align 1, !tbaa !15
  %1472 = load ptr, ptr %15, align 8, !tbaa !5
  %1473 = getelementptr inbounds i8, ptr %1472, i64 24
  call void @st_word(ptr noundef %1473, i16 noundef zeroext 63)
  %1474 = load ptr, ptr %15, align 8, !tbaa !5
  %1475 = getelementptr inbounds i8, ptr %1474, i64 26
  call void @st_word(ptr noundef %1475, i16 noundef zeroext 255)
  %1476 = load ptr, ptr %15, align 8, !tbaa !5
  %1477 = getelementptr inbounds i8, ptr %1476, i64 28
  %1478 = load i64, ptr %26, align 8, !tbaa !23
  %1479 = trunc i64 %1478 to i32
  call void @st_dword(ptr noundef %1477, i32 noundef %1479)
  %1480 = load i8, ptr %11, align 1, !tbaa !15
  %1481 = zext i8 %1480 to i32
  %1482 = icmp eq i32 %1481, 3
  br i1 %1482, label %1483, label %1502

1483:                                             ; preds = %1469
  %1484 = load ptr, ptr %15, align 8, !tbaa !5
  %1485 = getelementptr inbounds i8, ptr %1484, i64 67
  %1486 = load i32, ptr %24, align 4, !tbaa !9
  call void @st_dword(ptr noundef %1485, i32 noundef %1486)
  %1487 = load ptr, ptr %15, align 8, !tbaa !5
  %1488 = getelementptr inbounds i8, ptr %1487, i64 36
  %1489 = load i32, ptr %32, align 4, !tbaa !9
  call void @st_dword(ptr noundef %1488, i32 noundef %1489)
  %1490 = load ptr, ptr %15, align 8, !tbaa !5
  %1491 = getelementptr inbounds i8, ptr %1490, i64 44
  call void @st_dword(ptr noundef %1491, i32 noundef 2)
  %1492 = load ptr, ptr %15, align 8, !tbaa !5
  %1493 = getelementptr inbounds i8, ptr %1492, i64 48
  call void @st_word(ptr noundef %1493, i16 noundef zeroext 1)
  %1494 = load ptr, ptr %15, align 8, !tbaa !5
  %1495 = getelementptr inbounds i8, ptr %1494, i64 50
  call void @st_word(ptr noundef %1495, i16 noundef zeroext 6)
  %1496 = load ptr, ptr %15, align 8, !tbaa !5
  %1497 = getelementptr inbounds i8, ptr %1496, i64 64
  store i8 -128, ptr %1497, align 1, !tbaa !15
  %1498 = load ptr, ptr %15, align 8, !tbaa !5
  %1499 = getelementptr inbounds i8, ptr %1498, i64 66
  store i8 41, ptr %1499, align 1, !tbaa !15
  %1500 = load ptr, ptr %15, align 8, !tbaa !5
  %1501 = getelementptr inbounds i8, ptr %1500, i64 71
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1501, ptr align 1 @.str.2, i64 19, i1 false)
  br label %1516

1502:                                             ; preds = %1469
  %1503 = load ptr, ptr %15, align 8, !tbaa !5
  %1504 = getelementptr inbounds i8, ptr %1503, i64 39
  %1505 = load i32, ptr %24, align 4, !tbaa !9
  call void @st_dword(ptr noundef %1504, i32 noundef %1505)
  %1506 = load ptr, ptr %15, align 8, !tbaa !5
  %1507 = getelementptr inbounds i8, ptr %1506, i64 22
  %1508 = load i32, ptr %32, align 4, !tbaa !9
  %1509 = trunc i32 %1508 to i16
  call void @st_word(ptr noundef %1507, i16 noundef zeroext %1509)
  %1510 = load ptr, ptr %15, align 8, !tbaa !5
  %1511 = getelementptr inbounds i8, ptr %1510, i64 36
  store i8 -128, ptr %1511, align 1, !tbaa !15
  %1512 = load ptr, ptr %15, align 8, !tbaa !5
  %1513 = getelementptr inbounds i8, ptr %1512, i64 38
  store i8 41, ptr %1513, align 1, !tbaa !15
  %1514 = load ptr, ptr %15, align 8, !tbaa !5
  %1515 = getelementptr inbounds i8, ptr %1514, i64 43
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1515, ptr align 1 @.str.3, i64 19, i1 false)
  br label %1516

1516:                                             ; preds = %1502, %1483
  %1517 = load ptr, ptr %15, align 8, !tbaa !5
  %1518 = getelementptr inbounds i8, ptr %1517, i64 510
  call void @st_word(ptr noundef %1518, i16 noundef zeroext -21931)
  %1519 = load i8, ptr %13, align 1, !tbaa !15
  %1520 = load ptr, ptr %15, align 8, !tbaa !5
  %1521 = load i64, ptr %26, align 8, !tbaa !23
  %1522 = call i32 @disk_write(i8 noundef zeroext %1519, ptr noundef %1520, i64 noundef %1521, i32 noundef 1)
  %1523 = icmp ne i32 %1522, 0
  br i1 %1523, label %1524, label %1530

1524:                                             ; preds = %1516
  %1525 = load ptr, ptr %8, align 8, !tbaa !5
  %1526 = icmp ne ptr %1525, null
  br i1 %1526, label %1529, label %1527

1527:                                             ; preds = %1524
  %1528 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1528)
  br label %1529

1529:                                             ; preds = %1527, %1524
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1530:                                             ; preds = %1516
  %1531 = load i8, ptr %11, align 1, !tbaa !15
  %1532 = zext i8 %1531 to i32
  %1533 = icmp eq i32 %1532, 3
  br i1 %1533, label %1534, label %1565

1534:                                             ; preds = %1530
  %1535 = load i8, ptr %13, align 1, !tbaa !15
  %1536 = load ptr, ptr %15, align 8, !tbaa !5
  %1537 = load i64, ptr %26, align 8, !tbaa !23
  %1538 = add i64 %1537, 6
  %1539 = call i32 @disk_write(i8 noundef zeroext %1535, ptr noundef %1536, i64 noundef %1538, i32 noundef 1)
  %1540 = load ptr, ptr %15, align 8, !tbaa !5
  %1541 = load i16, ptr %17, align 2, !tbaa !18
  %1542 = zext i16 %1541 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1540, i8 0, i64 %1542, i1 false)
  %1543 = load ptr, ptr %15, align 8, !tbaa !5
  %1544 = getelementptr inbounds i8, ptr %1543, i64 0
  call void @st_dword(ptr noundef %1544, i32 noundef 1096897106)
  %1545 = load ptr, ptr %15, align 8, !tbaa !5
  %1546 = getelementptr inbounds i8, ptr %1545, i64 484
  call void @st_dword(ptr noundef %1546, i32 noundef 1631679090)
  %1547 = load ptr, ptr %15, align 8, !tbaa !5
  %1548 = getelementptr inbounds i8, ptr %1547, i64 488
  %1549 = load i32, ptr %20, align 4, !tbaa !9
  %1550 = sub i32 %1549, 1
  call void @st_dword(ptr noundef %1548, i32 noundef %1550)
  %1551 = load ptr, ptr %15, align 8, !tbaa !5
  %1552 = getelementptr inbounds i8, ptr %1551, i64 492
  call void @st_dword(ptr noundef %1552, i32 noundef 2)
  %1553 = load ptr, ptr %15, align 8, !tbaa !5
  %1554 = getelementptr inbounds i8, ptr %1553, i64 510
  call void @st_word(ptr noundef %1554, i16 noundef zeroext -21931)
  %1555 = load i8, ptr %13, align 1, !tbaa !15
  %1556 = load ptr, ptr %15, align 8, !tbaa !5
  %1557 = load i64, ptr %26, align 8, !tbaa !23
  %1558 = add i64 %1557, 7
  %1559 = call i32 @disk_write(i8 noundef zeroext %1555, ptr noundef %1556, i64 noundef %1558, i32 noundef 1)
  %1560 = load i8, ptr %13, align 1, !tbaa !15
  %1561 = load ptr, ptr %15, align 8, !tbaa !5
  %1562 = load i64, ptr %26, align 8, !tbaa !23
  %1563 = add i64 %1562, 1
  %1564 = call i32 @disk_write(i8 noundef zeroext %1560, ptr noundef %1561, i64 noundef %1563, i32 noundef 1)
  br label %1565

1565:                                             ; preds = %1534, %1530
  %1566 = load ptr, ptr %15, align 8, !tbaa !5
  %1567 = load i32, ptr %18, align 4, !tbaa !9
  %1568 = load i16, ptr %17, align 2, !tbaa !18
  %1569 = zext i16 %1568 to i32
  %1570 = mul i32 %1567, %1569
  %1571 = zext i32 %1570 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1566, i8 0, i64 %1571, i1 false)
  %1572 = load i64, ptr %27, align 8, !tbaa !23
  store i64 %1572, ptr %29, align 8, !tbaa !23
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %1573

1573:                                             ; preds = %1635, %1565
  %1574 = load i32, ptr %37, align 4, !tbaa !9
  %1575 = load i32, ptr %35, align 4, !tbaa !9
  %1576 = icmp ult i32 %1574, %1575
  br i1 %1576, label %1577, label %1638

1577:                                             ; preds = %1573
  %1578 = load i8, ptr %11, align 1, !tbaa !15
  %1579 = zext i8 %1578 to i32
  %1580 = icmp eq i32 %1579, 3
  br i1 %1580, label %1581, label %1588

1581:                                             ; preds = %1577
  %1582 = load ptr, ptr %15, align 8, !tbaa !5
  %1583 = getelementptr inbounds i8, ptr %1582, i64 0
  call void @st_dword(ptr noundef %1583, i32 noundef -8)
  %1584 = load ptr, ptr %15, align 8, !tbaa !5
  %1585 = getelementptr inbounds i8, ptr %1584, i64 4
  call void @st_dword(ptr noundef %1585, i32 noundef -1)
  %1586 = load ptr, ptr %15, align 8, !tbaa !5
  %1587 = getelementptr inbounds i8, ptr %1586, i64 8
  call void @st_dword(ptr noundef %1587, i32 noundef 268435455)
  br label %1596

1588:                                             ; preds = %1577
  %1589 = load ptr, ptr %15, align 8, !tbaa !5
  %1590 = getelementptr inbounds i8, ptr %1589, i64 0
  %1591 = load i8, ptr %11, align 1, !tbaa !15
  %1592 = zext i8 %1591 to i32
  %1593 = icmp eq i32 %1592, 1
  %1594 = zext i1 %1593 to i64
  %1595 = select i1 %1593, i32 16777208, i32 -8
  call void @st_dword(ptr noundef %1590, i32 noundef %1595)
  br label %1596

1596:                                             ; preds = %1588, %1581
  %1597 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %1597, ptr %22, align 4, !tbaa !9
  br label %1598

1598:                                             ; preds = %1631, %1596
  %1599 = load i32, ptr %22, align 4, !tbaa !9
  %1600 = load i32, ptr %18, align 4, !tbaa !9
  %1601 = icmp ugt i32 %1599, %1600
  br i1 %1601, label %1602, label %1604

1602:                                             ; preds = %1598
  %1603 = load i32, ptr %18, align 4, !tbaa !9
  br label %1606

1604:                                             ; preds = %1598
  %1605 = load i32, ptr %22, align 4, !tbaa !9
  br label %1606

1606:                                             ; preds = %1604, %1602
  %1607 = phi i32 [ %1603, %1602 ], [ %1605, %1604 ]
  store i32 %1607, ptr %23, align 4, !tbaa !9
  %1608 = load i8, ptr %13, align 1, !tbaa !15
  %1609 = load ptr, ptr %15, align 8, !tbaa !5
  %1610 = load i64, ptr %29, align 8, !tbaa !23
  %1611 = load i32, ptr %23, align 4, !tbaa !9
  %1612 = call i32 @disk_write(i8 noundef zeroext %1608, ptr noundef %1609, i64 noundef %1610, i32 noundef %1611)
  %1613 = icmp ne i32 %1612, 0
  br i1 %1613, label %1614, label %1620

1614:                                             ; preds = %1606
  %1615 = load ptr, ptr %8, align 8, !tbaa !5
  %1616 = icmp ne ptr %1615, null
  br i1 %1616, label %1619, label %1617

1617:                                             ; preds = %1614
  %1618 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1618)
  br label %1619

1619:                                             ; preds = %1617, %1614
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1620:                                             ; preds = %1606
  %1621 = load ptr, ptr %15, align 8, !tbaa !5
  %1622 = load i16, ptr %17, align 2, !tbaa !18
  %1623 = zext i16 %1622 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %1621, i8 0, i64 %1623, i1 false)
  %1624 = load i32, ptr %23, align 4, !tbaa !9
  %1625 = zext i32 %1624 to i64
  %1626 = load i64, ptr %29, align 8, !tbaa !23
  %1627 = add i64 %1626, %1625
  store i64 %1627, ptr %29, align 8, !tbaa !23
  %1628 = load i32, ptr %23, align 4, !tbaa !9
  %1629 = load i32, ptr %22, align 4, !tbaa !9
  %1630 = sub i32 %1629, %1628
  store i32 %1630, ptr %22, align 4, !tbaa !9
  br label %1631

1631:                                             ; preds = %1620
  %1632 = load i32, ptr %22, align 4, !tbaa !9
  %1633 = icmp ne i32 %1632, 0
  br i1 %1633, label %1598, label %1634, !llvm.loop !44

1634:                                             ; preds = %1631
  br label %1635

1635:                                             ; preds = %1634
  %1636 = load i32, ptr %37, align 4, !tbaa !9
  %1637 = add i32 %1636, 1
  store i32 %1637, ptr %37, align 4, !tbaa !9
  br label %1573, !llvm.loop !45

1638:                                             ; preds = %1573
  %1639 = load i8, ptr %11, align 1, !tbaa !15
  %1640 = zext i8 %1639 to i32
  %1641 = icmp eq i32 %1640, 3
  br i1 %1641, label %1642, label %1644

1642:                                             ; preds = %1638
  %1643 = load i32, ptr %21, align 4, !tbaa !9
  br label %1646

1644:                                             ; preds = %1638
  %1645 = load i32, ptr %33, align 4, !tbaa !9
  br label %1646

1646:                                             ; preds = %1644, %1642
  %1647 = phi i32 [ %1643, %1642 ], [ %1645, %1644 ]
  store i32 %1647, ptr %22, align 4, !tbaa !9
  br label %1648

1648:                                             ; preds = %1678, %1646
  %1649 = load i32, ptr %22, align 4, !tbaa !9
  %1650 = load i32, ptr %18, align 4, !tbaa !9
  %1651 = icmp ugt i32 %1649, %1650
  br i1 %1651, label %1652, label %1654

1652:                                             ; preds = %1648
  %1653 = load i32, ptr %18, align 4, !tbaa !9
  br label %1656

1654:                                             ; preds = %1648
  %1655 = load i32, ptr %22, align 4, !tbaa !9
  br label %1656

1656:                                             ; preds = %1654, %1652
  %1657 = phi i32 [ %1653, %1652 ], [ %1655, %1654 ]
  store i32 %1657, ptr %23, align 4, !tbaa !9
  %1658 = load i8, ptr %13, align 1, !tbaa !15
  %1659 = load ptr, ptr %15, align 8, !tbaa !5
  %1660 = load i64, ptr %29, align 8, !tbaa !23
  %1661 = load i32, ptr %23, align 4, !tbaa !9
  %1662 = call i32 @disk_write(i8 noundef zeroext %1658, ptr noundef %1659, i64 noundef %1660, i32 noundef %1661)
  %1663 = icmp ne i32 %1662, 0
  br i1 %1663, label %1664, label %1670

1664:                                             ; preds = %1656
  %1665 = load ptr, ptr %8, align 8, !tbaa !5
  %1666 = icmp ne ptr %1665, null
  br i1 %1666, label %1669, label %1667

1667:                                             ; preds = %1664
  %1668 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1668)
  br label %1669

1669:                                             ; preds = %1667, %1664
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1670:                                             ; preds = %1656
  %1671 = load i32, ptr %23, align 4, !tbaa !9
  %1672 = zext i32 %1671 to i64
  %1673 = load i64, ptr %29, align 8, !tbaa !23
  %1674 = add i64 %1673, %1672
  store i64 %1674, ptr %29, align 8, !tbaa !23
  %1675 = load i32, ptr %23, align 4, !tbaa !9
  %1676 = load i32, ptr %22, align 4, !tbaa !9
  %1677 = sub i32 %1676, %1675
  store i32 %1677, ptr %22, align 4, !tbaa !9
  br label %1678

1678:                                             ; preds = %1670
  %1679 = load i32, ptr %22, align 4, !tbaa !9
  %1680 = icmp ne i32 %1679, 0
  br i1 %1680, label %1648, label %1681, !llvm.loop !46

1681:                                             ; preds = %1678
  br label %1682

1682:                                             ; preds = %1681, %1122
  %1683 = load i8, ptr %11, align 1, !tbaa !15
  %1684 = zext i8 %1683 to i32
  %1685 = icmp eq i32 %1684, 4
  br i1 %1685, label %1686, label %1687

1686:                                             ; preds = %1682
  store i8 7, ptr %12, align 1, !tbaa !15
  br label %1705

1687:                                             ; preds = %1682
  %1688 = load i8, ptr %11, align 1, !tbaa !15
  %1689 = zext i8 %1688 to i32
  %1690 = icmp eq i32 %1689, 3
  br i1 %1690, label %1691, label %1692

1691:                                             ; preds = %1687
  store i8 12, ptr %12, align 1, !tbaa !15
  br label %1704

1692:                                             ; preds = %1687
  %1693 = load i64, ptr %25, align 8, !tbaa !23
  %1694 = icmp uge i64 %1693, 65536
  br i1 %1694, label %1695, label %1696

1695:                                             ; preds = %1692
  store i8 6, ptr %12, align 1, !tbaa !15
  br label %1703

1696:                                             ; preds = %1692
  %1697 = load i8, ptr %11, align 1, !tbaa !15
  %1698 = zext i8 %1697 to i32
  %1699 = icmp eq i32 %1698, 2
  br i1 %1699, label %1700, label %1701

1700:                                             ; preds = %1696
  store i8 4, ptr %12, align 1, !tbaa !15
  br label %1702

1701:                                             ; preds = %1696
  store i8 1, ptr %12, align 1, !tbaa !15
  br label %1702

1702:                                             ; preds = %1701, %1700
  br label %1703

1703:                                             ; preds = %1702, %1695
  br label %1704

1704:                                             ; preds = %1703, %1691
  br label %1705

1705:                                             ; preds = %1704, %1686
  %1706 = load i8, ptr %10, align 1, !tbaa !15
  %1707 = zext i8 %1706 to i32
  %1708 = and i32 %1707, 8
  %1709 = icmp ne i32 %1708, 0
  br i1 %1709, label %1729, label %1710

1710:                                             ; preds = %1705
  %1711 = load i64, ptr %25, align 8, !tbaa !23
  %1712 = getelementptr inbounds [2 x i64], ptr %30, i64 0, i64 0
  store i64 %1711, ptr %1712, align 16, !tbaa !23
  %1713 = getelementptr inbounds [2 x i64], ptr %30, i64 0, i64 1
  store i64 0, ptr %1713, align 8, !tbaa !23
  %1714 = load i8, ptr %13, align 1, !tbaa !15
  %1715 = getelementptr inbounds [2 x i64], ptr %30, i64 0, i64 0
  %1716 = load i8, ptr %12, align 1, !tbaa !15
  %1717 = load ptr, ptr %15, align 8, !tbaa !5
  %1718 = call i32 @create_partition(i8 noundef zeroext %1714, ptr noundef %1715, i8 noundef zeroext %1716, ptr noundef %1717)
  store i32 %1718, ptr %40, align 4, !tbaa !9
  %1719 = load i32, ptr %40, align 4, !tbaa !9
  %1720 = icmp ne i32 %1719, 0
  br i1 %1720, label %1721, label %1728

1721:                                             ; preds = %1710
  %1722 = load ptr, ptr %8, align 8, !tbaa !5
  %1723 = icmp ne ptr %1722, null
  br i1 %1723, label %1726, label %1724

1724:                                             ; preds = %1721
  %1725 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1725)
  br label %1726

1726:                                             ; preds = %1724, %1721
  %1727 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %1727, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1728:                                             ; preds = %1710
  br label %1729

1729:                                             ; preds = %1728, %1705
  %1730 = load i8, ptr %13, align 1, !tbaa !15
  %1731 = call i32 @disk_ioctl(i8 noundef zeroext %1730, i8 noundef zeroext 0, ptr noundef null)
  %1732 = icmp ne i32 %1731, 0
  br i1 %1732, label %1733, label %1739

1733:                                             ; preds = %1729
  %1734 = load ptr, ptr %8, align 8, !tbaa !5
  %1735 = icmp ne ptr %1734, null
  br i1 %1735, label %1738, label %1736

1736:                                             ; preds = %1733
  %1737 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1737)
  br label %1738

1738:                                             ; preds = %1736, %1733
  store i32 1, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1739:                                             ; preds = %1729
  %1740 = load ptr, ptr %8, align 8, !tbaa !5
  %1741 = icmp ne ptr %1740, null
  br i1 %1741, label %1744, label %1742

1742:                                             ; preds = %1739
  %1743 = load ptr, ptr %15, align 8, !tbaa !5
  call void @ff_memfree(ptr noundef %1743)
  br label %1744

1744:                                             ; preds = %1742, %1739
  store i32 0, ptr %5, align 4
  store i32 1, ptr %41, align 4
  br label %1745

1745:                                             ; preds = %1744, %1738, %1726, %1669, %1619, %1529, %1422, %1408, %1391, %1353, %1320, %1185, %1120, %315, %288, %260, %216, %206, %192, %83, %77, %55
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #5
  %1746 = load i32, ptr %5, align 4
  ret i32 %1746
}

declare zeroext i8 @disk_initialize(i8 noundef zeroext) #2

declare i32 @disk_ioctl(i8 noundef zeroext, i8 noundef zeroext, ptr noundef) #2

declare i32 @ff_wtoupper(i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @xsum32(i8 noundef zeroext, i32 noundef) #1

; Function Attrs: nounwind uwtable
declare hidden i32 @create_partition(i8 noundef zeroext, ptr noundef, i8 noundef zeroext, ptr noundef) #1

attributes #0 = { nocallback nofree nosync 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !7, i64 0}
!12 = !{!"", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4, !7, i64 5, !13, i64 6, !13, i64 8, !13, i64 10, !6, i64 16, !6, i64 24, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !7, i64 112}
!13 = !{!"short", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !10, i64 4}
!17 = !{!"", !7, i64 0, !7, i64 1, !10, i64 4, !10, i64 8, !10, i64 12}
!18 = !{!13, !13, i64 0}
!19 = !{!17, !7, i64 0}
!20 = !{!17, !7, i64 1}
!21 = !{!17, !10, i64 8}
!22 = !{!17, !10, i64 12}
!23 = !{!14, !14, i64 0}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = distinct !{!26, !25}
!27 = distinct !{!27, !25}
!28 = distinct !{!28, !25}
!29 = distinct !{!29, !25}
!30 = distinct !{!30, !25}
!31 = distinct !{!31, !25}
!32 = distinct !{!32, !25}
!33 = distinct !{!33, !25}
!34 = distinct !{!34, !25}
!35 = distinct !{!35, !25}
!36 = distinct !{!36, !25}
!37 = distinct !{!37, !25}
!38 = distinct !{!38, !25}
!39 = distinct !{!39, !25}
!40 = distinct !{!40, !25}
!41 = distinct !{!41, !25}
!42 = distinct !{!42, !25}
!43 = distinct !{!43, !25}
!44 = distinct !{!44, !25}
!45 = distinct !{!45, !25}
!46 = distinct !{!46, !25}


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

%struct.MKFS_PARM = type { i8, i8, i32, i32, i32 }

@FatFs = external hidden local_unnamed_addr global [4 x ptr], align 16
@f_mkfs.cst = external hidden local_unnamed_addr constant [7 x i16], align 2
@f_mkfs.cst32 = external hidden local_unnamed_addr constant [7 x i16], align 2
@f_mkfs.defopt = external hidden local_unnamed_addr constant %struct.MKFS_PARM, align 4
@.str = external hidden unnamed_addr constant [12 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [20 x i8], align 1

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

; Function Attrs: nounwind uwtable
declare hidden i32 @get_ldnumber(ptr noundef) local_unnamed_addr #1

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

declare ptr @ff_memalloc(i32 noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare hidden void @st_dword(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @get_fattime() local_unnamed_addr #2

declare void @ff_memfree(ptr noundef) local_unnamed_addr #2

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

declare i32 @disk_write(i8 noundef zeroext, ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @st_qword(ptr noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden void @st_word(ptr noundef, i16 noundef zeroext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local i32 @f_mkfs(ptr noundef %0, ptr noundef readonly %1, ptr noundef %2, i32 noundef %3) local_unnamed_addr #1 {
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i64, align 8
  %8 = alloca [2 x i64], align 16
  %9 = alloca [3 x i32], align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %10 = call i32 @get_ldnumber(ptr noundef nonnull %5)
  %11 = icmp slt i32 %10, 0
  br i1 %11, label %.thread785, label %12

12:                                               ; preds = %4
  %13 = zext nneg i32 %10 to i64
  %14 = getelementptr inbounds [4 x ptr], ptr @FatFs, i64 0, i64 %13
  %15 = load ptr, ptr %14, align 8, !tbaa !5
  %.not = icmp eq ptr %15, null
  br i1 %.not, label %17, label %16

16:                                               ; preds = %12
  store i8 0, ptr %15, align 8, !tbaa !9
  br label %17

17:                                               ; preds = %16, %12
  %18 = trunc i32 %10 to i8
  %19 = call zeroext i8 @disk_initialize(i8 noundef zeroext %18) #6
  %20 = zext i8 %19 to i32
  %21 = and i32 %20, 1
  %.not706 = icmp eq i32 %21, 0
  br i1 %.not706, label %22, label %.thread785

22:                                               ; preds = %17
  %23 = and i32 %20, 4
  %.not707 = icmp eq i32 %23, 0
  br i1 %.not707, label %24, label %.thread785

24:                                               ; preds = %22
  %.not708 = icmp eq ptr %1, null
  %spec.store.select = select i1 %.not708, ptr @f_mkfs.defopt, ptr %1
  %25 = getelementptr inbounds i8, ptr %spec.store.select, i64 4
  %26 = load i32, ptr %25, align 4, !tbaa !14
  store i32 %26, ptr %6, align 4, !tbaa !16
  %27 = icmp eq i32 %26, 0
  br i1 %27, label %28, label %30

28:                                               ; preds = %24
  %29 = call i32 @disk_ioctl(i8 noundef zeroext %18, i8 noundef zeroext 3, ptr noundef nonnull %6) #6
  %.pre = load i32, ptr %6, align 4
  br label %30

30:                                               ; preds = %28, %24
  %31 = phi i32 [ %.pre, %28 ], [ %26, %24 ]
  %32 = add i32 %31, -1
  %or.cond = icmp ult i32 %32, 32768
  %33 = call range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %31)
  %.not709 = icmp ult i32 %33, 2
  %or.cond757 = select i1 %or.cond, i1 %.not709, i1 false
  br i1 %or.cond757, label %35, label %34

34:                                               ; preds = %30
  store i32 1, ptr %6, align 4, !tbaa !16
  br label %35

35:                                               ; preds = %30, %34
  %36 = load i8, ptr %spec.store.select, align 4, !tbaa !17
  %37 = and i8 %36, 15
  %38 = getelementptr inbounds i8, ptr %spec.store.select, i64 1
  %39 = load i8, ptr %38, align 1, !tbaa !18
  %40 = add i8 %39, -1
  %or.cond758 = icmp ult i8 %40, 2
  %narrow = select i1 %or.cond758, i8 %39, i8 1
  %41 = zext i8 %narrow to i32
  %42 = getelementptr inbounds i8, ptr %spec.store.select, i64 8
  %43 = load i32, ptr %42, align 4, !tbaa !19
  %44 = add i32 %43, -1
  %or.cond759 = icmp ult i32 %44, 32768
  %45 = and i32 %43, 15
  %46 = icmp eq i32 %45, 0
  %or.cond761 = and i1 %or.cond759, %46
  %47 = select i1 %or.cond761, i32 %43, i32 512
  %48 = getelementptr inbounds i8, ptr %spec.store.select, i64 12
  %49 = load i32, ptr %48, align 4, !tbaa !20
  %50 = icmp ult i32 %49, 16777217
  %51 = call range(i32 0, 26) i32 @llvm.ctpop.i32(i32 %49)
  %52 = icmp ult i32 %51, 2
  %or.cond763 = select i1 %50, i1 %52, i1 false
  %53 = select i1 %or.cond763, i32 %49, i32 0
  %54 = lshr i32 %53, 9
  %55 = lshr i32 %3, 9
  %56 = icmp ult i32 %3, 512
  br i1 %56, label %.thread785, label %57

57:                                               ; preds = %35
  %.not712 = icmp eq ptr %2, null
  br i1 %.not712, label %58, label %.thread780

58:                                               ; preds = %57
  %59 = and i32 %3, -512
  %60 = call ptr @ff_memalloc(i32 noundef %59) #6
  %.not713 = icmp eq ptr %60, null
  br i1 %.not713, label %.thread785, label %61

61:                                               ; preds = %58
  store i64 0, ptr %7, align 8, !tbaa !21
  %62 = call i32 @disk_ioctl(i8 noundef zeroext %18, i8 noundef zeroext 1, ptr noundef nonnull %7) #6
  %.not714 = icmp eq i32 %62, 0
  br i1 %.not714, label %65, label %64

.thread780:                                       ; preds = %57
  store i64 0, ptr %7, align 8, !tbaa !21
  %63 = call i32 @disk_ioctl(i8 noundef zeroext %18, i8 noundef zeroext 1, ptr noundef nonnull %7) #6
  %.not714782 = icmp eq i32 %63, 0
  br i1 %.not714782, label %65, label %.thread785

64:                                               ; preds = %61
  call void @ff_memfree(ptr noundef nonnull %60) #6
  br label %.thread785

65:                                               ; preds = %.thread780, %61
  %.0627779783 = phi ptr [ %2, %.thread780 ], [ %60, %61 ]
  %.not715 = icmp ult i8 %37, 8
  %66 = load i64, ptr %7, align 8
  br i1 %.not715, label %67, label %thread-pre-split

67:                                               ; preds = %65
  %68 = icmp ugt i64 %66, 268435455
  br i1 %68, label %.thread790, label %70

.thread790:                                       ; preds = %67
  %69 = add i64 %66, -2081
  store i64 %69, ptr %7, align 8, !tbaa !21
  br label %77

70:                                               ; preds = %67
  %71 = icmp ugt i64 %66, 63
  br i1 %71, label %72, label %.thread787

72:                                               ; preds = %70
  %73 = add nsw i64 %66, -63
  store i64 %73, ptr %7, align 8, !tbaa !21
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %65, %72
  %74 = phi i64 [ %73, %72 ], [ %66, %65 ]
  %.0651 = phi i64 [ 63, %72 ], [ 0, %65 ]
  %75 = icmp ult i64 %74, 128
  br i1 %75, label %.thread787, label %77

.thread787:                                       ; preds = %70, %thread-pre-split
  br i1 %.not712, label %76, label %.thread785

76:                                               ; preds = %.thread787
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

77:                                               ; preds = %.thread790, %thread-pre-split
  %.0651793 = phi i64 [ 2048, %.thread790 ], [ %.0651, %thread-pre-split ]
  %78 = phi i64 [ %69, %.thread790 ], [ %74, %thread-pre-split ]
  %79 = zext nneg i8 %37 to i32
  %80 = and i32 %79, 4
  %.not716 = icmp eq i32 %80, 0
  br i1 %.not716, label %86, label %81

81:                                               ; preds = %77
  %82 = and i32 %79, 7
  %83 = icmp eq i32 %82, 4
  %84 = icmp ugt i64 %78, 67108863
  %or.cond3 = or i1 %83, %84
  %85 = icmp ugt i32 %53, 66047
  %or.cond5 = or i1 %85, %or.cond3
  br i1 %or.cond5, label %112, label %.thread795

86:                                               ; preds = %77
  %87 = icmp ugt i64 %78, 4294967295
  br i1 %87, label %88, label %.thread795

88:                                               ; preds = %86
  br i1 %.not712, label %89, label %.thread785

89:                                               ; preds = %88
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

.thread795:                                       ; preds = %81, %86
  %90 = and i32 %79, 1
  %.not718 = icmp ne i32 %90, 0
  %91 = and i32 %79, 3
  %or.cond764 = icmp eq i32 %91, 2
  %brmerge = or i1 %or.cond764, %.not718
  br i1 %brmerge, label %.preheader, label %92

92:                                               ; preds = %.thread795
  br i1 %.not712, label %93, label %.thread785

93:                                               ; preds = %92
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

.preheader:                                       ; preds = %.thread795
  %spec.store.select6 = call i32 @llvm.umin.i32(i32 %54, i32 128)
  %94 = trunc i64 %78 to i32
  %95 = call i32 @get_fattime() #6
  %96 = add i32 %95, %94
  %97 = load i64, ptr %7, align 8
  %98 = trunc i64 %97 to i32
  %99 = lshr i32 %98, 12
  %100 = load i16, ptr @f_mkfs.cst, align 2
  %.not720924 = icmp eq i16 %100, 0
  %101 = zext i16 %100 to i32
  %.not721925 = icmp ult i32 %99, %101
  %102 = lshr exact i32 %47, 4
  %103 = lshr i32 %98, 17
  %104 = load i16, ptr @f_mkfs.cst32, align 2
  %.not722932 = icmp eq i16 %104, 0
  %105 = zext i16 %104 to i32
  %.not723933 = icmp ult i32 %103, %105
  %106 = load i32, ptr %6, align 4
  %107 = zext i32 %106 to i64
  %108 = add nuw nsw i64 %107, 4294967295
  %109 = sub i32 0, %106
  %110 = zext i32 %109 to i64
  %111 = and i32 %79, 2
  %.not730 = icmp ne i32 %111, 0
  %spec.select = select i1 %or.cond764, i8 3, i8 2
  br label %384

112:                                              ; preds = %81
  %113 = trunc i64 %78 to i32
  %114 = call i32 @get_fattime() #6
  %115 = add i32 %114, %113
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %9) #6
  %116 = load i64, ptr %7, align 8, !tbaa !21
  %117 = icmp ult i64 %116, 4096
  br i1 %117, label %118, label %119

118:                                              ; preds = %112
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

119:                                              ; preds = %112
  %120 = icmp ult i32 %53, 512
  %121 = icmp ugt i64 %116, 524287
  %spec.store.select7 = select i1 %121, i32 64, i32 8
  %122 = icmp ugt i64 %116, 67108863
  %spec.store.select28 = select i1 %122, i32 256, i32 %spec.store.select7
  %.1629 = select i1 %120, i32 %spec.store.select28, i32 %54
  %123 = add nuw nsw i64 %.0651793, 32
  %124 = zext nneg i32 %.1629 to i64
  %125 = udiv i64 %116, %124
  %.tr = trunc i64 %125 to i32
  %126 = shl i32 %.tr, 2
  %127 = add i32 %126, 519
  %128 = lshr i32 %127, 9
  %129 = zext nneg i32 %128 to i64
  %130 = load i32, ptr %6, align 4, !tbaa !16
  %131 = zext i32 %130 to i64
  %132 = add nuw nsw i64 %.0651793, 31
  %133 = add nuw nsw i64 %132, %131
  %134 = add nuw nsw i64 %133, %129
  %135 = sub nsw i64 0, %131
  %136 = and i64 %134, %135
  %137 = sub nsw i64 %136, %.0651793
  %138 = lshr i64 %116, 1
  %.not732 = icmp ult i64 %137, %138
  br i1 %.not732, label %140, label %139

139:                                              ; preds = %119
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

140:                                              ; preds = %119
  %141 = sub i64 %116, %137
  %142 = udiv i64 %141, %124
  %143 = trunc i64 %142 to i32
  %144 = icmp ult i32 %143, 16
  br i1 %144, label %145, label %146

145:                                              ; preds = %140
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

146:                                              ; preds = %140
  %147 = icmp ugt i32 %143, 2147483645
  br i1 %147, label %148, label %149

148:                                              ; preds = %146
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

149:                                              ; preds = %146
  %150 = add nuw i32 %143, 7
  %151 = lshr i32 %150, 3
  %152 = shl nuw nsw i32 %.1629, 9
  %153 = add nsw i32 %152, -1
  %154 = add i32 %153, %151
  %155 = udiv i32 %154, %152
  store i32 %155, ptr %9, align 4, !tbaa !16
  %156 = mul i32 %155, %.1629
  %157 = zext i32 %156 to i64
  %158 = add nuw nsw i64 %136, %157
  %159 = and i32 %3, -512
  br label %160

160:                                              ; preds = %204, %149
  %.0638 = phi i64 [ %158, %149 ], [ %.1639, %204 ]
  %.0617 = phi i32 [ 0, %149 ], [ %.1618, %204 ]
  %.0606 = phi i32 [ 0, %149 ], [ %192, %204 ]
  %.0599 = phi i32 [ 0, %149 ], [ %191, %204 ]
  %.0586 = phi i16 [ 0, %149 ], [ %.1587, %204 ]
  %.0583 = phi i32 [ 0, %149 ], [ %.3, %204 ]
  %.0 = phi i32 [ 0, %149 ], [ %.2, %204 ]
  switch i32 %.0, label %178 [
    i32 0, label %161
    i32 1, label %._crit_edge1053
  ]

._crit_edge1053:                                  ; preds = %160
  %.pre1054 = add i16 %.0586, 1
  br label %.critedge.thread

161:                                              ; preds = %160
  %162 = zext i16 %.0586 to i32
  %163 = call i32 @ff_wtoupper(i32 noundef %162) #6
  %164 = trunc i32 %163 to i16
  %.not733 = icmp eq i16 %.0586, %164
  %165 = add i16 %.0586, 1
  br i1 %.not733, label %.preheader815, label %181

.preheader815:                                    ; preds = %161
  %.not734878 = icmp eq i16 %165, 0
  br i1 %.not734878, label %.critedge.thread, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.preheader815
  %166 = sub i16 0, %.0586
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %171
  %167 = phi i16 [ %174, %171 ], [ %165, %.lr.ph.preheader ]
  %.1584879 = phi i32 [ %172, %171 ], [ 1, %.lr.ph.preheader ]
  %168 = zext i16 %167 to i32
  %169 = call i32 @ff_wtoupper(i32 noundef %168) #6
  %170 = icmp eq i32 %169, %168
  br i1 %170, label %171, label %.critedge

171:                                              ; preds = %.lr.ph
  %172 = add nuw nsw i32 %.1584879, 1
  %173 = trunc i32 %172 to i16
  %174 = add i16 %.0586, %173
  %exitcond = icmp eq i16 %173, %166
  br i1 %exitcond, label %.critedge, label %.lr.ph, !llvm.loop !22

.critedge:                                        ; preds = %.lr.ph, %171
  %.1584.lcssa = phi i32 [ %.1584879, %.lr.ph ], [ %172, %171 ]
  %175 = icmp ugt i32 %.1584.lcssa, 127
  br i1 %175, label %181, label %.critedge.thread

.critedge.thread:                                 ; preds = %.preheader815, %._crit_edge1053, %.critedge
  %.pre-phi = phi i16 [ %.pre1054, %._crit_edge1053 ], [ %165, %.critedge ], [ 0, %.preheader815 ]
  %.2585 = phi i32 [ %.0583, %._crit_edge1053 ], [ %.1584.lcssa, %.critedge ], [ 1, %.preheader815 ]
  %176 = add i32 %.2585, -1
  %177 = icmp ne i32 %176, 0
  %spec.select765 = zext i1 %177 to i32
  br label %181

178:                                              ; preds = %160
  %179 = trunc i32 %.0583 to i16
  %180 = add i16 %.0586, %179
  br label %181

181:                                              ; preds = %161, %.critedge.thread, %.critedge, %178
  %.0588 = phi i16 [ %179, %178 ], [ -1, %.critedge ], [ %.0586, %.critedge.thread ], [ %164, %161 ]
  %.1587 = phi i16 [ %180, %178 ], [ %.0586, %.critedge ], [ %.pre-phi, %.critedge.thread ], [ %165, %161 ]
  %.3 = phi i32 [ %.0583, %178 ], [ %.1584.lcssa, %.critedge ], [ %176, %.critedge.thread ], [ %.0583, %161 ]
  %.2 = phi i32 [ 0, %178 ], [ 2, %.critedge ], [ %spec.select765, %.critedge.thread ], [ 0, %161 ]
  %182 = trunc i16 %.0588 to i8
  %183 = zext i32 %.0617 to i64
  %184 = getelementptr inbounds i8, ptr %.0627779783, i64 %183
  store i8 %182, ptr %184, align 1, !tbaa !24
  %185 = call i32 @xsum32(i8 noundef zeroext %182, i32 noundef %.0599)
  %186 = lshr i16 %.0588, 8
  %187 = trunc nuw i16 %186 to i8
  %188 = add i32 %.0617, 1
  %189 = zext i32 %188 to i64
  %190 = getelementptr inbounds i8, ptr %.0627779783, i64 %189
  store i8 %187, ptr %190, align 1, !tbaa !24
  %191 = call i32 @xsum32(i8 noundef zeroext %187, i32 noundef %185)
  %192 = add i32 %.0606, 2
  %193 = icmp eq i16 %.1587, 0
  %194 = add i32 %.0617, 2
  %195 = icmp eq i32 %194, %159
  %or.cond951 = select i1 %193, i1 true, i1 %195
  br i1 %or.cond951, label %196, label %204

196:                                              ; preds = %181
  %197 = add i32 %.0617, 513
  %198 = lshr i32 %197, 9
  %199 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.0638, i32 noundef %198) #6
  %.not735 = icmp eq i32 %199, 0
  br i1 %.not735, label %201, label %200

200:                                              ; preds = %196
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

201:                                              ; preds = %196
  %202 = zext nneg i32 %198 to i64
  %203 = add i64 %.0638, %202
  br label %204

204:                                              ; preds = %181, %201
  %.1639 = phi i64 [ %203, %201 ], [ %.0638, %181 ]
  %.1618 = phi i32 [ 0, %201 ], [ %194, %181 ]
  br i1 %193, label %205, label %160, !llvm.loop !25

205:                                              ; preds = %204
  %206 = add i32 %153, %192
  %207 = udiv i32 %206, %152
  %208 = getelementptr inbounds i8, ptr %9, i64 4
  store i32 %207, ptr %208, align 4, !tbaa !16
  %209 = getelementptr inbounds i8, ptr %9, i64 8
  store i32 1, ptr %209, align 4, !tbaa !16
  %210 = add nuw nsw i32 %151, 511
  %211 = lshr i32 %210, 9
  %212 = add i32 %155, 1
  %213 = add i32 %212, %207
  %214 = zext i32 %159 to i64
  br label %215

215:                                              ; preds = %231, %205
  %.0655 = phi i32 [ %211, %205 ], [ %234, %231 ]
  %.2640 = phi i64 [ %136, %205 ], [ %233, %231 ]
  %.0593 = phi i32 [ %213, %205 ], [ %.1594.lcssa, %231 ]
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %.0627779783, i8 0, i64 %214, i1 false)
  %.not737882 = icmp eq i32 %.0593, 0
  br i1 %.not737882, label %.critedge9, label %.lr.ph885

.lr.ph885:                                        ; preds = %215, %218
  %.1594884 = phi i32 [ %227, %218 ], [ %.0593, %215 ]
  %.2619883 = phi i32 [ %226, %218 ], [ 0, %215 ]
  %216 = lshr i32 %.2619883, 3
  %217 = icmp ult i32 %216, %159
  br i1 %217, label %218, label %.critedge9

218:                                              ; preds = %.lr.ph885
  %219 = and i32 %.2619883, 7
  %220 = shl nuw nsw i32 1, %219
  %221 = zext nneg i32 %216 to i64
  %222 = getelementptr inbounds i8, ptr %.0627779783, i64 %221
  %223 = load i8, ptr %222, align 1, !tbaa !24
  %224 = trunc nuw i32 %220 to i8
  %225 = or i8 %223, %224
  store i8 %225, ptr %222, align 1, !tbaa !24
  %226 = add nuw i32 %.2619883, 1
  %227 = add i32 %.1594884, -1
  %.not737 = icmp eq i32 %227, 0
  br i1 %.not737, label %.critedge9, label %.lr.ph885, !llvm.loop !26

.critedge9:                                       ; preds = %.lr.ph885, %218, %215
  %.1594.lcssa = phi i32 [ 0, %215 ], [ 0, %218 ], [ %.1594884, %.lr.ph885 ]
  %228 = call i32 @llvm.umin.i32(i32 %.0655, i32 %55)
  %229 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.2640, i32 noundef %228) #6
  %.not738 = icmp eq i32 %229, 0
  br i1 %.not738, label %231, label %230

230:                                              ; preds = %.critedge9
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

231:                                              ; preds = %.critedge9
  %232 = zext nneg i32 %228 to i64
  %233 = add i64 %.2640, %232
  %234 = sub i32 %.0655, %228
  %.not739 = icmp eq i32 %234, 0
  br i1 %.not739, label %.preheader814, label %215, !llvm.loop !27

.preheader814:                                    ; preds = %231
  %235 = getelementptr inbounds i8, ptr %.0627779783, i64 4
  br label %236

236:                                              ; preds = %.preheader814, %259
  %.1656 = phi i32 [ %262, %259 ], [ %128, %.preheader814 ]
  %.3641 = phi i64 [ %261, %259 ], [ %123, %.preheader814 ]
  %.2595 = phi i32 [ %.5598, %259 ], [ 0, %.preheader814 ]
  %.0589 = phi i32 [ %.3592.lcssa, %259 ], [ 0, %.preheader814 ]
  %.4 = phi i32 [ %.6, %259 ], [ 0, %.preheader814 ]
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %.0627779783, i8 0, i64 %214, i1 false)
  %237 = icmp eq i32 %.0589, 0
  br i1 %237, label %238, label %.preheader1267

238:                                              ; preds = %236
  call void @st_dword(ptr noundef nonnull %.0627779783, i32 noundef -8)
  call void @st_dword(ptr noundef nonnull %235, i32 noundef -1)
  br label %.preheader1267

.preheader1267:                                   ; preds = %238, %236
  %.4621.ph = phi i32 [ 0, %236 ], [ 8, %238 ]
  %.2591.ph = phi i32 [ %.0589, %236 ], [ 2, %238 ]
  br label %239

239:                                              ; preds = %.preheader1267, %255
  %.4621 = phi i32 [ %.5622.lcssa, %255 ], [ %.4621.ph, %.preheader1267 ]
  %.3596 = phi i32 [ %.5598, %255 ], [ %.2595, %.preheader1267 ]
  %.2591 = phi i32 [ %.3592.lcssa, %255 ], [ %.2591.ph, %.preheader1267 ]
  %.5 = phi i32 [ %.6, %255 ], [ %.4, %.preheader1267 ]
  %.not740889 = icmp ne i32 %.3596, 0
  %240 = icmp ult i32 %.4621, %159
  %or.cond766890 = select i1 %.not740889, i1 %240, i1 false
  br i1 %or.cond766890, label %.lr.ph894.preheader, label %.critedge11

.lr.ph894.preheader:                              ; preds = %239
  %241 = zext i32 %.4621 to i64
  br label %.lr.ph894

.lr.ph894:                                        ; preds = %.lr.ph894.preheader, %.lr.ph894
  %indvars.iv = phi i64 [ %241, %.lr.ph894.preheader ], [ %indvars.iv.next, %.lr.ph894 ]
  %.3592893 = phi i32 [ %.2591, %.lr.ph894.preheader ], [ %243, %.lr.ph894 ]
  %.4597892 = phi i32 [ %.3596, %.lr.ph894.preheader ], [ %245, %.lr.ph894 ]
  %242 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv
  %.not753 = icmp eq i32 %.4597892, 1
  %243 = add i32 %.3592893, 1
  %244 = select i1 %.not753, i32 -1, i32 %243
  call void @st_dword(ptr noundef nonnull %242, i32 noundef %244)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 4
  %245 = add i32 %.4597892, -1
  %.not740 = icmp ne i32 %245, 0
  %246 = icmp ult i64 %indvars.iv.next, %214
  %or.cond766 = select i1 %.not740, i1 %246, i1 false
  br i1 %or.cond766, label %.lr.ph894, label %.critedge11.loopexit, !llvm.loop !28

.critedge11.loopexit:                             ; preds = %.lr.ph894
  %247 = trunc nuw i64 %indvars.iv.next to i32
  br label %.critedge11

.critedge11:                                      ; preds = %.critedge11.loopexit, %239
  %.5622.lcssa = phi i32 [ %.4621, %239 ], [ %247, %.critedge11.loopexit ]
  %.4597.lcssa = phi i32 [ %.3596, %239 ], [ %245, %.critedge11.loopexit ]
  %.3592.lcssa = phi i32 [ %.2591, %239 ], [ %243, %.critedge11.loopexit ]
  %.lcssa869 = phi i1 [ %240, %239 ], [ %246, %.critedge11.loopexit ]
  %248 = icmp eq i32 %.4597.lcssa, 0
  %249 = icmp ult i32 %.5, 3
  %or.cond13 = select i1 %248, i1 %249, i1 false
  br i1 %or.cond13, label %250, label %255

250:                                              ; preds = %.critedge11
  %251 = add nuw nsw i32 %.5, 1
  %252 = zext nneg i32 %.5 to i64
  %253 = getelementptr inbounds [3 x i32], ptr %9, i64 0, i64 %252
  %254 = load i32, ptr %253, align 4, !tbaa !16
  br label %255

255:                                              ; preds = %.critedge11, %250
  %.5598 = phi i32 [ %254, %250 ], [ %.4597.lcssa, %.critedge11 ]
  %.6 = phi i32 [ %251, %250 ], [ %.5, %.critedge11 ]
  %.not741 = icmp ne i32 %.5598, 0
  %or.cond767 = select i1 %.not741, i1 %.lcssa869, i1 false
  br i1 %or.cond767, label %239, label %.critedge15, !llvm.loop !29

.critedge15:                                      ; preds = %255
  %256 = call i32 @llvm.umin.i32(i32 %.1656, i32 %55)
  %257 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.3641, i32 noundef %256) #6
  %.not742 = icmp eq i32 %257, 0
  br i1 %.not742, label %259, label %258

258:                                              ; preds = %.critedge15
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

259:                                              ; preds = %.critedge15
  %260 = zext nneg i32 %256 to i64
  %261 = add i64 %.3641, %260
  %262 = sub i32 %.1656, %256
  %.not743 = icmp eq i32 %262, 0
  br i1 %.not743, label %263, label %236, !llvm.loop !30

263:                                              ; preds = %259
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %.0627779783, i8 0, i64 %214, i1 false)
  store i8 -125, ptr %.0627779783, align 1, !tbaa !24
  %264 = getelementptr inbounds i8, ptr %.0627779783, i64 32
  store i8 -127, ptr %264, align 1, !tbaa !24
  %265 = getelementptr inbounds i8, ptr %.0627779783, i64 52
  call void @st_dword(ptr noundef nonnull %265, i32 noundef 2)
  %266 = getelementptr inbounds i8, ptr %.0627779783, i64 56
  call void @st_dword(ptr noundef nonnull %266, i32 noundef %151)
  %267 = getelementptr inbounds i8, ptr %.0627779783, i64 64
  store i8 -126, ptr %267, align 1, !tbaa !24
  %268 = getelementptr inbounds i8, ptr %.0627779783, i64 68
  call void @st_dword(ptr noundef nonnull %268, i32 noundef %191)
  %269 = getelementptr inbounds i8, ptr %.0627779783, i64 84
  %270 = load i32, ptr %9, align 4, !tbaa !16
  %271 = add i32 %270, 2
  call void @st_dword(ptr noundef nonnull %269, i32 noundef %271)
  %272 = getelementptr inbounds i8, ptr %.0627779783, i64 88
  call void @st_dword(ptr noundef nonnull %272, i32 noundef %192)
  %273 = load i32, ptr %9, align 4, !tbaa !16
  %274 = load i32, ptr %208, align 4, !tbaa !16
  %275 = add i32 %274, %273
  %276 = mul i32 %275, %.1629
  %277 = zext i32 %276 to i64
  %278 = add nuw nsw i64 %136, %277
  br label %279

279:                                              ; preds = %283, %263
  %.2657 = phi i32 [ %.1629, %263 ], [ %286, %283 ]
  %.4642 = phi i64 [ %278, %263 ], [ %285, %283 ]
  %280 = call i32 @llvm.umin.i32(i32 %.2657, i32 %55)
  %281 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.4642, i32 noundef %280) #6
  %.not744 = icmp eq i32 %281, 0
  br i1 %.not744, label %283, label %282

282:                                              ; preds = %279
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

283:                                              ; preds = %279
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(512) %.0627779783, i8 0, i64 512, i1 false)
  %284 = zext nneg i32 %280 to i64
  %285 = add i64 %.4642, %284
  %286 = sub i32 %.2657, %280
  %.not745 = icmp eq i32 %286, 0
  br i1 %.not745, label %.preheader813, label %279, !llvm.loop !31

.preheader813:                                    ; preds = %283
  %287 = getelementptr inbounds i8, ptr %.0627779783, i64 72
  %288 = getelementptr inbounds i8, ptr %.0627779783, i64 80
  %289 = trunc i64 %137 to i32
  %290 = getelementptr inbounds i8, ptr %.0627779783, i64 92
  %291 = getelementptr inbounds i8, ptr %.0627779783, i64 96
  %292 = getelementptr inbounds i8, ptr %.0627779783, i64 100
  %293 = getelementptr inbounds i8, ptr %.0627779783, i64 104
  %294 = getelementptr inbounds i8, ptr %.0627779783, i64 108
  %295 = getelementptr inbounds i8, ptr %.0627779783, i64 109
  %.not748901 = icmp ult i32 %.1629, 2
  %296 = getelementptr inbounds i8, ptr %.0627779783, i64 110
  %297 = getelementptr inbounds i8, ptr %.0627779783, i64 111
  %298 = getelementptr inbounds i8, ptr %.0627779783, i64 120
  %299 = getelementptr inbounds i8, ptr %.0627779783, i64 510
  %300 = getelementptr i8, ptr %.0627779783, i64 11
  %301 = call range(i32 9, 33) i32 @llvm.ctlz.i32(i32 %.1629, i1 true)
  %302 = trunc nuw nsw i32 %301 to i8
  %303 = xor i8 %302, 31
  %spec.select1128 = select i1 %.not748901, i8 0, i8 %303
  br label %._crit_edge

._crit_edge:                                      ; preds = %.preheader813, %382
  %.5643923 = phi i64 [ %.0651793, %.preheader813 ], [ %383, %382 ]
  %304 = phi i1 [ true, %.preheader813 ], [ false, %382 ]
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(501) %300, i8 0, i64 501, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(11) %.0627779783, ptr noundef nonnull align 1 dereferenceable(11) @.str, i64 11, i1 false)
  call void @st_qword(ptr noundef nonnull %267, i64 noundef %.0651793)
  %305 = load i64, ptr %7, align 8, !tbaa !21
  call void @st_qword(ptr noundef nonnull %287, i64 noundef %305)
  call void @st_dword(ptr noundef nonnull %288, i32 noundef 32)
  call void @st_dword(ptr noundef nonnull %269, i32 noundef %128)
  call void @st_dword(ptr noundef nonnull %272, i32 noundef %289)
  call void @st_dword(ptr noundef nonnull %290, i32 noundef %143)
  %306 = load i32, ptr %9, align 4, !tbaa !16
  %307 = add i32 %306, 2
  %308 = load i32, ptr %208, align 4, !tbaa !16
  %309 = add i32 %307, %308
  call void @st_dword(ptr noundef nonnull %291, i32 noundef %309)
  call void @st_dword(ptr noundef nonnull %292, i32 noundef %115)
  call void @st_word(ptr noundef nonnull %293, i16 noundef zeroext 256)
  store i8 9, ptr %294, align 1, !tbaa !24
  store i8 %spec.select1128, ptr %295, align 1, !tbaa !24
  store i8 1, ptr %296, align 1, !tbaa !24
  store i8 -128, ptr %297, align 1, !tbaa !24
  call void @st_word(ptr noundef nonnull %298, i16 noundef zeroext -277)
  call void @st_word(ptr noundef nonnull %299, i16 noundef zeroext -21931)
  br label %310

310:                                              ; preds = %._crit_edge, %316
  %indvars.iv1034 = phi i64 [ 0, %._crit_edge ], [ %indvars.iv.next1035, %316 ]
  %.1600907 = phi i32 [ 0, %._crit_edge ], [ %.2601, %316 ]
  %311 = trunc nuw nsw i64 %indvars.iv1034 to i32
  switch i32 %311, label %312 [
    i32 112, label %316
    i32 107, label %316
    i32 106, label %316
  ]

312:                                              ; preds = %310
  %313 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1034
  %314 = load i8, ptr %313, align 1, !tbaa !24
  %315 = call i32 @xsum32(i8 noundef zeroext %314, i32 noundef %.1600907)
  br label %316

316:                                              ; preds = %310, %310, %310, %312
  %.2601 = phi i32 [ %315, %312 ], [ %.1600907, %310 ], [ %.1600907, %310 ], [ %.1600907, %310 ]
  %indvars.iv.next1035 = add nuw nsw i64 %indvars.iv1034, 1
  %exitcond1037.not = icmp eq i64 %indvars.iv.next1035, 512
  br i1 %exitcond1037.not, label %317, label %310, !llvm.loop !32

317:                                              ; preds = %316
  %318 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.5643923, i32 noundef 1) #6
  %.not749 = icmp eq i32 %318, 0
  br i1 %.not749, label %.preheader811, label %319

319:                                              ; preds = %317
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

.preheader811:                                    ; preds = %317
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(512) %.0627779783, i8 0, i64 512, i1 false)
  call void @st_word(ptr noundef nonnull %299, i16 noundef zeroext -21931)
  %.6644910 = add nuw nsw i64 %.5643923, 1
  br label %320

320:                                              ; preds = %.preheader811, %320
  %indvars.iv1038 = phi i64 [ 0, %.preheader811 ], [ %indvars.iv.next1039, %320 ]
  %.4603909 = phi i32 [ %.2601, %.preheader811 ], [ %323, %320 ]
  %indvars.iv.next1039 = add nuw nsw i64 %indvars.iv1038, 1
  %321 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038
  %322 = load i8, ptr %321, align 1, !tbaa !24
  %323 = call i32 @xsum32(i8 noundef zeroext %322, i32 noundef %.4603909)
  %exitcond1041.not = icmp eq i64 %indvars.iv.next1039, 512
  br i1 %exitcond1041.not, label %324, label %320, !llvm.loop !33

324:                                              ; preds = %320
  %325 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644910, i32 noundef 1) #6
  %.not752 = icmp eq i32 %325, 0
  br i1 %.not752, label %.preheader811.1, label %326

326:                                              ; preds = %360, %355, %350, %345, %340, %335, %330, %324
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

.preheader811.1:                                  ; preds = %324, %.preheader811.1
  %indvars.iv1038.1 = phi i64 [ %indvars.iv.next1039.1, %.preheader811.1 ], [ 0, %324 ]
  %.4603909.1 = phi i32 [ %329, %.preheader811.1 ], [ %323, %324 ]
  %indvars.iv.next1039.1 = add nuw nsw i64 %indvars.iv1038.1, 1
  %327 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038.1
  %328 = load i8, ptr %327, align 1, !tbaa !24
  %329 = call i32 @xsum32(i8 noundef zeroext %328, i32 noundef %.4603909.1)
  %exitcond1041.1.not = icmp eq i64 %indvars.iv.next1039.1, 512
  br i1 %exitcond1041.1.not, label %330, label %.preheader811.1, !llvm.loop !33

330:                                              ; preds = %.preheader811.1
  %.6644 = add nuw nsw i64 %.5643923, 2
  %331 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644, i32 noundef 1) #6
  %.not752.1 = icmp eq i32 %331, 0
  br i1 %.not752.1, label %.preheader811.2, label %326

.preheader811.2:                                  ; preds = %330, %.preheader811.2
  %indvars.iv1038.2 = phi i64 [ %indvars.iv.next1039.2, %.preheader811.2 ], [ 0, %330 ]
  %.4603909.2 = phi i32 [ %334, %.preheader811.2 ], [ %329, %330 ]
  %indvars.iv.next1039.2 = add nuw nsw i64 %indvars.iv1038.2, 1
  %332 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038.2
  %333 = load i8, ptr %332, align 1, !tbaa !24
  %334 = call i32 @xsum32(i8 noundef zeroext %333, i32 noundef %.4603909.2)
  %exitcond1041.2.not = icmp eq i64 %indvars.iv.next1039.2, 512
  br i1 %exitcond1041.2.not, label %335, label %.preheader811.2, !llvm.loop !33

335:                                              ; preds = %.preheader811.2
  %.6644.1 = add nuw nsw i64 %.5643923, 3
  %336 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644.1, i32 noundef 1) #6
  %.not752.2 = icmp eq i32 %336, 0
  br i1 %.not752.2, label %.preheader811.3, label %326

.preheader811.3:                                  ; preds = %335, %.preheader811.3
  %indvars.iv1038.3 = phi i64 [ %indvars.iv.next1039.3, %.preheader811.3 ], [ 0, %335 ]
  %.4603909.3 = phi i32 [ %339, %.preheader811.3 ], [ %334, %335 ]
  %indvars.iv.next1039.3 = add nuw nsw i64 %indvars.iv1038.3, 1
  %337 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038.3
  %338 = load i8, ptr %337, align 1, !tbaa !24
  %339 = call i32 @xsum32(i8 noundef zeroext %338, i32 noundef %.4603909.3)
  %exitcond1041.3.not = icmp eq i64 %indvars.iv.next1039.3, 512
  br i1 %exitcond1041.3.not, label %340, label %.preheader811.3, !llvm.loop !33

340:                                              ; preds = %.preheader811.3
  %.6644.2 = add nuw nsw i64 %.5643923, 4
  %341 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644.2, i32 noundef 1) #6
  %.not752.3 = icmp eq i32 %341, 0
  br i1 %.not752.3, label %.preheader811.4, label %326

.preheader811.4:                                  ; preds = %340, %.preheader811.4
  %indvars.iv1038.4 = phi i64 [ %indvars.iv.next1039.4, %.preheader811.4 ], [ 0, %340 ]
  %.4603909.4 = phi i32 [ %344, %.preheader811.4 ], [ %339, %340 ]
  %indvars.iv.next1039.4 = add nuw nsw i64 %indvars.iv1038.4, 1
  %342 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038.4
  %343 = load i8, ptr %342, align 1, !tbaa !24
  %344 = call i32 @xsum32(i8 noundef zeroext %343, i32 noundef %.4603909.4)
  %exitcond1041.4.not = icmp eq i64 %indvars.iv.next1039.4, 512
  br i1 %exitcond1041.4.not, label %345, label %.preheader811.4, !llvm.loop !33

345:                                              ; preds = %.preheader811.4
  %.6644.3 = add nuw nsw i64 %.5643923, 5
  %346 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644.3, i32 noundef 1) #6
  %.not752.4 = icmp eq i32 %346, 0
  br i1 %.not752.4, label %.preheader811.5, label %326

.preheader811.5:                                  ; preds = %345, %.preheader811.5
  %indvars.iv1038.5 = phi i64 [ %indvars.iv.next1039.5, %.preheader811.5 ], [ 0, %345 ]
  %.4603909.5 = phi i32 [ %349, %.preheader811.5 ], [ %344, %345 ]
  %indvars.iv.next1039.5 = add nuw nsw i64 %indvars.iv1038.5, 1
  %347 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038.5
  %348 = load i8, ptr %347, align 1, !tbaa !24
  %349 = call i32 @xsum32(i8 noundef zeroext %348, i32 noundef %.4603909.5)
  %exitcond1041.5.not = icmp eq i64 %indvars.iv.next1039.5, 512
  br i1 %exitcond1041.5.not, label %350, label %.preheader811.5, !llvm.loop !33

350:                                              ; preds = %.preheader811.5
  %.6644.4 = add nuw nsw i64 %.5643923, 6
  %351 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644.4, i32 noundef 1) #6
  %.not752.5 = icmp eq i32 %351, 0
  br i1 %.not752.5, label %.preheader811.6, label %326

.preheader811.6:                                  ; preds = %350, %.preheader811.6
  %indvars.iv1038.6 = phi i64 [ %indvars.iv.next1039.6, %.preheader811.6 ], [ 0, %350 ]
  %.4603909.6 = phi i32 [ %354, %.preheader811.6 ], [ %349, %350 ]
  %indvars.iv.next1039.6 = add nuw nsw i64 %indvars.iv1038.6, 1
  %352 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038.6
  %353 = load i8, ptr %352, align 1, !tbaa !24
  %354 = call i32 @xsum32(i8 noundef zeroext %353, i32 noundef %.4603909.6)
  %exitcond1041.6.not = icmp eq i64 %indvars.iv.next1039.6, 512
  br i1 %exitcond1041.6.not, label %355, label %.preheader811.6, !llvm.loop !33

355:                                              ; preds = %.preheader811.6
  %.6644.5 = add nuw nsw i64 %.5643923, 7
  %356 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644.5, i32 noundef 1) #6
  %.not752.6 = icmp eq i32 %356, 0
  br i1 %.not752.6, label %.preheader811.7, label %326

.preheader811.7:                                  ; preds = %355, %.preheader811.7
  %indvars.iv1038.7 = phi i64 [ %indvars.iv.next1039.7, %.preheader811.7 ], [ 0, %355 ]
  %.4603909.7 = phi i32 [ %359, %.preheader811.7 ], [ %354, %355 ]
  %indvars.iv.next1039.7 = add nuw nsw i64 %indvars.iv1038.7, 1
  %357 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1038.7
  %358 = load i8, ptr %357, align 1, !tbaa !24
  %359 = call i32 @xsum32(i8 noundef zeroext %358, i32 noundef %.4603909.7)
  %exitcond1041.7.not = icmp eq i64 %indvars.iv.next1039.7, 512
  br i1 %exitcond1041.7.not, label %360, label %.preheader811.7, !llvm.loop !33

360:                                              ; preds = %.preheader811.7
  %.6644.6 = add nuw nsw i64 %.5643923, 8
  %361 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644.6, i32 noundef 1) #6
  %.not752.7 = icmp eq i32 %361, 0
  br i1 %.not752.7, label %.preheader.preheader, label %326

.preheader.preheader:                             ; preds = %360
  %.6644.7 = add nuw nsw i64 %.5643923, 9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(512) %.0627779783, i8 0, i64 512, i1 false)
  br label %363

.preheader812:                                    ; preds = %373
  %362 = add nuw nsw i64 %.5643923, 11
  br label %376

363:                                              ; preds = %.preheader.preheader, %363
  %indvars.iv1043 = phi i64 [ 0, %.preheader.preheader ], [ %indvars.iv.next1044, %363 ]
  %.6605915 = phi i32 [ %359, %.preheader.preheader ], [ %366, %363 ]
  %indvars.iv.next1044 = add nuw nsw i64 %indvars.iv1043, 1
  %364 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1043
  %365 = load i8, ptr %364, align 1, !tbaa !24
  %366 = call i32 @xsum32(i8 noundef zeroext %365, i32 noundef %.6605915)
  %exitcond1046.not = icmp eq i64 %indvars.iv.next1044, 512
  br i1 %exitcond1046.not, label %367, label %363, !llvm.loop !34

367:                                              ; preds = %363
  %368 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.6644.7, i32 noundef 1) #6
  %.not751 = icmp eq i32 %368, 0
  br i1 %.not751, label %.preheader.1, label %369

369:                                              ; preds = %373, %367
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

.preheader.1:                                     ; preds = %367, %.preheader.1
  %indvars.iv1043.1 = phi i64 [ %indvars.iv.next1044.1, %.preheader.1 ], [ 0, %367 ]
  %.6605915.1 = phi i32 [ %372, %.preheader.1 ], [ %366, %367 ]
  %indvars.iv.next1044.1 = add nuw nsw i64 %indvars.iv1043.1, 1
  %370 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1043.1
  %371 = load i8, ptr %370, align 1, !tbaa !24
  %372 = call i32 @xsum32(i8 noundef zeroext %371, i32 noundef %.6605915.1)
  %exitcond1046.1.not = icmp eq i64 %indvars.iv.next1044.1, 512
  br i1 %exitcond1046.1.not, label %373, label %.preheader.1, !llvm.loop !34

373:                                              ; preds = %.preheader.1
  %374 = add nuw nsw i64 %.5643923, 10
  %375 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %374, i32 noundef 1) #6
  %.not751.1 = icmp eq i32 %375, 0
  br i1 %.not751.1, label %.preheader812, label %369

376:                                              ; preds = %.preheader812, %376
  %indvars.iv1049 = phi i64 [ 0, %.preheader812 ], [ %indvars.iv.next1050, %376 ]
  %377 = getelementptr inbounds i8, ptr %.0627779783, i64 %indvars.iv1049
  call void @st_dword(ptr noundef nonnull %377, i32 noundef %372)
  %indvars.iv.next1050 = add nuw nsw i64 %indvars.iv1049, 4
  %378 = icmp ult i64 %indvars.iv1049, 508
  br i1 %378, label %376, label %379, !llvm.loop !35

379:                                              ; preds = %376
  %380 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %362, i32 noundef 1) #6
  %.not750 = icmp eq i32 %380, 0
  br i1 %.not750, label %382, label %381

381:                                              ; preds = %379
  br i1 %.not712, label %.thread801.sink.split, label %.thread801

382:                                              ; preds = %379
  %383 = add nuw nsw i64 %.5643923, 12
  br i1 %304, label %._crit_edge, label %.thread806, !llvm.loop !36

.thread801.sink.split:                            ; preds = %381, %369, %326, %319, %282, %258, %230, %200, %148, %145, %139, %118
  %.0607.ph.ph = phi i32 [ 14, %118 ], [ 14, %139 ], [ 14, %145 ], [ 14, %148 ], [ 1, %200 ], [ 1, %230 ], [ 1, %258 ], [ 1, %282 ], [ 1, %319 ], [ 1, %326 ], [ 1, %369 ], [ 1, %381 ]
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread801

.thread801:                                       ; preds = %.thread801.sink.split, %118, %139, %145, %148, %200, %230, %258, %282, %319, %326, %369, %381
  %.0607.ph = phi i32 [ 1, %381 ], [ 1, %369 ], [ 1, %326 ], [ 1, %319 ], [ 1, %282 ], [ 1, %258 ], [ 1, %230 ], [ 1, %200 ], [ 14, %148 ], [ 14, %145 ], [ 14, %139 ], [ 14, %118 ], [ %.0607.ph.ph, %.thread801.sink.split ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %9) #6
  br label %.thread785

.thread806:                                       ; preds = %382
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %9) #6
  br label %582

384:                                              ; preds = %.backedge, %.preheader
  %.2630 = phi i32 [ %spec.store.select6, %.preheader ], [ %.2630.be, %.backedge ]
  %.1612 = phi i8 [ %spec.select, %.preheader ], [ %.1612.be, %.backedge ]
  %385 = icmp eq i8 %.1612, 3
  %386 = icmp ne i32 %.2630, 0
  %.2630.mux = select i1 %386, i32 %.2630, i32 1
  br i1 %385, label %387, label %401

387:                                              ; preds = %384
  %388 = select i1 %386, i1 true, i1 %.not722932
  %brmerge956 = select i1 %388, i1 true, i1 %.not723933
  br i1 %brmerge956, label %.critedge21, label %.lr.ph938

.lr.ph938:                                        ; preds = %387, %.lr.ph938
  %.12936 = phi i32 [ %389, %.lr.ph938 ], [ 0, %387 ]
  %.0660935 = phi i32 [ %390, %.lr.ph938 ], [ 1, %387 ]
  %389 = add i32 %.12936, 1
  %390 = shl i32 %.0660935, 1
  %391 = zext i32 %389 to i64
  %392 = getelementptr inbounds [7 x i16], ptr @f_mkfs.cst32, i64 0, i64 %391
  %393 = load i16, ptr %392, align 2, !tbaa !37
  %.not722 = icmp eq i16 %393, 0
  %394 = zext i16 %393 to i32
  %.not723 = icmp ult i32 %103, %394
  %or.cond768 = select i1 %.not722, i1 true, i1 %.not723
  br i1 %or.cond768, label %.critedge21, label %.lr.ph938, !llvm.loop !38

.critedge21:                                      ; preds = %.lr.ph938, %387
  %.1661 = phi i32 [ %.2630.mux, %387 ], [ %390, %.lr.ph938 ]
  %395 = udiv i32 %98, %.1661
  %396 = shl nuw nsw i32 %395, 2
  %397 = add nuw i32 %396, 519
  %398 = add i32 %395, -268435446
  %or.cond23 = icmp ult i32 %398, -268369920
  br i1 %or.cond23, label %399, label %421

399:                                              ; preds = %.critedge21
  br i1 %.not712, label %400, label %.thread785

400:                                              ; preds = %399
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

401:                                              ; preds = %384
  %402 = select i1 %386, i1 true, i1 %.not720924
  %brmerge958 = select i1 %402, i1 true, i1 %.not721925
  br i1 %brmerge958, label %.critedge25, label %.lr.ph930

.lr.ph930:                                        ; preds = %401, %.lr.ph930
  %.13928 = phi i32 [ %403, %.lr.ph930 ], [ 0, %401 ]
  %.2662927 = phi i32 [ %404, %.lr.ph930 ], [ 1, %401 ]
  %403 = add i32 %.13928, 1
  %404 = shl i32 %.2662927, 1
  %405 = zext i32 %403 to i64
  %406 = getelementptr inbounds [7 x i16], ptr @f_mkfs.cst, i64 0, i64 %405
  %407 = load i16, ptr %406, align 2, !tbaa !37
  %.not720 = icmp eq i16 %407, 0
  %408 = zext i16 %407 to i32
  %.not721 = icmp ult i32 %99, %408
  %or.cond769 = select i1 %.not720, i1 true, i1 %.not721
  br i1 %or.cond769, label %.critedge25, label %.lr.ph930, !llvm.loop !39

.critedge25:                                      ; preds = %.lr.ph930, %401
  %.3663 = phi i32 [ %.2630.mux, %401 ], [ %404, %.lr.ph930 ]
  %409 = udiv i32 %98, %.3663
  %410 = icmp ugt i32 %409, 4085
  br i1 %410, label %411, label %414

411:                                              ; preds = %.critedge25
  %412 = shl i32 %409, 1
  %413 = add i32 %412, 4
  br label %419

414:                                              ; preds = %.critedge25
  %415 = mul nuw nsw i32 %409, 3
  %416 = add nuw nsw i32 %415, 1
  %417 = lshr i32 %416, 1
  %418 = add nuw nsw i32 %417, 3
  br label %419

419:                                              ; preds = %414, %411
  %.1653 = phi i32 [ %413, %411 ], [ %418, %414 ]
  %.2613 = phi i8 [ %.1612, %411 ], [ 1, %414 ]
  %420 = add i32 %.1653, 511
  br label %421

421:                                              ; preds = %.critedge21, %419
  %.4664 = phi i32 [ %.1661, %.critedge21 ], [ %.3663, %419 ]
  %.0635 = phi i32 [ 32, %.critedge21 ], [ 1, %419 ]
  %.0633.in = phi i32 [ %397, %.critedge21 ], [ %420, %419 ]
  %.0632 = phi i32 [ 0, %.critedge21 ], [ %102, %419 ]
  %.3614 = phi i8 [ 3, %.critedge21 ], [ %.2613, %419 ]
  %.0633 = lshr i32 %.0633.in, 9
  %422 = zext nneg i32 %.0635 to i64
  %423 = add nuw nsw i64 %.0651793, %422
  %424 = mul nuw nsw i32 %.0633, %41
  %425 = zext nneg i32 %424 to i64
  %426 = zext nneg i32 %.0632 to i64
  %427 = add nuw nsw i64 %423, %426
  %428 = add nuw nsw i64 %427, %425
  %429 = add nuw nsw i64 %108, %428
  %430 = and i64 %429, %110
  %431 = sub nsw i64 %430, %428
  %432 = trunc i64 %431 to i32
  %433 = icmp eq i8 %.3614, 3
  br i1 %433, label %434, label %436

434:                                              ; preds = %421
  %435 = and i64 %431, 4294967295
  br label %443

436:                                              ; preds = %421
  %437 = urem i32 %432, %41
  %.not724 = icmp ne i32 %437, 0
  %438 = sext i1 %.not724 to i32
  %.2654 = add i32 %438, %432
  %439 = zext i1 %.not724 to i64
  %440 = zext i1 %.not724 to i32
  %441 = udiv i32 %.2654, %41
  %442 = add i32 %441, %.0633
  br label %443

443:                                              ; preds = %436, %434
  %.pn = phi i64 [ %435, %434 ], [ %439, %436 ]
  %.pn808 = phi i32 [ %432, %434 ], [ %440, %436 ]
  %.1634 = phi i32 [ %.0633, %434 ], [ %442, %436 ]
  %.2637 = add i32 %.pn808, %.0635
  %444 = shl i32 %.4664, 4
  %445 = zext i32 %444 to i64
  %446 = sub nsw i64 %445, %.0651793
  %447 = add nsw i64 %446, %428
  %448 = icmp ult i64 %97, %447
  br i1 %448, label %449, label %451

449:                                              ; preds = %443
  br i1 %.not712, label %450, label %.thread785

450:                                              ; preds = %449
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

451:                                              ; preds = %443
  %452 = mul i32 %.1634, %41
  %453 = add i32 %.2637, %.0632
  %454 = add i32 %453, %452
  %455 = sub i32 %98, %454
  %456 = udiv i32 %455, %.4664
  %457 = icmp ult i32 %456, 65526
  %or.cond30 = select i1 %433, i1 %457, i1 false
  br i1 %or.cond30, label %458, label %463

458:                                              ; preds = %451
  %459 = icmp ne i32 %.2630, 0
  %460 = lshr i32 %.4664, 1
  %.not731 = icmp ult i32 %.4664, 2
  %or.cond770 = or i1 %459, %.not731
  br i1 %or.cond770, label %461, label %.backedge

461:                                              ; preds = %458
  br i1 %.not712, label %462, label %.thread785

462:                                              ; preds = %461
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

463:                                              ; preds = %451
  %464 = icmp eq i8 %.3614, 2
  br i1 %464, label %465, label %483

465:                                              ; preds = %463
  %466 = icmp ugt i32 %456, 65525
  br i1 %466, label %467, label %475

467:                                              ; preds = %465
  %468 = icmp eq i32 %.2630, 0
  %469 = shl i32 %.4664, 1
  %470 = icmp ult i32 %469, 65
  %or.cond776 = and i1 %468, %470
  %brmerge952 = or i1 %or.cond776, %.not730
  %.mux953 = select i1 %or.cond776, i32 %469, i32 %.2630
  %.mux954 = select i1 %or.cond776, i8 2, i8 3
  br i1 %brmerge952, label %.backedge, label %471

.backedge:                                        ; preds = %467, %477, %471, %458
  %.2630.be = phi i32 [ %460, %458 ], [ %469, %471 ], [ %479, %477 ], [ %.mux953, %467 ]
  %.1612.be = phi i8 [ 3, %458 ], [ 2, %471 ], [ 2, %477 ], [ %.mux954, %467 ]
  br label %384

471:                                              ; preds = %467
  %472 = icmp ult i32 %469, 129
  %or.cond772 = and i1 %468, %472
  br i1 %or.cond772, label %.backedge, label %473

473:                                              ; preds = %471
  br i1 %.not712, label %474, label %.thread785

474:                                              ; preds = %473
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

475:                                              ; preds = %465
  %476 = icmp ult i32 %456, 4086
  br i1 %476, label %477, label %.thread804

477:                                              ; preds = %475
  %478 = icmp eq i32 %.2630, 0
  %479 = shl i32 %.4664, 1
  %480 = icmp ult i32 %479, 129
  %or.cond774 = and i1 %478, %480
  br i1 %or.cond774, label %.backedge, label %481

481:                                              ; preds = %477
  br i1 %.not712, label %482, label %.thread785

482:                                              ; preds = %481
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

483:                                              ; preds = %463
  %484 = icmp eq i8 %.3614, 1
  %485 = icmp ugt i32 %456, 4085
  %or.cond27 = select i1 %484, i1 %485, i1 false
  br i1 %or.cond27, label %486, label %.thread804

486:                                              ; preds = %483
  br i1 %.not712, label %487, label %.thread785

487:                                              ; preds = %486
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

.thread804:                                       ; preds = %475, %483
  %488 = phi i1 [ %484, %483 ], [ false, %475 ]
  %.1650846 = add nuw nsw i64 %.pn, %423
  %489 = getelementptr i8, ptr %.0627779783, i64 11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(501) %489, i8 0, i64 501, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(11) %.0627779783, ptr noundef nonnull align 1 dereferenceable(11) @.str.1, i64 11, i1 false)
  %490 = getelementptr inbounds i8, ptr %.0627779783, i64 11
  call void @st_word(ptr noundef nonnull %490, i16 noundef zeroext 512)
  %491 = trunc i32 %.4664 to i8
  %492 = getelementptr inbounds i8, ptr %.0627779783, i64 13
  store i8 %491, ptr %492, align 1, !tbaa !24
  %493 = getelementptr inbounds i8, ptr %.0627779783, i64 14
  %494 = trunc i32 %.2637 to i16
  call void @st_word(ptr noundef nonnull %493, i16 noundef zeroext %494)
  %495 = getelementptr inbounds i8, ptr %.0627779783, i64 16
  store i8 %narrow, ptr %495, align 1, !tbaa !24
  %496 = getelementptr inbounds i8, ptr %.0627779783, i64 17
  %497 = trunc nuw i32 %47 to i16
  %498 = select i1 %433, i16 0, i16 %497
  call void @st_word(ptr noundef nonnull %496, i16 noundef zeroext %498)
  %499 = load i64, ptr %7, align 8, !tbaa !21
  %500 = icmp ult i64 %499, 65536
  br i1 %500, label %501, label %504

501:                                              ; preds = %.thread804
  %502 = getelementptr inbounds i8, ptr %.0627779783, i64 19
  %503 = trunc nuw i64 %499 to i16
  call void @st_word(ptr noundef nonnull %502, i16 noundef zeroext %503)
  br label %507

504:                                              ; preds = %.thread804
  %505 = getelementptr inbounds i8, ptr %.0627779783, i64 32
  %506 = trunc i64 %499 to i32
  call void @st_dword(ptr noundef nonnull %505, i32 noundef %506)
  br label %507

507:                                              ; preds = %504, %501
  %508 = getelementptr inbounds i8, ptr %.0627779783, i64 21
  store i8 -8, ptr %508, align 1, !tbaa !24
  %509 = getelementptr inbounds i8, ptr %.0627779783, i64 24
  call void @st_word(ptr noundef nonnull %509, i16 noundef zeroext 63)
  %510 = getelementptr inbounds i8, ptr %.0627779783, i64 26
  call void @st_word(ptr noundef nonnull %510, i16 noundef zeroext 255)
  %511 = getelementptr inbounds i8, ptr %.0627779783, i64 28
  %512 = trunc nuw nsw i64 %.0651793 to i32
  call void @st_dword(ptr noundef nonnull %511, i32 noundef %512)
  br i1 %433, label %513, label %522

513:                                              ; preds = %507
  %514 = getelementptr inbounds i8, ptr %.0627779783, i64 67
  call void @st_dword(ptr noundef nonnull %514, i32 noundef %96)
  %515 = getelementptr inbounds i8, ptr %.0627779783, i64 36
  call void @st_dword(ptr noundef nonnull %515, i32 noundef %.1634)
  %516 = getelementptr inbounds i8, ptr %.0627779783, i64 44
  call void @st_dword(ptr noundef nonnull %516, i32 noundef 2)
  %517 = getelementptr inbounds i8, ptr %.0627779783, i64 48
  call void @st_word(ptr noundef nonnull %517, i16 noundef zeroext 1)
  %518 = getelementptr inbounds i8, ptr %.0627779783, i64 50
  call void @st_word(ptr noundef nonnull %518, i16 noundef zeroext 6)
  %519 = getelementptr inbounds i8, ptr %.0627779783, i64 64
  store i8 -128, ptr %519, align 1, !tbaa !24
  %520 = getelementptr inbounds i8, ptr %.0627779783, i64 66
  store i8 41, ptr %520, align 1, !tbaa !24
  %521 = getelementptr inbounds i8, ptr %.0627779783, i64 71
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(19) %521, ptr noundef nonnull align 1 dereferenceable(19) @.str.2, i64 19, i1 false)
  br label %529

522:                                              ; preds = %507
  %523 = getelementptr inbounds i8, ptr %.0627779783, i64 39
  call void @st_dword(ptr noundef nonnull %523, i32 noundef %96)
  %524 = getelementptr inbounds i8, ptr %.0627779783, i64 22
  %525 = trunc i32 %.1634 to i16
  call void @st_word(ptr noundef nonnull %524, i16 noundef zeroext %525)
  %526 = getelementptr inbounds i8, ptr %.0627779783, i64 36
  store i8 -128, ptr %526, align 1, !tbaa !24
  %527 = getelementptr inbounds i8, ptr %.0627779783, i64 38
  store i8 41, ptr %527, align 1, !tbaa !24
  %528 = getelementptr inbounds i8, ptr %.0627779783, i64 43
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(19) %528, ptr noundef nonnull align 1 dereferenceable(19) @.str.3, i64 19, i1 false)
  br label %529

529:                                              ; preds = %522, %513
  %530 = getelementptr inbounds i8, ptr %.0627779783, i64 510
  call void @st_word(ptr noundef nonnull %530, i16 noundef zeroext -21931)
  %531 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.0651793, i32 noundef 1) #6
  %.not725 = icmp eq i32 %531, 0
  br i1 %.not725, label %534, label %532

532:                                              ; preds = %529
  br i1 %.not712, label %533, label %.thread785

533:                                              ; preds = %532
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

534:                                              ; preds = %529
  br i1 %433, label %535, label %546

535:                                              ; preds = %534
  %536 = add nuw nsw i64 %.0651793, 6
  %537 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %536, i32 noundef 1) #6
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(512) %.0627779783, i8 0, i64 512, i1 false)
  call void @st_dword(ptr noundef nonnull %.0627779783, i32 noundef 1096897106)
  %538 = getelementptr inbounds i8, ptr %.0627779783, i64 484
  call void @st_dword(ptr noundef nonnull %538, i32 noundef 1631679090)
  %539 = getelementptr inbounds i8, ptr %.0627779783, i64 488
  %540 = add i32 %456, -1
  call void @st_dword(ptr noundef nonnull %539, i32 noundef %540)
  %541 = getelementptr inbounds i8, ptr %.0627779783, i64 492
  call void @st_dword(ptr noundef nonnull %541, i32 noundef 2)
  call void @st_word(ptr noundef nonnull %530, i16 noundef zeroext -21931)
  %542 = add nuw nsw i64 %.0651793, 7
  %543 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %542, i32 noundef 1) #6
  %544 = add nuw nsw i64 %.0651793, 1
  %545 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %544, i32 noundef 1) #6
  br label %546

546:                                              ; preds = %535, %534
  %547 = and i32 %3, -512
  %548 = zext i32 %547 to i64
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %.0627779783, i8 0, i64 %548, i1 false)
  %.not960 = icmp eq i8 %narrow, 0
  br i1 %.not960, label %._crit_edge948, label %.lr.ph947

.lr.ph947:                                        ; preds = %546
  %549 = select i1 %488, i32 16777208, i32 -8
  %550 = getelementptr inbounds i8, ptr %.0627779783, i64 4
  %551 = getelementptr inbounds i8, ptr %.0627779783, i64 8
  br label %552

552:                                              ; preds = %.lr.ph947, %564
  %.14945 = phi i32 [ 0, %.lr.ph947 ], [ %565, %564 ]
  %.8646944 = phi i64 [ %.1650846, %.lr.ph947 ], [ %562, %564 ]
  br i1 %433, label %553, label %554

553:                                              ; preds = %552
  call void @st_dword(ptr noundef nonnull %.0627779783, i32 noundef -8)
  call void @st_dword(ptr noundef nonnull %550, i32 noundef -1)
  call void @st_dword(ptr noundef nonnull %551, i32 noundef 268435455)
  br label %.preheader1201

554:                                              ; preds = %552
  call void @st_dword(ptr noundef nonnull %.0627779783, i32 noundef %549)
  br label %.preheader1201

.preheader1201:                                   ; preds = %554, %553
  br label %555

555:                                              ; preds = %.preheader1201, %560
  %.3658 = phi i32 [ %563, %560 ], [ %.1634, %.preheader1201 ]
  %.9647 = phi i64 [ %562, %560 ], [ %.8646944, %.preheader1201 ]
  %556 = call i32 @llvm.umin.i32(i32 %.3658, i32 %55)
  %557 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.9647, i32 noundef %556) #6
  %.not728 = icmp eq i32 %557, 0
  br i1 %.not728, label %560, label %558

558:                                              ; preds = %555
  br i1 %.not712, label %559, label %.thread785

559:                                              ; preds = %558
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

560:                                              ; preds = %555
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(512) %.0627779783, i8 0, i64 512, i1 false)
  %561 = zext nneg i32 %556 to i64
  %562 = add i64 %.9647, %561
  %563 = sub i32 %.3658, %556
  %.not729 = icmp eq i32 %563, 0
  br i1 %.not729, label %564, label %555, !llvm.loop !40

564:                                              ; preds = %560
  %565 = add nuw nsw i32 %.14945, 1
  %exitcond1052.not = icmp eq i32 %565, %41
  br i1 %exitcond1052.not, label %._crit_edge948, label %552, !llvm.loop !41

._crit_edge948:                                   ; preds = %564, %546
  %.8646.lcssa = phi i64 [ %.1650846, %546 ], [ %562, %564 ]
  %566 = select i1 %433, i32 %.4664, i32 %.0632
  br label %567

567:                                              ; preds = %572, %._crit_edge948
  %.4659 = phi i32 [ %566, %._crit_edge948 ], [ %575, %572 ]
  %.10648 = phi i64 [ %.8646.lcssa, %._crit_edge948 ], [ %574, %572 ]
  %568 = call i32 @llvm.umin.i32(i32 %.4659, i32 %55)
  %569 = call i32 @disk_write(i8 noundef zeroext %18, ptr noundef nonnull %.0627779783, i64 noundef %.10648, i32 noundef %568) #6
  %.not726 = icmp eq i32 %569, 0
  br i1 %.not726, label %572, label %570

570:                                              ; preds = %567
  br i1 %.not712, label %571, label %.thread785

571:                                              ; preds = %570
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

572:                                              ; preds = %567
  %573 = zext nneg i32 %568 to i64
  %574 = add i64 %.10648, %573
  %575 = sub i32 %.4659, %568
  %.not727 = icmp eq i32 %575, 0
  br i1 %.not727, label %576, label %567, !llvm.loop !42

576:                                              ; preds = %572
  %cond = icmp eq i8 %.3614, 3
  br i1 %cond, label %582, label %577

577:                                              ; preds = %576
  %578 = load i64, ptr %7, align 8, !tbaa !21
  %579 = icmp ugt i64 %578, 65535
  br i1 %579, label %582, label %580

580:                                              ; preds = %577
  %581 = icmp eq i8 %.3614, 2
  %. = select i1 %581, i8 4, i8 1
  br label %582

582:                                              ; preds = %576, %.thread806, %580, %577
  %.0626 = phi i8 [ 6, %577 ], [ %., %580 ], [ 7, %.thread806 ], [ 12, %576 ]
  %.not754 = icmp ult i8 %37, 8
  br i1 %.not754, label %583, label %589

583:                                              ; preds = %582
  %584 = load i64, ptr %7, align 8, !tbaa !21
  store i64 %584, ptr %8, align 16, !tbaa !21
  %585 = getelementptr inbounds i8, ptr %8, i64 8
  store i64 0, ptr %585, align 8, !tbaa !21
  %586 = call i32 @create_partition(i8 noundef zeroext %18, ptr noundef nonnull %8, i8 noundef zeroext %.0626, ptr noundef nonnull %.0627779783)
  %.not755 = icmp eq i32 %586, 0
  br i1 %.not755, label %589, label %587

587:                                              ; preds = %583
  br i1 %.not712, label %588, label %.thread785

588:                                              ; preds = %587
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

589:                                              ; preds = %583, %582
  %590 = call i32 @disk_ioctl(i8 noundef zeroext %18, i8 noundef zeroext 0, ptr noundef null) #6
  %.not756 = icmp eq i32 %590, 0
  br i1 %.not756, label %593, label %591

591:                                              ; preds = %589
  br i1 %.not712, label %592, label %.thread785

592:                                              ; preds = %591
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

593:                                              ; preds = %589
  br i1 %.not712, label %594, label %.thread785

594:                                              ; preds = %593
  call void @ff_memfree(ptr noundef nonnull %.0627779783) #6
  br label %.thread785

.thread785:                                       ; preds = %.thread780, %.thread801, %593, %594, %591, %592, %587, %588, %570, %571, %558, %559, %532, %533, %486, %487, %481, %482, %473, %474, %461, %462, %449, %450, %399, %400, %92, %93, %88, %89, %.thread787, %76, %64, %58, %35, %22, %17, %4
  %.1608 = phi i32 [ 11, %4 ], [ 3, %17 ], [ 10, %22 ], [ 17, %35 ], [ 17, %58 ], [ 1, %64 ], [ 14, %76 ], [ 14, %.thread787 ], [ 14, %89 ], [ 14, %88 ], [ 19, %93 ], [ 19, %92 ], [ 14, %400 ], [ 14, %399 ], [ 14, %450 ], [ 14, %449 ], [ 14, %462 ], [ 14, %461 ], [ 14, %474 ], [ 14, %473 ], [ 14, %482 ], [ 14, %481 ], [ 14, %487 ], [ 14, %486 ], [ 1, %533 ], [ 1, %532 ], [ 1, %559 ], [ 1, %558 ], [ 1, %571 ], [ 1, %570 ], [ %586, %588 ], [ %586, %587 ], [ 1, %592 ], [ 1, %591 ], [ 0, %594 ], [ 0, %593 ], [ %.0607.ph, %.thread801 ], [ 1, %.thread780 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  ret i32 %.1608
}

declare zeroext i8 @disk_initialize(i8 noundef zeroext) local_unnamed_addr #2

declare i32 @disk_ioctl(i8 noundef zeroext, i8 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @ff_wtoupper(i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @xsum32(i8 noundef zeroext, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @create_partition(i8 noundef zeroext, ptr noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.ctlz.i32(i32, i1 immarg) #5

attributes #0 = { mustprogress nocallback nofree nosync 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !7, i64 0}
!10 = !{!"", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4, !7, i64 5, !11, i64 6, !11, i64 8, !11, i64 10, !6, i64 16, !6, i64 24, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !7, i64 112}
!11 = !{!"short", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!15, !12, i64 4}
!15 = !{!"", !7, i64 0, !7, i64 1, !12, i64 4, !12, i64 8, !12, i64 12}
!16 = !{!12, !12, i64 0}
!17 = !{!15, !7, i64 0}
!18 = !{!15, !7, i64 1}
!19 = !{!15, !12, i64 8}
!20 = !{!15, !12, i64 12}
!21 = !{!13, !13, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = !{!7, !7, i64 0}
!25 = distinct !{!25, !23}
!26 = distinct !{!26, !23}
!27 = distinct !{!27, !23}
!28 = distinct !{!28, !23}
!29 = distinct !{!29, !23}
!30 = distinct !{!30, !23}
!31 = distinct !{!31, !23}
!32 = distinct !{!32, !23}
!33 = distinct !{!33, !23}
!34 = distinct !{!34, !23}
!35 = distinct !{!35, !23}
!36 = distinct !{!36, !23}
!37 = !{!11, !11, i64 0}
!38 = distinct !{!38, !23}
!39 = distinct !{!39, !23}
!40 = distinct !{!40, !23}
!41 = distinct !{!41, !23}
!42 = distinct !{!42, !23}


; Effective O3 passes: ADCEPass,BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass