; LLVM IR from DanEngelbrecht/longtail :: cmd (main)

; 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_LogFieldFmt_Private = type { ptr, ptr, ptr }
%struct.Longtail_LogContextFmt_Private = type { ptr, ptr, i64 }
%struct.Longtail_HashRegistryAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_StorageAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, 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_FileInfos = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.Longtail_ProgressAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_VersionIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr }

@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [68 x i8], align 1
@__func__.UpSync = external hidden unnamed_addr constant [7 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [51 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @InitMonitor(ptr noundef, ptr noundef, ptr noundef) #1

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

declare void @Longtail_Free(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local ptr @MakeProgressAPI(ptr noundef, i32 noundef) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @UpSync(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9, i32 noundef %10, i32 noundef %11, i32 noundef %12) #1 {
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca [13 x %struct.Longtail_LogFieldFmt_Private], align 16
  %29 = alloca %struct.Longtail_LogContextFmt_Private, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  store ptr %0, ptr %15, align 8, !tbaa !5
  store ptr %1, ptr %16, align 8, !tbaa !5
  store ptr %2, ptr %17, align 8, !tbaa !5
  store ptr %3, ptr %18, align 8, !tbaa !5
  store i32 %4, ptr %19, align 4, !tbaa !9
  store i32 %5, ptr %20, align 4, !tbaa !9
  store i32 %6, ptr %21, align 4, !tbaa !9
  store i32 %7, ptr %22, align 4, !tbaa !9
  store i32 %8, ptr %23, align 4, !tbaa !9
  store i32 %9, ptr %24, align 4, !tbaa !9
  store i32 %10, ptr %25, align 4, !tbaa !9
  store i32 %11, ptr %26, align 4, !tbaa !9
  store i32 %12, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 312, ptr %28) #3
  %52 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i32 0, i32 0
  store ptr @.str.52, ptr %52, align 8, !tbaa !11
  %53 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i32 0, i32 1
  store ptr @.str.53, ptr %53, align 8, !tbaa !13
  %54 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i32 0, i32 2
  %55 = load ptr, ptr %15, align 8, !tbaa !5
  %56 = ptrtoint ptr %55 to i64
  %57 = inttoptr i64 %56 to ptr
  store ptr %57, ptr %54, align 8, !tbaa !14
  %58 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 1
  %59 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %58, i32 0, i32 0
  store ptr @.str.54, ptr %59, align 8, !tbaa !11
  %60 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %58, i32 0, i32 1
  store ptr @.str.53, ptr %60, align 8, !tbaa !13
  %61 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %58, i32 0, i32 2
  %62 = load ptr, ptr %16, align 8, !tbaa !5
  %63 = ptrtoint ptr %62 to i64
  %64 = inttoptr i64 %63 to ptr
  store ptr %64, ptr %61, align 8, !tbaa !14
  %65 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 2
  %66 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %65, i32 0, i32 0
  store ptr @.str.55, ptr %66, align 8, !tbaa !11
  %67 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %65, i32 0, i32 1
  store ptr @.str.56, ptr %67, align 8, !tbaa !13
  %68 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %65, i32 0, i32 2
  %69 = load ptr, ptr %17, align 8, !tbaa !5
  %70 = ptrtoint ptr %69 to i64
  %71 = inttoptr i64 %70 to ptr
  store ptr %71, ptr %68, align 8, !tbaa !14
  %72 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 3
  %73 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %72, i32 0, i32 0
  store ptr @.str.57, ptr %73, align 8, !tbaa !11
  %74 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %72, i32 0, i32 1
  store ptr @.str.53, ptr %74, align 8, !tbaa !13
  %75 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %72, i32 0, i32 2
  %76 = load ptr, ptr %18, align 8, !tbaa !5
  %77 = ptrtoint ptr %76 to i64
  %78 = inttoptr i64 %77 to ptr
  store ptr %78, ptr %75, align 8, !tbaa !14
  %79 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 4
  %80 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %79, i32 0, i32 0
  store ptr @.str.58, ptr %80, align 8, !tbaa !11
  %81 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %79, i32 0, i32 1
  store ptr @.str.59, ptr %81, align 8, !tbaa !13
  %82 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %79, i32 0, i32 2
  %83 = load i32, ptr %19, align 4, !tbaa !9
  %84 = zext i32 %83 to i64
  %85 = inttoptr i64 %84 to ptr
  store ptr %85, ptr %82, align 8, !tbaa !14
  %86 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 5
  %87 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %86, i32 0, i32 0
  store ptr @.str.60, ptr %87, align 8, !tbaa !11
  %88 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %86, i32 0, i32 1
  store ptr @.str.59, ptr %88, align 8, !tbaa !13
  %89 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %86, i32 0, i32 2
  %90 = load i32, ptr %20, align 4, !tbaa !9
  %91 = zext i32 %90 to i64
  %92 = inttoptr i64 %91 to ptr
  store ptr %92, ptr %89, align 8, !tbaa !14
  %93 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 6
  %94 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %93, i32 0, i32 0
  store ptr @.str.61, ptr %94, align 8, !tbaa !11
  %95 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %93, i32 0, i32 1
  store ptr @.str.59, ptr %95, align 8, !tbaa !13
  %96 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %93, i32 0, i32 2
  %97 = load i32, ptr %21, align 4, !tbaa !9
  %98 = zext i32 %97 to i64
  %99 = inttoptr i64 %98 to ptr
  store ptr %99, ptr %96, align 8, !tbaa !14
  %100 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 7
  %101 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %100, i32 0, i32 0
  store ptr @.str.62, ptr %101, align 8, !tbaa !11
  %102 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %100, i32 0, i32 1
  store ptr @.str.59, ptr %102, align 8, !tbaa !13
  %103 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %100, i32 0, i32 2
  %104 = load i32, ptr %22, align 4, !tbaa !9
  %105 = zext i32 %104 to i64
  %106 = inttoptr i64 %105 to ptr
  store ptr %106, ptr %103, align 8, !tbaa !14
  %107 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 8
  %108 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %107, i32 0, i32 0
  store ptr @.str.63, ptr %108, align 8, !tbaa !11
  %109 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %107, i32 0, i32 1
  store ptr @.str.59, ptr %109, align 8, !tbaa !13
  %110 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %107, i32 0, i32 2
  %111 = load i32, ptr %23, align 4, !tbaa !9
  %112 = zext i32 %111 to i64
  %113 = inttoptr i64 %112 to ptr
  store ptr %113, ptr %110, align 8, !tbaa !14
  %114 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 9
  %115 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %114, i32 0, i32 0
  store ptr @.str.64, ptr %115, align 8, !tbaa !11
  %116 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %114, i32 0, i32 1
  store ptr @.str.59, ptr %116, align 8, !tbaa !13
  %117 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %114, i32 0, i32 2
  %118 = load i32, ptr %24, align 4, !tbaa !9
  %119 = zext i32 %118 to i64
  %120 = inttoptr i64 %119 to ptr
  store ptr %120, ptr %117, align 8, !tbaa !14
  %121 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 10
  %122 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %121, i32 0, i32 0
  store ptr @.str.65, ptr %122, align 8, !tbaa !11
  %123 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %121, i32 0, i32 1
  store ptr @.str.66, ptr %123, align 8, !tbaa !13
  %124 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %121, i32 0, i32 2
  %125 = load i32, ptr %25, align 4, !tbaa !9
  %126 = sext i32 %125 to i64
  %127 = inttoptr i64 %126 to ptr
  store ptr %127, ptr %124, align 8, !tbaa !14
  %128 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 11
  %129 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %128, i32 0, i32 0
  store ptr @.str.67, ptr %129, align 8, !tbaa !11
  %130 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %128, i32 0, i32 1
  store ptr @.str.66, ptr %130, align 8, !tbaa !13
  %131 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %128, i32 0, i32 2
  %132 = load i32, ptr %26, align 4, !tbaa !9
  %133 = sext i32 %132 to i64
  %134 = inttoptr i64 %133 to ptr
  store ptr %134, ptr %131, align 8, !tbaa !14
  %135 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %28, i64 12
  %136 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %135, i32 0, i32 0
  store ptr @.str.68, ptr %136, align 8, !tbaa !11
  %137 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %135, i32 0, i32 1
  store ptr @.str.66, ptr %137, align 8, !tbaa !13
  %138 = getelementptr inbounds %struct.Longtail_LogFieldFmt_Private, ptr %135, i32 0, i32 2
  %139 = load i32, ptr %27, align 4, !tbaa !9
  %140 = sext i32 %139 to i64
  %141 = inttoptr i64 %140 to ptr
  store ptr %141, ptr %138, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #3
  %142 = getelementptr inbounds %struct.Longtail_LogContextFmt_Private, ptr %29, i32 0, i32 0
  store ptr null, ptr %142, align 8, !tbaa !15
  %143 = getelementptr inbounds %struct.Longtail_LogContextFmt_Private, ptr %29, i32 0, i32 1
  %144 = getelementptr inbounds [13 x %struct.Longtail_LogFieldFmt_Private], ptr %28, i64 0, i64 0
  store ptr %144, ptr %143, align 8, !tbaa !18
  %145 = getelementptr inbounds %struct.Longtail_LogContextFmt_Private, ptr %29, i32 0, i32 2
  store i64 13, ptr %145, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  store ptr %29, ptr %30, align 8, !tbaa !5
  %146 = load ptr, ptr %30, align 8, !tbaa !5
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 969, ptr noundef %146, i32 noundef 0, ptr noundef @.str.70, ptr noundef @.str.71)
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  %147 = load ptr, ptr %15, align 8, !tbaa !5
  %148 = call ptr @NormalizePath(ptr noundef %147)
  store ptr %148, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  %149 = call ptr (...) @Longtail_CreateFullHashRegistry()
  store ptr %149, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  %150 = call i32 (...) @Longtail_GetCPUCount()
  %151 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef %150, i32 noundef 0)
  store ptr %151, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  %152 = call ptr (...) @Longtail_CreateFullCompressionRegistry()
  store ptr %152, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  %153 = call ptr (...) @Longtail_CreateFSStorageAPI()
  store ptr %153, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  %154 = load ptr, ptr %33, align 8, !tbaa !5
  %155 = load ptr, ptr %35, align 8, !tbaa !5
  %156 = load ptr, ptr %31, align 8, !tbaa !5
  %157 = load i32, ptr %26, align 4, !tbaa !9
  %158 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %154, ptr noundef %155, ptr noundef %156, ptr noundef null, i32 noundef %157)
  store ptr %158, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  %159 = load ptr, ptr %36, align 8, !tbaa !5
  %160 = load ptr, ptr %34, align 8, !tbaa !5
  %161 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %159, ptr noundef %160)
  store ptr %161, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #3
  store ptr null, ptr %38, align 8, !tbaa !5
  %162 = load ptr, ptr %17, align 8, !tbaa !5
  %163 = icmp ne ptr %162, null
  br i1 %163, label %164, label %175

164:                                              ; preds = %13
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #3
  %165 = load ptr, ptr %35, align 8, !tbaa !5
  %166 = load ptr, ptr %17, align 8, !tbaa !5
  %167 = call i32 @Longtail_ReadVersionIndex(ptr noundef %165, ptr noundef %166, ptr noundef %38)
  store i32 %167, ptr %39, align 4, !tbaa !9
  %168 = load i32, ptr %39, align 4, !tbaa !9
  %169 = icmp ne i32 %168, 0
  br i1 %169, label %170, label %174

170:                                              ; preds = %164
  %171 = load ptr, ptr %30, align 8, !tbaa !5
  %172 = load ptr, ptr %17, align 8, !tbaa !5
  %173 = load i32, ptr %39, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 985, ptr noundef %171, i32 noundef 2, ptr noundef @.str.72, ptr noundef %172, i32 noundef %173)
  br label %174

174:                                              ; preds = %170, %164
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  br label %175

175:                                              ; preds = %174, %13
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #3
  %176 = load ptr, ptr %32, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %176, i32 0, i32 1
  %178 = load ptr, ptr %177, align 8, !tbaa !20
  %179 = load ptr, ptr %32, align 8, !tbaa !5
  %180 = load i32, ptr %23, align 4, !tbaa !9
  %181 = call i32 %178(ptr noundef %179, i32 noundef %180, ptr noundef %40)
  store i32 %181, ptr %41, align 4, !tbaa !9
  %182 = load i32, ptr %41, align 4, !tbaa !9
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %184, label %230

184:                                              ; preds = %175
  %185 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %185)
  %186 = load ptr, ptr %37, align 8, !tbaa !5
  %187 = icmp ne ptr %186, null
  br i1 %187, label %188, label %191

188:                                              ; preds = %184
  %189 = load ptr, ptr %37, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %189, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %190)
  br label %191

191:                                              ; preds = %188, %184
  %192 = load ptr, ptr %36, align 8, !tbaa !5
  %193 = icmp ne ptr %192, null
  br i1 %193, label %194, label %197

194:                                              ; preds = %191
  %195 = load ptr, ptr %36, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %195, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %196)
  br label %197

197:                                              ; preds = %194, %191
  %198 = load ptr, ptr %35, align 8, !tbaa !5
  %199 = icmp ne ptr %198, null
  br i1 %199, label %200, label %203

200:                                              ; preds = %197
  %201 = load ptr, ptr %35, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %201, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %202)
  br label %203

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

206:                                              ; preds = %203
  %207 = load ptr, ptr %34, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %207, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %208)
  br label %209

209:                                              ; preds = %206, %203
  %210 = load ptr, ptr %32, align 8, !tbaa !5
  %211 = icmp ne ptr %210, null
  br i1 %211, label %212, label %215

212:                                              ; preds = %209
  %213 = load ptr, ptr %32, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %213, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %214)
  br label %215

215:                                              ; preds = %212, %209
  %216 = load ptr, ptr %33, align 8, !tbaa !5
  %217 = icmp ne ptr %216, null
  br i1 %217, label %218, label %221

218:                                              ; preds = %215
  %219 = load ptr, ptr %33, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %219, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %220)
  br label %221

221:                                              ; preds = %218, %215
  %222 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %222)
  %223 = load ptr, ptr %32, align 8, !tbaa !5
  %224 = icmp ne ptr %223, null
  br i1 %224, label %225, label %228

225:                                              ; preds = %221
  %226 = load ptr, ptr %32, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %226, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %227)
  br label %228

228:                                              ; preds = %225, %221
  %229 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %229, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %813

230:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #3
  %231 = call ptr (...) @Longtail_CreateHPCDCChunkerAPI()
  store ptr %231, ptr %43, align 8, !tbaa !5
  %232 = load ptr, ptr %43, align 8, !tbaa !5
  %233 = icmp ne ptr %232, null
  br i1 %233, label %279, label %234

234:                                              ; preds = %230
  %235 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %235)
  %236 = load ptr, ptr %37, align 8, !tbaa !5
  %237 = icmp ne ptr %236, null
  br i1 %237, label %238, label %241

238:                                              ; preds = %234
  %239 = load ptr, ptr %37, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %239, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %240)
  br label %241

241:                                              ; preds = %238, %234
  %242 = load ptr, ptr %36, align 8, !tbaa !5
  %243 = icmp ne ptr %242, null
  br i1 %243, label %244, label %247

244:                                              ; preds = %241
  %245 = load ptr, ptr %36, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %245, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %246)
  br label %247

247:                                              ; preds = %244, %241
  %248 = load ptr, ptr %35, align 8, !tbaa !5
  %249 = icmp ne ptr %248, null
  br i1 %249, label %250, label %253

250:                                              ; preds = %247
  %251 = load ptr, ptr %35, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %251, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %252)
  br label %253

253:                                              ; preds = %250, %247
  %254 = load ptr, ptr %34, align 8, !tbaa !5
  %255 = icmp ne ptr %254, null
  br i1 %255, label %256, label %259

256:                                              ; preds = %253
  %257 = load ptr, ptr %34, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %257, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %258)
  br label %259

259:                                              ; preds = %256, %253
  %260 = load ptr, ptr %32, align 8, !tbaa !5
  %261 = icmp ne ptr %260, null
  br i1 %261, label %262, label %265

262:                                              ; preds = %259
  %263 = load ptr, ptr %32, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %263, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %264)
  br label %265

265:                                              ; preds = %262, %259
  %266 = load ptr, ptr %33, align 8, !tbaa !5
  %267 = icmp ne ptr %266, null
  br i1 %267, label %268, label %271

268:                                              ; preds = %265
  %269 = load ptr, ptr %33, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %269, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %270)
  br label %271

271:                                              ; preds = %268, %265
  %272 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %272)
  %273 = load ptr, ptr %32, align 8, !tbaa !5
  %274 = icmp ne ptr %273, null
  br i1 %274, label %275, label %278

275:                                              ; preds = %271
  %276 = load ptr, ptr %32, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %276, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %277)
  br label %278

278:                                              ; preds = %275, %271
  store i32 12, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %812

279:                                              ; preds = %230
  %280 = load ptr, ptr %38, align 8, !tbaa !5
  %281 = icmp eq ptr %280, null
  br i1 %281, label %282, label %441

282:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #3
  %283 = load ptr, ptr %35, align 8, !tbaa !5
  %284 = load ptr, ptr %33, align 8, !tbaa !5
  %285 = load ptr, ptr %16, align 8, !tbaa !5
  %286 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %283, ptr noundef %284, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %285, ptr noundef %44)
  store i32 %286, ptr %41, align 4, !tbaa !9
  %287 = load i32, ptr %41, align 4, !tbaa !9
  %288 = icmp ne i32 %287, 0
  br i1 %288, label %289, label %337

289:                                              ; preds = %282
  %290 = load ptr, ptr %30, align 8, !tbaa !5
  %291 = load ptr, ptr %16, align 8, !tbaa !5
  %292 = load i32, ptr %41, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 1032, ptr noundef %290, i32 noundef 3, ptr noundef @.str.73, ptr noundef %291, i32 noundef %292)
  %293 = load ptr, ptr %43, align 8, !tbaa !5
  %294 = icmp ne ptr %293, null
  br i1 %294, label %295, label %298

295:                                              ; preds = %289
  %296 = load ptr, ptr %43, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %296, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %297)
  br label %298

298:                                              ; preds = %295, %289
  %299 = load ptr, ptr %37, align 8, !tbaa !5
  %300 = icmp ne ptr %299, null
  br i1 %300, label %301, label %304

301:                                              ; preds = %298
  %302 = load ptr, ptr %37, align 8, !tbaa !5
  %303 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %302, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %303)
  br label %304

304:                                              ; preds = %301, %298
  %305 = load ptr, ptr %36, align 8, !tbaa !5
  %306 = icmp ne ptr %305, null
  br i1 %306, label %307, label %310

307:                                              ; preds = %304
  %308 = load ptr, ptr %36, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %308, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %309)
  br label %310

310:                                              ; preds = %307, %304
  %311 = load ptr, ptr %35, align 8, !tbaa !5
  %312 = icmp ne ptr %311, null
  br i1 %312, label %313, label %316

313:                                              ; preds = %310
  %314 = load ptr, ptr %35, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %314, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %315)
  br label %316

316:                                              ; preds = %313, %310
  %317 = load ptr, ptr %34, align 8, !tbaa !5
  %318 = icmp ne ptr %317, null
  br i1 %318, label %319, label %322

319:                                              ; preds = %316
  %320 = load ptr, ptr %34, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %320, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %321)
  br label %322

322:                                              ; preds = %319, %316
  %323 = load ptr, ptr %32, align 8, !tbaa !5
  %324 = icmp ne ptr %323, null
  br i1 %324, label %325, label %328

325:                                              ; preds = %322
  %326 = load ptr, ptr %32, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %326, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %327)
  br label %328

328:                                              ; preds = %325, %322
  %329 = load ptr, ptr %33, align 8, !tbaa !5
  %330 = icmp ne ptr %329, null
  br i1 %330, label %331, label %334

331:                                              ; preds = %328
  %332 = load ptr, ptr %33, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %332, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %333)
  br label %334

334:                                              ; preds = %331, %328
  %335 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %335)
  %336 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %336, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %438

337:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #3
  %338 = load ptr, ptr %44, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %338, i32 0, i32 0
  %340 = load i32, ptr %339, align 8, !tbaa !23
  %341 = zext i32 %340 to i64
  %342 = mul i64 4, %341
  %343 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %342)
  store ptr %343, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #3
  store i32 0, ptr %46, align 4, !tbaa !9
  br label %344

344:                                              ; preds = %357, %337
  %345 = load i32, ptr %46, align 4, !tbaa !9
  %346 = load ptr, ptr %44, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %346, i32 0, i32 0
  %348 = load i32, ptr %347, align 8, !tbaa !23
  %349 = icmp ult i32 %345, %348
  br i1 %349, label %351, label %350

350:                                              ; preds = %344
  store i32 2, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #3
  br label %360

351:                                              ; preds = %344
  %352 = load i32, ptr %24, align 4, !tbaa !9
  %353 = load ptr, ptr %45, align 8, !tbaa !5
  %354 = load i32, ptr %46, align 4, !tbaa !9
  %355 = zext i32 %354 to i64
  %356 = getelementptr inbounds i32, ptr %353, i64 %355
  store i32 %352, ptr %356, align 4, !tbaa !9
  br label %357

357:                                              ; preds = %351
  %358 = load i32, ptr %46, align 4, !tbaa !9
  %359 = add i32 %358, 1
  store i32 %359, ptr %46, align 4, !tbaa !9
  br label %344, !llvm.loop !25

360:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #3
  %361 = call ptr @MakeProgressAPI(ptr noundef @.str.74, i32 noundef 5)
  store ptr %361, ptr %47, align 8, !tbaa !5
  %362 = load ptr, ptr %47, align 8, !tbaa !5
  %363 = icmp ne ptr %362, null
  br i1 %363, label %364, label %382

364:                                              ; preds = %360
  %365 = load ptr, ptr %35, align 8, !tbaa !5
  %366 = load ptr, ptr %40, align 8, !tbaa !5
  %367 = load ptr, ptr %43, align 8, !tbaa !5
  %368 = load ptr, ptr %33, align 8, !tbaa !5
  %369 = load ptr, ptr %47, align 8, !tbaa !5
  %370 = load ptr, ptr %16, align 8, !tbaa !5
  %371 = load ptr, ptr %44, align 8, !tbaa !5
  %372 = load ptr, ptr %45, align 8, !tbaa !5
  %373 = load i32, ptr %19, align 4, !tbaa !9
  %374 = load i32, ptr %25, align 4, !tbaa !9
  %375 = call i32 @Longtail_CreateVersionIndex(ptr noundef %365, ptr noundef %366, ptr noundef %367, ptr noundef %368, ptr noundef %369, ptr noundef null, ptr noundef null, ptr noundef %370, ptr noundef %371, ptr noundef %372, i32 noundef %373, i32 noundef %374, ptr noundef %38)
  store i32 %375, ptr %41, align 4, !tbaa !9
  %376 = load ptr, ptr %47, align 8, !tbaa !5
  %377 = icmp ne ptr %376, null
  br i1 %377, label %378, label %381

378:                                              ; preds = %364
  %379 = load ptr, ptr %47, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.Longtail_ProgressAPI, ptr %379, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %380)
  br label %381

381:                                              ; preds = %378, %364
  br label %383

382:                                              ; preds = %360
  store i32 12, ptr %41, align 4, !tbaa !9
  br label %383

383:                                              ; preds = %382, %381
  %384 = load ptr, ptr %45, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %384)
  %385 = load ptr, ptr %44, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %385)
  %386 = load i32, ptr %41, align 4, !tbaa !9
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %388, label %436

388:                                              ; preds = %383
  %389 = load ptr, ptr %30, align 8, !tbaa !5
  %390 = load ptr, ptr %16, align 8, !tbaa !5
  %391 = load i32, ptr %41, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 1077, ptr noundef %389, i32 noundef 3, ptr noundef @.str.75, ptr noundef %390, i32 noundef %391)
  %392 = load ptr, ptr %43, align 8, !tbaa !5
  %393 = icmp ne ptr %392, null
  br i1 %393, label %394, label %397

394:                                              ; preds = %388
  %395 = load ptr, ptr %43, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %395, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %396)
  br label %397

397:                                              ; preds = %394, %388
  %398 = load ptr, ptr %37, align 8, !tbaa !5
  %399 = icmp ne ptr %398, null
  br i1 %399, label %400, label %403

400:                                              ; preds = %397
  %401 = load ptr, ptr %37, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %401, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %402)
  br label %403

403:                                              ; preds = %400, %397
  %404 = load ptr, ptr %36, align 8, !tbaa !5
  %405 = icmp ne ptr %404, null
  br i1 %405, label %406, label %409

406:                                              ; preds = %403
  %407 = load ptr, ptr %36, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %407, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %408)
  br label %409

409:                                              ; preds = %406, %403
  %410 = load ptr, ptr %35, align 8, !tbaa !5
  %411 = icmp ne ptr %410, null
  br i1 %411, label %412, label %415

412:                                              ; preds = %409
  %413 = load ptr, ptr %35, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %413, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %414)
  br label %415

415:                                              ; preds = %412, %409
  %416 = load ptr, ptr %34, align 8, !tbaa !5
  %417 = icmp ne ptr %416, null
  br i1 %417, label %418, label %421

418:                                              ; preds = %415
  %419 = load ptr, ptr %34, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %419, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %420)
  br label %421

421:                                              ; preds = %418, %415
  %422 = load ptr, ptr %32, align 8, !tbaa !5
  %423 = icmp ne ptr %422, null
  br i1 %423, label %424, label %427

424:                                              ; preds = %421
  %425 = load ptr, ptr %32, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %425, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %426)
  br label %427

427:                                              ; preds = %424, %421
  %428 = load ptr, ptr %33, align 8, !tbaa !5
  %429 = icmp ne ptr %428, null
  br i1 %429, label %430, label %433

430:                                              ; preds = %427
  %431 = load ptr, ptr %33, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %431, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %432)
  br label %433

433:                                              ; preds = %430, %427
  %434 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %434)
  %435 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %435, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %437

436:                                              ; preds = %383
  store i32 0, ptr %42, align 4
  br label %437

437:                                              ; preds = %436, %433
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #3
  br label %438

438:                                              ; preds = %437, %334
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  %439 = load i32, ptr %42, align 4
  switch i32 %439, label %812 [
    i32 0, label %440
  ]

440:                                              ; preds = %438
  br label %441

441:                                              ; preds = %440, %279
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #3
  %442 = load ptr, ptr %37, align 8, !tbaa !5
  %443 = load ptr, ptr %38, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %443, i32 0, i32 4
  %445 = load ptr, ptr %444, align 8, !tbaa !27
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = load ptr, ptr %38, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %447, i32 0, i32 12
  %449 = load ptr, ptr %448, align 8, !tbaa !29
  %450 = load i32, ptr %22, align 4, !tbaa !9
  %451 = call i32 @SyncGetExistingContent(ptr noundef %442, i32 noundef %446, ptr noundef %449, i32 noundef %450, ptr noundef %48)
  store i32 %451, ptr %41, align 4, !tbaa !9
  %452 = load i32, ptr %41, align 4, !tbaa !9
  %453 = icmp ne i32 %452, 0
  br i1 %453, label %454, label %502

454:                                              ; preds = %441
  %455 = load ptr, ptr %30, align 8, !tbaa !5
  %456 = load i32, ptr %41, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 1099, ptr noundef %455, i32 noundef 3, ptr noundef @.str.76, i32 noundef %456)
  %457 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %457)
  %458 = load ptr, ptr %43, align 8, !tbaa !5
  %459 = icmp ne ptr %458, null
  br i1 %459, label %460, label %463

460:                                              ; preds = %454
  %461 = load ptr, ptr %43, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %461, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %462)
  br label %463

463:                                              ; preds = %460, %454
  %464 = load ptr, ptr %37, align 8, !tbaa !5
  %465 = icmp ne ptr %464, null
  br i1 %465, label %466, label %469

466:                                              ; preds = %463
  %467 = load ptr, ptr %37, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %467, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %468)
  br label %469

469:                                              ; preds = %466, %463
  %470 = load ptr, ptr %36, align 8, !tbaa !5
  %471 = icmp ne ptr %470, null
  br i1 %471, label %472, label %475

472:                                              ; preds = %469
  %473 = load ptr, ptr %36, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %473, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %474)
  br label %475

475:                                              ; preds = %472, %469
  %476 = load ptr, ptr %35, align 8, !tbaa !5
  %477 = icmp ne ptr %476, null
  br i1 %477, label %478, label %481

478:                                              ; preds = %475
  %479 = load ptr, ptr %35, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %479, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %480)
  br label %481

481:                                              ; preds = %478, %475
  %482 = load ptr, ptr %34, align 8, !tbaa !5
  %483 = icmp ne ptr %482, null
  br i1 %483, label %484, label %487

484:                                              ; preds = %481
  %485 = load ptr, ptr %34, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %485, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %486)
  br label %487

487:                                              ; preds = %484, %481
  %488 = load ptr, ptr %32, align 8, !tbaa !5
  %489 = icmp ne ptr %488, null
  br i1 %489, label %490, label %493

490:                                              ; preds = %487
  %491 = load ptr, ptr %32, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %491, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %492)
  br label %493

493:                                              ; preds = %490, %487
  %494 = load ptr, ptr %33, align 8, !tbaa !5
  %495 = icmp ne ptr %494, null
  br i1 %495, label %496, label %499

496:                                              ; preds = %493
  %497 = load ptr, ptr %33, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %497, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %498)
  br label %499

499:                                              ; preds = %496, %493
  %500 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %500)
  %501 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %501, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %811

502:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #3
  %503 = load ptr, ptr %40, align 8, !tbaa !5
  %504 = load ptr, ptr %48, align 8, !tbaa !5
  %505 = load ptr, ptr %38, align 8, !tbaa !5
  %506 = load i32, ptr %20, align 4, !tbaa !9
  %507 = load i32, ptr %21, align 4, !tbaa !9
  %508 = call i32 @Longtail_CreateMissingContent(ptr noundef %503, ptr noundef %504, ptr noundef %505, i32 noundef %506, i32 noundef %507, ptr noundef %49)
  store i32 %508, ptr %41, align 4, !tbaa !9
  %509 = load i32, ptr %41, align 4, !tbaa !9
  %510 = icmp ne i32 %509, 0
  br i1 %510, label %511, label %560

511:                                              ; preds = %502
  %512 = load ptr, ptr %30, align 8, !tbaa !5
  %513 = load i32, ptr %41, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 1122, ptr noundef %512, i32 noundef 3, ptr noundef @.str.76, i32 noundef %513)
  %514 = load ptr, ptr %48, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %514)
  %515 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %515)
  %516 = load ptr, ptr %43, align 8, !tbaa !5
  %517 = icmp ne ptr %516, null
  br i1 %517, label %518, label %521

518:                                              ; preds = %511
  %519 = load ptr, ptr %43, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %519, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %520)
  br label %521

521:                                              ; preds = %518, %511
  %522 = load ptr, ptr %37, align 8, !tbaa !5
  %523 = icmp ne ptr %522, null
  br i1 %523, label %524, label %527

524:                                              ; preds = %521
  %525 = load ptr, ptr %37, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %525, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %526)
  br label %527

527:                                              ; preds = %524, %521
  %528 = load ptr, ptr %36, align 8, !tbaa !5
  %529 = icmp ne ptr %528, null
  br i1 %529, label %530, label %533

530:                                              ; preds = %527
  %531 = load ptr, ptr %36, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %531, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %532)
  br label %533

533:                                              ; preds = %530, %527
  %534 = load ptr, ptr %35, align 8, !tbaa !5
  %535 = icmp ne ptr %534, null
  br i1 %535, label %536, label %539

536:                                              ; preds = %533
  %537 = load ptr, ptr %35, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %537, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %538)
  br label %539

539:                                              ; preds = %536, %533
  %540 = load ptr, ptr %34, align 8, !tbaa !5
  %541 = icmp ne ptr %540, null
  br i1 %541, label %542, label %545

542:                                              ; preds = %539
  %543 = load ptr, ptr %34, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %543, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %544)
  br label %545

545:                                              ; preds = %542, %539
  %546 = load ptr, ptr %32, align 8, !tbaa !5
  %547 = icmp ne ptr %546, null
  br i1 %547, label %548, label %551

548:                                              ; preds = %545
  %549 = load ptr, ptr %32, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %549, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %550)
  br label %551

551:                                              ; preds = %548, %545
  %552 = load ptr, ptr %33, align 8, !tbaa !5
  %553 = icmp ne ptr %552, null
  br i1 %553, label %554, label %557

554:                                              ; preds = %551
  %555 = load ptr, ptr %33, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %555, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %556)
  br label %557

557:                                              ; preds = %554, %551
  %558 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %558)
  %559 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %559, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %810

560:                                              ; preds = %502
  %561 = load i32, ptr %27, align 4, !tbaa !9
  %562 = icmp ne i32 %561, 0
  br i1 %562, label %563, label %566

563:                                              ; preds = %560
  %564 = load ptr, ptr %49, align 8, !tbaa !5
  %565 = load ptr, ptr %38, align 8, !tbaa !5
  call void @InitMonitor(ptr noundef %564, ptr noundef %565, ptr noundef null)
  br label %566

566:                                              ; preds = %563, %560
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #3
  %567 = load i32, ptr %27, align 4, !tbaa !9
  %568 = icmp ne i32 %567, 0
  %569 = zext i1 %568 to i64
  %570 = select i1 %568, i32 0, i32 5
  %571 = call ptr @MakeProgressAPI(ptr noundef @.str.77, i32 noundef %570)
  store ptr %571, ptr %50, align 8, !tbaa !5
  %572 = load ptr, ptr %50, align 8, !tbaa !5
  %573 = icmp ne ptr %572, null
  br i1 %573, label %574, label %589

574:                                              ; preds = %566
  %575 = load ptr, ptr %35, align 8, !tbaa !5
  %576 = load ptr, ptr %37, align 8, !tbaa !5
  %577 = load ptr, ptr %33, align 8, !tbaa !5
  %578 = load ptr, ptr %50, align 8, !tbaa !5
  %579 = load ptr, ptr %49, align 8, !tbaa !5
  %580 = load ptr, ptr %38, align 8, !tbaa !5
  %581 = load ptr, ptr %16, align 8, !tbaa !5
  %582 = call i32 @Longtail_WriteContent(ptr noundef %575, ptr noundef %576, ptr noundef %577, ptr noundef %578, ptr noundef null, ptr noundef null, ptr noundef %579, ptr noundef %580, ptr noundef %581)
  store i32 %582, ptr %41, align 4, !tbaa !9
  %583 = load ptr, ptr %50, align 8, !tbaa !5
  %584 = icmp ne ptr %583, null
  br i1 %584, label %585, label %588

585:                                              ; preds = %574
  %586 = load ptr, ptr %50, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.Longtail_ProgressAPI, ptr %586, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %587)
  br label %588

588:                                              ; preds = %585, %574
  br label %590

589:                                              ; preds = %566
  store i32 12, ptr %41, align 4, !tbaa !9
  br label %590

590:                                              ; preds = %589, %588
  %591 = load i32, ptr %41, align 4, !tbaa !9
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %644

593:                                              ; preds = %590
  %594 = load ptr, ptr %30, align 8, !tbaa !5
  %595 = load ptr, ptr %16, align 8, !tbaa !5
  %596 = load ptr, ptr %15, align 8, !tbaa !5
  %597 = load i32, ptr %41, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 1163, ptr noundef %594, i32 noundef 3, ptr noundef @.str.78, ptr noundef %595, ptr noundef %596, i32 noundef %597)
  %598 = load ptr, ptr %48, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %598)
  %599 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %599)
  %600 = load ptr, ptr %43, align 8, !tbaa !5
  %601 = icmp ne ptr %600, null
  br i1 %601, label %602, label %605

602:                                              ; preds = %593
  %603 = load ptr, ptr %43, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %603, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %604)
  br label %605

605:                                              ; preds = %602, %593
  %606 = load ptr, ptr %37, align 8, !tbaa !5
  %607 = icmp ne ptr %606, null
  br i1 %607, label %608, label %611

608:                                              ; preds = %605
  %609 = load ptr, ptr %37, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %609, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %610)
  br label %611

611:                                              ; preds = %608, %605
  %612 = load ptr, ptr %36, align 8, !tbaa !5
  %613 = icmp ne ptr %612, null
  br i1 %613, label %614, label %617

614:                                              ; preds = %611
  %615 = load ptr, ptr %36, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %615, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %616)
  br label %617

617:                                              ; preds = %614, %611
  %618 = load ptr, ptr %35, align 8, !tbaa !5
  %619 = icmp ne ptr %618, null
  br i1 %619, label %620, label %623

620:                                              ; preds = %617
  %621 = load ptr, ptr %35, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %621, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %622)
  br label %623

623:                                              ; preds = %620, %617
  %624 = load ptr, ptr %34, align 8, !tbaa !5
  %625 = icmp ne ptr %624, null
  br i1 %625, label %626, label %629

626:                                              ; preds = %623
  %627 = load ptr, ptr %34, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %627, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %628)
  br label %629

629:                                              ; preds = %626, %623
  %630 = load ptr, ptr %32, align 8, !tbaa !5
  %631 = icmp ne ptr %630, null
  br i1 %631, label %632, label %635

632:                                              ; preds = %629
  %633 = load ptr, ptr %32, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %633, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %634)
  br label %635

635:                                              ; preds = %632, %629
  %636 = load ptr, ptr %33, align 8, !tbaa !5
  %637 = icmp ne ptr %636, null
  br i1 %637, label %638, label %641

638:                                              ; preds = %635
  %639 = load ptr, ptr %33, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %639, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %640)
  br label %641

641:                                              ; preds = %638, %635
  %642 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %642)
  %643 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %643, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %809

644:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #3
  %645 = load ptr, ptr %48, align 8, !tbaa !5
  %646 = load ptr, ptr %49, align 8, !tbaa !5
  %647 = call i32 @Longtail_MergeStoreIndex(ptr noundef %645, ptr noundef %646, ptr noundef %51)
  store i32 %647, ptr %41, align 4, !tbaa !9
  %648 = load i32, ptr %41, align 4, !tbaa !9
  %649 = icmp ne i32 %648, 0
  br i1 %649, label %650, label %700

650:                                              ; preds = %644
  %651 = load ptr, ptr %30, align 8, !tbaa !5
  %652 = load i32, ptr %41, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 1184, ptr noundef %651, i32 noundef 3, ptr noundef @.str.79, i32 noundef %652)
  %653 = load ptr, ptr %49, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %653)
  %654 = load ptr, ptr %48, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %654)
  %655 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %655)
  %656 = load ptr, ptr %43, align 8, !tbaa !5
  %657 = icmp ne ptr %656, null
  br i1 %657, label %658, label %661

658:                                              ; preds = %650
  %659 = load ptr, ptr %43, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %659, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %660)
  br label %661

661:                                              ; preds = %658, %650
  %662 = load ptr, ptr %37, align 8, !tbaa !5
  %663 = icmp ne ptr %662, null
  br i1 %663, label %664, label %667

664:                                              ; preds = %661
  %665 = load ptr, ptr %37, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %665, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %666)
  br label %667

667:                                              ; preds = %664, %661
  %668 = load ptr, ptr %36, align 8, !tbaa !5
  %669 = icmp ne ptr %668, null
  br i1 %669, label %670, label %673

670:                                              ; preds = %667
  %671 = load ptr, ptr %36, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %671, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %672)
  br label %673

673:                                              ; preds = %670, %667
  %674 = load ptr, ptr %35, align 8, !tbaa !5
  %675 = icmp ne ptr %674, null
  br i1 %675, label %676, label %679

676:                                              ; preds = %673
  %677 = load ptr, ptr %35, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %677, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %678)
  br label %679

679:                                              ; preds = %676, %673
  %680 = load ptr, ptr %34, align 8, !tbaa !5
  %681 = icmp ne ptr %680, null
  br i1 %681, label %682, label %685

682:                                              ; preds = %679
  %683 = load ptr, ptr %34, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %683, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %684)
  br label %685

685:                                              ; preds = %682, %679
  %686 = load ptr, ptr %32, align 8, !tbaa !5
  %687 = icmp ne ptr %686, null
  br i1 %687, label %688, label %691

688:                                              ; preds = %685
  %689 = load ptr, ptr %32, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %689, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %690)
  br label %691

691:                                              ; preds = %688, %685
  %692 = load ptr, ptr %33, align 8, !tbaa !5
  %693 = icmp ne ptr %692, null
  br i1 %693, label %694, label %697

694:                                              ; preds = %691
  %695 = load ptr, ptr %33, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %695, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %696)
  br label %697

697:                                              ; preds = %694, %691
  %698 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %698)
  %699 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %699, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %808

700:                                              ; preds = %644
  %701 = load ptr, ptr %35, align 8, !tbaa !5
  %702 = load ptr, ptr %38, align 8, !tbaa !5
  %703 = load ptr, ptr %18, align 8, !tbaa !5
  %704 = call i32 @Longtail_WriteVersionIndex(ptr noundef %701, ptr noundef %702, ptr noundef %703)
  store i32 %704, ptr %41, align 4, !tbaa !9
  %705 = load i32, ptr %41, align 4, !tbaa !9
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %707, label %760

707:                                              ; preds = %700
  %708 = load ptr, ptr %30, align 8, !tbaa !5
  %709 = load ptr, ptr %16, align 8, !tbaa !5
  %710 = load ptr, ptr %18, align 8, !tbaa !5
  %711 = load i32, ptr %41, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef @.str.69, ptr noundef @__func__.UpSync, i32 noundef 1205, ptr noundef %708, i32 noundef 3, ptr noundef @.str.80, ptr noundef %709, ptr noundef %710, i32 noundef %711)
  %712 = load ptr, ptr %51, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %712)
  %713 = load ptr, ptr %49, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %713)
  %714 = load ptr, ptr %48, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %714)
  %715 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %715)
  %716 = load ptr, ptr %43, align 8, !tbaa !5
  %717 = icmp ne ptr %716, null
  br i1 %717, label %718, label %721

718:                                              ; preds = %707
  %719 = load ptr, ptr %43, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %719, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %720)
  br label %721

721:                                              ; preds = %718, %707
  %722 = load ptr, ptr %37, align 8, !tbaa !5
  %723 = icmp ne ptr %722, null
  br i1 %723, label %724, label %727

724:                                              ; preds = %721
  %725 = load ptr, ptr %37, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %725, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %726)
  br label %727

727:                                              ; preds = %724, %721
  %728 = load ptr, ptr %36, align 8, !tbaa !5
  %729 = icmp ne ptr %728, null
  br i1 %729, label %730, label %733

730:                                              ; preds = %727
  %731 = load ptr, ptr %36, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %731, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %732)
  br label %733

733:                                              ; preds = %730, %727
  %734 = load ptr, ptr %35, align 8, !tbaa !5
  %735 = icmp ne ptr %734, null
  br i1 %735, label %736, label %739

736:                                              ; preds = %733
  %737 = load ptr, ptr %35, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %737, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %738)
  br label %739

739:                                              ; preds = %736, %733
  %740 = load ptr, ptr %34, align 8, !tbaa !5
  %741 = icmp ne ptr %740, null
  br i1 %741, label %742, label %745

742:                                              ; preds = %739
  %743 = load ptr, ptr %34, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %743, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %744)
  br label %745

745:                                              ; preds = %742, %739
  %746 = load ptr, ptr %32, align 8, !tbaa !5
  %747 = icmp ne ptr %746, null
  br i1 %747, label %748, label %751

748:                                              ; preds = %745
  %749 = load ptr, ptr %32, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %749, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %750)
  br label %751

751:                                              ; preds = %748, %745
  %752 = load ptr, ptr %33, align 8, !tbaa !5
  %753 = icmp ne ptr %752, null
  br i1 %753, label %754, label %757

754:                                              ; preds = %751
  %755 = load ptr, ptr %33, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %755, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %756)
  br label %757

757:                                              ; preds = %754, %751
  %758 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %758)
  %759 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %759, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %808

760:                                              ; preds = %700
  %761 = load ptr, ptr %51, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %761)
  %762 = load ptr, ptr %49, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %762)
  %763 = load ptr, ptr %48, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %763)
  %764 = load ptr, ptr %38, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %764)
  %765 = load ptr, ptr %43, align 8, !tbaa !5
  %766 = icmp ne ptr %765, null
  br i1 %766, label %767, label %770

767:                                              ; preds = %760
  %768 = load ptr, ptr %43, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %768, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %769)
  br label %770

770:                                              ; preds = %767, %760
  %771 = load ptr, ptr %37, align 8, !tbaa !5
  %772 = icmp ne ptr %771, null
  br i1 %772, label %773, label %776

773:                                              ; preds = %770
  %774 = load ptr, ptr %37, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %774, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %775)
  br label %776

776:                                              ; preds = %773, %770
  %777 = load ptr, ptr %36, align 8, !tbaa !5
  %778 = icmp ne ptr %777, null
  br i1 %778, label %779, label %782

779:                                              ; preds = %776
  %780 = load ptr, ptr %36, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %780, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %781)
  br label %782

782:                                              ; preds = %779, %776
  %783 = load ptr, ptr %35, align 8, !tbaa !5
  %784 = icmp ne ptr %783, null
  br i1 %784, label %785, label %788

785:                                              ; preds = %782
  %786 = load ptr, ptr %35, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %786, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %787)
  br label %788

788:                                              ; preds = %785, %782
  %789 = load ptr, ptr %34, align 8, !tbaa !5
  %790 = icmp ne ptr %789, null
  br i1 %790, label %791, label %794

791:                                              ; preds = %788
  %792 = load ptr, ptr %34, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %792, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %793)
  br label %794

794:                                              ; preds = %791, %788
  %795 = load ptr, ptr %32, align 8, !tbaa !5
  %796 = icmp ne ptr %795, null
  br i1 %796, label %797, label %800

797:                                              ; preds = %794
  %798 = load ptr, ptr %32, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.Longtail_HashRegistryAPI, ptr %798, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %799)
  br label %800

800:                                              ; preds = %797, %794
  %801 = load ptr, ptr %33, align 8, !tbaa !5
  %802 = icmp ne ptr %801, null
  br i1 %802, label %803, label %806

803:                                              ; preds = %800
  %804 = load ptr, ptr %33, align 8, !tbaa !5
  %805 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %804, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %805)
  br label %806

806:                                              ; preds = %803, %800
  %807 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %807)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %42, align 4
  br label %808

808:                                              ; preds = %806, %757, %697
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #3
  br label %809

809:                                              ; preds = %808, %641
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  br label %810

810:                                              ; preds = %809, %557
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  br label %811

811:                                              ; preds = %810, %499
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  br label %812

812:                                              ; preds = %811, %438, %278
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  br label %813

813:                                              ; preds = %812, %228
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 312, ptr %28) #3
  %814 = load i32, ptr %14, align 4
  ret i32 %814
}

declare void @Longtail_CallLogger(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) #2

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

declare ptr @Longtail_CreateFullHashRegistry(...) #2

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

declare i32 @Longtail_GetCPUCount(...) #2

declare ptr @Longtail_CreateFullCompressionRegistry(...) #2

declare ptr @Longtail_CreateFSStorageAPI(...) #2

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

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

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

declare void @Longtail_DisposeAPI(ptr noundef) #2

declare ptr @Longtail_CreateHPCDCChunkerAPI(...) #2

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"Longtail_LogFieldFmt_Private", !6, i64 0, !6, i64 8, !6, i64 16}
!13 = !{!12, !6, i64 8}
!14 = !{!12, !6, i64 16}
!15 = !{!16, !6, i64 0}
!16 = !{!"Longtail_LogContextFmt_Private", !6, i64 0, !6, i64 8, !17, i64 16}
!17 = !{!"long", !7, i64 0}
!18 = !{!16, !6, i64 8}
!19 = !{!16, !17, i64 16}
!20 = !{!21, !6, i64 8}
!21 = !{!"Longtail_HashRegistryAPI", !22, i64 0, !6, i64 8}
!22 = !{!"Longtail_API", !6, i64 0}
!23 = !{!24, !10, i64 0}
!24 = !{!"Longtail_FileInfos", !10, i64 0, !10, i64 4, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!28, !6, i64 32}
!28 = !{!"Longtail_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}
!29 = !{!28, !6, i64 96}


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

%struct.Longtail_LogFieldFmt_Private = type { ptr, ptr, ptr }
%struct.Longtail_LogContextFmt_Private = type { ptr, ptr, i64 }

@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [68 x i8], align 1
@__func__.UpSync = external hidden unnamed_addr constant [7 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [51 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @InitMonitor(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare void @Longtail_Free(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local ptr @MakeProgressAPI(ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local i32 @UpSync(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9, i32 noundef %10, i32 noundef %11, i32 noundef %12) local_unnamed_addr #1 {
  %14 = alloca [13 x %struct.Longtail_LogFieldFmt_Private], align 16
  %15 = alloca %struct.Longtail_LogContextFmt_Private, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %14) #3
  store ptr @.str.52, ptr %14, align 16, !tbaa !5
  %22 = getelementptr inbounds i8, ptr %14, i64 8
  store ptr @.str.53, ptr %22, align 8, !tbaa !10
  %23 = getelementptr inbounds i8, ptr %14, i64 16
  store ptr %0, ptr %23, align 16, !tbaa !11
  %24 = getelementptr inbounds i8, ptr %14, i64 24
  store ptr @.str.54, ptr %24, align 8, !tbaa !5
  %25 = getelementptr inbounds i8, ptr %14, i64 32
  store ptr @.str.53, ptr %25, align 16, !tbaa !10
  %26 = getelementptr inbounds i8, ptr %14, i64 40
  store ptr %1, ptr %26, align 8, !tbaa !11
  %27 = getelementptr inbounds i8, ptr %14, i64 48
  store ptr @.str.55, ptr %27, align 16, !tbaa !5
  %28 = getelementptr inbounds i8, ptr %14, i64 56
  store ptr @.str.56, ptr %28, align 8, !tbaa !10
  %29 = getelementptr inbounds i8, ptr %14, i64 64
  store ptr %2, ptr %29, align 16, !tbaa !11
  %30 = getelementptr inbounds i8, ptr %14, i64 72
  store ptr @.str.57, ptr %30, align 8, !tbaa !5
  %31 = getelementptr inbounds i8, ptr %14, i64 80
  store ptr @.str.53, ptr %31, align 16, !tbaa !10
  %32 = getelementptr inbounds i8, ptr %14, i64 88
  store ptr %3, ptr %32, align 8, !tbaa !11
  %33 = getelementptr inbounds i8, ptr %14, i64 96
  store ptr @.str.58, ptr %33, align 16, !tbaa !5
  %34 = getelementptr inbounds i8, ptr %14, i64 104
  store ptr @.str.59, ptr %34, align 8, !tbaa !10
  %35 = getelementptr inbounds i8, ptr %14, i64 112
  %36 = zext i32 %4 to i64
  %37 = inttoptr i64 %36 to ptr
  store ptr %37, ptr %35, align 16, !tbaa !11
  %38 = getelementptr inbounds i8, ptr %14, i64 120
  store ptr @.str.60, ptr %38, align 8, !tbaa !5
  %39 = getelementptr inbounds i8, ptr %14, i64 128
  store ptr @.str.59, ptr %39, align 16, !tbaa !10
  %40 = getelementptr inbounds i8, ptr %14, i64 136
  %41 = zext i32 %5 to i64
  %42 = inttoptr i64 %41 to ptr
  store ptr %42, ptr %40, align 8, !tbaa !11
  %43 = getelementptr inbounds i8, ptr %14, i64 144
  store ptr @.str.61, ptr %43, align 16, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %14, i64 152
  store ptr @.str.59, ptr %44, align 8, !tbaa !10
  %45 = getelementptr inbounds i8, ptr %14, i64 160
  %46 = zext i32 %6 to i64
  %47 = inttoptr i64 %46 to ptr
  store ptr %47, ptr %45, align 16, !tbaa !11
  %48 = getelementptr inbounds i8, ptr %14, i64 168
  store ptr @.str.62, ptr %48, align 8, !tbaa !5
  %49 = getelementptr inbounds i8, ptr %14, i64 176
  store ptr @.str.59, ptr %49, align 16, !tbaa !10
  %50 = getelementptr inbounds i8, ptr %14, i64 184
  %51 = zext i32 %7 to i64
  %52 = inttoptr i64 %51 to ptr
  store ptr %52, ptr %50, align 8, !tbaa !11
  %53 = getelementptr inbounds i8, ptr %14, i64 192
  store ptr @.str.63, ptr %53, align 16, !tbaa !5
  %54 = getelementptr inbounds i8, ptr %14, i64 200
  store ptr @.str.59, ptr %54, align 8, !tbaa !10
  %55 = getelementptr inbounds i8, ptr %14, i64 208
  %56 = zext i32 %8 to i64
  %57 = inttoptr i64 %56 to ptr
  store ptr %57, ptr %55, align 16, !tbaa !11
  %58 = getelementptr inbounds i8, ptr %14, i64 216
  store ptr @.str.64, ptr %58, align 8, !tbaa !5
  %59 = getelementptr inbounds i8, ptr %14, i64 224
  store ptr @.str.59, ptr %59, align 16, !tbaa !10
  %60 = getelementptr inbounds i8, ptr %14, i64 232
  %61 = zext i32 %9 to i64
  %62 = inttoptr i64 %61 to ptr
  store ptr %62, ptr %60, align 8, !tbaa !11
  %63 = getelementptr inbounds i8, ptr %14, i64 240
  store ptr @.str.65, ptr %63, align 16, !tbaa !5
  %64 = getelementptr inbounds i8, ptr %14, i64 248
  store ptr @.str.66, ptr %64, align 8, !tbaa !10
  %65 = getelementptr inbounds i8, ptr %14, i64 256
  %66 = sext i32 %10 to i64
  %67 = inttoptr i64 %66 to ptr
  store ptr %67, ptr %65, align 16, !tbaa !11
  %68 = getelementptr inbounds i8, ptr %14, i64 264
  store ptr @.str.67, ptr %68, align 8, !tbaa !5
  %69 = getelementptr inbounds i8, ptr %14, i64 272
  store ptr @.str.66, ptr %69, align 16, !tbaa !10
  %70 = getelementptr inbounds i8, ptr %14, i64 280
  %71 = sext i32 %11 to i64
  %72 = inttoptr i64 %71 to ptr
  store ptr %72, ptr %70, align 8, !tbaa !11
  %73 = getelementptr inbounds i8, ptr %14, i64 288
  store ptr @.str.68, ptr %73, align 16, !tbaa !5
  %74 = getelementptr inbounds i8, ptr %14, i64 296
  store ptr @.str.66, ptr %74, align 8, !tbaa !10
  %75 = getelementptr inbounds i8, ptr %14, i64 304
  %76 = sext i32 %12 to i64
  %77 = inttoptr i64 %76 to ptr
  store ptr %77, ptr %75, align 16, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #3
  store ptr null, ptr %15, align 8, !tbaa !12
  %78 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %14, ptr %78, align 8, !tbaa !15
  %79 = getelementptr inbounds i8, ptr %15, i64 16
  store i64 13, ptr %79, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 969, ptr noundef nonnull %15, i32 noundef 0, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.71) #3
  %80 = call ptr @NormalizePath(ptr noundef %0)
  %81 = call ptr (...) @Longtail_CreateFullHashRegistry() #3
  %82 = call i32 (...) @Longtail_GetCPUCount() #3
  %83 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef %82, i32 noundef 0) #3
  %84 = call ptr (...) @Longtail_CreateFullCompressionRegistry() #3
  %85 = call ptr (...) @Longtail_CreateFSStorageAPI() #3
  %86 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %83, ptr noundef %85, ptr noundef %80, ptr noundef null, i32 noundef %11) #3
  %87 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %86, ptr noundef %84) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #3
  store ptr null, ptr %16, align 8, !tbaa !17
  %.not = icmp eq ptr %2, null
  br i1 %.not, label %91, label %88

88:                                               ; preds = %13
  %89 = call i32 @Longtail_ReadVersionIndex(ptr noundef %85, ptr noundef nonnull %2, ptr noundef nonnull %16) #3
  %.not328 = icmp eq i32 %89, 0
  br i1 %.not328, label %91, label %90

90:                                               ; preds = %88
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 985, ptr noundef nonnull %15, i32 noundef 2, ptr noundef nonnull @.str.72, ptr noundef nonnull %2, i32 noundef %89) #3
  br label %91

91:                                               ; preds = %88, %90, %13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #3
  %92 = getelementptr inbounds i8, ptr %81, i64 8
  %93 = load ptr, ptr %92, align 8, !tbaa !18
  %94 = call i32 %93(ptr noundef %81, i32 noundef %8, ptr noundef nonnull %17) #3
  %.not329 = icmp eq i32 %94, 0
  br i1 %.not329, label %107, label %95

95:                                               ; preds = %91
  %96 = load ptr, ptr %16, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %96) #3
  %.not395 = icmp eq ptr %87, null
  br i1 %.not395, label %98, label %97

97:                                               ; preds = %95
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %98

98:                                               ; preds = %97, %95
  %.not396 = icmp eq ptr %86, null
  br i1 %.not396, label %100, label %99

99:                                               ; preds = %98
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %100

100:                                              ; preds = %99, %98
  %.not397 = icmp eq ptr %85, null
  br i1 %.not397, label %102, label %101

101:                                              ; preds = %100
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %102

102:                                              ; preds = %101, %100
  %.not398 = icmp eq ptr %84, null
  br i1 %.not398, label %104, label %103

103:                                              ; preds = %102
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %104

104:                                              ; preds = %103, %102
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  %.not400 = icmp eq ptr %83, null
  br i1 %.not400, label %106, label %105

105:                                              ; preds = %104
  call void @Longtail_DisposeAPI(ptr noundef nonnull %83) #3
  br label %106

106:                                              ; preds = %104, %105
  call void @Longtail_Free(ptr noundef %80) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %286

107:                                              ; preds = %91
  %108 = call ptr (...) @Longtail_CreateHPCDCChunkerAPI() #3
  %.not330 = icmp eq ptr %108, null
  %109 = load ptr, ptr %16, align 8, !tbaa !17
  br i1 %.not330, label %110, label %121

110:                                              ; preds = %107
  call void @Longtail_Free(ptr noundef %109) #3
  %.not331 = icmp eq ptr %87, null
  br i1 %.not331, label %112, label %111

111:                                              ; preds = %110
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %112

112:                                              ; preds = %111, %110
  %.not332 = icmp eq ptr %86, null
  br i1 %.not332, label %114, label %113

113:                                              ; preds = %112
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %114

114:                                              ; preds = %113, %112
  %.not333 = icmp eq ptr %85, null
  br i1 %.not333, label %116, label %115

115:                                              ; preds = %114
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %116

116:                                              ; preds = %115, %114
  %.not334 = icmp eq ptr %84, null
  br i1 %.not334, label %118, label %117

117:                                              ; preds = %116
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %118

118:                                              ; preds = %117, %116
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  %.not336 = icmp eq ptr %83, null
  br i1 %.not336, label %120, label %119

119:                                              ; preds = %118
  call void @Longtail_DisposeAPI(ptr noundef nonnull %83) #3
  br label %120

120:                                              ; preds = %118, %119
  call void @Longtail_Free(ptr noundef %80) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %286

121:                                              ; preds = %107
  %122 = icmp eq ptr %109, null
  br i1 %122, label %123, label %165

123:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #3
  %124 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %85, ptr noundef %83, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %1, ptr noundef nonnull %18) #3
  %.not337 = icmp eq i32 %124, 0
  br i1 %.not337, label %134, label %125

125:                                              ; preds = %123
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 1032, ptr noundef nonnull %15, i32 noundef 3, ptr noundef nonnull @.str.73, ptr noundef %1, i32 noundef %124) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not346 = icmp eq ptr %87, null
  br i1 %.not346, label %127, label %126

126:                                              ; preds = %125
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %127

127:                                              ; preds = %126, %125
  %.not347 = icmp eq ptr %86, null
  br i1 %.not347, label %129, label %128

128:                                              ; preds = %127
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %129

129:                                              ; preds = %128, %127
  %.not348 = icmp eq ptr %85, null
  br i1 %.not348, label %131, label %130

130:                                              ; preds = %129
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %131

131:                                              ; preds = %130, %129
  %.not349 = icmp eq ptr %84, null
  br i1 %.not349, label %133, label %132

132:                                              ; preds = %131
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %133

133:                                              ; preds = %132, %131
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  %.not351 = icmp eq ptr %83, null
  br i1 %.not351, label %.thread, label %.thread.sink.split

134:                                              ; preds = %123
  %135 = load ptr, ptr %18, align 8, !tbaa !17
  %136 = load i32, ptr %135, align 8, !tbaa !21
  %137 = zext i32 %136 to i64
  %138 = shl nuw nsw i64 %137, 2
  %139 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %138) #3
  %140 = load ptr, ptr %18, align 8, !tbaa !17
  %141 = load i32, ptr %140, align 8, !tbaa !21
  %.not409 = icmp eq i32 %141, 0
  br i1 %.not409, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %134
  %142 = call ptr @MakeProgressAPI(ptr noundef nonnull @.str.74, i32 noundef 5)
  %.not338 = icmp eq ptr %142, null
  br i1 %.not338, label %151, label %147

.lr.ph:                                           ; preds = %134, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %134 ]
  %143 = getelementptr inbounds i32, ptr %139, i64 %indvars.iv
  store i32 %9, ptr %143, align 4, !tbaa !24
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %144 = load i32, ptr %140, align 8, !tbaa !21
  %145 = zext i32 %144 to i64
  %146 = icmp ult i64 %indvars.iv.next, %145
  br i1 %146, label %.lr.ph, label %._crit_edge, !llvm.loop !25

147:                                              ; preds = %._crit_edge
  %148 = load ptr, ptr %17, align 8, !tbaa !17
  %149 = load ptr, ptr %18, align 8, !tbaa !17
  %150 = call i32 @Longtail_CreateVersionIndex(ptr noundef %85, ptr noundef %148, ptr noundef nonnull %108, ptr noundef %83, ptr noundef nonnull %142, ptr noundef null, ptr noundef null, ptr noundef %1, ptr noundef %149, ptr noundef %139, i32 noundef %4, i32 noundef %10, ptr noundef nonnull %16) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %142) #3
  br label %151

151:                                              ; preds = %._crit_edge, %147
  %.0255 = phi i32 [ %150, %147 ], [ 12, %._crit_edge ]
  call void @Longtail_Free(ptr noundef %139) #3
  %152 = load ptr, ptr %18, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %152) #3
  %.not339 = icmp eq i32 %.0255, 0
  br i1 %.not339, label %164, label %153

153:                                              ; preds = %151
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 1077, ptr noundef nonnull %15, i32 noundef 3, ptr noundef nonnull @.str.75, ptr noundef %1, i32 noundef %.0255) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not340 = icmp eq ptr %87, null
  br i1 %.not340, label %155, label %154

154:                                              ; preds = %153
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %155

155:                                              ; preds = %154, %153
  %.not341 = icmp eq ptr %86, null
  br i1 %.not341, label %157, label %156

156:                                              ; preds = %155
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %157

157:                                              ; preds = %156, %155
  %.not342 = icmp eq ptr %85, null
  br i1 %.not342, label %159, label %158

158:                                              ; preds = %157
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %159

159:                                              ; preds = %158, %157
  %.not343 = icmp eq ptr %84, null
  br i1 %.not343, label %161, label %160

160:                                              ; preds = %159
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %161

161:                                              ; preds = %160, %159
  %.not344 = icmp eq ptr %81, null
  br i1 %.not344, label %163, label %162

162:                                              ; preds = %161
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %163

163:                                              ; preds = %162, %161
  %.not345 = icmp eq ptr %83, null
  br i1 %.not345, label %.thread, label %.thread.sink.split

.thread.sink.split:                               ; preds = %163, %133
  %.1.ph.ph = phi i32 [ %124, %133 ], [ %.0255, %163 ]
  call void @Longtail_DisposeAPI(ptr noundef nonnull %83) #3
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %163, %133
  %.1.ph = phi i32 [ %124, %133 ], [ %.0255, %163 ], [ %.1.ph.ph, %.thread.sink.split ]
  call void @Longtail_Free(ptr noundef %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #3
  br label %286

164:                                              ; preds = %151
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #3
  %.pre = load ptr, ptr %16, align 8, !tbaa !17
  br label %165

165:                                              ; preds = %164, %121
  %166 = phi ptr [ %.pre, %164 ], [ %109, %121 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #3
  %167 = getelementptr inbounds i8, ptr %166, i64 32
  %168 = load ptr, ptr %167, align 8, !tbaa !27
  %169 = load i32, ptr %168, align 4, !tbaa !24
  %170 = getelementptr inbounds i8, ptr %166, i64 96
  %171 = load ptr, ptr %170, align 8, !tbaa !29
  %172 = call i32 @SyncGetExistingContent(ptr noundef %87, i32 noundef %169, ptr noundef %171, i32 noundef %7, ptr noundef nonnull %19)
  %.not352 = icmp eq i32 %172, 0
  br i1 %.not352, label %187, label %173

173:                                              ; preds = %165
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 1099, ptr noundef nonnull %15, i32 noundef 3, ptr noundef nonnull @.str.76, i32 noundef %172) #3
  %174 = load ptr, ptr %16, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %174) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not389 = icmp eq ptr %87, null
  br i1 %.not389, label %176, label %175

175:                                              ; preds = %173
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %176

176:                                              ; preds = %175, %173
  %.not390 = icmp eq ptr %86, null
  br i1 %.not390, label %178, label %177

177:                                              ; preds = %176
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %178

178:                                              ; preds = %177, %176
  %.not391 = icmp eq ptr %85, null
  br i1 %.not391, label %180, label %179

179:                                              ; preds = %178
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %180

180:                                              ; preds = %179, %178
  %.not392 = icmp eq ptr %84, null
  br i1 %.not392, label %182, label %181

181:                                              ; preds = %180
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %182

182:                                              ; preds = %181, %180
  %.not393 = icmp eq ptr %81, null
  br i1 %.not393, label %184, label %183

183:                                              ; preds = %182
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %184

184:                                              ; preds = %183, %182
  %.not394 = icmp eq ptr %83, null
  br i1 %.not394, label %186, label %185

185:                                              ; preds = %184
  call void @Longtail_DisposeAPI(ptr noundef nonnull %83) #3
  br label %186

186:                                              ; preds = %185, %184
  call void @Longtail_Free(ptr noundef %80) #3
  br label %285

187:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #3
  %188 = load ptr, ptr %17, align 8, !tbaa !17
  %189 = load ptr, ptr %19, align 8, !tbaa !17
  %190 = load ptr, ptr %16, align 8, !tbaa !17
  %191 = call i32 @Longtail_CreateMissingContent(ptr noundef %188, ptr noundef %189, ptr noundef %190, i32 noundef %5, i32 noundef %6, ptr noundef nonnull %20) #3
  %.not353 = icmp eq i32 %191, 0
  br i1 %.not353, label %207, label %192

192:                                              ; preds = %187
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 1122, ptr noundef nonnull %15, i32 noundef 3, ptr noundef nonnull @.str.76, i32 noundef %191) #3
  %193 = load ptr, ptr %19, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %193) #3
  %194 = load ptr, ptr %16, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %194) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not383 = icmp eq ptr %87, null
  br i1 %.not383, label %196, label %195

195:                                              ; preds = %192
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %196

196:                                              ; preds = %195, %192
  %.not384 = icmp eq ptr %86, null
  br i1 %.not384, label %198, label %197

197:                                              ; preds = %196
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %198

198:                                              ; preds = %197, %196
  %.not385 = icmp eq ptr %85, null
  br i1 %.not385, label %200, label %199

199:                                              ; preds = %198
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %200

200:                                              ; preds = %199, %198
  %.not386 = icmp eq ptr %84, null
  br i1 %.not386, label %202, label %201

201:                                              ; preds = %200
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %202

202:                                              ; preds = %201, %200
  %.not387 = icmp eq ptr %81, null
  br i1 %.not387, label %204, label %203

203:                                              ; preds = %202
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %204

204:                                              ; preds = %203, %202
  %.not388 = icmp eq ptr %83, null
  br i1 %.not388, label %206, label %205

205:                                              ; preds = %204
  call void @Longtail_DisposeAPI(ptr noundef nonnull %83) #3
  br label %206

206:                                              ; preds = %205, %204
  call void @Longtail_Free(ptr noundef %80) #3
  br label %284

207:                                              ; preds = %187
  %.not354 = icmp eq i32 %12, 0
  br i1 %.not354, label %211, label %208

208:                                              ; preds = %207
  %209 = load ptr, ptr %20, align 8, !tbaa !17
  %210 = load ptr, ptr %16, align 8, !tbaa !17
  call void @InitMonitor(ptr noundef %209, ptr noundef %210, ptr noundef null)
  br label %211

211:                                              ; preds = %208, %207
  %212 = phi i32 [ 0, %208 ], [ 5, %207 ]
  %213 = call ptr @MakeProgressAPI(ptr noundef nonnull @.str.77, i32 noundef %212)
  %.not355 = icmp eq ptr %213, null
  br i1 %.not355, label %.thread404, label %214

214:                                              ; preds = %211
  %215 = load ptr, ptr %20, align 8, !tbaa !17
  %216 = load ptr, ptr %16, align 8, !tbaa !17
  %217 = call i32 @Longtail_WriteContent(ptr noundef %85, ptr noundef %87, ptr noundef %83, ptr noundef nonnull %213, ptr noundef null, ptr noundef null, ptr noundef %215, ptr noundef %216, ptr noundef %1) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %213) #3
  %.not356 = icmp eq i32 %217, 0
  br i1 %.not356, label %232, label %.thread404

.thread404:                                       ; preds = %211, %214
  %.1256407 = phi i32 [ %217, %214 ], [ 12, %211 ]
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 1163, ptr noundef nonnull %15, i32 noundef 3, ptr noundef nonnull @.str.78, ptr noundef %1, ptr noundef %0, i32 noundef %.1256407) #3
  %218 = load ptr, ptr %19, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %218) #3
  %219 = load ptr, ptr %16, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %219) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not377 = icmp eq ptr %87, null
  br i1 %.not377, label %221, label %220

220:                                              ; preds = %.thread404
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %221

221:                                              ; preds = %220, %.thread404
  %.not378 = icmp eq ptr %86, null
  br i1 %.not378, label %223, label %222

222:                                              ; preds = %221
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %223

223:                                              ; preds = %222, %221
  %.not379 = icmp eq ptr %85, null
  br i1 %.not379, label %225, label %224

224:                                              ; preds = %223
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %225

225:                                              ; preds = %224, %223
  %.not380 = icmp eq ptr %84, null
  br i1 %.not380, label %227, label %226

226:                                              ; preds = %225
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %227

227:                                              ; preds = %226, %225
  %.not381 = icmp eq ptr %81, null
  br i1 %.not381, label %229, label %228

228:                                              ; preds = %227
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %229

229:                                              ; preds = %228, %227
  %.not382 = icmp eq ptr %83, null
  br i1 %.not382, label %231, label %230

230:                                              ; preds = %229
  call void @Longtail_DisposeAPI(ptr noundef nonnull %83) #3
  br label %231

231:                                              ; preds = %230, %229
  call void @Longtail_Free(ptr noundef %80) #3
  br label %284

232:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #3
  %233 = load ptr, ptr %19, align 8, !tbaa !17
  %234 = load ptr, ptr %20, align 8, !tbaa !17
  %235 = call i32 @Longtail_MergeStoreIndex(ptr noundef %233, ptr noundef %234, ptr noundef nonnull %21) #3
  %.not357 = icmp eq i32 %235, 0
  br i1 %.not357, label %250, label %236

236:                                              ; preds = %232
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 1184, ptr noundef nonnull %15, i32 noundef 3, ptr noundef nonnull @.str.79, i32 noundef %235) #3
  %237 = load ptr, ptr %20, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %237) #3
  %238 = load ptr, ptr %19, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %238) #3
  %239 = load ptr, ptr %16, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %239) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not371 = icmp eq ptr %87, null
  br i1 %.not371, label %241, label %240

240:                                              ; preds = %236
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %241

241:                                              ; preds = %240, %236
  %.not372 = icmp eq ptr %86, null
  br i1 %.not372, label %243, label %242

242:                                              ; preds = %241
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %243

243:                                              ; preds = %242, %241
  %.not373 = icmp eq ptr %85, null
  br i1 %.not373, label %245, label %244

244:                                              ; preds = %243
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %245

245:                                              ; preds = %244, %243
  %.not374 = icmp eq ptr %84, null
  br i1 %.not374, label %247, label %246

246:                                              ; preds = %245
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %247

247:                                              ; preds = %246, %245
  %.not375 = icmp eq ptr %81, null
  br i1 %.not375, label %249, label %248

248:                                              ; preds = %247
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %249

249:                                              ; preds = %248, %247
  %.not376 = icmp eq ptr %83, null
  br i1 %.not376, label %283, label %.sink.split

250:                                              ; preds = %232
  %251 = load ptr, ptr %16, align 8, !tbaa !17
  %252 = call i32 @Longtail_WriteVersionIndex(ptr noundef %85, ptr noundef %251, ptr noundef %3) #3
  %.not358 = icmp eq i32 %252, 0
  br i1 %.not358, label %268, label %253

253:                                              ; preds = %250
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @Longtail_CallLogger(ptr noundef nonnull @.str.69, ptr noundef nonnull @__func__.UpSync, i32 noundef 1205, ptr noundef nonnull %15, i32 noundef 3, ptr noundef nonnull @.str.80, ptr noundef %1, ptr noundef %3, i32 noundef %252) #3
  %254 = load ptr, ptr %21, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %254) #3
  %255 = load ptr, ptr %20, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %255) #3
  %256 = load ptr, ptr %19, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %256) #3
  %257 = load ptr, ptr %16, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %257) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not365 = icmp eq ptr %87, null
  br i1 %.not365, label %259, label %258

258:                                              ; preds = %253
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %259

259:                                              ; preds = %258, %253
  %.not366 = icmp eq ptr %86, null
  br i1 %.not366, label %261, label %260

260:                                              ; preds = %259
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %261

261:                                              ; preds = %260, %259
  %.not367 = icmp eq ptr %85, null
  br i1 %.not367, label %263, label %262

262:                                              ; preds = %261
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %263

263:                                              ; preds = %262, %261
  %.not368 = icmp eq ptr %84, null
  br i1 %.not368, label %265, label %264

264:                                              ; preds = %263
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %265

265:                                              ; preds = %264, %263
  %.not369 = icmp eq ptr %81, null
  br i1 %.not369, label %267, label %266

266:                                              ; preds = %265
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %267

267:                                              ; preds = %266, %265
  %.not370 = icmp eq ptr %83, null
  br i1 %.not370, label %283, label %.sink.split

268:                                              ; preds = %250
  %269 = load ptr, ptr %21, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %269) #3
  %270 = load ptr, ptr %20, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %270) #3
  %271 = load ptr, ptr %19, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %271) #3
  %272 = load ptr, ptr %16, align 8, !tbaa !17
  call void @Longtail_Free(ptr noundef %272) #3
  call void @Longtail_DisposeAPI(ptr noundef nonnull %108) #3
  %.not359 = icmp eq ptr %87, null
  br i1 %.not359, label %274, label %273

273:                                              ; preds = %268
  call void @Longtail_DisposeAPI(ptr noundef nonnull %87) #3
  br label %274

274:                                              ; preds = %273, %268
  %.not360 = icmp eq ptr %86, null
  br i1 %.not360, label %276, label %275

275:                                              ; preds = %274
  call void @Longtail_DisposeAPI(ptr noundef nonnull %86) #3
  br label %276

276:                                              ; preds = %275, %274
  %.not361 = icmp eq ptr %85, null
  br i1 %.not361, label %278, label %277

277:                                              ; preds = %276
  call void @Longtail_DisposeAPI(ptr noundef nonnull %85) #3
  br label %278

278:                                              ; preds = %277, %276
  %.not362 = icmp eq ptr %84, null
  br i1 %.not362, label %280, label %279

279:                                              ; preds = %278
  call void @Longtail_DisposeAPI(ptr noundef nonnull %84) #3
  br label %280

280:                                              ; preds = %279, %278
  %.not363 = icmp eq ptr %81, null
  br i1 %.not363, label %282, label %281

281:                                              ; preds = %280
  call void @Longtail_DisposeAPI(ptr noundef nonnull %81) #3
  br label %282

282:                                              ; preds = %281, %280
  %.not364 = icmp eq ptr %83, null
  br i1 %.not364, label %283, label %.sink.split

.sink.split:                                      ; preds = %282, %267, %249
  %.2.ph = phi i32 [ %235, %249 ], [ %252, %267 ], [ 0, %282 ]
  call void @Longtail_DisposeAPI(ptr noundef nonnull %83) #3
  br label %283

283:                                              ; preds = %.sink.split, %282, %267, %249
  %.2 = phi i32 [ %235, %249 ], [ %252, %267 ], [ 0, %282 ], [ %.2.ph, %.sink.split ]
  call void @Longtail_Free(ptr noundef %80) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #3
  br label %284

284:                                              ; preds = %231, %283, %206
  %.4 = phi i32 [ %191, %206 ], [ %.1256407, %231 ], [ %.2, %283 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #3
  br label %285

285:                                              ; preds = %284, %186
  %.5 = phi i32 [ %172, %186 ], [ %.4, %284 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #3
  br label %286

286:                                              ; preds = %.thread, %285, %120, %106
  %.7 = phi i32 [ %94, %106 ], [ %.5, %285 ], [ 12, %120 ], [ %.1.ph, %.thread ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #3
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #3
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %14) #3
  ret i32 %.7
}

declare void @Longtail_CallLogger(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #2

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

declare ptr @Longtail_CreateFullHashRegistry(...) local_unnamed_addr #2

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

declare i32 @Longtail_GetCPUCount(...) local_unnamed_addr #2

declare ptr @Longtail_CreateFullCompressionRegistry(...) local_unnamed_addr #2

declare ptr @Longtail_CreateFSStorageAPI(...) local_unnamed_addr #2

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

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

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

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #2

declare ptr @Longtail_CreateHPCDCChunkerAPI(...) local_unnamed_addr #2

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"Longtail_LogFieldFmt_Private", !7, i64 0, !7, i64 8, !7, i64 16}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!6, !7, i64 8}
!11 = !{!6, !7, i64 16}
!12 = !{!13, !7, i64 0}
!13 = !{!"Longtail_LogContextFmt_Private", !7, i64 0, !7, i64 8, !14, i64 16}
!14 = !{!"long", !8, i64 0}
!15 = !{!13, !7, i64 8}
!16 = !{!13, !14, i64 16}
!17 = !{!7, !7, i64 0}
!18 = !{!19, !7, i64 8}
!19 = !{!"Longtail_HashRegistryAPI", !20, i64 0, !7, i64 8}
!20 = !{!"Longtail_API", !7, i64 0}
!21 = !{!22, !23, i64 0}
!22 = !{!"Longtail_FileInfos", !23, i64 0, !23, i64 4, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32}
!23 = !{!"int", !8, i64 0}
!24 = !{!23, !23, i64 0}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!28, !7, i64 32}
!28 = !{!"Longtail_VersionIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !23, i64 128, !7, i64 136, !7, i64 144}
!29 = !{!28, !7, i64 96}


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