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

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

%struct.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_API = type { ptr }
%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_VersionIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr }
%struct.Longtail_VersionDiff = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ConcurrentChunkWriteAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_FileInfos = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ChunkerAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.270 = 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
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_FILENAMES = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_PERMISSIONS = external hidden unnamed_addr constant [10 x i16], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_FILENAMES = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_PERMISSIONS = external hidden unnamed_addr constant [10 x i16], align 16
@.str.470 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [77 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.491 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [168 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [10 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 noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), 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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_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_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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN39Longtail_Longtail_VersionDiff__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 ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca [10 x ptr], align 16
  %12 = alloca [10 x ptr], align 16
  %13 = alloca [10 x i64], align 16
  %14 = alloca [10 x i16], align 16
  %15 = alloca i32, align 4
  %16 = alloca [10 x ptr], align 16
  %17 = alloca [10 x ptr], align 16
  %18 = alloca [10 x i64], align 16
  %19 = alloca [10 x i16], align 16
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %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 i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i64, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca ptr, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %91 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #6
  %92 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %92, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  %93 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %93, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #6
  %94 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %94, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %95 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %95, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  %96 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %96, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %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.270, ptr noundef null, i32 noundef 0)
  store ptr %99, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %100 = load ptr, ptr %8, align 8, !tbaa !5
  %101 = load ptr, ptr %4, align 8, !tbaa !5
  %102 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %100, ptr noundef %101)
  store ptr %102, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  store i32 10, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %11) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_FILENAMES, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %12) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %12, ptr align 16 @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %13) #6
  %103 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 0
  %104 = load ptr, ptr %103, align 16, !tbaa !5
  %105 = call i64 @strlen(ptr noundef %104) #7
  %106 = add i64 %105, 1
  store i64 %106, ptr %13, align 8, !tbaa !11
  %107 = getelementptr inbounds i64, ptr %13, i64 1
  %108 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 1
  %109 = load ptr, ptr %108, align 8, !tbaa !5
  %110 = call i64 @strlen(ptr noundef %109) #7
  %111 = add i64 %110, 1
  store i64 %111, ptr %107, align 8, !tbaa !11
  %112 = getelementptr inbounds i64, ptr %13, i64 2
  %113 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 2
  %114 = load ptr, ptr %113, align 16, !tbaa !5
  %115 = call i64 @strlen(ptr noundef %114) #7
  %116 = add i64 %115, 1
  store i64 %116, ptr %112, align 8, !tbaa !11
  %117 = getelementptr inbounds i64, ptr %13, i64 3
  %118 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 3
  %119 = load ptr, ptr %118, align 8, !tbaa !5
  %120 = call i64 @strlen(ptr noundef %119) #7
  %121 = add i64 %120, 1
  store i64 %121, ptr %117, align 8, !tbaa !11
  %122 = getelementptr inbounds i64, ptr %13, i64 4
  %123 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 4
  %124 = load ptr, ptr %123, align 16, !tbaa !5
  %125 = call i64 @strlen(ptr noundef %124) #7
  %126 = add i64 %125, 1
  store i64 %126, ptr %122, align 8, !tbaa !11
  %127 = getelementptr inbounds i64, ptr %13, i64 5
  %128 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 5
  %129 = load ptr, ptr %128, align 8, !tbaa !5
  %130 = call i64 @strlen(ptr noundef %129) #7
  %131 = add i64 %130, 1
  store i64 %131, ptr %127, align 8, !tbaa !11
  %132 = getelementptr inbounds i64, ptr %13, i64 6
  %133 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 6
  %134 = load ptr, ptr %133, align 16, !tbaa !5
  %135 = call i64 @strlen(ptr noundef %134) #7
  %136 = add i64 %135, 1
  store i64 %136, ptr %132, align 8, !tbaa !11
  %137 = getelementptr inbounds i64, ptr %13, i64 7
  %138 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 7
  %139 = load ptr, ptr %138, align 8, !tbaa !5
  %140 = call i64 @strlen(ptr noundef %139) #7
  %141 = add i64 %140, 1
  store i64 %141, ptr %137, align 8, !tbaa !11
  %142 = getelementptr inbounds i64, ptr %13, i64 8
  %143 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 8
  %144 = load ptr, ptr %143, align 16, !tbaa !5
  %145 = call i64 @strlen(ptr noundef %144) #7
  %146 = add i64 %145, 1
  store i64 %146, ptr %142, align 8, !tbaa !11
  %147 = getelementptr inbounds i64, ptr %13, i64 9
  %148 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 9
  %149 = load ptr, ptr %148, align 8, !tbaa !5
  %150 = call i64 @strlen(ptr noundef %149) #7
  %151 = add i64 %150, 1
  store i64 %151, ptr %147, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 20, ptr %14) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %14, ptr align 16 @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_PERMISSIONS, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  store i32 10, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %16) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %16, ptr align 16 @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_FILENAMES, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %17) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %17, ptr align 16 @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %18) #6
  %152 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 0
  %153 = load ptr, ptr %152, align 16, !tbaa !5
  %154 = call i64 @strlen(ptr noundef %153) #7
  %155 = add i64 %154, 1
  store i64 %155, ptr %18, align 8, !tbaa !11
  %156 = getelementptr inbounds i64, ptr %18, i64 1
  %157 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 1
  %158 = load ptr, ptr %157, align 8, !tbaa !5
  %159 = call i64 @strlen(ptr noundef %158) #7
  %160 = add i64 %159, 1
  store i64 %160, ptr %156, align 8, !tbaa !11
  %161 = getelementptr inbounds i64, ptr %18, i64 2
  %162 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 2
  %163 = load ptr, ptr %162, align 16, !tbaa !5
  %164 = call i64 @strlen(ptr noundef %163) #7
  %165 = add i64 %164, 1
  store i64 %165, ptr %161, align 8, !tbaa !11
  %166 = getelementptr inbounds i64, ptr %18, i64 3
  %167 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 3
  %168 = load ptr, ptr %167, align 8, !tbaa !5
  %169 = call i64 @strlen(ptr noundef %168) #7
  %170 = add i64 %169, 1
  store i64 %170, ptr %166, align 8, !tbaa !11
  %171 = getelementptr inbounds i64, ptr %18, i64 4
  %172 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 4
  %173 = load ptr, ptr %172, align 16, !tbaa !5
  %174 = call i64 @strlen(ptr noundef %173) #7
  %175 = add i64 %174, 1
  store i64 %175, ptr %171, align 8, !tbaa !11
  %176 = getelementptr inbounds i64, ptr %18, i64 5
  %177 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 5
  %178 = load ptr, ptr %177, align 8, !tbaa !5
  %179 = call i64 @strlen(ptr noundef %178) #7
  %180 = add i64 %179, 1
  store i64 %180, ptr %176, align 8, !tbaa !11
  %181 = getelementptr inbounds i64, ptr %18, i64 6
  %182 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 6
  %183 = load ptr, ptr %182, align 16, !tbaa !5
  %184 = call i64 @strlen(ptr noundef %183) #7
  %185 = add i64 %184, 1
  store i64 %185, ptr %181, align 8, !tbaa !11
  %186 = getelementptr inbounds i64, ptr %18, i64 7
  %187 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 7
  %188 = load ptr, ptr %187, align 8, !tbaa !5
  %189 = call i64 @strlen(ptr noundef %188) #7
  %190 = add i64 %189, 1
  store i64 %190, ptr %186, align 8, !tbaa !11
  %191 = getelementptr inbounds i64, ptr %18, i64 8
  %192 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 8
  %193 = load ptr, ptr %192, align 16, !tbaa !5
  %194 = call i64 @strlen(ptr noundef %193) #7
  %195 = add i64 %194, 1
  store i64 %195, ptr %191, align 8, !tbaa !11
  %196 = getelementptr inbounds i64, ptr %18, i64 9
  %197 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 9
  %198 = load ptr, ptr %197, align 8, !tbaa !5
  %199 = call i64 @strlen(ptr noundef %198) #7
  %200 = add i64 %199, 1
  store i64 %200, ptr %196, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 20, ptr %19) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %19, ptr align 16 @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_PERMISSIONS, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %201

201:                                              ; preds = %322, %1
  %202 = load i32, ptr %20, align 4, !tbaa !9
  %203 = icmp ult i32 %202, 10
  br i1 %203, label %205, label %204

204:                                              ; preds = %201
  store i32 2, ptr %21, align 4
  br label %325

205:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %206 = load ptr, ptr %3, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %206, i32 0, i32 12
  %208 = load ptr, ptr %207, align 8, !tbaa !13
  %209 = load ptr, ptr %3, align 8, !tbaa !5
  %210 = load i32, ptr %20, align 4, !tbaa !9
  %211 = zext i32 %210 to i64
  %212 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %211
  %213 = load ptr, ptr %212, align 8, !tbaa !5
  %214 = call noundef ptr %208(ptr noundef %209, ptr noundef @.str.470, ptr noundef %213)
  store ptr %214, ptr %22, align 8, !tbaa !5
  br label %215

215:                                              ; preds = %205
  %216 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %217 = getelementptr inbounds %struct.jc_test_fixture, ptr %216, i32 0, i32 11
  %218 = load i32, ptr %217, align 8
  %219 = and i32 %218, -16776961
  %220 = or i32 %219, 740864
  store i32 %220, ptr %217, align 8
  %221 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %222 = getelementptr inbounds %struct.jc_test_fixture, ptr %221, i32 0, i32 4
  store ptr @.str.3, ptr %222, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %223 = load ptr, ptr %3, align 8, !tbaa !5
  %224 = load ptr, ptr %22, align 8, !tbaa !5
  %225 = call noundef i32 @_ZL16CreateParentPathP19Longtail_StorageAPIPKc(ptr noundef %223, ptr noundef %224)
  %226 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %225, ptr noundef @.str.46, ptr noundef @.str.386)
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %228, label %229

228:                                              ; preds = %215
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %319

229:                                              ; preds = %215
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  br label %232

232:                                              ; preds = %231
  %233 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %234 = getelementptr inbounds %struct.jc_test_fixture, ptr %233, i32 0, i32 11
  %235 = load i32, ptr %234, align 8
  %236 = and i32 %235, -16776961
  %237 = or i32 %236, 741376
  store i32 %237, ptr %234, align 8
  %238 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %239 = getelementptr inbounds %struct.jc_test_fixture, ptr %238, i32 0, i32 4
  store ptr @.str.3, ptr %239, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 0, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  %240 = load ptr, ptr %3, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %240, i32 0, i32 4
  %242 = load ptr, ptr %241, align 8, !tbaa !19
  %243 = load ptr, ptr %3, align 8, !tbaa !5
  %244 = load ptr, ptr %22, align 8, !tbaa !5
  %245 = call noundef i32 %242(ptr noundef %243, ptr noundef %244, i64 noundef 0, ptr noundef %23)
  store i32 %245, ptr %25, align 4, !tbaa !9
  %246 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef @.str.46, ptr noundef @.str.387, ptr noundef null)
  %247 = icmp eq i32 %246, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  br i1 %247, label %248, label %249

248:                                              ; preds = %232
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %318

249:                                              ; preds = %232
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  %253 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %254 = getelementptr inbounds %struct.jc_test_fixture, ptr %253, i32 0, i32 11
  %255 = load i32, ptr %254, align 8
  %256 = and i32 %255, -16776961
  %257 = or i32 %256, 741632
  store i32 %257, ptr %254, align 8
  %258 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %259 = getelementptr inbounds %struct.jc_test_fixture, ptr %258, i32 0, i32 4
  store ptr @.str.3, ptr %259, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %260 = load ptr, ptr %23, align 8, !tbaa !5
  %261 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %260, ptr noundef @.str.388, ptr noundef @.str.389)
  %262 = icmp eq i32 %261, 0
  br i1 %262, label %263, label %264

263:                                              ; preds = %252
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %318

264:                                              ; preds = %252
  br label %265

265:                                              ; preds = %264
  br label %266

266:                                              ; preds = %265
  %267 = load i32, ptr %20, align 4, !tbaa !9
  %268 = zext i32 %267 to i64
  %269 = getelementptr inbounds [10 x i64], ptr %13, i64 0, i64 %268
  %270 = load i64, ptr %269, align 8, !tbaa !11
  %271 = icmp ne i64 %270, 0
  br i1 %271, label %272, label %301

272:                                              ; preds = %266
  br label %273

273:                                              ; preds = %272
  %274 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %275 = getelementptr inbounds %struct.jc_test_fixture, ptr %274, i32 0, i32 11
  %276 = load i32, ptr %275, align 8
  %277 = and i32 %276, -16776961
  %278 = or i32 %277, 742400
  store i32 %278, ptr %275, align 8
  %279 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %280 = getelementptr inbounds %struct.jc_test_fixture, ptr %279, i32 0, i32 4
  store ptr @.str.3, ptr %280, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 0, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  %281 = load ptr, ptr %3, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %281, i32 0, i32 5
  %283 = load ptr, ptr %282, align 8, !tbaa !20
  %284 = load ptr, ptr %3, align 8, !tbaa !5
  %285 = load ptr, ptr %23, align 8, !tbaa !5
  %286 = load i32, ptr %20, align 4, !tbaa !9
  %287 = zext i32 %286 to i64
  %288 = getelementptr inbounds [10 x i64], ptr %13, i64 0, i64 %287
  %289 = load i64, ptr %288, align 8, !tbaa !11
  %290 = load i32, ptr %20, align 4, !tbaa !9
  %291 = zext i32 %290 to i64
  %292 = getelementptr inbounds [10 x ptr], ptr %12, i64 0, i64 %291
  %293 = load ptr, ptr %292, align 8, !tbaa !5
  %294 = call noundef i32 %283(ptr noundef %284, ptr noundef %285, i64 noundef 0, i64 noundef %289, ptr noundef %293)
  store i32 %294, ptr %27, align 4, !tbaa !9
  %295 = 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 @.str.46, ptr noundef @.str.471, ptr noundef null)
  %296 = icmp eq i32 %295, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br i1 %296, label %297, label %298

297:                                              ; preds = %273
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %318

298:                                              ; preds = %273
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  br label %301

301:                                              ; preds = %300, %266
  %302 = load ptr, ptr %3, align 8, !tbaa !5
  %303 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %302, i32 0, i32 9
  %304 = load ptr, ptr %303, align 8, !tbaa !21
  %305 = load ptr, ptr %3, align 8, !tbaa !5
  %306 = load ptr, ptr %23, align 8, !tbaa !5
  call void %304(ptr noundef %305, ptr noundef %306)
  store ptr null, ptr %23, align 8, !tbaa !5
  %307 = load ptr, ptr %3, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %307, i32 0, i32 7
  %309 = load ptr, ptr %308, align 8, !tbaa !22
  %310 = load ptr, ptr %3, align 8, !tbaa !5
  %311 = load ptr, ptr %22, align 8, !tbaa !5
  %312 = load i32, ptr %20, align 4, !tbaa !9
  %313 = zext i32 %312 to i64
  %314 = getelementptr inbounds [10 x i16], ptr %14, i64 0, i64 %313
  %315 = load i16, ptr %314, align 2, !tbaa !23
  %316 = call noundef i32 %309(ptr noundef %310, ptr noundef %311, i16 noundef zeroext %315)
  %317 = load ptr, ptr %22, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %317)
  store i32 0, ptr %21, align 4
  br label %318

318:                                              ; preds = %301, %297, %263, %248
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %319

319:                                              ; preds = %318, %228
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  %320 = load i32, ptr %21, align 4
  switch i32 %320, label %325 [
    i32 0, label %321
  ]

321:                                              ; preds = %319
  br label %322

322:                                              ; preds = %321
  %323 = load i32, ptr %20, align 4, !tbaa !9
  %324 = add i32 %323, 1
  store i32 %324, ptr %20, align 4, !tbaa !9
  br label %201, !llvm.loop !25

325:                                              ; preds = %319, %204
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  %326 = load i32, ptr %21, align 4
  switch i32 %326, label %1234 [
    i32 2, label %327
  ]

327:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  store i32 0, ptr %28, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %449, %327
  %329 = load i32, ptr %28, align 4, !tbaa !9
  %330 = icmp ult i32 %329, 10
  br i1 %330, label %332, label %331

331:                                              ; preds = %328
  store i32 13, ptr %21, align 4
  br label %452

332:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  %333 = load ptr, ptr %3, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %333, i32 0, i32 12
  %335 = load ptr, ptr %334, align 8, !tbaa !13
  %336 = load ptr, ptr %3, align 8, !tbaa !5
  %337 = load i32, ptr %28, align 4, !tbaa !9
  %338 = zext i32 %337 to i64
  %339 = getelementptr inbounds [10 x ptr], ptr %16, i64 0, i64 %338
  %340 = load ptr, ptr %339, align 8, !tbaa !5
  %341 = call noundef ptr %335(ptr noundef %336, ptr noundef @.str.472, ptr noundef %340)
  store ptr %341, ptr %29, align 8, !tbaa !5
  br label %342

342:                                              ; preds = %332
  %343 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %344 = getelementptr inbounds %struct.jc_test_fixture, ptr %343, i32 0, i32 11
  %345 = load i32, ptr %344, align 8
  %346 = and i32 %345, -16776961
  %347 = or i32 %346, 745216
  store i32 %347, ptr %344, align 8
  %348 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %349 = getelementptr inbounds %struct.jc_test_fixture, ptr %348, i32 0, i32 4
  store ptr @.str.3, ptr %349, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %350 = load ptr, ptr %3, align 8, !tbaa !5
  %351 = load ptr, ptr %29, align 8, !tbaa !5
  %352 = call noundef i32 @_ZL16CreateParentPathP19Longtail_StorageAPIPKc(ptr noundef %350, ptr noundef %351)
  %353 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %352, ptr noundef @.str.46, ptr noundef @.str.386)
  %354 = icmp eq i32 %353, 0
  br i1 %354, label %355, label %356

355:                                              ; preds = %342
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %446

356:                                              ; preds = %342
  br label %357

357:                                              ; preds = %356
  br label %358

358:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  br label %359

359:                                              ; preds = %358
  %360 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %361 = getelementptr inbounds %struct.jc_test_fixture, ptr %360, i32 0, i32 11
  %362 = load i32, ptr %361, align 8
  %363 = and i32 %362, -16776961
  %364 = or i32 %363, 745728
  store i32 %364, ptr %361, align 8
  %365 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %366 = getelementptr inbounds %struct.jc_test_fixture, ptr %365, i32 0, i32 4
  store ptr @.str.3, ptr %366, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  store i32 0, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  %367 = load ptr, ptr %3, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %367, i32 0, i32 4
  %369 = load ptr, ptr %368, align 8, !tbaa !19
  %370 = load ptr, ptr %3, align 8, !tbaa !5
  %371 = load ptr, ptr %29, align 8, !tbaa !5
  %372 = call noundef i32 %369(ptr noundef %370, ptr noundef %371, i64 noundef 0, ptr noundef %30)
  store i32 %372, ptr %32, align 4, !tbaa !9
  %373 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef @.str.46, ptr noundef @.str.387, ptr noundef null)
  %374 = icmp eq i32 %373, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  br i1 %374, label %375, label %376

375:                                              ; preds = %359
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %445

376:                                              ; preds = %359
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  %380 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %381 = getelementptr inbounds %struct.jc_test_fixture, ptr %380, i32 0, i32 11
  %382 = load i32, ptr %381, align 8
  %383 = and i32 %382, -16776961
  %384 = or i32 %383, 745984
  store i32 %384, ptr %381, align 8
  %385 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %386 = getelementptr inbounds %struct.jc_test_fixture, ptr %385, i32 0, i32 4
  store ptr @.str.3, ptr %386, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %387 = load ptr, ptr %30, align 8, !tbaa !5
  %388 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %387, ptr noundef @.str.388, ptr noundef @.str.389)
  %389 = icmp eq i32 %388, 0
  br i1 %389, label %390, label %391

390:                                              ; preds = %379
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %445

391:                                              ; preds = %379
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  %394 = load i32, ptr %28, align 4, !tbaa !9
  %395 = zext i32 %394 to i64
  %396 = getelementptr inbounds [10 x i64], ptr %18, i64 0, i64 %395
  %397 = load i64, ptr %396, align 8, !tbaa !11
  %398 = icmp ne i64 %397, 0
  br i1 %398, label %399, label %428

399:                                              ; preds = %393
  br label %400

400:                                              ; preds = %399
  %401 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %402 = getelementptr inbounds %struct.jc_test_fixture, ptr %401, i32 0, i32 11
  %403 = load i32, ptr %402, align 8
  %404 = and i32 %403, -16776961
  %405 = or i32 %404, 746752
  store i32 %405, ptr %402, align 8
  %406 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %407 = getelementptr inbounds %struct.jc_test_fixture, ptr %406, i32 0, i32 4
  store ptr @.str.3, ptr %407, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  store i32 0, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  %408 = load ptr, ptr %3, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %408, i32 0, i32 5
  %410 = load ptr, ptr %409, align 8, !tbaa !20
  %411 = load ptr, ptr %3, align 8, !tbaa !5
  %412 = load ptr, ptr %30, align 8, !tbaa !5
  %413 = load i32, ptr %28, align 4, !tbaa !9
  %414 = zext i32 %413 to i64
  %415 = getelementptr inbounds [10 x i64], ptr %18, i64 0, i64 %414
  %416 = load i64, ptr %415, align 8, !tbaa !11
  %417 = load i32, ptr %28, align 4, !tbaa !9
  %418 = zext i32 %417 to i64
  %419 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 %418
  %420 = load ptr, ptr %419, align 8, !tbaa !5
  %421 = call noundef i32 %410(ptr noundef %411, ptr noundef %412, i64 noundef 0, i64 noundef %416, ptr noundef %420)
  store i32 %421, ptr %34, align 4, !tbaa !9
  %422 = 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) %33, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef @.str.46, ptr noundef @.str.473, ptr noundef null)
  %423 = icmp eq i32 %422, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  br i1 %423, label %424, label %425

424:                                              ; preds = %400
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %445

425:                                              ; preds = %400
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427, %393
  %429 = load ptr, ptr %3, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %429, i32 0, i32 9
  %431 = load ptr, ptr %430, align 8, !tbaa !21
  %432 = load ptr, ptr %3, align 8, !tbaa !5
  %433 = load ptr, ptr %30, align 8, !tbaa !5
  call void %431(ptr noundef %432, ptr noundef %433)
  store ptr null, ptr %30, align 8, !tbaa !5
  %434 = load ptr, ptr %3, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %434, i32 0, i32 7
  %436 = load ptr, ptr %435, align 8, !tbaa !22
  %437 = load ptr, ptr %3, align 8, !tbaa !5
  %438 = load ptr, ptr %29, align 8, !tbaa !5
  %439 = load i32, ptr %28, align 4, !tbaa !9
  %440 = zext i32 %439 to i64
  %441 = getelementptr inbounds [10 x i16], ptr %19, i64 0, i64 %440
  %442 = load i16, ptr %441, align 2, !tbaa !23
  %443 = call noundef i32 %436(ptr noundef %437, ptr noundef %438, i16 noundef zeroext %442)
  %444 = load ptr, ptr %29, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %444)
  store i32 0, ptr %21, align 4
  br label %445

445:                                              ; preds = %428, %424, %390, %375
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  br label %446

446:                                              ; preds = %445, %355
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  %447 = load i32, ptr %21, align 4
  switch i32 %447, label %452 [
    i32 0, label %448
  ]

448:                                              ; preds = %446
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr %28, align 4, !tbaa !9
  %451 = add i32 %450, 1
  store i32 %451, ptr %28, align 4, !tbaa !9
  br label %328, !llvm.loop !27

452:                                              ; preds = %446, %331
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  %453 = load i32, ptr %21, align 4
  switch i32 %453, label %1234 [
    i32 13, label %454
  ]

454:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  br label %455

455:                                              ; preds = %454
  %456 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %457 = getelementptr inbounds %struct.jc_test_fixture, ptr %456, i32 0, i32 11
  %458 = load i32, ptr %457, align 8
  %459 = and i32 %458, -16776961
  %460 = or i32 %459, 749056
  store i32 %460, ptr %457, align 8
  %461 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %462 = getelementptr inbounds %struct.jc_test_fixture, ptr %461, i32 0, i32 4
  store ptr @.str.3, ptr %462, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  store i32 0, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  %463 = load ptr, ptr %3, align 8, !tbaa !5
  %464 = load ptr, ptr %7, align 8, !tbaa !5
  %465 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %463, ptr noundef %464, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.470, ptr noundef %35)
  store i32 %465, ptr %37, align 4, !tbaa !9
  %466 = 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 @.str.46, ptr noundef @.str.474, ptr noundef null)
  %467 = icmp eq i32 %466, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br i1 %467, label %468, label %469

468:                                              ; preds = %455
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1233

469:                                              ; preds = %455
  br label %470

470:                                              ; preds = %469
  br label %471

471:                                              ; preds = %470
  br label %472

472:                                              ; preds = %471
  %473 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %474 = getelementptr inbounds %struct.jc_test_fixture, ptr %473, i32 0, i32 11
  %475 = load i32, ptr %474, align 8
  %476 = and i32 %475, -16776961
  %477 = or i32 %476, 749312
  store i32 %477, ptr %474, align 8
  %478 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %479 = getelementptr inbounds %struct.jc_test_fixture, ptr %478, i32 0, i32 4
  store ptr @.str.3, ptr %479, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %480 = load ptr, ptr %35, align 8, !tbaa !5
  %481 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %480, ptr noundef @.str.253, ptr noundef @.str.475)
  %482 = icmp eq i32 %481, 0
  br i1 %482, label %483, label %484

483:                                              ; preds = %472
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1233

484:                                              ; preds = %472
  br label %485

485:                                              ; preds = %484
  br label %486

486:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #6
  %487 = load ptr, ptr %3, align 8, !tbaa !5
  %488 = load ptr, ptr %35, align 8, !tbaa !5
  %489 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef %487, ptr noundef %488)
  store ptr %489, ptr %38, align 8, !tbaa !5
  br label %490

490:                                              ; preds = %486
  %491 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %492 = getelementptr inbounds %struct.jc_test_fixture, ptr %491, i32 0, i32 11
  %493 = load i32, ptr %492, align 8
  %494 = and i32 %493, -16776961
  %495 = or i32 %494, 749824
  store i32 %495, ptr %492, align 8
  %496 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %497 = getelementptr inbounds %struct.jc_test_fixture, ptr %496, i32 0, i32 4
  store ptr @.str.3, ptr %497, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %498 = load ptr, ptr %38, align 8, !tbaa !5
  %499 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %498, ptr noundef @.str.255, ptr noundef @.str.476)
  %500 = icmp eq i32 %499, 0
  br i1 %500, label %501, label %502

501:                                              ; preds = %490
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1232

502:                                              ; preds = %490
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  br label %505

505:                                              ; preds = %504
  %506 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %507 = getelementptr inbounds %struct.jc_test_fixture, ptr %506, i32 0, i32 11
  %508 = load i32, ptr %507, align 8
  %509 = and i32 %508, -16776961
  %510 = or i32 %509, 753664
  store i32 %510, ptr %507, align 8
  %511 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %512 = getelementptr inbounds %struct.jc_test_fixture, ptr %511, i32 0, i32 4
  store ptr @.str.3, ptr %512, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  store i32 0, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  %513 = load ptr, ptr %3, align 8, !tbaa !5
  %514 = load ptr, ptr %5, align 8, !tbaa !5
  %515 = load ptr, ptr %6, align 8, !tbaa !5
  %516 = load ptr, ptr %7, align 8, !tbaa !5
  %517 = load ptr, ptr %35, align 8, !tbaa !5
  %518 = load ptr, ptr %38, align 8, !tbaa !5
  %519 = call i32 @Longtail_CreateVersionIndex(ptr noundef %513, ptr noundef %514, ptr noundef %515, ptr noundef %516, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.470, ptr noundef %517, ptr noundef %518, i32 noundef 16, i32 noundef 0, ptr noundef %39)
  store i32 %519, ptr %41, align 4, !tbaa !9
  %520 = 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) %40, ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef @.str.46, ptr noundef @.str.477, ptr noundef null)
  %521 = icmp eq i32 %520, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  br i1 %521, label %522, label %523

522:                                              ; preds = %505
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1231

523:                                              ; preds = %505
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  br label %526

526:                                              ; preds = %525
  %527 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %528 = getelementptr inbounds %struct.jc_test_fixture, ptr %527, i32 0, i32 11
  %529 = load i32, ptr %528, align 8
  %530 = and i32 %529, -16776961
  %531 = or i32 %530, 753920
  store i32 %531, ptr %528, align 8
  %532 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %533 = getelementptr inbounds %struct.jc_test_fixture, ptr %532, i32 0, i32 4
  store ptr @.str.3, ptr %533, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %534 = load ptr, ptr %39, align 8, !tbaa !5
  %535 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %534, ptr noundef @.str.259, ptr noundef @.str.478)
  %536 = icmp eq i32 %535, 0
  br i1 %536, label %537, label %538

537:                                              ; preds = %526
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1231

538:                                              ; preds = %526
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  %541 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %541)
  store ptr null, ptr %38, align 8, !tbaa !5
  %542 = load ptr, ptr %35, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %542)
  store ptr null, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #6
  br label %543

543:                                              ; preds = %540
  %544 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %545 = getelementptr inbounds %struct.jc_test_fixture, ptr %544, i32 0, i32 11
  %546 = load i32, ptr %545, align 8
  %547 = and i32 %546, -16776961
  %548 = or i32 %547, 755712
  store i32 %548, ptr %545, align 8
  %549 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %550 = getelementptr inbounds %struct.jc_test_fixture, ptr %549, i32 0, i32 4
  store ptr @.str.3, ptr %550, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #6
  store i32 0, ptr %43, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  %551 = load ptr, ptr %3, align 8, !tbaa !5
  %552 = load ptr, ptr %7, align 8, !tbaa !5
  %553 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %551, ptr noundef %552, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.472, ptr noundef %42)
  store i32 %553, ptr %44, align 4, !tbaa !9
  %554 = 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) %43, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef @.str.46, ptr noundef @.str.479, ptr noundef null)
  %555 = icmp eq i32 %554, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  br i1 %555, label %556, label %557

556:                                              ; preds = %543
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1230

557:                                              ; preds = %543
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  %561 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %562 = getelementptr inbounds %struct.jc_test_fixture, ptr %561, i32 0, i32 11
  %563 = load i32, ptr %562, align 8
  %564 = and i32 %563, -16776961
  %565 = or i32 %564, 755968
  store i32 %565, ptr %562, align 8
  %566 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %567 = getelementptr inbounds %struct.jc_test_fixture, ptr %566, i32 0, i32 4
  store ptr @.str.3, ptr %567, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %568 = load ptr, ptr %42, align 8, !tbaa !5
  %569 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %568, ptr noundef @.str.253, ptr noundef @.str.480)
  %570 = icmp eq i32 %569, 0
  br i1 %570, label %571, label %572

571:                                              ; preds = %560
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1230

572:                                              ; preds = %560
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #6
  %575 = load ptr, ptr %3, align 8, !tbaa !5
  %576 = load ptr, ptr %42, align 8, !tbaa !5
  %577 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef %575, ptr noundef %576)
  store ptr %577, ptr %45, align 8, !tbaa !5
  br label %578

578:                                              ; preds = %574
  %579 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %580 = getelementptr inbounds %struct.jc_test_fixture, ptr %579, i32 0, i32 11
  %581 = load i32, ptr %580, align 8
  %582 = and i32 %581, -16776961
  %583 = or i32 %582, 756480
  store i32 %583, ptr %580, align 8
  %584 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %585 = getelementptr inbounds %struct.jc_test_fixture, ptr %584, i32 0, i32 4
  store ptr @.str.3, ptr %585, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %586 = load ptr, ptr %45, align 8, !tbaa !5
  %587 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %586, ptr noundef @.str.255, ptr noundef @.str.481)
  %588 = icmp eq i32 %587, 0
  br i1 %588, label %589, label %590

589:                                              ; preds = %578
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1229

590:                                              ; preds = %578
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  br label %593

593:                                              ; preds = %592
  %594 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %595 = getelementptr inbounds %struct.jc_test_fixture, ptr %594, i32 0, i32 11
  %596 = load i32, ptr %595, align 8
  %597 = and i32 %596, -16776961
  %598 = or i32 %597, 760320
  store i32 %598, ptr %595, align 8
  %599 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %600 = getelementptr inbounds %struct.jc_test_fixture, ptr %599, i32 0, i32 4
  store ptr @.str.3, ptr %600, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  store i32 0, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  %601 = load ptr, ptr %3, align 8, !tbaa !5
  %602 = load ptr, ptr %5, align 8, !tbaa !5
  %603 = load ptr, ptr %6, align 8, !tbaa !5
  %604 = load ptr, ptr %7, align 8, !tbaa !5
  %605 = load ptr, ptr %42, align 8, !tbaa !5
  %606 = load ptr, ptr %45, align 8, !tbaa !5
  %607 = call i32 @Longtail_CreateVersionIndex(ptr noundef %601, ptr noundef %602, ptr noundef %603, ptr noundef %604, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.472, ptr noundef %605, ptr noundef %606, i32 noundef 16, i32 noundef 0, ptr noundef %46)
  store i32 %607, ptr %48, align 4, !tbaa !9
  %608 = 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.482, ptr noundef null)
  %609 = icmp eq i32 %608, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  br i1 %609, label %610, label %611

610:                                              ; preds = %593
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1228

611:                                              ; preds = %593
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613
  %615 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %616 = getelementptr inbounds %struct.jc_test_fixture, ptr %615, i32 0, i32 11
  %617 = load i32, ptr %616, align 8
  %618 = and i32 %617, -16776961
  %619 = or i32 %618, 760576
  store i32 %619, ptr %616, align 8
  %620 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %621 = getelementptr inbounds %struct.jc_test_fixture, ptr %620, i32 0, i32 4
  store ptr @.str.3, ptr %621, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %622 = load ptr, ptr %46, align 8, !tbaa !5
  %623 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %622, ptr noundef @.str.259, ptr noundef @.str.483)
  %624 = icmp eq i32 %623, 0
  br i1 %624, label %625, label %626

625:                                              ; preds = %614
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1228

626:                                              ; preds = %614
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  %629 = load ptr, ptr %45, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %629)
  store ptr null, ptr %45, align 8, !tbaa !5
  %630 = load ptr, ptr %42, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %630)
  store ptr null, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #6
  %631 = load ptr, ptr %9, align 8, !tbaa !5
  %632 = load ptr, ptr %46, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %632, i32 0, i32 4
  %634 = load ptr, ptr %633, align 8, !tbaa !28
  %635 = load i32, ptr %634, align 4, !tbaa !9
  %636 = load ptr, ptr %46, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %636, i32 0, i32 12
  %638 = load ptr, ptr %637, align 8, !tbaa !30
  %639 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %631, i32 noundef %635, ptr noundef %638, i32 noundef 0)
  store ptr %639, ptr %49, align 8, !tbaa !5
  br label %640

640:                                              ; preds = %628
  %641 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %642 = getelementptr inbounds %struct.jc_test_fixture, ptr %641, i32 0, i32 11
  %643 = load i32, ptr %642, align 8
  %644 = and i32 %643, -16776961
  %645 = or i32 %644, 762368
  store i32 %645, ptr %642, align 8
  %646 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %647 = getelementptr inbounds %struct.jc_test_fixture, ptr %646, i32 0, i32 4
  store ptr @.str.3, ptr %647, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %648 = load ptr, ptr %49, align 8, !tbaa !5
  %649 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %648, ptr noundef @.str.484, ptr noundef @.str.485)
  %650 = icmp eq i32 %649, 0
  br i1 %650, label %651, label %652

651:                                              ; preds = %640
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1227

652:                                              ; preds = %640
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #6
  br label %655

655:                                              ; preds = %654
  %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, 764672
  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 !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  store i32 0, ptr %51, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  %663 = load ptr, ptr %5, align 8, !tbaa !5
  %664 = load ptr, ptr %49, align 8, !tbaa !5
  %665 = load ptr, ptr %46, align 8, !tbaa !5
  %666 = call i32 @Longtail_CreateMissingContent(ptr noundef %663, ptr noundef %664, ptr noundef %665, i32 noundef 32, i32 noundef 3, ptr noundef %50)
  store i32 %666, ptr %52, align 4, !tbaa !9
  %667 = 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) %51, ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef @.str.46, ptr noundef @.str.486, ptr noundef null)
  %668 = icmp eq i32 %667, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  br i1 %668, label %669, label %670

669:                                              ; preds = %655
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1226

670:                                              ; preds = %655
  br label %671

671:                                              ; preds = %670
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  %674 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %675 = getelementptr inbounds %struct.jc_test_fixture, ptr %674, i32 0, i32 11
  %676 = load i32, ptr %675, align 8
  %677 = and i32 %676, -16776961
  %678 = or i32 %677, 767488
  store i32 %678, ptr %675, align 8
  %679 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %680 = getelementptr inbounds %struct.jc_test_fixture, ptr %679, i32 0, i32 4
  store ptr @.str.3, ptr %680, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  store i32 0, ptr %53, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  %681 = load ptr, ptr %3, align 8, !tbaa !5
  %682 = load ptr, ptr %9, align 8, !tbaa !5
  %683 = load ptr, ptr %7, align 8, !tbaa !5
  %684 = load ptr, ptr %50, align 8, !tbaa !5
  %685 = load ptr, ptr %46, align 8, !tbaa !5
  %686 = call i32 @Longtail_WriteContent(ptr noundef %681, ptr noundef %682, ptr noundef %683, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %684, ptr noundef %685, ptr noundef @.str.472)
  store i32 %686, ptr %54, align 4, !tbaa !9
  %687 = 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) %53, ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef @.str.46, ptr noundef @.str.487, ptr noundef null)
  %688 = icmp eq i32 %687, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  br i1 %688, label %689, label %690

689:                                              ; preds = %673
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1226

690:                                              ; preds = %673
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  %693 = load ptr, ptr %50, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %693)
  store ptr null, ptr %50, align 8, !tbaa !5
  %694 = load ptr, ptr %49, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %694)
  store ptr null, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  br label %695

695:                                              ; preds = %692
  %696 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %697 = getelementptr inbounds %struct.jc_test_fixture, ptr %696, i32 0, i32 11
  %698 = load i32, ptr %697, align 8
  %699 = and i32 %698, -16776961
  %700 = or i32 %699, 770560
  store i32 %700, ptr %697, align 8
  %701 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %702 = getelementptr inbounds %struct.jc_test_fixture, ptr %701, i32 0, i32 4
  store ptr @.str.3, ptr %702, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  store i32 0, ptr %56, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  %703 = load ptr, ptr %5, align 8, !tbaa !5
  %704 = load ptr, ptr %39, align 8, !tbaa !5
  %705 = load ptr, ptr %46, align 8, !tbaa !5
  %706 = call i32 @Longtail_CreateVersionDiff(ptr noundef %703, ptr noundef %704, ptr noundef %705, ptr noundef %55)
  store i32 %706, ptr %57, align 4, !tbaa !9
  %707 = 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) %56, ptr noundef nonnull align 4 dereferenceable(4) %57, ptr noundef @.str.46, ptr noundef @.str.488, ptr noundef null)
  %708 = icmp eq i32 %707, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  br i1 %708, label %709, label %710

709:                                              ; preds = %695
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1225

710:                                              ; preds = %695
  br label %711

711:                                              ; preds = %710
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712
  %714 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %715 = getelementptr inbounds %struct.jc_test_fixture, ptr %714, i32 0, i32 11
  %716 = load i32, ptr %715, align 8
  %717 = and i32 %716, -16776961
  %718 = or i32 %717, 770816
  store i32 %718, ptr %715, align 8
  %719 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %720 = getelementptr inbounds %struct.jc_test_fixture, ptr %719, i32 0, i32 4
  store ptr @.str.3, ptr %720, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %721 = load ptr, ptr %55, align 8, !tbaa !5
  %722 = call noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_VersionDiffS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %721, ptr noundef @.str.489, ptr noundef @.str.490)
  %723 = icmp eq i32 %722, 0
  br i1 %723, label %724, label %725

724:                                              ; preds = %713
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1225

725:                                              ; preds = %713
  br label %726

726:                                              ; preds = %725
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %727
  %729 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %730 = getelementptr inbounds %struct.jc_test_fixture, ptr %729, i32 0, i32 11
  %731 = load i32, ptr %730, align 8
  %732 = and i32 %731, -16776961
  %733 = or i32 %732, 771328
  store i32 %733, ptr %730, align 8
  %734 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %735 = getelementptr inbounds %struct.jc_test_fixture, ptr %734, i32 0, i32 4
  store ptr @.str.3, ptr %735, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #6
  store i32 3, ptr %58, align 4, !tbaa !9
  %736 = load ptr, ptr %55, align 8, !tbaa !5
  %737 = getelementptr inbounds %struct.Longtail_VersionDiff, ptr %736, i32 0, i32 0
  %738 = load ptr, ptr %737, align 8, !tbaa !31
  %739 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef nonnull align 4 dereferenceable(4) %738, ptr noundef @.str.491, ptr noundef @.str.492)
  %740 = icmp eq i32 %739, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  br i1 %740, label %741, label %742

741:                                              ; preds = %728
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1225

742:                                              ; preds = %728
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  %746 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %747 = getelementptr inbounds %struct.jc_test_fixture, ptr %746, i32 0, i32 11
  %748 = load i32, ptr %747, align 8
  %749 = and i32 %748, -16776961
  %750 = or i32 %749, 771584
  store i32 %750, ptr %747, align 8
  %751 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %752 = getelementptr inbounds %struct.jc_test_fixture, ptr %751, i32 0, i32 4
  store ptr @.str.3, ptr %752, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  store i32 3, ptr %59, align 4, !tbaa !9
  %753 = load ptr, ptr %55, align 8, !tbaa !5
  %754 = getelementptr inbounds %struct.Longtail_VersionDiff, ptr %753, i32 0, i32 1
  %755 = load ptr, ptr %754, align 8, !tbaa !33
  %756 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %59, ptr noundef nonnull align 4 dereferenceable(4) %755, ptr noundef @.str.491, ptr noundef @.str.493)
  %757 = icmp eq i32 %756, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  br i1 %757, label %758, label %759

758:                                              ; preds = %745
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1225

759:                                              ; preds = %745
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  br label %762

762:                                              ; preds = %761
  %763 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %764 = getelementptr inbounds %struct.jc_test_fixture, ptr %763, i32 0, i32 11
  %765 = load i32, ptr %764, align 8
  %766 = and i32 %765, -16776961
  %767 = or i32 %766, 771840
  store i32 %767, ptr %764, align 8
  %768 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %769 = getelementptr inbounds %struct.jc_test_fixture, ptr %768, i32 0, i32 4
  store ptr @.str.3, ptr %769, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #6
  store i32 6, ptr %60, align 4, !tbaa !9
  %770 = load ptr, ptr %55, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.Longtail_VersionDiff, ptr %770, i32 0, i32 2
  %772 = load ptr, ptr %771, align 8, !tbaa !34
  %773 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 4 dereferenceable(4) %772, ptr noundef @.str.494, ptr noundef @.str.495)
  %774 = icmp eq i32 %773, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  br i1 %774, label %775, label %776

775:                                              ; preds = %762
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1225

776:                                              ; preds = %762
  br label %777

777:                                              ; preds = %776
  br label %778

778:                                              ; preds = %777
  br label %779

779:                                              ; preds = %778
  %780 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %781 = getelementptr inbounds %struct.jc_test_fixture, ptr %780, i32 0, i32 11
  %782 = load i32, ptr %781, align 8
  %783 = and i32 %782, -16776961
  %784 = or i32 %783, 772096
  store i32 %784, ptr %781, align 8
  %785 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %786 = getelementptr inbounds %struct.jc_test_fixture, ptr %785, i32 0, i32 4
  store ptr @.str.3, ptr %786, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #6
  store i32 1, ptr %61, align 4, !tbaa !9
  %787 = load ptr, ptr %55, align 8, !tbaa !5
  %788 = getelementptr inbounds %struct.Longtail_VersionDiff, ptr %787, i32 0, i32 3
  %789 = load ptr, ptr %788, align 8, !tbaa !35
  %790 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef nonnull align 4 dereferenceable(4) %789, ptr noundef @.str.496, ptr noundef @.str.497)
  %791 = icmp eq i32 %790, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #6
  br i1 %791, label %792, label %793

792:                                              ; preds = %779
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1225

793:                                              ; preds = %779
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  %796 = load ptr, ptr %46, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %796, i32 0, i32 4
  %798 = load ptr, ptr %797, align 8, !tbaa !28
  %799 = load i32, ptr %798, align 4, !tbaa !9
  %800 = zext i32 %799 to i64
  %801 = mul i64 8, %800
  %802 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %801)
  store ptr %802, ptr %63, align 8, !tbaa !5
  br label %803

803:                                              ; preds = %795
  %804 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %805 = getelementptr inbounds %struct.jc_test_fixture, ptr %804, i32 0, i32 11
  %806 = load i32, ptr %805, align 8
  %807 = and i32 %806, -16776961
  %808 = or i32 %807, 774144
  store i32 %808, ptr %805, align 8
  %809 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %810 = getelementptr inbounds %struct.jc_test_fixture, ptr %809, i32 0, i32 4
  store ptr @.str.3, ptr %810, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #6
  store i32 0, ptr %64, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  %811 = load ptr, ptr %46, align 8, !tbaa !5
  %812 = load ptr, ptr %55, align 8, !tbaa !5
  %813 = load ptr, ptr %63, align 8, !tbaa !5
  %814 = call i32 @Longtail_GetRequiredChunkHashes(ptr noundef %811, ptr noundef %812, ptr noundef %62, ptr noundef %813)
  store i32 %814, ptr %65, align 4, !tbaa !9
  %815 = 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) %64, ptr noundef nonnull align 4 dereferenceable(4) %65, ptr noundef @.str.46, ptr noundef @.str.498, ptr noundef null)
  %816 = icmp eq i32 %815, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  br i1 %816, label %817, label %818

817:                                              ; preds = %803
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1224

818:                                              ; preds = %803
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  %821 = load ptr, ptr %9, align 8, !tbaa !5
  %822 = load i32, ptr %62, align 4, !tbaa !9
  %823 = load ptr, ptr %63, align 8, !tbaa !5
  %824 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %821, i32 noundef %822, ptr noundef %823, i32 noundef 0)
  store ptr %824, ptr %50, align 8, !tbaa !5
  br label %825

825:                                              ; preds = %820
  %826 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %827 = getelementptr inbounds %struct.jc_test_fixture, ptr %826, i32 0, i32 11
  %828 = load i32, ptr %827, align 8
  %829 = and i32 %828, -16776961
  %830 = or i32 %829, 774912
  store i32 %830, ptr %827, align 8
  %831 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %832 = getelementptr inbounds %struct.jc_test_fixture, ptr %831, i32 0, i32 4
  store ptr @.str.3, ptr %832, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %833 = load ptr, ptr %50, align 8, !tbaa !5
  %834 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %833, ptr noundef @.str.484, ptr noundef @.str.499)
  %835 = icmp eq i32 %834, 0
  br i1 %835, label %836, label %837

836:                                              ; preds = %825
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1224

837:                                              ; preds = %825
  br label %838

838:                                              ; preds = %837
  br label %839

839:                                              ; preds = %838
  %840 = load ptr, ptr %63, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %840)
  store ptr null, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #6
  %841 = load ptr, ptr %3, align 8, !tbaa !5
  %842 = load ptr, ptr %46, align 8, !tbaa !5
  %843 = load ptr, ptr %55, align 8, !tbaa !5
  %844 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef %841, ptr noundef %842, ptr noundef %843, ptr noundef @.str.470)
  store ptr %844, ptr %66, align 8, !tbaa !5
  br label %845

845:                                              ; preds = %839
  %846 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %847 = getelementptr inbounds %struct.jc_test_fixture, ptr %846, i32 0, i32 11
  %848 = load i32, ptr %847, align 8
  %849 = and i32 %848, -16776961
  %850 = or i32 %849, 780032
  store i32 %850, ptr %847, align 8
  %851 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %852 = getelementptr inbounds %struct.jc_test_fixture, ptr %851, i32 0, i32 4
  store ptr @.str.3, ptr %852, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #6
  store i32 0, ptr %67, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #6
  %853 = load ptr, ptr %9, align 8, !tbaa !5
  %854 = load ptr, ptr %3, align 8, !tbaa !5
  %855 = load ptr, ptr %66, align 8, !tbaa !5
  %856 = load ptr, ptr %5, align 8, !tbaa !5
  %857 = load ptr, ptr %7, align 8, !tbaa !5
  %858 = load ptr, ptr %50, align 8, !tbaa !5
  %859 = load ptr, ptr %39, align 8, !tbaa !5
  %860 = load ptr, ptr %46, align 8, !tbaa !5
  %861 = load ptr, ptr %55, align 8, !tbaa !5
  %862 = call i32 @Longtail_ChangeVersion2(ptr noundef %853, ptr noundef %854, ptr noundef %855, ptr noundef %856, ptr noundef %857, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %858, ptr noundef %859, ptr noundef %860, ptr noundef %861, ptr noundef @.str.470, i32 noundef 1)
  store i32 %862, ptr %68, align 4, !tbaa !9
  %863 = 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) %67, ptr noundef nonnull align 4 dereferenceable(4) %68, ptr noundef @.str.46, ptr noundef @.str.500, ptr noundef null)
  %864 = icmp eq i32 %863, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #6
  br i1 %864, label %865, label %866

865:                                              ; preds = %845
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1223

866:                                              ; preds = %845
  br label %867

867:                                              ; preds = %866
  br label %868

868:                                              ; preds = %867
  %869 = load ptr, ptr %66, align 8, !tbaa !5
  %870 = icmp ne ptr %869, null
  br i1 %870, label %871, label %874

871:                                              ; preds = %868
  %872 = load ptr, ptr %66, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.Longtail_ConcurrentChunkWriteAPI, ptr %872, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %873)
  br label %874

874:                                              ; preds = %871, %868
  %875 = load ptr, ptr %55, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %875)
  store ptr null, ptr %55, align 8, !tbaa !5
  %876 = load ptr, ptr %50, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %876)
  store ptr null, ptr %50, align 8, !tbaa !5
  br label %877

877:                                              ; preds = %874
  %878 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %879 = getelementptr inbounds %struct.jc_test_fixture, ptr %878, i32 0, i32 11
  %880 = load i32, ptr %879, align 8
  %881 = and i32 %880, -16776961
  %882 = or i32 %881, 783360
  store i32 %882, ptr %879, align 8
  %883 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %884 = getelementptr inbounds %struct.jc_test_fixture, ptr %883, i32 0, i32 4
  store ptr @.str.3, ptr %884, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #6
  store i32 0, ptr %69, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #6
  %885 = load ptr, ptr %5, align 8, !tbaa !5
  %886 = load ptr, ptr %46, align 8, !tbaa !5
  %887 = load ptr, ptr %46, align 8, !tbaa !5
  %888 = call i32 @Longtail_CreateVersionDiff(ptr noundef %885, ptr noundef %886, ptr noundef %887, ptr noundef %55)
  store i32 %888, ptr %70, align 4, !tbaa !9
  %889 = 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) %69, ptr noundef nonnull align 4 dereferenceable(4) %70, ptr noundef @.str.46, ptr noundef @.str.501, ptr noundef null)
  %890 = icmp eq i32 %889, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  br i1 %890, label %891, label %892

891:                                              ; preds = %877
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1223

892:                                              ; preds = %877
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  %896 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %897 = getelementptr inbounds %struct.jc_test_fixture, ptr %896, i32 0, i32 11
  %898 = load i32, ptr %897, align 8
  %899 = and i32 %898, -16776961
  %900 = or i32 %899, 783616
  store i32 %900, ptr %897, align 8
  %901 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %902 = getelementptr inbounds %struct.jc_test_fixture, ptr %901, i32 0, i32 4
  store ptr @.str.3, ptr %902, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %903 = load ptr, ptr %55, align 8, !tbaa !5
  %904 = call noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_VersionDiffS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %903, ptr noundef @.str.489, ptr noundef @.str.490)
  %905 = icmp eq i32 %904, 0
  br i1 %905, label %906, label %907

906:                                              ; preds = %895
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1223

907:                                              ; preds = %895
  br label %908

908:                                              ; preds = %907
  br label %909

909:                                              ; preds = %908
  store i32 0, ptr %62, align 4, !tbaa !9
  %910 = load ptr, ptr %46, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %910, i32 0, i32 4
  %912 = load ptr, ptr %911, align 8, !tbaa !28
  %913 = load i32, ptr %912, align 4, !tbaa !9
  %914 = zext i32 %913 to i64
  %915 = mul i64 8, %914
  %916 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %915)
  store ptr %916, ptr %63, align 8, !tbaa !5
  br label %917

917:                                              ; preds = %909
  %918 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %919 = getelementptr inbounds %struct.jc_test_fixture, ptr %918, i32 0, i32 11
  %920 = load i32, ptr %919, align 8
  %921 = and i32 %920, -16776961
  %922 = or i32 %921, 785664
  store i32 %922, ptr %919, align 8
  %923 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %924 = getelementptr inbounds %struct.jc_test_fixture, ptr %923, i32 0, i32 4
  store ptr @.str.3, ptr %924, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #6
  store i32 0, ptr %71, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #6
  %925 = load ptr, ptr %46, align 8, !tbaa !5
  %926 = load ptr, ptr %55, align 8, !tbaa !5
  %927 = load ptr, ptr %63, align 8, !tbaa !5
  %928 = call i32 @Longtail_GetRequiredChunkHashes(ptr noundef %925, ptr noundef %926, ptr noundef %62, ptr noundef %927)
  store i32 %928, ptr %72, align 4, !tbaa !9
  %929 = 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) %71, ptr noundef nonnull align 4 dereferenceable(4) %72, ptr noundef @.str.46, ptr noundef @.str.498, ptr noundef null)
  %930 = icmp eq i32 %929, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  br i1 %930, label %931, label %932

931:                                              ; preds = %917
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1223

932:                                              ; preds = %917
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933
  %935 = load ptr, ptr %9, align 8, !tbaa !5
  %936 = load i32, ptr %62, align 4, !tbaa !9
  %937 = load ptr, ptr %63, align 8, !tbaa !5
  %938 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %935, i32 noundef %936, ptr noundef %937, i32 noundef 0)
  store ptr %938, ptr %50, align 8, !tbaa !5
  %939 = load ptr, ptr %3, align 8, !tbaa !5
  %940 = load ptr, ptr %46, align 8, !tbaa !5
  %941 = load ptr, ptr %55, align 8, !tbaa !5
  %942 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef %939, ptr noundef %940, ptr noundef %941, ptr noundef @.str.470)
  store ptr %942, ptr %66, align 8, !tbaa !5
  br label %943

943:                                              ; preds = %934
  %944 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %945 = getelementptr inbounds %struct.jc_test_fixture, ptr %944, i32 0, i32 11
  %946 = load i32, ptr %945, align 8
  %947 = and i32 %946, -16776961
  %948 = or i32 %947, 790528
  store i32 %948, ptr %945, align 8
  %949 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %950 = getelementptr inbounds %struct.jc_test_fixture, ptr %949, i32 0, i32 4
  store ptr @.str.3, ptr %950, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #6
  store i32 0, ptr %73, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #6
  %951 = load ptr, ptr %9, align 8, !tbaa !5
  %952 = load ptr, ptr %3, align 8, !tbaa !5
  %953 = load ptr, ptr %66, align 8, !tbaa !5
  %954 = load ptr, ptr %5, align 8, !tbaa !5
  %955 = load ptr, ptr %7, align 8, !tbaa !5
  %956 = load ptr, ptr %50, align 8, !tbaa !5
  %957 = load ptr, ptr %39, align 8, !tbaa !5
  %958 = load ptr, ptr %46, align 8, !tbaa !5
  %959 = load ptr, ptr %55, align 8, !tbaa !5
  %960 = call i32 @Longtail_ChangeVersion2(ptr noundef %951, ptr noundef %952, ptr noundef %953, ptr noundef %954, ptr noundef %955, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %956, ptr noundef %957, ptr noundef %958, ptr noundef %959, ptr noundef @.str.470, i32 noundef 1)
  store i32 %960, ptr %74, align 4, !tbaa !9
  %961 = 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) %73, ptr noundef nonnull align 4 dereferenceable(4) %74, ptr noundef @.str.46, ptr noundef @.str.500, ptr noundef null)
  %962 = icmp eq i32 %961, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  br i1 %962, label %963, label %964

963:                                              ; preds = %943
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1223

964:                                              ; preds = %943
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  %967 = load ptr, ptr %66, align 8, !tbaa !5
  %968 = icmp ne ptr %967, null
  br i1 %968, label %969, label %972

969:                                              ; preds = %966
  %970 = load ptr, ptr %66, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.Longtail_ConcurrentChunkWriteAPI, ptr %970, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %971)
  br label %972

972:                                              ; preds = %969, %966
  %973 = load ptr, ptr %63, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %973)
  %974 = load ptr, ptr %50, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %974)
  %975 = load ptr, ptr %55, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %975)
  %976 = load ptr, ptr %46, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %976)
  %977 = load ptr, ptr %39, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %977)
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #6
  br label %978

978:                                              ; preds = %972
  %979 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %980 = getelementptr inbounds %struct.jc_test_fixture, ptr %979, i32 0, i32 11
  %981 = load i32, ptr %980, align 8
  %982 = and i32 %981, -16776961
  %983 = or i32 %982, 793600
  store i32 %983, ptr %980, align 8
  %984 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %985 = getelementptr inbounds %struct.jc_test_fixture, ptr %984, i32 0, i32 4
  store ptr @.str.3, ptr %985, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #6
  store i32 0, ptr %76, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #6
  %986 = load ptr, ptr %3, align 8, !tbaa !5
  %987 = load ptr, ptr %7, align 8, !tbaa !5
  %988 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %986, ptr noundef %987, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.470, ptr noundef %75)
  store i32 %988, ptr %77, align 4, !tbaa !9
  %989 = 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) %76, ptr noundef nonnull align 4 dereferenceable(4) %77, ptr noundef @.str.46, ptr noundef @.str.502, ptr noundef null)
  %990 = icmp eq i32 %989, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #6
  br i1 %990, label %991, label %992

991:                                              ; preds = %978
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1222

992:                                              ; preds = %978
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  %996 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %997 = getelementptr inbounds %struct.jc_test_fixture, ptr %996, i32 0, i32 11
  %998 = load i32, ptr %997, align 8
  %999 = and i32 %998, -16776961
  %1000 = or i32 %999, 793856
  store i32 %1000, ptr %997, align 8
  %1001 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1002 = getelementptr inbounds %struct.jc_test_fixture, ptr %1001, i32 0, i32 4
  store ptr @.str.3, ptr %1002, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %1003 = load ptr, ptr %75, align 8, !tbaa !5
  %1004 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %1003, ptr noundef @.str.253, ptr noundef @.str.503)
  %1005 = icmp eq i32 %1004, 0
  br i1 %1005, label %1006, label %1007

1006:                                             ; preds = %995
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1222

1007:                                             ; preds = %995
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #6
  store i32 9, ptr %78, align 4, !tbaa !9
  br label %1010

1010:                                             ; preds = %1009
  %1011 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1012 = getelementptr inbounds %struct.jc_test_fixture, ptr %1011, i32 0, i32 11
  %1013 = load i32, ptr %1012, align 8
  %1014 = and i32 %1013, -16776961
  %1015 = or i32 %1014, 794368
  store i32 %1015, ptr %1012, align 8
  %1016 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1017 = getelementptr inbounds %struct.jc_test_fixture, ptr %1016, i32 0, i32 4
  store ptr @.str.3, ptr %1017, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #6
  store i32 19, ptr %79, align 4, !tbaa !9
  %1018 = load ptr, ptr %75, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %1018, i32 0, i32 0
  %1020 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %79, ptr noundef nonnull align 4 dereferenceable(4) %1019, ptr noundef @.str.504, ptr noundef @.str.505)
  %1021 = icmp eq i32 %1020, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  br i1 %1021, label %1022, label %1023

1022:                                             ; preds = %1010
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1221

1023:                                             ; preds = %1010
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  %1026 = load ptr, ptr %75, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %1026)
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #6
  store i32 0, ptr %80, align 4, !tbaa !9
  br label %1027

1027:                                             ; preds = %1173, %1025
  %1028 = load i32, ptr %80, align 4, !tbaa !9
  %1029 = icmp ult i32 %1028, 10
  br i1 %1029, label %1031, label %1030

1030:                                             ; preds = %1027
  store i32 82, ptr %21, align 4
  br label %1176

1031:                                             ; preds = %1027
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #6
  %1032 = load ptr, ptr %3, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1032, i32 0, i32 12
  %1034 = load ptr, ptr %1033, align 8, !tbaa !13
  %1035 = load ptr, ptr %3, align 8, !tbaa !5
  %1036 = load i32, ptr %80, align 4, !tbaa !9
  %1037 = zext i32 %1036 to i64
  %1038 = getelementptr inbounds [10 x ptr], ptr %16, i64 0, i64 %1037
  %1039 = load ptr, ptr %1038, align 8, !tbaa !5
  %1040 = call noundef ptr %1034(ptr noundef %1035, ptr noundef @.str.470, ptr noundef %1039)
  store ptr %1040, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #6
  br label %1041

1041:                                             ; preds = %1031
  %1042 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1043 = getelementptr inbounds %struct.jc_test_fixture, ptr %1042, i32 0, i32 11
  %1044 = load i32, ptr %1043, align 8
  %1045 = and i32 %1044, -16776961
  %1046 = or i32 %1045, 796160
  store i32 %1046, ptr %1043, align 8
  %1047 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1048 = getelementptr inbounds %struct.jc_test_fixture, ptr %1047, i32 0, i32 4
  store ptr @.str.3, ptr %1048, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #6
  store i32 0, ptr %83, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #6
  %1049 = load ptr, ptr %3, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1049, i32 0, i32 1
  %1051 = load ptr, ptr %1050, align 8, !tbaa !36
  %1052 = load ptr, ptr %3, align 8, !tbaa !5
  %1053 = load ptr, ptr %81, align 8, !tbaa !5
  %1054 = call noundef i32 %1051(ptr noundef %1052, ptr noundef %1053, ptr noundef %82)
  store i32 %1054, ptr %84, align 4, !tbaa !9
  %1055 = 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) %83, ptr noundef nonnull align 4 dereferenceable(4) %84, ptr noundef @.str.46, ptr noundef @.str.506, ptr noundef null)
  %1056 = icmp eq i32 %1055, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  br i1 %1056, label %1057, label %1058

1057:                                             ; preds = %1041
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1170

1058:                                             ; preds = %1041
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

1060:                                             ; preds = %1059
  %1061 = load ptr, ptr %81, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %1061)
  br label %1062

1062:                                             ; preds = %1060
  %1063 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1064 = getelementptr inbounds %struct.jc_test_fixture, ptr %1063, i32 0, i32 11
  %1065 = load i32, ptr %1064, align 8
  %1066 = and i32 %1065, -16776961
  %1067 = or i32 %1066, 796672
  store i32 %1067, ptr %1064, align 8
  %1068 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1069 = getelementptr inbounds %struct.jc_test_fixture, ptr %1068, i32 0, i32 4
  store ptr @.str.3, ptr %1069, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %1070 = load ptr, ptr %82, align 8, !tbaa !5
  %1071 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %1070, ptr noundef @.str.388, ptr noundef @.str.507)
  %1072 = icmp eq i32 %1071, 0
  br i1 %1072, label %1073, label %1074

1073:                                             ; preds = %1062
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1170

1074:                                             ; preds = %1062
  br label %1075

1075:                                             ; preds = %1074
  br label %1076

1076:                                             ; preds = %1075
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #6
  br label %1077

1077:                                             ; preds = %1076
  %1078 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1079 = getelementptr inbounds %struct.jc_test_fixture, ptr %1078, i32 0, i32 11
  %1080 = load i32, ptr %1079, align 8
  %1081 = and i32 %1080, -16776961
  %1082 = or i32 %1081, 797184
  store i32 %1082, ptr %1079, align 8
  %1083 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1084 = getelementptr inbounds %struct.jc_test_fixture, ptr %1083, i32 0, i32 4
  store ptr @.str.3, ptr %1084, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #6
  store i32 0, ptr %86, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #6
  %1085 = load ptr, ptr %3, align 8, !tbaa !5
  %1086 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1085, i32 0, i32 2
  %1087 = load ptr, ptr %1086, align 8, !tbaa !37
  %1088 = load ptr, ptr %3, align 8, !tbaa !5
  %1089 = load ptr, ptr %82, align 8, !tbaa !5
  %1090 = call noundef i32 %1087(ptr noundef %1088, ptr noundef %1089, ptr noundef %85)
  store i32 %1090, ptr %87, align 4, !tbaa !9
  %1091 = 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) %86, ptr noundef nonnull align 4 dereferenceable(4) %87, ptr noundef @.str.46, ptr noundef @.str.508, ptr noundef null)
  %1092 = icmp eq i32 %1091, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #6
  br i1 %1092, label %1093, label %1094

1093:                                             ; preds = %1077
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1169

1094:                                             ; preds = %1077
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  %1098 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1099 = getelementptr inbounds %struct.jc_test_fixture, ptr %1098, i32 0, i32 11
  %1100 = load i32, ptr %1099, align 8
  %1101 = and i32 %1100, -16776961
  %1102 = or i32 %1101, 797440
  store i32 %1102, ptr %1099, align 8
  %1103 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1104 = getelementptr inbounds %struct.jc_test_fixture, ptr %1103, i32 0, i32 4
  store ptr @.str.3, ptr %1104, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %1105 = load i32, ptr %80, align 4, !tbaa !9
  %1106 = zext i32 %1105 to i64
  %1107 = getelementptr inbounds [10 x i64], ptr %18, i64 0, i64 %1106
  %1108 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %1107, ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef @.str.509, ptr noundef @.str.510)
  %1109 = icmp eq i32 %1108, 0
  br i1 %1109, label %1110, label %1111

1110:                                             ; preds = %1097
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1169

1111:                                             ; preds = %1097
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #6
  %1114 = load i64, ptr %85, align 8, !tbaa !11
  %1115 = mul i64 1, %1114
  %1116 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %1115)
  store ptr %1116, ptr %88, align 8, !tbaa !5
  %1117 = load i64, ptr %85, align 8, !tbaa !11
  %1118 = icmp ne i64 %1117, 0
  br i1 %1118, label %1119, label %1161

1119:                                             ; preds = %1113
  br label %1120

1120:                                             ; preds = %1119
  %1121 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1122 = getelementptr inbounds %struct.jc_test_fixture, ptr %1121, i32 0, i32 11
  %1123 = load i32, ptr %1122, align 8
  %1124 = and i32 %1123, -16776961
  %1125 = or i32 %1124, 798464
  store i32 %1125, ptr %1122, align 8
  %1126 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1127 = getelementptr inbounds %struct.jc_test_fixture, ptr %1126, i32 0, i32 4
  store ptr @.str.3, ptr %1127, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #6
  store i32 0, ptr %89, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #6
  %1128 = load ptr, ptr %3, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1128, i32 0, i32 3
  %1130 = load ptr, ptr %1129, align 8, !tbaa !38
  %1131 = load ptr, ptr %3, align 8, !tbaa !5
  %1132 = load ptr, ptr %82, align 8, !tbaa !5
  %1133 = load i64, ptr %85, align 8, !tbaa !11
  %1134 = load ptr, ptr %88, align 8, !tbaa !5
  %1135 = call noundef i32 %1130(ptr noundef %1131, ptr noundef %1132, i64 noundef 0, i64 noundef %1133, ptr noundef %1134)
  store i32 %1135, ptr %90, align 4, !tbaa !9
  %1136 = 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) %89, ptr noundef nonnull align 4 dereferenceable(4) %90, ptr noundef @.str.46, ptr noundef @.str.511, ptr noundef null)
  %1137 = icmp eq i32 %1136, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #6
  br i1 %1137, label %1138, label %1139

1138:                                             ; preds = %1120
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1168

1139:                                             ; preds = %1120
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

1142:                                             ; preds = %1141
  %1143 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1144 = getelementptr inbounds %struct.jc_test_fixture, ptr %1143, i32 0, i32 11
  %1145 = load i32, ptr %1144, align 8
  %1146 = and i32 %1145, -16776961
  %1147 = or i32 %1146, 798720
  store i32 %1147, ptr %1144, align 8
  %1148 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %1149 = getelementptr inbounds %struct.jc_test_fixture, ptr %1148, i32 0, i32 4
  store ptr @.str.3, ptr %1149, align 8, !tbaa !16
  call void @_Z28jc_test_increment_assertionsv()
  %1150 = load i32, ptr %80, align 4, !tbaa !9
  %1151 = zext i32 %1150 to i64
  %1152 = getelementptr inbounds [10 x ptr], ptr %17, i64 0, i64 %1151
  %1153 = load ptr, ptr %1152, align 8, !tbaa !5
  %1154 = load ptr, ptr %88, align 8, !tbaa !5
  %1155 = call noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef %1153, ptr noundef %1154, ptr noundef @.str.512, ptr noundef @.str.513)
  %1156 = icmp eq i32 %1155, 0
  br i1 %1156, label %1157, label %1158

1157:                                             ; preds = %1142
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %21, align 4
  br label %1168

1158:                                             ; preds = %1142
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160, %1113
  %1162 = load ptr, ptr %3, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1162, i32 0, i32 9
  %1164 = load ptr, ptr %1163, align 8, !tbaa !21
  %1165 = load ptr, ptr %3, align 8, !tbaa !5
  %1166 = load ptr, ptr %82, align 8, !tbaa !5
  call void %1164(ptr noundef %1165, ptr noundef %1166)
  store ptr null, ptr %82, align 8, !tbaa !5
  %1167 = load ptr, ptr %88, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %1167)
  store ptr null, ptr %88, align 8, !tbaa !5
  store i32 0, ptr %21, align 4
  br label %1168

1168:                                             ; preds = %1161, %1157, %1138
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  br label %1169

1169:                                             ; preds = %1168, %1110, %1093
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  br label %1170

1170:                                             ; preds = %1169, %1073, %1057
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  %1171 = load i32, ptr %21, align 4
  switch i32 %1171, label %1176 [
    i32 0, label %1172
  ]

1172:                                             ; preds = %1170
  br label %1173

1173:                                             ; preds = %1172
  %1174 = load i32, ptr %80, align 4, !tbaa !9
  %1175 = add i32 %1174, 1
  store i32 %1175, ptr %80, align 4, !tbaa !9
  br label %1027, !llvm.loop !39

1176:                                             ; preds = %1170, %1030
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  %1177 = load i32, ptr %21, align 4
  switch i32 %1177, label %1221 [
    i32 82, label %1178
  ]

1178:                                             ; preds = %1176
  %1179 = load ptr, ptr %9, align 8, !tbaa !5
  %1180 = icmp ne ptr %1179, null
  br i1 %1180, label %1181, label %1184

1181:                                             ; preds = %1178
  %1182 = load ptr, ptr %9, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1182, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1183)
  br label %1184

1184:                                             ; preds = %1181, %1178
  %1185 = load ptr, ptr %8, align 8, !tbaa !5
  %1186 = icmp ne ptr %1185, null
  br i1 %1186, label %1187, label %1190

1187:                                             ; preds = %1184
  %1188 = load ptr, ptr %8, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1188, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1189)
  br label %1190

1190:                                             ; preds = %1187, %1184
  %1191 = load ptr, ptr %7, align 8, !tbaa !5
  %1192 = icmp ne ptr %1191, null
  br i1 %1192, label %1193, label %1196

1193:                                             ; preds = %1190
  %1194 = load ptr, ptr %7, align 8, !tbaa !5
  %1195 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %1194, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1195)
  br label %1196

1196:                                             ; preds = %1193, %1190
  %1197 = load ptr, ptr %6, align 8, !tbaa !5
  %1198 = icmp ne ptr %1197, null
  br i1 %1198, label %1199, label %1202

1199:                                             ; preds = %1196
  %1200 = load ptr, ptr %6, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %1200, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1201)
  br label %1202

1202:                                             ; preds = %1199, %1196
  %1203 = load ptr, ptr %5, align 8, !tbaa !5
  %1204 = icmp ne ptr %1203, null
  br i1 %1204, label %1205, label %1208

1205:                                             ; preds = %1202
  %1206 = load ptr, ptr %5, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %1206, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1207)
  br label %1208

1208:                                             ; preds = %1205, %1202
  %1209 = load ptr, ptr %4, align 8, !tbaa !5
  %1210 = icmp ne ptr %1209, null
  br i1 %1210, label %1211, label %1214

1211:                                             ; preds = %1208
  %1212 = load ptr, ptr %4, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %1212, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1213)
  br label %1214

1214:                                             ; preds = %1211, %1208
  %1215 = load ptr, ptr %3, align 8, !tbaa !5
  %1216 = icmp ne ptr %1215, null
  br i1 %1216, label %1217, label %1220

1217:                                             ; preds = %1214
  %1218 = load ptr, ptr %3, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1218, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1219)
  br label %1220

1220:                                             ; preds = %1217, %1214
  store i32 0, ptr %21, align 4
  br label %1221

1221:                                             ; preds = %1220, %1176, %1022
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  br label %1222

1222:                                             ; preds = %1221, %1006, %991
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #6
  br label %1223

1223:                                             ; preds = %1222, %963, %931, %906, %891, %865
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  br label %1224

1224:                                             ; preds = %1223, %836, %817
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  br label %1225

1225:                                             ; preds = %1224, %792, %775, %758, %741, %724, %709
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  br label %1226

1226:                                             ; preds = %1225, %689, %669
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  br label %1227

1227:                                             ; preds = %1226, %651
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  br label %1228

1228:                                             ; preds = %1227, %625, %610
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  br label %1229

1229:                                             ; preds = %1228, %589
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  br label %1230

1230:                                             ; preds = %1229, %571, %556
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  br label %1231

1231:                                             ; preds = %1230, %537, %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  br label %1232

1232:                                             ; preds = %1231, %501
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #6
  br label %1233

1233:                                             ; preds = %1232, %483, %468
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  br label %1234

1234:                                             ; preds = %1233, %452, %325
  call void @llvm.lifetime.end.p0(i64 20, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 80, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 80, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 80, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 20, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 80, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 80, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 80, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  %1235 = load i32, ptr %21, align 4
  switch i32 %1235, label %1237 [
    i32 0, label %1236
    i32 1, label %1236
  ]

1236:                                             ; preds = %1234, %1234
  ret void

1237:                                             ; preds = %1234
  unreachable
}

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

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

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

@.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.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.270 = 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
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_FILENAMES = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_PERMISSIONS = external hidden unnamed_addr constant [10 x i16], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_FILENAMES = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS = external hidden unnamed_addr constant [10 x ptr], align 16
@__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_PERMISSIONS = external hidden unnamed_addr constant [10 x i16], align 16
@.str.470 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.471 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.472 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.473 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.474 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.475 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.476 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.477 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.478 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.479 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.480 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.481 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.482 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.483 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.485 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.486 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.487 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.488 = external hidden unnamed_addr constant [77 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.491 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.492 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.493 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.494 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.495 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.497 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.498 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.499 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.500 = external hidden unnamed_addr constant [168 x i8], align 1
@.str.501 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.502 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.503 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.504 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.505 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.506 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.507 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.508 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.509 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.511 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.512 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.513 = external hidden unnamed_addr constant [10 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 noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) 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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), 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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_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_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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #4 align 2 {
  %2 = alloca [10 x i64], align 16
  %3 = alloca [10 x i64], align 16
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %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 ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca 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 i64, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %62 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %63 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %64 = tail call ptr @Longtail_CreateHPCDCChunkerAPI()
  %65 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %66 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %65, ptr noundef %61, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
  %67 = tail call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %66, ptr noundef %62)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %2) #5
  %68 = load ptr, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, align 16, !tbaa !5
  %69 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %68) #6
  %70 = add i64 %69, 1
  store i64 %70, ptr %2, align 16, !tbaa !9
  %71 = getelementptr inbounds i8, ptr %2, i64 8
  %72 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 8), align 8, !tbaa !5
  %73 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %72) #6
  %74 = add i64 %73, 1
  store i64 %74, ptr %71, align 8, !tbaa !9
  %75 = getelementptr inbounds i8, ptr %2, i64 16
  %76 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 16), align 16, !tbaa !5
  %77 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %76) #6
  %78 = add i64 %77, 1
  store i64 %78, ptr %75, align 16, !tbaa !9
  %79 = getelementptr inbounds i8, ptr %2, i64 24
  %80 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 24), align 8, !tbaa !5
  %81 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %80) #6
  %82 = add i64 %81, 1
  store i64 %82, ptr %79, align 8, !tbaa !9
  %83 = getelementptr inbounds i8, ptr %2, i64 32
  %84 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 32), align 16, !tbaa !5
  %85 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %84) #6
  %86 = add i64 %85, 1
  store i64 %86, ptr %83, align 16, !tbaa !9
  %87 = getelementptr inbounds i8, ptr %2, i64 40
  %88 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 40), align 8, !tbaa !5
  %89 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %88) #6
  %90 = add i64 %89, 1
  store i64 %90, ptr %87, align 8, !tbaa !9
  %91 = getelementptr inbounds i8, ptr %2, i64 48
  %92 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 48), align 16, !tbaa !5
  %93 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %92) #6
  %94 = add i64 %93, 1
  store i64 %94, ptr %91, align 16, !tbaa !9
  %95 = getelementptr inbounds i8, ptr %2, i64 56
  %96 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 56), align 8, !tbaa !5
  %97 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %96) #6
  %98 = add i64 %97, 1
  store i64 %98, ptr %95, align 8, !tbaa !9
  %99 = getelementptr inbounds i8, ptr %2, i64 64
  %100 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 64), align 16, !tbaa !5
  %101 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %100) #6
  %102 = add i64 %101, 1
  store i64 %102, ptr %99, align 16, !tbaa !9
  %103 = getelementptr inbounds i8, ptr %2, i64 72
  %104 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 72), align 8, !tbaa !5
  %105 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %104) #6
  %106 = add i64 %105, 1
  store i64 %106, ptr %103, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %3) #5
  %107 = load ptr, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, align 16, !tbaa !5
  %108 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %107) #6
  %109 = add i64 %108, 1
  store i64 %109, ptr %3, align 16, !tbaa !9
  %110 = getelementptr inbounds i8, ptr %3, i64 8
  %111 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 8), align 8, !tbaa !5
  %112 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %111) #6
  %113 = add i64 %112, 1
  store i64 %113, ptr %110, align 8, !tbaa !9
  %114 = getelementptr inbounds i8, ptr %3, i64 16
  %115 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 16), align 16, !tbaa !5
  %116 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %115) #6
  %117 = add i64 %116, 1
  store i64 %117, ptr %114, align 16, !tbaa !9
  %118 = getelementptr inbounds i8, ptr %3, i64 24
  %119 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 24), align 8, !tbaa !5
  %120 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %119) #6
  %121 = add i64 %120, 1
  store i64 %121, ptr %118, align 8, !tbaa !9
  %122 = getelementptr inbounds i8, ptr %3, i64 32
  %123 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 32), align 16, !tbaa !5
  %124 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %123) #6
  %125 = add i64 %124, 1
  store i64 %125, ptr %122, align 16, !tbaa !9
  %126 = getelementptr inbounds i8, ptr %3, i64 40
  %127 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 40), align 8, !tbaa !5
  %128 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %127) #6
  %129 = add i64 %128, 1
  store i64 %129, ptr %126, align 8, !tbaa !9
  %130 = getelementptr inbounds i8, ptr %3, i64 48
  %131 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 48), align 16, !tbaa !5
  %132 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %131) #6
  %133 = add i64 %132, 1
  store i64 %133, ptr %130, align 16, !tbaa !9
  %134 = getelementptr inbounds i8, ptr %3, i64 56
  %135 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 56), align 8, !tbaa !5
  %136 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %135) #6
  %137 = add i64 %136, 1
  store i64 %137, ptr %134, align 8, !tbaa !9
  %138 = getelementptr inbounds i8, ptr %3, i64 64
  %139 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 64), align 16, !tbaa !5
  %140 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %139) #6
  %141 = add i64 %140, 1
  store i64 %141, ptr %138, align 16, !tbaa !9
  %142 = getelementptr inbounds i8, ptr %3, i64 72
  %143 = load ptr, ptr getelementptr inbounds (i8, ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 72), align 8, !tbaa !5
  %144 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %143) #6
  %145 = add i64 %144, 1
  store i64 %145, ptr %142, align 8, !tbaa !9
  %146 = getelementptr inbounds i8, ptr %61, i64 96
  %147 = getelementptr inbounds i8, ptr %61, i64 32
  %148 = getelementptr inbounds i8, ptr %61, i64 40
  %149 = getelementptr inbounds i8, ptr %61, i64 72
  %150 = getelementptr inbounds i8, ptr %61, i64 56
  br label %151

151:                                              ; preds = %1, %207
  %indvars.iv = phi i64 [ 0, %1 ], [ %indvars.iv.next, %207 ]
  %152 = load ptr, ptr %146, align 8, !tbaa !11
  %153 = getelementptr inbounds [10 x ptr], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_FILENAMES, i64 0, i64 %indvars.iv
  %154 = load ptr, ptr %153, align 8, !tbaa !5
  %155 = call noundef ptr %152(ptr noundef %61, ptr noundef nonnull @.str.470, ptr noundef %154)
  %156 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %157 = getelementptr inbounds i8, ptr %156, i64 96
  %158 = load i32, ptr %157, align 8
  %159 = and i32 %158, -16776961
  %160 = or disjoint i32 %159, 740864
  store i32 %160, ptr %157, align 8
  %161 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %162 = getelementptr inbounds i8, ptr %161, i64 32
  store ptr @.str.3, ptr %162, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %163 = call noundef i32 @_ZL16CreateParentPathP19Longtail_StorageAPIPKc(ptr noundef %61, ptr noundef %155)
  %164 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %163, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.386)
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %.thread, label %166

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

166:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #5
  %167 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %168 = getelementptr inbounds i8, ptr %167, i64 96
  %169 = load i32, ptr %168, align 8
  %170 = and i32 %169, -16776961
  %171 = or disjoint i32 %170, 741376
  store i32 %171, ptr %168, align 8
  %172 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %173 = getelementptr inbounds i8, ptr %172, i64 32
  store ptr @.str.3, ptr %173, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #5
  store i32 0, ptr %5, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  %174 = load ptr, ptr %147, align 8, !tbaa !19
  %175 = call noundef i32 %174(ptr noundef nonnull %61, ptr noundef %155, i64 noundef 0, ptr noundef nonnull %4)
  store i32 %175, ptr %6, align 4, !tbaa !18
  %176 = 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) %5, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.387, ptr noundef null)
  %177 = icmp eq i32 %176, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #5
  br i1 %177, label %.thread178, label %178

178:                                              ; preds = %166
  %179 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %180 = getelementptr inbounds i8, ptr %179, i64 96
  %181 = load i32, ptr %180, align 8
  %182 = and i32 %181, -16776961
  %183 = or disjoint i32 %182, 741632
  store i32 %183, ptr %180, align 8
  %184 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %185 = getelementptr inbounds i8, ptr %184, i64 32
  store ptr @.str.3, ptr %185, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %186 = load ptr, ptr %4, align 8, !tbaa !5
  %187 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %186, ptr noundef nonnull @.str.388, ptr noundef nonnull @.str.389)
  %188 = icmp eq i32 %187, 0
  br i1 %188, label %.thread178, label %189

189:                                              ; preds = %178
  %190 = getelementptr inbounds [10 x i64], ptr %2, i64 0, i64 %indvars.iv
  %191 = load i64, ptr %190, align 8, !tbaa !9
  %.not = icmp eq i64 %191, 0
  br i1 %.not, label %207, label %192

192:                                              ; preds = %189
  %193 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %194 = getelementptr inbounds i8, ptr %193, i64 96
  %195 = load i32, ptr %194, align 8
  %196 = and i32 %195, -16776961
  %197 = or disjoint i32 %196, 742400
  store i32 %197, ptr %194, align 8
  %198 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %199 = getelementptr inbounds i8, ptr %198, i64 32
  store ptr @.str.3, ptr %199, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #5
  store i32 0, ptr %7, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  %200 = load ptr, ptr %148, align 8, !tbaa !20
  %201 = load ptr, ptr %4, align 8, !tbaa !5
  %202 = getelementptr inbounds [10 x ptr], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_STRINGS, i64 0, i64 %indvars.iv
  %203 = load ptr, ptr %202, align 8, !tbaa !5
  %204 = call noundef i32 %200(ptr noundef nonnull %61, ptr noundef %201, i64 noundef 0, i64 noundef %191, ptr noundef %203)
  store i32 %204, ptr %8, align 4, !tbaa !18
  %205 = 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.471, ptr noundef null)
  %206 = icmp eq i32 %205, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  br i1 %206, label %.thread178, label %207

.thread178:                                       ; preds = %192, %178, %166
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #5
  br label %804

207:                                              ; preds = %192, %189
  %208 = load ptr, ptr %149, align 8, !tbaa !21
  %209 = load ptr, ptr %4, align 8, !tbaa !5
  call void %208(ptr noundef nonnull %61, ptr noundef %209)
  store ptr null, ptr %4, align 8, !tbaa !5
  %210 = load ptr, ptr %150, align 8, !tbaa !22
  %211 = getelementptr inbounds [10 x i16], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.OLD_TEST_PERMISSIONS, i64 0, i64 %indvars.iv
  %212 = load i16, ptr %211, align 2, !tbaa !23
  %213 = call noundef i32 %210(ptr noundef nonnull %61, ptr noundef %155, i16 noundef zeroext %212)
  call void @Longtail_Free(ptr noundef %155)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp eq i64 %indvars.iv.next, 10
  br i1 %exitcond, label %.critedge.preheader, label %151, !llvm.loop !25

.critedge.preheader:                              ; preds = %207, %.critedge
  %indvars.iv200 = phi i64 [ %indvars.iv.next201, %.critedge ], [ 0, %207 ]
  %214 = load ptr, ptr %146, align 8, !tbaa !11
  %215 = getelementptr inbounds [10 x ptr], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_FILENAMES, i64 0, i64 %indvars.iv200
  %216 = load ptr, ptr %215, align 8, !tbaa !5
  %217 = call noundef ptr %214(ptr noundef nonnull %61, ptr noundef nonnull @.str.472, ptr noundef %216)
  %218 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %219 = getelementptr inbounds i8, ptr %218, i64 96
  %220 = load i32, ptr %219, align 8
  %221 = and i32 %220, -16776961
  %222 = or disjoint i32 %221, 745216
  store i32 %222, ptr %219, align 8
  %223 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %224 = getelementptr inbounds i8, ptr %223, i64 32
  store ptr @.str.3, ptr %224, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %225 = call noundef i32 @_ZL16CreateParentPathP19Longtail_StorageAPIPKc(ptr noundef nonnull %61, ptr noundef %217)
  %226 = call noundef i32 @_Z14jc_test_cmp_NEIiiEiT_T0_PKcS3_(i32 noundef 0, i32 noundef %225, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.386)
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %.thread181, label %228

.thread181:                                       ; preds = %.critedge.preheader
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %804

228:                                              ; preds = %.critedge.preheader
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %229 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %230 = getelementptr inbounds i8, ptr %229, i64 96
  %231 = load i32, ptr %230, align 8
  %232 = and i32 %231, -16776961
  %233 = or disjoint i32 %232, 745728
  store i32 %233, ptr %230, align 8
  %234 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %235 = getelementptr inbounds i8, ptr %234, i64 32
  store ptr @.str.3, ptr %235, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  store i32 0, ptr %10, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  %236 = load ptr, ptr %147, align 8, !tbaa !19
  %237 = call noundef i32 %236(ptr noundef nonnull %61, ptr noundef %217, i64 noundef 0, ptr noundef nonnull %9)
  store i32 %237, ptr %11, align 4, !tbaa !18
  %238 = 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) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.387, ptr noundef null)
  %239 = icmp eq i32 %238, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  br i1 %239, label %.thread185, label %240

240:                                              ; preds = %228
  %241 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %242 = getelementptr inbounds i8, ptr %241, i64 96
  %243 = load i32, ptr %242, align 8
  %244 = and i32 %243, -16776961
  %245 = or disjoint i32 %244, 745984
  store i32 %245, ptr %242, align 8
  %246 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %247 = getelementptr inbounds i8, ptr %246, i64 32
  store ptr @.str.3, ptr %247, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %248 = load ptr, ptr %9, align 8, !tbaa !5
  %249 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %248, ptr noundef nonnull @.str.388, ptr noundef nonnull @.str.389)
  %250 = icmp eq i32 %249, 0
  br i1 %250, label %.thread185, label %251

251:                                              ; preds = %240
  %252 = getelementptr inbounds [10 x i64], ptr %3, i64 0, i64 %indvars.iv200
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %.not161 = icmp eq i64 %253, 0
  br i1 %.not161, label %.critedge, label %254

254:                                              ; preds = %251
  %255 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %256 = getelementptr inbounds i8, ptr %255, i64 96
  %257 = load i32, ptr %256, align 8
  %258 = and i32 %257, -16776961
  %259 = or disjoint i32 %258, 746752
  store i32 %259, ptr %256, align 8
  %260 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %261 = getelementptr inbounds i8, ptr %260, i64 32
  store ptr @.str.3, ptr %261, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #5
  store i32 0, ptr %12, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  %262 = load ptr, ptr %148, align 8, !tbaa !20
  %263 = load ptr, ptr %9, align 8, !tbaa !5
  %264 = load i64, ptr %252, align 8, !tbaa !9
  %265 = getelementptr inbounds [10 x ptr], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 0, i64 %indvars.iv200
  %266 = load ptr, ptr %265, align 8, !tbaa !5
  %267 = call noundef i32 %262(ptr noundef nonnull %61, ptr noundef %263, i64 noundef 0, i64 noundef %264, ptr noundef %266)
  store i32 %267, ptr %13, align 4, !tbaa !18
  %268 = 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.473, ptr noundef null)
  %269 = icmp eq i32 %268, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #5
  br i1 %269, label %.thread185, label %.critedge

.thread185:                                       ; preds = %254, %240, %228
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  br label %804

.critedge:                                        ; preds = %254, %251
  %270 = load ptr, ptr %149, align 8, !tbaa !21
  %271 = load ptr, ptr %9, align 8, !tbaa !5
  call void %270(ptr noundef nonnull %61, ptr noundef %271)
  store ptr null, ptr %9, align 8, !tbaa !5
  %272 = load ptr, ptr %150, align 8, !tbaa !22
  %273 = getelementptr inbounds [10 x i16], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_PERMISSIONS, i64 0, i64 %indvars.iv200
  %274 = load i16, ptr %273, align 2, !tbaa !23
  %275 = call noundef i32 %272(ptr noundef nonnull %61, ptr noundef %217, i16 noundef zeroext %274)
  call void @Longtail_Free(ptr noundef %217)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  %indvars.iv.next201 = add nuw nsw i64 %indvars.iv200, 1
  %exitcond203 = icmp eq i64 %indvars.iv.next201, 10
  br i1 %exitcond203, label %.critedge173, label %.critedge.preheader, !llvm.loop !27

.critedge173:                                     ; preds = %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %276 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %277 = getelementptr inbounds i8, ptr %276, i64 96
  %278 = load i32, ptr %277, align 8
  %279 = and i32 %278, -16776961
  %280 = or disjoint i32 %279, 749056
  store i32 %280, ptr %277, align 8
  %281 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %282 = getelementptr inbounds i8, ptr %281, i64 32
  store ptr @.str.3, ptr %282, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #5
  store i32 0, ptr %15, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  %283 = call i32 @Longtail_GetFilesRecursively2(ptr noundef nonnull %61, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.470, ptr noundef nonnull %14)
  store i32 %283, ptr %16, align 4, !tbaa !18
  %284 = 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.474, ptr noundef null)
  %285 = icmp eq i32 %284, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #5
  br i1 %285, label %286, label %287

286:                                              ; preds = %.critedge173
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %803

287:                                              ; preds = %.critedge173
  %288 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %289 = getelementptr inbounds i8, ptr %288, i64 96
  %290 = load i32, ptr %289, align 8
  %291 = and i32 %290, -16776961
  %292 = or disjoint i32 %291, 749312
  store i32 %292, ptr %289, align 8
  %293 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %294 = getelementptr inbounds i8, ptr %293, i64 32
  store ptr @.str.3, ptr %294, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %295 = load ptr, ptr %14, align 8, !tbaa !5
  %296 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %295, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.475)
  %297 = icmp eq i32 %296, 0
  br i1 %297, label %298, label %299

298:                                              ; preds = %287
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %803

299:                                              ; preds = %287
  %300 = load ptr, ptr %14, align 8, !tbaa !5
  %301 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef nonnull %61, ptr noundef %300)
  %302 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %303 = getelementptr inbounds i8, ptr %302, i64 96
  %304 = load i32, ptr %303, align 8
  %305 = and i32 %304, -16776961
  %306 = or disjoint i32 %305, 749824
  store i32 %306, ptr %303, align 8
  %307 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %308 = getelementptr inbounds i8, ptr %307, i64 32
  store ptr @.str.3, ptr %308, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %309 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %301, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.476)
  %310 = icmp eq i32 %309, 0
  br i1 %310, label %311, label %312

311:                                              ; preds = %299
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %803

312:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  %313 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %314 = getelementptr inbounds i8, ptr %313, i64 96
  %315 = load i32, ptr %314, align 8
  %316 = and i32 %315, -16776961
  %317 = or disjoint i32 %316, 753664
  store i32 %317, ptr %314, align 8
  %318 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %319 = getelementptr inbounds i8, ptr %318, i64 32
  store ptr @.str.3, ptr %319, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  store i32 0, ptr %18, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  %320 = load ptr, ptr %14, align 8, !tbaa !5
  %321 = call i32 @Longtail_CreateVersionIndex(ptr noundef nonnull %61, ptr noundef %63, ptr noundef %64, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.470, ptr noundef %320, ptr noundef %301, i32 noundef 16, i32 noundef 0, ptr noundef nonnull %17)
  store i32 %321, ptr %19, align 4, !tbaa !18
  %322 = 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.477, ptr noundef null)
  %323 = icmp eq i32 %322, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  br i1 %323, label %324, label %325

324:                                              ; preds = %312
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %802

325:                                              ; preds = %312
  %326 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %327 = getelementptr inbounds i8, ptr %326, i64 96
  %328 = load i32, ptr %327, align 8
  %329 = and i32 %328, -16776961
  %330 = or disjoint i32 %329, 753920
  store i32 %330, ptr %327, align 8
  %331 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %332 = getelementptr inbounds i8, ptr %331, i64 32
  store ptr @.str.3, ptr %332, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %333 = load ptr, ptr %17, align 8, !tbaa !5
  %334 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %333, ptr noundef nonnull @.str.259, ptr noundef nonnull @.str.478)
  %335 = icmp eq i32 %334, 0
  br i1 %335, label %336, label %337

336:                                              ; preds = %325
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %802

337:                                              ; preds = %325
  call void @Longtail_Free(ptr noundef %301)
  %338 = load ptr, ptr %14, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %338)
  store ptr null, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  %339 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %340 = getelementptr inbounds i8, ptr %339, i64 96
  %341 = load i32, ptr %340, align 8
  %342 = and i32 %341, -16776961
  %343 = or disjoint i32 %342, 755712
  store i32 %343, ptr %340, align 8
  %344 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %345 = getelementptr inbounds i8, ptr %344, i64 32
  store ptr @.str.3, ptr %345, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  store i32 0, ptr %21, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  %346 = call i32 @Longtail_GetFilesRecursively2(ptr noundef nonnull %61, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.472, ptr noundef nonnull %20)
  store i32 %346, ptr %22, align 4, !tbaa !18
  %347 = 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.479, ptr noundef null)
  %348 = icmp eq i32 %347, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  br i1 %348, label %349, label %350

349:                                              ; preds = %337
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %801

350:                                              ; preds = %337
  %351 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %352 = getelementptr inbounds i8, ptr %351, i64 96
  %353 = load i32, ptr %352, align 8
  %354 = and i32 %353, -16776961
  %355 = or disjoint i32 %354, 755968
  store i32 %355, ptr %352, align 8
  %356 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %357 = getelementptr inbounds i8, ptr %356, i64 32
  store ptr @.str.3, ptr %357, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %358 = load ptr, ptr %20, align 8, !tbaa !5
  %359 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %358, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.480)
  %360 = icmp eq i32 %359, 0
  br i1 %360, label %361, label %362

361:                                              ; preds = %350
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %801

362:                                              ; preds = %350
  %363 = load ptr, ptr %20, align 8, !tbaa !5
  %364 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef nonnull %61, ptr noundef %363)
  %365 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %366 = getelementptr inbounds i8, ptr %365, i64 96
  %367 = load i32, ptr %366, align 8
  %368 = and i32 %367, -16776961
  %369 = or disjoint i32 %368, 756480
  store i32 %369, ptr %366, align 8
  %370 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %371 = getelementptr inbounds i8, ptr %370, i64 32
  store ptr @.str.3, ptr %371, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %372 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %364, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.481)
  %373 = icmp eq i32 %372, 0
  br i1 %373, label %374, label %375

374:                                              ; preds = %362
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %801

375:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  %376 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %377 = getelementptr inbounds i8, ptr %376, i64 96
  %378 = load i32, ptr %377, align 8
  %379 = and i32 %378, -16776961
  %380 = or disjoint i32 %379, 760320
  store i32 %380, ptr %377, align 8
  %381 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %382 = getelementptr inbounds i8, ptr %381, i64 32
  store ptr @.str.3, ptr %382, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  store i32 0, ptr %24, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  %383 = load ptr, ptr %20, align 8, !tbaa !5
  %384 = call i32 @Longtail_CreateVersionIndex(ptr noundef nonnull %61, ptr noundef %63, ptr noundef %64, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.472, ptr noundef %383, ptr noundef %364, i32 noundef 16, i32 noundef 0, ptr noundef nonnull %23)
  store i32 %384, ptr %25, align 4, !tbaa !18
  %385 = 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.482, ptr noundef null)
  %386 = icmp eq i32 %385, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br i1 %386, label %387, label %388

387:                                              ; preds = %375
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %800

388:                                              ; preds = %375
  %389 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %390 = getelementptr inbounds i8, ptr %389, i64 96
  %391 = load i32, ptr %390, align 8
  %392 = and i32 %391, -16776961
  %393 = or disjoint i32 %392, 760576
  store i32 %393, ptr %390, align 8
  %394 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %395 = getelementptr inbounds i8, ptr %394, i64 32
  store ptr @.str.3, ptr %395, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %396 = load ptr, ptr %23, align 8, !tbaa !5
  %397 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %396, ptr noundef nonnull @.str.259, ptr noundef nonnull @.str.483)
  %398 = icmp eq i32 %397, 0
  br i1 %398, label %399, label %400

399:                                              ; preds = %388
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %800

400:                                              ; preds = %388
  call void @Longtail_Free(ptr noundef %364)
  %401 = load ptr, ptr %20, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %401)
  store ptr null, ptr %20, align 8, !tbaa !5
  %402 = load ptr, ptr %23, align 8, !tbaa !5
  %403 = getelementptr inbounds i8, ptr %402, i64 32
  %404 = load ptr, ptr %403, align 8, !tbaa !28
  %405 = load i32, ptr %404, align 4, !tbaa !18
  %406 = getelementptr inbounds i8, ptr %402, i64 96
  %407 = load ptr, ptr %406, align 8, !tbaa !30
  %408 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %67, i32 noundef %405, ptr noundef %407, i32 noundef 0)
  %409 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %410 = getelementptr inbounds i8, ptr %409, i64 96
  %411 = load i32, ptr %410, align 8
  %412 = and i32 %411, -16776961
  %413 = or disjoint i32 %412, 762368
  store i32 %413, ptr %410, align 8
  %414 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %415 = getelementptr inbounds i8, ptr %414, i64 32
  store ptr @.str.3, ptr %415, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %416 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %408, ptr noundef nonnull @.str.484, ptr noundef nonnull @.str.485)
  %417 = icmp eq i32 %416, 0
  br i1 %417, label %418, label %419

418:                                              ; preds = %400
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %800

419:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  %420 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %421 = getelementptr inbounds i8, ptr %420, i64 96
  %422 = load i32, ptr %421, align 8
  %423 = and i32 %422, -16776961
  %424 = or disjoint i32 %423, 764672
  store i32 %424, ptr %421, align 8
  %425 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %426 = getelementptr inbounds i8, ptr %425, i64 32
  store ptr @.str.3, ptr %426, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  store i32 0, ptr %27, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  %427 = load ptr, ptr %23, align 8, !tbaa !5
  %428 = call i32 @Longtail_CreateMissingContent(ptr noundef %63, ptr noundef %408, ptr noundef %427, i32 noundef 32, i32 noundef 3, ptr noundef nonnull %26)
  store i32 %428, ptr %28, align 4, !tbaa !18
  %429 = 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 nonnull @.str.46, ptr noundef nonnull @.str.486, ptr noundef null)
  %430 = icmp eq i32 %429, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  br i1 %430, label %431, label %432

431:                                              ; preds = %419
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %799

432:                                              ; preds = %419
  %433 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %434 = getelementptr inbounds i8, ptr %433, i64 96
  %435 = load i32, ptr %434, align 8
  %436 = and i32 %435, -16776961
  %437 = or disjoint i32 %436, 767488
  store i32 %437, ptr %434, align 8
  %438 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %439 = getelementptr inbounds i8, ptr %438, i64 32
  store ptr @.str.3, ptr %439, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  store i32 0, ptr %29, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  %440 = load ptr, ptr %26, align 8, !tbaa !5
  %441 = load ptr, ptr %23, align 8, !tbaa !5
  %442 = call i32 @Longtail_WriteContent(ptr noundef nonnull %61, ptr noundef %67, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %440, ptr noundef %441, ptr noundef nonnull @.str.472)
  store i32 %442, ptr %30, align 4, !tbaa !18
  %443 = 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.487, ptr noundef null)
  %444 = icmp eq i32 %443, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  br i1 %444, label %445, label %446

445:                                              ; preds = %432
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %799

446:                                              ; preds = %432
  %447 = load ptr, ptr %26, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %447)
  store ptr null, ptr %26, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %408)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  %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, 770560
  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 !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #5
  store i32 0, ptr %32, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #5
  %455 = load ptr, ptr %17, align 8, !tbaa !5
  %456 = load ptr, ptr %23, align 8, !tbaa !5
  %457 = call i32 @Longtail_CreateVersionDiff(ptr noundef %63, ptr noundef %455, ptr noundef %456, ptr noundef nonnull %31)
  store i32 %457, ptr %33, align 4, !tbaa !18
  %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) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.488, ptr noundef null)
  %459 = icmp eq i32 %458, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  br i1 %459, label %460, label %461

460:                                              ; preds = %446
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %798

461:                                              ; preds = %446
  %462 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %463 = getelementptr inbounds i8, ptr %462, i64 96
  %464 = load i32, ptr %463, align 8
  %465 = and i32 %464, -16776961
  %466 = or disjoint i32 %465, 770816
  store i32 %466, ptr %463, align 8
  %467 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %468 = getelementptr inbounds i8, ptr %467, i64 32
  store ptr @.str.3, ptr %468, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %469 = load ptr, ptr %31, align 8, !tbaa !5
  %470 = call noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_VersionDiffS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %469, ptr noundef nonnull @.str.489, ptr noundef nonnull @.str.490)
  %471 = icmp eq i32 %470, 0
  br i1 %471, label %472, label %473

472:                                              ; preds = %461
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %798

473:                                              ; preds = %461
  %474 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %475 = getelementptr inbounds i8, ptr %474, i64 96
  %476 = load i32, ptr %475, align 8
  %477 = and i32 %476, -16776961
  %478 = or disjoint i32 %477, 771328
  store i32 %478, ptr %475, align 8
  %479 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %480 = getelementptr inbounds i8, ptr %479, i64 32
  store ptr @.str.3, ptr %480, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #5
  store i32 3, ptr %34, align 4, !tbaa !18
  %481 = load ptr, ptr %31, align 8, !tbaa !5
  %482 = load ptr, ptr %481, align 8, !tbaa !31
  %483 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %482, ptr noundef nonnull @.str.491, ptr noundef nonnull @.str.492)
  %484 = icmp eq i32 %483, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  br i1 %484, label %485, label %486

485:                                              ; preds = %473
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %798

486:                                              ; preds = %473
  %487 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %488 = getelementptr inbounds i8, ptr %487, i64 96
  %489 = load i32, ptr %488, align 8
  %490 = and i32 %489, -16776961
  %491 = or disjoint i32 %490, 771584
  store i32 %491, ptr %488, align 8
  %492 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %493 = getelementptr inbounds i8, ptr %492, i64 32
  store ptr @.str.3, ptr %493, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  store i32 3, ptr %35, align 4, !tbaa !18
  %494 = load ptr, ptr %31, align 8, !tbaa !5
  %495 = getelementptr inbounds i8, ptr %494, i64 8
  %496 = load ptr, ptr %495, align 8, !tbaa !33
  %497 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %496, ptr noundef nonnull @.str.491, ptr noundef nonnull @.str.493)
  %498 = icmp eq i32 %497, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  br i1 %498, label %499, label %500

499:                                              ; preds = %486
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %798

500:                                              ; preds = %486
  %501 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %502 = getelementptr inbounds i8, ptr %501, i64 96
  %503 = load i32, ptr %502, align 8
  %504 = and i32 %503, -16776961
  %505 = or disjoint i32 %504, 771840
  store i32 %505, ptr %502, align 8
  %506 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %507 = getelementptr inbounds i8, ptr %506, i64 32
  store ptr @.str.3, ptr %507, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  store i32 6, ptr %36, align 4, !tbaa !18
  %508 = load ptr, ptr %31, align 8, !tbaa !5
  %509 = getelementptr inbounds i8, ptr %508, i64 16
  %510 = load ptr, ptr %509, align 8, !tbaa !34
  %511 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %510, ptr noundef nonnull @.str.494, ptr noundef nonnull @.str.495)
  %512 = icmp eq i32 %511, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  br i1 %512, label %513, label %514

513:                                              ; preds = %500
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %798

514:                                              ; preds = %500
  %515 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %516 = getelementptr inbounds i8, ptr %515, i64 96
  %517 = load i32, ptr %516, align 8
  %518 = and i32 %517, -16776961
  %519 = or disjoint i32 %518, 772096
  store i32 %519, ptr %516, align 8
  %520 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %521 = getelementptr inbounds i8, ptr %520, i64 32
  store ptr @.str.3, ptr %521, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  store i32 1, ptr %37, align 4, !tbaa !18
  %522 = load ptr, ptr %31, align 8, !tbaa !5
  %523 = getelementptr inbounds i8, ptr %522, i64 24
  %524 = load ptr, ptr %523, align 8, !tbaa !35
  %525 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %524, ptr noundef nonnull @.str.496, ptr noundef nonnull @.str.497)
  %526 = icmp eq i32 %525, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  br i1 %526, label %527, label %528

527:                                              ; preds = %514
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %798

528:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #5
  %529 = load ptr, ptr %23, align 8, !tbaa !5
  %530 = getelementptr inbounds i8, ptr %529, i64 32
  %531 = load ptr, ptr %530, align 8, !tbaa !28
  %532 = load i32, ptr %531, align 4, !tbaa !18
  %533 = zext i32 %532 to i64
  %534 = shl nuw nsw i64 %533, 3
  %535 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %534)
  %536 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %537 = getelementptr inbounds i8, ptr %536, i64 96
  %538 = load i32, ptr %537, align 8
  %539 = and i32 %538, -16776961
  %540 = or disjoint i32 %539, 774144
  store i32 %540, ptr %537, align 8
  %541 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %542 = getelementptr inbounds i8, ptr %541, i64 32
  store ptr @.str.3, ptr %542, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #5
  store i32 0, ptr %39, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #5
  %543 = load ptr, ptr %23, align 8, !tbaa !5
  %544 = load ptr, ptr %31, align 8, !tbaa !5
  %545 = call i32 @Longtail_GetRequiredChunkHashes(ptr noundef %543, ptr noundef %544, ptr noundef nonnull %38, ptr noundef %535)
  store i32 %545, ptr %40, align 4, !tbaa !18
  %546 = 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) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.498, ptr noundef null)
  %547 = icmp eq i32 %546, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  br i1 %547, label %548, label %549

548:                                              ; preds = %528
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %797

549:                                              ; preds = %528
  %550 = load i32, ptr %38, align 4, !tbaa !18
  %551 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %67, i32 noundef %550, ptr noundef %535, i32 noundef 0)
  store ptr %551, ptr %26, align 8, !tbaa !5
  %552 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %553 = getelementptr inbounds i8, ptr %552, i64 96
  %554 = load i32, ptr %553, align 8
  %555 = and i32 %554, -16776961
  %556 = or disjoint i32 %555, 774912
  store i32 %556, ptr %553, align 8
  %557 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %558 = getelementptr inbounds i8, ptr %557, i64 32
  store ptr @.str.3, ptr %558, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %559 = load ptr, ptr %26, align 8, !tbaa !5
  %560 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %559, ptr noundef nonnull @.str.484, ptr noundef nonnull @.str.499)
  %561 = icmp eq i32 %560, 0
  br i1 %561, label %562, label %563

562:                                              ; preds = %549
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %797

563:                                              ; preds = %549
  call void @Longtail_Free(ptr noundef %535)
  %564 = load ptr, ptr %23, align 8, !tbaa !5
  %565 = load ptr, ptr %31, align 8, !tbaa !5
  %566 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef nonnull %61, ptr noundef %564, ptr noundef %565, ptr noundef nonnull @.str.470)
  %567 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %568 = getelementptr inbounds i8, ptr %567, i64 96
  %569 = load i32, ptr %568, align 8
  %570 = and i32 %569, -16776961
  %571 = or disjoint i32 %570, 780032
  store i32 %571, ptr %568, align 8
  %572 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %573 = getelementptr inbounds i8, ptr %572, i64 32
  store ptr @.str.3, ptr %573, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #5
  store i32 0, ptr %41, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #5
  %574 = load ptr, ptr %26, align 8, !tbaa !5
  %575 = load ptr, ptr %17, align 8, !tbaa !5
  %576 = load ptr, ptr %23, align 8, !tbaa !5
  %577 = load ptr, ptr %31, align 8, !tbaa !5
  %578 = call i32 @Longtail_ChangeVersion2(ptr noundef %67, ptr noundef nonnull %61, ptr noundef %566, ptr noundef %63, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %574, ptr noundef %575, ptr noundef %576, ptr noundef %577, ptr noundef nonnull @.str.470, i32 noundef 1)
  store i32 %578, ptr %42, align 4, !tbaa !18
  %579 = 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 nonnull @.str.46, ptr noundef nonnull @.str.500, ptr noundef null)
  %580 = icmp eq i32 %579, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #5
  br i1 %580, label %581, label %582

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

582:                                              ; preds = %563
  %.not162 = icmp eq ptr %566, null
  br i1 %.not162, label %584, label %583

583:                                              ; preds = %582
  call void @Longtail_DisposeAPI(ptr noundef nonnull %566)
  br label %584

584:                                              ; preds = %583, %582
  %585 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %585)
  store ptr null, ptr %31, align 8, !tbaa !5
  %586 = load ptr, ptr %26, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %586)
  store ptr null, ptr %26, align 8, !tbaa !5
  %587 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %588 = getelementptr inbounds i8, ptr %587, i64 96
  %589 = load i32, ptr %588, align 8
  %590 = and i32 %589, -16776961
  %591 = or disjoint i32 %590, 783360
  store i32 %591, ptr %588, align 8
  %592 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %593 = getelementptr inbounds i8, ptr %592, i64 32
  store ptr @.str.3, ptr %593, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #5
  store i32 0, ptr %43, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #5
  %594 = load ptr, ptr %23, align 8, !tbaa !5
  %595 = call i32 @Longtail_CreateVersionDiff(ptr noundef %63, ptr noundef %594, ptr noundef %594, ptr noundef nonnull %31)
  store i32 %595, ptr %44, align 4, !tbaa !18
  %596 = 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) %43, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.501, ptr noundef null)
  %597 = icmp eq i32 %596, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #5
  br i1 %597, label %598, label %599

598:                                              ; preds = %584
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %797

599:                                              ; preds = %584
  %600 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %601 = getelementptr inbounds i8, ptr %600, i64 96
  %602 = load i32, ptr %601, align 8
  %603 = and i32 %602, -16776961
  %604 = or disjoint i32 %603, 783616
  store i32 %604, ptr %601, align 8
  %605 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %606 = getelementptr inbounds i8, ptr %605, i64 32
  store ptr @.str.3, ptr %606, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %607 = load ptr, ptr %31, align 8, !tbaa !5
  %608 = call noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_VersionDiffS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %607, ptr noundef nonnull @.str.489, ptr noundef nonnull @.str.490)
  %609 = icmp eq i32 %608, 0
  br i1 %609, label %610, label %611

610:                                              ; preds = %599
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %797

611:                                              ; preds = %599
  store i32 0, ptr %38, align 4, !tbaa !18
  %612 = load ptr, ptr %23, align 8, !tbaa !5
  %613 = getelementptr inbounds i8, ptr %612, i64 32
  %614 = load ptr, ptr %613, align 8, !tbaa !28
  %615 = load i32, ptr %614, align 4, !tbaa !18
  %616 = zext i32 %615 to i64
  %617 = shl nuw nsw i64 %616, 3
  %618 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %617)
  %619 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %620 = getelementptr inbounds i8, ptr %619, i64 96
  %621 = load i32, ptr %620, align 8
  %622 = and i32 %621, -16776961
  %623 = or disjoint i32 %622, 785664
  store i32 %623, ptr %620, align 8
  %624 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %625 = getelementptr inbounds i8, ptr %624, i64 32
  store ptr @.str.3, ptr %625, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #5
  store i32 0, ptr %45, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #5
  %626 = load ptr, ptr %23, align 8, !tbaa !5
  %627 = load ptr, ptr %31, align 8, !tbaa !5
  %628 = call i32 @Longtail_GetRequiredChunkHashes(ptr noundef %626, ptr noundef %627, ptr noundef nonnull %38, ptr noundef %618)
  store i32 %628, ptr %46, align 4, !tbaa !18
  %629 = 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 nonnull @.str.46, ptr noundef nonnull @.str.498, ptr noundef null)
  %630 = icmp eq i32 %629, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #5
  br i1 %630, label %631, label %632

631:                                              ; preds = %611
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %797

632:                                              ; preds = %611
  %633 = load i32, ptr %38, align 4, !tbaa !18
  %634 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %67, i32 noundef %633, ptr noundef %618, i32 noundef 0)
  store ptr %634, ptr %26, align 8, !tbaa !5
  %635 = load ptr, ptr %23, align 8, !tbaa !5
  %636 = load ptr, ptr %31, align 8, !tbaa !5
  %637 = call ptr @Longtail_CreateConcurrentChunkWriteAPI(ptr noundef nonnull %61, ptr noundef %635, ptr noundef %636, ptr noundef nonnull @.str.470)
  %638 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %639 = getelementptr inbounds i8, ptr %638, i64 96
  %640 = load i32, ptr %639, align 8
  %641 = and i32 %640, -16776961
  %642 = or disjoint i32 %641, 790528
  store i32 %642, ptr %639, align 8
  %643 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %644 = getelementptr inbounds i8, ptr %643, i64 32
  store ptr @.str.3, ptr %644, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #5
  store i32 0, ptr %47, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #5
  %645 = load ptr, ptr %26, align 8, !tbaa !5
  %646 = load ptr, ptr %17, align 8, !tbaa !5
  %647 = load ptr, ptr %23, align 8, !tbaa !5
  %648 = load ptr, ptr %31, align 8, !tbaa !5
  %649 = call i32 @Longtail_ChangeVersion2(ptr noundef %67, ptr noundef nonnull %61, ptr noundef %637, ptr noundef %63, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %645, ptr noundef %646, ptr noundef %647, ptr noundef %648, ptr noundef nonnull @.str.470, i32 noundef 1)
  store i32 %649, ptr %48, align 4, !tbaa !18
  %650 = 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 nonnull @.str.46, ptr noundef nonnull @.str.500, ptr noundef null)
  %651 = icmp eq i32 %650, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #5
  br i1 %651, label %652, label %653

652:                                              ; preds = %632
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %797

653:                                              ; preds = %632
  %.not163 = icmp eq ptr %637, null
  br i1 %.not163, label %655, label %654

654:                                              ; preds = %653
  call void @Longtail_DisposeAPI(ptr noundef nonnull %637)
  br label %655

655:                                              ; preds = %654, %653
  call void @Longtail_Free(ptr noundef %618)
  %656 = load ptr, ptr %26, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %656)
  %657 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %657)
  %658 = load ptr, ptr %23, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %658)
  %659 = load ptr, ptr %17, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %659)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #5
  %660 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %661 = getelementptr inbounds i8, ptr %660, i64 96
  %662 = load i32, ptr %661, align 8
  %663 = and i32 %662, -16776961
  %664 = or disjoint i32 %663, 793600
  store i32 %664, ptr %661, align 8
  %665 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %666 = getelementptr inbounds i8, ptr %665, i64 32
  store ptr @.str.3, ptr %666, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #5
  store i32 0, ptr %50, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #5
  %667 = call i32 @Longtail_GetFilesRecursively2(ptr noundef nonnull %61, ptr noundef %65, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.470, ptr noundef nonnull %49)
  store i32 %667, ptr %51, align 4, !tbaa !18
  %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) %50, ptr noundef nonnull align 4 dereferenceable(4) %51, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.502, ptr noundef null)
  %669 = icmp eq i32 %668, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #5
  br i1 %669, label %670, label %671

670:                                              ; preds = %655
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %796

671:                                              ; preds = %655
  %672 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %673 = getelementptr inbounds i8, ptr %672, i64 96
  %674 = load i32, ptr %673, align 8
  %675 = and i32 %674, -16776961
  %676 = or disjoint i32 %675, 793856
  store i32 %676, ptr %673, align 8
  %677 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %678 = getelementptr inbounds i8, ptr %677, i64 32
  store ptr @.str.3, ptr %678, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %679 = load ptr, ptr %49, align 8, !tbaa !5
  %680 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %679, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.503)
  %681 = icmp eq i32 %680, 0
  br i1 %681, label %682, label %683

682:                                              ; preds = %671
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %796

683:                                              ; preds = %671
  %684 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %685 = getelementptr inbounds i8, ptr %684, i64 96
  %686 = load i32, ptr %685, align 8
  %687 = and i32 %686, -16776961
  %688 = or disjoint i32 %687, 794368
  store i32 %688, ptr %685, align 8
  %689 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %690 = getelementptr inbounds i8, ptr %689, i64 32
  store ptr @.str.3, ptr %690, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #5
  store i32 19, ptr %52, align 4, !tbaa !18
  %691 = load ptr, ptr %49, align 8, !tbaa !5
  %692 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef nonnull align 4 dereferenceable(4) %691, ptr noundef nonnull @.str.504, ptr noundef nonnull @.str.505)
  %693 = icmp eq i32 %692, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #5
  br i1 %693, label %694, label %695

694:                                              ; preds = %683
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %796

695:                                              ; preds = %683
  %696 = load ptr, ptr %49, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %696)
  %697 = getelementptr inbounds i8, ptr %61, i64 8
  %698 = getelementptr inbounds i8, ptr %61, i64 16
  %699 = getelementptr inbounds i8, ptr %61, i64 24
  br label %700

700:                                              ; preds = %695, %781
  %indvars.iv204 = phi i64 [ 0, %695 ], [ %indvars.iv.next205, %781 ]
  %701 = load ptr, ptr %146, align 8, !tbaa !11
  %702 = getelementptr inbounds [10 x ptr], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_FILENAMES, i64 0, i64 %indvars.iv204
  %703 = load ptr, ptr %702, align 8, !tbaa !5
  %704 = call noundef ptr %701(ptr noundef nonnull %61, ptr noundef nonnull @.str.470, ptr noundef %703)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #5
  %705 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %706 = getelementptr inbounds i8, ptr %705, i64 96
  %707 = load i32, ptr %706, align 8
  %708 = and i32 %707, -16776961
  %709 = or disjoint i32 %708, 796160
  store i32 %709, ptr %706, align 8
  %710 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %711 = getelementptr inbounds i8, ptr %710, i64 32
  store ptr @.str.3, ptr %711, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %54) #5
  store i32 0, ptr %54, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #5
  %712 = load ptr, ptr %697, align 8, !tbaa !36
  %713 = call noundef i32 %712(ptr noundef nonnull %61, ptr noundef %704, ptr noundef nonnull %53)
  store i32 %713, ptr %55, align 4, !tbaa !18
  %714 = 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 nonnull @.str.46, ptr noundef nonnull @.str.506, ptr noundef null)
  %715 = icmp eq i32 %714, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #5
  br i1 %715, label %.thread189, label %716

716:                                              ; preds = %700
  call void @Longtail_Free(ptr noundef %704)
  %717 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %718 = getelementptr inbounds i8, ptr %717, i64 96
  %719 = load i32, ptr %718, align 8
  %720 = and i32 %719, -16776961
  %721 = or disjoint i32 %720, 796672
  store i32 %721, ptr %718, align 8
  %722 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %723 = getelementptr inbounds i8, ptr %722, i64 32
  store ptr @.str.3, ptr %723, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %724 = load ptr, ptr %53, align 8, !tbaa !5
  %725 = call noundef i32 @_Z14jc_test_cmp_NEIP28Longtail_StorageAPI_OpenFileS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %724, ptr noundef nonnull @.str.388, ptr noundef nonnull @.str.507)
  %726 = icmp eq i32 %725, 0
  br i1 %726, label %.thread189, label %727

727:                                              ; preds = %716
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #5
  %728 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %729 = getelementptr inbounds i8, ptr %728, i64 96
  %730 = load i32, ptr %729, align 8
  %731 = and i32 %730, -16776961
  %732 = or disjoint i32 %731, 797184
  store i32 %732, ptr %729, align 8
  %733 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %734 = getelementptr inbounds i8, ptr %733, i64 32
  store ptr @.str.3, ptr %734, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %57) #5
  store i32 0, ptr %57, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #5
  %735 = load ptr, ptr %698, align 8, !tbaa !37
  %736 = load ptr, ptr %53, align 8, !tbaa !5
  %737 = call noundef i32 %735(ptr noundef nonnull %61, ptr noundef %736, ptr noundef nonnull %56)
  store i32 %737, ptr %58, align 4, !tbaa !18
  %738 = 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) %57, ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.508, ptr noundef null)
  %739 = icmp eq i32 %738, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #5
  br i1 %739, label %.thread193, label %740

740:                                              ; preds = %727
  %741 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %742 = getelementptr inbounds i8, ptr %741, i64 96
  %743 = load i32, ptr %742, align 8
  %744 = and i32 %743, -16776961
  %745 = or disjoint i32 %744, 797440
  store i32 %745, ptr %742, align 8
  %746 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %747 = getelementptr inbounds i8, ptr %746, i64 32
  store ptr @.str.3, ptr %747, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %748 = getelementptr inbounds [10 x i64], ptr %3, i64 0, i64 %indvars.iv204
  %749 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %748, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull @.str.509, ptr noundef nonnull @.str.510)
  %750 = icmp eq i32 %749, 0
  br i1 %750, label %.thread193, label %751

751:                                              ; preds = %740
  %752 = load i64, ptr %56, align 8, !tbaa !9
  %753 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %752)
  %754 = load i64, ptr %56, align 8, !tbaa !9
  %.not164 = icmp eq i64 %754, 0
  br i1 %.not164, label %781, label %755

755:                                              ; preds = %751
  %756 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %757 = getelementptr inbounds i8, ptr %756, i64 96
  %758 = load i32, ptr %757, align 8
  %759 = and i32 %758, -16776961
  %760 = or disjoint i32 %759, 798464
  store i32 %760, ptr %757, align 8
  %761 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %762 = getelementptr inbounds i8, ptr %761, i64 32
  store ptr @.str.3, ptr %762, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #5
  store i32 0, ptr %59, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #5
  %763 = load ptr, ptr %699, align 8, !tbaa !38
  %764 = load ptr, ptr %53, align 8, !tbaa !5
  %765 = load i64, ptr %56, align 8, !tbaa !9
  %766 = call noundef i32 %763(ptr noundef nonnull %61, ptr noundef %764, i64 noundef 0, i64 noundef %765, ptr noundef %753)
  store i32 %766, ptr %60, align 4, !tbaa !18
  %767 = 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) %59, ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.511, ptr noundef null)
  %768 = icmp eq i32 %767, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #5
  br i1 %768, label %.thread193, label %769

769:                                              ; preds = %755
  %770 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %771 = getelementptr inbounds i8, ptr %770, i64 96
  %772 = load i32, ptr %771, align 8
  %773 = and i32 %772, -16776961
  %774 = or disjoint i32 %773, 798720
  store i32 %774, ptr %771, align 8
  %775 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %776 = getelementptr inbounds i8, ptr %775, i64 32
  store ptr @.str.3, ptr %776, align 8, !tbaa !14
  call void @_Z28jc_test_increment_assertionsv()
  %777 = getelementptr inbounds [10 x ptr], ptr @__const._ZN39Longtail_Longtail_VersionDiff__TestCase8TestBodyEv.NEW_TEST_STRINGS, i64 0, i64 %indvars.iv204
  %778 = load ptr, ptr %777, align 8, !tbaa !5
  %779 = call noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef %778, ptr noundef %753, ptr noundef nonnull @.str.512, ptr noundef nonnull @.str.513)
  %780 = icmp eq i32 %779, 0
  br i1 %780, label %.thread193, label %781

.thread189:                                       ; preds = %716, %700
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  br label %796

.thread193:                                       ; preds = %769, %755, %740, %727
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  br label %796

781:                                              ; preds = %769, %751
  %782 = load ptr, ptr %149, align 8, !tbaa !21
  %783 = load ptr, ptr %53, align 8, !tbaa !5
  call void %782(ptr noundef nonnull %61, ptr noundef %783)
  store ptr null, ptr %53, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %753)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  %indvars.iv.next205 = add nuw nsw i64 %indvars.iv204, 1
  %exitcond207 = icmp eq i64 %indvars.iv.next205, 10
  br i1 %exitcond207, label %.critedge175, label %700, !llvm.loop !39

.critedge175:                                     ; preds = %781
  %.not165 = icmp eq ptr %67, null
  br i1 %.not165, label %785, label %784

784:                                              ; preds = %.critedge175
  call void @Longtail_DisposeAPI(ptr noundef nonnull %67)
  br label %785

785:                                              ; preds = %784, %.critedge175
  %.not166 = icmp eq ptr %66, null
  br i1 %.not166, label %787, label %786

786:                                              ; preds = %785
  call void @Longtail_DisposeAPI(ptr noundef nonnull %66)
  br label %787

787:                                              ; preds = %786, %785
  %.not167 = icmp eq ptr %65, null
  br i1 %.not167, label %789, label %788

788:                                              ; preds = %787
  call void @Longtail_DisposeAPI(ptr noundef nonnull %65)
  br label %789

789:                                              ; preds = %788, %787
  %.not168 = icmp eq ptr %64, null
  br i1 %.not168, label %791, label %790

790:                                              ; preds = %789
  call void @Longtail_DisposeAPI(ptr noundef nonnull %64)
  br label %791

791:                                              ; preds = %790, %789
  %.not169 = icmp eq ptr %63, null
  br i1 %.not169, label %793, label %792

792:                                              ; preds = %791
  call void @Longtail_DisposeAPI(ptr noundef nonnull %63)
  br label %793

793:                                              ; preds = %792, %791
  %.not170 = icmp eq ptr %62, null
  br i1 %.not170, label %795, label %794

794:                                              ; preds = %793
  call void @Longtail_DisposeAPI(ptr noundef nonnull %62)
  br label %795

795:                                              ; preds = %793, %794
  call void @Longtail_DisposeAPI(ptr noundef nonnull %61)
  br label %796

796:                                              ; preds = %.thread189, %.thread193, %694, %795, %682, %670
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  br label %797

797:                                              ; preds = %581, %598, %610, %631, %652, %796, %562, %548
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  br label %798

798:                                              ; preds = %797, %527, %513, %499, %485, %472, %460
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  br label %799

799:                                              ; preds = %798, %445, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  br label %800

800:                                              ; preds = %418, %799, %399, %387
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  br label %801

801:                                              ; preds = %374, %800, %361, %349
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  br label %802

802:                                              ; preds = %801, %336, %324
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  br label %803

803:                                              ; preds = %311, %802, %298, %286
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  br label %804

804:                                              ; preds = %.thread181, %.thread185, %.thread, %.thread178, %803
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %2) #5
  ret void
}

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

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

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


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