; LLVM IR from fhanau/Efficient-Compression-Tool :: src/main.ll (Z10zipHandlerSt6vectorIiSaIiEEPPKciRK10ECTOptions)

; 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.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i64 }
%"struct.std::atomic.0" = type { %"struct.std::__atomic_base.1" }
%"struct.std::__atomic_base.1" = type { i64 }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.6" }
%"struct.std::_Head_base.6" = type { ptr }
%"class.std::filesystem::__cxx11::recursive_directory_iterator" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl" }
%"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.9" = type { i8 }
%struct.ECTOptions = type { i32, i32, i8, i8, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i8 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@_ZL14processedfiles = external hidden global %"struct.std::atomic", align 8
@_ZL5bytes = external hidden global %"struct.std::atomic", align 8
@_ZL7savings = external hidden global %"struct.std::atomic.0", align 8
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [21 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: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i64 noundef) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #3

declare noundef i64 @_Z13get_file_timePKc(ptr noundef) #4

declare noundef i64 @_Z8filesizePKc(ptr noundef) #4

declare i32 @printf(ptr noundef, ...) #4

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt13__atomic_baseImE9fetch_addEmSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef, i32 noundef) #5 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt13__atomic_baseIxE9fetch_addExSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef, i32 noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

declare void @_Z13set_file_timePKcl(ptr noundef, i64 noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z10zipHandlerSt6vectorIiSaIiEEPPKciRK10ECTOptions(ptr noundef %0, ptr noundef %1, i32 noundef %2, ptr noundef nonnull align 4 dereferenceable(40) %3) #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca i64, align 8
  %22 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %23 = alloca i1, align 1
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca [4096 x i8], align 16
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %31 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %32 = alloca i32, align 4
  %33 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca i1, align 1
  %36 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %37 = alloca i1, align 1
  %38 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %44 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %45 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %46 = alloca %"class.std::vector.7", align 8
  %47 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %48 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %49 = alloca %"class.std::allocator.9", align 1
  %50 = alloca i32, align 4
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca ptr, align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca ptr, align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca i64, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca ptr, align 8
  %64 = alloca i64, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca i64, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store i32 %2, ptr %8, align 4, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #10
  %73 = load ptr, ptr %7, align 8, !tbaa !5
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %75 = load i32, ptr %74, align 4, !tbaa !9
  %76 = sext i32 %75 to i64
  %77 = getelementptr inbounds ptr, ptr %73, i64 %76
  %78 = load ptr, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %78, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %79 unwind label %151

79:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #10
  %80 = load ptr, ptr %7, align 8, !tbaa !5
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %82 = load i32, ptr %81, align 4, !tbaa !9
  %83 = sext i32 %82 to i64
  %84 = getelementptr inbounds ptr, ptr %80, i64 %83
  %85 = load ptr, ptr %84, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %85, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %86 unwind label %155

86:                                               ; preds = %79
  %87 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str, i64 noundef -1) #10
  %88 = add i64 %87, 1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef %88, i64 noundef -1)
          to label %89 unwind label %159

89:                                               ; preds = %86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #10
  %90 = load ptr, ptr %7, align 8, !tbaa !5
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %92 = load i32, ptr %91, align 4, !tbaa !9
  %93 = sext i32 %92 to i64
  %94 = getelementptr inbounds ptr, ptr %90, i64 %93
  %95 = load ptr, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef %95, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %96 unwind label %165

96:                                               ; preds = %89
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  store i64 0, ptr %19, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  store i64 -1, ptr %21, align 8, !tbaa !11
  %97 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.11)
          to label %98 unwind label %169

98:                                               ; preds = %96
  br i1 %97, label %112, label %99

99:                                               ; preds = %98
  %100 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.12)
          to label %101 unwind label %169

101:                                              ; preds = %99
  br i1 %100, label %112, label %102

102:                                              ; preds = %101
  %103 = load ptr, ptr %7, align 8, !tbaa !5
  %104 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %105 = load i32, ptr %104, align 4, !tbaa !9
  %106 = sext i32 %105 to i64
  %107 = getelementptr inbounds ptr, ptr %103, i64 %106
  %108 = load ptr, ptr %107, align 8, !tbaa !5
  %109 = invoke noundef i32 @_Z5IsZIPPKc(ptr noundef %108)
          to label %110 unwind label %169

110:                                              ; preds = %102
  %111 = icmp eq i32 %109, 1
  br i1 %111, label %112, label %175

112:                                              ; preds = %110, %101, %98
  %113 = load ptr, ptr %7, align 8, !tbaa !5
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %115 = load i32, ptr %114, align 4, !tbaa !9
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds ptr, ptr %113, i64 %116
  %118 = load ptr, ptr %117, align 8, !tbaa !5
  %119 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %118)
          to label %120 unwind label %169

120:                                              ; preds = %112
  br i1 %119, label %175, label %121

121:                                              ; preds = %120
  %122 = load i32, ptr %20, align 4, !tbaa !9
  %123 = add i32 %122, 1
  store i32 %123, ptr %20, align 4, !tbaa !9
  %124 = load ptr, ptr %7, align 8, !tbaa !5
  %125 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %126 = load i32, ptr %125, align 4, !tbaa !9
  %127 = sext i32 %126 to i64
  %128 = getelementptr inbounds ptr, ptr %124, i64 %127
  %129 = load ptr, ptr %128, align 8, !tbaa !5
  %130 = invoke noundef zeroext i1 @_Z6existsPKc(ptr noundef %129)
          to label %131 unwind label %169

131:                                              ; preds = %121
  br i1 %130, label %132, label %174

132:                                              ; preds = %131
  %133 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %134 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %133)
          to label %135 unwind label %169

135:                                              ; preds = %132
  %136 = load i64, ptr %19, align 8, !tbaa !11
  %137 = add i64 %136, %134
  store i64 %137, ptr %19, align 8, !tbaa !11
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.ECTOptions, ptr %138, i32 0, i32 19
  %140 = load i8, ptr %139, align 4, !tbaa !13, !range !16, !noundef !17
  %141 = trunc i8 %140 to i1
  br i1 %141, label %142, label %173

142:                                              ; preds = %135
  %143 = load ptr, ptr %7, align 8, !tbaa !5
  %144 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %145 = load i32, ptr %144, align 4, !tbaa !9
  %146 = sext i32 %145 to i64
  %147 = getelementptr inbounds ptr, ptr %143, i64 %146
  %148 = load ptr, ptr %147, align 8, !tbaa !5
  %149 = invoke noundef i64 @_Z13get_file_timePKc(ptr noundef %148)
          to label %150 unwind label %169

150:                                              ; preds = %142
  store i64 %149, ptr %21, align 8, !tbaa !11
  br label %173

151:                                              ; preds = %4
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %13, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %14, align 4
  br label %164

155:                                              ; preds = %79
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %13, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %14, align 4
  br label %163

159:                                              ; preds = %86
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %13, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  br label %163

163:                                              ; preds = %159, %155
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  br label %164

164:                                              ; preds = %163, %151
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #10
  br label %833

165:                                              ; preds = %89
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %13, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #10
  br label %832

169:                                              ; preds = %271, %267, %265, %175, %142, %132, %121, %112, %102, %99, %96
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %13, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %14, align 4
  br label %831

173:                                              ; preds = %150, %135
  br label %174

174:                                              ; preds = %173, %131
  br label %275

175:                                              ; preds = %120, %110
  %176 = load ptr, ptr %7, align 8, !tbaa !5
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %178 = load i32, ptr %177, align 4, !tbaa !9
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds ptr, ptr %176, i64 %179
  %181 = load ptr, ptr %180, align 8, !tbaa !5
  store i1 false, ptr %23, align 1
  store i1 false, ptr %24, align 1
  %182 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %181)
          to label %183 unwind label %169

183:                                              ; preds = %175
  br i1 %182, label %193, label %184

184:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #10
  store i1 true, ptr %23, align 1
  %185 = load ptr, ptr %7, align 8, !tbaa !5
  %186 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds ptr, ptr %185, i64 %188
  invoke void @_ZNSt10filesystem7__cxx114pathC2IPKcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %22, ptr noundef nonnull align 8 dereferenceable(8) %189, i8 noundef zeroext 2)
          to label %190 unwind label %210

190:                                              ; preds = %184
  store i1 true, ptr %24, align 1
  %191 = invoke noundef zeroext i1 @_ZNSt10filesystem15is_regular_fileERKNS_7__cxx114pathE(ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %192 unwind label %214

192:                                              ; preds = %190
  br label %193

193:                                              ; preds = %192, %183
  %194 = phi i1 [ false, %183 ], [ %191, %192 ]
  %195 = load i1, ptr %24, align 1
  br i1 %195, label %196, label %197

196:                                              ; preds = %193
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #10
  br label %197

197:                                              ; preds = %196, %193
  %198 = load i1, ptr %23, align 1
  br i1 %198, label %199, label %200

199:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #10
  br label %200

200:                                              ; preds = %199, %197
  br i1 %194, label %201, label %230

201:                                              ; preds = %200
  %202 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str, i64 noundef -1) #10
  %203 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.13, i64 noundef -1) #10
  %204 = add i64 %203, 1
  %205 = icmp ugt i64 %202, %204
  br i1 %205, label %206, label %229

206:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #10
  %207 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str, i64 noundef -1) #10
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 noundef 0, i64 noundef %207)
          to label %208 unwind label %225

208:                                              ; preds = %206
  %209 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #10
  br label %229

210:                                              ; preds = %184
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %13, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %14, align 4
  br label %221

214:                                              ; preds = %190
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %13, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %14, align 4
  %218 = load i1, ptr %24, align 1
  br i1 %218, label %219, label %220

219:                                              ; preds = %214
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #10
  br label %220

220:                                              ; preds = %219, %214
  br label %221

221:                                              ; preds = %220, %210
  %222 = load i1, ptr %23, align 1
  br i1 %222, label %223, label %224

223:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #10
  br label %224

224:                                              ; preds = %223, %221
  br label %831

225:                                              ; preds = %206
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %13, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #10
  br label %831

229:                                              ; preds = %208, %201
  br label %265

230:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 4096, ptr %26) #10
  %231 = load ptr, ptr %7, align 8, !tbaa !5
  %232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #10
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds ptr, ptr %231, i64 %234
  %236 = load ptr, ptr %235, align 8, !tbaa !5
  %237 = getelementptr inbounds [4096 x i8], ptr %26, i64 0, i64 0
  %238 = call ptr @realpath(ptr noundef %236, ptr noundef %237) #10
  %239 = icmp ne ptr %238, null
  br i1 %239, label %247, label %240

240:                                              ; preds = %230
  %241 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.14)
          to label %242 unwind label %243

242:                                              ; preds = %240
  store i32 1, ptr %5, align 4
  store i32 1, ptr %27, align 4
  br label %262

243:                                              ; preds = %247, %240
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %13, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4096, ptr %26) #10
  br label %831

247:                                              ; preds = %230
  %248 = getelementptr inbounds [4096 x i8], ptr %26, i64 0, i64 0
  %249 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef %248)
          to label %250 unwind label %243

250:                                              ; preds = %247
  %251 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %252 = load i8, ptr %251, align 1, !tbaa !18
  %253 = sext i8 %252 to i32
  %254 = icmp eq i32 %253, 47
  br i1 %254, label %260, label %255

255:                                              ; preds = %250
  %256 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %257 = load i8, ptr %256, align 1, !tbaa !18
  %258 = sext i8 %257 to i32
  %259 = icmp eq i32 %258, 92
  br i1 %259, label %260, label %261

260:                                              ; preds = %255, %250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %261

261:                                              ; preds = %260, %255
  store i32 0, ptr %27, align 4
  br label %262

262:                                              ; preds = %261, %242
  call void @llvm.lifetime.end.p0(i64 4096, ptr %26) #10
  %263 = load i32, ptr %27, align 4
  switch i32 %263, label %829 [
    i32 0, label %264
  ]

264:                                              ; preds = %262
  br label %265

265:                                              ; preds = %264, %229
  %266 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.8)
          to label %267 unwind label %169

267:                                              ; preds = %265
  %268 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %269 = invoke noundef zeroext i1 @_Z6existsPKc(ptr noundef %268)
          to label %270 unwind label %169

270:                                              ; preds = %267
  br i1 %269, label %271, label %274

271:                                              ; preds = %270
  %272 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.15)
          to label %273 unwind label %169

273:                                              ; preds = %271
  store i32 1, ptr %5, align 4
  store i32 1, ptr %27, align 4
  br label %829

274:                                              ; preds = %270
  br label %275

275:                                              ; preds = %274, %174
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  store i32 0, ptr %28, align 4, !tbaa !9
  br label %276

276:                                              ; preds = %799, %275
  %277 = load i32, ptr %28, align 4, !tbaa !9
  %278 = icmp eq i32 %277, 0
  br i1 %278, label %279, label %283

279:                                              ; preds = %276
  %280 = load i32, ptr %20, align 4, !tbaa !9
  %281 = load i32, ptr %8, align 4, !tbaa !9
  %282 = icmp ult i32 %280, %281
  br label %283

283:                                              ; preds = %279, %276
  %284 = phi i1 [ false, %276 ], [ %282, %279 ]
  br i1 %284, label %285, label %802

285:                                              ; preds = %283
  %286 = load ptr, ptr %7, align 8, !tbaa !5
  %287 = load i32, ptr %20, align 4, !tbaa !9
  %288 = zext i32 %287 to i64
  %289 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %288) #10
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds ptr, ptr %286, i64 %291
  %293 = load ptr, ptr %292, align 8, !tbaa !5
  %294 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %293)
          to label %295 unwind label %346

295:                                              ; preds = %285
  br i1 %294, label %296, label %651

296:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #10
  %297 = load ptr, ptr %7, align 8, !tbaa !5
  %298 = load i32, ptr %20, align 4, !tbaa !9
  %299 = zext i32 %298 to i64
  %300 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %299) #10
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds ptr, ptr %297, i64 %302
  invoke void @_ZNSt10filesystem7__cxx114pathC2IPKcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull align 8 dereferenceable(8) %303, i8 noundef zeroext 2)
          to label %304 unwind label %350

304:                                              ; preds = %296
  invoke void @_ZNSt10filesystem9canonicalERKNS_7__cxx114pathE(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8 %30, ptr noundef nonnull align 8 dereferenceable(40) %31)
          to label %305 unwind label %354

305:                                              ; preds = %304
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(40) %30)
          to label %306 unwind label %358

306:                                              ; preds = %305
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %30) #10
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %33) #10
  store i1 false, ptr %35, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %33, ptr noundef nonnull align 8 dereferenceable(32) %29, i8 noundef zeroext 2)
          to label %307 unwind label %364

307:                                              ; preds = %306
  %308 = call noundef zeroext i1 @_ZNKSt10filesystem7__cxx114path15has_parent_pathEv(ptr noundef nonnull align 8 dereferenceable(40) %33) #10
  br i1 %308, label %309, label %315

309:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #10
  store i1 true, ptr %35, align 1
  call void @llvm.lifetime.start.p0(i64 40, ptr %36) #10
  store i1 true, ptr %37, align 1
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #10
  store i1 true, ptr %39, align 1
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef nonnull align 8 dereferenceable(32) %29, i8 noundef zeroext 2)
          to label %310 unwind label %368

310:                                              ; preds = %309
  store i1 true, ptr %40, align 1
  invoke void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8 %36, ptr noundef nonnull align 8 dereferenceable(40) %38)
          to label %311 unwind label %372

311:                                              ; preds = %310
  store i1 true, ptr %41, align 1
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %36)
          to label %312 unwind label %376

312:                                              ; preds = %311
  store i1 true, ptr %42, align 1
  %313 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  %314 = add i64 %313, 1
  br label %316

315:                                              ; preds = %307
  br label %316

316:                                              ; preds = %315, %312
  %317 = phi i64 [ %314, %312 ], [ 0, %315 ]
  %318 = trunc i64 %317 to i32
  %319 = load i1, ptr %42, align 1
  br i1 %319, label %320, label %321

320:                                              ; preds = %316
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %321

321:                                              ; preds = %320, %316
  %322 = load i1, ptr %41, align 1
  br i1 %322, label %323, label %324

323:                                              ; preds = %321
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #10
  br label %324

324:                                              ; preds = %323, %321
  %325 = load i1, ptr %40, align 1
  br i1 %325, label %326, label %327

326:                                              ; preds = %324
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #10
  br label %327

327:                                              ; preds = %326, %324
  %328 = load i1, ptr %39, align 1
  br i1 %328, label %329, label %330

329:                                              ; preds = %327
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #10
  br label %330

330:                                              ; preds = %329, %327
  %331 = load i1, ptr %37, align 1
  br i1 %331, label %332, label %333

332:                                              ; preds = %330
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #10
  br label %333

333:                                              ; preds = %332, %330
  %334 = load i1, ptr %35, align 1
  br i1 %334, label %335, label %336

335:                                              ; preds = %333
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #10
  br label %336

336:                                              ; preds = %335, %333
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #10
  store i32 %318, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %44) #10
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %44, ptr noundef nonnull align 8 dereferenceable(32) %29, i8 noundef zeroext 2)
          to label %337 unwind label %398

337:                                              ; preds = %336
  invoke void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(40) %44)
          to label %338 unwind label %402

338:                                              ; preds = %337
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 8 dereferenceable(16) %43) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(16) %45) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #10
  call void @_ZNSaINSt10filesystem7__cxx114pathEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  invoke void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEC2INS1_28recursive_directory_iteratorEvEET_S7_RKS3_(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef %47, ptr noundef %48, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %339 unwind label %407

339:                                              ; preds = %338
  call void @_ZNSt15__new_allocatorINSt10filesystem7__cxx114pathEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %340

340:                                              ; preds = %590, %339
  %341 = load i32, ptr %50, align 4, !tbaa !9
  %342 = zext i32 %341 to i64
  %343 = call noundef i64 @_ZNKSt6vectorINSt10filesystem7__cxx114pathESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %46) #10
  %344 = icmp ult i64 %342, %343
  br i1 %344, label %411, label %345

345:                                              ; preds = %340
  store i32 5, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %597

346:                                              ; preds = %285
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %13, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %14, align 4
  br label %828

350:                                              ; preds = %296
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %13, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %14, align 4
  br label %363

354:                                              ; preds = %304
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %13, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %14, align 4
  br label %362

358:                                              ; preds = %305
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %13, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %14, align 4
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %30) #10
  br label %362

362:                                              ; preds = %358, %354
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #10
  br label %363

363:                                              ; preds = %362, %350
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %30) #10
  br label %650

364:                                              ; preds = %306
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %13, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %14, align 4
  br label %397

368:                                              ; preds = %309
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %13, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %14, align 4
  br label %387

372:                                              ; preds = %310
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %13, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %14, align 4
  br label %383

376:                                              ; preds = %311
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %13, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %14, align 4
  %380 = load i1, ptr %41, align 1
  br i1 %380, label %381, label %382

381:                                              ; preds = %376
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #10
  br label %382

382:                                              ; preds = %381, %376
  br label %383

383:                                              ; preds = %382, %372
  %384 = load i1, ptr %40, align 1
  br i1 %384, label %385, label %386

385:                                              ; preds = %383
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #10
  br label %386

386:                                              ; preds = %385, %383
  br label %387

387:                                              ; preds = %386, %368
  %388 = load i1, ptr %39, align 1
  br i1 %388, label %389, label %390

389:                                              ; preds = %387
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #10
  br label %390

390:                                              ; preds = %389, %387
  %391 = load i1, ptr %37, align 1
  br i1 %391, label %392, label %393

392:                                              ; preds = %390
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #10
  br label %393

393:                                              ; preds = %392, %390
  %394 = load i1, ptr %35, align 1
  br i1 %394, label %395, label %396

395:                                              ; preds = %393
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #10
  br label %396

396:                                              ; preds = %395, %393
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #10
  br label %397

397:                                              ; preds = %396, %364
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #10
  br label %649

398:                                              ; preds = %336
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %13, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %14, align 4
  br label %406

402:                                              ; preds = %337
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %13, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %14, align 4
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #10
  br label %406

406:                                              ; preds = %402, %398
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #10
  br label %648

407:                                              ; preds = %338
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %13, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %14, align 4
  call void @_ZNSt15__new_allocatorINSt10filesystem7__cxx114pathEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #10
  br label %647

411:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #10
  %412 = load i32, ptr %50, align 4, !tbaa !9
  %413 = zext i32 %412 to i64
  %414 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %413) #10
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(40) %414)
          to label %415 unwind label %445

415:                                              ; preds = %411
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %416 = load i32, ptr %32, align 4, !tbaa !9
  %417 = sext i32 %416 to i64
  %418 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %51, i64 noundef 0, i64 noundef %417)
          to label %419 unwind label %449

419:                                              ; preds = %415
  %420 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %418) #10
  store ptr %420, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #10
  %421 = load i32, ptr %50, align 4, !tbaa !9
  %422 = zext i32 %421 to i64
  %423 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %422) #10
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(40) %423)
          to label %424 unwind label %453

424:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  %425 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  store ptr %425, ptr %54, align 8, !tbaa !5
  %426 = load ptr, ptr %54, align 8, !tbaa !5
  %427 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %426)
          to label %428 unwind label %457

428:                                              ; preds = %424
  br i1 %427, label %429, label %504

429:                                              ; preds = %428
  %430 = load i32, ptr %50, align 4, !tbaa !9
  %431 = add i32 %430, 1
  %432 = load i32, ptr %8, align 4, !tbaa !9
  %433 = icmp ult i32 %431, %432
  br i1 %433, label %434, label %474

434:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #10
  %435 = load i32, ptr %50, align 4, !tbaa !9
  %436 = add i32 %435, 1
  %437 = zext i32 %436 to i64
  %438 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %437) #10
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(40) %438)
          to label %439 unwind label %461

439:                                              ; preds = %434
  %440 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  %441 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %55, i64 noundef 0, i64 noundef %440, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %442 unwind label %465

442:                                              ; preds = %439
  %443 = icmp eq i32 %441, 0
  br i1 %443, label %444, label %469

444:                                              ; preds = %442
  store i32 7, ptr %27, align 4
  br label %470

445:                                              ; preds = %411
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %13, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %14, align 4
  br label %596

449:                                              ; preds = %415
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %13, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %14, align 4
  br label %595

453:                                              ; preds = %419
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %13, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %14, align 4
  br label %594

457:                                              ; preds = %485, %424
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %13, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %14, align 4
  br label %593

461:                                              ; preds = %434
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %13, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %14, align 4
  br label %473

465:                                              ; preds = %439
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %13, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %473

469:                                              ; preds = %442
  store i32 0, ptr %27, align 4
  br label %470

470:                                              ; preds = %469, %444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  %471 = load i32, ptr %27, align 4
  switch i32 %471, label %587 [
    i32 0, label %472
  ]

472:                                              ; preds = %470
  br label %474

473:                                              ; preds = %465, %461
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  br label %593

474:                                              ; preds = %472, %429
  %475 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #10
  %476 = load ptr, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef %476, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %477 unwind label %489

477:                                              ; preds = %474
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.16)
          to label %478 unwind label %493

478:                                              ; preds = %477
  %479 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  %480 = load ptr, ptr %54, align 8, !tbaa !5
  %481 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %475, ptr noundef %479, ptr noundef null, i64 noundef 0, ptr noundef null, i16 noundef zeroext 0, ptr noundef %480)
          to label %482 unwind label %497

482:                                              ; preds = %478
  %483 = icmp ne i32 %481, 0
  %484 = xor i1 %483, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #10
  br i1 %484, label %485, label %503

485:                                              ; preds = %482
  %486 = load ptr, ptr %54, align 8, !tbaa !5
  %487 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.17, ptr noundef %486)
          to label %488 unwind label %457

488:                                              ; preds = %485
  br label %503

489:                                              ; preds = %474
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %13, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %14, align 4
  br label %502

493:                                              ; preds = %477
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %13, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %14, align 4
  br label %501

497:                                              ; preds = %478
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %13, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  br label %501

501:                                              ; preds = %497, %493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  br label %502

502:                                              ; preds = %501, %489
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #10
  br label %593

503:                                              ; preds = %488, %482
  br label %586

504:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %505 = load ptr, ptr %54, align 8, !tbaa !5
  %506 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %505)
          to label %507 unwind label %514

507:                                              ; preds = %504
  store i64 %506, ptr %59, align 8, !tbaa !19
  %508 = load i64, ptr %59, align 8, !tbaa !19
  %509 = icmp sgt i64 %508, 4294967295
  br i1 %509, label %510, label %518

510:                                              ; preds = %507
  %511 = load ptr, ptr %54, align 8, !tbaa !5
  %512 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.18, ptr noundef %511)
          to label %513 unwind label %514

513:                                              ; preds = %510
  store i32 7, ptr %27, align 4
  br label %582

514:                                              ; preds = %521, %510, %504
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %13, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %14, align 4
  br label %585

518:                                              ; preds = %507
  %519 = load i64, ptr %59, align 8, !tbaa !19
  %520 = icmp slt i64 %519, 0
  br i1 %520, label %521, label %525

521:                                              ; preds = %518
  %522 = load ptr, ptr %54, align 8, !tbaa !5
  %523 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.19, ptr noundef %522)
          to label %524 unwind label %514

524:                                              ; preds = %521
  store i32 7, ptr %27, align 4
  br label %582

525:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %526 = load i64, ptr %59, align 8, !tbaa !19
  %527 = call noalias ptr @malloc(i64 noundef %526) #11
  store ptr %527, ptr %60, align 8, !tbaa !5
  %528 = load ptr, ptr %60, align 8, !tbaa !5
  %529 = icmp ne ptr %528, null
  br i1 %529, label %531, label %530

530:                                              ; preds = %525
  call void @exit(i32 noundef 1) #12
  unreachable

531:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %532 = load ptr, ptr %54, align 8, !tbaa !5
  %533 = invoke noalias ptr @fopen(ptr noundef %532, ptr noundef @.str.20)
          to label %534 unwind label %539

534:                                              ; preds = %531
  store ptr %533, ptr %61, align 8, !tbaa !5
  %535 = load ptr, ptr %61, align 8, !tbaa !5
  %536 = icmp ne ptr %535, null
  br i1 %536, label %543, label %537

537:                                              ; preds = %534
  %538 = load ptr, ptr %60, align 8, !tbaa !5
  call void @free(ptr noundef %538) #10
  store i32 1, ptr %28, align 4, !tbaa !9
  store i32 7, ptr %27, align 4
  br label %581

539:                                              ; preds = %573, %568, %559, %556, %551, %543, %531
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %13, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %585

543:                                              ; preds = %534
  %544 = load ptr, ptr %60, align 8, !tbaa !5
  %545 = load i64, ptr %59, align 8, !tbaa !19
  %546 = load ptr, ptr %61, align 8, !tbaa !5
  %547 = invoke i64 @fread(ptr noundef %544, i64 noundef 1, i64 noundef %545, ptr noundef %546)
          to label %548 unwind label %539

548:                                              ; preds = %543
  %549 = load i64, ptr %59, align 8, !tbaa !19
  %550 = icmp ne i64 %547, %549
  br i1 %550, label %551, label %556

551:                                              ; preds = %548
  %552 = load ptr, ptr %61, align 8, !tbaa !5
  %553 = invoke i32 @fclose(ptr noundef %552)
          to label %554 unwind label %539

554:                                              ; preds = %551
  %555 = load ptr, ptr %60, align 8, !tbaa !5
  call void @free(ptr noundef %555) #10
  store i32 1, ptr %28, align 4, !tbaa !9
  store i32 7, ptr %27, align 4
  br label %581

556:                                              ; preds = %548
  %557 = load ptr, ptr %61, align 8, !tbaa !5
  %558 = invoke i32 @fclose(ptr noundef %557)
          to label %559 unwind label %539

559:                                              ; preds = %556
  %560 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %561 = load ptr, ptr %52, align 8, !tbaa !5
  %562 = load ptr, ptr %60, align 8, !tbaa !5
  %563 = load i64, ptr %59, align 8, !tbaa !19
  %564 = load ptr, ptr %54, align 8, !tbaa !5
  %565 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %560, ptr noundef %561, ptr noundef %562, i64 noundef %563, ptr noundef null, i16 noundef zeroext 0, ptr noundef %564)
          to label %566 unwind label %539

566:                                              ; preds = %559
  %567 = icmp ne i32 %565, 0
  br i1 %567, label %573, label %568

568:                                              ; preds = %566
  %569 = load ptr, ptr %54, align 8, !tbaa !5
  %570 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.21, ptr noundef %569)
          to label %571 unwind label %539

571:                                              ; preds = %568
  %572 = load ptr, ptr %60, align 8, !tbaa !5
  call void @free(ptr noundef %572) #10
  store i32 1, ptr %28, align 4, !tbaa !9
  store i32 7, ptr %27, align 4
  br label %581

573:                                              ; preds = %566
  %574 = load ptr, ptr %54, align 8, !tbaa !5
  %575 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %574)
          to label %576 unwind label %539

576:                                              ; preds = %573
  %577 = load i64, ptr %19, align 8, !tbaa !11
  %578 = add i64 %577, %575
  store i64 %578, ptr %19, align 8, !tbaa !11
  br label %579

579:                                              ; preds = %576
  %580 = load ptr, ptr %60, align 8, !tbaa !5
  call void @free(ptr noundef %580) #10
  store i32 0, ptr %27, align 4
  br label %581

581:                                              ; preds = %579, %571, %554, %537
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %582

582:                                              ; preds = %581, %524, %513
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  %583 = load i32, ptr %27, align 4
  switch i32 %583, label %587 [
    i32 0, label %584
  ]

584:                                              ; preds = %582
  br label %586

585:                                              ; preds = %539, %514
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  br label %593

586:                                              ; preds = %584, %503
  store i32 0, ptr %27, align 4
  br label %587

587:                                              ; preds = %586, %582, %470
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #10
  %588 = load i32, ptr %27, align 4
  switch i32 %588, label %839 [
    i32 0, label %589
    i32 7, label %590
  ]

589:                                              ; preds = %587
  br label %590

590:                                              ; preds = %589, %587
  %591 = load i32, ptr %50, align 4, !tbaa !9
  %592 = add i32 %591, 1
  store i32 %592, ptr %50, align 4, !tbaa !9
  br label %340, !llvm.loop !21

593:                                              ; preds = %585, %502, %473, %457
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  br label %594

594:                                              ; preds = %593, %453
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  br label %595

595:                                              ; preds = %594, %449
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  br label %596

596:                                              ; preds = %595, %445
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %646

597:                                              ; preds = %345
  %598 = call noundef i64 @_ZNKSt6vectorINSt10filesystem7__cxx114pathESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %46) #10
  %599 = icmp ne i64 %598, 0
  br i1 %599, label %645, label %600

600:                                              ; preds = %597
  %601 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #10
  %602 = load i32, ptr %32, align 4, !tbaa !9
  %603 = sext i32 %602 to i64
  %604 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 0, i64 noundef %603)
          to label %605 unwind label %631

605:                                              ; preds = %600
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %604, ptr noundef @.str.16)
          to label %606 unwind label %631

606:                                              ; preds = %605
  %607 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  %608 = load ptr, ptr %7, align 8, !tbaa !5
  %609 = load i32, ptr %20, align 4, !tbaa !9
  %610 = zext i32 %609 to i64
  %611 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %610) #10
  %612 = load i32, ptr %611, align 4, !tbaa !9
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds ptr, ptr %608, i64 %613
  %615 = load ptr, ptr %614, align 8, !tbaa !5
  %616 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %601, ptr noundef %607, ptr noundef null, i64 noundef 0, ptr noundef null, i16 noundef zeroext 0, ptr noundef %615)
          to label %617 unwind label %635

617:                                              ; preds = %606
  %618 = icmp ne i32 %616, 0
  %619 = xor i1 %618, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #10
  br i1 %619, label %620, label %644

620:                                              ; preds = %617
  %621 = load ptr, ptr %7, align 8, !tbaa !5
  %622 = load i32, ptr %20, align 4, !tbaa !9
  %623 = zext i32 %622 to i64
  %624 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %623) #10
  %625 = load i32, ptr %624, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds ptr, ptr %621, i64 %626
  %628 = load ptr, ptr %627, align 8, !tbaa !5
  %629 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.17, ptr noundef %628)
          to label %630 unwind label %640

630:                                              ; preds = %620
  br label %644

631:                                              ; preds = %605, %600
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %13, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %14, align 4
  br label %639

635:                                              ; preds = %606
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %13, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  br label %639

639:                                              ; preds = %635, %631
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #10
  br label %646

640:                                              ; preds = %620
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %13, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %14, align 4
  br label %646

644:                                              ; preds = %630, %617
  br label %645

645:                                              ; preds = %644, %597
  call void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #10
  br label %798

646:                                              ; preds = %640, %639, %596
  call void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #10
  br label %647

647:                                              ; preds = %646, %407
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #10
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #10
  br label %648

648:                                              ; preds = %647, %406
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #10
  br label %649

649:                                              ; preds = %648, %397
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  br label %650

650:                                              ; preds = %649, %363
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #10
  br label %828

651:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  %652 = load ptr, ptr %7, align 8, !tbaa !5
  %653 = load i32, ptr %20, align 4, !tbaa !9
  %654 = zext i32 %653 to i64
  %655 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %654) #10
  %656 = load i32, ptr %655, align 4, !tbaa !9
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds ptr, ptr %652, i64 %657
  %659 = load ptr, ptr %658, align 8, !tbaa !5
  store ptr %659, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %660 = load ptr, ptr %63, align 8, !tbaa !5
  %661 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %660)
          to label %662 unwind label %669

662:                                              ; preds = %651
  store i64 %661, ptr %64, align 8, !tbaa !19
  %663 = load i64, ptr %64, align 8, !tbaa !19
  %664 = icmp sgt i64 %663, 4294967295
  br i1 %664, label %665, label %673

665:                                              ; preds = %662
  %666 = load ptr, ptr %63, align 8, !tbaa !5
  %667 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.18, ptr noundef %666)
          to label %668 unwind label %669

668:                                              ; preds = %665
  store i32 4, ptr %27, align 4
  br label %793

669:                                              ; preds = %676, %665, %651
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %13, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %14, align 4
  br label %797

673:                                              ; preds = %662
  %674 = load i64, ptr %64, align 8, !tbaa !19
  %675 = icmp slt i64 %674, 0
  br i1 %675, label %676, label %680

676:                                              ; preds = %673
  %677 = load ptr, ptr %63, align 8, !tbaa !5
  %678 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.19, ptr noundef %677)
          to label %679 unwind label %669

679:                                              ; preds = %676
  store i32 4, ptr %27, align 4
  br label %793

680:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %681 = load i64, ptr %64, align 8, !tbaa !19
  %682 = call noalias ptr @malloc(i64 noundef %681) #11
  store ptr %682, ptr %65, align 8, !tbaa !5
  %683 = load ptr, ptr %65, align 8, !tbaa !5
  %684 = icmp ne ptr %683, null
  br i1 %684, label %686, label %685

685:                                              ; preds = %680
  call void @exit(i32 noundef 1) #12
  unreachable

686:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  %687 = load ptr, ptr %63, align 8, !tbaa !5
  %688 = invoke noalias ptr @fopen(ptr noundef %687, ptr noundef @.str.20)
          to label %689 unwind label %694

689:                                              ; preds = %686
  store ptr %688, ptr %66, align 8, !tbaa !5
  %690 = load ptr, ptr %66, align 8, !tbaa !5
  %691 = icmp ne ptr %690, null
  br i1 %691, label %698, label %692

692:                                              ; preds = %689
  %693 = load ptr, ptr %65, align 8, !tbaa !5
  call void @free(ptr noundef %693) #10
  store i32 1, ptr %28, align 4, !tbaa !9
  store i32 4, ptr %27, align 4
  br label %792

694:                                              ; preds = %778, %752, %711, %706, %698, %686
  %695 = landingpad { ptr, i32 }
          cleanup
  %696 = extractvalue { ptr, i32 } %695, 0
  store ptr %696, ptr %13, align 8
  %697 = extractvalue { ptr, i32 } %695, 1
  store i32 %697, ptr %14, align 4
  br label %796

698:                                              ; preds = %689
  %699 = load ptr, ptr %65, align 8, !tbaa !5
  %700 = load i64, ptr %64, align 8, !tbaa !19
  %701 = load ptr, ptr %66, align 8, !tbaa !5
  %702 = invoke i64 @fread(ptr noundef %699, i64 noundef 1, i64 noundef %700, ptr noundef %701)
          to label %703 unwind label %694

703:                                              ; preds = %698
  %704 = load i64, ptr %64, align 8, !tbaa !19
  %705 = icmp ne i64 %702, %704
  br i1 %705, label %706, label %711

706:                                              ; preds = %703
  %707 = load ptr, ptr %66, align 8, !tbaa !5
  %708 = invoke i32 @fclose(ptr noundef %707)
          to label %709 unwind label %694

709:                                              ; preds = %706
  %710 = load ptr, ptr %65, align 8, !tbaa !5
  call void @free(ptr noundef %710) #10
  store i32 1, ptr %28, align 4, !tbaa !9
  store i32 4, ptr %27, align 4
  br label %792

711:                                              ; preds = %703
  %712 = load ptr, ptr %66, align 8, !tbaa !5
  %713 = invoke i32 @fclose(ptr noundef %712)
          to label %714 unwind label %694

714:                                              ; preds = %711
  %715 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #10
  %716 = load ptr, ptr %7, align 8, !tbaa !5
  %717 = load i32, ptr %20, align 4, !tbaa !9
  %718 = zext i32 %717 to i64
  %719 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %718) #10
  %720 = load i32, ptr %719, align 4, !tbaa !9
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds ptr, ptr %716, i64 %721
  %723 = load ptr, ptr %722, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef %723, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %724 unwind label %759

724:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #10
  %725 = load ptr, ptr %7, align 8, !tbaa !5
  %726 = load i32, ptr %20, align 4, !tbaa !9
  %727 = zext i32 %726 to i64
  %728 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %727) #10
  %729 = load i32, ptr %728, align 4, !tbaa !9
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds ptr, ptr %725, i64 %730
  %732 = load ptr, ptr %731, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef %732, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %733 unwind label %763

733:                                              ; preds = %724
  %734 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.13, i64 noundef -1) #10
  %735 = add i64 %734, 1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef %735, i64 noundef -1)
          to label %736 unwind label %767

736:                                              ; preds = %733
  %737 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  %738 = load ptr, ptr %65, align 8, !tbaa !5
  %739 = load i64, ptr %64, align 8, !tbaa !19
  %740 = load ptr, ptr %7, align 8, !tbaa !5
  %741 = load i32, ptr %20, align 4, !tbaa !9
  %742 = zext i32 %741 to i64
  %743 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %742) #10
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = sext i32 %744 to i64
  %746 = getelementptr inbounds ptr, ptr %740, i64 %745
  %747 = load ptr, ptr %746, align 8, !tbaa !5
  %748 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %715, ptr noundef %737, ptr noundef %738, i64 noundef %739, ptr noundef null, i16 noundef zeroext 0, ptr noundef %747)
          to label %749 unwind label %771

749:                                              ; preds = %736
  %750 = icmp ne i32 %748, 0
  %751 = xor i1 %750, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #10
  br i1 %751, label %752, label %778

752:                                              ; preds = %749
  %753 = load ptr, ptr %7, align 8, !tbaa !5
  %754 = getelementptr inbounds ptr, ptr %753, i64 0
  %755 = load ptr, ptr %754, align 8, !tbaa !5
  %756 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.21, ptr noundef %755)
          to label %757 unwind label %694

757:                                              ; preds = %752
  %758 = load ptr, ptr %65, align 8, !tbaa !5
  call void @free(ptr noundef %758) #10
  store i32 1, ptr %28, align 4, !tbaa !9
  store i32 4, ptr %27, align 4
  br label %792

759:                                              ; preds = %714
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %13, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %14, align 4
  br label %777

763:                                              ; preds = %724
  %764 = landingpad { ptr, i32 }
          cleanup
  %765 = extractvalue { ptr, i32 } %764, 0
  store ptr %765, ptr %13, align 8
  %766 = extractvalue { ptr, i32 } %764, 1
  store i32 %766, ptr %14, align 4
  br label %776

767:                                              ; preds = %733
  %768 = landingpad { ptr, i32 }
          cleanup
  %769 = extractvalue { ptr, i32 } %768, 0
  store ptr %769, ptr %13, align 8
  %770 = extractvalue { ptr, i32 } %768, 1
  store i32 %770, ptr %14, align 4
  br label %775

771:                                              ; preds = %736
  %772 = landingpad { ptr, i32 }
          cleanup
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %13, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  br label %775

775:                                              ; preds = %771, %767
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  br label %776

776:                                              ; preds = %775, %763
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #10
  br label %777

777:                                              ; preds = %776, %759
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #10
  br label %796

778:                                              ; preds = %749
  %779 = load ptr, ptr %7, align 8, !tbaa !5
  %780 = load i32, ptr %20, align 4, !tbaa !9
  %781 = zext i32 %780 to i64
  %782 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %781) #10
  %783 = load i32, ptr %782, align 4, !tbaa !9
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds ptr, ptr %779, i64 %784
  %786 = load ptr, ptr %785, align 8, !tbaa !5
  %787 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %786)
          to label %788 unwind label %694

788:                                              ; preds = %778
  %789 = load i64, ptr %19, align 8, !tbaa !11
  %790 = add i64 %789, %787
  store i64 %790, ptr %19, align 8, !tbaa !11
  %791 = load ptr, ptr %65, align 8, !tbaa !5
  call void @free(ptr noundef %791) #10
  store i32 0, ptr %27, align 4
  br label %792

792:                                              ; preds = %788, %757, %709, %692
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %793

793:                                              ; preds = %792, %679, %668
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  %794 = load i32, ptr %27, align 4
  switch i32 %794, label %839 [
    i32 0, label %795
    i32 4, label %799
  ]

795:                                              ; preds = %793
  br label %798

796:                                              ; preds = %777, %694
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %797

797:                                              ; preds = %796, %669
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  br label %828

798:                                              ; preds = %795, %645
  br label %799

799:                                              ; preds = %798, %793
  %800 = load i32, ptr %20, align 4, !tbaa !9
  %801 = add i32 %800, 1
  store i32 %801, ptr %20, align 4, !tbaa !9
  br label %276, !llvm.loop !23

802:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  store i64 0, ptr %72, align 8, !tbaa !11
  %803 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %804 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_Z9ReZipFilePKcRK10ECTOptionsPm(ptr noundef %803, ptr noundef nonnull align 4 dereferenceable(40) %804, ptr noundef %72)
          to label %805 unwind label %814

805:                                              ; preds = %802
  %806 = load i64, ptr %72, align 8, !tbaa !11
  %807 = call noundef i64 @_ZNSt13__atomic_baseImE9fetch_addEmSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8) @_ZL14processedfiles, i64 noundef %806, i32 noundef 5) #10
  %808 = load i64, ptr %21, align 8, !tbaa !11
  %809 = icmp sge i64 %808, 0
  br i1 %809, label %810, label %818

810:                                              ; preds = %805
  %811 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %812 = load i64, ptr %21, align 8, !tbaa !11
  invoke void @_Z13set_file_timePKcl(ptr noundef %811, i64 noundef %812)
          to label %813 unwind label %814

813:                                              ; preds = %810
  br label %818

814:                                              ; preds = %818, %810, %802
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %13, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  br label %828

818:                                              ; preds = %813, %805
  %819 = load i64, ptr %19, align 8, !tbaa !11
  %820 = call noundef i64 @_ZNSt13__atomic_baseImE9fetch_addEmSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8) @_ZL5bytes, i64 noundef %819, i32 noundef 5) #10
  %821 = load i64, ptr %19, align 8, !tbaa !11
  %822 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  %823 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %822)
          to label %824 unwind label %814

824:                                              ; preds = %818
  %825 = sub i64 %821, %823
  %826 = call noundef i64 @_ZNSt13__atomic_baseIxE9fetch_addExSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8) @_ZL7savings, i64 noundef %825, i32 noundef 5) #10
  %827 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %827, ptr %5, align 4
  store i32 1, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %829

828:                                              ; preds = %814, %797, %650, %346
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %831

829:                                              ; preds = %824, %273, %262
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  %830 = load i32, ptr %5, align 4
  ret i32 %830

831:                                              ; preds = %828, %243, %225, %224, %169
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %832

832:                                              ; preds = %831, %165
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %833

833:                                              ; preds = %832, %164
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  br label %834

834:                                              ; preds = %833
  %835 = load ptr, ptr %13, align 8
  %836 = load i32, ptr %14, align 4
  %837 = insertvalue { ptr, i32 } poison, ptr %835, 0
  %838 = insertvalue { ptr, i32 } %837, i32 %836, 1
  resume { ptr, i32 } %838

839:                                              ; preds = %793, %587
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

declare noundef i32 @_Z5IsZIPPKc(ptr noundef) #4

declare noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef) #4

declare noundef zeroext i1 @_Z6existsPKc(ptr noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNSt10filesystem15is_regular_fileERKNS_7__cxx114pathE(ptr noundef nonnull align 8 dereferenceable(40)) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathC2IPKcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8), i8 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: nounwind
declare ptr @realpath(ptr noundef, ptr noundef) #7

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2 align 2

declare void @_ZNSt10filesystem9canonicalERKNS_7__cxx114pathE(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(40)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32), i8 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: nounwind
declare noundef zeroext i1 @_ZNKSt10filesystem7__cxx114path15has_parent_pathEv(ptr noundef nonnull align 8 dereferenceable(40)) #7

declare void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaINSt10filesystem7__cxx114pathEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEC2INS1_28recursive_directory_iteratorEvEET_S7_RKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: nounwind
declare void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorINSt10filesystem7__cxx114pathESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) #2 align 2

declare noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmRKS4_(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

declare i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, i16 noundef zeroext, ptr noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #8

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #9

declare noalias ptr @fopen(ptr noundef, ptr noundef) #4

; Function Attrs: nounwind
declare void @free(ptr noundef) #7

declare i64 @fread(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #4

declare i32 @fclose(ptr noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

declare void @_Z9ReZipFilePKcRK10ECTOptionsPm(ptr noundef, ptr noundef nonnull align 4 dereferenceable(40), ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorINSt10filesystem7__cxx114pathEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind "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 #8 = { nounwind allocsize(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 #9 = { noreturn nounwind "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 #10 = { nounwind }
attributes #11 = { nounwind allocsize(0) }
attributes #12 = { noreturn nounwind }

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

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


; 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.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i64 }
%"struct.std::atomic.0" = type { %"struct.std::__atomic_base.1" }
%"struct.std::__atomic_base.1" = type { i64 }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.6" }
%"struct.std::_Head_base.6" = type { ptr }
%"class.std::filesystem::__cxx11::recursive_directory_iterator" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl" }
%"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::filesystem::__cxx11::path, std::allocator<std::filesystem::__cxx11::path>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.9" = type { i8 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@_ZL14processedfiles = external hidden global %"struct.std::atomic", align 8
@_ZL5bytes = external hidden global %"struct.std::atomic", align 8
@_ZL7savings = external hidden global %"struct.std::atomic.0", align 8
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [21 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 nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #3

declare noundef i64 @_Z13get_file_timePKc(ptr noundef) local_unnamed_addr #4

declare noundef i64 @_Z8filesizePKc(ptr noundef) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #5

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt13__atomic_baseImE9fetch_addEmSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef, i32 noundef) local_unnamed_addr #6 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt13__atomic_baseIxE9fetch_addExSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef, i32 noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

declare void @_Z13set_file_timePKcl(ptr noundef, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 2) i32 @_Z10zipHandlerSt6vectorIiSaIiEEPPKciRK10ECTOptions(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %2, ptr noundef nonnull align 4 dereferenceable(40) %3) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca [4096 x i8], align 16
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %17 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %18 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %21 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %22 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %23 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %24 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %25 = alloca %"class.std::vector.7", align 8
  %26 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %27 = alloca %"class.std::filesystem::__cxx11::recursive_directory_iterator", align 8
  %28 = alloca %"class.std::allocator.9", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #12
  %42 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %43 = load i32, ptr %42, align 4, !tbaa !5
  %44 = sext i32 %43 to i64
  %45 = getelementptr inbounds ptr, ptr %1, i64 %44
  %46 = load ptr, ptr %45, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %46, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %47 unwind label %105

47:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #12
  %48 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %49 = load i32, ptr %48, align 4, !tbaa !5
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds ptr, ptr %1, i64 %50
  %52 = load ptr, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %52, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %53 unwind label %107

53:                                               ; preds = %47
  %54 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str, i64 noundef -1) #12
  %55 = add i64 %54, 1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %55, i64 noundef -1)
          to label %56 unwind label %109

56:                                               ; preds = %53
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #12
  %57 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = sext i32 %58 to i64
  %60 = getelementptr inbounds ptr, ptr %1, i64 %59
  %61 = load ptr, ptr %60, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %61, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %62 unwind label %113

62:                                               ; preds = %56
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #12
  %63 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.11)
  br i1 %63, label %75, label %64

64:                                               ; preds = %62
  %65 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.12)
  br i1 %65, label %75, label %66

66:                                               ; preds = %64
  %67 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = sext i32 %68 to i64
  %70 = getelementptr inbounds ptr, ptr %1, i64 %69
  %71 = load ptr, ptr %70, align 8, !tbaa !9
  %72 = invoke noundef i32 @_Z5IsZIPPKc(ptr noundef %71)
          to label %73 unwind label %115

73:                                               ; preds = %66
  %74 = icmp eq i32 %72, 1
  br i1 %74, label %75, label %117

75:                                               ; preds = %73, %64, %62
  %76 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %77 = load i32, ptr %76, align 4, !tbaa !5
  %78 = sext i32 %77 to i64
  %79 = getelementptr inbounds ptr, ptr %1, i64 %78
  %80 = load ptr, ptr %79, align 8, !tbaa !9
  %81 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %80)
          to label %82 unwind label %115

82:                                               ; preds = %75
  br i1 %81, label %117, label %83

83:                                               ; preds = %82
  %84 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = sext i32 %85 to i64
  %87 = getelementptr inbounds ptr, ptr %1, i64 %86
  %88 = load ptr, ptr %87, align 8, !tbaa !9
  %89 = invoke noundef zeroext i1 @_Z6existsPKc(ptr noundef %88)
          to label %90 unwind label %115

90:                                               ; preds = %83
  br i1 %89, label %91, label %177

91:                                               ; preds = %90
  %92 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  %93 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %92)
          to label %94 unwind label %115

94:                                               ; preds = %91
  %95 = getelementptr inbounds i8, ptr %3, i64 36
  %96 = load i8, ptr %95, align 4, !tbaa !11, !range !14, !noundef !15
  %97 = trunc nuw i8 %96 to i1
  br i1 %97, label %98, label %177

98:                                               ; preds = %94
  %99 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = sext i32 %100 to i64
  %102 = getelementptr inbounds ptr, ptr %1, i64 %101
  %103 = load ptr, ptr %102, align 8, !tbaa !9
  %104 = invoke noundef i64 @_Z13get_file_timePKc(ptr noundef %103)
          to label %177 unwind label %115

105:                                              ; preds = %4
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %112

107:                                              ; preds = %47
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %111

109:                                              ; preds = %53
  %110 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  br label %111

111:                                              ; preds = %109, %107
  %.pn = phi { ptr, i32 } [ %110, %109 ], [ %108, %107 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #12
  br label %112

112:                                              ; preds = %111, %105
  %.pn.pn = phi { ptr, i32 } [ %.pn, %111 ], [ %106, %105 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #12
  br label %463

113:                                              ; preds = %56
  %114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #12
  br label %462

115:                                              ; preds = %171, %169, %117, %98, %91, %83, %75, %66
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %461

117:                                              ; preds = %82, %73
  %118 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = sext i32 %119 to i64
  %121 = getelementptr inbounds ptr, ptr %1, i64 %120
  %122 = load ptr, ptr %121, align 8, !tbaa !9
  %123 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %122)
          to label %124 unwind label %115

124:                                              ; preds = %117
  br i1 %123, label %.critedge.thread, label %125

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #12
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds ptr, ptr %1, i64 %128
  invoke void @_ZNSt10filesystem7__cxx114pathC2IPKcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef nonnull align 8 dereferenceable(8) %129, i8 noundef zeroext 2)
          to label %130 unwind label %141

130:                                              ; preds = %125
  %131 = invoke noundef zeroext i1 @_ZNSt10filesystem15is_regular_fileERKNS_7__cxx114pathE(ptr noundef nonnull align 8 dereferenceable(40) %12)
          to label %.critedge unwind label %143

.critedge:                                        ; preds = %130
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #12
  br i1 %131, label %132, label %.critedge.thread

132:                                              ; preds = %.critedge
  %133 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str, i64 noundef -1) #12
  %134 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.13, i64 noundef -1) #12
  %135 = add i64 %134, 1
  %136 = icmp ugt i64 %133, %135
  br i1 %136, label %137, label %169

137:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #12
  %138 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str, i64 noundef -1) #12
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef 0, i64 noundef %138)
          to label %139 unwind label %146

139:                                              ; preds = %137
  %140 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  br label %169

141:                                              ; preds = %125
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %145

143:                                              ; preds = %130
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #12
  br label %145

145:                                              ; preds = %141, %143
  %.pn204 = phi { ptr, i32 } [ %144, %143 ], [ %142, %141 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #12
  br label %461

146:                                              ; preds = %137
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  br label %461

.critedge.thread:                                 ; preds = %124, %.critedge
  call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %14) #12
  %148 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef 0) #12
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds ptr, ptr %1, i64 %150
  %152 = load ptr, ptr %151, align 8, !tbaa !9
  %153 = call ptr @realpath(ptr noundef %152, ptr noundef nonnull %14) #12
  %.not.not = icmp eq ptr %153, null
  br i1 %.not.not, label %167, label %156

154:                                              ; preds = %156
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %14) #12
  br label %461

156:                                              ; preds = %.critedge.thread
  %157 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %14)
          to label %158 unwind label %154

158:                                              ; preds = %156
  %159 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  %160 = load i8, ptr %159, align 1, !tbaa !16
  %161 = icmp eq i8 %160, 47
  br i1 %161, label %166, label %162

162:                                              ; preds = %158
  %163 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  %164 = load i8, ptr %163, align 1, !tbaa !16
  %165 = icmp eq i8 %164, 92
  br i1 %165, label %166, label %.thread262

166:                                              ; preds = %162, %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  br label %.thread262

.thread262:                                       ; preds = %162, %166
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %14) #12
  br label %169

167:                                              ; preds = %.critedge.thread
  %168 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.14)
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %14) #12
  br label %460

169:                                              ; preds = %.thread262, %132, %139
  %170 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.8)
          to label %171 unwind label %115

171:                                              ; preds = %169
  %172 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  %173 = invoke noundef zeroext i1 @_Z6existsPKc(ptr noundef %172)
          to label %174 unwind label %115

174:                                              ; preds = %171
  br i1 %173, label %175, label %177

175:                                              ; preds = %174
  %176 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.15)
  br label %460

177:                                              ; preds = %98, %174, %90, %94
  %.0171 = phi i64 [ -1, %174 ], [ -1, %94 ], [ -1, %90 ], [ %104, %98 ]
  %.0169 = phi i32 [ 0, %174 ], [ 1, %94 ], [ 1, %90 ], [ 1, %98 ]
  %.0159 = phi i64 [ 0, %174 ], [ %93, %94 ], [ 0, %90 ], [ %93, %98 ]
  %178 = icmp ult i32 %.0169, %2
  br i1 %178, label %.lr.ph359.preheader, label %._crit_edge360

.lr.ph359.preheader:                              ; preds = %177
  %179 = zext nneg i32 %.0169 to i64
  %180 = zext i32 %2 to i64
  br label %.lr.ph359

.lr.ph359:                                        ; preds = %.lr.ph359.preheader, %440
  %indvars.iv = phi i64 [ %179, %.lr.ph359.preheader ], [ %indvars.iv.next, %440 ]
  %.1160357 = phi i64 [ %.0159, %.lr.ph359.preheader ], [ %.9168, %440 ]
  %181 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds ptr, ptr %1, i64 %183
  %185 = load ptr, ptr %184, align 8, !tbaa !9
  %186 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %185)
          to label %187 unwind label %210

187:                                              ; preds = %.lr.ph359
  br i1 %186, label %188, label %365

188:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #12
  %189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds ptr, ptr %1, i64 %191
  invoke void @_ZNSt10filesystem7__cxx114pathC2IPKcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %17, ptr noundef nonnull align 8 dereferenceable(8) %192, i8 noundef zeroext 2)
          to label %193 unwind label %212

193:                                              ; preds = %188
  invoke void @_ZNSt10filesystem9canonicalERKNS_7__cxx114pathE(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::path") align 8 %16, ptr noundef nonnull align 8 dereferenceable(40) %17)
          to label %194 unwind label %214

194:                                              ; preds = %193
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(40) %16)
          to label %195 unwind label %216

195:                                              ; preds = %194
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #12
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #12
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef nonnull align 8 dereferenceable(32) %15, i8 noundef zeroext 2)
          to label %196 unwind label %220

196:                                              ; preds = %195
  %197 = call noundef zeroext i1 @_ZNKSt10filesystem7__cxx114path15has_parent_pathEv(ptr noundef nonnull align 8 dereferenceable(40) %18) #12
  br i1 %197, label %198, label %.critedge261

198:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #12
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %21, ptr noundef nonnull align 8 dereferenceable(32) %15, i8 noundef zeroext 2)
          to label %199 unwind label %222

199:                                              ; preds = %198
  invoke void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::path") align 8 %20, ptr noundef nonnull align 8 dereferenceable(40) %21)
          to label %200 unwind label %224

200:                                              ; preds = %199
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(40) %20)
          to label %.critedge257 unwind label %226

.critedge257:                                     ; preds = %200
  %201 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  %202 = add i64 %201, 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #12
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  br label %.critedge261

.critedge261:                                     ; preds = %196, %.critedge257
  %203 = phi i64 [ %202, %.critedge257 ], [ 0, %196 ]
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #12
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(32) %15, i8 noundef zeroext 2)
          to label %204 unwind label %231

204:                                              ; preds = %.critedge261
  invoke void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(40) %23)
          to label %205 unwind label %233

205:                                              ; preds = %204
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %22) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %24) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #12
  call void @_ZNSaINSt10filesystem7__cxx114pathEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  invoke void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEC2INS1_28recursive_directory_iteratorEvEET_S7_RKS3_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %206 unwind label %236

206:                                              ; preds = %205
  call void @_ZNSt15__new_allocatorINSt10filesystem7__cxx114pathEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #12
  %207 = call noundef i64 @_ZNKSt6vectorINSt10filesystem7__cxx114pathESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  %.not363 = icmp eq i64 %207, 0
  br i1 %.not363, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %206
  %sext229 = shl i64 %203, 32
  %208 = ashr exact i64 %sext229, 32
  br label %238

._crit_edge:                                      ; preds = %324, %206
  %.1186.lcssa = phi i32 [ 0, %206 ], [ %.5190, %324 ]
  %.2161.lcssa = phi i64 [ %.1160357, %206 ], [ %.6165, %324 ]
  %209 = call noundef i64 @_ZNKSt6vectorINSt10filesystem7__cxx114pathESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  %.not225 = icmp eq i64 %209, 0
  br i1 %.not225, label %333, label %359

210:                                              ; preds = %.lr.ph359
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %461

212:                                              ; preds = %188
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %219

214:                                              ; preds = %193
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %218

216:                                              ; preds = %194
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #12
  br label %218

218:                                              ; preds = %216, %214
  %.pn216 = phi { ptr, i32 } [ %217, %216 ], [ %215, %214 ]
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #12
  br label %219

219:                                              ; preds = %218, %212
  %.pn216.pn = phi { ptr, i32 } [ %.pn216, %218 ], [ %213, %212 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #12
  br label %364

220:                                              ; preds = %195
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %230

222:                                              ; preds = %198
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %229

224:                                              ; preds = %199
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %228

226:                                              ; preds = %200
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #12
  br label %228

228:                                              ; preds = %224, %226
  %.pn219 = phi { ptr, i32 } [ %227, %226 ], [ %225, %224 ]
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #12
  br label %229

229:                                              ; preds = %222, %228
  %.pn219.pn = phi { ptr, i32 } [ %.pn219, %228 ], [ %223, %222 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #12
  br label %230

230:                                              ; preds = %229, %220
  %.pn219.pn.pn = phi { ptr, i32 } [ %.pn219.pn, %229 ], [ %221, %220 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #12
  br label %363

231:                                              ; preds = %.critedge261
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %235

233:                                              ; preds = %204
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #12
  br label %235

235:                                              ; preds = %233, %231
  %.pn223 = phi { ptr, i32 } [ %234, %233 ], [ %232, %231 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #12
  br label %362

236:                                              ; preds = %205
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorINSt10filesystem7__cxx114pathEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #12
  br label %361

238:                                              ; preds = %.lr.ph, %324
  %239 = phi i64 [ 0, %.lr.ph ], [ %326, %324 ]
  %.2161354 = phi i64 [ %.1160357, %.lr.ph ], [ %.6165, %324 ]
  %.0178353 = phi i32 [ 0, %.lr.ph ], [ %325, %324 ]
  %.1186352 = phi i32 [ 0, %.lr.ph ], [ %.5190, %324 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #12
  %240 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %239) #12
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(40) %240)
          to label %241 unwind label %260

241:                                              ; preds = %238
  %242 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 0, i64 noundef %208)
          to label %243 unwind label %262

243:                                              ; preds = %241
  %244 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %242) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #12
  %245 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %239) #12
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(40) %245)
          to label %246 unwind label %264

246:                                              ; preds = %243
  %247 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  %248 = invoke noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef %247)
          to label %249 unwind label %266

249:                                              ; preds = %246
  br i1 %248, label %250, label %290

250:                                              ; preds = %249
  %251 = add i32 %.0178353, 1
  %252 = icmp ult i32 %251, %2
  br i1 %252, label %253, label %273

253:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #12
  %254 = zext i32 %251 to i64
  %255 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %254) #12
  invoke void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(40) %255)
          to label %256 unwind label %268

256:                                              ; preds = %253
  %257 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  %258 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %31, i64 noundef 0, i64 noundef %257, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %259 unwind label %270

259:                                              ; preds = %256
  %.not238 = icmp eq i32 %258, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #12
  br i1 %.not238, label %324, label %273

260:                                              ; preds = %238
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %332

262:                                              ; preds = %241
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %331

264:                                              ; preds = %243
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %330

266:                                              ; preds = %246
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %329

268:                                              ; preds = %253
  %269 = landingpad { ptr, i32 }
          cleanup
  br label %272

270:                                              ; preds = %256
  %271 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  br label %272

272:                                              ; preds = %270, %268
  %.pn236 = phi { ptr, i32 } [ %271, %270 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #12
  br label %329

273:                                              ; preds = %259, %250
  %274 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef %244, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %275 unwind label %282

275:                                              ; preds = %273
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.16)
          to label %276 unwind label %284

276:                                              ; preds = %275
  %277 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  %278 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %274, ptr noundef %277, ptr noundef null, i64 noundef 0, ptr noundef null, i16 noundef zeroext 0, ptr noundef %247)
          to label %279 unwind label %286

279:                                              ; preds = %276
  %.not255 = icmp eq i32 %278, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #12
  br i1 %.not255, label %280, label %324

280:                                              ; preds = %279
  %281 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.17, ptr noundef %247)
  br label %324

282:                                              ; preds = %273
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %289

284:                                              ; preds = %275
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %288

286:                                              ; preds = %276
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  br label %288

288:                                              ; preds = %286, %284
  %.pn239 = phi { ptr, i32 } [ %287, %286 ], [ %285, %284 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  br label %289

289:                                              ; preds = %288, %282
  %.pn239.pn = phi { ptr, i32 } [ %.pn239, %288 ], [ %283, %282 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #12
  br label %329

290:                                              ; preds = %249
  %291 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %247)
          to label %292 unwind label %296

292:                                              ; preds = %290
  %293 = icmp sgt i64 %291, 4294967295
  br i1 %293, label %294, label %298

294:                                              ; preds = %292
  %295 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.18, ptr noundef %247)
  br label %324

296:                                              ; preds = %290
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %329

298:                                              ; preds = %292
  %299 = icmp slt i64 %291, 0
  br i1 %299, label %300, label %302

300:                                              ; preds = %298
  %301 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.19, ptr noundef %247)
  br label %324

302:                                              ; preds = %298
  %303 = call noalias ptr @malloc(i64 noundef %291) #13
  %.not230 = icmp eq ptr %303, null
  br i1 %.not230, label %304, label %305

304:                                              ; preds = %302
  call void @exit(i32 noundef 1) #14
  unreachable

305:                                              ; preds = %302
  %306 = call noalias ptr @fopen(ptr noundef %247, ptr noundef nonnull @.str.20)
  %.not231 = icmp eq ptr %306, null
  br i1 %.not231, label %307, label %310

307:                                              ; preds = %305
  call void @free(ptr noundef nonnull %303) #12
  br label %324

308:                                              ; preds = %320, %314
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %329

310:                                              ; preds = %305
  %311 = call i64 @fread(ptr noundef nonnull %303, i64 noundef 1, i64 noundef %291, ptr noundef nonnull %306)
  %.not232 = icmp eq i64 %311, %291
  %312 = call i32 @fclose(ptr noundef nonnull %306)
  br i1 %.not232, label %314, label %313

313:                                              ; preds = %310
  call void @free(ptr noundef nonnull %303) #12
  br label %324

314:                                              ; preds = %310
  %315 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  %316 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %315, ptr noundef %244, ptr noundef nonnull %303, i64 noundef %291, ptr noundef null, i16 noundef zeroext 0, ptr noundef %247)
          to label %317 unwind label %308

317:                                              ; preds = %314
  %.not233 = icmp eq i32 %316, 0
  br i1 %.not233, label %318, label %320

318:                                              ; preds = %317
  %319 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.21, ptr noundef %247)
  call void @free(ptr noundef nonnull %303) #12
  br label %324

320:                                              ; preds = %317
  %321 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %247)
          to label %322 unwind label %308

322:                                              ; preds = %320
  %323 = add i64 %321, %.2161354
  call void @free(ptr noundef nonnull %303) #12
  br label %324

324:                                              ; preds = %294, %300, %322, %318, %313, %307, %280, %279, %259
  %.5190 = phi i32 [ %.1186352, %259 ], [ %.1186352, %280 ], [ %.1186352, %279 ], [ %.1186352, %294 ], [ %.1186352, %300 ], [ 1, %313 ], [ %.1186352, %322 ], [ 1, %318 ], [ 1, %307 ]
  %.6165 = phi i64 [ %.2161354, %259 ], [ %.2161354, %280 ], [ %.2161354, %279 ], [ %.2161354, %294 ], [ %.2161354, %300 ], [ %.2161354, %313 ], [ %323, %322 ], [ %.2161354, %318 ], [ %.2161354, %307 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  %325 = add i32 %.0178353, 1
  %326 = zext i32 %325 to i64
  %327 = call noundef i64 @_ZNKSt6vectorINSt10filesystem7__cxx114pathESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  %328 = icmp ugt i64 %327, %326
  br i1 %328, label %238, label %._crit_edge, !llvm.loop !17

329:                                              ; preds = %296, %308, %289, %272, %266
  %.pn239.pn.pn = phi { ptr, i32 } [ %.pn239.pn, %289 ], [ %.pn236, %272 ], [ %267, %266 ], [ %309, %308 ], [ %297, %296 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  br label %330

330:                                              ; preds = %329, %264
  %.pn239.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn, %329 ], [ %265, %264 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #12
  br label %331

331:                                              ; preds = %330, %262
  %.pn239.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn, %330 ], [ %263, %262 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  br label %332

332:                                              ; preds = %331, %260
  %.pn239.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn, %331 ], [ %261, %260 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  br label %360

333:                                              ; preds = %._crit_edge
  %334 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #12
  %sext = shl i64 %203, 32
  %335 = ashr exact i64 %sext, 32
  %336 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %15, i64 noundef 0, i64 noundef %335)
          to label %337 unwind label %354

337:                                              ; preds = %333
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef nonnull @.str.16)
          to label %338 unwind label %354

338:                                              ; preds = %337
  %339 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  %340 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds ptr, ptr %1, i64 %342
  %344 = load ptr, ptr %343, align 8, !tbaa !9
  %345 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %334, ptr noundef %339, ptr noundef null, i64 noundef 0, ptr noundef null, i16 noundef zeroext 0, ptr noundef %344)
          to label %346 unwind label %356

346:                                              ; preds = %338
  %.not228 = icmp eq i32 %345, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #12
  br i1 %.not228, label %347, label %359

347:                                              ; preds = %346
  %348 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds ptr, ptr %1, i64 %350
  %352 = load ptr, ptr %351, align 8, !tbaa !9
  %353 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.17, ptr noundef %352)
  br label %359

354:                                              ; preds = %337, %333
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %358

356:                                              ; preds = %338
  %357 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  br label %358

358:                                              ; preds = %356, %354
  %.pn226 = phi { ptr, i32 } [ %357, %356 ], [ %355, %354 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #12
  br label %360

359:                                              ; preds = %346, %347, %._crit_edge
  call void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #12
  br label %440

360:                                              ; preds = %358, %332
  %.pn239.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn, %332 ], [ %.pn226, %358 ]
  call void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  br label %361

361:                                              ; preds = %360, %236
  %.pn239.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn.pn, %360 ], [ %237, %236 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #12
  call void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #12
  br label %362

362:                                              ; preds = %361, %235
  %.pn239.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn.pn.pn, %361 ], [ %.pn223, %235 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #12
  br label %363

363:                                              ; preds = %362, %230
  %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn.pn.pn.pn, %362 ], [ %.pn219.pn.pn, %230 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  br label %364

364:                                              ; preds = %363, %219
  %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn, %363 ], [ %.pn216.pn, %219 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #12
  br label %461

365:                                              ; preds = %187
  %366 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds ptr, ptr %1, i64 %368
  %370 = load ptr, ptr %369, align 8, !tbaa !9
  %371 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %370)
          to label %372 unwind label %376

372:                                              ; preds = %365
  %373 = icmp sgt i64 %371, 4294967295
  br i1 %373, label %374, label %378

374:                                              ; preds = %372
  %375 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.18, ptr noundef %370)
  br label %440

376:                                              ; preds = %365
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %461

378:                                              ; preds = %372
  %379 = icmp slt i64 %371, 0
  br i1 %379, label %380, label %382

380:                                              ; preds = %378
  %381 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.19, ptr noundef %370)
  br label %440

382:                                              ; preds = %378
  %383 = call noalias ptr @malloc(i64 noundef %371) #13
  %.not = icmp eq ptr %383, null
  br i1 %.not, label %384, label %385

384:                                              ; preds = %382
  call void @exit(i32 noundef 1) #14
  unreachable

385:                                              ; preds = %382
  %386 = call noalias ptr @fopen(ptr noundef %370, ptr noundef nonnull @.str.20)
  %.not206 = icmp eq ptr %386, null
  br i1 %.not206, label %._crit_edge360.sink.split, label %389

387:                                              ; preds = %431
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %461

389:                                              ; preds = %385
  %390 = call i64 @fread(ptr noundef nonnull %383, i64 noundef 1, i64 noundef %371, ptr noundef nonnull %386)
  %.not207 = icmp eq i64 %390, %371
  %391 = call i32 @fclose(ptr noundef nonnull %386)
  br i1 %.not207, label %392, label %._crit_edge360.sink.split

392:                                              ; preds = %389
  %393 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #12
  %394 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds ptr, ptr %1, i64 %396
  %398 = load ptr, ptr %397, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef %398, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %399 unwind label %420

399:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #12
  %400 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds ptr, ptr %1, i64 %402
  %404 = load ptr, ptr %403, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef %404, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %405 unwind label %422

405:                                              ; preds = %399
  %406 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.13, i64 noundef -1) #12
  %407 = add i64 %406, 1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, i64 noundef %407, i64 noundef -1)
          to label %408 unwind label %424

408:                                              ; preds = %405
  %409 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  %410 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds ptr, ptr %1, i64 %412
  %414 = load ptr, ptr %413, align 8, !tbaa !9
  %415 = invoke i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef %393, ptr noundef %409, ptr noundef nonnull %383, i64 noundef %371, ptr noundef null, i16 noundef zeroext 0, ptr noundef %414)
          to label %416 unwind label %426

416:                                              ; preds = %408
  %.not212 = icmp eq i32 %415, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #12
  br i1 %.not212, label %417, label %431

417:                                              ; preds = %416
  %418 = load ptr, ptr %1, align 8, !tbaa !9
  %419 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.21, ptr noundef %418)
  br label %._crit_edge360.sink.split

420:                                              ; preds = %392
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %430

422:                                              ; preds = %399
  %423 = landingpad { ptr, i32 }
          cleanup
  br label %429

424:                                              ; preds = %405
  %425 = landingpad { ptr, i32 }
          cleanup
  br label %428

426:                                              ; preds = %408
  %427 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  br label %428

428:                                              ; preds = %426, %424
  %.pn208 = phi { ptr, i32 } [ %427, %426 ], [ %425, %424 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #12
  br label %429

429:                                              ; preds = %428, %422
  %.pn208.pn = phi { ptr, i32 } [ %.pn208, %428 ], [ %423, %422 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #12
  br label %430

430:                                              ; preds = %429, %420
  %.pn208.pn.pn = phi { ptr, i32 } [ %.pn208.pn, %429 ], [ %421, %420 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #12
  br label %461

431:                                              ; preds = %416
  %432 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv) #12
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds ptr, ptr %1, i64 %434
  %436 = load ptr, ptr %435, align 8, !tbaa !9
  %437 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %436)
          to label %438 unwind label %387

438:                                              ; preds = %431
  %439 = add i64 %437, %.1160357
  call void @free(ptr noundef nonnull %383) #12
  br label %440

440:                                              ; preds = %374, %380, %438, %359
  %.8193 = phi i32 [ %.1186.lcssa, %359 ], [ 0, %374 ], [ 0, %380 ], [ 0, %438 ]
  %.9168 = phi i64 [ %.2161.lcssa, %359 ], [ %.1160357, %374 ], [ %.1160357, %380 ], [ %439, %438 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %441 = icmp eq i32 %.8193, 0
  %442 = icmp ult i64 %indvars.iv.next, %180
  %443 = and i1 %441, %442
  br i1 %443, label %.lr.ph359, label %._crit_edge360, !llvm.loop !19

._crit_edge360.sink.split:                        ; preds = %385, %389, %417
  call void @free(ptr noundef nonnull %383) #12
  br label %._crit_edge360

._crit_edge360:                                   ; preds = %440, %._crit_edge360.sink.split, %177
  %.0185.lcssa = phi i32 [ 0, %177 ], [ 1, %._crit_edge360.sink.split ], [ %.8193, %440 ]
  %.1160.lcssa = phi i64 [ %.0159, %177 ], [ %.1160357, %._crit_edge360.sink.split ], [ %.9168, %440 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #12
  store i64 0, ptr %41, align 8, !tbaa !20
  %444 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  invoke void @_Z9ReZipFilePKcRK10ECTOptionsPm(ptr noundef %444, ptr noundef nonnull align 4 dereferenceable(40) %3, ptr noundef nonnull %41)
          to label %445 unwind label %451

445:                                              ; preds = %._crit_edge360
  %446 = load i64, ptr %41, align 8, !tbaa !20
  %447 = call noundef i64 @_ZNSt13__atomic_baseImE9fetch_addEmSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8) @_ZL14processedfiles, i64 noundef %446, i32 noundef 5) #12
  %448 = icmp sgt i64 %.0171, -1
  br i1 %448, label %449, label %453

449:                                              ; preds = %445
  %450 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  invoke void @_Z13set_file_timePKcl(ptr noundef %450, i64 noundef %.0171)
          to label %453 unwind label %451

451:                                              ; preds = %453, %449, %._crit_edge360
  %452 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  br label %461

453:                                              ; preds = %449, %445
  %454 = call noundef i64 @_ZNSt13__atomic_baseImE9fetch_addEmSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8) @_ZL5bytes, i64 noundef %.1160.lcssa, i32 noundef 5) #12
  %455 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  %456 = invoke noundef i64 @_Z8filesizePKc(ptr noundef %455)
          to label %457 unwind label %451

457:                                              ; preds = %453
  %458 = sub i64 %.1160.lcssa, %456
  %459 = call noundef i64 @_ZNSt13__atomic_baseIxE9fetch_addExSt12memory_order(ptr noundef nonnull align 8 dereferenceable(8) @_ZL7savings, i64 noundef %458, i32 noundef 5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  br label %460

460:                                              ; preds = %167, %457, %175
  %.1 = phi i32 [ 1, %175 ], [ %.0185.lcssa, %457 ], [ 1, %167 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #12
  ret i32 %.1

461:                                              ; preds = %210, %364, %451, %387, %430, %376, %145, %154, %146, %115
  %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %116, %115 ], [ %147, %146 ], [ %155, %154 ], [ %.pn204, %145 ], [ %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %364 ], [ %211, %210 ], [ %452, %451 ], [ %377, %376 ], [ %388, %387 ], [ %.pn208.pn.pn, %430 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  br label %462

462:                                              ; preds = %461, %113
  %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %461 ], [ %114, %113 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #12
  br label %463

463:                                              ; preds = %462, %112
  %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %462 ], [ %.pn.pn, %112 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #12
  resume { ptr, i32 } %.pn239.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

declare noundef i32 @_Z5IsZIPPKc(ptr noundef) local_unnamed_addr #4

declare noundef zeroext i1 @_Z11isDirectoryPKc(ptr noundef) local_unnamed_addr #4

declare noundef zeroext i1 @_Z6existsPKc(ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNSt10filesystem15is_regular_fileERKNS_7__cxx114pathE(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathC2IPKcS1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8), i8 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: nofree nounwind
declare noundef ptr @realpath(ptr nocapture noundef readonly, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2 align 2

declare void @_ZNSt10filesystem9canonicalERKNS_7__cxx114pathE(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNKSt10filesystem7__cxx114path14generic_stringEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32), i8 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: nounwind
declare noundef zeroext i1 @_ZNKSt10filesystem7__cxx114path15has_parent_pathEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #8

declare void @_ZNKSt10filesystem7__cxx114path11parent_pathEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaINSt10filesystem7__cxx114pathEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEC2INS1_28recursive_directory_iteratorEvEET_S7_RKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: nounwind
declare void @_ZNSt10filesystem7__cxx1128recursive_directory_iteratorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorINSt10filesystem7__cxx114pathESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #2 align 2

declare noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmRKS4_(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

declare i32 @mz_zip_add_mem_to_archive_file_in_place(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, i16 noundef zeroext, ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #9

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #10

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #11

; Function Attrs: nofree nounwind
declare noundef i64 @fread(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorINSt10filesystem7__cxx114pathESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

declare void @_Z9ReZipFilePKcRK10ECTOptionsPm(ptr noundef, ptr noundef nonnull align 4 dereferenceable(40), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorINSt10filesystem7__cxx114pathEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind "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 #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #10 = { noreturn nounwind "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 #11 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #12 = { nounwind }
attributes #13 = { nounwind allocsize(0) }
attributes #14 = { noreturn 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !13, i64 36}
!12 = !{!"_ZTS10ECTOptions", !6, i64 0, !6, i64 4, !13, i64 8, !13, i64 9, !6, i64 12, !13, i64 16, !13, i64 17, !13, i64 18, !13, i64 19, !13, i64 20, !13, i64 21, !13, i64 22, !13, i64 23, !13, i64 24, !13, i64 25, !13, i64 26, !13, i64 27, !6, i64 28, !6, i64 32, !13, i64 36}
!13 = !{!"bool", !7, i64 0}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = !{!21, !21, i64 0}
!21 = !{!"long", !7, i64 0}


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