; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN46Longtail_Longtail_ArchiveMemMappedFS (TestCase8TestBodyEv)

; 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.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { ptr }
%struct.Longtail_StorageAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_VersionIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ArchiveIndex = type { ptr, ptr, %struct.Longtail_StoreIndex, ptr, ptr, %struct.Longtail_VersionIndex }
%struct.Longtail_StoreIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ChunkerAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.878 = external hidden unnamed_addr constant [178 x i8], align 1
@.str.879 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.882 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.892 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.893 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.894 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.895 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.896 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.897 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.898 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.899 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.900 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.901 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.902 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.903 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.904 = external hidden unnamed_addr constant [161 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: inlinehint mustprogress uwtable
declare hidden noundef ptr @_ZL19jc_test_get_fixturev() #1

declare void @_Z28jc_test_increment_assertionsv() #2

declare void @_Z21jc_test_set_test_faili(i32 noundef) #2

declare void @Longtail_Free(ptr noundef) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) #3 align 2

declare void @Longtail_DisposeAPI(ptr noundef) #2

declare ptr @Longtail_CreateBlake3HashAPI() #2

declare ptr @Longtail_CreateFSStorageAPI() #2

declare ptr @Longtail_CreateHPCDCChunkerAPI() #2

declare ptr @Longtail_CreateBikeshedJobAPI(i32 noundef, i32 noundef) #2

declare i32 @Longtail_GetFilesRecursively2(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @Longtail_CreateVersionIndex(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

declare ptr @Longtail_CreateFullCompressionRegistry() #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #4 align 2

declare i32 @Longtail_WriteContent(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @Longtail_CreateStoreIndex(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @Longtail_WriteVersion(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @Longtail_CreateArchiveIndex(ptr noundef, ptr noundef, ptr noundef) #2

declare ptr @Longtail_CreateArchiveBlockStore(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @Longtail_ReadArchiveIndex(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN46Longtail_Longtail_ArchiveMemMappedFS__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.TestAsyncFlushComplete, align 8
  %40 = alloca ptr, align 8
  %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 i32, align 4
  %48 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %49 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #5
  %50 = call ptr @Longtail_CreateFSStorageAPI()
  store ptr %50, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #5
  %51 = call ptr @Longtail_GetTempFolder()
  store ptr %51, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #5
  %52 = load ptr, ptr %3, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %52, i32 0, i32 12
  %54 = load ptr, ptr %53, align 8, !tbaa !9
  %55 = load ptr, ptr %3, align 8, !tbaa !5
  %56 = load ptr, ptr %4, align 8, !tbaa !5
  %57 = call noundef ptr %54(ptr noundef %55, ptr noundef %56, ptr noundef @.str.892)
  store ptr %57, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %58, i32 0, i32 12
  %60 = load ptr, ptr %59, align 8, !tbaa !9
  %61 = load ptr, ptr %3, align 8, !tbaa !5
  %62 = load ptr, ptr %4, align 8, !tbaa !5
  %63 = call noundef ptr %60(ptr noundef %61, ptr noundef %62, ptr noundef @.str.893)
  store ptr %63, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  %64 = load ptr, ptr %3, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %64, i32 0, i32 12
  %66 = load ptr, ptr %65, align 8, !tbaa !9
  %67 = load ptr, ptr %3, align 8, !tbaa !5
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = call noundef ptr %66(ptr noundef %67, ptr noundef %68, ptr noundef @.str.894)
  store ptr %69, ptr %7, align 8, !tbaa !5
  br label %70

70:                                               ; preds = %1
  %71 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %72 = getelementptr inbounds %struct.jc_test_fixture, ptr %71, i32 0, i32 11
  %73 = load i32, ptr %72, align 8
  %74 = and i32 %73, -16776961
  %75 = or i32 %74, 1921536
  store i32 %75, ptr %72, align 8
  %76 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %77 = getelementptr inbounds %struct.jc_test_fixture, ptr %76, i32 0, i32 4
  store ptr @.str.3, ptr %77, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  store i32 0, ptr %8, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %78 = load ptr, ptr %3, align 8, !tbaa !5
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef %78, ptr noundef %79)
  store i32 %80, ptr %9, align 4, !tbaa !17
  %81 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef @.str.46, ptr noundef @.str.895, ptr noundef null)
  %82 = icmp eq i32 %81, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  br i1 %82, label %83, label %84

83:                                               ; preds = %70
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %534

84:                                               ; preds = %70
  br label %85

85:                                               ; preds = %84
  br label %86

86:                                               ; preds = %85
  %87 = load ptr, ptr %3, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %87, i32 0, i32 14
  %89 = load ptr, ptr %88, align 8, !tbaa !18
  %90 = load ptr, ptr %3, align 8, !tbaa !5
  %91 = load ptr, ptr %7, align 8, !tbaa !5
  %92 = call noundef i32 %89(ptr noundef %90, ptr noundef %91)
  %93 = icmp ne i32 %92, 0
  br i1 %93, label %94, label %115

94:                                               ; preds = %86
  br label %95

95:                                               ; preds = %94
  %96 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %97 = getelementptr inbounds %struct.jc_test_fixture, ptr %96, i32 0, i32 11
  %98 = load i32, ptr %97, align 8
  %99 = and i32 %98, -16776961
  %100 = or i32 %99, 1922304
  store i32 %100, ptr %97, align 8
  %101 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %102 = getelementptr inbounds %struct.jc_test_fixture, ptr %101, i32 0, i32 4
  store ptr @.str.3, ptr %102, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  store i32 0, ptr %11, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %103 = load ptr, ptr %3, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %103, i32 0, i32 16
  %105 = load ptr, ptr %104, align 8, !tbaa !19
  %106 = load ptr, ptr %3, align 8, !tbaa !5
  %107 = load ptr, ptr %7, align 8, !tbaa !5
  %108 = call noundef i32 %105(ptr noundef %106, ptr noundef %107)
  store i32 %108, ptr %12, align 4, !tbaa !17
  %109 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef @.str.46, ptr noundef @.str.896, ptr noundef null)
  %110 = icmp eq i32 %109, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  br i1 %110, label %111, label %112

111:                                              ; preds = %95
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %534

112:                                              ; preds = %95
  br label %113

113:                                              ; preds = %112
  br label %114

114:                                              ; preds = %113
  br label %115

115:                                              ; preds = %114, %86
  br label %116

116:                                              ; preds = %115
  %117 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %118 = getelementptr inbounds %struct.jc_test_fixture, ptr %117, i32 0, i32 11
  %119 = load i32, ptr %118, align 8
  %120 = and i32 %119, -16776961
  %121 = or i32 %120, 1922816
  store i32 %121, ptr %118, align 8
  %122 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %123 = getelementptr inbounds %struct.jc_test_fixture, ptr %122, i32 0, i32 4
  store ptr @.str.3, ptr %123, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  store i32 0, ptr %13, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  %124 = load ptr, ptr %3, align 8, !tbaa !5
  %125 = load ptr, ptr %6, align 8, !tbaa !5
  %126 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef %124, ptr noundef %125)
  store i32 %126, ptr %14, align 4, !tbaa !17
  %127 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef @.str.46, ptr noundef @.str.897, ptr noundef null)
  %128 = icmp eq i32 %127, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br i1 %128, label %129, label %130

129:                                              ; preds = %116
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %534

130:                                              ; preds = %116
  br label %131

131:                                              ; preds = %130
  br label %132

132:                                              ; preds = %131
  br label %133

133:                                              ; preds = %132
  %134 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %135 = getelementptr inbounds %struct.jc_test_fixture, ptr %134, i32 0, i32 11
  %136 = load i32, ptr %135, align 8
  %137 = and i32 %136, -16776961
  %138 = or i32 %137, 1923072
  store i32 %138, ptr %135, align 8
  %139 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %140 = getelementptr inbounds %struct.jc_test_fixture, ptr %139, i32 0, i32 4
  store ptr @.str.3, ptr %140, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  store i32 0, ptr %15, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %141 = load ptr, ptr %3, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %141, i32 0, i32 10
  %143 = load ptr, ptr %142, align 8, !tbaa !20
  %144 = load ptr, ptr %3, align 8, !tbaa !5
  %145 = load ptr, ptr %5, align 8, !tbaa !5
  %146 = call noundef i32 %143(ptr noundef %144, ptr noundef %145)
  store i32 %146, ptr %16, align 4, !tbaa !17
  %147 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef @.str.46, ptr noundef @.str.898, ptr noundef null)
  %148 = icmp eq i32 %147, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br i1 %148, label %149, label %150

149:                                              ; preds = %133
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %534

150:                                              ; preds = %133
  br label %151

151:                                              ; preds = %150
  br label %152

152:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %153 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %153, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %154 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %154, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %155 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %155, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %156 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %156, ptr %20, align 8, !tbaa !5
  br label %157

157:                                              ; preds = %152
  %158 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %159 = getelementptr inbounds %struct.jc_test_fixture, ptr %158, i32 0, i32 11
  %160 = load i32, ptr %159, align 8
  %161 = and i32 %160, -16776961
  %162 = or i32 %161, 1924608
  store i32 %162, ptr %159, align 8
  %163 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %164 = getelementptr inbounds %struct.jc_test_fixture, ptr %163, i32 0, i32 4
  store ptr @.str.3, ptr %164, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  store i32 1, ptr %21, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  %165 = load ptr, ptr %3, align 8, !tbaa !5
  %166 = load ptr, ptr %5, align 8, !tbaa !5
  %167 = call noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef %165, ptr noundef %166, i32 noundef 22)
  store i32 %167, ptr %22, align 4, !tbaa !17
  %168 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef @.str.232, ptr noundef @.str.899)
  %169 = icmp eq i32 %168, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  br i1 %169, label %170, label %171

170:                                              ; preds = %157
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %533

171:                                              ; preds = %157
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  br label %174

174:                                              ; preds = %173
  %175 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %176 = getelementptr inbounds %struct.jc_test_fixture, ptr %175, i32 0, i32 11
  %177 = load i32, ptr %176, align 8
  %178 = and i32 %177, -16776961
  %179 = or i32 %178, 1925376
  store i32 %179, ptr %176, align 8
  %180 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %181 = getelementptr inbounds %struct.jc_test_fixture, ptr %180, i32 0, i32 4
  store ptr @.str.3, ptr %181, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  store i32 0, ptr %24, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %182 = load ptr, ptr %3, align 8, !tbaa !5
  %183 = load ptr, ptr %20, align 8, !tbaa !5
  %184 = load ptr, ptr %5, align 8, !tbaa !5
  %185 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %182, ptr noundef %183, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %184, ptr noundef %23)
  store i32 %185, ptr %25, align 4, !tbaa !17
  %186 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef @.str.46, ptr noundef @.str.900, ptr noundef null)
  %187 = icmp eq i32 %186, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br i1 %187, label %188, label %189

188:                                              ; preds = %174
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %532

189:                                              ; preds = %174
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191
  %193 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %194 = getelementptr inbounds %struct.jc_test_fixture, ptr %193, i32 0, i32 11
  %195 = load i32, ptr %194, align 8
  %196 = and i32 %195, -16776961
  %197 = or i32 %196, 1925632
  store i32 %197, ptr %194, align 8
  %198 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %199 = getelementptr inbounds %struct.jc_test_fixture, ptr %198, i32 0, i32 4
  store ptr @.str.3, ptr %199, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %200 = load ptr, ptr %23, align 8, !tbaa !5
  %201 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %200, ptr noundef @.str.253, ptr noundef @.str.254)
  %202 = icmp eq i32 %201, 0
  br i1 %202, label %203, label %204

203:                                              ; preds = %192
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %532

204:                                              ; preds = %192
  br label %205

205:                                              ; preds = %204
  br label %206

206:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %207 = load ptr, ptr %3, align 8, !tbaa !5
  %208 = load ptr, ptr %23, align 8, !tbaa !5
  %209 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef %207, ptr noundef %208)
  store ptr %209, ptr %26, align 8, !tbaa !5
  br label %210

210:                                              ; preds = %206
  %211 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %212 = getelementptr inbounds %struct.jc_test_fixture, ptr %211, i32 0, i32 11
  %213 = load i32, ptr %212, align 8
  %214 = and i32 %213, -16776961
  %215 = or i32 %214, 1926144
  store i32 %215, ptr %212, align 8
  %216 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %217 = getelementptr inbounds %struct.jc_test_fixture, ptr %216, i32 0, i32 4
  store ptr @.str.3, ptr %217, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %218 = load ptr, ptr %26, align 8, !tbaa !5
  %219 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %218, ptr noundef @.str.255, ptr noundef @.str.256)
  %220 = icmp eq i32 %219, 0
  br i1 %220, label %221, label %222

221:                                              ; preds = %210
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %531

222:                                              ; preds = %210
  br label %223

223:                                              ; preds = %222
  br label %224

224:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  br label %225

225:                                              ; preds = %224
  %226 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %227 = getelementptr inbounds %struct.jc_test_fixture, ptr %226, i32 0, i32 11
  %228 = load i32, ptr %227, align 8
  %229 = and i32 %228, -16776961
  %230 = or i32 %229, 1929984
  store i32 %230, ptr %227, align 8
  %231 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %232 = getelementptr inbounds %struct.jc_test_fixture, ptr %231, i32 0, i32 4
  store ptr @.str.3, ptr %232, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  store i32 0, ptr %28, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  %233 = load ptr, ptr %3, align 8, !tbaa !5
  %234 = load ptr, ptr %18, align 8, !tbaa !5
  %235 = load ptr, ptr %19, align 8, !tbaa !5
  %236 = load ptr, ptr %20, align 8, !tbaa !5
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  %238 = load ptr, ptr %23, align 8, !tbaa !5
  %239 = load ptr, ptr %26, align 8, !tbaa !5
  %240 = call i32 @Longtail_CreateVersionIndex(ptr noundef %233, ptr noundef %234, ptr noundef %235, ptr noundef %236, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %237, ptr noundef %238, ptr noundef %239, i32 noundef 8192, i32 noundef 1, ptr noundef %27)
  store i32 %240, ptr %29, align 4, !tbaa !17
  %241 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef @.str.46, ptr noundef @.str.901, ptr noundef null)
  %242 = icmp eq i32 %241, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  br i1 %242, label %243, label %244

243:                                              ; preds = %225
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %530

244:                                              ; preds = %225
  br label %245

245:                                              ; preds = %244
  br label %246

246:                                              ; preds = %245
  br label %247

247:                                              ; preds = %246
  %248 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %249 = getelementptr inbounds %struct.jc_test_fixture, ptr %248, i32 0, i32 11
  %250 = load i32, ptr %249, align 8
  %251 = and i32 %250, -16776961
  %252 = or i32 %251, 1930240
  store i32 %252, ptr %249, align 8
  %253 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %254 = getelementptr inbounds %struct.jc_test_fixture, ptr %253, i32 0, i32 4
  store ptr @.str.3, ptr %254, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %255 = load ptr, ptr %27, align 8, !tbaa !5
  %256 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %255, ptr noundef @.str.259, ptr noundef @.str.260)
  %257 = icmp eq i32 %256, 0
  br i1 %257, label %258, label %259

258:                                              ; preds = %247
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %530

259:                                              ; preds = %247
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  br label %262

262:                                              ; preds = %261
  %263 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %264 = getelementptr inbounds %struct.jc_test_fixture, ptr %263, i32 0, i32 11
  %265 = load i32, ptr %264, align 8
  %266 = and i32 %265, -16776961
  %267 = or i32 %266, 1933056
  store i32 %267, ptr %264, align 8
  %268 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %269 = getelementptr inbounds %struct.jc_test_fixture, ptr %268, i32 0, i32 4
  store ptr @.str.3, ptr %269, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  store i32 0, ptr %31, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  %270 = load ptr, ptr %18, align 8, !tbaa !5
  %271 = load ptr, ptr %27, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %271, i32 0, i32 4
  %273 = load ptr, ptr %272, align 8, !tbaa !21
  %274 = load i32, ptr %273, align 4, !tbaa !17
  %275 = load ptr, ptr %27, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %275, i32 0, i32 12
  %277 = load ptr, ptr %276, align 8, !tbaa !23
  %278 = load ptr, ptr %27, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %278, i32 0, i32 13
  %280 = load ptr, ptr %279, align 8, !tbaa !24
  %281 = load ptr, ptr %27, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %281, i32 0, i32 14
  %283 = load ptr, ptr %282, align 8, !tbaa !25
  %284 = call i32 @Longtail_CreateStoreIndex(ptr noundef %270, i32 noundef %274, ptr noundef %277, ptr noundef %280, ptr noundef %283, i32 noundef 26973, i32 noundef 11, ptr noundef %30)
  store i32 %284, ptr %32, align 4, !tbaa !17
  %285 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef @.str.46, ptr noundef @.str.878, ptr noundef null)
  %286 = icmp eq i32 %285, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  br i1 %286, label %287, label %288

287:                                              ; preds = %262
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %529

288:                                              ; preds = %262
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  br label %291

291:                                              ; preds = %290
  %292 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %293 = getelementptr inbounds %struct.jc_test_fixture, ptr %292, i32 0, i32 11
  %294 = load i32, ptr %293, align 8
  %295 = and i32 %294, -16776961
  %296 = or i32 %295, 1934592
  store i32 %296, ptr %293, align 8
  %297 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %298 = getelementptr inbounds %struct.jc_test_fixture, ptr %297, i32 0, i32 4
  store ptr @.str.3, ptr %298, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  store i32 0, ptr %34, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  %299 = load ptr, ptr %30, align 8, !tbaa !5
  %300 = load ptr, ptr %27, align 8, !tbaa !5
  %301 = call i32 @Longtail_CreateArchiveIndex(ptr noundef %299, ptr noundef %300, ptr noundef %33)
  store i32 %301, ptr %35, align 4, !tbaa !17
  %302 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef @.str.46, ptr noundef @.str.879, ptr noundef null)
  %303 = icmp eq i32 %302, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  br i1 %303, label %304, label %305

304:                                              ; preds = %291
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %528

305:                                              ; preds = %291
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %308 = load ptr, ptr %3, align 8, !tbaa !5
  %309 = load ptr, ptr %7, align 8, !tbaa !5
  %310 = load ptr, ptr %33, align 8, !tbaa !5
  %311 = call ptr @Longtail_CreateArchiveBlockStore(ptr noundef %308, ptr noundef %309, ptr noundef %310, i32 noundef 1, i32 noundef 0)
  store ptr %311, ptr %36, align 8, !tbaa !5
  br label %312

312:                                              ; preds = %307
  %313 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %314 = getelementptr inbounds %struct.jc_test_fixture, ptr %313, i32 0, i32 11
  %315 = load i32, ptr %314, align 8
  %316 = and i32 %315, -16776961
  %317 = or i32 %316, 1939200
  store i32 %317, ptr %314, align 8
  %318 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %319 = getelementptr inbounds %struct.jc_test_fixture, ptr %318, i32 0, i32 4
  store ptr @.str.3, ptr %319, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  store i32 0, ptr %37, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  %320 = load ptr, ptr %3, align 8, !tbaa !5
  %321 = load ptr, ptr %36, align 8, !tbaa !5
  %322 = load ptr, ptr %20, align 8, !tbaa !5
  %323 = load ptr, ptr %30, align 8, !tbaa !5
  %324 = load ptr, ptr %27, align 8, !tbaa !5
  %325 = load ptr, ptr %5, align 8, !tbaa !5
  %326 = call i32 @Longtail_WriteContent(ptr noundef %320, ptr noundef %321, ptr noundef %322, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %323, ptr noundef %324, ptr noundef %325)
  store i32 %326, ptr %38, align 4, !tbaa !17
  %327 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef @.str.46, ptr noundef @.str.902, ptr noundef null)
  %328 = icmp eq i32 %327, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  br i1 %328, label %329, label %330

329:                                              ; preds = %312
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %527

330:                                              ; preds = %312
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #5
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %39)
  br label %333

333:                                              ; preds = %332
  %334 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %335 unwind label %356

335:                                              ; preds = %333
  %336 = getelementptr inbounds %struct.jc_test_fixture, ptr %334, i32 0, i32 11
  %337 = load i32, ptr %336, align 8
  %338 = and i32 %337, -16776961
  %339 = or i32 %338, 1939968
  store i32 %339, ptr %336, align 8
  %340 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %341 unwind label %356

341:                                              ; preds = %335
  %342 = getelementptr inbounds %struct.jc_test_fixture, ptr %340, i32 0, i32 4
  store ptr @.str.3, ptr %342, align 8, !tbaa !12
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %343 unwind label %356

343:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  store i32 0, ptr %42, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  %344 = load ptr, ptr %36, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %344, i32 0, i32 7
  %346 = load ptr, ptr %345, align 8, !tbaa !26
  %347 = load ptr, ptr %36, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %39, i32 0, i32 0
  %349 = invoke noundef i32 %346(ptr noundef %347, ptr noundef %348)
          to label %350 unwind label %360

350:                                              ; preds = %343
  store i32 %349, ptr %43, align 4, !tbaa !17
  %351 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef @.str.46, ptr noundef @.str.882, ptr noundef null)
          to label %352 unwind label %360

352:                                              ; preds = %350
  %353 = icmp eq i32 %351, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  br i1 %353, label %354, label %364

354:                                              ; preds = %352
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %355 unwind label %356

355:                                              ; preds = %354
  store i32 1, ptr %10, align 4
  br label %526

356:                                              ; preds = %523, %521, %519, %517, %513, %506, %499, %492, %485, %480, %476, %465, %449, %443, %441, %435, %427, %417, %411, %409, %406, %404, %402, %400, %398, %394, %383, %376, %370, %368, %366, %354, %341, %335, %333
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %40, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %41, align 4
  br label %537

360:                                              ; preds = %350, %343
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %40, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  br label %537

364:                                              ; preds = %352
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %39)
          to label %367 unwind label %356

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  %369 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %370 unwind label %356

370:                                              ; preds = %368
  %371 = getelementptr inbounds %struct.jc_test_fixture, ptr %369, i32 0, i32 11
  %372 = load i32, ptr %371, align 8
  %373 = and i32 %372, -16776961
  %374 = or i32 %373, 1940480
  store i32 %374, ptr %371, align 8
  %375 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %376 unwind label %356

376:                                              ; preds = %370
  %377 = getelementptr inbounds %struct.jc_test_fixture, ptr %375, i32 0, i32 4
  store ptr @.str.3, ptr %377, align 8, !tbaa !12
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %378 unwind label %356

378:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  store i32 0, ptr %44, align 4, !tbaa !17
  %379 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %39, i32 0, i32 2
  %380 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 4 dereferenceable(4) %379, ptr noundef @.str.46, ptr noundef @.str.292, ptr noundef null)
          to label %381 unwind label %385

381:                                              ; preds = %378
  %382 = icmp eq i32 %380, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  br i1 %382, label %383, label %389

383:                                              ; preds = %381
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %384 unwind label %356

384:                                              ; preds = %383
  store i32 1, ptr %10, align 4
  br label %526

385:                                              ; preds = %378
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %40, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  br label %537

389:                                              ; preds = %381
  br label %390

390:                                              ; preds = %389
  br label %391

391:                                              ; preds = %390
  %392 = load ptr, ptr %36, align 8, !tbaa !5
  %393 = icmp ne ptr %392, null
  br i1 %393, label %394, label %398

394:                                              ; preds = %391
  %395 = load ptr, ptr %36, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %395, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %396)
          to label %397 unwind label %356

397:                                              ; preds = %394
  br label %398

398:                                              ; preds = %397, %391
  %399 = load ptr, ptr %33, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %399)
          to label %400 unwind label %356

400:                                              ; preds = %398
  store ptr null, ptr %33, align 8, !tbaa !5
  %401 = load ptr, ptr %30, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %401)
          to label %402 unwind label %356

402:                                              ; preds = %400
  store ptr null, ptr %30, align 8, !tbaa !5
  %403 = load ptr, ptr %27, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %403)
          to label %404 unwind label %356

404:                                              ; preds = %402
  %405 = load ptr, ptr %26, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %405)
          to label %406 unwind label %356

406:                                              ; preds = %404
  %407 = load ptr, ptr %23, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %407)
          to label %408 unwind label %356

408:                                              ; preds = %406
  br label %409

409:                                              ; preds = %408
  %410 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %411 unwind label %356

411:                                              ; preds = %409
  %412 = getelementptr inbounds %struct.jc_test_fixture, ptr %410, i32 0, i32 11
  %413 = load i32, ptr %412, align 8
  %414 = and i32 %413, -16776961
  %415 = or i32 %414, 1944832
  store i32 %415, ptr %412, align 8
  %416 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %417 unwind label %356

417:                                              ; preds = %411
  %418 = getelementptr inbounds %struct.jc_test_fixture, ptr %416, i32 0, i32 4
  store ptr @.str.3, ptr %418, align 8, !tbaa !12
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %419 unwind label %356

419:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  store i32 0, ptr %45, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  %420 = load ptr, ptr %3, align 8, !tbaa !5
  %421 = load ptr, ptr %7, align 8, !tbaa !5
  %422 = invoke i32 @Longtail_ReadArchiveIndex(ptr noundef %420, ptr noundef %421, ptr noundef %33)
          to label %423 unwind label %429

423:                                              ; preds = %419
  store i32 %422, ptr %46, align 4, !tbaa !17
  %424 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef @.str.46, ptr noundef @.str.903, ptr noundef null)
          to label %425 unwind label %429

425:                                              ; preds = %423
  %426 = icmp eq i32 %424, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  br i1 %426, label %427, label %433

427:                                              ; preds = %425
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %428 unwind label %356

428:                                              ; preds = %427
  store i32 1, ptr %10, align 4
  br label %526

429:                                              ; preds = %423, %419
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %40, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  br label %537

433:                                              ; preds = %425
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  %436 = load ptr, ptr %3, align 8, !tbaa !5
  %437 = load ptr, ptr %7, align 8, !tbaa !5
  %438 = load ptr, ptr %33, align 8, !tbaa !5
  %439 = invoke ptr @Longtail_CreateArchiveBlockStore(ptr noundef %436, ptr noundef %437, ptr noundef %438, i32 noundef 0, i32 noundef 1)
          to label %440 unwind label %356

440:                                              ; preds = %435
  store ptr %439, ptr %36, align 8, !tbaa !5
  br label %441

441:                                              ; preds = %440
  %442 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %443 unwind label %356

443:                                              ; preds = %441
  %444 = getelementptr inbounds %struct.jc_test_fixture, ptr %442, i32 0, i32 11
  %445 = load i32, ptr %444, align 8
  %446 = and i32 %445, -16776961
  %447 = or i32 %446, 1949696
  store i32 %447, ptr %444, align 8
  %448 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %449 unwind label %356

449:                                              ; preds = %443
  %450 = getelementptr inbounds %struct.jc_test_fixture, ptr %448, i32 0, i32 4
  store ptr @.str.3, ptr %450, align 8, !tbaa !12
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %451 unwind label %356

451:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  store i32 0, ptr %47, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  %452 = load ptr, ptr %36, align 8, !tbaa !5
  %453 = load ptr, ptr %3, align 8, !tbaa !5
  %454 = load ptr, ptr %20, align 8, !tbaa !5
  %455 = load ptr, ptr %33, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.Longtail_ArchiveIndex, ptr %455, i32 0, i32 2
  %457 = load ptr, ptr %33, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.Longtail_ArchiveIndex, ptr %457, i32 0, i32 5
  %459 = load ptr, ptr %6, align 8, !tbaa !5
  %460 = invoke i32 @Longtail_WriteVersion(ptr noundef %452, ptr noundef %453, ptr noundef %454, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %456, ptr noundef %458, ptr noundef %459, i32 noundef 1)
          to label %461 unwind label %467

461:                                              ; preds = %451
  store i32 %460, ptr %48, align 4, !tbaa !17
  %462 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef @.str.46, ptr noundef @.str.904, ptr noundef null)
          to label %463 unwind label %467

463:                                              ; preds = %461
  %464 = icmp eq i32 %462, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  br i1 %464, label %465, label %471

465:                                              ; preds = %463
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %466 unwind label %356

466:                                              ; preds = %465
  store i32 1, ptr %10, align 4
  br label %526

467:                                              ; preds = %461, %451
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %40, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  br label %537

471:                                              ; preds = %463
  br label %472

472:                                              ; preds = %471
  br label %473

473:                                              ; preds = %472
  %474 = load ptr, ptr %36, align 8, !tbaa !5
  %475 = icmp ne ptr %474, null
  br i1 %475, label %476, label %480

476:                                              ; preds = %473
  %477 = load ptr, ptr %36, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %477, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %478)
          to label %479 unwind label %356

479:                                              ; preds = %476
  br label %480

480:                                              ; preds = %479, %473
  %481 = load ptr, ptr %33, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %481)
          to label %482 unwind label %356

482:                                              ; preds = %480
  store ptr null, ptr %33, align 8, !tbaa !5
  %483 = load ptr, ptr %20, align 8, !tbaa !5
  %484 = icmp ne ptr %483, null
  br i1 %484, label %485, label %489

485:                                              ; preds = %482
  %486 = load ptr, ptr %20, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %486, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %487)
          to label %488 unwind label %356

488:                                              ; preds = %485
  br label %489

489:                                              ; preds = %488, %482
  %490 = load ptr, ptr %19, align 8, !tbaa !5
  %491 = icmp ne ptr %490, null
  br i1 %491, label %492, label %496

492:                                              ; preds = %489
  %493 = load ptr, ptr %19, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %493, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %494)
          to label %495 unwind label %356

495:                                              ; preds = %492
  br label %496

496:                                              ; preds = %495, %489
  %497 = load ptr, ptr %18, align 8, !tbaa !5
  %498 = icmp ne ptr %497, null
  br i1 %498, label %499, label %503

499:                                              ; preds = %496
  %500 = load ptr, ptr %18, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %500, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %501)
          to label %502 unwind label %356

502:                                              ; preds = %499
  br label %503

503:                                              ; preds = %502, %496
  %504 = load ptr, ptr %17, align 8, !tbaa !5
  %505 = icmp ne ptr %504, null
  br i1 %505, label %506, label %510

506:                                              ; preds = %503
  %507 = load ptr, ptr %17, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %507, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %508)
          to label %509 unwind label %356

509:                                              ; preds = %506
  br label %510

510:                                              ; preds = %509, %503
  %511 = load ptr, ptr %3, align 8, !tbaa !5
  %512 = icmp ne ptr %511, null
  br i1 %512, label %513, label %517

513:                                              ; preds = %510
  %514 = load ptr, ptr %3, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %514, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %515)
          to label %516 unwind label %356

516:                                              ; preds = %513
  br label %517

517:                                              ; preds = %516, %510
  %518 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %518)
          to label %519 unwind label %356

519:                                              ; preds = %517
  %520 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %520)
          to label %521 unwind label %356

521:                                              ; preds = %519
  %522 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %522)
          to label %523 unwind label %356

523:                                              ; preds = %521
  %524 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %524)
          to label %525 unwind label %356

525:                                              ; preds = %523
  store i32 0, ptr %10, align 4
  br label %526

526:                                              ; preds = %525, %466, %428, %384, %355
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %39) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #5
  br label %527

527:                                              ; preds = %526, %329
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  br label %528

528:                                              ; preds = %527, %304
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  br label %529

529:                                              ; preds = %528, %287
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  br label %530

530:                                              ; preds = %529, %258, %243
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  br label %531

531:                                              ; preds = %530, %221
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  br label %532

532:                                              ; preds = %531, %203, %188
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  br label %533

533:                                              ; preds = %532, %170
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  br label %534

534:                                              ; preds = %533, %149, %129, %111, %83
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  %535 = load i32, ptr %10, align 4
  switch i32 %535, label %543 [
    i32 0, label %536
    i32 1, label %536
  ]

536:                                              ; preds = %534, %534
  ret void

537:                                              ; preds = %467, %429, %385, %360, %356
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %39) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #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 %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  br label %538

538:                                              ; preds = %537
  %539 = load ptr, ptr %40, align 8
  %540 = load i32, ptr %41, align 4
  %541 = insertvalue { ptr, i32 } poison, ptr %539, 0
  %542 = insertvalue { ptr, i32 } %541, i32 %540, 1
  resume { ptr, i32 } %542

543:                                              ; preds = %534
  unreachable
}

declare ptr @Longtail_GetTempFolder() #2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef, ptr noundef) #3

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress 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 #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++ TBAA"}
!9 = !{!10, !6, i64 96}
!10 = !{!"_ZTS19Longtail_StorageAPI", !11, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208}
!11 = !{!"_ZTS12Longtail_API", !6, i64 0}
!12 = !{!13, !6, i64 32}
!13 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !14, i64 64, !15, i64 88, !15, i64 91, !15, i64 91, !15, i64 91, !15, i64 91, !15, i64 92, !15, i64 96, !15, i64 97, !15, i64 99, !15, i64 100}
!14 = !{!"_ZTS13jc_test_stats", !15, i64 0, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 12, !16, i64 16}
!15 = !{!"int", !7, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!15, !15, i64 0}
!18 = !{!10, !6, i64 112}
!19 = !{!10, !6, i64 128}
!20 = !{!10, !6, i64 80}
!21 = !{!22, !6, i64 32}
!22 = !{!"_ZTS21Longtail_VersionIndex", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !15, i64 128, !6, i64 136, !6, i64 144}
!23 = !{!22, !6, i64 96}
!24 = !{!22, !6, i64 104}
!25 = !{!22, !6, i64 112}
!26 = !{!27, !6, i64 56}
!27 = !{!"_ZTS22Longtail_BlockStoreAPI", !11, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56}


; 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.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.878 = external hidden unnamed_addr constant [178 x i8], align 1
@.str.879 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.882 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.892 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.893 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.894 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.895 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.896 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.897 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.898 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.899 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.900 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.901 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.902 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.903 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.904 = external hidden unnamed_addr constant [161 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: inlinehint mustprogress uwtable
declare hidden noundef ptr @_ZL19jc_test_get_fixturev() local_unnamed_addr #1

declare void @_Z28jc_test_increment_assertionsv() local_unnamed_addr #2

declare void @_Z21jc_test_set_test_faili(i32 noundef) local_unnamed_addr #2

declare void @Longtail_Free(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #2

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #2

declare ptr @Longtail_CreateFSStorageAPI() local_unnamed_addr #2

declare ptr @Longtail_CreateHPCDCChunkerAPI() local_unnamed_addr #2

declare ptr @Longtail_CreateBikeshedJobAPI(i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @Longtail_GetFilesRecursively2(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @Longtail_CreateVersionIndex(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare ptr @Longtail_CreateFullCompressionRegistry() local_unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #4 align 2

declare i32 @Longtail_WriteContent(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @Longtail_CreateStoreIndex(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @Longtail_WriteVersion(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @Longtail_CreateArchiveIndex(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @Longtail_CreateArchiveBlockStore(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @Longtail_ReadArchiveIndex(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN46Longtail_Longtail_ArchiveMemMappedFS__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.TestAsyncFlushComplete, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = tail call ptr @Longtail_CreateFSStorageAPI()
  %35 = tail call ptr @Longtail_GetTempFolder()
  %36 = getelementptr inbounds i8, ptr %34, i64 96
  %37 = load ptr, ptr %36, align 8, !tbaa !5
  %38 = tail call noundef ptr %37(ptr noundef %34, ptr noundef %35, ptr noundef nonnull @.str.892)
  %39 = load ptr, ptr %36, align 8, !tbaa !5
  %40 = tail call noundef ptr %39(ptr noundef %34, ptr noundef %35, ptr noundef nonnull @.str.893)
  %41 = load ptr, ptr %36, align 8, !tbaa !5
  %42 = tail call noundef ptr %41(ptr noundef %34, ptr noundef %35, ptr noundef nonnull @.str.894)
  %43 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %44 = getelementptr inbounds i8, ptr %43, i64 96
  %45 = load i32, ptr %44, align 8
  %46 = and i32 %45, -16776961
  %47 = or disjoint i32 %46, 1921536
  store i32 %47, ptr %44, align 8
  %48 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %49 = getelementptr inbounds i8, ptr %48, i64 32
  store ptr @.str.3, ptr %49, align 8, !tbaa !11
  tail call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #5
  store i32 0, ptr %2, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #5
  %50 = tail call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef %34, ptr noundef %38)
  store i32 %50, ptr %3, align 4, !tbaa !16
  %51 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.895, ptr noundef null)
  %52 = icmp eq i32 %51, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #5
  br i1 %52, label %53, label %54

53:                                               ; preds = %1
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %342

54:                                               ; preds = %1
  %55 = getelementptr inbounds i8, ptr %34, i64 112
  %56 = load ptr, ptr %55, align 8, !tbaa !17
  %57 = call noundef i32 %56(ptr noundef nonnull %34, ptr noundef %42)
  %.not = icmp eq i32 %57, 0
  br i1 %.not, label %72, label %58

58:                                               ; preds = %54
  %59 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %60 = getelementptr inbounds i8, ptr %59, i64 96
  %61 = load i32, ptr %60, align 8
  %62 = and i32 %61, -16776961
  %63 = or disjoint i32 %62, 1922304
  store i32 %63, ptr %60, align 8
  %64 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %65 = getelementptr inbounds i8, ptr %64, i64 32
  store ptr @.str.3, ptr %65, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #5
  store i32 0, ptr %4, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #5
  %66 = getelementptr inbounds i8, ptr %34, i64 128
  %67 = load ptr, ptr %66, align 8, !tbaa !18
  %68 = call noundef i32 %67(ptr noundef nonnull %34, ptr noundef %42)
  store i32 %68, ptr %5, align 4, !tbaa !16
  %69 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.896, ptr noundef null)
  %70 = icmp eq i32 %69, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #5
  br i1 %70, label %71, label %72

71:                                               ; preds = %58
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %342

72:                                               ; preds = %54, %58
  %73 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %74 = getelementptr inbounds i8, ptr %73, i64 96
  %75 = load i32, ptr %74, align 8
  %76 = and i32 %75, -16776961
  %77 = or disjoint i32 %76, 1922816
  store i32 %77, ptr %74, align 8
  %78 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %79 = getelementptr inbounds i8, ptr %78, i64 32
  store ptr @.str.3, ptr %79, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  store i32 0, ptr %6, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #5
  %80 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef nonnull %34, ptr noundef %40)
  store i32 %80, ptr %7, align 4, !tbaa !16
  %81 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.897, ptr noundef null)
  %82 = icmp eq i32 %81, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  br i1 %82, label %83, label %84

83:                                               ; preds = %72
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %342

84:                                               ; preds = %72
  %85 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %86 = getelementptr inbounds i8, ptr %85, i64 96
  %87 = load i32, ptr %86, align 8
  %88 = and i32 %87, -16776961
  %89 = or disjoint i32 %88, 1923072
  store i32 %89, ptr %86, align 8
  %90 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %91 = getelementptr inbounds i8, ptr %90, i64 32
  store ptr @.str.3, ptr %91, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  store i32 0, ptr %8, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %92 = getelementptr inbounds i8, ptr %34, i64 80
  %93 = load ptr, ptr %92, align 8, !tbaa !19
  %94 = call noundef i32 %93(ptr noundef nonnull %34, ptr noundef %38)
  store i32 %94, ptr %9, align 4, !tbaa !16
  %95 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.898, ptr noundef null)
  %96 = icmp eq i32 %95, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %96, label %97, label %98

97:                                               ; preds = %84
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %342

98:                                               ; preds = %84
  %99 = call ptr @Longtail_CreateFullCompressionRegistry()
  %100 = call ptr @Longtail_CreateBlake3HashAPI()
  %101 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  %102 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %103 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %104 = getelementptr inbounds i8, ptr %103, i64 96
  %105 = load i32, ptr %104, align 8
  %106 = and i32 %105, -16776961
  %107 = or disjoint i32 %106, 1924608
  store i32 %107, ptr %104, align 8
  %108 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %109 = getelementptr inbounds i8, ptr %108, i64 32
  store ptr @.str.3, ptr %109, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  store i32 1, ptr %10, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  %110 = call noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef nonnull %34, ptr noundef %38, i32 noundef 22)
  store i32 %110, ptr %11, align 4, !tbaa !16
  %111 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull @.str.232, ptr noundef nonnull @.str.899)
  %112 = icmp eq i32 %111, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  br i1 %112, label %113, label %114

113:                                              ; preds = %98
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %342

114:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %115 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %116 = getelementptr inbounds i8, ptr %115, i64 96
  %117 = load i32, ptr %116, align 8
  %118 = and i32 %117, -16776961
  %119 = or disjoint i32 %118, 1925376
  store i32 %119, ptr %116, align 8
  %120 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %121 = getelementptr inbounds i8, ptr %120, i64 32
  store ptr @.str.3, ptr %121, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  store i32 0, ptr %13, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #5
  %122 = call i32 @Longtail_GetFilesRecursively2(ptr noundef nonnull %34, ptr noundef %102, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %38, ptr noundef nonnull %12)
  store i32 %122, ptr %14, align 4, !tbaa !16
  %123 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.900, ptr noundef null)
  %124 = icmp eq i32 %123, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  br i1 %124, label %125, label %126

125:                                              ; preds = %114
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %341

126:                                              ; preds = %114
  %127 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %128 = getelementptr inbounds i8, ptr %127, i64 96
  %129 = load i32, ptr %128, align 8
  %130 = and i32 %129, -16776961
  %131 = or disjoint i32 %130, 1925632
  store i32 %131, ptr %128, align 8
  %132 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %133 = getelementptr inbounds i8, ptr %132, i64 32
  store ptr @.str.3, ptr %133, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %134 = load ptr, ptr %12, align 8, !tbaa !20
  %135 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %134, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.254)
  %136 = icmp eq i32 %135, 0
  br i1 %136, label %137, label %138

137:                                              ; preds = %126
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %341

138:                                              ; preds = %126
  %139 = load ptr, ptr %12, align 8, !tbaa !20
  %140 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef nonnull %34, ptr noundef %139)
  %141 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %142 = getelementptr inbounds i8, ptr %141, i64 96
  %143 = load i32, ptr %142, align 8
  %144 = and i32 %143, -16776961
  %145 = or disjoint i32 %144, 1926144
  store i32 %145, ptr %142, align 8
  %146 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %147 = getelementptr inbounds i8, ptr %146, i64 32
  store ptr @.str.3, ptr %147, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %148 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %140, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.256)
  %149 = icmp eq i32 %148, 0
  br i1 %149, label %150, label %151

150:                                              ; preds = %138
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %341

151:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %152 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %153 = getelementptr inbounds i8, ptr %152, i64 96
  %154 = load i32, ptr %153, align 8
  %155 = and i32 %154, -16776961
  %156 = or disjoint i32 %155, 1929984
  store i32 %156, ptr %153, align 8
  %157 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %158 = getelementptr inbounds i8, ptr %157, i64 32
  store ptr @.str.3, ptr %158, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  store i32 0, ptr %16, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  %159 = load ptr, ptr %12, align 8, !tbaa !20
  %160 = call i32 @Longtail_CreateVersionIndex(ptr noundef nonnull %34, ptr noundef %100, ptr noundef %101, ptr noundef %102, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %38, ptr noundef %159, ptr noundef %140, i32 noundef 8192, i32 noundef 1, ptr noundef nonnull %15)
  store i32 %160, ptr %17, align 4, !tbaa !16
  %161 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.901, ptr noundef null)
  %162 = icmp eq i32 %161, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  br i1 %162, label %163, label %164

163:                                              ; preds = %151
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %340

164:                                              ; preds = %151
  %165 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %166 = getelementptr inbounds i8, ptr %165, i64 96
  %167 = load i32, ptr %166, align 8
  %168 = and i32 %167, -16776961
  %169 = or disjoint i32 %168, 1930240
  store i32 %169, ptr %166, align 8
  %170 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %171 = getelementptr inbounds i8, ptr %170, i64 32
  store ptr @.str.3, ptr %171, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %172 = load ptr, ptr %15, align 8, !tbaa !20
  %173 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %172, ptr noundef nonnull @.str.259, ptr noundef nonnull @.str.260)
  %174 = icmp eq i32 %173, 0
  br i1 %174, label %175, label %176

175:                                              ; preds = %164
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %340

176:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %177 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %178 = getelementptr inbounds i8, ptr %177, i64 96
  %179 = load i32, ptr %178, align 8
  %180 = and i32 %179, -16776961
  %181 = or disjoint i32 %180, 1933056
  store i32 %181, ptr %178, align 8
  %182 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %183 = getelementptr inbounds i8, ptr %182, i64 32
  store ptr @.str.3, ptr %183, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  store i32 0, ptr %19, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  %184 = load ptr, ptr %15, align 8, !tbaa !20
  %185 = getelementptr inbounds i8, ptr %184, i64 32
  %186 = load ptr, ptr %185, align 8, !tbaa !21
  %187 = load i32, ptr %186, align 4, !tbaa !16
  %188 = getelementptr inbounds i8, ptr %184, i64 96
  %189 = load ptr, ptr %188, align 8, !tbaa !23
  %190 = getelementptr inbounds i8, ptr %184, i64 104
  %191 = load ptr, ptr %190, align 8, !tbaa !24
  %192 = getelementptr inbounds i8, ptr %184, i64 112
  %193 = load ptr, ptr %192, align 8, !tbaa !25
  %194 = call i32 @Longtail_CreateStoreIndex(ptr noundef %100, i32 noundef %187, ptr noundef %189, ptr noundef %191, ptr noundef %193, i32 noundef 26973, i32 noundef 11, ptr noundef nonnull %18)
  store i32 %194, ptr %20, align 4, !tbaa !16
  %195 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.878, ptr noundef null)
  %196 = icmp eq i32 %195, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  br i1 %196, label %197, label %198

197:                                              ; preds = %176
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %339

198:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %199 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %200 = getelementptr inbounds i8, ptr %199, i64 96
  %201 = load i32, ptr %200, align 8
  %202 = and i32 %201, -16776961
  %203 = or disjoint i32 %202, 1934592
  store i32 %203, ptr %200, align 8
  %204 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %205 = getelementptr inbounds i8, ptr %204, i64 32
  store ptr @.str.3, ptr %205, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  store i32 0, ptr %22, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  %206 = load ptr, ptr %18, align 8, !tbaa !20
  %207 = load ptr, ptr %15, align 8, !tbaa !20
  %208 = call i32 @Longtail_CreateArchiveIndex(ptr noundef %206, ptr noundef %207, ptr noundef nonnull %21)
  store i32 %208, ptr %23, align 4, !tbaa !16
  %209 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.879, ptr noundef null)
  %210 = icmp eq i32 %209, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  br i1 %210, label %211, label %212

211:                                              ; preds = %198
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %338

212:                                              ; preds = %198
  %213 = load ptr, ptr %21, align 8, !tbaa !20
  %214 = call ptr @Longtail_CreateArchiveBlockStore(ptr noundef nonnull %34, ptr noundef %42, ptr noundef %213, i32 noundef 1, i32 noundef 0)
  %215 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %216 = getelementptr inbounds i8, ptr %215, i64 96
  %217 = load i32, ptr %216, align 8
  %218 = and i32 %217, -16776961
  %219 = or disjoint i32 %218, 1939200
  store i32 %219, ptr %216, align 8
  %220 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %221 = getelementptr inbounds i8, ptr %220, i64 32
  store ptr @.str.3, ptr %221, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  store i32 0, ptr %24, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  %222 = load ptr, ptr %18, align 8, !tbaa !20
  %223 = load ptr, ptr %15, align 8, !tbaa !20
  %224 = call i32 @Longtail_WriteContent(ptr noundef nonnull %34, ptr noundef %214, ptr noundef %102, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %222, ptr noundef %223, ptr noundef %38)
  store i32 %224, ptr %25, align 4, !tbaa !16
  %225 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.902, ptr noundef null)
  %226 = icmp eq i32 %225, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br i1 %226, label %227, label %228

227:                                              ; preds = %212
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %338

228:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #5
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26)
  %229 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %230 unwind label %246

230:                                              ; preds = %228
  %231 = getelementptr inbounds i8, ptr %229, i64 96
  %232 = load i32, ptr %231, align 8
  %233 = and i32 %232, -16776961
  %234 = or disjoint i32 %233, 1939968
  store i32 %234, ptr %231, align 8
  %235 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %236 unwind label %246

236:                                              ; preds = %230
  %237 = getelementptr inbounds i8, ptr %235, i64 32
  store ptr @.str.3, ptr %237, align 8, !tbaa !11
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %238 unwind label %246

238:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  store i32 0, ptr %27, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  %239 = getelementptr inbounds i8, ptr %214, i64 56
  %240 = load ptr, ptr %239, align 8, !tbaa !26
  %241 = invoke noundef i32 %240(ptr noundef nonnull %214, ptr noundef nonnull %26)
          to label %242 unwind label %248

242:                                              ; preds = %238
  store i32 %241, ptr %28, align 4, !tbaa !16
  %243 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.882, ptr noundef null)
          to label %244 unwind label %248

244:                                              ; preds = %242
  %245 = icmp eq i32 %243, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  br i1 %245, label %.invoke, label %250

246:                                              ; preds = %.invoke, %336, %335, %334, %333, %332, %331, %329, %327, %325, %322, %321, %307, %301, %299, %296, %286, %280, %278, %276, %275, %273, %271, %269, %268, %259, %253, %251, %250, %236, %230, %228
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %343

248:                                              ; preds = %242, %238
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  br label %343

250:                                              ; preds = %244
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %26)
          to label %251 unwind label %246

251:                                              ; preds = %250
  %252 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %253 unwind label %246

253:                                              ; preds = %251
  %254 = getelementptr inbounds i8, ptr %252, i64 96
  %255 = load i32, ptr %254, align 8
  %256 = and i32 %255, -16776961
  %257 = or disjoint i32 %256, 1940480
  store i32 %257, ptr %254, align 8
  %258 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %259 unwind label %246

259:                                              ; preds = %253
  %260 = getelementptr inbounds i8, ptr %258, i64 32
  store ptr @.str.3, ptr %260, align 8, !tbaa !11
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %261 unwind label %246

261:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  store i32 0, ptr %29, align 4, !tbaa !16
  %262 = getelementptr inbounds i8, ptr %26, i64 24
  %263 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %262, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.292, ptr noundef null)
          to label %264 unwind label %266

264:                                              ; preds = %261
  %265 = icmp eq i32 %263, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  br i1 %265, label %.invoke, label %268

266:                                              ; preds = %261
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  br label %343

268:                                              ; preds = %264
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %214)
          to label %269 unwind label %246

269:                                              ; preds = %268
  %270 = load ptr, ptr %21, align 8, !tbaa !20
  invoke void @Longtail_Free(ptr noundef %270)
          to label %271 unwind label %246

271:                                              ; preds = %269
  store ptr null, ptr %21, align 8, !tbaa !20
  %272 = load ptr, ptr %18, align 8, !tbaa !20
  invoke void @Longtail_Free(ptr noundef %272)
          to label %273 unwind label %246

273:                                              ; preds = %271
  store ptr null, ptr %18, align 8, !tbaa !20
  %274 = load ptr, ptr %15, align 8, !tbaa !20
  invoke void @Longtail_Free(ptr noundef %274)
          to label %275 unwind label %246

275:                                              ; preds = %273
  invoke void @Longtail_Free(ptr noundef %140)
          to label %276 unwind label %246

276:                                              ; preds = %275
  %277 = load ptr, ptr %12, align 8, !tbaa !20
  invoke void @Longtail_Free(ptr noundef %277)
          to label %278 unwind label %246

278:                                              ; preds = %276
  %279 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %280 unwind label %246

280:                                              ; preds = %278
  %281 = getelementptr inbounds i8, ptr %279, i64 96
  %282 = load i32, ptr %281, align 8
  %283 = and i32 %282, -16776961
  %284 = or disjoint i32 %283, 1944832
  store i32 %284, ptr %281, align 8
  %285 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %286 unwind label %246

286:                                              ; preds = %280
  %287 = getelementptr inbounds i8, ptr %285, i64 32
  store ptr @.str.3, ptr %287, align 8, !tbaa !11
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %288 unwind label %246

288:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  store i32 0, ptr %30, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  %289 = invoke i32 @Longtail_ReadArchiveIndex(ptr noundef nonnull %34, ptr noundef %42, ptr noundef nonnull %21)
          to label %290 unwind label %294

290:                                              ; preds = %288
  store i32 %289, ptr %31, align 4, !tbaa !16
  %291 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.903, ptr noundef null)
          to label %292 unwind label %294

292:                                              ; preds = %290
  %293 = icmp eq i32 %291, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  br i1 %293, label %.invoke, label %296

294:                                              ; preds = %290, %288
  %295 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  br label %343

296:                                              ; preds = %292
  %297 = load ptr, ptr %21, align 8, !tbaa !20
  %298 = invoke ptr @Longtail_CreateArchiveBlockStore(ptr noundef nonnull %34, ptr noundef %42, ptr noundef %297, i32 noundef 0, i32 noundef 1)
          to label %299 unwind label %246

299:                                              ; preds = %296
  %300 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %301 unwind label %246

301:                                              ; preds = %299
  %302 = getelementptr inbounds i8, ptr %300, i64 96
  %303 = load i32, ptr %302, align 8
  %304 = and i32 %303, -16776961
  %305 = or disjoint i32 %304, 1949696
  store i32 %305, ptr %302, align 8
  %306 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %307 unwind label %246

307:                                              ; preds = %301
  %308 = getelementptr inbounds i8, ptr %306, i64 32
  store ptr @.str.3, ptr %308, align 8, !tbaa !11
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %309 unwind label %246

309:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #5
  store i32 0, ptr %32, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #5
  %310 = load ptr, ptr %21, align 8, !tbaa !20
  %311 = getelementptr inbounds i8, ptr %310, i64 16
  %312 = getelementptr inbounds i8, ptr %310, i64 112
  %313 = invoke i32 @Longtail_WriteVersion(ptr noundef %298, ptr noundef nonnull %34, ptr noundef %102, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull %311, ptr noundef nonnull %312, ptr noundef %40, i32 noundef 1)
          to label %314 unwind label %318

314:                                              ; preds = %309
  store i32 %313, ptr %33, align 4, !tbaa !16
  %315 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.904, ptr noundef null)
          to label %316 unwind label %318

316:                                              ; preds = %314
  %317 = icmp eq i32 %315, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  br i1 %317, label %.invoke, label %320

.invoke:                                          ; preds = %244, %316, %292, %264
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %337 unwind label %246

318:                                              ; preds = %314, %309
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  br label %343

320:                                              ; preds = %316
  %.not82 = icmp eq ptr %298, null
  br i1 %.not82, label %322, label %321

321:                                              ; preds = %320
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %298)
          to label %322 unwind label %246

322:                                              ; preds = %321, %320
  %323 = load ptr, ptr %21, align 8, !tbaa !20
  invoke void @Longtail_Free(ptr noundef %323)
          to label %324 unwind label %246

324:                                              ; preds = %322
  store ptr null, ptr %21, align 8, !tbaa !20
  %.not83 = icmp eq ptr %102, null
  br i1 %.not83, label %326, label %325

325:                                              ; preds = %324
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %102)
          to label %326 unwind label %246

326:                                              ; preds = %325, %324
  %.not84 = icmp eq ptr %101, null
  br i1 %.not84, label %328, label %327

327:                                              ; preds = %326
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %101)
          to label %328 unwind label %246

328:                                              ; preds = %327, %326
  %.not85 = icmp eq ptr %100, null
  br i1 %.not85, label %330, label %329

329:                                              ; preds = %328
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %100)
          to label %330 unwind label %246

330:                                              ; preds = %329, %328
  %.not86 = icmp eq ptr %99, null
  br i1 %.not86, label %332, label %331

331:                                              ; preds = %330
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %99)
          to label %332 unwind label %246

332:                                              ; preds = %330, %331
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %34)
          to label %333 unwind label %246

333:                                              ; preds = %332
  invoke void @Longtail_Free(ptr noundef %35)
          to label %334 unwind label %246

334:                                              ; preds = %333
  invoke void @Longtail_Free(ptr noundef %38)
          to label %335 unwind label %246

335:                                              ; preds = %334
  invoke void @Longtail_Free(ptr noundef %40)
          to label %336 unwind label %246

336:                                              ; preds = %335
  invoke void @Longtail_Free(ptr noundef %42)
          to label %337 unwind label %246

337:                                              ; preds = %.invoke, %336
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  br label %338

338:                                              ; preds = %227, %337, %211
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  br label %339

339:                                              ; preds = %338, %197
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br label %340

340:                                              ; preds = %339, %175, %163
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  br label %341

341:                                              ; preds = %150, %340, %137, %125
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  br label %342

342:                                              ; preds = %113, %341, %97, %83, %71, %53
  ret void

343:                                              ; preds = %318, %294, %266, %248, %246
  %.pn = phi { ptr, i32 } [ %247, %246 ], [ %319, %318 ], [ %295, %294 ], [ %267, %266 ], [ %249, %248 ]
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  resume { ptr, i32 } %.pn
}

declare ptr @Longtail_GetTempFolder() local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef, ptr noundef) local_unnamed_addr #3

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress 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 #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, !8, i64 96}
!6 = !{!"_ZTS19Longtail_StorageAPI", !7, i64 0, !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !8, i64 64, !8, i64 72, !8, i64 80, !8, i64 88, !8, i64 96, !8, i64 104, !8, i64 112, !8, i64 120, !8, i64 128, !8, i64 136, !8, i64 144, !8, i64 152, !8, i64 160, !8, i64 168, !8, i64 176, !8, i64 184, !8, i64 192, !8, i64 200, !8, i64 208}
!7 = !{!"_ZTS12Longtail_API", !8, i64 0}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!12, !8, i64 32}
!12 = !{!"_ZTS15jc_test_fixture", !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !13, i64 64, !14, i64 88, !14, i64 91, !14, i64 91, !14, i64 91, !14, i64 91, !14, i64 92, !14, i64 96, !14, i64 97, !14, i64 99, !14, i64 100}
!13 = !{!"_ZTS13jc_test_stats", !14, i64 0, !14, i64 4, !14, i64 6, !14, i64 8, !14, i64 12, !15, i64 16}
!14 = !{!"int", !9, i64 0}
!15 = !{!"long", !9, i64 0}
!16 = !{!14, !14, i64 0}
!17 = !{!6, !8, i64 112}
!18 = !{!6, !8, i64 128}
!19 = !{!6, !8, i64 80}
!20 = !{!8, !8, i64 0}
!21 = !{!22, !8, i64 32}
!22 = !{!"_ZTS21Longtail_VersionIndex", !8, i64 0, !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !8, i64 64, !8, i64 72, !8, i64 80, !8, i64 88, !8, i64 96, !8, i64 104, !8, i64 112, !8, i64 120, !14, i64 128, !8, i64 136, !8, i64 144}
!23 = !{!22, !8, i64 96}
!24 = !{!22, !8, i64 104}
!25 = !{!22, !8, i64 112}
!26 = !{!27, !8, i64 56}
!27 = !{!"_ZTS22Longtail_BlockStoreAPI", !7, i64 0, !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass