; LLVM IR from thepowersgang/mrustc :: tools/testrunner (main)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.helpers::path" = type { %"class.std::__cxx11::basic_string" }
%"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] }
%struct.Options = type <{ ptr, ptr, %"class.std::vector.3", i8, [7 x i8], %"class.std::vector.3", i32, [4 x i8], ptr, i8, [7 x i8] }>
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.sigaction = type { %union.anon.8, %struct.__sigset_t, i32, ptr }
%union.anon.8 = type { ptr }
%struct.__sigset_t = type { [16 x i64] }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.9 }
%union.anon.9 = type { i32 }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.stat = type { i64, i64, i64, i32, i32, i32, i32, i64, i64, i64, i64, %struct.timespec, %struct.timespec, %struct.timespec, [3 x i64] }
%struct.timespec = type { i64, i64 }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr }
%struct.TestDesc = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.16", %"class.std::vector.3", %"class.std::vector.21", i8, i8, i8, [5 x i8] }>
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl" }
%"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl" = type { %"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.TestDesc::Message" = type { i32, i32, %"class.std::__cxx11::basic_string" }
%struct.Parser = type { ptr }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.3" }
%class.anon.26 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.27" = type { ptr }
%class.anon.28 = type { i8 }
%struct.Timestamp = type { i64 }
%class.anon.29 = type { i8 }
%"class.__gnu_cxx::__normal_iterator.31" = type { ptr }
%class.anon.32 = type { i8 }
%class.anon.34 = type { ptr }
%class.anon.35 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.36" = type { ptr }
%class.anon.37 = type { ptr, ptr }
%class.anon.38 = type { ptr, ptr }
%class.anon.39 = type { ptr, ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%class.anon.40 = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.0" = type { i8 }
%class.anon.41 = type { ptr }
%class.anon.42 = type { ptr }
%class.anon.43 = type { ptr }
%struct.dirent = type { i64, i64, i16, i8, [256 x i8] }

@.str.5 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZL12gInterrupted = external hidden global i8, align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.10 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.12 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z12run_compilerRK7OptionsRKN7helpers4pathES5_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISC_EES3_b(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, i1 noundef zeroext) #0

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z14run_executableRKN7helpers4pathERKSt6vectorIPKcSaIS5_EES2_j(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #0

declare void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z15sigalrm_handleri(i32 noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z14sigint_handleri(i32 noundef) #2

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #5 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %struct.Options, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca %struct.sigaction, align 8
  %12 = alloca %"class.std::vector.3", align 8
  %13 = alloca %"class.helpers::path", align 8
  %14 = alloca %"class.std::basic_ifstream", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i64, align 8
  %17 = alloca %"class.helpers::path", align 8
  %18 = alloca ptr, align 8
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::vector.10", align 8
  %21 = alloca %"class.helpers::path", align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca i1, align 1
  %25 = alloca ptr, align 8
  %26 = alloca %"class.helpers::path", align 8
  %27 = alloca %struct.stat, align 8
  %28 = alloca %"class.std::basic_ifstream", align 8
  %29 = alloca %"class.std::function", align 8
  %30 = alloca %class.anon, align 8
  %31 = alloca %struct.TestDesc, align 8
  %32 = alloca i32, align 4
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca i64, align 8
  %35 = alloca i32, align 4
  %36 = alloca i64, align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"struct.TestDesc::Message", align 8
  %40 = alloca i64, align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %struct.Parser, align 8
  %43 = alloca %"class.std::vector.3", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"struct.std::pair", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca i64, align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::function", align 8
  %53 = alloca %class.anon.26, align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator.27", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator.27", align 8
  %58 = alloca %class.anon.28, align 1
  %59 = alloca i8, align 1
  %60 = alloca i8, align 1
  %61 = alloca %struct.Timestamp, align 8
  %62 = alloca %"class.helpers::path", align 8
  %63 = alloca i1, align 1
  %64 = alloca i1, align 1
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator.27", align 8
  %71 = alloca %"class.__gnu_cxx::__normal_iterator.27", align 8
  %72 = alloca ptr, align 8
  %73 = alloca %"class.std::function", align 8
  %74 = alloca %class.anon.29, align 1
  %75 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %76 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %77 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %78 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %79 = alloca %"class.std::function", align 8
  %80 = alloca %class.anon.32, align 1
  %81 = alloca %"class.std::function", align 8
  %82 = alloca %class.anon.34, align 8
  %83 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %84 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %85 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %86 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %87 = alloca %"class.std::function", align 8
  %88 = alloca %class.anon.35, align 8
  %89 = alloca %"class.helpers::path", align 8
  %90 = alloca %"class.helpers::path", align 8
  %91 = alloca %"class.helpers::path", align 8
  %92 = alloca %"class.helpers::path", align 8
  %93 = alloca %"class.helpers::path", align 8
  %94 = alloca %"class.helpers::path", align 8
  %95 = alloca %"class.helpers::path", align 8
  %96 = alloca %"class.helpers::path", align 8
  %97 = alloca %struct.Timestamp, align 8
  %98 = alloca %struct.Timestamp, align 8
  %99 = alloca %struct.Timestamp, align 8
  %100 = alloca %struct.Timestamp, align 8
  %101 = alloca %struct.Timestamp, align 8
  %102 = alloca %struct.Timestamp, align 8
  %103 = alloca %"class.helpers::path", align 8
  %104 = alloca i1, align 1
  %105 = alloca i1, align 1
  %106 = alloca i8, align 1
  %107 = alloca ptr, align 8
  %108 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %109 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %110 = alloca ptr, align 8
  %111 = alloca %"class.helpers::path", align 8
  %112 = alloca %"class.helpers::path", align 8
  %113 = alloca %"class.helpers::path", align 8
  %114 = alloca %"class.helpers::path", align 8
  %115 = alloca %"class.std::function", align 8
  %116 = alloca %class.anon.37, align 8
  %117 = alloca %"class.helpers::path", align 8
  %118 = alloca %"class.helpers::path", align 8
  %119 = alloca i8, align 1
  %120 = alloca %"class.helpers::path", align 8
  %121 = alloca %"class.helpers::path", align 8
  %122 = alloca %"class.std::basic_ifstream", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::function", align 8
  %125 = alloca %class.anon.38, align 8
  %126 = alloca %"class.std::function", align 8
  %127 = alloca %class.anon.39, align 8
  %128 = alloca %struct.Timestamp, align 8
  %129 = alloca %"class.std::basic_ofstream", align 8
  %130 = alloca %"class.std::function", align 8
  %131 = alloca %class.anon.40, align 8
  %132 = alloca %"class.helpers::path", align 8
  %133 = alloca %"class.std::vector", align 8
  %134 = alloca %"class.std::initializer_list", align 8
  %135 = alloca [1 x ptr], align 8
  %136 = alloca %"class.std::allocator.0", align 1
  %137 = alloca %"class.std::function", align 8
  %138 = alloca %class.anon.41, align 8
  %139 = alloca %"class.helpers::path", align 8
  %140 = alloca %"class.std::function", align 8
  %141 = alloca %class.anon.42, align 8
  %142 = alloca %"class.std::function", align 8
  %143 = alloca %class.anon.43, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 96, ptr %6) #11
  call void @_ZN7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(89) %6) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %144 = load i32, ptr %4, align 4, !tbaa !5
  %145 = load ptr, ptr %5, align 8, !tbaa !9
  %146 = invoke noundef i32 @_ZN7Options5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(89) %6, i32 noundef %144, ptr noundef %145)
          to label %147 unwind label %152

147:                                              ; preds = %2
  store i32 %146, ptr %7, align 4, !tbaa !5
  %148 = load i32, ptr %7, align 4, !tbaa !5
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %150, label %156

150:                                              ; preds = %147
  %151 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %151, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %157

152:                                              ; preds = %2
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %8, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %1550

156:                                              ; preds = %147
  store i32 0, ptr %10, align 4
  br label %157

157:                                              ; preds = %156, %150
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  %158 = load i32, ptr %10, align 4
  switch i32 %158, label %1548 [
    i32 0, label %159
  ]

159:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 152, ptr %11) #11
  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 152, i1 false)
  %160 = getelementptr inbounds %struct.sigaction, ptr %11, i32 0, i32 0
  store ptr @_Z15sigalrm_handleri, ptr %160, align 8, !tbaa !11
  %161 = call i32 @sigaction(i32 noundef 14, ptr noundef %11, ptr noundef null) #11
  %162 = call ptr @signal(i32 noundef 2, ptr noundef @_Z14sigint_handleri) #11
  call void @llvm.lifetime.end.p0(i64 152, ptr %11) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #11
  %163 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 8
  %164 = load ptr, ptr %163, align 8, !tbaa !12
  %165 = icmp ne ptr %164, null
  br i1 %165, label %166, label %266

166:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #11
  %167 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 8
  %168 = load ptr, ptr %167, align 8, !tbaa !12
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef %168)
          to label %169 unwind label %186

169:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 520, ptr %14) #11
  %170 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %171 unwind label %190

171:                                              ; preds = %169
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %14, ptr noundef nonnull align 8 dereferenceable(32) %170, i32 noundef 8)
          to label %172 unwind label %190

172:                                              ; preds = %171
  %173 = load ptr, ptr %14, align 8, !tbaa !19
  %174 = getelementptr i8, ptr %173, i64 -24
  %175 = load i64, ptr %174, align 8
  %176 = getelementptr inbounds i8, ptr %14, i64 %175
  %177 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %176)
          to label %178 unwind label %194

178:                                              ; preds = %172
  br i1 %177, label %198, label %179

179:                                              ; preds = %178
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.10)
          to label %181 unwind label %194

181:                                              ; preds = %179
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN7helperslsERSoRKNS_4pathE(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %183 unwind label %194

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %185 unwind label %194

185:                                              ; preds = %183
  store i32 0, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %260

186:                                              ; preds = %166
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %8, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %9, align 4
  br label %265

190:                                              ; preds = %171, %169
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %8, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %9, align 4
  br label %264

194:                                              ; preds = %199, %183, %181, %179, %172
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %8, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %9, align 4
  br label %263

198:                                              ; preds = %178
  br label %199

199:                                              ; preds = %256, %254, %198
  %200 = load ptr, ptr %14, align 8, !tbaa !19
  %201 = getelementptr i8, ptr %200, i64 -24
  %202 = load i64, ptr %201, align 8
  %203 = getelementptr inbounds i8, ptr %14, i64 %202
  %204 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %203)
          to label %205 unwind label %194

205:                                              ; preds = %199
  %206 = xor i1 %204, true
  br i1 %206, label %207, label %258

207:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  %208 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %209 unwind label %213

209:                                              ; preds = %207
  %210 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.11)
          to label %211 unwind label %213

211:                                              ; preds = %209
  br i1 %210, label %212, label %217

212:                                              ; preds = %211
  store i32 2, ptr %10, align 4
  br label %254, !llvm.loop !21

213:                                              ; preds = %217, %209, %207
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %8, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %9, align 4
  br label %257

217:                                              ; preds = %211
  %218 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %15, i64 noundef 0)
          to label %219 unwind label %213

219:                                              ; preds = %217
  %220 = load i8, ptr %218, align 1, !tbaa !11
  %221 = sext i8 %220 to i32
  %222 = icmp eq i32 %221, 35
  br i1 %222, label %223, label %224

223:                                              ; preds = %219
  store i32 2, ptr %10, align 4
  br label %254, !llvm.loop !21

224:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %225 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32) %15, i8 noundef signext 35, i64 noundef 0) #11
  store i64 %225, ptr %16, align 8, !tbaa !23
  %226 = load i64, ptr %16, align 8, !tbaa !23
  %227 = icmp ne i64 %226, -1
  br i1 %227, label %228, label %235

228:                                              ; preds = %224
  %229 = load i64, ptr %16, align 8, !tbaa !23
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %15, i64 noundef %229)
          to label %230 unwind label %231

230:                                              ; preds = %228
  br label %235

231:                                              ; preds = %251, %247, %228
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %8, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  br label %257

235:                                              ; preds = %230, %224
  br label %236

236:                                              ; preds = %246, %235
  %237 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  br i1 %237, label %244, label %238

238:                                              ; preds = %236
  %239 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  %240 = load i8, ptr %239, align 1, !tbaa !11
  %241 = sext i8 %240 to i32
  %242 = call i32 @isblank(i32 noundef %241) #12
  %243 = icmp ne i32 %242, 0
  br label %244

244:                                              ; preds = %238, %236
  %245 = phi i1 [ false, %236 ], [ %243, %238 ]
  br i1 %245, label %246, label %247

246:                                              ; preds = %244
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  br label %236, !llvm.loop !25

247:                                              ; preds = %244
  %248 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.11)
          to label %249 unwind label %231

249:                                              ; preds = %247
  br i1 %248, label %250, label %251

250:                                              ; preds = %249
  store i32 2, ptr %10, align 4
  br label %253, !llvm.loop !21

251:                                              ; preds = %249
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %252 unwind label %231

252:                                              ; preds = %251
  store i32 0, ptr %10, align 4
  br label %253

253:                                              ; preds = %252, %250
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  br label %254

254:                                              ; preds = %253, %223, %212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #11
  %255 = load i32, ptr %10, align 4
  switch i32 %255, label %1556 [
    i32 0, label %256
    i32 2, label %199
  ]

256:                                              ; preds = %254
  br label %199, !llvm.loop !21

257:                                              ; preds = %231, %213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #11
  br label %263

258:                                              ; preds = %205
  br label %259

259:                                              ; preds = %258
  store i32 0, ptr %10, align 4
  br label %260

260:                                              ; preds = %259, %185
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %14) #11
  call void @llvm.lifetime.end.p0(i64 520, ptr %14) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #11
  %261 = load i32, ptr %10, align 4
  switch i32 %261, label %1546 [
    i32 0, label %262
  ]

262:                                              ; preds = %260
  br label %266

263:                                              ; preds = %257, %194
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %14) #11
  br label %264

264:                                              ; preds = %263, %190
  call void @llvm.lifetime.end.p0(i64 520, ptr %14) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  br label %265

265:                                              ; preds = %264, %186
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #11
  br label %1547

266:                                              ; preds = %262, %159
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #11
  %267 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 0
  %268 = load ptr, ptr %267, align 8, !tbaa !26
  %269 = icmp ne ptr %268, null
  store i1 false, ptr %19, align 1
  br i1 %269, label %270, label %274

270:                                              ; preds = %266
  %271 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 0
  %272 = load ptr, ptr %271, align 8, !tbaa !26
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef %272)
          to label %273 unwind label %292

273:                                              ; preds = %270
  br label %277

274:                                              ; preds = %266
  %275 = call ptr @__cxa_allocate_exception(i64 8) #11
  store ptr %275, ptr %18, align 8
  store i1 true, ptr %19, align 1
  store ptr @.str.11, ptr %275, align 16, !tbaa !9
  invoke void @__cxa_throw(ptr %275, ptr @_ZTIPKc, ptr null) #13
          to label %1556 unwind label %292

276:                                              ; No predecessors!
  br label %277

277:                                              ; preds = %276, %273
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #11
  call void @_ZNSt6vectorI8TestDescSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #11
  %278 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 1
  %279 = load ptr, ptr %278, align 8, !tbaa !27
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef %279)
          to label %280 unwind label %296

280:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #11
  %281 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %282 unwind label %300

282:                                              ; preds = %280
  %283 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %281) #11
  %284 = invoke ptr @opendir(ptr noundef %283)
          to label %285 unwind label %300

285:                                              ; preds = %282
  store ptr %284, ptr %22, align 8, !tbaa !9
  %286 = load ptr, ptr %22, align 8, !tbaa !9
  %287 = icmp eq ptr %286, null
  br i1 %287, label %288, label %316

288:                                              ; preds = %285
  store i1 true, ptr %24, align 1
  %289 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #11
  invoke void @_Z6formatIJA34_cN7helpers4pathEA2_cEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 1 dereferenceable(34) @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 1 dereferenceable(2) @.str.13)
          to label %290 unwind label %304

290:                                              ; preds = %288
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %289, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %291 unwind label %308

291:                                              ; preds = %290
  store i1 false, ptr %24, align 1
  invoke void @__cxa_throw(ptr %289, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #13
          to label %1556 unwind label %308

292:                                              ; preds = %274, %270
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %8, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %9, align 4
  br label %1545

296:                                              ; preds = %277
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %8, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %9, align 4
  br label %1543

300:                                              ; preds = %786, %783, %282, %280
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %8, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %9, align 4
  br label %1542

304:                                              ; preds = %288
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %8, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %9, align 4
  br label %312

308:                                              ; preds = %291, %290
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %8, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  br label %312

312:                                              ; preds = %308, %304
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #11
  %313 = load i1, ptr %24, align 1
  br i1 %313, label %314, label %315

314:                                              ; preds = %312
  call void @__cxa_free_exception(ptr %289) #11
  br label %315

315:                                              ; preds = %314, %312
  br label %1542

316:                                              ; preds = %285
  br label %317

317:                                              ; preds = %761, %759, %316
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  %318 = load ptr, ptr %22, align 8, !tbaa !9
  %319 = invoke ptr @readdir(ptr noundef %318)
          to label %320 unwind label %324

320:                                              ; preds = %317
  store ptr %319, ptr %25, align 8, !tbaa !9
  %321 = load ptr, ptr %25, align 8, !tbaa !9
  %322 = icmp ne ptr %321, null
  br i1 %322, label %328, label %323

323:                                              ; preds = %320
  store i32 7, ptr %10, align 4
  br label %759

324:                                              ; preds = %317
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %8, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %9, align 4
  br label %782

328:                                              ; preds = %320
  %329 = load ptr, ptr %25, align 8, !tbaa !9
  %330 = getelementptr inbounds %struct.dirent, ptr %329, i32 0, i32 4
  %331 = getelementptr inbounds [256 x i8], ptr %330, i64 0, i64 0
  %332 = load i8, ptr %331, align 1, !tbaa !11
  %333 = sext i8 %332 to i32
  %334 = icmp eq i32 %333, 46
  br i1 %334, label %335, label %336

335:                                              ; preds = %328
  store i32 6, ptr %10, align 4
  br label %759, !llvm.loop !28

336:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #11
  %337 = load ptr, ptr %25, align 8, !tbaa !9
  %338 = getelementptr inbounds %struct.dirent, ptr %337, i32 0, i32 4
  %339 = getelementptr inbounds [256 x i8], ptr %338, i64 0, i64 0
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef %339)
          to label %340 unwind label %350

340:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 144, ptr %27) #11
  %341 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %342 unwind label %354

342:                                              ; preds = %340
  %343 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %341) #11
  %344 = call i32 @stat(ptr noundef %343, ptr noundef %27) #11
  %345 = getelementptr inbounds %struct.stat, ptr %27, i32 0, i32 3
  %346 = load i32, ptr %345, align 8, !tbaa !29
  %347 = and i32 %346, 61440
  %348 = icmp ne i32 %347, 32768
  br i1 %348, label %349, label %358

349:                                              ; preds = %342
  store i32 6, ptr %10, align 4
  br label %756, !llvm.loop !28

350:                                              ; preds = %336
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %8, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %9, align 4
  br label %781

354:                                              ; preds = %340
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %8, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %9, align 4
  br label %780

358:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 520, ptr %28) #11
  %359 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %360 unwind label %369

360:                                              ; preds = %358
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %28, ptr noundef nonnull align 8 dereferenceable(32) %359, i32 noundef 8)
          to label %361 unwind label %369

361:                                              ; preds = %360
  %362 = load ptr, ptr %28, align 8, !tbaa !19
  %363 = getelementptr i8, ptr %362, i64 -24
  %364 = load i64, ptr %363, align 8
  %365 = getelementptr inbounds i8, ptr %28, i64 %364
  %366 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %365)
          to label %367 unwind label %373

367:                                              ; preds = %361
  br i1 %366, label %377, label %368

368:                                              ; preds = %367
  store i32 6, ptr %10, align 4
  br label %755, !llvm.loop !28

369:                                              ; preds = %360, %358
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %8, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %9, align 4
  br label %779

373:                                              ; preds = %361
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %8, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %9, align 4
  br label %778

377:                                              ; preds = %367
  %378 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 6
  %379 = load i32, ptr %378, align 8, !tbaa !32
  %380 = icmp sgt i32 %379, 0
  br i1 %380, label %381, label %391

381:                                              ; preds = %377
  br label %382

382:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  %383 = getelementptr inbounds %class.anon, ptr %30, i32 0, i32 0
  store ptr %26, ptr %383, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %29)
          to label %384 unwind label %387

384:                                              ; preds = %382
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %385

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385
  br label %391

387:                                              ; preds = %382
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %8, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %778

391:                                              ; preds = %386, %377
  call void @llvm.lifetime.start.p0(i64 144, ptr %31) #11
  invoke void @_ZN8TestDescC2Ev(ptr noundef nonnull align 8 dereferenceable(139) %31)
          to label %392 unwind label %410

392:                                              ; preds = %391
  %393 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 5
  store i8 0, ptr %393, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %394

394:                                              ; preds = %742, %392
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  %395 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %396 unwind label %414

396:                                              ; preds = %394
  %397 = load i32, ptr %32, align 4, !tbaa !5
  %398 = add i32 %397, 1
  store i32 %398, ptr %32, align 4, !tbaa !5
  br label %399

399:                                              ; preds = %409, %396
  %400 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  br i1 %400, label %407, label %401

401:                                              ; preds = %399
  %402 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  %403 = load i8, ptr %402, align 1, !tbaa !11
  %404 = sext i8 %403 to i32
  %405 = call i32 @isblank(i32 noundef %404) #12
  %406 = icmp ne i32 %405, 0
  br label %407

407:                                              ; preds = %401, %399
  %408 = phi i1 [ false, %399 ], [ %406, %401 ]
  br i1 %408, label %409, label %418

409:                                              ; preds = %407
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  br label %399, !llvm.loop !45

410:                                              ; preds = %391
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %8, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %9, align 4
  br label %777

414:                                              ; preds = %541, %535, %394
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %8, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %9, align 4
  br label %763

418:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %419 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.14, i64 noundef 0) #11
  store i64 %419, ptr %34, align 8, !tbaa !23
  %420 = load i64, ptr %34, align 8, !tbaa !23
  %421 = icmp ne i64 %420, -1
  br i1 %421, label %422, label %535

422:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %423 = load i32, ptr %32, align 4, !tbaa !5
  store i32 %423, ptr %35, align 4, !tbaa !5
  %424 = load i64, ptr %34, align 8, !tbaa !23
  %425 = add i64 %424, 3
  store i64 %425, ptr %34, align 8, !tbaa !23
  br label %426

426:                                              ; preds = %433, %422
  %427 = load i64, ptr %34, align 8, !tbaa !23
  %428 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %427)
          to label %429 unwind label %438

429:                                              ; preds = %426
  %430 = load i8, ptr %428, align 1, !tbaa !11
  %431 = sext i8 %430 to i32
  %432 = icmp eq i32 %431, 94
  br i1 %432, label %433, label %442

433:                                              ; preds = %429
  %434 = load i32, ptr %35, align 4, !tbaa !5
  %435 = sub i32 %434, 1
  store i32 %435, ptr %35, align 4, !tbaa !5
  %436 = load i64, ptr %34, align 8, !tbaa !23
  %437 = add i64 %436, 1
  store i64 %437, ptr %34, align 8, !tbaa !23
  br label %426, !llvm.loop !46

438:                                              ; preds = %443, %426
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %8, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %9, align 4
  br label %534

442:                                              ; preds = %429
  br label %443

443:                                              ; preds = %451, %442
  %444 = load i64, ptr %34, align 8, !tbaa !23
  %445 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %444)
          to label %446 unwind label %438

446:                                              ; preds = %443
  %447 = load i8, ptr %445, align 1, !tbaa !11
  %448 = sext i8 %447 to i32
  %449 = call i32 @isspace(i32 noundef %448) #12
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %451, label %454

451:                                              ; preds = %446
  %452 = load i64, ptr %34, align 8, !tbaa !23
  %453 = add i64 %452, 1
  store i64 %453, ptr %34, align 8, !tbaa !23
  br label %443, !llvm.loop !47

454:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  %455 = load i64, ptr %34, align 8, !tbaa !23
  store i64 %455, ptr %36, align 8, !tbaa !23
  br label %456

456:                                              ; preds = %464, %454
  %457 = load i64, ptr %34, align 8, !tbaa !23
  %458 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %457)
          to label %459 unwind label %467

459:                                              ; preds = %456
  %460 = load i8, ptr %458, align 1, !tbaa !11
  %461 = sext i8 %460 to i32
  %462 = call i32 @isalnum(i32 noundef %461) #12
  %463 = icmp ne i32 %462, 0
  br i1 %463, label %464, label %471

464:                                              ; preds = %459
  %465 = load i64, ptr %34, align 8, !tbaa !23
  %466 = add i64 %465, 1
  store i64 %466, ptr %34, align 8, !tbaa !23
  br label %456, !llvm.loop !48

467:                                              ; preds = %456
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %8, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %9, align 4
  br label %533

471:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #11
  %472 = load i64, ptr %36, align 8, !tbaa !23
  %473 = load i64, ptr %34, align 8, !tbaa !23
  %474 = load i64, ptr %36, align 8, !tbaa !23
  %475 = sub i64 %473, %474
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %472, i64 noundef %475)
          to label %476 unwind label %488

476:                                              ; preds = %471
  br label %477

477:                                              ; preds = %485, %476
  %478 = load i64, ptr %34, align 8, !tbaa !23
  %479 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %478)
          to label %480 unwind label %492

480:                                              ; preds = %477
  %481 = load i8, ptr %479, align 1, !tbaa !11
  %482 = sext i8 %481 to i32
  %483 = call i32 @isspace(i32 noundef %482) #12
  %484 = icmp ne i32 %483, 0
  br i1 %484, label %485, label %496

485:                                              ; preds = %480
  %486 = load i64, ptr %34, align 8, !tbaa !23
  %487 = add i64 %486, 1
  store i64 %487, ptr %34, align 8, !tbaa !23
  br label %477, !llvm.loop !49

488:                                              ; preds = %471
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %8, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %9, align 4
  br label %532

492:                                              ; preds = %477
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %8, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %9, align 4
  br label %531

496:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #11
  %497 = load i64, ptr %34, align 8, !tbaa !23
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %497, i64 noundef -1)
          to label %498 unwind label %510

498:                                              ; preds = %496
  %499 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.15)
          to label %500 unwind label %514

500:                                              ; preds = %498
  br i1 %499, label %501, label %527

501:                                              ; preds = %500
  %502 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 40, ptr %39) #11
  %503 = getelementptr inbounds %"struct.TestDesc::Message", ptr %39, i32 0, i32 0
  %504 = load i32, ptr %35, align 4, !tbaa !5
  store i32 %504, ptr %503, align 8, !tbaa !50
  %505 = getelementptr inbounds %"struct.TestDesc::Message", ptr %39, i32 0, i32 1
  store i32 0, ptr %505, align 4, !tbaa !53
  %506 = getelementptr inbounds %"struct.TestDesc::Message", ptr %39, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %507 unwind label %518

507:                                              ; preds = %501
  invoke void @_ZNSt6vectorIN8TestDesc7MessageESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %502, ptr noundef nonnull align 8 dereferenceable(40) %39)
          to label %508 unwind label %522

508:                                              ; preds = %507
  call void @_ZN8TestDesc7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %39) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #11
  %509 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 7
  store i8 1, ptr %509, align 2, !tbaa !54
  br label %528

510:                                              ; preds = %496
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %8, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %9, align 4
  br label %530

514:                                              ; preds = %498
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %8, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %9, align 4
  br label %529

518:                                              ; preds = %501
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %8, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %9, align 4
  br label %526

522:                                              ; preds = %507
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %8, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %9, align 4
  call void @_ZN8TestDesc7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %39) #11
  br label %526

526:                                              ; preds = %522, %518
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #11
  br label %529

527:                                              ; preds = %500
  br label %528

528:                                              ; preds = %527, %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %535

529:                                              ; preds = %526, %514
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  br label %530

530:                                              ; preds = %529, %510
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #11
  br label %531

531:                                              ; preds = %530, %492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  br label %532

532:                                              ; preds = %531, %488
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #11
  br label %533

533:                                              ; preds = %532, %467
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  br label %534

534:                                              ; preds = %533, %438
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  br label %763

535:                                              ; preds = %528, %418
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  %536 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef 0)
          to label %537 unwind label %414

537:                                              ; preds = %535
  %538 = load i8, ptr %536, align 1, !tbaa !11
  %539 = sext i8 %538 to i32
  %540 = icmp eq i32 %539, 47
  br i1 %540, label %541, label %547

541:                                              ; preds = %537
  %542 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef 1)
          to label %543 unwind label %414

543:                                              ; preds = %541
  %544 = load i8, ptr %542, align 1, !tbaa !11
  %545 = sext i8 %544 to i32
  %546 = icmp eq i32 %545, 47
  br i1 %546, label %548, label %547

547:                                              ; preds = %543, %537
  store i32 11, ptr %10, align 4
  br label %733

548:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  %549 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef 2)
          to label %550 unwind label %578

550:                                              ; preds = %548
  %551 = load i8, ptr %549, align 1, !tbaa !11
  %552 = sext i8 %551 to i32
  %553 = icmp eq i32 %552, 32
  %554 = zext i1 %553 to i64
  %555 = select i1 %553, i32 3, i32 2
  %556 = sext i32 %555 to i64
  store i64 %556, ptr %40, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #11
  %557 = load i64, ptr %40, align 8, !tbaa !23
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %557, i64 noundef 10)
          to label %558 unwind label %582

558:                                              ; preds = %550
  %559 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.16)
          to label %560 unwind label %586

560:                                              ; preds = %558
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  br i1 %559, label %561, label %628

561:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  %562 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  %563 = load i64, ptr %40, align 8, !tbaa !23
  %564 = getelementptr inbounds i8, ptr %562, i64 %563
  %565 = getelementptr inbounds i8, ptr %564, i64 10
  invoke void @_ZZ4mainEN6ParserC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef %565)
          to label %566 unwind label %591

566:                                              ; preds = %561
  invoke void @_ZZ4mainEN6Parser13consume_whiteEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %567 unwind label %591

567:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #11
  invoke void @_ZZ4mainEN6Parser11read_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %568 unwind label %595

568:                                              ; preds = %567
  invoke void @_ZZ4mainEN6Parser13consume_whiteEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %569 unwind label %599

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %577, %569
  %571 = invoke noundef zeroext i1 @_ZZ4mainENK6Parser6is_eofEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %572 unwind label %599

572:                                              ; preds = %570
  %573 = xor i1 %571, true
  br i1 %573, label %574, label %612

574:                                              ; preds = %572
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #11
  invoke void @_ZZ4mainEN6Parser11read_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %575 unwind label %603

575:                                              ; preds = %574
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %576 unwind label %607

576:                                              ; preds = %575
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #11
  invoke void @_ZZ4mainEN6Parser13consume_whiteEv(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %577 unwind label %599

577:                                              ; preds = %576
  br label %570, !llvm.loop !55

578:                                              ; preds = %548
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %8, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %9, align 4
  br label %762

582:                                              ; preds = %550
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %8, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %9, align 4
  br label %590

586:                                              ; preds = %558
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %8, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  br label %590

590:                                              ; preds = %586, %582
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  br label %762

591:                                              ; preds = %566, %561
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %8, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %9, align 4
  br label %627

595:                                              ; preds = %567
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %8, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %9, align 4
  br label %626

599:                                              ; preds = %576, %570, %568
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %8, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %9, align 4
  br label %625

603:                                              ; preds = %574
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %8, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %9, align 4
  br label %611

607:                                              ; preds = %575
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %8, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  br label %611

611:                                              ; preds = %607, %603
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #11
  br label %625

612:                                              ; preds = %572
  %613 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 56, ptr %46) #11
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind writable sret(%"struct.std::pair") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(24) %43)
          to label %614 unwind label %616

614:                                              ; preds = %612
  invoke void @_ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE9push_backEOS9_(ptr noundef nonnull align 8 dereferenceable(24) %613, ptr noundef nonnull align 8 dereferenceable(56) %46)
          to label %615 unwind label %620

615:                                              ; preds = %614
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %732

616:                                              ; preds = %612
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %8, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %9, align 4
  br label %624

620:                                              ; preds = %614
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %8, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %9, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #11
  br label %624

624:                                              ; preds = %620, %616
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #11
  br label %625

625:                                              ; preds = %624, %611, %599
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  br label %626

626:                                              ; preds = %625, %595
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #11
  br label %627

627:                                              ; preds = %626, %591
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %762

628:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #11
  %629 = load i64, ptr %40, align 8, !tbaa !23
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %629, i64 noundef 11)
          to label %630 unwind label %635

630:                                              ; preds = %628
  %631 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.17)
          to label %632 unwind label %639

632:                                              ; preds = %630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #11
  br i1 %631, label %633, label %644

633:                                              ; preds = %632
  %634 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 5
  store i8 1, ptr %634, align 8, !tbaa !33
  br label %731

635:                                              ; preds = %628
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %8, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %9, align 4
  br label %643

639:                                              ; preds = %630
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %8, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  br label %643

643:                                              ; preds = %639, %635
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #11
  br label %762

644:                                              ; preds = %632
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #11
  %645 = load i64, ptr %40, align 8, !tbaa !23
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %645, i64 noundef 12)
          to label %646 unwind label %651

646:                                              ; preds = %644
  %647 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.18)
          to label %648 unwind label %655

648:                                              ; preds = %646
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  br i1 %647, label %649, label %660

649:                                              ; preds = %648
  %650 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 6
  store i8 1, ptr %650, align 1, !tbaa !56
  br label %730

651:                                              ; preds = %644
  %652 = landingpad { ptr, i32 }
          cleanup
  %653 = extractvalue { ptr, i32 } %652, 0
  store ptr %653, ptr %8, align 8
  %654 = extractvalue { ptr, i32 } %652, 1
  store i32 %654, ptr %9, align 4
  br label %659

655:                                              ; preds = %646
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %8, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  br label %659

659:                                              ; preds = %655, %651
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  br label %762

660:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #11
  %661 = load i64, ptr %40, align 8, !tbaa !23
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %661, i64 noundef 14)
          to label %662 unwind label %691

662:                                              ; preds = %660
  %663 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.19)
          to label %664 unwind label %695

664:                                              ; preds = %662
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #11
  br i1 %663, label %665, label %729

665:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  %666 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32) %33, i8 noundef signext 32, i64 noundef 17) #11
  store i64 %666, ptr %50, align 8, !tbaa !23
  %667 = load i64, ptr %40, align 8, !tbaa !23
  %668 = add i64 %667, 14
  store i64 %668, ptr %40, align 8, !tbaa !23
  br label %669

669:                                              ; preds = %727, %665
  %670 = load i64, ptr %40, align 8, !tbaa !23
  %671 = load i64, ptr %50, align 8, !tbaa !23
  %672 = icmp ne i64 %670, %671
  br i1 %672, label %673, label %718

673:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #11
  %674 = load i64, ptr %40, align 8, !tbaa !23
  %675 = load i64, ptr %50, align 8, !tbaa !23
  %676 = load i64, ptr %40, align 8, !tbaa !23
  %677 = sub i64 %675, %676
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 noundef %674, i64 noundef %677)
          to label %678 unwind label %700

678:                                              ; preds = %673
  %679 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.11)
          to label %680 unwind label %704

680:                                              ; preds = %678
  br i1 %679, label %681, label %715

681:                                              ; preds = %680
  %682 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 6
  %683 = load i32, ptr %682, align 8, !tbaa !32
  %684 = icmp sgt i32 %683, 1
  br i1 %684, label %685, label %712

685:                                              ; preds = %681
  br label %686

686:                                              ; preds = %685
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  %687 = getelementptr inbounds %class.anon.26, ptr %53, i32 0, i32 0
  store ptr %51, ptr %687, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(8) %53) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %52)
          to label %688 unwind label %708

688:                                              ; preds = %686
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689
  br label %712

691:                                              ; preds = %660
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %8, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %9, align 4
  br label %699

695:                                              ; preds = %662
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %8, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  br label %699

699:                                              ; preds = %695, %691
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #11
  br label %762

700:                                              ; preds = %673
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %8, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %9, align 4
  br label %717

704:                                              ; preds = %712, %678
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %8, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %9, align 4
  br label %716

708:                                              ; preds = %686
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %8, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  br label %716

712:                                              ; preds = %690, %681
  %713 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 3
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %713, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %714 unwind label %704

714:                                              ; preds = %712
  br label %715

715:                                              ; preds = %714, %680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #11
  br label %718

716:                                              ; preds = %708, %704
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  br label %717

717:                                              ; preds = %716, %700
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  br label %762

718:                                              ; preds = %715, %669
  %719 = load i64, ptr %50, align 8, !tbaa !23
  %720 = icmp eq i64 %719, -1
  br i1 %720, label %721, label %722

721:                                              ; preds = %718
  br label %728

722:                                              ; preds = %718
  %723 = load i64, ptr %50, align 8, !tbaa !23
  %724 = add i64 %723, 1
  store i64 %724, ptr %40, align 8, !tbaa !23
  %725 = load i64, ptr %40, align 8, !tbaa !23
  %726 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32) %33, i8 noundef signext 32, i64 noundef %725) #11
  store i64 %726, ptr %50, align 8, !tbaa !23
  br label %727

727:                                              ; preds = %722
  br i1 true, label %669, label %728, !llvm.loop !57

728:                                              ; preds = %727, %721
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  br label %729

729:                                              ; preds = %728, %664
  br label %730

730:                                              ; preds = %729, %649
  br label %731

731:                                              ; preds = %730, %633
  br label %732

732:                                              ; preds = %731, %615
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  store i32 0, ptr %10, align 4
  br label %733

733:                                              ; preds = %732, %547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #11
  %734 = load i32, ptr %10, align 4
  switch i32 %734, label %1556 [
    i32 0, label %735
    i32 11, label %736
  ]

735:                                              ; preds = %733
  br label %736

736:                                              ; preds = %735, %733
  %737 = load ptr, ptr %28, align 8, !tbaa !19
  %738 = getelementptr i8, ptr %737, i64 -24
  %739 = load i64, ptr %738, align 8
  %740 = getelementptr inbounds i8, ptr %28, i64 %739
  %741 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %740)
          to label %742 unwind label %764

742:                                              ; preds = %736
  %743 = xor i1 %741, true
  br i1 %743, label %394, label %744, !llvm.loop !58

744:                                              ; preds = %742
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #11
  invoke void @_ZNK7helpers4path8basenameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %745 unwind label %768

745:                                              ; preds = %744
  %746 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 0
  %747 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %746, ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #11
  %748 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %748) #11
  %749 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %749) #11
  %750 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %750) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #11
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %751 unwind label %772

751:                                              ; preds = %745
  %752 = getelementptr inbounds %struct.TestDesc, ptr %31, i32 0, i32 1
  %753 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %752, ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #11
  invoke void @_ZNSt6vectorI8TestDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(139) %31)
          to label %754 unwind label %764

754:                                              ; preds = %751
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  call void @_ZN8TestDescD2Ev(ptr noundef nonnull align 8 dereferenceable(139) %31) #11
  call void @llvm.lifetime.end.p0(i64 144, ptr %31) #11
  store i32 0, ptr %10, align 4
  br label %755

755:                                              ; preds = %754, %368
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %28) #11
  call void @llvm.lifetime.end.p0(i64 520, ptr %28) #11
  br label %756

756:                                              ; preds = %755, %349
  call void @llvm.lifetime.end.p0(i64 144, ptr %27) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #11
  %757 = load i32, ptr %10, align 4
  switch i32 %757, label %759 [
    i32 0, label %758
  ]

758:                                              ; preds = %756
  store i32 0, ptr %10, align 4
  br label %759

759:                                              ; preds = %758, %756, %335, %323
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  %760 = load i32, ptr %10, align 4
  switch i32 %760, label %1556 [
    i32 0, label %761
    i32 7, label %783
    i32 6, label %317
  ]

761:                                              ; preds = %759
  br label %317, !llvm.loop !28

762:                                              ; preds = %717, %699, %659, %643, %627, %590, %578
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %763

763:                                              ; preds = %762, %534, %414
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #11
  br label %776

764:                                              ; preds = %751, %736
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %8, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %9, align 4
  br label %776

768:                                              ; preds = %744
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %8, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #11
  br label %776

772:                                              ; preds = %745
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %8, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #11
  br label %776

776:                                              ; preds = %772, %768, %764, %763
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  call void @_ZN8TestDescD2Ev(ptr noundef nonnull align 8 dereferenceable(139) %31) #11
  br label %777

777:                                              ; preds = %776, %410
  call void @llvm.lifetime.end.p0(i64 144, ptr %31) #11
  br label %778

778:                                              ; preds = %777, %387, %373
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %28) #11
  br label %779

779:                                              ; preds = %778, %369
  call void @llvm.lifetime.end.p0(i64 520, ptr %28) #11
  br label %780

780:                                              ; preds = %779, %354
  call void @llvm.lifetime.end.p0(i64 144, ptr %27) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  br label %781

781:                                              ; preds = %780, %350
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #11
  br label %782

782:                                              ; preds = %781, %324
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %1542

783:                                              ; preds = %759
  %784 = load ptr, ptr %22, align 8, !tbaa !9
  %785 = invoke i32 @closedir(ptr noundef %784)
          to label %786 unwind label %300

786:                                              ; preds = %783
  %787 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  %788 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.27", ptr %56, i32 0, i32 0
  store ptr %787, ptr %788, align 8
  %789 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  %790 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.27", ptr %57, i32 0, i32 0
  store ptr %789, ptr %790, align 8
  %791 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.27", ptr %56, i32 0, i32 0
  %792 = load ptr, ptr %791, align 8
  %793 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.27", ptr %57, i32 0, i32 0
  %794 = load ptr, ptr %793, align 8
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS2_SaIS2_EEEEZ4mainE4$_13EvT_S9_T0_"(ptr %792, ptr %794)
          to label %795 unwind label %300

795:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #11
  %796 = call ptr @getenv(ptr noundef @.str.20) #11
  %797 = icmp ne ptr %796, null
  %798 = zext i1 %797 to i8
  store i8 %798, ptr %59, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #11
  %799 = call ptr @getenv(ptr noundef @.str.21) #11
  %800 = icmp ne ptr %799, null
  %801 = zext i1 %800 to i8
  store i8 %801, ptr %60, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %802 = call ptr @getenv(ptr noundef @.str.22) #11
  %803 = icmp ne ptr %802, null
  store i1 false, ptr %63, align 1
  store i1 false, ptr %64, align 1
  br i1 %803, label %804, label %808

804:                                              ; preds = %795
  %805 = invoke i64 @_ZN9Timestamp13infinite_pastEv()
          to label %806 unwind label %829

806:                                              ; preds = %804
  %807 = getelementptr inbounds %struct.Timestamp, ptr %61, i32 0, i32 0
  store i64 %805, ptr %807, align 8
  br label %813

808:                                              ; preds = %795
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #11
  store i1 true, ptr %63, align 1
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.9)
          to label %809 unwind label %833

809:                                              ; preds = %808
  store i1 true, ptr %64, align 1
  %810 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %811 unwind label %837

811:                                              ; preds = %809
  %812 = getelementptr inbounds %struct.Timestamp, ptr %61, i32 0, i32 0
  store i64 %810, ptr %812, align 8
  br label %813

813:                                              ; preds = %811, %806
  %814 = load i1, ptr %64, align 1
  br i1 %814, label %815, label %816

815:                                              ; preds = %813
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  br label %816

816:                                              ; preds = %815, %813
  %817 = load i1, ptr %63, align 1
  br i1 %817, label %818, label %819

818:                                              ; preds = %816
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #11
  br label %819

819:                                              ; preds = %818, %816
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  store i32 0, ptr %65, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  store i32 0, ptr %66, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  store i32 0, ptr %67, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  store i32 0, ptr %68, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  store ptr %20, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #11
  %820 = load ptr, ptr %69, align 8, !tbaa !9
  %821 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %820) #11
  %822 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.27", ptr %70, i32 0, i32 0
  store ptr %821, ptr %822, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #11
  %823 = load ptr, ptr %69, align 8, !tbaa !9
  %824 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %823) #11
  %825 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.27", ptr %71, i32 0, i32 0
  store ptr %824, ptr %825, align 8
  br label %826

826:                                              ; preds = %1489, %819
  %827 = call noundef zeroext i1 @_ZN9__gnu_cxxneIP8TestDescSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71) #11
  br i1 %827, label %848, label %828

828:                                              ; preds = %826
  store i32 28, ptr %10, align 4
  br label %1497

829:                                              ; preds = %804
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %8, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %9, align 4
  br label %1541

833:                                              ; preds = %808
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %8, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %9, align 4
  br label %844

837:                                              ; preds = %809
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %8, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %9, align 4
  %841 = load i1, ptr %64, align 1
  br i1 %841, label %842, label %843

842:                                              ; preds = %837
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  br label %843

843:                                              ; preds = %842, %837
  br label %844

844:                                              ; preds = %843, %833
  %845 = load i1, ptr %63, align 1
  br i1 %845, label %846, label %847

846:                                              ; preds = %844
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #11
  br label %847

847:                                              ; preds = %846, %844
  br label %1541

848:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  %849 = call noundef nonnull align 8 dereferenceable(139) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS1_SaIS1_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #11
  store ptr %849, ptr %72, align 8, !tbaa !9
  %850 = load i8, ptr @_ZL12gInterrupted, align 1, !tbaa !59, !range !60, !noundef !61
  %851 = trunc i8 %850 to i1
  br i1 %851, label %852, label %861

852:                                              ; preds = %848
  br label %853

853:                                              ; preds = %852
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 1 dereferenceable(1) %74) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %73)
          to label %854 unwind label %857

854:                                              ; preds = %853
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #11
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %1486

857:                                              ; preds = %853
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %8, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #11
  br label %1496

861:                                              ; preds = %848
  %862 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 2
  %863 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %862) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  br i1 %863, label %884, label %864

864:                                              ; preds = %861
  %865 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 2
  %866 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %865) #11
  %867 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %76, i32 0, i32 0
  store ptr %866, ptr %867, align 8
  %868 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 2
  %869 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %868) #11
  %870 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %77, i32 0, i32 0
  store ptr %869, ptr %870, align 8
  %871 = load ptr, ptr %72, align 8, !tbaa !9
  %872 = getelementptr inbounds %struct.TestDesc, ptr %871, i32 0, i32 0
  %873 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %76, i32 0, i32 0
  %874 = load ptr, ptr %873, align 8
  %875 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %77, i32 0, i32 0
  %876 = load ptr, ptr %875, align 8
  %877 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEES7_ET_SD_SD_RKT0_(ptr %874, ptr %876, ptr noundef nonnull align 8 dereferenceable(32) %872)
          to label %878 unwind label %895

878:                                              ; preds = %864
  %879 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %75, i32 0, i32 0
  store ptr %877, ptr %879, align 8
  %880 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 2
  %881 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %880) #11
  %882 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %78, i32 0, i32 0
  store ptr %881, ptr %882, align 8
  %883 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  br label %884

884:                                              ; preds = %878, %861
  %885 = phi i1 [ false, %861 ], [ %883, %878 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  br i1 %885, label %886, label %904

886:                                              ; preds = %884
  %887 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 6
  %888 = load i32, ptr %887, align 8, !tbaa !32
  %889 = icmp sgt i32 %888, 0
  br i1 %889, label %890, label %903

890:                                              ; preds = %886
  br label %891

891:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 1 dereferenceable(1) %80) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %79)
          to label %892 unwind label %899

892:                                              ; preds = %891
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #11
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893
  br label %903

895:                                              ; preds = %864
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %8, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  br label %1496

899:                                              ; preds = %891
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %8, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #11
  br label %1496

903:                                              ; preds = %894, %886
  store i32 29, ptr %10, align 4
  br label %1486

904:                                              ; preds = %884
  %905 = load ptr, ptr %72, align 8, !tbaa !9
  %906 = getelementptr inbounds %struct.TestDesc, ptr %905, i32 0, i32 5
  %907 = load i8, ptr %906, align 8, !tbaa !33, !range !60, !noundef !61
  %908 = trunc i8 %907 to i1
  br i1 %908, label %909, label %925

909:                                              ; preds = %904
  %910 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 6
  %911 = load i32, ptr %910, align 8, !tbaa !32
  %912 = icmp sgt i32 %911, 0
  br i1 %912, label %913, label %924

913:                                              ; preds = %909
  br label %914

914:                                              ; preds = %913
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  %915 = getelementptr inbounds %class.anon.34, ptr %82, i32 0, i32 0
  %916 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %916, ptr %915, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(8) %82) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %81)
          to label %917 unwind label %920

917:                                              ; preds = %914
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  br label %918

918:                                              ; preds = %917
  br label %919

919:                                              ; preds = %918
  br label %924

920:                                              ; preds = %914
  %921 = landingpad { ptr, i32 }
          cleanup
  %922 = extractvalue { ptr, i32 } %921, 0
  store ptr %922, ptr %8, align 8
  %923 = extractvalue { ptr, i32 } %921, 1
  store i32 %923, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  br label %1496

924:                                              ; preds = %919, %909
  store i32 29, ptr %10, align 4
  br label %1486

925:                                              ; preds = %904
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  %926 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #11
  %927 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %84, i32 0, i32 0
  store ptr %926, ptr %927, align 8
  %928 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #11
  %929 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %85, i32 0, i32 0
  store ptr %928, ptr %929, align 8
  %930 = load ptr, ptr %72, align 8, !tbaa !9
  %931 = getelementptr inbounds %struct.TestDesc, ptr %930, i32 0, i32 0
  %932 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %84, i32 0, i32 0
  %933 = load ptr, ptr %932, align 8
  %934 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %85, i32 0, i32 0
  %935 = load ptr, ptr %934, align 8
  %936 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEES7_ET_SD_SD_RKT0_(ptr %933, ptr %935, ptr noundef nonnull align 8 dereferenceable(32) %931)
          to label %937 unwind label %953

937:                                              ; preds = %925
  %938 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %83, i32 0, i32 0
  store ptr %936, ptr %938, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #11
  %939 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #11
  %940 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.31", ptr %86, i32 0, i32 0
  store ptr %939, ptr %940, align 8
  %941 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %86) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br i1 %941, label %942, label %964

942:                                              ; preds = %937
  %943 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 6
  %944 = load i32, ptr %943, align 8, !tbaa !32
  %945 = icmp sgt i32 %944, 0
  br i1 %945, label %946, label %961

946:                                              ; preds = %942
  br label %947

947:                                              ; preds = %946
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #11
  %948 = getelementptr inbounds %class.anon.35, ptr %88, i32 0, i32 0
  %949 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %949, ptr %948, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(8) %88) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %87)
          to label %950 unwind label %957

950:                                              ; preds = %947
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  br label %961

953:                                              ; preds = %925
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %8, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %1496

957:                                              ; preds = %947
  %958 = landingpad { ptr, i32 }
          cleanup
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %8, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  br label %1496

961:                                              ; preds = %952, %942
  %962 = load i32, ptr %65, align 4, !tbaa !5
  %963 = add i32 %962, 1
  store i32 %963, ptr %65, align 4, !tbaa !5
  store i32 29, ptr %10, align 4
  br label %1486

964:                                              ; preds = %937
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #11
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.23)
          to label %965 unwind label %1003

965:                                              ; preds = %964
  %966 = load ptr, ptr %72, align 8, !tbaa !9
  %967 = getelementptr inbounds %struct.TestDesc, ptr %966, i32 0, i32 0
  %968 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %967) #11
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef %968)
          to label %969 unwind label %1007

969:                                              ; preds = %965
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #11
  %970 = load ptr, ptr %72, align 8, !tbaa !9
  %971 = getelementptr inbounds %struct.TestDesc, ptr %970, i32 0, i32 0
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %971)
          to label %972 unwind label %1012

972:                                              ; preds = %969
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %973 unwind label %1016

973:                                              ; preds = %972
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.24)
          to label %974 unwind label %1020

974:                                              ; preds = %973
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #11
  %975 = load ptr, ptr %72, align 8, !tbaa !9
  %976 = getelementptr inbounds %struct.TestDesc, ptr %975, i32 0, i32 0
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %976)
          to label %977 unwind label %1026

977:                                              ; preds = %974
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %978 unwind label %1030

978:                                              ; preds = %977
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.25)
          to label %979 unwind label %1034

979:                                              ; preds = %978
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %980 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %981 unwind label %1040

981:                                              ; preds = %979
  %982 = getelementptr inbounds %struct.Timestamp, ptr %97, i32 0, i32 0
  store i64 %980, ptr %982, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  %983 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %984 unwind label %1044

984:                                              ; preds = %981
  %985 = getelementptr inbounds %struct.Timestamp, ptr %98, i32 0, i32 0
  store i64 %983, ptr %985, align 8
  %986 = load i8, ptr %59, align 1, !tbaa !59, !range !60, !noundef !61
  %987 = trunc i8 %986 to i1
  br i1 %987, label %988, label %1057

988:                                              ; preds = %984
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  %989 = invoke i64 @_ZN9Timestamp13infinite_pastEv()
          to label %990 unwind label %1048

990:                                              ; preds = %988
  %991 = getelementptr inbounds %struct.Timestamp, ptr %99, i32 0, i32 0
  store i64 %989, ptr %991, align 8
  %992 = invoke noundef zeroext i1 @_ZNK9TimestampeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(8) %99)
          to label %993 unwind label %1048

993:                                              ; preds = %990
  br i1 %992, label %994, label %997

994:                                              ; preds = %993
  %995 = invoke noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %996 unwind label %1048

996:                                              ; preds = %994
  br label %997

997:                                              ; preds = %996, %993
  %998 = phi i1 [ false, %993 ], [ %995, %996 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  br i1 %998, label %999, label %1056

999:                                              ; preds = %997
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #11
  %1000 = invoke i64 @_ZN9Timestamp13infinite_pastEv()
          to label %1001 unwind label %1052

1001:                                             ; preds = %999
  %1002 = getelementptr inbounds %struct.Timestamp, ptr %100, i32 0, i32 0
  store i64 %1000, ptr %1002, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %97, ptr align 8 %100, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #11
  br label %1056

1003:                                             ; preds = %964
  %1004 = landingpad { ptr, i32 }
          cleanup
  %1005 = extractvalue { ptr, i32 } %1004, 0
  store ptr %1005, ptr %8, align 8
  %1006 = extractvalue { ptr, i32 } %1004, 1
  store i32 %1006, ptr %9, align 4
  br label %1011

1007:                                             ; preds = %965
  %1008 = landingpad { ptr, i32 }
          cleanup
  %1009 = extractvalue { ptr, i32 } %1008, 0
  store ptr %1009, ptr %8, align 8
  %1010 = extractvalue { ptr, i32 } %1008, 1
  store i32 %1010, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #11
  br label %1011

1011:                                             ; preds = %1007, %1003
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #11
  br label %1495

1012:                                             ; preds = %969
  %1013 = landingpad { ptr, i32 }
          cleanup
  %1014 = extractvalue { ptr, i32 } %1013, 0
  store ptr %1014, ptr %8, align 8
  %1015 = extractvalue { ptr, i32 } %1013, 1
  store i32 %1015, ptr %9, align 4
  br label %1025

1016:                                             ; preds = %972
  %1017 = landingpad { ptr, i32 }
          cleanup
  %1018 = extractvalue { ptr, i32 } %1017, 0
  store ptr %1018, ptr %8, align 8
  %1019 = extractvalue { ptr, i32 } %1017, 1
  store i32 %1019, ptr %9, align 4
  br label %1024

1020:                                             ; preds = %973
  %1021 = landingpad { ptr, i32 }
          cleanup
  %1022 = extractvalue { ptr, i32 } %1021, 0
  store ptr %1022, ptr %8, align 8
  %1023 = extractvalue { ptr, i32 } %1021, 1
  store i32 %1023, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #11
  br label %1024

1024:                                             ; preds = %1020, %1016
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #11
  br label %1025

1025:                                             ; preds = %1024, %1012
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #11
  br label %1494

1026:                                             ; preds = %974
  %1027 = landingpad { ptr, i32 }
          cleanup
  %1028 = extractvalue { ptr, i32 } %1027, 0
  store ptr %1028, ptr %8, align 8
  %1029 = extractvalue { ptr, i32 } %1027, 1
  store i32 %1029, ptr %9, align 4
  br label %1039

1030:                                             ; preds = %977
  %1031 = landingpad { ptr, i32 }
          cleanup
  %1032 = extractvalue { ptr, i32 } %1031, 0
  store ptr %1032, ptr %8, align 8
  %1033 = extractvalue { ptr, i32 } %1031, 1
  store i32 %1033, ptr %9, align 4
  br label %1038

1034:                                             ; preds = %978
  %1035 = landingpad { ptr, i32 }
          cleanup
  %1036 = extractvalue { ptr, i32 } %1035, 0
  store ptr %1036, ptr %8, align 8
  %1037 = extractvalue { ptr, i32 } %1035, 1
  store i32 %1037, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  br label %1038

1038:                                             ; preds = %1034, %1030
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  br label %1039

1039:                                             ; preds = %1038, %1026
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #11
  br label %1493

1040:                                             ; preds = %979
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %8, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %9, align 4
  br label %1492

1044:                                             ; preds = %1355, %981
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %8, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %9, align 4
  br label %1491

1048:                                             ; preds = %994, %990, %988
  %1049 = landingpad { ptr, i32 }
          cleanup
  %1050 = extractvalue { ptr, i32 } %1049, 0
  store ptr %1050, ptr %8, align 8
  %1051 = extractvalue { ptr, i32 } %1049, 1
  store i32 %1051, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  br label %1491

1052:                                             ; preds = %999
  %1053 = landingpad { ptr, i32 }
          cleanup
  %1054 = extractvalue { ptr, i32 } %1053, 0
  store ptr %1054, ptr %8, align 8
  %1055 = extractvalue { ptr, i32 } %1053, 1
  store i32 %1055, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #11
  br label %1491

1056:                                             ; preds = %1001, %997
  br label %1057

1057:                                             ; preds = %1056, %984
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #11
  store i1 false, ptr %104, align 1
  store i1 false, ptr %105, align 1
  %1058 = invoke i64 @_ZN9Timestamp13infinite_pastEv()
          to label %1059 unwind label %1103

1059:                                             ; preds = %1057
  %1060 = getelementptr inbounds %struct.Timestamp, ptr %101, i32 0, i32 0
  store i64 %1058, ptr %1060, align 8
  %1061 = invoke noundef zeroext i1 @_ZNK9TimestampeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %1062 unwind label %1103

1062:                                             ; preds = %1059
  br i1 %1061, label %1083, label %1063

1063:                                             ; preds = %1062
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #11
  store i1 true, ptr %104, align 1
  %1064 = load ptr, ptr %72, align 8, !tbaa !9
  %1065 = getelementptr inbounds %struct.TestDesc, ptr %1064, i32 0, i32 1
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %1065)
          to label %1066 unwind label %1107

1066:                                             ; preds = %1063
  store i1 true, ptr %105, align 1
  %1067 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1068 unwind label %1111

1068:                                             ; preds = %1066
  %1069 = getelementptr inbounds %struct.Timestamp, ptr %102, i32 0, i32 0
  store i64 %1067, ptr %1069, align 8
  %1070 = invoke noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %1071 unwind label %1111

1071:                                             ; preds = %1068
  br i1 %1070, label %1083, label %1072

1072:                                             ; preds = %1071
  %1073 = load i8, ptr %60, align 1, !tbaa !59, !range !60, !noundef !61
  %1074 = trunc i8 %1073 to i1
  br i1 %1074, label %1081, label %1075

1075:                                             ; preds = %1072
  %1076 = load i8, ptr %59, align 1, !tbaa !59, !range !60, !noundef !61
  %1077 = trunc i8 %1076 to i1
  br i1 %1077, label %1081, label %1078

1078:                                             ; preds = %1075
  %1079 = invoke noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %61)
          to label %1080 unwind label %1111

1080:                                             ; preds = %1078
  br label %1081

1081:                                             ; preds = %1080, %1075, %1072
  %1082 = phi i1 [ false, %1075 ], [ false, %1072 ], [ %1079, %1080 ]
  br label %1083

1083:                                             ; preds = %1081, %1071, %1062
  %1084 = phi i1 [ true, %1071 ], [ true, %1062 ], [ %1082, %1081 ]
  %1085 = load i1, ptr %105, align 1
  br i1 %1085, label %1086, label %1087

1086:                                             ; preds = %1083
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #11
  br label %1087

1087:                                             ; preds = %1086, %1083
  %1088 = load i1, ptr %104, align 1
  br i1 %1088, label %1089, label %1090

1089:                                             ; preds = %1087
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #11
  br label %1090

1090:                                             ; preds = %1089, %1087
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  br i1 %1084, label %1091, label %1320

1091:                                             ; preds = %1090
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #11
  store i8 0, ptr %106, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #11
  %1092 = load ptr, ptr %72, align 8, !tbaa !9
  %1093 = getelementptr inbounds %struct.TestDesc, ptr %1092, i32 0, i32 2
  store ptr %1093, ptr %107, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  %1094 = load ptr, ptr %107, align 8, !tbaa !9
  %1095 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1094) #11
  %1096 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.36", ptr %108, i32 0, i32 0
  store ptr %1095, ptr %1096, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  %1097 = load ptr, ptr %107, align 8, !tbaa !9
  %1098 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1097) #11
  %1099 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.36", ptr %109, i32 0, i32 0
  store ptr %1098, ptr %1099, align 8
  br label %1100

1100:                                             ; preds = %1187, %1091
  %1101 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 8 dereferenceable(8) %109) #11
  br i1 %1101, label %1123, label %1102

1102:                                             ; preds = %1100
  store i32 38, ptr %10, align 4
  br label %1192

1103:                                             ; preds = %1059, %1057
  %1104 = landingpad { ptr, i32 }
          cleanup
  %1105 = extractvalue { ptr, i32 } %1104, 0
  store ptr %1105, ptr %8, align 8
  %1106 = extractvalue { ptr, i32 } %1104, 1
  store i32 %1106, ptr %9, align 4
  br label %1122

1107:                                             ; preds = %1063
  %1108 = landingpad { ptr, i32 }
          cleanup
  %1109 = extractvalue { ptr, i32 } %1108, 0
  store ptr %1109, ptr %8, align 8
  %1110 = extractvalue { ptr, i32 } %1108, 1
  store i32 %1110, ptr %9, align 4
  br label %1118

1111:                                             ; preds = %1078, %1068, %1066
  %1112 = landingpad { ptr, i32 }
          cleanup
  %1113 = extractvalue { ptr, i32 } %1112, 0
  store ptr %1113, ptr %8, align 8
  %1114 = extractvalue { ptr, i32 } %1112, 1
  store i32 %1114, ptr %9, align 4
  %1115 = load i1, ptr %105, align 1
  br i1 %1115, label %1116, label %1117

1116:                                             ; preds = %1111
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #11
  br label %1117

1117:                                             ; preds = %1116, %1111
  br label %1118

1118:                                             ; preds = %1117, %1107
  %1119 = load i1, ptr %104, align 1
  br i1 %1119, label %1120, label %1121

1120:                                             ; preds = %1118
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #11
  br label %1121

1121:                                             ; preds = %1120, %1118
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  br label %1122

1122:                                             ; preds = %1121, %1103
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  br label %1491

1123:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #11
  %1124 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %108) #11
  store ptr %1124, ptr %110, align 8, !tbaa !9
  %1125 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %1126 unwind label %1150

1126:                                             ; preds = %1123
  %1127 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1125) #11
  %1128 = call i32 @mkdir(ptr noundef %1127, i32 noundef 493) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #11
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.26)
          to label %1129 unwind label %1154

1129:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #11
  %1130 = load ptr, ptr %110, align 8, !tbaa !9
  %1131 = getelementptr inbounds %"struct.std::pair", ptr %1130, i32 0, i32 0
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %1131)
          to label %1132 unwind label %1158

1132:                                             ; preds = %1129
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %111, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %1133 unwind label %1162

1133:                                             ; preds = %1132
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #11
  %1134 = load ptr, ptr %110, align 8, !tbaa !9
  %1135 = getelementptr inbounds %"struct.std::pair", ptr %1134, i32 0, i32 1
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %1136 unwind label %1168

1136:                                             ; preds = %1133
  %1137 = invoke noundef zeroext i1 @_Z12run_compilerRK7OptionsRKN7helpers4pathES5_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISC_EES3_b(ptr noundef nonnull align 8 dereferenceable(89) %6, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(24) %1135, ptr noundef %114, i1 noundef zeroext true)
          to label %1138 unwind label %1172

1138:                                             ; preds = %1136
  %1139 = xor i1 %1137, true
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br i1 %1139, label %1140, label %1180

1140:                                             ; preds = %1138
  br label %1141

1141:                                             ; preds = %1140
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #11
  %1142 = getelementptr inbounds %class.anon.37, ptr %116, i32 0, i32 0
  store ptr %111, ptr %1142, align 8, !tbaa !9
  %1143 = getelementptr inbounds %class.anon.37, ptr %116, i32 0, i32 1
  %1144 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %1144, ptr %1143, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(16) %116) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %115)
          to label %1145 unwind label %1176

1145:                                             ; preds = %1141
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #11
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146
  %1148 = load i32, ptr %66, align 4, !tbaa !5
  %1149 = add i32 %1148, 1
  store i32 %1149, ptr %66, align 4, !tbaa !5
  store i8 1, ptr %106, align 1, !tbaa !59
  store i32 38, ptr %10, align 4
  br label %1181

1150:                                             ; preds = %1123
  %1151 = landingpad { ptr, i32 }
          cleanup
  %1152 = extractvalue { ptr, i32 } %1151, 0
  store ptr %1152, ptr %8, align 8
  %1153 = extractvalue { ptr, i32 } %1151, 1
  store i32 %1153, ptr %9, align 4
  br label %1191

1154:                                             ; preds = %1126
  %1155 = landingpad { ptr, i32 }
          cleanup
  %1156 = extractvalue { ptr, i32 } %1155, 0
  store ptr %1156, ptr %8, align 8
  %1157 = extractvalue { ptr, i32 } %1155, 1
  store i32 %1157, ptr %9, align 4
  br label %1167

1158:                                             ; preds = %1129
  %1159 = landingpad { ptr, i32 }
          cleanup
  %1160 = extractvalue { ptr, i32 } %1159, 0
  store ptr %1160, ptr %8, align 8
  %1161 = extractvalue { ptr, i32 } %1159, 1
  store i32 %1161, ptr %9, align 4
  br label %1166

1162:                                             ; preds = %1132
  %1163 = landingpad { ptr, i32 }
          cleanup
  %1164 = extractvalue { ptr, i32 } %1163, 0
  store ptr %1164, ptr %8, align 8
  %1165 = extractvalue { ptr, i32 } %1163, 1
  store i32 %1165, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  br label %1166

1166:                                             ; preds = %1162, %1158
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #11
  br label %1167

1167:                                             ; preds = %1166, %1154
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #11
  br label %1190

1168:                                             ; preds = %1133
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %8, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %9, align 4
  br label %1189

1172:                                             ; preds = %1136
  %1173 = landingpad { ptr, i32 }
          cleanup
  %1174 = extractvalue { ptr, i32 } %1173, 0
  store ptr %1174, ptr %8, align 8
  %1175 = extractvalue { ptr, i32 } %1173, 1
  store i32 %1175, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br label %1189

1176:                                             ; preds = %1141
  %1177 = landingpad { ptr, i32 }
          cleanup
  %1178 = extractvalue { ptr, i32 } %1177, 0
  store ptr %1178, ptr %8, align 8
  %1179 = extractvalue { ptr, i32 } %1177, 1
  store i32 %1179, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #11
  br label %1189

1180:                                             ; preds = %1138
  store i32 0, ptr %10, align 4
  br label %1181

1181:                                             ; preds = %1180, %1147
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #11
  %1182 = load i32, ptr %10, align 4
  switch i32 %1182, label %1184 [
    i32 0, label %1183
  ]

1183:                                             ; preds = %1181
  store i32 0, ptr %10, align 4
  br label %1184

1184:                                             ; preds = %1183, %1181
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  %1185 = load i32, ptr %10, align 4
  switch i32 %1185, label %1192 [
    i32 0, label %1186
  ]

1186:                                             ; preds = %1184
  br label %1187

1187:                                             ; preds = %1186
  %1188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %108) #11
  br label %1100

1189:                                             ; preds = %1176, %1172, %1168
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  br label %1190

1190:                                             ; preds = %1189, %1167
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #11
  br label %1191

1191:                                             ; preds = %1190, %1150
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #11
  br label %1319

1192:                                             ; preds = %1184, %1102
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #11
  br label %1193

1193:                                             ; preds = %1192
  %1194 = load i8, ptr %106, align 1, !tbaa !59, !range !60, !noundef !61
  %1195 = trunc i8 %1194 to i1
  br i1 %1195, label %1196, label %1202

1196:                                             ; preds = %1193
  %1197 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 9
  %1198 = load i8, ptr %1197, align 8, !tbaa !63, !range !60, !noundef !61
  %1199 = trunc i8 %1198 to i1
  br i1 %1199, label %1200, label %1201

1200:                                             ; preds = %1196
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %1310

1201:                                             ; preds = %1196
  store i32 29, ptr %10, align 4
  br label %1310

1202:                                             ; preds = %1193
  %1203 = load ptr, ptr %72, align 8, !tbaa !9
  %1204 = getelementptr inbounds %struct.TestDesc, ptr %1203, i32 0, i32 2
  %1205 = call noundef zeroext i1 @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %1204) #11
  br i1 %1205, label %1206, label %1213

1206:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #11
  invoke void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %1207 unwind label %1209

1207:                                             ; preds = %1206
  %1208 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #11
  br label %1213

1209:                                             ; preds = %1206
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %8, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #11
  br label %1319

1213:                                             ; preds = %1207, %1202
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #11
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.5)
          to label %1214 unwind label %1247

1214:                                             ; preds = %1213
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #11
  %1215 = load ptr, ptr %72, align 8, !tbaa !9
  %1216 = getelementptr inbounds %struct.TestDesc, ptr %1215, i32 0, i32 1
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %1216)
          to label %1217 unwind label %1251

1217:                                             ; preds = %1214
  %1218 = load ptr, ptr %72, align 8, !tbaa !9
  %1219 = getelementptr inbounds %struct.TestDesc, ptr %1218, i32 0, i32 3
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %1220 unwind label %1255

1220:                                             ; preds = %1217
  %1221 = invoke noundef zeroext i1 @_Z12run_compilerRK7OptionsRKN7helpers4pathES5_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISC_EES3_b(ptr noundef nonnull align 8 dereferenceable(89) %6, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 8 dereferenceable(24) %1219, ptr noundef %121, i1 noundef zeroext false)
          to label %1222 unwind label %1259

1222:                                             ; preds = %1220
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #11
  %1223 = zext i1 %1221 to i8
  store i8 %1223, ptr %119, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 520, ptr %122) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #11
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1224 unwind label %1265

1224:                                             ; preds = %1222
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %122, ptr noundef nonnull align 8 dereferenceable(32) %123, i32 noundef 8)
          to label %1225 unwind label %1269

1225:                                             ; preds = %1224
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #11
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %122) #11
  call void @llvm.lifetime.end.p0(i64 520, ptr %122) #11
  %1226 = load i8, ptr %119, align 1, !tbaa !59, !range !60, !noundef !61
  %1227 = trunc i8 %1226 to i1
  br i1 %1227, label %1280, label %1228

1228:                                             ; preds = %1225
  %1229 = load ptr, ptr %72, align 8, !tbaa !9
  %1230 = getelementptr inbounds %struct.TestDesc, ptr %1229, i32 0, i32 7
  %1231 = load i8, ptr %1230, align 2, !tbaa !54, !range !60, !noundef !61
  %1232 = trunc i8 %1231 to i1
  br i1 %1232, label %1279, label %1233

1233:                                             ; preds = %1228
  br label %1234

1234:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #11
  %1235 = getelementptr inbounds %class.anon.38, ptr %125, i32 0, i32 0
  %1236 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %1236, ptr %1235, align 8, !tbaa !9
  %1237 = getelementptr inbounds %class.anon.38, ptr %125, i32 0, i32 1
  store ptr %118, ptr %1237, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(16) %125) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %124)
          to label %1238 unwind label %1274

1238:                                             ; preds = %1234
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #11
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1239
  %1241 = load i32, ptr %66, align 4, !tbaa !5
  %1242 = add i32 %1241, 1
  store i32 %1242, ptr %66, align 4, !tbaa !5
  %1243 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 9
  %1244 = load i8, ptr %1243, align 8, !tbaa !63, !range !60, !noundef !61
  %1245 = trunc i8 %1244 to i1
  br i1 %1245, label %1246, label %1278

1246:                                             ; preds = %1240
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %1309

1247:                                             ; preds = %1213
  %1248 = landingpad { ptr, i32 }
          cleanup
  %1249 = extractvalue { ptr, i32 } %1248, 0
  store ptr %1249, ptr %8, align 8
  %1250 = extractvalue { ptr, i32 } %1248, 1
  store i32 %1250, ptr %9, align 4
  br label %1318

1251:                                             ; preds = %1214
  %1252 = landingpad { ptr, i32 }
          cleanup
  %1253 = extractvalue { ptr, i32 } %1252, 0
  store ptr %1253, ptr %8, align 8
  %1254 = extractvalue { ptr, i32 } %1252, 1
  store i32 %1254, ptr %9, align 4
  br label %1264

1255:                                             ; preds = %1217
  %1256 = landingpad { ptr, i32 }
          cleanup
  %1257 = extractvalue { ptr, i32 } %1256, 0
  store ptr %1257, ptr %8, align 8
  %1258 = extractvalue { ptr, i32 } %1256, 1
  store i32 %1258, ptr %9, align 4
  br label %1263

1259:                                             ; preds = %1220
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %8, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #11
  br label %1263

1263:                                             ; preds = %1259, %1255
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #11
  br label %1264

1264:                                             ; preds = %1263, %1251
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #11
  br label %1317

1265:                                             ; preds = %1222
  %1266 = landingpad { ptr, i32 }
          cleanup
  %1267 = extractvalue { ptr, i32 } %1266, 0
  store ptr %1267, ptr %8, align 8
  %1268 = extractvalue { ptr, i32 } %1266, 1
  store i32 %1268, ptr %9, align 4
  br label %1273

1269:                                             ; preds = %1224
  %1270 = landingpad { ptr, i32 }
          cleanup
  %1271 = extractvalue { ptr, i32 } %1270, 0
  store ptr %1271, ptr %8, align 8
  %1272 = extractvalue { ptr, i32 } %1270, 1
  store i32 %1272, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #11
  br label %1273

1273:                                             ; preds = %1269, %1265
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #11
  call void @llvm.lifetime.end.p0(i64 520, ptr %122) #11
  br label %1317

1274:                                             ; preds = %1234
  %1275 = landingpad { ptr, i32 }
          cleanup
  %1276 = extractvalue { ptr, i32 } %1275, 0
  store ptr %1276, ptr %8, align 8
  %1277 = extractvalue { ptr, i32 } %1275, 1
  store i32 %1277, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #11
  br label %1317

1278:                                             ; preds = %1240
  store i32 29, ptr %10, align 4
  br label %1309

1279:                                             ; preds = %1228
  br label %1305

1280:                                             ; preds = %1225
  %1281 = load ptr, ptr %72, align 8, !tbaa !9
  %1282 = getelementptr inbounds %struct.TestDesc, ptr %1281, i32 0, i32 7
  %1283 = load i8, ptr %1282, align 2, !tbaa !54, !range !60, !noundef !61
  %1284 = trunc i8 %1283 to i1
  br i1 %1284, label %1285, label %1304

1285:                                             ; preds = %1280
  br label %1286

1286:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #11
  %1287 = getelementptr inbounds %class.anon.39, ptr %127, i32 0, i32 0
  %1288 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %1288, ptr %1287, align 8, !tbaa !9
  %1289 = getelementptr inbounds %class.anon.39, ptr %127, i32 0, i32 1
  store ptr %118, ptr %1289, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %126)
          to label %1290 unwind label %1299

1290:                                             ; preds = %1286
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291
  %1293 = load i32, ptr %66, align 4, !tbaa !5
  %1294 = add i32 %1293, 1
  store i32 %1294, ptr %66, align 4, !tbaa !5
  %1295 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 9
  %1296 = load i8, ptr %1295, align 8, !tbaa !63, !range !60, !noundef !61
  %1297 = trunc i8 %1296 to i1
  br i1 %1297, label %1298, label %1303

1298:                                             ; preds = %1292
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %1309

1299:                                             ; preds = %1286
  %1300 = landingpad { ptr, i32 }
          cleanup
  %1301 = extractvalue { ptr, i32 } %1300, 0
  store ptr %1301, ptr %8, align 8
  %1302 = extractvalue { ptr, i32 } %1300, 1
  store i32 %1302, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  br label %1317

1303:                                             ; preds = %1292
  store i32 29, ptr %10, align 4
  br label %1309

1304:                                             ; preds = %1280
  br label %1305

1305:                                             ; preds = %1304, %1279
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #11
  %1306 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1307 unwind label %1313

1307:                                             ; preds = %1305
  %1308 = getelementptr inbounds %struct.Timestamp, ptr %128, i32 0, i32 0
  store i64 %1306, ptr %1308, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %97, ptr align 8 %128, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  store i32 0, ptr %10, align 4
  br label %1309

1309:                                             ; preds = %1307, %1303, %1298, %1278, %1246
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #11
  br label %1310

1310:                                             ; preds = %1309, %1201, %1200
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #11
  %1311 = load i32, ptr %10, align 4
  switch i32 %1311, label %1483 [
    i32 0, label %1312
  ]

1312:                                             ; preds = %1310
  br label %1320

1313:                                             ; preds = %1305
  %1314 = landingpad { ptr, i32 }
          cleanup
  %1315 = extractvalue { ptr, i32 } %1314, 0
  store ptr %1315, ptr %8, align 8
  %1316 = extractvalue { ptr, i32 } %1314, 1
  store i32 %1316, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  br label %1317

1317:                                             ; preds = %1313, %1299, %1274, %1273, %1264
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #11
  br label %1318

1318:                                             ; preds = %1317, %1247
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #11
  br label %1319

1319:                                             ; preds = %1318, %1209, %1191
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #11
  br label %1491

1320:                                             ; preds = %1312, %1090
  %1321 = load ptr, ptr %72, align 8, !tbaa !9
  %1322 = getelementptr inbounds %struct.TestDesc, ptr %1321, i32 0, i32 6
  %1323 = load i8, ptr %1322, align 1, !tbaa !56, !range !60, !noundef !61
  %1324 = trunc i8 %1323 to i1
  br i1 %1324, label %1325, label %1355

1325:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 512, ptr %129) #11
  %1326 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1327 unwind label %1341

1327:                                             ; preds = %1325
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %129, ptr noundef nonnull align 8 dereferenceable(32) %1326, i32 noundef 16)
          to label %1328 unwind label %1341

1328:                                             ; preds = %1327
  %1329 = invoke noundef nonnull align 8 dereferenceable(248) ptr @_ZStlsISt14basic_ofstreamIcSt11char_traitsIcEEA1_cEOT_S6_RKT0_(ptr noundef nonnull align 8 dereferenceable(248) %129, ptr noundef nonnull align 1 dereferenceable(1) @.str.11)
          to label %1330 unwind label %1345

1330:                                             ; preds = %1328
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %129) #11
  call void @llvm.lifetime.end.p0(i64 512, ptr %129) #11
  %1331 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 6
  %1332 = load i32, ptr %1331, align 8, !tbaa !32
  %1333 = icmp sgt i32 %1332, 0
  br i1 %1333, label %1334, label %1354

1334:                                             ; preds = %1330
  br label %1335

1335:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #11
  %1336 = getelementptr inbounds %class.anon.40, ptr %131, i32 0, i32 0
  %1337 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %1337, ptr %1336, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(8) %131) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %130)
          to label %1338 unwind label %1350

1338:                                             ; preds = %1335
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  br label %1339

1339:                                             ; preds = %1338
  br label %1340

1340:                                             ; preds = %1339
  br label %1354

1341:                                             ; preds = %1327, %1325
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %8, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %9, align 4
  br label %1349

1345:                                             ; preds = %1328
  %1346 = landingpad { ptr, i32 }
          cleanup
  %1347 = extractvalue { ptr, i32 } %1346, 0
  store ptr %1347, ptr %8, align 8
  %1348 = extractvalue { ptr, i32 } %1346, 1
  store i32 %1348, ptr %9, align 4
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %129) #11
  br label %1349

1349:                                             ; preds = %1345, %1341
  call void @llvm.lifetime.end.p0(i64 512, ptr %129) #11
  br label %1491

1350:                                             ; preds = %1335
  %1351 = landingpad { ptr, i32 }
          cleanup
  %1352 = extractvalue { ptr, i32 } %1351, 0
  store ptr %1352, ptr %8, align 8
  %1353 = extractvalue { ptr, i32 } %1351, 1
  store i32 %1353, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  br label %1491

1354:                                             ; preds = %1340, %1330
  br label %1480

1355:                                             ; preds = %1320
  %1356 = invoke noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1357 unwind label %1044

1357:                                             ; preds = %1355
  br i1 %1356, label %1358, label %1463

1358:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #11
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %132, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.27)
          to label %1359 unwind label %1403

1359:                                             ; preds = %1358
  call void @llvm.lifetime.start.p0(i64 24, ptr %133) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #11
  %1360 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %1361 unwind label %1407

1361:                                             ; preds = %1359
  %1362 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1360) #11
  store ptr %1362, ptr %135, align 8, !tbaa !9
  %1363 = getelementptr inbounds %"class.std::initializer_list", ptr %134, i32 0, i32 0
  store ptr %135, ptr %1363, align 8, !tbaa !64
  %1364 = getelementptr inbounds %"class.std::initializer_list", ptr %134, i32 0, i32 1
  store i64 1, ptr %1364, align 8, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 1, ptr %136) #11
  call void @_ZNSaIPKcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #11
  %1365 = getelementptr inbounds { ptr, i64 }, ptr %134, i32 0, i32 0
  %1366 = load ptr, ptr %1365, align 8
  %1367 = getelementptr inbounds { ptr, i64 }, ptr %134, i32 0, i32 1
  %1368 = load i64, ptr %1367, align 8
  invoke void @_ZNSt6vectorIPKcSaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %133, ptr %1366, i64 %1368, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %1369 unwind label %1411

1369:                                             ; preds = %1361
  %1370 = invoke noundef zeroext i1 @_Z14run_executableRKN7helpers4pathERKSt6vectorIPKcSaIS5_EES2_j(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 8 dereferenceable(24) %133, ptr noundef nonnull align 8 dereferenceable(32) %132, i32 noundef 10)
          to label %1371 unwind label %1415

1371:                                             ; preds = %1369
  %1372 = xor i1 %1370, true
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %133) #11
  call void @_ZNSt15__new_allocatorIPKcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %133) #11
  br i1 %1372, label %1373, label %1441

1373:                                             ; preds = %1371
  br label %1374

1374:                                             ; preds = %1373
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #11
  %1375 = getelementptr inbounds %class.anon.41, ptr %138, i32 0, i32 0
  %1376 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %1376, ptr %1375, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(8) %138) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %137)
          to label %1377 unwind label %1421

1377:                                             ; preds = %1374
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  br label %1378

1378:                                             ; preds = %1377
  br label %1379

1379:                                             ; preds = %1378
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #11
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %139, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.28)
          to label %1380 unwind label %1425

1380:                                             ; preds = %1379
  %1381 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1382 unwind label %1429

1382:                                             ; preds = %1380
  %1383 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1381) #11
  %1384 = call i32 @remove(ptr noundef %1383) #11
  %1385 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %132)
          to label %1386 unwind label %1429

1386:                                             ; preds = %1382
  %1387 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1385) #11
  %1388 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1389 unwind label %1429

1389:                                             ; preds = %1386
  %1390 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1388) #11
  %1391 = call i32 @rename(ptr noundef %1387, ptr noundef %1390) #11
  br label %1392

1392:                                             ; preds = %1389
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #11
  %1393 = getelementptr inbounds %class.anon.42, ptr %141, i32 0, i32 0
  store ptr %139, ptr %1393, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(8) %141) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %140)
          to label %1394 unwind label %1433

1394:                                             ; preds = %1392
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #11
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  %1397 = load i32, ptr %67, align 4, !tbaa !5
  %1398 = add i32 %1397, 1
  store i32 %1398, ptr %67, align 4, !tbaa !5
  %1399 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 9
  %1400 = load i8, ptr %1399, align 8, !tbaa !63, !range !60, !noundef !61
  %1401 = trunc i8 %1400 to i1
  br i1 %1401, label %1402, label %1437

1402:                                             ; preds = %1396
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %1438

1403:                                             ; preds = %1358
  %1404 = landingpad { ptr, i32 }
          cleanup
  %1405 = extractvalue { ptr, i32 } %1404, 0
  store ptr %1405, ptr %8, align 8
  %1406 = extractvalue { ptr, i32 } %1404, 1
  store i32 %1406, ptr %9, align 4
  br label %1462

1407:                                             ; preds = %1359
  %1408 = landingpad { ptr, i32 }
          cleanup
  %1409 = extractvalue { ptr, i32 } %1408, 0
  store ptr %1409, ptr %8, align 8
  %1410 = extractvalue { ptr, i32 } %1408, 1
  store i32 %1410, ptr %9, align 4
  br label %1420

1411:                                             ; preds = %1361
  %1412 = landingpad { ptr, i32 }
          cleanup
  %1413 = extractvalue { ptr, i32 } %1412, 0
  store ptr %1413, ptr %8, align 8
  %1414 = extractvalue { ptr, i32 } %1412, 1
  store i32 %1414, ptr %9, align 4
  br label %1419

1415:                                             ; preds = %1369
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %8, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %9, align 4
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %133) #11
  br label %1419

1419:                                             ; preds = %1415, %1411
  call void @_ZNSt15__new_allocatorIPKcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #11
  br label %1420

1420:                                             ; preds = %1419, %1407
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %133) #11
  br label %1461

1421:                                             ; preds = %1374
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %8, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  br label %1461

1425:                                             ; preds = %1379
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %8, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %9, align 4
  br label %1440

1429:                                             ; preds = %1386, %1382, %1380
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %8, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %9, align 4
  br label %1439

1433:                                             ; preds = %1392
  %1434 = landingpad { ptr, i32 }
          cleanup
  %1435 = extractvalue { ptr, i32 } %1434, 0
  store ptr %1435, ptr %8, align 8
  %1436 = extractvalue { ptr, i32 } %1434, 1
  store i32 %1436, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #11
  br label %1439

1437:                                             ; preds = %1396
  store i32 29, ptr %10, align 4
  br label %1438

1438:                                             ; preds = %1437, %1402
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #11
  br label %1458

1439:                                             ; preds = %1433, %1429
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  br label %1440

1440:                                             ; preds = %1439, %1425
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #11
  br label %1461

1441:                                             ; preds = %1371
  %1442 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1443 unwind label %1453

1443:                                             ; preds = %1441
  %1444 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1442) #11
  %1445 = call i32 @remove(ptr noundef %1444) #11
  %1446 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %132)
          to label %1447 unwind label %1453

1447:                                             ; preds = %1443
  %1448 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1446) #11
  %1449 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1450 unwind label %1453

1450:                                             ; preds = %1447
  %1451 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1449) #11
  %1452 = call i32 @rename(ptr noundef %1448, ptr noundef %1451) #11
  br label %1457

1453:                                             ; preds = %1447, %1443, %1441
  %1454 = landingpad { ptr, i32 }
          cleanup
  %1455 = extractvalue { ptr, i32 } %1454, 0
  store ptr %1455, ptr %8, align 8
  %1456 = extractvalue { ptr, i32 } %1454, 1
  store i32 %1456, ptr %9, align 4
  br label %1461

1457:                                             ; preds = %1450
  store i32 0, ptr %10, align 4
  br label %1458

1458:                                             ; preds = %1457, %1438
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #11
  %1459 = load i32, ptr %10, align 4
  switch i32 %1459, label %1483 [
    i32 0, label %1460
  ]

1460:                                             ; preds = %1458
  br label %1479

1461:                                             ; preds = %1453, %1440, %1421, %1420
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #11
  br label %1462

1462:                                             ; preds = %1461, %1403
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #11
  br label %1491

1463:                                             ; preds = %1357
  %1464 = getelementptr inbounds %struct.Options, ptr %6, i32 0, i32 6
  %1465 = load i32, ptr %1464, align 8, !tbaa !32
  %1466 = icmp sgt i32 %1465, 0
  br i1 %1466, label %1467, label %1478

1467:                                             ; preds = %1463
  br label %1468

1468:                                             ; preds = %1467
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #11
  %1469 = getelementptr inbounds %class.anon.43, ptr %143, i32 0, i32 0
  %1470 = load ptr, ptr %72, align 8, !tbaa !9
  store ptr %1470, ptr %1469, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(8) %143) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %142)
          to label %1471 unwind label %1474

1471:                                             ; preds = %1468
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #11
  br label %1472

1472:                                             ; preds = %1471
  br label %1473

1473:                                             ; preds = %1472
  br label %1478

1474:                                             ; preds = %1468
  %1475 = landingpad { ptr, i32 }
          cleanup
  %1476 = extractvalue { ptr, i32 } %1475, 0
  store ptr %1476, ptr %8, align 8
  %1477 = extractvalue { ptr, i32 } %1475, 1
  store i32 %1477, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #11
  br label %1491

1478:                                             ; preds = %1473, %1463
  br label %1479

1479:                                             ; preds = %1478, %1460
  br label %1480

1480:                                             ; preds = %1479, %1354
  %1481 = load i32, ptr %68, align 4, !tbaa !5
  %1482 = add i32 %1481, 1
  store i32 %1482, ptr %68, align 4, !tbaa !5
  store i32 0, ptr %10, align 4
  br label %1483

1483:                                             ; preds = %1480, %1458, %1310
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #11
  %1484 = load i32, ptr %10, align 4
  switch i32 %1484, label %1486 [
    i32 0, label %1485
  ]

1485:                                             ; preds = %1483
  store i32 0, ptr %10, align 4
  br label %1486

1486:                                             ; preds = %1485, %1483, %961, %924, %903, %856
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  %1487 = load i32, ptr %10, align 4
  switch i32 %1487, label %1497 [
    i32 0, label %1488
    i32 29, label %1489
  ]

1488:                                             ; preds = %1486
  br label %1489

1489:                                             ; preds = %1488, %1486
  %1490 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS1_SaIS1_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #11
  br label %826

1491:                                             ; preds = %1474, %1462, %1350, %1349, %1319, %1122, %1052, %1048, %1044
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  br label %1492

1492:                                             ; preds = %1491, %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  br label %1493

1493:                                             ; preds = %1492, %1039
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #11
  br label %1494

1494:                                             ; preds = %1493, %1025
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  br label %1495

1495:                                             ; preds = %1494, %1011
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #11
  br label %1496

1496:                                             ; preds = %1495, %957, %953, %920, %899, %895, %857
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  br label %1540

1497:                                             ; preds = %1486, %828
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  %1498 = load i32, ptr %10, align 4
  switch i32 %1498, label %1537 [
    i32 28, label %1499
  ]

1499:                                             ; preds = %1497
  %1500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.29)
          to label %1501 unwind label %1532

1501:                                             ; preds = %1499
  %1502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1500, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1503 unwind label %1532

1503:                                             ; preds = %1501
  %1504 = load i32, ptr %68, align 4, !tbaa !5
  %1505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %1504)
          to label %1506 unwind label %1532

1506:                                             ; preds = %1503
  %1507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1505, ptr noundef @.str.30)
          to label %1508 unwind label %1532

1508:                                             ; preds = %1506
  %1509 = load i32, ptr %67, align 4, !tbaa !5
  %1510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %1507, i32 noundef %1509)
          to label %1511 unwind label %1532

1511:                                             ; preds = %1508
  %1512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1510, ptr noundef @.str.31)
          to label %1513 unwind label %1532

1513:                                             ; preds = %1511
  %1514 = load i32, ptr %66, align 4, !tbaa !5
  %1515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %1512, i32 noundef %1514)
          to label %1516 unwind label %1532

1516:                                             ; preds = %1513
  %1517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1515, ptr noundef @.str.32)
          to label %1518 unwind label %1532

1518:                                             ; preds = %1516
  %1519 = load i32, ptr %65, align 4, !tbaa !5
  %1520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %1517, i32 noundef %1519)
          to label %1521 unwind label %1532

1521:                                             ; preds = %1518
  %1522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1520, ptr noundef @.str.33)
          to label %1523 unwind label %1532

1523:                                             ; preds = %1521
  %1524 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1522, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1525 unwind label %1532

1525:                                             ; preds = %1523
  %1526 = load i32, ptr %67, align 4, !tbaa !5
  %1527 = icmp ugt i32 %1526, 0
  br i1 %1527, label %1531, label %1528

1528:                                             ; preds = %1525
  %1529 = load i32, ptr %66, align 4, !tbaa !5
  %1530 = icmp ugt i32 %1529, 0
  br i1 %1530, label %1531, label %1536

1531:                                             ; preds = %1528, %1525
  store i32 1, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %1537

1532:                                             ; preds = %1523, %1521, %1518, %1516, %1513, %1511, %1508, %1506, %1503, %1501, %1499
  %1533 = landingpad { ptr, i32 }
          cleanup
  %1534 = extractvalue { ptr, i32 } %1533, 0
  store ptr %1534, ptr %8, align 8
  %1535 = extractvalue { ptr, i32 } %1533, 1
  store i32 %1535, ptr %9, align 4
  br label %1540

1536:                                             ; preds = %1528
  store i32 0, ptr %10, align 4
  br label %1537

1537:                                             ; preds = %1536, %1531, %1497
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #11
  %1538 = load i32, ptr %10, align 4
  switch i32 %1538, label %1544 [
    i32 0, label %1539
  ]

1539:                                             ; preds = %1537
  store i32 0, ptr %3, align 4
  store i32 1, ptr %10, align 4
  br label %1544

1540:                                             ; preds = %1532, %1496
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %1541

1541:                                             ; preds = %1540, %847, %829
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  br label %1542

1542:                                             ; preds = %1541, %782, %315, %300
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  br label %1543

1543:                                             ; preds = %1542, %296
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #11
  call void @_ZNSt6vectorI8TestDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  br label %1545

1544:                                             ; preds = %1539, %1537
  call void @_ZNSt6vectorI8TestDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #11
  br label %1546

1545:                                             ; preds = %1543, %292
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #11
  br label %1547

1546:                                             ; preds = %1544, %260
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #11
  br label %1548

1547:                                             ; preds = %1545, %265
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #11
  br label %1550

1548:                                             ; preds = %1546, %157
  call void @_ZN7OptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %6) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr %6) #11
  %1549 = load i32, ptr %3, align 4
  ret i32 %1549

1550:                                             ; preds = %1547, %152
  call void @_ZN7OptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %6) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr %6) #11
  br label %1551

1551:                                             ; preds = %1550
  %1552 = load ptr, ptr %8, align 8
  %1553 = load i32, ptr %9, align 4
  %1554 = insertvalue { ptr, i32 } poison, ptr %1552, 0
  %1555 = insertvalue { ptr, i32 } %1554, i32 %1553, 1
  resume { ptr, i32 } %1555

1556:                                             ; preds = %759, %733, %291, %274, %254
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7Options5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef) #0 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

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

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN7helperslsERSoRKNS_4pathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #8

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264)) #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #8

; 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

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) #7

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isblank(i32 noundef) #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare ptr @opendir(ptr noundef) #4

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

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

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

declare void @__cxa_free_exception(ptr)

declare ptr @readdir(ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isspace(i32 noundef) #9

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isalnum(i32 noundef) #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN8TestDesc7MessageESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZZ4mainEN6ParserC2EPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZZ4mainENK6Parser6is_eofEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE9push_backEOS9_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(56)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 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)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8TestDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(139)) #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8TestDescD2Ev(ptr noundef nonnull align 8 dereferenceable(139)) unnamed_addr #3 align 2

declare i32 @closedir(ptr noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS2_SaIS2_EEEEZ4mainE4$_13EvT_S9_T0_"(ptr, ptr) #8

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i64 @_ZN9Timestamp13infinite_pastEv() #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(139) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS1_SaIS1_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEES7_ET_SD_SD_RKT0_(ptr, ptr, ptr noundef nonnull align 8 dereferenceable(32)) #8

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9TimestampeqERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(248) ptr @_ZStlsISt14basic_ofstreamIcSt11char_traitsIcEEA1_cEOT_S6_RKT0_(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef nonnull align 1 dereferenceable(1)) #8

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

; Function Attrs: nounwind
declare i32 @remove(ptr noundef) #7

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7OptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #3 align 2

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #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 = { mustprogress norecurse 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { 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 #9 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { noreturn }

!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 = !{!7, !7, i64 0}
!12 = !{!13, !10, i64 80}
!13 = !{!"_ZTS7Options", !10, i64 0, !10, i64 8, !14, i64 16, !18, i64 40, !14, i64 48, !6, i64 72, !10, i64 80, !18, i64 88}
!14 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!18 = !{!"bool", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"vtable pointer", !8, i64 0}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = !{!24, !24, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = distinct !{!25, !22}
!26 = !{!13, !10, i64 0}
!27 = !{!13, !10, i64 8}
!28 = distinct !{!28, !22}
!29 = !{!30, !6, i64 24}
!30 = !{!"_ZTS4stat", !24, i64 0, !24, i64 8, !24, i64 16, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !24, i64 40, !24, i64 48, !24, i64 56, !24, i64 64, !31, i64 72, !31, i64 88, !31, i64 104, !7, i64 120}
!31 = !{!"_ZTS8timespec", !24, i64 0, !24, i64 8}
!32 = !{!13, !6, i64 72}
!33 = !{!34, !18, i64 136}
!34 = !{!"_ZTS8TestDesc", !35, i64 0, !35, i64 32, !37, i64 64, !14, i64 88, !41, i64 112, !18, i64 136, !18, i64 137, !18, i64 138}
!35 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !36, i64 0, !24, i64 8, !7, i64 16}
!36 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!37 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEESaISA_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEESaISA_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEESaISA_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!41 = !{!"_ZTSSt6vectorIN8TestDesc7MessageESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN8TestDesc7MessageESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN8TestDesc7MessageESaIS1_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN8TestDesc7MessageESaIS1_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!45 = distinct !{!45, !22}
!46 = distinct !{!46, !22}
!47 = distinct !{!47, !22}
!48 = distinct !{!48, !22}
!49 = distinct !{!49, !22}
!50 = !{!51, !6, i64 0}
!51 = !{!"_ZTSN8TestDesc7MessageE", !6, i64 0, !52, i64 4, !35, i64 8}
!52 = !{!"_ZTSN8TestDesc7Message4TypeE", !7, i64 0}
!53 = !{!51, !52, i64 4}
!54 = !{!34, !18, i64 138}
!55 = distinct !{!55, !22}
!56 = !{!34, !18, i64 137}
!57 = distinct !{!57, !22}
!58 = distinct !{!58, !22}
!59 = !{!18, !18, i64 0}
!60 = !{i8 0, i8 2}
!61 = !{}
!62 = !{i64 0, i64 8, !23}
!63 = !{!13, !18, i64 88}
!64 = !{!65, !10, i64 0}
!65 = !{!"_ZTSSt16initializer_listIPKcE", !10, i64 0, !24, i64 8}
!66 = !{!65, !24, i64 8}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.helpers::path" = type { %"class.std::__cxx11::basic_string" }
%"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] }
%struct.Options = type <{ ptr, ptr, %"class.std::vector.3", i8, [7 x i8], %"class.std::vector.3", i32, [4 x i8], ptr, i8, [7 x i8] }>
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.sigaction = type { %union.anon.8, %struct.__sigset_t, i32, ptr }
%union.anon.8 = type { ptr }
%struct.__sigset_t = type { [16 x i64] }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.9 }
%union.anon.9 = type { i32 }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TestDesc, std::allocator<TestDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.stat = type { i64, i64, i64, i32, i32, i32, i32, i64, i64, i64, i64, %struct.timespec, %struct.timespec, %struct.timespec, [3 x i64] }
%struct.timespec = type { i64, i64 }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr }
%struct.TestDesc = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.16", %"class.std::vector.3", %"class.std::vector.21", i8, i8, i8, [5 x i8] }>
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl" }
%"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl" = type { %"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TestDesc::Message, std::allocator<TestDesc::Message>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.TestDesc::Message" = type { i32, i32, %"class.std::__cxx11::basic_string" }
%struct.Parser = type { ptr }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.3" }
%class.anon.26 = type { ptr }
%struct.Timestamp = type { i64 }
%"class.__gnu_cxx::__normal_iterator.27" = type { ptr }
%class.anon.29 = type { i8 }
%"class.__gnu_cxx::__normal_iterator.31" = type { ptr }
%class.anon.32 = type { i8 }
%class.anon.34 = type { ptr }
%class.anon.35 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.36" = type { ptr }
%class.anon.37 = type { ptr, ptr }
%class.anon.38 = type { ptr, ptr }
%class.anon.39 = type { ptr, ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%class.anon.40 = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }
%class.anon.41 = type { ptr }
%class.anon.42 = type { ptr }
%class.anon.43 = type { ptr }

@.str.5 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZL12gInterrupted = external hidden local_unnamed_addr global i8, align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.10 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.12 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.29 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z12run_compilerRK7OptionsRKN7helpers4pathES5_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISC_EES3_b(ptr noundef nonnull align 8 dereferenceable(89), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z14run_executableRKN7helpers4pathERKSt6vectorIPKcSaIS5_EES2_j(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #0

declare void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z15sigalrm_handleri(i32 noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z14sigint_handleri(i32 noundef) #2

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #5 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.Options, align 8
  %4 = alloca %struct.sigaction, align 8
  %5 = alloca %"class.std::vector.3", align 8
  %6 = alloca %"class.helpers::path", align 8
  %7 = alloca %"class.std::basic_ifstream", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.helpers::path", align 8
  %10 = alloca %"class.std::vector.10", align 8
  %11 = alloca %"class.helpers::path", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.helpers::path", align 8
  %14 = alloca %struct.stat, align 8
  %15 = alloca %"class.std::basic_ifstream", align 8
  %16 = alloca %"class.std::function", align 8
  %17 = alloca %class.anon, align 8
  %18 = alloca %struct.TestDesc, align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"struct.TestDesc::Message", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %struct.Parser, align 8
  %25 = alloca %"class.std::vector.3", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"struct.std::pair", align 8
  %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::function", align 8
  %34 = alloca %class.anon.26, align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %struct.Timestamp, align 8
  %38 = alloca %"class.helpers::path", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.27", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.27", align 8
  %41 = alloca %"class.std::function", align 8
  %42 = alloca %class.anon.29, align 1
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %45 = alloca %"class.std::function", align 8
  %46 = alloca %class.anon.32, align 1
  %47 = alloca %"class.std::function", align 8
  %48 = alloca %class.anon.34, align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.31", align 8
  %51 = alloca %"class.std::function", align 8
  %52 = alloca %class.anon.35, align 8
  %53 = alloca %"class.helpers::path", align 8
  %54 = alloca %"class.helpers::path", align 8
  %55 = alloca %"class.helpers::path", align 8
  %56 = alloca %"class.helpers::path", align 8
  %57 = alloca %"class.helpers::path", align 8
  %58 = alloca %"class.helpers::path", align 8
  %59 = alloca %"class.helpers::path", align 8
  %60 = alloca %"class.helpers::path", align 8
  %61 = alloca %struct.Timestamp, align 8
  %62 = alloca %struct.Timestamp, align 8
  %63 = alloca %struct.Timestamp, align 8
  %64 = alloca %struct.Timestamp, align 8
  %65 = alloca %struct.Timestamp, align 8
  %66 = alloca %"class.helpers::path", align 8
  %67 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %68 = alloca %"class.__gnu_cxx::__normal_iterator.36", align 8
  %69 = alloca %"class.helpers::path", align 8
  %70 = alloca %"class.helpers::path", align 8
  %71 = alloca %"class.helpers::path", align 8
  %72 = alloca %"class.helpers::path", align 8
  %73 = alloca %"class.std::function", align 8
  %74 = alloca %class.anon.37, align 8
  %75 = alloca %"class.helpers::path", align 8
  %76 = alloca %"class.helpers::path", align 8
  %77 = alloca %"class.helpers::path", align 8
  %78 = alloca %"class.helpers::path", align 8
  %79 = alloca %"class.std::basic_ifstream", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::function", align 8
  %82 = alloca %class.anon.38, align 8
  %83 = alloca %"class.std::function", align 8
  %84 = alloca %class.anon.39, align 8
  %85 = alloca %"class.std::basic_ofstream", align 8
  %86 = alloca %"class.std::function", align 8
  %87 = alloca %class.anon.40, align 8
  %88 = alloca %"class.helpers::path", align 8
  %89 = alloca %"class.std::vector", align 8
  %90 = alloca [1 x ptr], align 8
  %91 = alloca %"class.std::allocator.0", align 1
  %92 = alloca %"class.std::function", align 8
  %93 = alloca %class.anon.41, align 8
  %94 = alloca %"class.helpers::path", align 8
  %95 = alloca %"class.std::function", align 8
  %96 = alloca %class.anon.42, align 8
  %97 = alloca %"class.std::function", align 8
  %98 = alloca %class.anon.43, align 8
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %3) #12
  call void @_ZN7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(89) %3) #12
  %99 = invoke noundef i32 @_ZN7Options5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(89) %3, i32 noundef %0, ptr noundef %1)
          to label %100 unwind label %101

100:                                              ; preds = %2
  %.not = icmp eq i32 %99, 0
  br i1 %.not, label %103, label %759

101:                                              ; preds = %2
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %760

103:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %4) #12
  %104 = getelementptr inbounds i8, ptr %4, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(152) %104, i8 0, i64 144, i1 false)
  store ptr @_Z15sigalrm_handleri, ptr %4, align 8, !tbaa !5
  %105 = call i32 @sigaction(i32 noundef 14, ptr noundef nonnull %4, ptr noundef null) #12
  %106 = call ptr @signal(i32 noundef 2, ptr noundef nonnull @_Z14sigint_handleri) #12
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %4) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #12
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #12
  %107 = getelementptr inbounds i8, ptr %3, i64 80
  %108 = load ptr, ptr %107, align 8, !tbaa !8
  %.not271 = icmp eq ptr %108, null
  br i1 %.not271, label %164, label %109

109:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #12
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %108)
          to label %110 unwind label %124

110:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %7) #12
  %111 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %6)
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %7, ptr noundef nonnull align 8 dereferenceable(32) %111, i32 noundef 8)
          to label %112 unwind label %126

112:                                              ; preds = %110
  %113 = load ptr, ptr %7, align 8, !tbaa !17
  %114 = getelementptr i8, ptr %113, i64 -24
  %115 = load i64, ptr %114, align 8
  %116 = getelementptr inbounds i8, ptr %7, i64 %115
  %117 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %116)
  br i1 %117, label %.preheader467, label %118

118:                                              ; preds = %112
  %119 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.10)
          to label %120 unwind label %.loopexit.split-lp469

120:                                              ; preds = %118
  %121 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN7helperslsERSoRKNS_4pathE(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %122 unwind label %.loopexit.split-lp469

122:                                              ; preds = %120
  %123 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.loopexit473 unwind label %.loopexit.split-lp469

124:                                              ; preds = %109
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %163

126:                                              ; preds = %110
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %162

.loopexit468:                                     ; preds = %.preheader467
  %lpad.loopexit470 = landingpad { ptr, i32 }
          cleanup
  br label %161

.loopexit.split-lp469:                            ; preds = %118, %120, %122
  %lpad.loopexit.split-lp471 = landingpad { ptr, i32 }
          cleanup
  br label %161

.preheader467:                                    ; preds = %112, %159
  %128 = load ptr, ptr %7, align 8, !tbaa !17
  %129 = getelementptr i8, ptr %128, i64 -24
  %130 = load i64, ptr %129, align 8
  %131 = getelementptr inbounds i8, ptr %7, i64 %130
  %132 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %131)
          to label %133 unwind label %.loopexit468

133:                                              ; preds = %.preheader467
  br i1 %132, label %.loopexit473, label %134

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  %135 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %136 unwind label %138

136:                                              ; preds = %134
  %137 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.11)
  br i1 %137, label %159, label %140, !llvm.loop !19

138:                                              ; preds = %134
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %160

140:                                              ; preds = %136
  %141 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 0)
  %142 = load i8, ptr %141, align 1, !tbaa !5
  %143 = icmp eq i8 %142, 35
  br i1 %143, label %159, label %144, !llvm.loop !19

144:                                              ; preds = %140
  %145 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32) %8, i8 noundef signext 35, i64 noundef 0) #12
  %.not354 = icmp eq i64 %145, -1
  br i1 %.not354, label %149, label %146

146:                                              ; preds = %144
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %145)
          to label %149 unwind label %147

147:                                              ; preds = %158, %146
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %160

149:                                              ; preds = %146, %144
  %150 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  br i1 %150, label %.critedge, label %.lr.ph

.lr.ph:                                           ; preds = %149, %155
  %151 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  %152 = load i8, ptr %151, align 1, !tbaa !5
  %153 = sext i8 %152 to i32
  %154 = call i32 @isblank(i32 noundef %153) #13
  %.not355 = icmp eq i32 %154, 0
  br i1 %.not355, label %.critedge, label %155

155:                                              ; preds = %.lr.ph
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  %156 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  br i1 %156, label %.critedge, label %.lr.ph, !llvm.loop !21

.critedge:                                        ; preds = %.lr.ph, %155, %149
  %157 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.11)
  br i1 %157, label %159, label %158, !llvm.loop !19

158:                                              ; preds = %.critedge
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %159 unwind label %147

159:                                              ; preds = %.critedge, %158, %140, %136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #12
  br label %.preheader467

160:                                              ; preds = %147, %138
  %.pn356 = phi { ptr, i32 } [ %148, %147 ], [ %139, %138 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #12
  br label %161

.loopexit473:                                     ; preds = %133, %122
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7) #12
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %7) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #12
  br i1 %117, label %164, label %757

161:                                              ; preds = %.loopexit468, %.loopexit.split-lp469, %160
  %.pn356.pn = phi { ptr, i32 } [ %.pn356, %160 ], [ %lpad.loopexit470, %.loopexit468 ], [ %lpad.loopexit.split-lp471, %.loopexit.split-lp469 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7) #12
  br label %162

162:                                              ; preds = %161, %126
  %.pn356.pn.pn = phi { ptr, i32 } [ %.pn356.pn, %161 ], [ %127, %126 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %7) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #12
  br label %163

163:                                              ; preds = %162, %124
  %.pn356.pn.pn.pn = phi { ptr, i32 } [ %.pn356.pn.pn, %162 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #12
  br label %758

164:                                              ; preds = %.loopexit473, %103
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #12
  %165 = load ptr, ptr %3, align 8, !tbaa !22
  %.not272 = icmp eq ptr %165, null
  br i1 %.not272, label %167, label %166

166:                                              ; preds = %164
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull %165)
          to label %169 unwind label %193

167:                                              ; preds = %164
  %168 = call ptr @__cxa_allocate_exception(i64 8) #12
  store ptr @.str.11, ptr %168, align 16, !tbaa !23
  invoke void @__cxa_throw(ptr nonnull %168, ptr nonnull @_ZTIPKc, ptr null) #14
          to label %761 unwind label %193

169:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #12
  call void @_ZNSt6vectorI8TestDescSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #12
  %170 = getelementptr inbounds i8, ptr %3, i64 8
  %171 = load ptr, ptr %170, align 8, !tbaa !24
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %171)
          to label %172 unwind label %195

172:                                              ; preds = %169
  %173 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %11)
  %174 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %173) #12
  %175 = call ptr @opendir(ptr noundef %174)
  %176 = icmp eq ptr %175, null
  br i1 %176, label %188, label %.preheader466

.preheader466:                                    ; preds = %172
  %177 = getelementptr inbounds i8, ptr %14, i64 24
  %178 = getelementptr inbounds i8, ptr %3, i64 72
  %179 = getelementptr inbounds i8, ptr %18, i64 136
  %180 = getelementptr inbounds i8, ptr %22, i64 4
  %181 = getelementptr inbounds i8, ptr %22, i64 8
  %182 = getelementptr inbounds i8, ptr %18, i64 112
  %183 = getelementptr inbounds i8, ptr %18, i64 138
  %184 = getelementptr inbounds i8, ptr %18, i64 88
  %185 = getelementptr inbounds i8, ptr %18, i64 137
  %186 = getelementptr inbounds i8, ptr %18, i64 64
  %187 = getelementptr inbounds i8, ptr %18, i64 32
  br label %203

188:                                              ; preds = %172
  %189 = call ptr @__cxa_allocate_exception(i64 16) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #12
  invoke void @_Z6formatIJA34_cN7helpers4pathEA2_cEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 1 dereferenceable(34) @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(2) @.str.13)
          to label %190 unwind label %.thread

190:                                              ; preds = %188
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %189, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %192 unwind label %.thread378

.thread378:                                       ; preds = %190
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #12
  br label %202

192:                                              ; preds = %190
  invoke void @__cxa_throw(ptr nonnull %189, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #14
          to label %761 unwind label %200

193:                                              ; preds = %167, %166
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %756

195:                                              ; preds = %169
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %755

197:                                              ; preds = %.thread380
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %754

.thread:                                          ; preds = %188
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #12
  br label %202

200:                                              ; preds = %192
  %201 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #12
  br label %754

202:                                              ; preds = %.thread378, %.thread
  %.pn349377 = phi { ptr, i32 } [ %199, %.thread ], [ %191, %.thread378 ]
  call void @__cxa_free_exception(ptr %189) #12
  br label %754

203:                                              ; preds = %.backedge, %.preheader466
  %204 = invoke ptr @readdir(ptr noundef nonnull %175)
          to label %205 unwind label %206

205:                                              ; preds = %203
  %.not273 = icmp eq ptr %204, null
  br i1 %.not273, label %.thread380, label %208

206:                                              ; preds = %203
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %754

208:                                              ; preds = %205
  %209 = getelementptr inbounds i8, ptr %204, i64 19
  %210 = load i8, ptr %209, align 1, !tbaa !5
  %211 = icmp eq i8 %210, 46
  br i1 %211, label %.backedge, label %212

.backedge:                                        ; preds = %208, %400
  br label %203, !llvm.loop !25

212:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #12
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull %209)
          to label %213 unwind label %219

213:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %14) #12
  %214 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %13)
  %215 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %214) #12
  %216 = call i32 @stat(ptr noundef %215, ptr noundef nonnull %14) #12
  %217 = load i32, ptr %177, align 8, !tbaa !26
  %218 = and i32 %217, 61440
  %.not274 = icmp eq i32 %218, 32768
  br i1 %.not274, label %221, label %400, !llvm.loop !25

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

221:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %15) #12
  %222 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %13)
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %15, ptr noundef nonnull align 8 dereferenceable(32) %222, i32 noundef 8)
          to label %223 unwind label %229

223:                                              ; preds = %221
  %224 = load ptr, ptr %15, align 8, !tbaa !17
  %225 = getelementptr i8, ptr %224, i64 -24
  %226 = load i64, ptr %225, align 8
  %227 = getelementptr inbounds i8, ptr %15, i64 %226
  %228 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264) %227)
  br i1 %228, label %231, label %399, !llvm.loop !25

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

231:                                              ; preds = %223
  %232 = load i32, ptr %178, align 8, !tbaa !30
  %233 = icmp sgt i32 %232, 0
  br i1 %233, label %234, label %238

234:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  store ptr %13, ptr %17, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %16)
          to label %235 unwind label %236

235:                                              ; preds = %234
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  br label %238

236:                                              ; preds = %234
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  br label %407

238:                                              ; preds = %235, %231
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %18) #12
  call void @_ZN8TestDescC2Ev(ptr noundef nonnull align 8 dereferenceable(139) %18)
  store i8 0, ptr %179, align 8, !tbaa !31
  br label %239

239:                                              ; preds = %392, %238
  %.0233 = phi i32 [ 0, %238 ], [ %242, %392 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  %240 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %241 unwind label %250

241:                                              ; preds = %239
  %242 = add i32 %.0233, 1
  %243 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  br i1 %243, label %.critedge11, label %.lr.ph655

.lr.ph655:                                        ; preds = %241, %248
  %244 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  %245 = load i8, ptr %244, align 1, !tbaa !5
  %246 = sext i8 %245 to i32
  %247 = call i32 @isblank(i32 noundef %246) #13
  %.not275 = icmp eq i32 %247, 0
  br i1 %.not275, label %.critedge11, label %248

248:                                              ; preds = %.lr.ph655
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  %249 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  br i1 %249, label %.critedge11, label %.lr.ph655, !llvm.loop !43

250:                                              ; preds = %239
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %401

.critedge11:                                      ; preds = %.lr.ph655, %248, %241
  %252 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.14, i64 noundef 0) #12
  %.not276 = icmp eq i64 %252, -1
  br i1 %.not276, label %299, label %253

253:                                              ; preds = %.critedge11
  %254 = add i64 %252, 3
  %255 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %254)
  %256 = load i8, ptr %255, align 1, !tbaa !5
  %257 = icmp eq i8 %256, 94
  br i1 %257, label %.lr.ph659, label %.preheader464

.preheader464:                                    ; preds = %.lr.ph659, %253
  %.0238.lcssa = phi i32 [ %242, %253 ], [ %258, %.lr.ph659 ]
  %.0234.lcssa = phi i64 [ %254, %253 ], [ %259, %.lr.ph659 ]
  br label %263

.lr.ph659:                                        ; preds = %253, %.lr.ph659
  %.0234658 = phi i64 [ %259, %.lr.ph659 ], [ %254, %253 ]
  %.0238657 = phi i32 [ %258, %.lr.ph659 ], [ %242, %253 ]
  %258 = add i32 %.0238657, -1
  %259 = add i64 %.0234658, 1
  %260 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %259)
  %261 = load i8, ptr %260, align 1, !tbaa !5
  %262 = icmp eq i8 %261, 94
  br i1 %262, label %.lr.ph659, label %.preheader464, !llvm.loop !44

263:                                              ; preds = %263, %.preheader464
  %.1235 = phi i64 [ %268, %263 ], [ %.0234.lcssa, %.preheader464 ]
  %264 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %.1235)
  %265 = load i8, ptr %264, align 1, !tbaa !5
  %266 = sext i8 %265 to i32
  %267 = call i32 @isspace(i32 noundef %266) #13
  %.not277 = icmp eq i32 %267, 0
  %268 = add i64 %.1235, 1
  br i1 %.not277, label %.preheader463, label %263, !llvm.loop !45

.preheader463:                                    ; preds = %263, %.preheader463
  %.2236 = phi i64 [ %273, %.preheader463 ], [ %.1235, %263 ]
  %269 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %.2236)
  %270 = load i8, ptr %269, align 1, !tbaa !5
  %271 = sext i8 %270 to i32
  %272 = call i32 @isalnum(i32 noundef %271) #13
  %.not278 = icmp eq i32 %272, 0
  %273 = add i64 %.2236, 1
  br i1 %.not278, label %274, label %.preheader463, !llvm.loop !46

274:                                              ; preds = %.preheader463
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #12
  %275 = sub i64 %.2236, %.1235
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %.1235, i64 noundef %275)
          to label %.preheader unwind label %281

.preheader:                                       ; preds = %274, %.preheader
  %.3237 = phi i64 [ %280, %.preheader ], [ %.2236, %274 ]
  %276 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %.3237)
  %277 = load i8, ptr %276, align 1, !tbaa !5
  %278 = sext i8 %277 to i32
  %279 = call i32 @isspace(i32 noundef %278) #13
  %.not279 = icmp eq i32 %279, 0
  %280 = add i64 %.3237, 1
  br i1 %.not279, label %283, label %.preheader, !llvm.loop !47

281:                                              ; preds = %274
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %298

283:                                              ; preds = %.preheader
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #12
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %.3237, i64 noundef -1)
          to label %284 unwind label %289

284:                                              ; preds = %283
  %285 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.15)
  br i1 %285, label %286, label %296

286:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #12
  store i32 %.0238.lcssa, ptr %22, align 8, !tbaa !48
  store i32 0, ptr %180, align 4, !tbaa !51
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %287 unwind label %291

287:                                              ; preds = %286
  invoke void @_ZNSt6vectorIN8TestDesc7MessageESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %182, ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %288 unwind label %293

288:                                              ; preds = %287
  call void @_ZN8TestDesc7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #12
  store i8 1, ptr %183, align 2, !tbaa !52
  br label %296

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

291:                                              ; preds = %286
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %295

293:                                              ; preds = %287
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8TestDesc7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #12
  br label %295

295:                                              ; preds = %293, %291
  %.pn = phi { ptr, i32 } [ %294, %293 ], [ %292, %291 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #12
  br label %297

296:                                              ; preds = %284, %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #12
  br label %299

297:                                              ; preds = %295, %289
  %.pn.pn = phi { ptr, i32 } [ %.pn, %295 ], [ %290, %289 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #12
  br label %298

298:                                              ; preds = %297, %281
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %297 ], [ %282, %281 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #12
  br label %401

299:                                              ; preds = %296, %.critedge11
  %300 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 0)
  %301 = load i8, ptr %300, align 1, !tbaa !5
  %302 = icmp eq i8 %301, 47
  br i1 %302, label %303, label %.loopexit

303:                                              ; preds = %299
  %304 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 1)
  %305 = load i8, ptr %304, align 1, !tbaa !5
  %306 = icmp eq i8 %305, 47
  br i1 %306, label %307, label %.loopexit

307:                                              ; preds = %303
  %308 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 2)
  %309 = load i8, ptr %308, align 1, !tbaa !5
  %310 = icmp eq i8 %309, 32
  %311 = select i1 %310, i64 3, i64 2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #12
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %311, i64 noundef 10)
          to label %312 unwind label %323

312:                                              ; preds = %307
  %313 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.16)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #12
  br i1 %313, label %314, label %341

314:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %315 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  %316 = getelementptr inbounds i8, ptr %315, i64 %311
  %317 = getelementptr inbounds i8, ptr %316, i64 10
  call void @_ZZ4mainEN6ParserC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull %317)
  call void @_ZZ4mainEN6Parser13consume_whiteEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #12
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #12
  invoke void @_ZZ4mainEN6Parser11read_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %318 unwind label %325

318:                                              ; preds = %314
  call void @_ZZ4mainEN6Parser13consume_whiteEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  %319 = call noundef zeroext i1 @_ZZ4mainENK6Parser6is_eofEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  br i1 %319, label %._crit_edge, label %.lr.ph661

.lr.ph661:                                        ; preds = %318, %321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #12
  invoke void @_ZZ4mainEN6Parser11read_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %320 unwind label %327

320:                                              ; preds = %.lr.ph661
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %321 unwind label %329

321:                                              ; preds = %320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #12
  call void @_ZZ4mainEN6Parser13consume_whiteEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  %322 = call noundef zeroext i1 @_ZZ4mainENK6Parser6is_eofEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
  br i1 %322, label %._crit_edge, label %.lr.ph661, !llvm.loop !53

323:                                              ; preds = %307
  %324 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #12
  br label %401

325:                                              ; preds = %314
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %340

327:                                              ; preds = %.lr.ph661
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %331

329:                                              ; preds = %320
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  br label %331

331:                                              ; preds = %329, %327
  %.pn289 = phi { ptr, i32 } [ %330, %329 ], [ %328, %327 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #12
  br label %339

._crit_edge:                                      ; preds = %321, %318
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %28) #12
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %332 unwind label %334

332:                                              ; preds = %._crit_edge
  invoke void @_ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE9push_backEOS9_(ptr noundef nonnull align 8 dereferenceable(24) %186, ptr noundef nonnull align 8 dereferenceable(56) %28)
          to label %333 unwind label %336

333:                                              ; preds = %332
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %28) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %28) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #12
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  br label %.loopexit

334:                                              ; preds = %._crit_edge
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %338

336:                                              ; preds = %332
  %337 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %28) #12
  br label %338

338:                                              ; preds = %336, %334
  %.pn287 = phi { ptr, i32 } [ %337, %336 ], [ %335, %334 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %28) #12
  br label %339

339:                                              ; preds = %338, %331
  %.pn289.pn = phi { ptr, i32 } [ %.pn289, %331 ], [ %.pn287, %338 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #12
  br label %340

340:                                              ; preds = %339, %325
  %.pn289.pn.pn = phi { ptr, i32 } [ %.pn289.pn, %339 ], [ %326, %325 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #12
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  br label %401

341:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #12
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %311, i64 noundef 11)
          to label %342 unwind label %345

342:                                              ; preds = %341
  %343 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.17)
  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
  br i1 %343, label %344, label %347

344:                                              ; preds = %342
  store i8 1, ptr %179, align 8, !tbaa !31
  br label %.loopexit

345:                                              ; preds = %341
  %346 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  br label %401

347:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #12
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %311, i64 noundef 12)
          to label %348 unwind label %351

348:                                              ; preds = %347
  %349 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.18)
  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
  br i1 %349, label %350, label %353

350:                                              ; preds = %348
  store i8 1, ptr %185, align 1, !tbaa !54
  br label %.loopexit

351:                                              ; preds = %347
  %352 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #12
  br label %401

353:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #12
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %311, i64 noundef 14)
          to label %354 unwind label %370

354:                                              ; preds = %353
  %355 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.19)
  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 %355, label %356, label %.loopexit

356:                                              ; preds = %354
  %357 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32) %19, i8 noundef signext 32, i64 noundef 17) #12
  %358 = add nuw nsw i64 %311, 14
  br label %359

359:                                              ; preds = %384, %356
  %.0240 = phi i64 [ %357, %356 ], [ %386, %384 ]
  %.0239 = phi i64 [ %358, %356 ], [ %385, %384 ]
  %.not283 = icmp eq i64 %.0239, %.0240
  br i1 %.not283, label %382, label %360

360:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #12
  %361 = sub i64 %.0240, %.0239
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef %.0239, i64 noundef %361)
          to label %362 unwind label %372

362:                                              ; preds = %360
  %363 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.11)
          to label %364 unwind label %374

364:                                              ; preds = %362
  br i1 %363, label %365, label %379

365:                                              ; preds = %364
  %366 = load i32, ptr %178, align 8, !tbaa !30
  %367 = icmp sgt i32 %366, 1
  br i1 %367, label %368, label %378

368:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #12
  store ptr %32, ptr %34, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %33)
          to label %369 unwind label %376

369:                                              ; preds = %368
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  br label %378

370:                                              ; preds = %353
  %371 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #12
  br label %401

372:                                              ; preds = %360
  %373 = landingpad { ptr, i32 }
          cleanup
  br label %381

374:                                              ; preds = %378, %362
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %380

376:                                              ; preds = %368
  %377 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  br label %380

378:                                              ; preds = %369, %365
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %184, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %379 unwind label %374

379:                                              ; preds = %378, %364
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #12
  br label %382

380:                                              ; preds = %376, %374
  %.pn284 = phi { ptr, i32 } [ %375, %374 ], [ %377, %376 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  br label %381

381:                                              ; preds = %380, %372
  %.pn284.pn = phi { ptr, i32 } [ %.pn284, %380 ], [ %373, %372 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #12
  br label %401

382:                                              ; preds = %379, %359
  %383 = icmp eq i64 %.0240, -1
  br i1 %383, label %.loopexit, label %384

384:                                              ; preds = %382
  %385 = add nuw i64 %.0240, 1
  %386 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32) %19, i8 noundef signext 32, i64 noundef %385) #12
  br label %359, !llvm.loop !55

.loopexit:                                        ; preds = %382, %333, %350, %354, %344, %299, %303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  %387 = load ptr, ptr %15, align 8, !tbaa !17
  %388 = getelementptr i8, ptr %387, i64 -24
  %389 = load i64, ptr %388, align 8
  %390 = getelementptr inbounds i8, ptr %15, i64 %389
  %391 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %390)
          to label %392 unwind label %.loopexit465

392:                                              ; preds = %.loopexit
  br i1 %391, label %393, label %239, !llvm.loop !56

393:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #12
  invoke void @_ZNK7helpers4path8basenameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %394 unwind label %402

394:                                              ; preds = %393
  %395 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %18) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %18) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(32) %18) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #12
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %396 unwind label %404

396:                                              ; preds = %394
  %397 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #12
  invoke void @_ZNSt6vectorI8TestDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(139) %18)
          to label %398 unwind label %.loopexit.split-lp

398:                                              ; preds = %396
  call void @_ZN8TestDescD2Ev(ptr noundef nonnull align 8 dereferenceable(139) %18) #12
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %18) #12
  br label %399

399:                                              ; preds = %223, %398
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15) #12
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %15) #12
  br label %400

400:                                              ; preds = %213, %399
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %14) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  br label %.backedge

401:                                              ; preds = %323, %340, %345, %351, %370, %381, %298, %250
  %.pn289.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %298 ], [ %251, %250 ], [ %.pn289.pn.pn, %340 ], [ %.pn284.pn, %381 ], [ %371, %370 ], [ %352, %351 ], [ %346, %345 ], [ %324, %323 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  br label %406

.loopexit465:                                     ; preds = %.loopexit
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %406

.loopexit.split-lp:                               ; preds = %396
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %406

402:                                              ; preds = %393
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #12
  br label %406

404:                                              ; preds = %394
  %405 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #12
  br label %406

406:                                              ; preds = %.loopexit465, %.loopexit.split-lp, %404, %402, %401
  %.pn289.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn, %401 ], [ %405, %404 ], [ %403, %402 ], [ %lpad.loopexit, %.loopexit465 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN8TestDescD2Ev(ptr noundef nonnull align 8 dereferenceable(139) %18) #12
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %18) #12
  br label %407

407:                                              ; preds = %406, %236
  %.pn289.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn, %406 ], [ %237, %236 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15) #12
  br label %408

408:                                              ; preds = %407, %229
  %.pn289.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn, %407 ], [ %230, %229 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %14) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  br label %409

409:                                              ; preds = %408, %219
  %.pn289.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn.pn, %408 ], [ %220, %219 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  br label %754

.thread380:                                       ; preds = %205
  %410 = call i32 @closedir(ptr noundef nonnull %175)
  %411 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #12
  %412 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #12
  invoke void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS2_SaIS2_EEEEZ4mainE4$_13EvT_S9_T0_"(ptr %411, ptr %412)
          to label %413 unwind label %197

413:                                              ; preds = %.thread380
  %414 = call ptr @getenv(ptr noundef nonnull @.str.20) #12
  %.not300 = icmp ne ptr %414, null
  %415 = call ptr @getenv(ptr noundef nonnull @.str.21) #12
  %.not301 = icmp ne ptr %415, null
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #12
  %416 = call ptr @getenv(ptr noundef nonnull @.str.22) #12
  %.not302 = icmp eq ptr %416, null
  br i1 %.not302, label %417, label %420

417:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #12
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.9)
          to label %418 unwind label %431

418:                                              ; preds = %417
  %419 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %422 unwind label %433

420:                                              ; preds = %413
  %421 = call i64 @_ZN9Timestamp13infinite_pastEv()
  store i64 %421, ptr %37, align 8
  br label %.critedge364

422:                                              ; preds = %418
  store i64 %419, ptr %37, align 8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #12
  br label %.critedge364

.critedge364:                                     ; preds = %420, %422
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %423 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #12
  store ptr %423, ptr %39, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #12
  %424 = call ptr @_ZNSt6vectorI8TestDescSaIS0_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #12
  store ptr %424, ptr %40, align 8
  %425 = call noundef zeroext i1 @_ZN9__gnu_cxxneIP8TestDescSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #12
  br i1 %425, label %.lr.ph675, label %._crit_edge676

.lr.ph675:                                        ; preds = %.critedge364
  %426 = getelementptr inbounds i8, ptr %3, i64 16
  %427 = getelementptr inbounds i8, ptr %74, i64 8
  %428 = getelementptr inbounds i8, ptr %3, i64 88
  %429 = getelementptr inbounds i8, ptr %82, i64 8
  %430 = getelementptr inbounds i8, ptr %84, i64 8
  br label %436

431:                                              ; preds = %417
  %432 = landingpad { ptr, i32 }
          cleanup
  br label %435

433:                                              ; preds = %418
  %434 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  br label %435

435:                                              ; preds = %431, %433
  %.pn303 = phi { ptr, i32 } [ %434, %433 ], [ %432, %431 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #12
  br label %753

436:                                              ; preds = %.lr.ph675, %.thread413
  %.3674 = phi i32 [ 0, %.lr.ph675 ], [ %.11424, %.thread413 ]
  %.0243671 = phi i32 [ 0, %.lr.ph675 ], [ %.2245423, %.thread413 ]
  %.0247670 = phi i32 [ 0, %.lr.ph675 ], [ %.4251422, %.thread413 ]
  %.0253668 = phi i32 [ 0, %.lr.ph675 ], [ %.8261421, %.thread413 ]
  %.0263665 = phi i32 [ 0, %.lr.ph675 ], [ %.1264420, %.thread413 ]
  %437 = call noundef nonnull align 8 dereferenceable(139) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS1_SaIS1_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #12
  %438 = load i8, ptr @_ZL12gInterrupted, align 1, !tbaa !57, !range !58, !noundef !59
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %443

440:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #12
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 1 dereferenceable(1) %42) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %41)
          to label %.thread425 unwind label %441

.thread425:                                       ; preds = %440
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #12
  br label %.thread439

441:                                              ; preds = %440
  %442 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #12
  br label %724

443:                                              ; preds = %436
  %444 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %426) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  br i1 %444, label %.critedge13, label %445

445:                                              ; preds = %443
  %446 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %426) #12
  %447 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %426) #12
  %448 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEES7_ET_SD_SD_RKT0_(ptr %446, ptr %447, ptr noundef nonnull align 8 dereferenceable(32) %437)
          to label %449 unwind label %457

449:                                              ; preds = %445
  store ptr %448, ptr %43, align 8
  %450 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %426) #12
  store ptr %450, ptr %44, align 8
  %451 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  br i1 %451, label %452, label %461

452:                                              ; preds = %449
  %453 = load i32, ptr %178, align 8, !tbaa !30
  %454 = icmp sgt i32 %453, 0
  br i1 %454, label %455, label %.thread413

455:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #12
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 1 dereferenceable(1) %46) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %45)
          to label %456 unwind label %459

456:                                              ; preds = %455
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #12
  br label %.thread413

457:                                              ; preds = %445
  %458 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  br label %724

459:                                              ; preds = %455
  %460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #12
  br label %724

.critedge13:                                      ; preds = %443
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  br label %461

461:                                              ; preds = %.critedge13, %449
  %462 = getelementptr inbounds i8, ptr %437, i64 136
  %463 = load i8, ptr %462, align 8, !tbaa !31, !range !58, !noundef !59
  %464 = trunc nuw i8 %463 to i1
  br i1 %464, label %465, label %472

465:                                              ; preds = %461
  %466 = load i32, ptr %178, align 8, !tbaa !30
  %467 = icmp sgt i32 %466, 0
  br i1 %467, label %468, label %.thread413

468:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  store ptr %437, ptr %48, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %47)
          to label %469 unwind label %470

469:                                              ; preds = %468
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  br label %.thread413

470:                                              ; preds = %468
  %471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  br label %724

472:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #12
  %473 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #12
  %474 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #12
  %475 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEES7_ET_SD_SD_RKT0_(ptr %473, ptr %474, ptr noundef nonnull align 8 dereferenceable(32) %437)
          to label %476 unwind label %484

476:                                              ; preds = %472
  store ptr %475, ptr %49, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #12
  %477 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #12
  store ptr %477, ptr %50, align 8
  %478 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #12
  br i1 %478, label %479, label %490

479:                                              ; preds = %476
  %480 = load i32, ptr %178, align 8, !tbaa !30
  %481 = icmp sgt i32 %480, 0
  br i1 %481, label %482, label %488

482:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #12
  store ptr %437, ptr %52, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %51)
          to label %483 unwind label %486

483:                                              ; preds = %482
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #12
  br label %488

484:                                              ; preds = %472
  %485 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #12
  br label %724

486:                                              ; preds = %482
  %487 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #12
  br label %724

488:                                              ; preds = %483, %479
  %489 = add i32 %.0263665, 1
  br label %.thread413

490:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #12
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.23)
          to label %491 unwind label %511

491:                                              ; preds = %490
  %492 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %437) #12
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef %492)
          to label %493 unwind label %513

493:                                              ; preds = %491
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #12
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %437)
          to label %494 unwind label %516

494:                                              ; preds = %493
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %495 unwind label %518

495:                                              ; preds = %494
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.24)
          to label %496 unwind label %520

496:                                              ; preds = %495
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #12
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %437)
          to label %497 unwind label %524

497:                                              ; preds = %496
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %498 unwind label %526

498:                                              ; preds = %497
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.25)
          to label %499 unwind label %528

499:                                              ; preds = %498
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #12
  %500 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %501 unwind label %532

501:                                              ; preds = %499
  store i64 %500, ptr %61, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #12
  %502 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %503 unwind label %534

503:                                              ; preds = %501
  store i64 %502, ptr %62, align 8
  br i1 %.not300, label %504, label %536

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  %505 = call i64 @_ZN9Timestamp13infinite_pastEv()
  store i64 %505, ptr %63, align 8
  %506 = call noundef zeroext i1 @_ZNK9TimestampeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63)
  br i1 %506, label %507, label %.critedge15

507:                                              ; preds = %504
  %508 = call noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  br i1 %508, label %509, label %536

509:                                              ; preds = %507
  %510 = call i64 @_ZN9Timestamp13infinite_pastEv()
  store i64 %510, ptr %61, align 8, !tbaa !60
  br label %536

511:                                              ; preds = %490
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %515

513:                                              ; preds = %491
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #12
  br label %515

515:                                              ; preds = %513, %511
  %.pn305 = phi { ptr, i32 } [ %514, %513 ], [ %512, %511 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #12
  br label %723

516:                                              ; preds = %493
  %517 = landingpad { ptr, i32 }
          cleanup
  br label %523

518:                                              ; preds = %494
  %519 = landingpad { ptr, i32 }
          cleanup
  br label %522

520:                                              ; preds = %495
  %521 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  br label %522

522:                                              ; preds = %520, %518
  %.pn307 = phi { ptr, i32 } [ %521, %520 ], [ %519, %518 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #12
  br label %523

523:                                              ; preds = %522, %516
  %.pn307.pn = phi { ptr, i32 } [ %.pn307, %522 ], [ %517, %516 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #12
  br label %722

524:                                              ; preds = %496
  %525 = landingpad { ptr, i32 }
          cleanup
  br label %531

526:                                              ; preds = %497
  %527 = landingpad { ptr, i32 }
          cleanup
  br label %530

528:                                              ; preds = %498
  %529 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  br label %530

530:                                              ; preds = %528, %526
  %.pn310 = phi { ptr, i32 } [ %529, %528 ], [ %527, %526 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  br label %531

531:                                              ; preds = %530, %524
  %.pn310.pn = phi { ptr, i32 } [ %.pn310, %530 ], [ %525, %524 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #12
  br label %721

532:                                              ; preds = %499
  %533 = landingpad { ptr, i32 }
          cleanup
  br label %720

534:                                              ; preds = %501
  %535 = landingpad { ptr, i32 }
          cleanup
  br label %719

.critedge15:                                      ; preds = %504
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  br label %536

536:                                              ; preds = %507, %509, %.critedge15, %503
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #12
  %537 = call i64 @_ZN9Timestamp13infinite_pastEv()
  store i64 %537, ptr %64, align 8
  %538 = call noundef zeroext i1 @_ZNK9TimestampeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %64)
  br i1 %538, label %.critedge367.thread, label %539

.critedge367.thread:                              ; preds = %536
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  br label %547

539:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #12
  %540 = getelementptr inbounds i8, ptr %437, i64 32
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %540)
          to label %541 unwind label %552

541:                                              ; preds = %539
  %542 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %543 unwind label %554

543:                                              ; preds = %541
  store i64 %542, ptr %65, align 8
  %544 = call noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %65)
  %brmerge = or i1 %.not301, %544
  %brmerge365 = or i1 %.not300, %brmerge
  br i1 %brmerge365, label %.critedge367, label %545

545:                                              ; preds = %543
  %546 = call noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  br i1 %546, label %547, label %641

.critedge367:                                     ; preds = %543
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  br i1 %544, label %547, label %641

547:                                              ; preds = %545, %.critedge367.thread, %.critedge367
  %548 = getelementptr inbounds i8, ptr %437, i64 64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #12
  %549 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %548) #12
  store ptr %549, ptr %67, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #12
  %550 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %548) #12
  store ptr %550, ptr %68, align 8
  %551 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #12
  br i1 %551, label %.lr.ph663, label %._crit_edge664

552:                                              ; preds = %539
  %553 = landingpad { ptr, i32 }
          cleanup
  br label %556

554:                                              ; preds = %541
  %555 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #12
  br label %556

556:                                              ; preds = %552, %554
  %.pn313 = phi { ptr, i32 } [ %555, %554 ], [ %553, %552 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  br label %719

.lr.ph663:                                        ; preds = %547, %585
  %557 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #12
  %558 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %53)
  %559 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %558) #12
  %560 = call i32 @mkdir(ptr noundef %559, i32 noundef 493) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #12
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.26)
          to label %561 unwind label %569

561:                                              ; preds = %.lr.ph663
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #12
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %557)
          to label %562 unwind label %571

562:                                              ; preds = %561
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %563 unwind label %573

563:                                              ; preds = %562
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #12
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %564 unwind label %577

564:                                              ; preds = %563
  %565 = getelementptr inbounds i8, ptr %557, i64 32
  %566 = invoke noundef zeroext i1 @_Z12run_compilerRK7OptionsRKN7helpers4pathES5_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISC_EES3_b(ptr noundef nonnull align 8 dereferenceable(89) %3, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(24) %565, ptr noundef nonnull %72, i1 noundef zeroext true)
          to label %567 unwind label %579

567:                                              ; preds = %564
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #12
  br i1 %566, label %585, label %568

568:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %74) #12
  store ptr %69, ptr %74, align 8, !tbaa !23
  store ptr %437, ptr %427, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(16) %74) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %73)
          to label %.thread392 unwind label %581

569:                                              ; preds = %.lr.ph663
  %570 = landingpad { ptr, i32 }
          cleanup
  br label %576

571:                                              ; preds = %561
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %575

573:                                              ; preds = %562
  %574 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #12
  br label %575

575:                                              ; preds = %573, %571
  %.pn315 = phi { ptr, i32 } [ %574, %573 ], [ %572, %571 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #12
  br label %576

576:                                              ; preds = %575, %569
  %.pn315.pn = phi { ptr, i32 } [ %.pn315, %575 ], [ %570, %569 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #12
  br label %589

577:                                              ; preds = %563
  %578 = landingpad { ptr, i32 }
          cleanup
  br label %588

579:                                              ; preds = %564
  %580 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #12
  br label %588

581:                                              ; preds = %568
  %582 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #12
  br label %588

.thread392:                                       ; preds = %568
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  %583 = load i8, ptr %428, align 8, !tbaa !61, !range !58, !noundef !59
  %584 = trunc nuw i8 %583 to i1
  br i1 %584, label %.thread447, label %.thread453

585:                                              ; preds = %567
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #12
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #12
  %587 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #12
  br i1 %587, label %.lr.ph663, label %._crit_edge664

588:                                              ; preds = %581, %579, %577
  %.pn318 = phi { ptr, i32 } [ %582, %581 ], [ %580, %579 ], [ %578, %577 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #12
  br label %589

589:                                              ; preds = %588, %576
  %.pn318.pn = phi { ptr, i32 } [ %.pn318, %588 ], [ %.pn315.pn, %576 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  br label %719

._crit_edge664:                                   ; preds = %585, %547
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  %590 = call noundef zeroext i1 @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %548) #12
  br i1 %590, label %592, label %594

.thread453:                                       ; preds = %.thread392
  %591 = add i32 %.0253668, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #12
  br label %.thread413

592:                                              ; preds = %._crit_edge664
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #12
  call void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75)
  %593 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %75) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #12
  br label %594

594:                                              ; preds = %592, %._crit_edge664
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #12
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.5)
          to label %595 unwind label %610

595:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #12
  %596 = getelementptr inbounds i8, ptr %437, i64 32
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %596)
          to label %597 unwind label %612

597:                                              ; preds = %595
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %598 unwind label %614

598:                                              ; preds = %597
  %599 = getelementptr inbounds i8, ptr %437, i64 88
  %600 = invoke noundef zeroext i1 @_Z12run_compilerRK7OptionsRKN7helpers4pathES5_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISC_EES3_b(ptr noundef nonnull align 8 dereferenceable(89) %3, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(24) %599, ptr noundef nonnull %78, i1 noundef zeroext false)
          to label %601 unwind label %616

601:                                              ; preds = %598
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #12
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %79) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #12
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %602 unwind label %620

602:                                              ; preds = %601
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %79, ptr noundef nonnull align 8 dereferenceable(32) %80, i32 noundef 8)
          to label %603 unwind label %622

603:                                              ; preds = %602
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #12
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %79) #12
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %79) #12
  %604 = getelementptr inbounds i8, ptr %437, i64 138
  %605 = load i8, ptr %604, align 2, !tbaa !52, !range !58, !noundef !59
  %606 = trunc nuw i8 %605 to i1
  br i1 %600, label %627, label %607

607:                                              ; preds = %603
  br i1 %606, label %632, label %608

608:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %82) #12
  store ptr %437, ptr %82, align 8, !tbaa !23
  store ptr %76, ptr %429, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(16) %82) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %81)
          to label %609 unwind label %625

609:                                              ; preds = %608
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #12
  br label %.thread402

610:                                              ; preds = %594
  %611 = landingpad { ptr, i32 }
          cleanup
  br label %640

612:                                              ; preds = %595
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %619

614:                                              ; preds = %597
  %615 = landingpad { ptr, i32 }
          cleanup
  br label %618

616:                                              ; preds = %598
  %617 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #12
  br label %618

618:                                              ; preds = %616, %614
  %.pn321 = phi { ptr, i32 } [ %617, %616 ], [ %615, %614 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #12
  br label %619

619:                                              ; preds = %618, %612
  %.pn321.pn = phi { ptr, i32 } [ %.pn321, %618 ], [ %613, %612 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #12
  br label %639

620:                                              ; preds = %601
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %624

622:                                              ; preds = %602
  %623 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #12
  br label %624

624:                                              ; preds = %622, %620
  %.pn324 = phi { ptr, i32 } [ %623, %622 ], [ %621, %620 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #12
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %79) #12
  br label %639

625:                                              ; preds = %608
  %626 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #12
  br label %639

627:                                              ; preds = %603
  br i1 %606, label %628, label %632

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %84) #12
  store ptr %437, ptr %84, align 8, !tbaa !23
  store ptr %76, ptr %430, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(16) %84) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %83)
          to label %629 unwind label %630

629:                                              ; preds = %628
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #12
  br label %.thread402

630:                                              ; preds = %628
  %631 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #12
  br label %639

632:                                              ; preds = %627, %607
  %633 = invoke i64 @_ZN9Timestamp8for_fileERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %636 unwind label %637

.thread402:                                       ; preds = %609, %629
  %634 = load i8, ptr %428, align 8, !tbaa !61, !range !58, !noundef !59
  %635 = trunc nuw i8 %634 to i1
  %.369 = select i1 %635, i32 1, i32 29
  %..3370 = select i1 %635, i32 1, i32 %.3674
  %.4257.ph = add i32 %.0253668, 1
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #12
  br label %select.unfold

636:                                              ; preds = %632
  store i64 %633, ptr %61, align 8, !tbaa !60
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #12
  br label %641

637:                                              ; preds = %632
  %638 = landingpad { ptr, i32 }
          cleanup
  br label %639

639:                                              ; preds = %637, %630, %625, %624, %619
  %.pn326 = phi { ptr, i32 } [ %631, %630 ], [ %638, %637 ], [ %626, %625 ], [ %.pn324, %624 ], [ %.pn321.pn, %619 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #12
  br label %640

640:                                              ; preds = %639, %610
  %.pn326.pn = phi { ptr, i32 } [ %.pn326, %639 ], [ %611, %610 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #12
  br label %719

641:                                              ; preds = %636, %545, %.critedge367
  %642 = getelementptr inbounds i8, ptr %437, i64 137
  %643 = load i8, ptr %642, align 1, !tbaa !54, !range !58, !noundef !59
  %644 = trunc nuw i8 %643 to i1
  br i1 %644, label %645, label %661

645:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %85) #12
  %646 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %58)
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %85, ptr noundef nonnull align 8 dereferenceable(32) %646, i32 noundef 16)
          to label %647 unwind label %654

647:                                              ; preds = %645
  %648 = invoke noundef nonnull align 8 dereferenceable(248) ptr @_ZStlsISt14basic_ofstreamIcSt11char_traitsIcEEA1_cEOT_S6_RKT0_(ptr noundef nonnull align 8 dereferenceable(248) %85, ptr noundef nonnull align 1 dereferenceable(1) @.str.11)
          to label %649 unwind label %656

649:                                              ; preds = %647
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %85) #12
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %85) #12
  %650 = load i32, ptr %178, align 8, !tbaa !30
  %651 = icmp sgt i32 %650, 0
  br i1 %651, label %652, label %.thread432

652:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #12
  store ptr %437, ptr %87, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(8) %87) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %86)
          to label %653 unwind label %659

653:                                              ; preds = %652
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #12
  br label %.thread432

654:                                              ; preds = %645
  %655 = landingpad { ptr, i32 }
          cleanup
  br label %658

656:                                              ; preds = %647
  %657 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %85) #12
  br label %658

658:                                              ; preds = %656, %654
  %.pn336 = phi { ptr, i32 } [ %657, %656 ], [ %655, %654 ]
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %85) #12
  br label %719

659:                                              ; preds = %652
  %660 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #12
  br label %719

661:                                              ; preds = %641
  %662 = call noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %61)
  br i1 %662, label %663, label %709

663:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #12
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.27)
          to label %664 unwind label %681

664:                                              ; preds = %663
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %89) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #12
  %665 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %55)
  %666 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %665) #12
  store ptr %666, ptr %90, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #12
  call void @_ZNSaIPKcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #12
  invoke void @_ZNSt6vectorIPKcSaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr nonnull %90, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %667 unwind label %683

667:                                              ; preds = %664
  %668 = invoke noundef zeroext i1 @_Z14run_executableRKN7helpers4pathERKSt6vectorIPKcSaIS5_EES2_j(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(32) %88, i32 noundef 10)
          to label %669 unwind label %685

669:                                              ; preds = %667
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #12
  call void @_ZNSt15__new_allocatorIPKcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #12
  br i1 %668, label %.thread407, label %670

670:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #12
  store ptr %437, ptr %93, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(8) %93) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %92)
          to label %671 unwind label %688

671:                                              ; preds = %670
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #12
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #12
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.28)
          to label %672 unwind label %690

672:                                              ; preds = %671
  %673 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %94)
  %674 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %673) #12
  %675 = call i32 @remove(ptr noundef %674) #12
  %676 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %88)
  %677 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %676) #12
  %678 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %94)
  %679 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %678) #12
  %680 = call i32 @rename(ptr noundef %677, ptr noundef %679) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #12
  store ptr %94, ptr %96, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %95)
          to label %703 unwind label %692

681:                                              ; preds = %663
  %682 = landingpad { ptr, i32 }
          cleanup
  br label %708

683:                                              ; preds = %664
  %684 = landingpad { ptr, i32 }
          cleanup
  br label %687

685:                                              ; preds = %667
  %686 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIPKcSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #12
  br label %687

687:                                              ; preds = %685, %683
  %.pn330 = phi { ptr, i32 } [ %686, %685 ], [ %684, %683 ]
  call void @_ZNSt15__new_allocatorIPKcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #12
  br label %707

688:                                              ; preds = %670
  %689 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #12
  br label %707

690:                                              ; preds = %671
  %691 = landingpad { ptr, i32 }
          cleanup
  br label %694

692:                                              ; preds = %672
  %693 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #12
  br label %694

694:                                              ; preds = %692, %690
  %.pn332 = phi { ptr, i32 } [ %693, %692 ], [ %691, %690 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #12
  br label %707

.thread407:                                       ; preds = %669
  %695 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %58)
  %696 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %695) #12
  %697 = call i32 @remove(ptr noundef %696) #12
  %698 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %88)
  %699 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %698) #12
  %700 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %58)
  %701 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %700) #12
  %702 = call i32 @rename(ptr noundef %699, ptr noundef %701) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #12
  br label %.thread432

703:                                              ; preds = %672
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #12
  %704 = add i32 %.0247670, 1
  %705 = load i8, ptr %428, align 8, !tbaa !61, !range !58, !noundef !59
  %706 = trunc nuw i8 %705 to i1
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #12
  %spec.select = select i1 %706, i32 1, i32 29
  %spec.select685 = select i1 %706, i32 1, i32 %.3674
  br label %select.unfold

707:                                              ; preds = %694, %688, %687
  %.pn332.pn = phi { ptr, i32 } [ %.pn332, %694 ], [ %689, %688 ], [ %.pn330, %687 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #12
  br label %708

708:                                              ; preds = %707, %681
  %.pn332.pn.pn = phi { ptr, i32 } [ %.pn332.pn, %707 ], [ %682, %681 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #12
  br label %719

709:                                              ; preds = %661
  %710 = load i32, ptr %178, align 8, !tbaa !30
  %711 = icmp sgt i32 %710, 0
  br i1 %711, label %712, label %.thread432

712:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #12
  store ptr %437, ptr %98, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(8) %98) #12
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %97)
          to label %713 unwind label %714

713:                                              ; preds = %712
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #12
  br label %.thread432

714:                                              ; preds = %712
  %715 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #12
  br label %719

.thread432:                                       ; preds = %653, %649, %709, %713, %.thread407
  %716 = add i32 %.0243671, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #12
  br label %.thread413

.thread447:                                       ; preds = %.thread392
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #12
  br label %.thread439

select.unfold:                                    ; preds = %703, %.thread402
  %.7260 = phi i32 [ %.4257.ph, %.thread402 ], [ %.0253668, %703 ]
  %.3250 = phi i32 [ %.0247670, %.thread402 ], [ %704, %703 ]
  %.10222 = phi i32 [ %.369, %.thread402 ], [ %spec.select, %703 ]
  %.10 = phi i32 [ %..3370, %.thread402 ], [ %spec.select685, %703 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #12
  %cond = icmp eq i32 %.10222, 29
  br i1 %cond, label %.thread413, label %.thread439

.thread413:                                       ; preds = %select.unfold, %.thread453, %465, %469, %452, %456, %488, %.thread432
  %.11424 = phi i32 [ %.10, %select.unfold ], [ %.3674, %.thread432 ], [ %.3674, %488 ], [ %.3674, %456 ], [ %.3674, %452 ], [ %.3674, %469 ], [ %.3674, %465 ], [ %.3674, %.thread453 ]
  %.2245423 = phi i32 [ %.0243671, %select.unfold ], [ %716, %.thread432 ], [ %.0243671, %488 ], [ %.0243671, %456 ], [ %.0243671, %452 ], [ %.0243671, %469 ], [ %.0243671, %465 ], [ %.0243671, %.thread453 ]
  %.4251422 = phi i32 [ %.3250, %select.unfold ], [ %.0247670, %.thread432 ], [ %.0247670, %488 ], [ %.0247670, %456 ], [ %.0247670, %452 ], [ %.0247670, %469 ], [ %.0247670, %465 ], [ %.0247670, %.thread453 ]
  %.8261421 = phi i32 [ %.7260, %select.unfold ], [ %.0253668, %.thread432 ], [ %.0253668, %488 ], [ %.0253668, %456 ], [ %.0253668, %452 ], [ %.0253668, %469 ], [ %.0253668, %465 ], [ %591, %.thread453 ]
  %.1264420 = phi i32 [ %.0263665, %select.unfold ], [ %.0263665, %.thread432 ], [ %489, %488 ], [ %.0263665, %456 ], [ %.0263665, %452 ], [ %.0263665, %469 ], [ %.0263665, %465 ], [ %.0263665, %.thread453 ]
  %717 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS1_SaIS1_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #12
  %718 = call noundef zeroext i1 @_ZN9__gnu_cxxneIP8TestDescSt6vectorIS1_SaIS1_EEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #12
  br i1 %718, label %436, label %._crit_edge676

719:                                              ; preds = %589, %640, %714, %708, %659, %658, %556, %534
  %.pn338 = phi { ptr, i32 } [ %660, %659 ], [ %.pn336, %658 ], [ %.pn332.pn.pn, %708 ], [ %715, %714 ], [ %.pn313, %556 ], [ %535, %534 ], [ %.pn326.pn, %640 ], [ %.pn318.pn, %589 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  br label %720

720:                                              ; preds = %719, %532
  %.pn338.pn = phi { ptr, i32 } [ %.pn338, %719 ], [ %533, %532 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  br label %721

721:                                              ; preds = %720, %531
  %.pn338.pn.pn = phi { ptr, i32 } [ %.pn338.pn, %720 ], [ %.pn310.pn, %531 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  br label %722

722:                                              ; preds = %721, %523
  %.pn338.pn.pn.pn = phi { ptr, i32 } [ %.pn338.pn.pn, %721 ], [ %.pn307.pn, %523 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  br label %723

723:                                              ; preds = %722, %515
  %.pn338.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn338.pn.pn.pn, %722 ], [ %.pn305, %515 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #12
  br label %724

724:                                              ; preds = %723, %486, %484, %470, %459, %457, %441
  %.pn344 = phi { ptr, i32 } [ %442, %441 ], [ %471, %470 ], [ %487, %486 ], [ %.pn338.pn.pn.pn.pn, %723 ], [ %485, %484 ], [ %460, %459 ], [ %458, %457 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  br label %753

.thread439:                                       ; preds = %select.unfold, %.thread425, %.thread447
  %.12.ph = phi i32 [ 1, %.thread425 ], [ 1, %.thread447 ], [ %.10, %select.unfold ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  br label %752

._crit_edge676:                                   ; preds = %.thread413, %.critedge364
  %.0263.lcssa = phi i32 [ 0, %.critedge364 ], [ %.1264420, %.thread413 ]
  %.0253.lcssa = phi i32 [ 0, %.critedge364 ], [ %.8261421, %.thread413 ]
  %.0247.lcssa = phi i32 [ 0, %.critedge364 ], [ %.4251422, %.thread413 ]
  %.0243.lcssa = phi i32 [ 0, %.critedge364 ], [ %.2245423, %.thread413 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %725 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.29)
          to label %726 unwind label %750

726:                                              ; preds = %._crit_edge676
  %727 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %725, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %728 unwind label %750

728:                                              ; preds = %726
  %729 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %.0243.lcssa)
          to label %730 unwind label %750

730:                                              ; preds = %728
  %731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %729, ptr noundef nonnull @.str.30)
          to label %732 unwind label %750

732:                                              ; preds = %730
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %731, i32 noundef %.0247.lcssa)
          to label %734 unwind label %750

734:                                              ; preds = %732
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %733, ptr noundef nonnull @.str.31)
          to label %736 unwind label %750

736:                                              ; preds = %734
  %737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %735, i32 noundef %.0253.lcssa)
          to label %738 unwind label %750

738:                                              ; preds = %736
  %739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef nonnull @.str.32)
          to label %740 unwind label %750

740:                                              ; preds = %738
  %741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %739, i32 noundef %.0263.lcssa)
          to label %742 unwind label %750

742:                                              ; preds = %740
  %743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %741, ptr noundef nonnull @.str.33)
          to label %744 unwind label %750

744:                                              ; preds = %742
  %745 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %743, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %746 unwind label %750

746:                                              ; preds = %744
  %747 = icmp ne i32 %.0247.lcssa, 0
  %748 = icmp ne i32 %.0253.lcssa, 0
  %or.cond.not.not = select i1 %747, i1 true, i1 %748
  %749 = zext i1 %or.cond.not.not to i32
  br label %752

750:                                              ; preds = %744, %742, %740, %738, %736, %734, %732, %730, %728, %726, %._crit_edge676
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %753

752:                                              ; preds = %.thread439, %746
  %.13225 = phi i32 [ %749, %746 ], [ %.12.ph, %.thread439 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #12
  call void @_ZNSt6vectorI8TestDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #12
  br label %757

753:                                              ; preds = %724, %750, %435
  %.pn346.pn = phi { ptr, i32 } [ %.pn303, %435 ], [ %751, %750 ], [ %.pn344, %724 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  br label %754

754:                                              ; preds = %200, %206, %409, %202, %753, %197
  %.pn349.pn = phi { ptr, i32 } [ %.pn349377, %202 ], [ %201, %200 ], [ %.pn346.pn, %753 ], [ %198, %197 ], [ %.pn289.pn.pn.pn.pn.pn.pn.pn.pn, %409 ], [ %207, %206 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  br label %755

755:                                              ; preds = %754, %195
  %.pn349.pn.pn = phi { ptr, i32 } [ %.pn349.pn, %754 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #12
  call void @_ZNSt6vectorI8TestDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #12
  br label %756

756:                                              ; preds = %755, %193
  %.pn349.pn.pn.pn = phi { ptr, i32 } [ %.pn349.pn.pn, %755 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #12
  br label %758

757:                                              ; preds = %.loopexit473, %752
  %.15 = phi i32 [ %.13225, %752 ], [ 0, %.loopexit473 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  br label %759

758:                                              ; preds = %756, %163
  %.pn356.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn356.pn.pn.pn, %163 ], [ %.pn349.pn.pn.pn, %756 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  br label %760

759:                                              ; preds = %100, %757
  %.16 = phi i32 [ %.15, %757 ], [ %99, %100 ]
  call void @_ZN7OptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %3) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %3) #12
  ret i32 %.16

760:                                              ; preds = %758, %101
  %.pn356.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn356.pn.pn.pn.pn, %758 ], [ %102, %101 ]
  call void @_ZN7OptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89) %3) #12
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %3) #12
  resume { ptr, i32 } %.pn356.pn.pn.pn.pn.pn

761:                                              ; preds = %192, %167
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7OptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7Options5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

; Function Attrs: nounwind
declare i32 @sigaction(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: nounwind
declare ptr @signal(i32 noundef, ptr noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #8

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #0 align 2

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

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

; 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

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isblank(i32 noundef) local_unnamed_addr #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

; Function Attrs: nofree nounwind
declare noalias noundef ptr @opendir(ptr nocapture noundef readonly) local_unnamed_addr #10

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

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

declare ptr @readdir(ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @stat(ptr nocapture noundef readonly, ptr nocapture noundef) local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isspace(i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isalnum(i32 noundef) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN8TestDesc7MessageESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZZ4mainEN6ParserC2EPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZZ4mainENK6Parser6is_eofEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE9push_backEOS9_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSA_INSB_IT0_E4typeEE6__typeEEOSC_OSH_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS5_SaIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 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 #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8TestDescSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(139)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8TestDescD2Ev(ptr noundef nonnull align 8 dereferenceable(139)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS2_SaIS2_EEEEZ4mainE4$_13EvT_S9_T0_"(ptr, ptr) local_unnamed_addr #8

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

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

; Function Attrs: nofree nounwind memory(read)
declare noundef ptr @getenv(ptr nocapture noundef) local_unnamed_addr #11

; Function Attrs: mustprogress nounwind uwtable
declare dso_local i64 @_ZN9Timestamp13infinite_pastEv() local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(139) ptr @_ZNK9__gnu_cxx17__normal_iteratorIP8TestDescSt6vectorIS1_SaIS1_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9TimestampeqERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9TimestampltERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEES8_ISB_SaISB_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @mkdir(ptr nocapture noundef readonly, i32 noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(248) ptr @_ZStlsISt14basic_ofstreamIcSt11char_traitsIcEEA1_cEOT_S6_RKT0_(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @remove(ptr nocapture noundef readonly) local_unnamed_addr #10

; Function Attrs: nofree nounwind
declare noundef i32 @rename(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #10

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ4mainE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7OptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(89)) unnamed_addr #3 align 2

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

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #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 = { mustprogress norecurse 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { 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 #9 = { mustprogress nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 #11 = { nofree nounwind memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(read) }
attributes #14 = { noreturn }

!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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !10, i64 80}
!9 = !{!"_ZTS7Options", !10, i64 0, !10, i64 8, !11, i64 16, !15, i64 40, !11, i64 48, !16, i64 72, !10, i64 80, !15, i64 88}
!10 = !{!"any pointer", !6, i64 0}
!11 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!15 = !{!"bool", !6, i64 0}
!16 = !{!"int", !6, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"vtable pointer", !7, i64 0}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = !{!9, !10, i64 0}
!23 = !{!10, !10, i64 0}
!24 = !{!9, !10, i64 8}
!25 = distinct !{!25, !20}
!26 = !{!27, !16, i64 24}
!27 = !{!"_ZTS4stat", !28, i64 0, !28, i64 8, !28, i64 16, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !28, i64 40, !28, i64 48, !28, i64 56, !28, i64 64, !29, i64 72, !29, i64 88, !29, i64 104, !6, i64 120}
!28 = !{!"long", !6, i64 0}
!29 = !{!"_ZTS8timespec", !28, i64 0, !28, i64 8}
!30 = !{!9, !16, i64 72}
!31 = !{!32, !15, i64 136}
!32 = !{!"_ZTS8TestDesc", !33, i64 0, !33, i64 32, !35, i64 64, !11, i64 88, !39, i64 112, !15, i64 136, !15, i64 137, !15, i64 138}
!33 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !34, i64 0, !28, i64 8, !6, i64 16}
!34 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!35 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_IS6_SaIS6_EEESaIS9_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEESaISA_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEESaISA_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEESaISA_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!39 = !{!"_ZTSSt6vectorIN8TestDesc7MessageESaIS1_EE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIN8TestDesc7MessageESaIS1_EE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN8TestDesc7MessageESaIS1_EE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIN8TestDesc7MessageESaIS1_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!43 = distinct !{!43, !20}
!44 = distinct !{!44, !20}
!45 = distinct !{!45, !20}
!46 = distinct !{!46, !20}
!47 = distinct !{!47, !20}
!48 = !{!49, !16, i64 0}
!49 = !{!"_ZTSN8TestDesc7MessageE", !16, i64 0, !50, i64 4, !33, i64 8}
!50 = !{!"_ZTSN8TestDesc7Message4TypeE", !6, i64 0}
!51 = !{!49, !50, i64 4}
!52 = !{!32, !15, i64 138}
!53 = distinct !{!53, !20}
!54 = !{!32, !15, i64 137}
!55 = distinct !{!55, !20}
!56 = distinct !{!56, !20}
!57 = !{!15, !15, i64 0}
!58 = !{i8 0, i8 2}
!59 = !{}
!60 = !{!28, !28, i64 0}
!61 = !{!9, !15, i64 88}


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