; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN51Longtail_TestChangeVersionCancelOperation (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"

%class.TestAsyncBlockStore = type { %struct.Longtail_BlockStoreAPI, ptr, ptr, i32, ptr, ptr, ptr, [8 x ptr], i32, ptr, i64, ptr, i64, ptr, i64, ptr, ptr, ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }
%struct.BlockStoreProxy = type { %struct.Longtail_BlockStoreAPI, ptr, i32 }
%struct.TestCancelAPI = type { %struct.Longtail_CancelAPI, ptr, i32, i32 }
%struct.Longtail_CancelAPI = type { %struct.Longtail_API, 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_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.Longtail_VersionIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr }
%struct.Longtail_ConcurrentChunkWriteAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ChunkerAPI = 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.253 = external hidden unnamed_addr constant [23 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.386 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.628 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.629 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.631 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.632 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.635 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [75 x i8], align 1
@__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_FILENAMES = external hidden unnamed_addr constant [22 x ptr], align 16
@__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS = external hidden unnamed_addr constant [22 x ptr], align 16
@__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_PERMISSIONS = external hidden unnamed_addr constant [22 x i16], align 16
@.str.677 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.678 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.679 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.680 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.681 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.682 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.683 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.684 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.685 = external hidden unnamed_addr constant [164 x i8], align 1
@.str.686 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.687 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.688 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.689 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.690 = external hidden unnamed_addr constant [202 x i8], align 1
@.str.691 = external hidden unnamed_addr constant [69 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

declare ptr @Longtail_Alloc(ptr noundef, i64 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @_ZL19jc_test_get_fixturev() #2

declare void @_Z28jc_test_increment_assertionsv() #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) #1

declare void @Longtail_Free(ptr noundef) #1

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

declare i32 @Longtail_GetLZ4DefaultQuality() #1

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #3

; 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) #4 align 2

declare void @Longtail_DisposeAPI(ptr noundef) #1

declare ptr @Longtail_CreateBlake3HashAPI() #1

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

declare ptr @Longtail_CreateHPCDCChunkerAPI() #1

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

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

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

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

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

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) #1

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

declare ptr @Longtail_CreateInMemStorageAPI() #1

declare ptr @Longtail_CreateFullCompressionRegistry() #1

declare ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #1

; 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) #4 align 2

declare ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef) #1

declare ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef, ptr noundef) #1

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

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

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

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

declare i32 @Longtail_CreateMissingContent(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) #1

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

declare i32 @Longtail_GetRequiredChunkHashes(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare i32 @Longtail_CreateVersionDiff(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

declare ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare i32 @Longtail_ChangeVersion2(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN19TestAsyncBlockStore14InitBlockStoreEPS_P16Longtail_HashAPIP15Longtail_JobAPI(ptr noundef, ptr noundef, ptr noundef) #4 align 2

declare ptr @Longtail_MakeBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare ptr @Longtail_CreateAtomicCancelAPI() #1

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 align 2 {
  %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 %class.TestAsyncBlockStore, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca [22 x ptr], align 16
  %19 = alloca [22 x ptr], align 16
  %20 = alloca [22 x i64], align 16
  %21 = alloca [22 x i16], align 16
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %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 ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca %struct.BlockStoreProxy, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca %struct.TestCancelAPI, align 8
  %67 = alloca ptr, align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %73 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #7
  %74 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %74, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #7
  %75 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %75, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %76 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %76, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %77 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %77, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %78 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 32, i32 noundef -1)
  store ptr %78, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %8) #7
  br label %79

79:                                               ; preds = %1
  %80 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %81 = getelementptr inbounds %struct.jc_test_fixture, ptr %80, i32 0, i32 11
  %82 = load i32, ptr %81, align 8
  %83 = and i32 %82, -16776961
  %84 = or i32 %83, 1240320
  store i32 %84, ptr %81, align 8
  %85 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %86 = getelementptr inbounds %struct.jc_test_fixture, ptr %85, i32 0, i32 4
  store ptr @.str.3, ptr %86, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  store i32 0, ptr %9, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  %87 = load ptr, ptr %5, align 8, !tbaa !5
  %88 = load ptr, ptr %7, align 8, !tbaa !5
  %89 = call noundef i32 @_ZN19TestAsyncBlockStore14InitBlockStoreEPS_P16Longtail_HashAPIP15Longtail_JobAPI(ptr noundef %8, ptr noundef %87, ptr noundef %88)
  store i32 %89, ptr %10, align 4, !tbaa !14
  %90 = 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) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef @.str.46, ptr noundef @.str.652, ptr noundef null)
  %91 = icmp eq i32 %90, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br i1 %91, label %92, label %93

92:                                               ; preds = %79
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %920

93:                                               ; preds = %79
  br label %94

94:                                               ; preds = %93
  br label %95

95:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %96 = getelementptr inbounds %class.TestAsyncBlockStore, ptr %8, i32 0, i32 0
  store ptr %96, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %97 = load ptr, ptr %7, align 8, !tbaa !5
  %98 = load ptr, ptr %3, align 8, !tbaa !5
  %99 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %97, ptr noundef %98, ptr noundef @.str.601, ptr noundef null, i32 noundef 0)
  store ptr %99, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %100 = load ptr, ptr %7, align 8, !tbaa !5
  %101 = load ptr, ptr %13, align 8, !tbaa !5
  %102 = load ptr, ptr %12, align 8, !tbaa !5
  %103 = call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %100, ptr noundef %101, ptr noundef %102)
  store ptr %103, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %104 = load ptr, ptr %12, align 8, !tbaa !5
  %105 = load ptr, ptr %4, align 8, !tbaa !5
  %106 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %104, ptr noundef %105)
  store ptr %106, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %107 = load ptr, ptr %14, align 8, !tbaa !5
  %108 = load ptr, ptr %4, align 8, !tbaa !5
  %109 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %107, ptr noundef %108)
  store ptr %109, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 22, ptr %17, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 176, ptr %18) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %18, ptr align 16 @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_FILENAMES, i64 176, i1 false)
  call void @llvm.lifetime.start.p0(i64 176, ptr %19) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %19, ptr align 16 @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 176, i1 false)
  call void @llvm.lifetime.start.p0(i64 176, ptr %20) #7
  %110 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 0
  %111 = load ptr, ptr %110, align 16, !tbaa !5
  %112 = call i64 @strlen(ptr noundef %111) #8
  %113 = add i64 %112, 1
  store i64 %113, ptr %20, align 8, !tbaa !15
  %114 = getelementptr inbounds i64, ptr %20, i64 1
  %115 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 1
  %116 = load ptr, ptr %115, align 8, !tbaa !5
  %117 = call i64 @strlen(ptr noundef %116) #8
  %118 = add i64 %117, 1
  store i64 %118, ptr %114, align 8, !tbaa !15
  %119 = getelementptr inbounds i64, ptr %20, i64 2
  %120 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 2
  %121 = load ptr, ptr %120, align 16, !tbaa !5
  %122 = call i64 @strlen(ptr noundef %121) #8
  %123 = add i64 %122, 1
  store i64 %123, ptr %119, align 8, !tbaa !15
  %124 = getelementptr inbounds i64, ptr %20, i64 3
  %125 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 3
  %126 = load ptr, ptr %125, align 8, !tbaa !5
  %127 = call i64 @strlen(ptr noundef %126) #8
  %128 = add i64 %127, 1
  store i64 %128, ptr %124, align 8, !tbaa !15
  %129 = getelementptr inbounds i64, ptr %20, i64 4
  %130 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 4
  %131 = load ptr, ptr %130, align 16, !tbaa !5
  %132 = call i64 @strlen(ptr noundef %131) #8
  %133 = add i64 %132, 1
  store i64 %133, ptr %129, align 8, !tbaa !15
  %134 = getelementptr inbounds i64, ptr %20, i64 5
  %135 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 5
  %136 = load ptr, ptr %135, align 8, !tbaa !5
  %137 = call i64 @strlen(ptr noundef %136) #8
  %138 = add i64 %137, 1
  store i64 %138, ptr %134, align 8, !tbaa !15
  %139 = getelementptr inbounds i64, ptr %20, i64 6
  %140 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 6
  %141 = load ptr, ptr %140, align 16, !tbaa !5
  %142 = call i64 @strlen(ptr noundef %141) #8
  %143 = add i64 %142, 1
  store i64 %143, ptr %139, align 8, !tbaa !15
  %144 = getelementptr inbounds i64, ptr %20, i64 7
  %145 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 7
  %146 = load ptr, ptr %145, align 8, !tbaa !5
  %147 = call i64 @strlen(ptr noundef %146) #8
  %148 = add i64 %147, 1
  store i64 %148, ptr %144, align 8, !tbaa !15
  %149 = getelementptr inbounds i64, ptr %20, i64 8
  %150 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 8
  %151 = load ptr, ptr %150, align 16, !tbaa !5
  %152 = call i64 @strlen(ptr noundef %151) #8
  %153 = add i64 %152, 1
  store i64 %153, ptr %149, align 8, !tbaa !15
  %154 = getelementptr inbounds i64, ptr %20, i64 9
  %155 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 9
  %156 = load ptr, ptr %155, align 8, !tbaa !5
  %157 = call i64 @strlen(ptr noundef %156) #8
  %158 = add i64 %157, 1
  store i64 %158, ptr %154, align 8, !tbaa !15
  %159 = getelementptr inbounds i64, ptr %20, i64 10
  %160 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 10
  %161 = load ptr, ptr %160, align 16, !tbaa !5
  %162 = call i64 @strlen(ptr noundef %161) #8
  %163 = add i64 %162, 1
  store i64 %163, ptr %159, align 8, !tbaa !15
  %164 = getelementptr inbounds i64, ptr %20, i64 11
  %165 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 11
  %166 = load ptr, ptr %165, align 8, !tbaa !5
  %167 = call i64 @strlen(ptr noundef %166) #8
  %168 = add i64 %167, 1
  store i64 %168, ptr %164, align 8, !tbaa !15
  %169 = getelementptr inbounds i64, ptr %20, i64 12
  %170 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 12
  %171 = load ptr, ptr %170, align 16, !tbaa !5
  %172 = call i64 @strlen(ptr noundef %171) #8
  %173 = add i64 %172, 1
  store i64 %173, ptr %169, align 8, !tbaa !15
  %174 = getelementptr inbounds i64, ptr %20, i64 13
  %175 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 13
  %176 = load ptr, ptr %175, align 8, !tbaa !5
  %177 = call i64 @strlen(ptr noundef %176) #8
  %178 = add i64 %177, 1
  store i64 %178, ptr %174, align 8, !tbaa !15
  %179 = getelementptr inbounds i64, ptr %20, i64 14
  %180 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 14
  %181 = load ptr, ptr %180, align 16, !tbaa !5
  %182 = call i64 @strlen(ptr noundef %181) #8
  %183 = add i64 %182, 1
  store i64 %183, ptr %179, align 8, !tbaa !15
  %184 = getelementptr inbounds i64, ptr %20, i64 15
  %185 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 15
  %186 = load ptr, ptr %185, align 8, !tbaa !5
  %187 = call i64 @strlen(ptr noundef %186) #8
  %188 = add i64 %187, 1
  store i64 %188, ptr %184, align 8, !tbaa !15
  %189 = getelementptr inbounds i64, ptr %20, i64 16
  %190 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 16
  %191 = load ptr, ptr %190, align 16, !tbaa !5
  %192 = call i64 @strlen(ptr noundef %191) #8
  %193 = add i64 %192, 1
  store i64 %193, ptr %189, align 8, !tbaa !15
  %194 = getelementptr inbounds i64, ptr %20, i64 17
  %195 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 17
  %196 = load ptr, ptr %195, align 8, !tbaa !5
  %197 = call i64 @strlen(ptr noundef %196) #8
  %198 = add i64 %197, 1
  store i64 %198, ptr %194, align 8, !tbaa !15
  %199 = getelementptr inbounds i64, ptr %20, i64 18
  %200 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 18
  %201 = load ptr, ptr %200, align 16, !tbaa !5
  %202 = call i64 @strlen(ptr noundef %201) #8
  %203 = add i64 %202, 1
  store i64 %203, ptr %199, align 8, !tbaa !15
  %204 = getelementptr inbounds i64, ptr %20, i64 19
  %205 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 19
  %206 = load ptr, ptr %205, align 8, !tbaa !5
  %207 = call i64 @strlen(ptr noundef %206) #8
  %208 = add i64 %207, 1
  store i64 %208, ptr %204, align 8, !tbaa !15
  %209 = getelementptr inbounds i64, ptr %20, i64 20
  %210 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 20
  %211 = load ptr, ptr %210, align 16, !tbaa !5
  %212 = call i64 @strlen(ptr noundef %211) #8
  %213 = add i64 %212, 1
  store i64 %213, ptr %209, align 8, !tbaa !15
  %214 = getelementptr inbounds i64, ptr %20, i64 21
  %215 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 21
  %216 = load ptr, ptr %215, align 8, !tbaa !5
  %217 = call i64 @strlen(ptr noundef %216) #8
  %218 = add i64 %217, 1
  store i64 %218, ptr %214, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 44, ptr %21) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %21, ptr align 16 @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_PERMISSIONS, i64 44, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  store i32 0, ptr %22, align 4, !tbaa !14
  br label %219

219:                                              ; preds = %340, %95
  %220 = load i32, ptr %22, align 4, !tbaa !14
  %221 = icmp ult i32 %220, 22
  br i1 %221, label %223, label %222

222:                                              ; preds = %219
  store i32 4, ptr %11, align 4
  br label %343

223:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %224 = load ptr, ptr %3, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %224, i32 0, i32 12
  %226 = load ptr, ptr %225, align 8, !tbaa !16
  %227 = load ptr, ptr %3, align 8, !tbaa !5
  %228 = load i32, ptr %22, align 4, !tbaa !14
  %229 = zext i32 %228 to i64
  %230 = getelementptr inbounds [22 x ptr], ptr %18, i64 0, i64 %229
  %231 = load ptr, ptr %230, align 8, !tbaa !5
  %232 = call noundef ptr %226(ptr noundef %227, ptr noundef @.str.677, ptr noundef %231)
  store ptr %232, ptr %23, align 8, !tbaa !5
  br label %233

233:                                              ; preds = %223
  %234 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %235 = getelementptr inbounds %struct.jc_test_fixture, ptr %234, i32 0, i32 11
  %236 = load i32, ptr %235, align 8
  %237 = and i32 %236, -16776961
  %238 = or i32 %237, 1300736
  store i32 %238, ptr %235, align 8
  %239 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %240 = getelementptr inbounds %struct.jc_test_fixture, ptr %239, i32 0, i32 4
  store ptr @.str.3, ptr %240, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %241 = load ptr, ptr %3, align 8, !tbaa !5
  %242 = load ptr, ptr %23, align 8, !tbaa !5
  %243 = call noundef i32 @_ZL16CreateParentPathP19Longtail_StorageAPIPKc(ptr noundef %241, ptr noundef %242)
  %244 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %243, ptr noundef @.str.46, ptr noundef @.str.386)
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %247

246:                                              ; preds = %233
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %337

247:                                              ; preds = %233
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  br label %250

250:                                              ; preds = %249
  %251 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %252 = getelementptr inbounds %struct.jc_test_fixture, ptr %251, i32 0, i32 11
  %253 = load i32, ptr %252, align 8
  %254 = and i32 %253, -16776961
  %255 = or i32 %254, 1301248
  store i32 %255, ptr %252, align 8
  %256 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %257 = getelementptr inbounds %struct.jc_test_fixture, ptr %256, i32 0, i32 4
  store ptr @.str.3, ptr %257, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  store i32 0, ptr %25, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %258 = load ptr, ptr %3, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %258, i32 0, i32 4
  %260 = load ptr, ptr %259, align 8, !tbaa !19
  %261 = load ptr, ptr %3, align 8, !tbaa !5
  %262 = load ptr, ptr %23, align 8, !tbaa !5
  %263 = call noundef i32 %260(ptr noundef %261, ptr noundef %262, i64 noundef 0, ptr noundef %24)
  store i32 %263, ptr %26, align 4, !tbaa !14
  %264 = 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) %25, ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef @.str.46, ptr noundef @.str.387, ptr noundef null)
  %265 = icmp eq i32 %264, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br i1 %265, label %266, label %267

266:                                              ; preds = %250
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %336

267:                                              ; preds = %250
  br label %268

268:                                              ; preds = %267
  br label %269

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269
  %271 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %272 = getelementptr inbounds %struct.jc_test_fixture, ptr %271, i32 0, i32 11
  %273 = load i32, ptr %272, align 8
  %274 = and i32 %273, -16776961
  %275 = or i32 %274, 1301504
  store i32 %275, ptr %272, align 8
  %276 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %277 = getelementptr inbounds %struct.jc_test_fixture, ptr %276, i32 0, i32 4
  store ptr @.str.3, ptr %277, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %278 = load ptr, ptr %24, align 8, !tbaa !5
  %279 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %278, ptr noundef @.str.388, ptr noundef @.str.389)
  %280 = icmp eq i32 %279, 0
  br i1 %280, label %281, label %282

281:                                              ; preds = %270
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %336

282:                                              ; preds = %270
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  %285 = load i32, ptr %22, align 4, !tbaa !14
  %286 = zext i32 %285 to i64
  %287 = getelementptr inbounds [22 x i64], ptr %20, i64 0, i64 %286
  %288 = load i64, ptr %287, align 8, !tbaa !15
  %289 = icmp ne i64 %288, 0
  br i1 %289, label %290, label %319

290:                                              ; preds = %284
  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, 1302272
  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 !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %299 = load ptr, ptr %3, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %299, i32 0, i32 5
  %301 = load ptr, ptr %300, align 8, !tbaa !20
  %302 = load ptr, ptr %3, align 8, !tbaa !5
  %303 = load ptr, ptr %24, align 8, !tbaa !5
  %304 = load i32, ptr %22, align 4, !tbaa !14
  %305 = zext i32 %304 to i64
  %306 = getelementptr inbounds [22 x i64], ptr %20, i64 0, i64 %305
  %307 = load i64, ptr %306, align 8, !tbaa !15
  %308 = load i32, ptr %22, align 4, !tbaa !14
  %309 = zext i32 %308 to i64
  %310 = getelementptr inbounds [22 x ptr], ptr %19, i64 0, i64 %309
  %311 = load ptr, ptr %310, align 8, !tbaa !5
  %312 = call noundef i32 %301(ptr noundef %302, ptr noundef %303, i64 noundef 0, i64 noundef %307, ptr noundef %311)
  store i32 %312, ptr %28, align 4, !tbaa !14
  %313 = 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) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef @.str.46, ptr noundef @.str.390, ptr noundef null)
  %314 = icmp eq i32 %313, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br i1 %314, label %315, label %316

315:                                              ; preds = %291
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %336

316:                                              ; preds = %291
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318, %284
  %320 = load ptr, ptr %3, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %320, i32 0, i32 9
  %322 = load ptr, ptr %321, align 8, !tbaa !21
  %323 = load ptr, ptr %3, align 8, !tbaa !5
  %324 = load ptr, ptr %24, align 8, !tbaa !5
  call void %322(ptr noundef %323, ptr noundef %324)
  store ptr null, ptr %24, align 8, !tbaa !5
  %325 = load ptr, ptr %3, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %325, i32 0, i32 7
  %327 = load ptr, ptr %326, align 8, !tbaa !22
  %328 = load ptr, ptr %3, align 8, !tbaa !5
  %329 = load ptr, ptr %23, align 8, !tbaa !5
  %330 = load i32, ptr %22, align 4, !tbaa !14
  %331 = zext i32 %330 to i64
  %332 = getelementptr inbounds [22 x i16], ptr %21, i64 0, i64 %331
  %333 = load i16, ptr %332, align 2, !tbaa !23
  %334 = call noundef i32 %327(ptr noundef %328, ptr noundef %329, i16 noundef zeroext %333)
  %335 = load ptr, ptr %23, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %335)
  store i32 0, ptr %11, align 4
  br label %336

336:                                              ; preds = %319, %315, %281, %266
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %337

337:                                              ; preds = %336, %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  %338 = load i32, ptr %11, align 4
  switch i32 %338, label %343 [
    i32 0, label %339
  ]

339:                                              ; preds = %337
  br label %340

340:                                              ; preds = %339
  %341 = load i32, ptr %22, align 4, !tbaa !14
  %342 = add i32 %341, 1
  store i32 %342, ptr %22, align 4, !tbaa !14
  br label %219, !llvm.loop !25

343:                                              ; preds = %337, %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  %344 = load i32, ptr %11, align 4
  switch i32 %344, label %919 [
    i32 4, label %345
  ]

345:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  br label %346

346:                                              ; preds = %345
  %347 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %348 = getelementptr inbounds %struct.jc_test_fixture, ptr %347, i32 0, i32 11
  %349 = load i32, ptr %348, align 8
  %350 = and i32 %349, -16776961
  %351 = or i32 %350, 1304576
  store i32 %351, ptr %348, align 8
  %352 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %353 = getelementptr inbounds %struct.jc_test_fixture, ptr %352, i32 0, i32 4
  store ptr @.str.3, ptr %353, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 0, ptr %30, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %354 = load ptr, ptr %3, align 8, !tbaa !5
  %355 = load ptr, ptr %7, align 8, !tbaa !5
  %356 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %354, ptr noundef %355, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.677, ptr noundef %29)
  store i32 %356, ptr %31, align 4, !tbaa !14
  %357 = 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) %30, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef @.str.46, ptr noundef @.str.678, ptr noundef null)
  %358 = icmp eq i32 %357, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br i1 %358, label %359, label %360

359:                                              ; preds = %346
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %918

360:                                              ; preds = %346
  br label %361

361:                                              ; preds = %360
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362
  %364 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %365 = getelementptr inbounds %struct.jc_test_fixture, ptr %364, i32 0, i32 11
  %366 = load i32, ptr %365, align 8
  %367 = and i32 %366, -16776961
  %368 = or i32 %367, 1304832
  store i32 %368, ptr %365, align 8
  %369 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %370 = getelementptr inbounds %struct.jc_test_fixture, ptr %369, i32 0, i32 4
  store ptr @.str.3, ptr %370, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %371 = load ptr, ptr %29, align 8, !tbaa !5
  %372 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %371, ptr noundef @.str.253, ptr noundef @.str.679)
  %373 = icmp eq i32 %372, 0
  br i1 %373, label %374, label %375

374:                                              ; preds = %363
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %918

375:                                              ; preds = %363
  br label %376

376:                                              ; preds = %375
  br label %377

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %378 = load ptr, ptr %3, align 8, !tbaa !5
  %379 = load ptr, ptr %29, align 8, !tbaa !5
  %380 = call i32 @Longtail_GetLZ4DefaultQuality()
  %381 = call noundef ptr @_ZL12SetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfosj(ptr noundef %378, ptr noundef %379, i32 noundef %380)
  store ptr %381, ptr %32, align 8, !tbaa !5
  br label %382

382:                                              ; preds = %377
  %383 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %384 = getelementptr inbounds %struct.jc_test_fixture, ptr %383, i32 0, i32 11
  %385 = load i32, ptr %384, align 8
  %386 = and i32 %385, -16776961
  %387 = or i32 %386, 1305344
  store i32 %387, ptr %384, align 8
  %388 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %389 = getelementptr inbounds %struct.jc_test_fixture, ptr %388, i32 0, i32 4
  store ptr @.str.3, ptr %389, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %390 = load ptr, ptr %32, align 8, !tbaa !5
  %391 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %390, ptr noundef @.str.255, ptr noundef @.str.256)
  %392 = icmp eq i32 %391, 0
  br i1 %392, label %393, label %394

393:                                              ; preds = %382
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %917

394:                                              ; preds = %382
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  br label %397

397:                                              ; preds = %396
  %398 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %399 = getelementptr inbounds %struct.jc_test_fixture, ptr %398, i32 0, i32 11
  %400 = load i32, ptr %399, align 8
  %401 = and i32 %400, -16776961
  %402 = or i32 %401, 1309184
  store i32 %402, ptr %399, align 8
  %403 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %404 = getelementptr inbounds %struct.jc_test_fixture, ptr %403, i32 0, i32 4
  store ptr @.str.3, ptr %404, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  store i32 0, ptr %34, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %405 = load ptr, ptr %3, align 8, !tbaa !5
  %406 = load ptr, ptr %5, align 8, !tbaa !5
  %407 = load ptr, ptr %6, align 8, !tbaa !5
  %408 = load ptr, ptr %7, align 8, !tbaa !5
  %409 = load ptr, ptr %29, align 8, !tbaa !5
  %410 = load ptr, ptr %32, align 8, !tbaa !5
  %411 = call i32 @Longtail_CreateVersionIndex(ptr noundef %405, ptr noundef %406, ptr noundef %407, ptr noundef %408, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.677, ptr noundef %409, ptr noundef %410, i32 noundef 16, i32 noundef 0, ptr noundef %33)
  store i32 %411, ptr %35, align 4, !tbaa !14
  %412 = 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.680, ptr noundef null)
  %413 = icmp eq i32 %412, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br i1 %413, label %414, label %415

414:                                              ; preds = %397
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %916

415:                                              ; preds = %397
  br label %416

416:                                              ; preds = %415
  br label %417

417:                                              ; preds = %416
  br label %418

418:                                              ; preds = %417
  %419 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %420 = getelementptr inbounds %struct.jc_test_fixture, ptr %419, i32 0, i32 11
  %421 = load i32, ptr %420, align 8
  %422 = and i32 %421, -16776961
  %423 = or i32 %422, 1309440
  store i32 %423, ptr %420, align 8
  %424 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %425 = getelementptr inbounds %struct.jc_test_fixture, ptr %424, i32 0, i32 4
  store ptr @.str.3, ptr %425, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %426 = load ptr, ptr %33, align 8, !tbaa !5
  %427 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %426, ptr noundef @.str.259, ptr noundef @.str.260)
  %428 = icmp eq i32 %427, 0
  br i1 %428, label %429, label %430

429:                                              ; preds = %418
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %916

430:                                              ; preds = %418
  br label %431

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431
  %433 = load ptr, ptr %32, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %433)
  store ptr null, ptr %32, align 8, !tbaa !5
  %434 = load ptr, ptr %29, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %434)
  store ptr null, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  br label %435

435:                                              ; preds = %432
  %436 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %437 = getelementptr inbounds %struct.jc_test_fixture, ptr %436, i32 0, i32 11
  %438 = load i32, ptr %437, align 8
  %439 = and i32 %438, -16776961
  %440 = or i32 %439, 1311232
  store i32 %440, ptr %437, align 8
  %441 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %442 = getelementptr inbounds %struct.jc_test_fixture, ptr %441, i32 0, i32 4
  store ptr @.str.3, ptr %442, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  store i32 0, ptr %37, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %443 = load ptr, ptr %3, align 8, !tbaa !5
  %444 = load ptr, ptr %7, align 8, !tbaa !5
  %445 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %443, ptr noundef %444, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.681, ptr noundef %36)
  store i32 %445, ptr %38, align 4, !tbaa !14
  %446 = 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.682, ptr noundef null)
  %447 = icmp eq i32 %446, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br i1 %447, label %448, label %449

448:                                              ; preds = %435
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %915

449:                                              ; preds = %435
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  br label %452

452:                                              ; preds = %451
  %453 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %454 = getelementptr inbounds %struct.jc_test_fixture, ptr %453, i32 0, i32 11
  %455 = load i32, ptr %454, align 8
  %456 = and i32 %455, -16776961
  %457 = or i32 %456, 1311488
  store i32 %457, ptr %454, align 8
  %458 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %459 = getelementptr inbounds %struct.jc_test_fixture, ptr %458, i32 0, i32 4
  store ptr @.str.3, ptr %459, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %460 = load ptr, ptr %36, align 8, !tbaa !5
  %461 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %460, ptr noundef @.str.253, ptr noundef @.str.683)
  %462 = icmp eq i32 %461, 0
  br i1 %462, label %463, label %464

463:                                              ; preds = %452
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %915

464:                                              ; preds = %452
  br label %465

465:                                              ; preds = %464
  br label %466

466:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %467 = load ptr, ptr %3, align 8, !tbaa !5
  %468 = load ptr, ptr %36, align 8, !tbaa !5
  %469 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef %467, ptr noundef %468)
  store ptr %469, ptr %39, align 8, !tbaa !5
  br label %470

470:                                              ; preds = %466
  %471 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %472 = getelementptr inbounds %struct.jc_test_fixture, ptr %471, i32 0, i32 11
  %473 = load i32, ptr %472, align 8
  %474 = and i32 %473, -16776961
  %475 = or i32 %474, 1312000
  store i32 %475, ptr %472, align 8
  %476 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %477 = getelementptr inbounds %struct.jc_test_fixture, ptr %476, i32 0, i32 4
  store ptr @.str.3, ptr %477, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %478 = load ptr, ptr %39, align 8, !tbaa !5
  %479 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %478, ptr noundef @.str.255, ptr noundef @.str.684)
  %480 = icmp eq i32 %479, 0
  br i1 %480, label %481, label %482

481:                                              ; preds = %470
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %914

482:                                              ; preds = %470
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  br label %485

485:                                              ; preds = %484
  %486 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %487 = getelementptr inbounds %struct.jc_test_fixture, ptr %486, i32 0, i32 11
  %488 = load i32, ptr %487, align 8
  %489 = and i32 %488, -16776961
  %490 = or i32 %489, 1315840
  store i32 %490, ptr %487, align 8
  %491 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %492 = getelementptr inbounds %struct.jc_test_fixture, ptr %491, i32 0, i32 4
  store ptr @.str.3, ptr %492, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  store i32 0, ptr %41, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %493 = load ptr, ptr %3, align 8, !tbaa !5
  %494 = load ptr, ptr %5, align 8, !tbaa !5
  %495 = load ptr, ptr %6, align 8, !tbaa !5
  %496 = load ptr, ptr %7, align 8, !tbaa !5
  %497 = load ptr, ptr %36, align 8, !tbaa !5
  %498 = load ptr, ptr %39, align 8, !tbaa !5
  %499 = call i32 @Longtail_CreateVersionIndex(ptr noundef %493, ptr noundef %494, ptr noundef %495, ptr noundef %496, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.681, ptr noundef %497, ptr noundef %498, i32 noundef 16, i32 noundef 0, ptr noundef %40)
  store i32 %499, ptr %42, align 4, !tbaa !14
  %500 = 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) %41, ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef @.str.46, ptr noundef @.str.685, ptr noundef null)
  %501 = icmp eq i32 %500, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br i1 %501, label %502, label %503

502:                                              ; preds = %485
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %913

503:                                              ; preds = %485
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  %507 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %508 = getelementptr inbounds %struct.jc_test_fixture, ptr %507, i32 0, i32 11
  %509 = load i32, ptr %508, align 8
  %510 = and i32 %509, -16776961
  %511 = or i32 %510, 1316096
  store i32 %511, ptr %508, align 8
  %512 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %513 = getelementptr inbounds %struct.jc_test_fixture, ptr %512, i32 0, i32 4
  store ptr @.str.3, ptr %513, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %514 = load ptr, ptr %40, align 8, !tbaa !5
  %515 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %514, ptr noundef @.str.259, ptr noundef @.str.686)
  %516 = icmp eq i32 %515, 0
  br i1 %516, label %517, label %518

517:                                              ; preds = %506
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %913

518:                                              ; preds = %506
  br label %519

519:                                              ; preds = %518
  br label %520

520:                                              ; preds = %519
  %521 = load ptr, ptr %39, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %521)
  store ptr null, ptr %39, align 8, !tbaa !5
  %522 = load ptr, ptr %36, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %522)
  store ptr null, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %523 = load ptr, ptr %16, align 8, !tbaa !5
  %524 = load ptr, ptr %33, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %524, i32 0, i32 4
  %526 = load ptr, ptr %525, align 8, !tbaa !27
  %527 = load i32, ptr %526, align 4, !tbaa !14
  %528 = load ptr, ptr %33, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %528, i32 0, i32 12
  %530 = load ptr, ptr %529, align 8, !tbaa !29
  %531 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %523, i32 noundef %527, ptr noundef %530, i32 noundef 0)
  store ptr %531, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  br label %532

532:                                              ; preds = %520
  %533 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %534 = getelementptr inbounds %struct.jc_test_fixture, ptr %533, i32 0, i32 11
  %535 = load i32, ptr %534, align 8
  %536 = and i32 %535, -16776961
  %537 = or i32 %536, 1319936
  store i32 %537, ptr %534, align 8
  %538 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %539 = getelementptr inbounds %struct.jc_test_fixture, ptr %538, i32 0, i32 4
  store ptr @.str.3, ptr %539, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store i32 0, ptr %45, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %540 = load ptr, ptr %5, align 8, !tbaa !5
  %541 = load ptr, ptr %43, align 8, !tbaa !5
  %542 = load ptr, ptr %33, align 8, !tbaa !5
  %543 = call i32 @Longtail_CreateMissingContent(ptr noundef %540, ptr noundef %541, ptr noundef %542, i32 noundef 32, i32 noundef 3, ptr noundef %44)
  store i32 %543, ptr %46, align 4, !tbaa !14
  %544 = 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) %45, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef @.str.46, ptr noundef @.str.412, ptr noundef null)
  %545 = icmp eq i32 %544, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br i1 %545, label %546, label %547

546:                                              ; preds = %532
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %912

547:                                              ; preds = %532
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548
  br label %550

550:                                              ; preds = %549
  %551 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %552 = getelementptr inbounds %struct.jc_test_fixture, ptr %551, i32 0, i32 11
  %553 = load i32, ptr %552, align 8
  %554 = and i32 %553, -16776961
  %555 = or i32 %554, 1322752
  store i32 %555, ptr %552, align 8
  %556 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %557 = getelementptr inbounds %struct.jc_test_fixture, ptr %556, i32 0, i32 4
  store ptr @.str.3, ptr %557, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  store i32 0, ptr %47, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  %558 = load ptr, ptr %3, align 8, !tbaa !5
  %559 = load ptr, ptr %16, align 8, !tbaa !5
  %560 = load ptr, ptr %7, align 8, !tbaa !5
  %561 = load ptr, ptr %44, align 8, !tbaa !5
  %562 = load ptr, ptr %33, align 8, !tbaa !5
  %563 = call i32 @Longtail_WriteContent(ptr noundef %558, ptr noundef %559, ptr noundef %560, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %561, ptr noundef %562, ptr noundef @.str.677)
  store i32 %563, ptr %48, align 4, !tbaa !14
  %564 = 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) %47, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef @.str.46, ptr noundef @.str.687, ptr noundef null)
  %565 = icmp eq i32 %564, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br i1 %565, label %566, label %567

566:                                              ; preds = %550
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %912

567:                                              ; preds = %550
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  %570 = load ptr, ptr %44, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %570)
  store ptr null, ptr %44, align 8, !tbaa !5
  %571 = load ptr, ptr %43, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %571)
  store ptr null, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  br label %572

572:                                              ; preds = %569
  %573 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %574 = getelementptr inbounds %struct.jc_test_fixture, ptr %573, i32 0, i32 11
  %575 = load i32, ptr %574, align 8
  %576 = and i32 %575, -16776961
  %577 = or i32 %576, 1325568
  store i32 %577, ptr %574, align 8
  %578 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %579 = getelementptr inbounds %struct.jc_test_fixture, ptr %578, i32 0, i32 4
  store ptr @.str.3, ptr %579, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 0, ptr %50, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  %580 = load ptr, ptr %5, align 8, !tbaa !5
  %581 = load ptr, ptr %40, align 8, !tbaa !5
  %582 = load ptr, ptr %33, align 8, !tbaa !5
  %583 = call i32 @Longtail_CreateVersionDiff(ptr noundef %580, ptr noundef %581, ptr noundef %582, ptr noundef %49)
  store i32 %583, ptr %51, align 4, !tbaa !14
  %584 = 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) %50, ptr noundef nonnull align 4 dereferenceable(4) %51, ptr noundef @.str.46, ptr noundef @.str.688, ptr noundef null)
  %585 = icmp eq i32 %584, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br i1 %585, label %586, label %587

586:                                              ; preds = %572
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %911

587:                                              ; preds = %572
  br label %588

588:                                              ; preds = %587
  br label %589

589:                                              ; preds = %588
  br label %590

590:                                              ; preds = %589
  %591 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %592 = getelementptr inbounds %struct.jc_test_fixture, ptr %591, i32 0, i32 11
  %593 = load i32, ptr %592, align 8
  %594 = and i32 %593, -16776961
  %595 = or i32 %594, 1325824
  store i32 %595, ptr %592, align 8
  %596 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %597 = getelementptr inbounds %struct.jc_test_fixture, ptr %596, i32 0, i32 4
  store ptr @.str.3, ptr %597, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %598 = load ptr, ptr %49, align 8, !tbaa !5
  %599 = call noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_VersionDiffS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %598, ptr noundef @.str.489, ptr noundef @.str.490)
  %600 = icmp eq i32 %599, 0
  br i1 %600, label %601, label %602

601:                                              ; preds = %590
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %911

602:                                              ; preds = %590
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %605 = load ptr, ptr %33, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %605, i32 0, i32 4
  %607 = load ptr, ptr %606, align 8, !tbaa !27
  %608 = load i32, ptr %607, align 4, !tbaa !14
  %609 = zext i32 %608 to i64
  %610 = mul i64 8, %609
  %611 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %610)
  store ptr %611, ptr %53, align 8, !tbaa !5
  br label %612

612:                                              ; preds = %604
  %613 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %614 = getelementptr inbounds %struct.jc_test_fixture, ptr %613, i32 0, i32 11
  %615 = load i32, ptr %614, align 8
  %616 = and i32 %615, -16776961
  %617 = or i32 %616, 1327872
  store i32 %617, ptr %614, align 8
  %618 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %619 = getelementptr inbounds %struct.jc_test_fixture, ptr %618, i32 0, i32 4
  store ptr @.str.3, ptr %619, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  store i32 0, ptr %54, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  %620 = load ptr, ptr %33, align 8, !tbaa !5
  %621 = load ptr, ptr %49, align 8, !tbaa !5
  %622 = load ptr, ptr %53, align 8, !tbaa !5
  %623 = call i32 @Longtail_GetRequiredChunkHashes(ptr noundef %620, ptr noundef %621, ptr noundef %52, ptr noundef %622)
  store i32 %623, ptr %55, align 4, !tbaa !14
  %624 = 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) %54, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef @.str.46, ptr noundef @.str.689, ptr noundef null)
  %625 = icmp eq i32 %624, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br i1 %625, label %626, label %627

626:                                              ; preds = %612
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %910

627:                                              ; preds = %612
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628
  %630 = load ptr, ptr %16, align 8, !tbaa !5
  %631 = load i32, ptr %52, align 4, !tbaa !14
  %632 = load ptr, ptr %53, align 8, !tbaa !5
  %633 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %630, i32 noundef %631, ptr noundef %632, i32 noundef 0)
  store ptr %633, ptr %43, align 8, !tbaa !5
  %634 = load ptr, ptr %53, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %634)
  store ptr null, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %635 = call ptr @Longtail_CreateAtomicCancelAPI()
  store ptr %635, ptr %56, align 8, !tbaa !5
  br label %636

636:                                              ; preds = %629
  %637 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %638 = getelementptr inbounds %struct.jc_test_fixture, ptr %637, i32 0, i32 11
  %639 = load i32, ptr %638, align 8
  %640 = and i32 %639, -16776961
  %641 = or i32 %640, 1329664
  store i32 %641, ptr %638, align 8
  %642 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %643 = getelementptr inbounds %struct.jc_test_fixture, ptr %642, i32 0, i32 4
  store ptr @.str.3, ptr %643, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %644 = load ptr, ptr %56, align 8, !tbaa !5
  %645 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_CancelAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %644, ptr noundef @.str.628, ptr noundef @.str.629)
  %646 = icmp eq i32 %645, 0
  br i1 %646, label %647, label %648

647:                                              ; preds = %636
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %909

648:                                              ; preds = %636
  br label %649

649:                                              ; preds = %648
  br label %650

650:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 80, ptr %57) #7
  %651 = load ptr, ptr %16, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.BlockStoreProxy, ptr %57, i32 0, i32 1
  store ptr %651, ptr %652, align 8, !tbaa !30
  %653 = getelementptr inbounds %struct.BlockStoreProxy, ptr %57, i32 0, i32 2
  store volatile i32 2, ptr %653, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %654 = call ptr @Longtail_MakeBlockStoreAPI(ptr noundef %57, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy7DisposeEP12Longtail_API, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14PutStoredBlockEP22Longtail_BlockStoreAPIP20Longtail_StoredBlockP31Longtail_AsyncPutStoredBlockAPI, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy12PreflightGetEP22Longtail_BlockStoreAPIjPKmP33Longtail_AsyncPreflightStartedAPI, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14GetStoredBlockEP22Longtail_BlockStoreAPImP31Longtail_AsyncGetStoredBlockAPI, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy18GetExistingContentEP22Longtail_BlockStoreAPIjPKmjP35Longtail_AsyncGetExistingContentAPI, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy11PruneBlocksEP22Longtail_BlockStoreAPIjPKmP28Longtail_AsyncPruneBlocksAPI, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy8GetStatsEP22Longtail_BlockStoreAPIP25Longtail_BlockStore_Stats, ptr noundef @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy5FlushEP22Longtail_BlockStoreAPIP22Longtail_AsyncFlushAPI)
  store ptr %654, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  br label %655

655:                                              ; preds = %650
  %656 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %657 = getelementptr inbounds %struct.jc_test_fixture, ptr %656, i32 0, i32 11
  %658 = load i32, ptr %657, align 8
  %659 = and i32 %658, -16776961
  %660 = or i32 %659, 1352192
  store i32 %660, ptr %657, align 8
  %661 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %662 = getelementptr inbounds %struct.jc_test_fixture, ptr %661, i32 0, i32 4
  store ptr @.str.3, ptr %662, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  store i32 0, ptr %60, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  %663 = load ptr, ptr %56, align 8, !tbaa !5
  %664 = getelementptr inbounds %struct.Longtail_CancelAPI, ptr %663, i32 0, i32 1
  %665 = load ptr, ptr %664, align 8, !tbaa !34
  %666 = load ptr, ptr %56, align 8, !tbaa !5
  %667 = call noundef i32 %665(ptr noundef %666, ptr noundef %59)
  store i32 %667, ptr %61, align 4, !tbaa !14
  %668 = 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) %60, ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef @.str.46, ptr noundef @.str.630, ptr noundef null)
  %669 = icmp eq i32 %668, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br i1 %669, label %670, label %671

670:                                              ; preds = %655
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %732

671:                                              ; preds = %655
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  %675 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %676 = getelementptr inbounds %struct.jc_test_fixture, ptr %675, i32 0, i32 11
  %677 = load i32, ptr %676, align 8
  %678 = and i32 %677, -16776961
  %679 = or i32 %678, 1352448
  store i32 %679, ptr %676, align 8
  %680 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %681 = getelementptr inbounds %struct.jc_test_fixture, ptr %680, i32 0, i32 4
  store ptr @.str.3, ptr %681, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %682 = load ptr, ptr %59, align 8, !tbaa !5
  %683 = call noundef i32 @_Z14jc_test_cmp_NEIP30Longtail_CancelAPI_CancelTokenS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %682, ptr noundef @.str.631, ptr noundef @.str.632)
  %684 = icmp eq i32 %683, 0
  br i1 %684, label %685, label %686

685:                                              ; preds = %674
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %732

686:                                              ; preds = %674
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  %689 = load ptr, ptr %3, align 8, !tbaa !5
  %690 = load ptr, ptr %33, align 8, !tbaa !5
  %691 = load ptr, ptr %49, align 8, !tbaa !5
  %692 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef %689, ptr noundef %690, ptr noundef %691, ptr noundef @.str.470)
  store ptr %692, ptr %62, align 8, !tbaa !5
  br label %693

693:                                              ; preds = %688
  %694 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %695 = getelementptr inbounds %struct.jc_test_fixture, ptr %694, i32 0, i32 11
  %696 = load i32, ptr %695, align 8
  %697 = and i32 %696, -16776961
  %698 = or i32 %697, 1356800
  store i32 %698, ptr %695, align 8
  %699 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %700 = getelementptr inbounds %struct.jc_test_fixture, ptr %699, i32 0, i32 4
  store ptr @.str.3, ptr %700, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #7
  store i32 125, ptr %63, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  %701 = load ptr, ptr %58, align 8, !tbaa !5
  %702 = load ptr, ptr %3, align 8, !tbaa !5
  %703 = load ptr, ptr %62, align 8, !tbaa !5
  %704 = load ptr, ptr %5, align 8, !tbaa !5
  %705 = load ptr, ptr %7, align 8, !tbaa !5
  %706 = load ptr, ptr %56, align 8, !tbaa !5
  %707 = load ptr, ptr %59, align 8, !tbaa !5
  %708 = load ptr, ptr %43, align 8, !tbaa !5
  %709 = load ptr, ptr %40, align 8, !tbaa !5
  %710 = load ptr, ptr %33, align 8, !tbaa !5
  %711 = load ptr, ptr %49, align 8, !tbaa !5
  %712 = call i32 @Longtail_ChangeVersion2(ptr noundef %701, ptr noundef %702, ptr noundef %703, ptr noundef %704, ptr noundef %705, ptr noundef null, ptr noundef %706, ptr noundef %707, ptr noundef %708, ptr noundef %709, ptr noundef %710, ptr noundef %711, ptr noundef @.str.470, i32 noundef 1)
  store i32 %712, ptr %64, align 4, !tbaa !14
  %713 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %63, ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef @.str.635, ptr noundef @.str.690)
  %714 = icmp eq i32 %713, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  br i1 %714, label %715, label %716

715:                                              ; preds = %693
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %731

716:                                              ; preds = %693
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717
  %719 = load ptr, ptr %62, align 8, !tbaa !5
  %720 = icmp ne ptr %719, null
  br i1 %720, label %721, label %724

721:                                              ; preds = %718
  %722 = load ptr, ptr %62, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.Longtail_ConcurrentChunkWriteAPI, ptr %722, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %723)
  br label %724

724:                                              ; preds = %721, %718
  %725 = load ptr, ptr %56, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.Longtail_CancelAPI, ptr %725, i32 0, i32 4
  %727 = load ptr, ptr %726, align 8, !tbaa !36
  %728 = load ptr, ptr %56, align 8, !tbaa !5
  %729 = load ptr, ptr %59, align 8, !tbaa !5
  %730 = call noundef i32 %727(ptr noundef %728, ptr noundef %729)
  store i32 0, ptr %11, align 4
  br label %731

731:                                              ; preds = %724, %715
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  br label %732

732:                                              ; preds = %731, %685, %670
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  %733 = load i32, ptr %11, align 4
  switch i32 %733, label %908 [
    i32 0, label %734
  ]

734:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  store i32 0, ptr %65, align 4, !tbaa !14
  br label %735

735:                                              ; preds = %826, %734
  %736 = load i32, ptr %65, align 4, !tbaa !14
  %737 = icmp slt i32 %736, 2147483647
  br i1 %737, label %739, label %738

738:                                              ; preds = %735
  store i32 53, ptr %11, align 4
  br label %829

739:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 56, ptr %66) #7
  %740 = load ptr, ptr %56, align 8, !tbaa !5
  %741 = load i32, ptr %65, align 4, !tbaa !14
  call void @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN13TestCancelAPIC2EP18Longtail_CancelAPIi(ptr noundef nonnull align 8 dereferenceable(56) %66, ptr noundef %740, i32 noundef %741)
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  br label %742

742:                                              ; preds = %739
  %743 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %744 = getelementptr inbounds %struct.jc_test_fixture, ptr %743, i32 0, i32 11
  %745 = load i32, ptr %744, align 8
  %746 = and i32 %745, -16776961
  %747 = or i32 %746, 1371648
  store i32 %747, ptr %744, align 8
  %748 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %749 = getelementptr inbounds %struct.jc_test_fixture, ptr %748, i32 0, i32 4
  store ptr @.str.3, ptr %749, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #7
  store i32 0, ptr %68, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  %750 = getelementptr inbounds %struct.TestCancelAPI, ptr %66, i32 0, i32 0
  %751 = getelementptr inbounds %struct.Longtail_CancelAPI, ptr %750, i32 0, i32 1
  %752 = load ptr, ptr %751, align 8, !tbaa !37
  %753 = getelementptr inbounds %struct.TestCancelAPI, ptr %66, i32 0, i32 0
  %754 = call noundef i32 %752(ptr noundef %753, ptr noundef %67)
  store i32 %754, ptr %69, align 4, !tbaa !14
  %755 = 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) %68, ptr noundef nonnull align 4 dereferenceable(4) %69, ptr noundef @.str.46, ptr noundef @.str.691, ptr noundef null)
  %756 = icmp eq i32 %755, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  br i1 %756, label %757, label %758

757:                                              ; preds = %742
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %824

758:                                              ; preds = %742
  br label %759

759:                                              ; preds = %758
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  %762 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %763 = getelementptr inbounds %struct.jc_test_fixture, ptr %762, i32 0, i32 11
  %764 = load i32, ptr %763, align 8
  %765 = and i32 %764, -16776961
  %766 = or i32 %765, 1371904
  store i32 %766, ptr %763, align 8
  %767 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %768 = getelementptr inbounds %struct.jc_test_fixture, ptr %767, i32 0, i32 4
  store ptr @.str.3, ptr %768, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %769 = load ptr, ptr %67, align 8, !tbaa !5
  %770 = call noundef i32 @_Z14jc_test_cmp_NEIP30Longtail_CancelAPI_CancelTokenS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %769, ptr noundef @.str.631, ptr noundef @.str.632)
  %771 = icmp eq i32 %770, 0
  br i1 %771, label %772, label %773

772:                                              ; preds = %761
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %824

773:                                              ; preds = %761
  br label %774

774:                                              ; preds = %773
  br label %775

775:                                              ; preds = %774
  %776 = getelementptr inbounds %struct.BlockStoreProxy, ptr %57, i32 0, i32 2
  store volatile i32 2147483647, ptr %776, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  %777 = load ptr, ptr %3, align 8, !tbaa !5
  %778 = load ptr, ptr %33, align 8, !tbaa !5
  %779 = load ptr, ptr %49, align 8, !tbaa !5
  %780 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef %777, ptr noundef %778, ptr noundef %779, ptr noundef @.str.470)
  store ptr %780, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  %781 = load ptr, ptr %58, align 8, !tbaa !5
  %782 = load ptr, ptr %3, align 8, !tbaa !5
  %783 = load ptr, ptr %70, align 8, !tbaa !5
  %784 = load ptr, ptr %5, align 8, !tbaa !5
  %785 = load ptr, ptr %7, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.TestCancelAPI, ptr %66, i32 0, i32 0
  %787 = load ptr, ptr %67, align 8, !tbaa !5
  %788 = load ptr, ptr %43, align 8, !tbaa !5
  %789 = load ptr, ptr %40, align 8, !tbaa !5
  %790 = load ptr, ptr %33, align 8, !tbaa !5
  %791 = load ptr, ptr %49, align 8, !tbaa !5
  %792 = call i32 @Longtail_ChangeVersion2(ptr noundef %781, ptr noundef %782, ptr noundef %783, ptr noundef %784, ptr noundef %785, ptr noundef null, ptr noundef %786, ptr noundef %787, ptr noundef %788, ptr noundef %789, ptr noundef %790, ptr noundef %791, ptr noundef @.str.470, i32 noundef 1)
  store i32 %792, ptr %71, align 4, !tbaa !14
  %793 = load ptr, ptr %70, align 8, !tbaa !5
  %794 = icmp ne ptr %793, null
  br i1 %794, label %795, label %798

795:                                              ; preds = %775
  %796 = load ptr, ptr %70, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.Longtail_ConcurrentChunkWriteAPI, ptr %796, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %797)
  br label %798

798:                                              ; preds = %795, %775
  %799 = getelementptr inbounds %struct.TestCancelAPI, ptr %66, i32 0, i32 0
  %800 = getelementptr inbounds %struct.Longtail_CancelAPI, ptr %799, i32 0, i32 4
  %801 = load ptr, ptr %800, align 8, !tbaa !39
  %802 = getelementptr inbounds %struct.TestCancelAPI, ptr %66, i32 0, i32 0
  %803 = load ptr, ptr %67, align 8, !tbaa !5
  %804 = call noundef i32 %801(ptr noundef %802, ptr noundef %803)
  %805 = load i32, ptr %71, align 4, !tbaa !14
  %806 = icmp eq i32 %805, 125
  br i1 %806, label %807, label %808

807:                                              ; preds = %798
  store i32 55, ptr %11, align 4
  br label %823

808:                                              ; preds = %798
  br label %809

809:                                              ; preds = %808
  %810 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %811 = getelementptr inbounds %struct.jc_test_fixture, ptr %810, i32 0, i32 11
  %812 = load i32, ptr %811, align 8
  %813 = and i32 %812, -16776961
  %814 = or i32 %813, 1378304
  store i32 %814, ptr %811, align 8
  %815 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %816 = getelementptr inbounds %struct.jc_test_fixture, ptr %815, i32 0, i32 4
  store ptr @.str.3, ptr %816, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  store i32 0, ptr %72, align 4, !tbaa !14
  %817 = 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) %72, ptr noundef nonnull align 4 dereferenceable(4) %71, ptr noundef @.str.46, ptr noundef @.str.616, ptr noundef null)
  %818 = icmp eq i32 %817, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br i1 %818, label %819, label %820

819:                                              ; preds = %809
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %11, align 4
  br label %823

820:                                              ; preds = %809
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  store i32 53, ptr %11, align 4
  br label %823

823:                                              ; preds = %822, %819, %807
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #7
  br label %824

824:                                              ; preds = %823, %772, %757
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %66) #7
  %825 = load i32, ptr %11, align 4
  switch i32 %825, label %829 [
    i32 55, label %826
  ]

826:                                              ; preds = %824
  %827 = load i32, ptr %65, align 4, !tbaa !14
  %828 = add nsw i32 %827, 1
  store i32 %828, ptr %65, align 4, !tbaa !14
  br label %735, !llvm.loop !40

829:                                              ; preds = %824, %738
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  %830 = load i32, ptr %11, align 4
  switch i32 %830, label %908 [
    i32 53, label %831
  ]

831:                                              ; preds = %829
  %832 = load ptr, ptr %58, align 8, !tbaa !5
  %833 = icmp ne ptr %832, null
  br i1 %833, label %834, label %837

834:                                              ; preds = %831
  %835 = load ptr, ptr %58, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %835, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %836)
  br label %837

837:                                              ; preds = %834, %831
  %838 = load ptr, ptr %56, align 8, !tbaa !5
  %839 = icmp ne ptr %838, null
  br i1 %839, label %840, label %843

840:                                              ; preds = %837
  %841 = load ptr, ptr %56, align 8, !tbaa !5
  %842 = getelementptr inbounds %struct.Longtail_CancelAPI, ptr %841, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %842)
  br label %843

843:                                              ; preds = %840, %837
  %844 = load ptr, ptr %43, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %844)
  %845 = load ptr, ptr %49, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %845)
  %846 = load ptr, ptr %40, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %846)
  %847 = load ptr, ptr %33, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %847)
  %848 = load ptr, ptr %16, align 8, !tbaa !5
  %849 = icmp ne ptr %848, null
  br i1 %849, label %850, label %853

850:                                              ; preds = %843
  %851 = load ptr, ptr %16, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %851, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %852)
  br label %853

853:                                              ; preds = %850, %843
  %854 = load ptr, ptr %15, align 8, !tbaa !5
  %855 = icmp ne ptr %854, null
  br i1 %855, label %856, label %859

856:                                              ; preds = %853
  %857 = load ptr, ptr %15, align 8, !tbaa !5
  %858 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %857, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %858)
  br label %859

859:                                              ; preds = %856, %853
  %860 = load ptr, ptr %14, align 8, !tbaa !5
  %861 = icmp ne ptr %860, null
  br i1 %861, label %862, label %865

862:                                              ; preds = %859
  %863 = load ptr, ptr %14, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %863, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %864)
  br label %865

865:                                              ; preds = %862, %859
  %866 = load ptr, ptr %13, align 8, !tbaa !5
  %867 = icmp ne ptr %866, null
  br i1 %867, label %868, label %871

868:                                              ; preds = %865
  %869 = load ptr, ptr %13, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %869, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %870)
  br label %871

871:                                              ; preds = %868, %865
  %872 = load ptr, ptr %12, align 8, !tbaa !5
  %873 = icmp ne ptr %872, null
  br i1 %873, label %874, label %877

874:                                              ; preds = %871
  %875 = load ptr, ptr %12, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %875, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %876)
  br label %877

877:                                              ; preds = %874, %871
  %878 = load ptr, ptr %7, align 8, !tbaa !5
  %879 = icmp ne ptr %878, null
  br i1 %879, label %880, label %883

880:                                              ; preds = %877
  %881 = load ptr, ptr %7, align 8, !tbaa !5
  %882 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %881, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %882)
  br label %883

883:                                              ; preds = %880, %877
  %884 = load ptr, ptr %5, align 8, !tbaa !5
  %885 = icmp ne ptr %884, null
  br i1 %885, label %886, label %889

886:                                              ; preds = %883
  %887 = load ptr, ptr %5, align 8, !tbaa !5
  %888 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %887, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %888)
  br label %889

889:                                              ; preds = %886, %883
  %890 = load ptr, ptr %6, align 8, !tbaa !5
  %891 = icmp ne ptr %890, null
  br i1 %891, label %892, label %895

892:                                              ; preds = %889
  %893 = load ptr, ptr %6, align 8, !tbaa !5
  %894 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %893, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %894)
  br label %895

895:                                              ; preds = %892, %889
  %896 = load ptr, ptr %4, align 8, !tbaa !5
  %897 = icmp ne ptr %896, null
  br i1 %897, label %898, label %901

898:                                              ; preds = %895
  %899 = load ptr, ptr %4, align 8, !tbaa !5
  %900 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %899, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %900)
  br label %901

901:                                              ; preds = %898, %895
  %902 = load ptr, ptr %3, align 8, !tbaa !5
  %903 = icmp ne ptr %902, null
  br i1 %903, label %904, label %907

904:                                              ; preds = %901
  %905 = load ptr, ptr %3, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %905, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %906)
  br label %907

907:                                              ; preds = %904, %901
  store i32 0, ptr %11, align 4
  br label %908

908:                                              ; preds = %907, %829, %732
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 80, ptr %57) #7
  br label %909

909:                                              ; preds = %908, %647
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %910

910:                                              ; preds = %909, %626
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %911

911:                                              ; preds = %910, %601, %586
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %912

912:                                              ; preds = %911, %566, %546
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %913

913:                                              ; preds = %912, %517, %502
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %914

914:                                              ; preds = %913, %481
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  br label %915

915:                                              ; preds = %914, %463, %448
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %916

916:                                              ; preds = %915, %429, %414
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  br label %917

917:                                              ; preds = %916, %393
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %918

918:                                              ; preds = %917, %374, %359
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  br label %919

919:                                              ; preds = %918, %343
  call void @llvm.lifetime.end.p0(i64 44, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 176, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 176, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 176, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  br label %920

920:                                              ; preds = %919, %92
  call void @llvm.lifetime.end.p0(i64 256, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #7
  %921 = load i32, ptr %11, align 4
  switch i32 %921, label %923 [
    i32 0, label %922
    i32 1, label %922
  ]

922:                                              ; preds = %920, %920
  ret void

923:                                              ; preds = %920
  unreachable
}

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy7DisposeEP12Longtail_API(ptr noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14PutStoredBlockEP22Longtail_BlockStoreAPIP20Longtail_StoredBlockP31Longtail_AsyncPutStoredBlockAPI(ptr noundef, ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy12PreflightGetEP22Longtail_BlockStoreAPIjPKmP33Longtail_AsyncPreflightStartedAPI(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14GetStoredBlockEP22Longtail_BlockStoreAPImP31Longtail_AsyncGetStoredBlockAPI(ptr noundef, i64 noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy18GetExistingContentEP22Longtail_BlockStoreAPIjPKmjP35Longtail_AsyncGetExistingContentAPI(ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy11PruneBlocksEP22Longtail_BlockStoreAPIjPKmP28Longtail_AsyncPruneBlocksAPI(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy8GetStatsEP22Longtail_BlockStoreAPIP25Longtail_BlockStore_Stats(ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy5FlushEP22Longtail_BlockStoreAPIP22Longtail_AsyncFlushAPI(ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN13TestCancelAPIC2EP18Longtail_CancelAPIi(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, i32 noundef) unnamed_addr #4 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { 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 #3 = { nounwind willreturn memory(read) "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 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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { 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 #7 = { nounwind }
attributes #8 = { nounwind willreturn memory(read) }

!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 32}
!10 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !11, i64 64, !12, i64 88, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 92, !12, i64 96, !12, i64 97, !12, i64 99, !12, i64 100}
!11 = !{!"_ZTS13jc_test_stats", !12, i64 0, !12, i64 4, !12, i64 6, !12, i64 8, !12, i64 12, !13, i64 16}
!12 = !{!"int", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !12, i64 0}
!15 = !{!13, !13, i64 0}
!16 = !{!17, !6, i64 96}
!17 = !{!"_ZTS19Longtail_StorageAPI", !18, 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}
!18 = !{!"_ZTS12Longtail_API", !6, i64 0}
!19 = !{!17, !6, i64 32}
!20 = !{!17, !6, i64 40}
!21 = !{!17, !6, i64 72}
!22 = !{!17, !6, i64 56}
!23 = !{!24, !24, i64 0}
!24 = !{!"short", !7, i64 0}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!28, !6, i64 32}
!28 = !{!"_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, !12, i64 128, !6, i64 136, !6, i64 144}
!29 = !{!28, !6, i64 96}
!30 = !{!31, !6, i64 64}
!31 = !{!"_ZTSZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvE15BlockStoreProxy", !32, i64 0, !6, i64 64, !12, i64 72}
!32 = !{!"_ZTS22Longtail_BlockStoreAPI", !18, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56}
!33 = !{!31, !12, i64 72}
!34 = !{!35, !6, i64 8}
!35 = !{!"_ZTS18Longtail_CancelAPI", !18, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!36 = !{!35, !6, i64 32}
!37 = !{!38, !6, i64 8}
!38 = !{!"_ZTSZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvE13TestCancelAPI", !35, i64 0, !6, i64 40, !12, i64 48, !12, i64 52}
!39 = !{!38, !6, i64 32}
!40 = distinct !{!40, !26}


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

%class.TestAsyncBlockStore = type { %struct.Longtail_BlockStoreAPI, ptr, ptr, i32, ptr, ptr, ptr, [8 x ptr], i32, ptr, i64, ptr, i64, ptr, i64, ptr, ptr, ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }
%struct.BlockStoreProxy = type { %struct.Longtail_BlockStoreAPI, ptr, i32 }
%struct.TestCancelAPI = type { %struct.Longtail_CancelAPI, ptr, i32, i32 }
%struct.Longtail_CancelAPI = type { %struct.Longtail_API, ptr, ptr, ptr, 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.253 = external hidden unnamed_addr constant [23 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.386 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.470 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.489 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.490 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.601 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.616 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.628 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.629 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.631 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.632 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.635 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [75 x i8], align 1
@__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_FILENAMES = external hidden unnamed_addr constant [22 x ptr], align 16
@__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS = external hidden unnamed_addr constant [22 x ptr], align 16
@__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_PERMISSIONS = external hidden unnamed_addr constant [22 x i16], align 16
@.str.677 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.678 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.679 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.680 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.681 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.682 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.683 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.684 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.685 = external hidden unnamed_addr constant [164 x i8], align 1
@.str.686 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.687 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.688 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.689 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.690 = external hidden unnamed_addr constant [202 x i8], align 1
@.str.691 = external hidden unnamed_addr constant [69 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

declare ptr @Longtail_Alloc(ptr noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @_ZL19jc_test_get_fixturev() local_unnamed_addr #2

declare void @_Z28jc_test_increment_assertionsv() local_unnamed_addr #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) local_unnamed_addr #1

declare void @Longtail_Free(ptr noundef) local_unnamed_addr #1

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

declare i32 @Longtail_GetLZ4DefaultQuality() local_unnamed_addr #1

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #3

; 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 #4 align 2

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #1

declare ptr @Longtail_CreateHPCDCChunkerAPI() local_unnamed_addr #1

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

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

; 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 #4

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

; 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 #4

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 #1

; 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 #4

declare ptr @Longtail_CreateInMemStorageAPI() local_unnamed_addr #1

declare ptr @Longtail_CreateFullCompressionRegistry() local_unnamed_addr #1

declare ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

; 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 #4 align 2

declare ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

declare i32 @Longtail_CreateMissingContent(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

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 #1

declare i32 @Longtail_GetRequiredChunkHashes(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @Longtail_CreateVersionDiff(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @Longtail_ChangeVersion2(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

declare ptr @Longtail_MakeBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateAtomicCancelAPI() local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #4 align 2 {
  %2 = alloca %class.TestAsyncBlockStore, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca [22 x i64], align 16
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %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 i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %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 = alloca %struct.BlockStoreProxy, align 8
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.TestCancelAPI, align 8
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %47 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %48 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %49 = tail call ptr @Longtail_CreateHPCDCChunkerAPI()
  %50 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 32, i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %2) #6
  %51 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %52 = getelementptr inbounds i8, ptr %51, i64 96
  %53 = load i32, ptr %52, align 8
  %54 = and i32 %53, -16776961
  %55 = or disjoint i32 %54, 1240320
  store i32 %55, ptr %52, align 8
  %56 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %57 = getelementptr inbounds i8, ptr %56, i64 32
  store ptr @.str.3, ptr %57, align 8, !tbaa !5
  tail call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #6
  store i32 0, ptr %3, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #6
  %58 = call noundef i32 @_ZN19TestAsyncBlockStore14InitBlockStoreEPS_P16Longtail_HashAPIP15Longtail_JobAPI(ptr noundef nonnull %2, ptr noundef %48, ptr noundef %50)
  store i32 %58, ptr %4, align 4, !tbaa !13
  %59 = 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) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.652, ptr noundef null)
  %60 = icmp eq i32 %59, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br i1 %60, label %61, label %62

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

62:                                               ; preds = %1
  %63 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %50, ptr noundef %46, ptr noundef nonnull @.str.601, ptr noundef null, i32 noundef 0)
  %64 = call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %50, ptr noundef %63, ptr noundef nonnull %2)
  %65 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef nonnull %2, ptr noundef %47)
  %66 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %64, ptr noundef %47)
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %5) #6
  %67 = load ptr, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, align 16, !tbaa !14
  %68 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %67) #7
  %69 = add i64 %68, 1
  store i64 %69, ptr %5, align 16, !tbaa !15
  %70 = getelementptr inbounds i8, ptr %5, i64 8
  %71 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 8), align 8, !tbaa !14
  %72 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %71) #7
  %73 = add i64 %72, 1
  store i64 %73, ptr %70, align 8, !tbaa !15
  %74 = getelementptr inbounds i8, ptr %5, i64 16
  %75 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 16), align 16, !tbaa !14
  %76 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %75) #7
  %77 = add i64 %76, 1
  store i64 %77, ptr %74, align 16, !tbaa !15
  %78 = getelementptr inbounds i8, ptr %5, i64 24
  %79 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 24), align 8, !tbaa !14
  %80 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %79) #7
  %81 = add i64 %80, 1
  store i64 %81, ptr %78, align 8, !tbaa !15
  %82 = getelementptr inbounds i8, ptr %5, i64 32
  %83 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 32), align 16, !tbaa !14
  %84 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %83) #7
  %85 = add i64 %84, 1
  store i64 %85, ptr %82, align 16, !tbaa !15
  %86 = getelementptr inbounds i8, ptr %5, i64 40
  %87 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 40), align 8, !tbaa !14
  %88 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %87) #7
  %89 = add i64 %88, 1
  store i64 %89, ptr %86, align 8, !tbaa !15
  %90 = getelementptr inbounds i8, ptr %5, i64 48
  %91 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 48), align 16, !tbaa !14
  %92 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %91) #7
  %93 = add i64 %92, 1
  store i64 %93, ptr %90, align 16, !tbaa !15
  %94 = getelementptr inbounds i8, ptr %5, i64 56
  %95 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 56), align 8, !tbaa !14
  %96 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %95) #7
  %97 = add i64 %96, 1
  store i64 %97, ptr %94, align 8, !tbaa !15
  %98 = getelementptr inbounds i8, ptr %5, i64 64
  %99 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 64), align 16, !tbaa !14
  %100 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %99) #7
  %101 = add i64 %100, 1
  store i64 %101, ptr %98, align 16, !tbaa !15
  %102 = getelementptr inbounds i8, ptr %5, i64 72
  %103 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 72), align 8, !tbaa !14
  %104 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %103) #7
  %105 = add i64 %104, 1
  store i64 %105, ptr %102, align 8, !tbaa !15
  %106 = getelementptr inbounds i8, ptr %5, i64 80
  %107 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 80), align 16, !tbaa !14
  %108 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %107) #7
  %109 = add i64 %108, 1
  store i64 %109, ptr %106, align 16, !tbaa !15
  %110 = getelementptr inbounds i8, ptr %5, i64 88
  %111 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 88), align 8, !tbaa !14
  %112 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %111) #7
  %113 = add i64 %112, 1
  store i64 %113, ptr %110, align 8, !tbaa !15
  %114 = getelementptr inbounds i8, ptr %5, i64 96
  %115 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 96), align 16, !tbaa !14
  %116 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %115) #7
  %117 = add i64 %116, 1
  store i64 %117, ptr %114, align 16, !tbaa !15
  %118 = getelementptr inbounds i8, ptr %5, i64 104
  %119 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 104), align 8, !tbaa !14
  %120 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %119) #7
  %121 = add i64 %120, 1
  store i64 %121, ptr %118, align 8, !tbaa !15
  %122 = getelementptr inbounds i8, ptr %5, i64 112
  %123 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 112), align 16, !tbaa !14
  %124 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %123) #7
  %125 = add i64 %124, 1
  store i64 %125, ptr %122, align 16, !tbaa !15
  %126 = getelementptr inbounds i8, ptr %5, i64 120
  %127 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 120), align 8, !tbaa !14
  %128 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %127) #7
  %129 = add i64 %128, 1
  store i64 %129, ptr %126, align 8, !tbaa !15
  %130 = getelementptr inbounds i8, ptr %5, i64 128
  %131 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 128), align 16, !tbaa !14
  %132 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %131) #7
  %133 = add i64 %132, 1
  store i64 %133, ptr %130, align 16, !tbaa !15
  %134 = getelementptr inbounds i8, ptr %5, i64 136
  %135 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 136), align 8, !tbaa !14
  %136 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %135) #7
  %137 = add i64 %136, 1
  store i64 %137, ptr %134, align 8, !tbaa !15
  %138 = getelementptr inbounds i8, ptr %5, i64 144
  %139 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 144), align 16, !tbaa !14
  %140 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %139) #7
  %141 = add i64 %140, 1
  store i64 %141, ptr %138, align 16, !tbaa !15
  %142 = getelementptr inbounds i8, ptr %5, i64 152
  %143 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 152), align 8, !tbaa !14
  %144 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %143) #7
  %145 = add i64 %144, 1
  store i64 %145, ptr %142, align 8, !tbaa !15
  %146 = getelementptr inbounds i8, ptr %5, i64 160
  %147 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 160), align 16, !tbaa !14
  %148 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %147) #7
  %149 = add i64 %148, 1
  store i64 %149, ptr %146, align 16, !tbaa !15
  %150 = getelementptr inbounds i8, ptr %5, i64 168
  %151 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 168), align 8, !tbaa !14
  %152 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %151) #7
  %153 = add i64 %152, 1
  store i64 %153, ptr %150, align 8, !tbaa !15
  %154 = getelementptr inbounds i8, ptr %46, i64 96
  %155 = getelementptr inbounds i8, ptr %46, i64 32
  %156 = getelementptr inbounds i8, ptr %46, i64 40
  %157 = getelementptr inbounds i8, ptr %46, i64 72
  %158 = getelementptr inbounds i8, ptr %46, i64 56
  br label %159

159:                                              ; preds = %62, %215
  %indvars.iv = phi i64 [ 0, %62 ], [ %indvars.iv.next, %215 ]
  %160 = load ptr, ptr %154, align 8, !tbaa !16
  %161 = getelementptr inbounds [22 x ptr], ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_FILENAMES, i64 0, i64 %indvars.iv
  %162 = load ptr, ptr %161, align 8, !tbaa !14
  %163 = call noundef ptr %160(ptr noundef %46, ptr noundef nonnull @.str.677, ptr noundef %162)
  %164 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %165 = getelementptr inbounds i8, ptr %164, i64 96
  %166 = load i32, ptr %165, align 8
  %167 = and i32 %166, -16776961
  %168 = or disjoint i32 %167, 1300736
  store i32 %168, ptr %165, align 8
  %169 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %170 = getelementptr inbounds i8, ptr %169, i64 32
  store ptr @.str.3, ptr %170, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %171 = call noundef i32 @_ZL16CreateParentPathP19Longtail_StorageAPIPKc(ptr noundef %46, ptr noundef %163)
  %172 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %171, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.386)
  %173 = icmp eq i32 %172, 0
  br i1 %173, label %.thread, label %174

.thread:                                          ; preds = %159
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %582

174:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  %175 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %176 = getelementptr inbounds i8, ptr %175, i64 96
  %177 = load i32, ptr %176, align 8
  %178 = and i32 %177, -16776961
  %179 = or disjoint i32 %178, 1301248
  store i32 %179, ptr %176, align 8
  %180 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %181 = getelementptr inbounds i8, ptr %180, i64 32
  store ptr @.str.3, ptr %181, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  store i32 0, ptr %7, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  %182 = load ptr, ptr %155, align 8, !tbaa !19
  %183 = call noundef i32 %182(ptr noundef nonnull %46, ptr noundef %163, i64 noundef 0, ptr noundef nonnull %6)
  store i32 %183, ptr %8, align 4, !tbaa !13
  %184 = 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) %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.387, ptr noundef null)
  %185 = icmp eq i32 %184, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  br i1 %185, label %.thread159, label %186

186:                                              ; preds = %174
  %187 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %188 = getelementptr inbounds i8, ptr %187, i64 96
  %189 = load i32, ptr %188, align 8
  %190 = and i32 %189, -16776961
  %191 = or disjoint i32 %190, 1301504
  store i32 %191, ptr %188, align 8
  %192 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %193 = getelementptr inbounds i8, ptr %192, i64 32
  store ptr @.str.3, ptr %193, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %194 = load ptr, ptr %6, align 8, !tbaa !14
  %195 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %194, ptr noundef nonnull @.str.388, ptr noundef nonnull @.str.389)
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %.thread159, label %197

197:                                              ; preds = %186
  %198 = getelementptr inbounds [22 x i64], ptr %5, i64 0, i64 %indvars.iv
  %199 = load i64, ptr %198, align 8, !tbaa !15
  %.not = icmp eq i64 %199, 0
  br i1 %.not, label %215, label %200

200:                                              ; preds = %197
  %201 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %202 = getelementptr inbounds i8, ptr %201, i64 96
  %203 = load i32, ptr %202, align 8
  %204 = and i32 %203, -16776961
  %205 = or disjoint i32 %204, 1302272
  store i32 %205, ptr %202, align 8
  %206 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %207 = getelementptr inbounds i8, ptr %206, i64 32
  store ptr @.str.3, ptr %207, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  store i32 0, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  %208 = load ptr, ptr %156, align 8, !tbaa !20
  %209 = load ptr, ptr %6, align 8, !tbaa !14
  %210 = getelementptr inbounds [22 x ptr], ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_STRINGS, i64 0, i64 %indvars.iv
  %211 = load ptr, ptr %210, align 8, !tbaa !14
  %212 = call noundef i32 %208(ptr noundef nonnull %46, ptr noundef %209, i64 noundef 0, i64 noundef %199, ptr noundef %211)
  store i32 %212, ptr %10, align 4, !tbaa !13
  %213 = 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) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.390, ptr noundef null)
  %214 = icmp eq i32 %213, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  br i1 %214, label %.thread159, label %215

.thread159:                                       ; preds = %200, %186, %174
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  br label %582

215:                                              ; preds = %200, %197
  %216 = load ptr, ptr %157, align 8, !tbaa !21
  %217 = load ptr, ptr %6, align 8, !tbaa !14
  call void %216(ptr noundef nonnull %46, ptr noundef %217)
  store ptr null, ptr %6, align 8, !tbaa !14
  %218 = load ptr, ptr %158, align 8, !tbaa !22
  %219 = getelementptr inbounds [22 x i16], ptr @__const._ZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEv.TEST_PERMISSIONS, i64 0, i64 %indvars.iv
  %220 = load i16, ptr %219, align 2, !tbaa !23
  %221 = call noundef i32 %218(ptr noundef nonnull %46, ptr noundef %163, i16 noundef zeroext %220)
  call void @Longtail_Free(ptr noundef %163)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp eq i64 %indvars.iv.next, 22
  br i1 %exitcond, label %.critedge, label %159, !llvm.loop !25

.critedge:                                        ; preds = %215
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  %222 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %223 = getelementptr inbounds i8, ptr %222, i64 96
  %224 = load i32, ptr %223, align 8
  %225 = and i32 %224, -16776961
  %226 = or disjoint i32 %225, 1304576
  store i32 %226, ptr %223, align 8
  %227 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %228 = getelementptr inbounds i8, ptr %227, i64 32
  store ptr @.str.3, ptr %228, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  store i32 0, ptr %12, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  %229 = call i32 @Longtail_GetFilesRecursively2(ptr noundef nonnull %46, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.677, ptr noundef nonnull %11)
  store i32 %229, ptr %13, align 4, !tbaa !13
  %230 = 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) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.678, ptr noundef null)
  %231 = icmp eq i32 %230, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  br i1 %231, label %232, label %233

232:                                              ; preds = %.critedge
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %581

233:                                              ; preds = %.critedge
  %234 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %235 = getelementptr inbounds i8, ptr %234, i64 96
  %236 = load i32, ptr %235, align 8
  %237 = and i32 %236, -16776961
  %238 = or disjoint i32 %237, 1304832
  store i32 %238, ptr %235, align 8
  %239 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %240 = getelementptr inbounds i8, ptr %239, i64 32
  store ptr @.str.3, ptr %240, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %241 = load ptr, ptr %11, align 8, !tbaa !14
  %242 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %241, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.679)
  %243 = icmp eq i32 %242, 0
  br i1 %243, label %244, label %245

244:                                              ; preds = %233
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %581

245:                                              ; preds = %233
  %246 = load ptr, ptr %11, align 8, !tbaa !14
  %247 = call i32 @Longtail_GetLZ4DefaultQuality()
  %248 = call noundef ptr @_ZL12SetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfosj(ptr noundef nonnull %46, ptr noundef %246, i32 noundef %247)
  %249 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %250 = getelementptr inbounds i8, ptr %249, i64 96
  %251 = load i32, ptr %250, align 8
  %252 = and i32 %251, -16776961
  %253 = or disjoint i32 %252, 1305344
  store i32 %253, ptr %250, align 8
  %254 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %255 = getelementptr inbounds i8, ptr %254, i64 32
  store ptr @.str.3, ptr %255, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %256 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %248, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.256)
  %257 = icmp eq i32 %256, 0
  br i1 %257, label %258, label %259

258:                                              ; preds = %245
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %581

259:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  %260 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %261 = getelementptr inbounds i8, ptr %260, i64 96
  %262 = load i32, ptr %261, align 8
  %263 = and i32 %262, -16776961
  %264 = or disjoint i32 %263, 1309184
  store i32 %264, ptr %261, align 8
  %265 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %266 = getelementptr inbounds i8, ptr %265, i64 32
  store ptr @.str.3, ptr %266, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  store i32 0, ptr %15, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  %267 = load ptr, ptr %11, align 8, !tbaa !14
  %268 = call i32 @Longtail_CreateVersionIndex(ptr noundef nonnull %46, ptr noundef %48, ptr noundef %49, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.677, ptr noundef %267, ptr noundef %248, i32 noundef 16, i32 noundef 0, ptr noundef nonnull %14)
  store i32 %268, ptr %16, align 4, !tbaa !13
  %269 = 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 nonnull @.str.46, ptr noundef nonnull @.str.680, ptr noundef null)
  %270 = icmp eq i32 %269, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  br i1 %270, label %271, label %272

271:                                              ; preds = %259
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %580

272:                                              ; preds = %259
  %273 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %274 = getelementptr inbounds i8, ptr %273, i64 96
  %275 = load i32, ptr %274, align 8
  %276 = and i32 %275, -16776961
  %277 = or disjoint i32 %276, 1309440
  store i32 %277, ptr %274, align 8
  %278 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %279 = getelementptr inbounds i8, ptr %278, i64 32
  store ptr @.str.3, ptr %279, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %280 = load ptr, ptr %14, align 8, !tbaa !14
  %281 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %280, ptr noundef nonnull @.str.259, ptr noundef nonnull @.str.260)
  %282 = icmp eq i32 %281, 0
  br i1 %282, label %283, label %284

283:                                              ; preds = %272
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %580

284:                                              ; preds = %272
  call void @Longtail_Free(ptr noundef %248)
  %285 = load ptr, ptr %11, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %285)
  store ptr null, ptr %11, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %286 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %287 = getelementptr inbounds i8, ptr %286, i64 96
  %288 = load i32, ptr %287, align 8
  %289 = and i32 %288, -16776961
  %290 = or disjoint i32 %289, 1311232
  store i32 %290, ptr %287, align 8
  %291 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %292 = getelementptr inbounds i8, ptr %291, i64 32
  store ptr @.str.3, ptr %292, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  store i32 0, ptr %18, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  %293 = call i32 @Longtail_GetFilesRecursively2(ptr noundef nonnull %46, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.681, ptr noundef nonnull %17)
  store i32 %293, ptr %19, align 4, !tbaa !13
  %294 = 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) %18, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.682, ptr noundef null)
  %295 = icmp eq i32 %294, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  br i1 %295, label %296, label %297

296:                                              ; preds = %284
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %579

297:                                              ; preds = %284
  %298 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %299 = getelementptr inbounds i8, ptr %298, i64 96
  %300 = load i32, ptr %299, align 8
  %301 = and i32 %300, -16776961
  %302 = or disjoint i32 %301, 1311488
  store i32 %302, ptr %299, align 8
  %303 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %304 = getelementptr inbounds i8, ptr %303, i64 32
  store ptr @.str.3, ptr %304, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %305 = load ptr, ptr %17, align 8, !tbaa !14
  %306 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %305, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.683)
  %307 = icmp eq i32 %306, 0
  br i1 %307, label %308, label %309

308:                                              ; preds = %297
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %579

309:                                              ; preds = %297
  %310 = load ptr, ptr %17, align 8, !tbaa !14
  %311 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef nonnull %46, ptr noundef %310)
  %312 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %313 = getelementptr inbounds i8, ptr %312, i64 96
  %314 = load i32, ptr %313, align 8
  %315 = and i32 %314, -16776961
  %316 = or disjoint i32 %315, 1312000
  store i32 %316, ptr %313, align 8
  %317 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %318 = getelementptr inbounds i8, ptr %317, i64 32
  store ptr @.str.3, ptr %318, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %319 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %311, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.684)
  %320 = icmp eq i32 %319, 0
  br i1 %320, label %321, label %322

321:                                              ; preds = %309
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %579

322:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #6
  %323 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %324 = getelementptr inbounds i8, ptr %323, i64 96
  %325 = load i32, ptr %324, align 8
  %326 = and i32 %325, -16776961
  %327 = or disjoint i32 %326, 1315840
  store i32 %327, ptr %324, align 8
  %328 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %329 = getelementptr inbounds i8, ptr %328, i64 32
  store ptr @.str.3, ptr %329, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  store i32 0, ptr %21, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  %330 = load ptr, ptr %17, align 8, !tbaa !14
  %331 = call i32 @Longtail_CreateVersionIndex(ptr noundef nonnull %46, ptr noundef %48, ptr noundef %49, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.681, ptr noundef %330, ptr noundef %311, i32 noundef 16, i32 noundef 0, ptr noundef nonnull %20)
  store i32 %331, ptr %22, align 4, !tbaa !13
  %332 = 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) %21, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.685, ptr noundef null)
  %333 = icmp eq i32 %332, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  br i1 %333, label %334, label %335

334:                                              ; preds = %322
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %578

335:                                              ; preds = %322
  %336 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %337 = getelementptr inbounds i8, ptr %336, i64 96
  %338 = load i32, ptr %337, align 8
  %339 = and i32 %338, -16776961
  %340 = or disjoint i32 %339, 1316096
  store i32 %340, ptr %337, align 8
  %341 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %342 = getelementptr inbounds i8, ptr %341, i64 32
  store ptr @.str.3, ptr %342, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %343 = load ptr, ptr %20, align 8, !tbaa !14
  %344 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %343, ptr noundef nonnull @.str.259, ptr noundef nonnull @.str.686)
  %345 = icmp eq i32 %344, 0
  br i1 %345, label %346, label %347

346:                                              ; preds = %335
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %578

347:                                              ; preds = %335
  call void @Longtail_Free(ptr noundef %311)
  %348 = load ptr, ptr %17, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %348)
  store ptr null, ptr %17, align 8, !tbaa !14
  %349 = load ptr, ptr %14, align 8, !tbaa !14
  %350 = getelementptr inbounds i8, ptr %349, i64 32
  %351 = load ptr, ptr %350, align 8, !tbaa !27
  %352 = load i32, ptr %351, align 4, !tbaa !13
  %353 = getelementptr inbounds i8, ptr %349, i64 96
  %354 = load ptr, ptr %353, align 8, !tbaa !29
  %355 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %66, i32 noundef %352, ptr noundef %354, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  %356 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %357 = getelementptr inbounds i8, ptr %356, i64 96
  %358 = load i32, ptr %357, align 8
  %359 = and i32 %358, -16776961
  %360 = or disjoint i32 %359, 1319936
  store i32 %360, ptr %357, align 8
  %361 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %362 = getelementptr inbounds i8, ptr %361, i64 32
  store ptr @.str.3, ptr %362, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  store i32 0, ptr %24, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  %363 = load ptr, ptr %14, align 8, !tbaa !14
  %364 = call i32 @Longtail_CreateMissingContent(ptr noundef %48, ptr noundef %355, ptr noundef %363, i32 noundef 32, i32 noundef 3, ptr noundef nonnull %23)
  store i32 %364, ptr %25, align 4, !tbaa !13
  %365 = 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.412, ptr noundef null)
  %366 = icmp eq i32 %365, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br i1 %366, label %367, label %368

367:                                              ; preds = %347
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %577

368:                                              ; preds = %347
  %369 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %370 = getelementptr inbounds i8, ptr %369, i64 96
  %371 = load i32, ptr %370, align 8
  %372 = and i32 %371, -16776961
  %373 = or disjoint i32 %372, 1322752
  store i32 %373, ptr %370, align 8
  %374 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %375 = getelementptr inbounds i8, ptr %374, i64 32
  store ptr @.str.3, ptr %375, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  store i32 0, ptr %26, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  %376 = load ptr, ptr %23, align 8, !tbaa !14
  %377 = load ptr, ptr %14, align 8, !tbaa !14
  %378 = call i32 @Longtail_WriteContent(ptr noundef nonnull %46, ptr noundef %66, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %376, ptr noundef %377, ptr noundef nonnull @.str.677)
  store i32 %378, ptr %27, align 4, !tbaa !13
  %379 = 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) %26, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.687, ptr noundef null)
  %380 = icmp eq i32 %379, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br i1 %380, label %381, label %382

381:                                              ; preds = %368
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %577

382:                                              ; preds = %368
  %383 = load ptr, ptr %23, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %383)
  store ptr null, ptr %23, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %355)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  %384 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %385 = getelementptr inbounds i8, ptr %384, i64 96
  %386 = load i32, ptr %385, align 8
  %387 = and i32 %386, -16776961
  %388 = or disjoint i32 %387, 1325568
  store i32 %388, ptr %385, align 8
  %389 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %390 = getelementptr inbounds i8, ptr %389, i64 32
  store ptr @.str.3, ptr %390, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  store i32 0, ptr %29, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  %391 = load ptr, ptr %20, align 8, !tbaa !14
  %392 = load ptr, ptr %14, align 8, !tbaa !14
  %393 = call i32 @Longtail_CreateVersionDiff(ptr noundef %48, ptr noundef %391, ptr noundef %392, ptr noundef nonnull %28)
  store i32 %393, ptr %30, align 4, !tbaa !13
  %394 = 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) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.688, ptr noundef null)
  %395 = icmp eq i32 %394, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  br i1 %395, label %396, label %397

396:                                              ; preds = %382
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %576

397:                                              ; preds = %382
  %398 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %399 = getelementptr inbounds i8, ptr %398, i64 96
  %400 = load i32, ptr %399, align 8
  %401 = and i32 %400, -16776961
  %402 = or disjoint i32 %401, 1325824
  store i32 %402, ptr %399, align 8
  %403 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %404 = getelementptr inbounds i8, ptr %403, i64 32
  store ptr @.str.3, ptr %404, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %405 = load ptr, ptr %28, align 8, !tbaa !14
  %406 = call noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_VersionDiffS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %405, ptr noundef nonnull @.str.489, ptr noundef nonnull @.str.490)
  %407 = icmp eq i32 %406, 0
  br i1 %407, label %408, label %409

408:                                              ; preds = %397
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %576

409:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  %410 = load ptr, ptr %14, align 8, !tbaa !14
  %411 = getelementptr inbounds i8, ptr %410, i64 32
  %412 = load ptr, ptr %411, align 8, !tbaa !27
  %413 = load i32, ptr %412, align 4, !tbaa !13
  %414 = zext i32 %413 to i64
  %415 = shl nuw nsw i64 %414, 3
  %416 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %415)
  %417 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %418 = getelementptr inbounds i8, ptr %417, i64 96
  %419 = load i32, ptr %418, align 8
  %420 = and i32 %419, -16776961
  %421 = or disjoint i32 %420, 1327872
  store i32 %421, ptr %418, align 8
  %422 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %423 = getelementptr inbounds i8, ptr %422, i64 32
  store ptr @.str.3, ptr %423, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  store i32 0, ptr %32, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  %424 = load ptr, ptr %14, align 8, !tbaa !14
  %425 = load ptr, ptr %28, align 8, !tbaa !14
  %426 = call i32 @Longtail_GetRequiredChunkHashes(ptr noundef %424, ptr noundef %425, ptr noundef nonnull %31, ptr noundef %416)
  store i32 %426, ptr %33, align 4, !tbaa !13
  %427 = 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) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.689, ptr noundef null)
  %428 = icmp eq i32 %427, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  br i1 %428, label %429, label %430

429:                                              ; preds = %409
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %575

430:                                              ; preds = %409
  %431 = load i32, ptr %31, align 4, !tbaa !13
  %432 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %66, i32 noundef %431, ptr noundef %416, i32 noundef 0)
  call void @Longtail_Free(ptr noundef %416)
  %433 = call ptr @Longtail_CreateAtomicCancelAPI()
  %434 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %435 = getelementptr inbounds i8, ptr %434, i64 96
  %436 = load i32, ptr %435, align 8
  %437 = and i32 %436, -16776961
  %438 = or disjoint i32 %437, 1329664
  store i32 %438, ptr %435, align 8
  %439 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %440 = getelementptr inbounds i8, ptr %439, i64 32
  store ptr @.str.3, ptr %440, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %441 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_CancelAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %433, ptr noundef nonnull @.str.628, ptr noundef nonnull @.str.629)
  %442 = icmp eq i32 %441, 0
  br i1 %442, label %443, label %444

443:                                              ; preds = %430
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %575

444:                                              ; preds = %430
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %34) #6
  %445 = getelementptr inbounds i8, ptr %34, i64 64
  store ptr %66, ptr %445, align 8, !tbaa !30
  %446 = getelementptr inbounds i8, ptr %34, i64 72
  store volatile i32 2, ptr %446, align 8, !tbaa !33
  %447 = call ptr @Longtail_MakeBlockStoreAPI(ptr noundef nonnull %34, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy7DisposeEP12Longtail_API, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14PutStoredBlockEP22Longtail_BlockStoreAPIP20Longtail_StoredBlockP31Longtail_AsyncPutStoredBlockAPI, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy12PreflightGetEP22Longtail_BlockStoreAPIjPKmP33Longtail_AsyncPreflightStartedAPI, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14GetStoredBlockEP22Longtail_BlockStoreAPImP31Longtail_AsyncGetStoredBlockAPI, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy18GetExistingContentEP22Longtail_BlockStoreAPIjPKmjP35Longtail_AsyncGetExistingContentAPI, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy11PruneBlocksEP22Longtail_BlockStoreAPIjPKmP28Longtail_AsyncPruneBlocksAPI, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy8GetStatsEP22Longtail_BlockStoreAPIP25Longtail_BlockStore_Stats, ptr noundef nonnull @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy5FlushEP22Longtail_BlockStoreAPIP22Longtail_AsyncFlushAPI)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #6
  %448 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %449 = getelementptr inbounds i8, ptr %448, i64 96
  %450 = load i32, ptr %449, align 8
  %451 = and i32 %450, -16776961
  %452 = or disjoint i32 %451, 1352192
  store i32 %452, ptr %449, align 8
  %453 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %454 = getelementptr inbounds i8, ptr %453, i64 32
  store ptr @.str.3, ptr %454, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  store i32 0, ptr %36, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  %455 = getelementptr inbounds i8, ptr %433, i64 8
  %456 = load ptr, ptr %455, align 8, !tbaa !34
  %457 = call noundef i32 %456(ptr noundef %433, ptr noundef nonnull %35)
  store i32 %457, ptr %37, align 4, !tbaa !13
  %458 = 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) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.630, ptr noundef null)
  %459 = icmp eq i32 %458, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  br i1 %459, label %.thread163, label %460

460:                                              ; preds = %444
  %461 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %462 = getelementptr inbounds i8, ptr %461, i64 96
  %463 = load i32, ptr %462, align 8
  %464 = and i32 %463, -16776961
  %465 = or disjoint i32 %464, 1352448
  store i32 %465, ptr %462, align 8
  %466 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %467 = getelementptr inbounds i8, ptr %466, i64 32
  store ptr @.str.3, ptr %467, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %468 = load ptr, ptr %35, align 8, !tbaa !14
  %469 = call noundef i32 @_Z14jc_test_cmp_NEIP30Longtail_CancelAPI_CancelTokenS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %468, ptr noundef nonnull @.str.631, ptr noundef nonnull @.str.632)
  %470 = icmp eq i32 %469, 0
  br i1 %470, label %.thread163, label %471

471:                                              ; preds = %460
  %472 = load ptr, ptr %14, align 8, !tbaa !14
  %473 = load ptr, ptr %28, align 8, !tbaa !14
  %474 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef nonnull %46, ptr noundef %472, ptr noundef %473, ptr noundef nonnull @.str.470)
  %475 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %476 = getelementptr inbounds i8, ptr %475, i64 96
  %477 = load i32, ptr %476, align 8
  %478 = and i32 %477, -16776961
  %479 = or disjoint i32 %478, 1356800
  store i32 %479, ptr %476, align 8
  %480 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %481 = getelementptr inbounds i8, ptr %480, i64 32
  store ptr @.str.3, ptr %481, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  store i32 125, ptr %38, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  %482 = load ptr, ptr %35, align 8, !tbaa !14
  %483 = load ptr, ptr %20, align 8, !tbaa !14
  %484 = load ptr, ptr %14, align 8, !tbaa !14
  %485 = load ptr, ptr %28, align 8, !tbaa !14
  %486 = call i32 @Longtail_ChangeVersion2(ptr noundef %447, ptr noundef nonnull %46, ptr noundef %474, ptr noundef %48, ptr noundef %50, ptr noundef null, ptr noundef nonnull %433, ptr noundef %482, ptr noundef %432, ptr noundef %483, ptr noundef %484, ptr noundef %485, ptr noundef nonnull @.str.470, i32 noundef 1)
  store i32 %486, ptr %39, align 4, !tbaa !13
  %487 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull @.str.635, ptr noundef nonnull @.str.690)
  %488 = icmp eq i32 %487, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  br i1 %488, label %.thread163, label %489

489:                                              ; preds = %471
  %.not143 = icmp eq ptr %474, null
  br i1 %.not143, label %491, label %490

490:                                              ; preds = %489
  call void @Longtail_DisposeAPI(ptr noundef nonnull %474)
  br label %491

.thread163:                                       ; preds = %471, %460, %444
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  br label %574

491:                                              ; preds = %489, %490
  %492 = getelementptr inbounds i8, ptr %433, i64 32
  %493 = load ptr, ptr %492, align 8, !tbaa !36
  %494 = load ptr, ptr %35, align 8, !tbaa !14
  %495 = call noundef i32 %493(ptr noundef nonnull %433, ptr noundef %494)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  %496 = getelementptr inbounds i8, ptr %40, i64 8
  %497 = getelementptr inbounds i8, ptr %40, i64 32
  br label %498

498:                                              ; preds = %491, %547
  %.0128184 = phi i32 [ 0, %491 ], [ %548, %547 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %40) #6
  call void @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN13TestCancelAPIC2EP18Longtail_CancelAPIi(ptr noundef nonnull align 8 dereferenceable(56) %40, ptr noundef %433, i32 noundef %.0128184)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  %499 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %500 = getelementptr inbounds i8, ptr %499, i64 96
  %501 = load i32, ptr %500, align 8
  %502 = and i32 %501, -16776961
  %503 = or disjoint i32 %502, 1371648
  store i32 %503, ptr %500, align 8
  %504 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %505 = getelementptr inbounds i8, ptr %504, i64 32
  store ptr @.str.3, ptr %505, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  store i32 0, ptr %42, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  %506 = load ptr, ptr %496, align 8, !tbaa !37
  %507 = call noundef i32 %506(ptr noundef nonnull %40, ptr noundef nonnull %41)
  store i32 %507, ptr %43, align 4, !tbaa !13
  %508 = 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) %42, ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.691, ptr noundef null)
  %509 = icmp eq i32 %508, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  br i1 %509, label %.thread177, label %510

510:                                              ; preds = %498
  %511 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %512 = getelementptr inbounds i8, ptr %511, i64 96
  %513 = load i32, ptr %512, align 8
  %514 = and i32 %513, -16776961
  %515 = or disjoint i32 %514, 1371904
  store i32 %515, ptr %512, align 8
  %516 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %517 = getelementptr inbounds i8, ptr %516, i64 32
  store ptr @.str.3, ptr %517, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %518 = load ptr, ptr %41, align 8, !tbaa !14
  %519 = call noundef i32 @_Z14jc_test_cmp_NEIP30Longtail_CancelAPI_CancelTokenS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %518, ptr noundef nonnull @.str.631, ptr noundef nonnull @.str.632)
  %520 = icmp eq i32 %519, 0
  br i1 %520, label %.thread177, label %521

521:                                              ; preds = %510
  store volatile i32 2147483647, ptr %446, align 8, !tbaa !33
  %522 = load ptr, ptr %14, align 8, !tbaa !14
  %523 = load ptr, ptr %28, align 8, !tbaa !14
  %524 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef %46, ptr noundef %522, ptr noundef %523, ptr noundef nonnull @.str.470)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  %525 = load ptr, ptr %41, align 8, !tbaa !14
  %526 = load ptr, ptr %20, align 8, !tbaa !14
  %527 = load ptr, ptr %14, align 8, !tbaa !14
  %528 = load ptr, ptr %28, align 8, !tbaa !14
  %529 = call i32 @Longtail_ChangeVersion2(ptr noundef %447, ptr noundef %46, ptr noundef %524, ptr noundef %48, ptr noundef %50, ptr noundef null, ptr noundef nonnull %40, ptr noundef %525, ptr noundef %432, ptr noundef %526, ptr noundef %527, ptr noundef %528, ptr noundef nonnull @.str.470, i32 noundef 1)
  store i32 %529, ptr %44, align 4, !tbaa !13
  %.not145 = icmp eq ptr %524, null
  br i1 %.not145, label %531, label %530

530:                                              ; preds = %521
  call void @Longtail_DisposeAPI(ptr noundef nonnull %524)
  br label %531

531:                                              ; preds = %530, %521
  %532 = load ptr, ptr %497, align 8, !tbaa !39
  %533 = load ptr, ptr %41, align 8, !tbaa !14
  %534 = call noundef i32 %532(ptr noundef nonnull %40, ptr noundef %533)
  %535 = load i32, ptr %44, align 4, !tbaa !13
  %536 = icmp eq i32 %535, 125
  br i1 %536, label %547, label %537

537:                                              ; preds = %531
  %538 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %539 = getelementptr inbounds i8, ptr %538, i64 96
  %540 = load i32, ptr %539, align 8
  %541 = and i32 %540, -16776961
  %542 = or disjoint i32 %541, 1378304
  store i32 %542, ptr %539, align 8
  %543 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %544 = getelementptr inbounds i8, ptr %543, i64 32
  store ptr @.str.3, ptr %544, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  store i32 0, ptr %45, align 4, !tbaa !13
  %545 = 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) %45, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.616, ptr noundef null)
  %546 = icmp eq i32 %545, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  br i1 %546, label %549, label %.thread180

.thread180:                                       ; preds = %537
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %40) #6
  br label %.thread174

.thread177:                                       ; preds = %510, %498
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %40) #6
  br label %574

547:                                              ; preds = %531
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %40) #6
  %548 = add nuw nsw i32 %.0128184, 1
  %.not144 = icmp eq i32 %548, 2147483647
  br i1 %.not144, label %.thread174, label %498, !llvm.loop !40

549:                                              ; preds = %537
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %40) #6
  br label %574

.thread174:                                       ; preds = %547, %.thread180
  %.not146 = icmp eq ptr %447, null
  br i1 %.not146, label %551, label %550

550:                                              ; preds = %.thread174
  call void @Longtail_DisposeAPI(ptr noundef nonnull %447)
  br label %551

551:                                              ; preds = %550, %.thread174
  %.not147 = icmp eq ptr %433, null
  br i1 %.not147, label %553, label %552

552:                                              ; preds = %551
  call void @Longtail_DisposeAPI(ptr noundef nonnull %433)
  br label %553

553:                                              ; preds = %552, %551
  call void @Longtail_Free(ptr noundef %432)
  %554 = load ptr, ptr %28, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %554)
  %555 = load ptr, ptr %20, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %555)
  %556 = load ptr, ptr %14, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %556)
  %.not148 = icmp eq ptr %66, null
  br i1 %.not148, label %558, label %557

557:                                              ; preds = %553
  call void @Longtail_DisposeAPI(ptr noundef nonnull %66)
  br label %558

558:                                              ; preds = %557, %553
  %.not149 = icmp eq ptr %65, null
  br i1 %.not149, label %560, label %559

559:                                              ; preds = %558
  call void @Longtail_DisposeAPI(ptr noundef nonnull %65)
  br label %560

560:                                              ; preds = %559, %558
  %.not150 = icmp eq ptr %64, null
  br i1 %.not150, label %562, label %561

561:                                              ; preds = %560
  call void @Longtail_DisposeAPI(ptr noundef nonnull %64)
  br label %562

562:                                              ; preds = %561, %560
  %.not151 = icmp eq ptr %63, null
  br i1 %.not151, label %564, label %563

563:                                              ; preds = %562
  call void @Longtail_DisposeAPI(ptr noundef nonnull %63)
  br label %564

564:                                              ; preds = %562, %563
  call void @Longtail_DisposeAPI(ptr noundef nonnull %2)
  %.not152 = icmp eq ptr %50, null
  br i1 %.not152, label %566, label %565

565:                                              ; preds = %564
  call void @Longtail_DisposeAPI(ptr noundef nonnull %50)
  br label %566

566:                                              ; preds = %565, %564
  %.not153 = icmp eq ptr %48, null
  br i1 %.not153, label %568, label %567

567:                                              ; preds = %566
  call void @Longtail_DisposeAPI(ptr noundef nonnull %48)
  br label %568

568:                                              ; preds = %567, %566
  %.not154 = icmp eq ptr %49, null
  br i1 %.not154, label %570, label %569

569:                                              ; preds = %568
  call void @Longtail_DisposeAPI(ptr noundef nonnull %49)
  br label %570

570:                                              ; preds = %569, %568
  %.not155 = icmp eq ptr %47, null
  br i1 %.not155, label %572, label %571

571:                                              ; preds = %570
  call void @Longtail_DisposeAPI(ptr noundef nonnull %47)
  br label %572

572:                                              ; preds = %571, %570
  %.not156 = icmp eq ptr %46, null
  br i1 %.not156, label %574, label %573

573:                                              ; preds = %572
  call void @Longtail_DisposeAPI(ptr noundef nonnull %46)
  br label %574

574:                                              ; preds = %549, %.thread177, %.thread163, %572, %573
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %34) #6
  br label %575

575:                                              ; preds = %443, %574, %429
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  br label %576

576:                                              ; preds = %575, %408, %396
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  br label %577

577:                                              ; preds = %576, %381, %367
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %578

578:                                              ; preds = %577, %346, %334
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  br label %579

579:                                              ; preds = %321, %578, %308, %296
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  br label %580

580:                                              ; preds = %579, %283, %271
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  br label %581

581:                                              ; preds = %258, %580, %244, %232
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  br label %582

582:                                              ; preds = %.thread, %.thread159, %581
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %5) #6
  br label %583

583:                                              ; preds = %582, %61
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %2) #6
  ret void
}

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy7DisposeEP12Longtail_API(ptr noundef) #5 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14PutStoredBlockEP22Longtail_BlockStoreAPIP20Longtail_StoredBlockP31Longtail_AsyncPutStoredBlockAPI(ptr noundef, ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy12PreflightGetEP22Longtail_BlockStoreAPIjPKmP33Longtail_AsyncPreflightStartedAPI(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy14GetStoredBlockEP22Longtail_BlockStoreAPImP31Longtail_AsyncGetStoredBlockAPI(ptr noundef, i64 noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy18GetExistingContentEP22Longtail_BlockStoreAPIjPKmjP35Longtail_AsyncGetExistingContentAPI(ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy11PruneBlocksEP22Longtail_BlockStoreAPIjPKmP28Longtail_AsyncPruneBlocksAPI(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy8GetStatsEP22Longtail_BlockStoreAPIP25Longtail_BlockStore_Stats(ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN15BlockStoreProxy5FlushEP22Longtail_BlockStoreAPIP22Longtail_AsyncFlushAPI(ptr noundef, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvEN13TestCancelAPIC2EP18Longtail_CancelAPIi(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, i32 noundef) unnamed_addr #4 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { 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 #3 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 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 = { 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 #6 = { nounwind }
attributes #7 = { nounwind willreturn memory(read) }

!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, !7, i64 32}
!6 = !{!"_ZTS15jc_test_fixture", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !10, i64 64, !11, i64 88, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 92, !11, i64 96, !11, i64 97, !11, i64 99, !11, i64 100}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS13jc_test_stats", !11, i64 0, !11, i64 4, !11, i64 6, !11, i64 8, !11, i64 12, !12, i64 16}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!11, !11, i64 0}
!14 = !{!7, !7, i64 0}
!15 = !{!12, !12, i64 0}
!16 = !{!17, !7, i64 96}
!17 = !{!"_ZTS19Longtail_StorageAPI", !18, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !7, i64 208}
!18 = !{!"_ZTS12Longtail_API", !7, i64 0}
!19 = !{!17, !7, i64 32}
!20 = !{!17, !7, i64 40}
!21 = !{!17, !7, i64 72}
!22 = !{!17, !7, i64 56}
!23 = !{!24, !24, i64 0}
!24 = !{!"short", !8, i64 0}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!28, !7, i64 32}
!28 = !{!"_ZTS21Longtail_VersionIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !11, i64 128, !7, i64 136, !7, i64 144}
!29 = !{!28, !7, i64 96}
!30 = !{!31, !7, i64 64}
!31 = !{!"_ZTSZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvE15BlockStoreProxy", !32, i64 0, !7, i64 64, !11, i64 72}
!32 = !{!"_ZTS22Longtail_BlockStoreAPI", !18, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56}
!33 = !{!31, !11, i64 72}
!34 = !{!35, !7, i64 8}
!35 = !{!"_ZTS18Longtail_CancelAPI", !18, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32}
!36 = !{!35, !7, i64 32}
!37 = !{!38, !7, i64 8}
!38 = !{!"_ZTSZN51Longtail_TestChangeVersionCancelOperation__TestCase8TestBodyEvE13TestCancelAPI", !35, i64 0, !7, i64 40, !11, i64 48, !11, i64 52}
!39 = !{!38, !7, i64 32}
!40 = distinct !{!40, !26}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass