; LLVM IR from thepowersgang/mrustc :: tools/minicargo (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.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%struct.ProgramOptions = type { ptr, ptr, ptr, ptr, ptr, i8, ptr, %"class.std::vector", i32, i8, i8, i8, i8, i8, %"class.std::vector.0" }
%"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::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = 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 }
%class.Repository = type { %"class.std::multimap", %"class.std::map", ptr }
%"class.std::multimap" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree.8" }
%"class.std::_Rb_tree.8" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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] }
%"class.std::allocator.12" = type { i8 }
%class.WorkspaceManifest = type { %"class.std::map.15", i32, %"struct.WorkspaceManifest::Dependencies" }
%"class.std::map.15" = type { %"class.std::_Rb_tree.16" }
%"class.std::_Rb_tree.16" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, helpers::path>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, helpers::path>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, helpers::path>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, helpers::path>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.WorkspaceManifest::Dependencies" = type { %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl" }
%"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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.25 }
%union.anon.25 = type { i32 }
%class.TomlFile = type { %class.TomlLexer, %"class.std::vector.0", %"class.std::vector.26", i32, %"class.std::unordered_map" }
%class.TomlLexer = type <{ %"class.std::basic_ifstream", %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%"class.std::vector.26" = type { %"struct.std::_Vector_base.27" }
%"struct.std::_Vector_base.27" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%class.TomlFileIter = type { ptr, %struct.TomlKeyValue }
%struct.TomlKeyValue = type { %"class.std::vector.0", %struct.TomlValue }
%struct.TomlValue = type { i32, i64, %"class.std::__cxx11::basic_string", %"class.std::vector.36" }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl" }
%"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl" = type { %"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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 { i8 }
%class.anon.41 = type { ptr }
%class.anon.42 = type { i8 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%class.PackageManifest = type <{ %"class.helpers::path", %"class.std::__cxx11::basic_string", %struct.PackageVersion, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"struct.PackageManifest::Dependencies", %"class.std::map.44", %"class.std::vector.49", %class.BuildScriptOutput, %"class.std::map.64", %"class.std::vector.0", %"class.std::vector.0", i8, i8, [6 x i8] }>
%struct.PackageVersion = type { i32, i32, i32, i8, %"class.std::__cxx11::basic_string" }
%"struct.PackageManifest::Dependencies" = type { %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.std::map.44" = type { %"class.std::_Rb_tree.45" }
%"class.std::_Rb_tree.45" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.49" = type { %"struct.std::_Vector_base.50" }
%"struct.std::_Vector_base.50" = type { %"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl" }
%"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl" = type { %"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl_data" }
%"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.BuildScriptOutput = type { %"class.std::vector.0", %"class.std::vector.54", %"class.std::vector.54", %"class.std::vector.0", %"class.std::vector.0", %"class.std::vector.59", %"class.std::vector.59" }
%"class.std::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.59" = type { %"struct.std::_Vector_base.60" }
%"struct.std::_Vector_base.60" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.64" = type { %"class.std::_Rb_tree.65" }
%"class.std::_Rb_tree.65" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%struct.LockfileEnumState = type { ptr, %"class.std::map.69", %"class.std::set", %"class.std::vector.80" }
%"class.std::map.69" = type { %"class.std::_Rb_tree.70" }
%"class.std::_Rb_tree.70" = type { %"struct.std::_Rb_tree<Rule, std::pair<const Rule, const PackageManifest *>, std::_Select1st<std::pair<const Rule, const PackageManifest *>>, std::less<Rule>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<Rule, std::pair<const Rule, const PackageManifest *>, std::_Select1st<std::pair<const Rule, const PackageManifest *>>, std::less<Rule>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set" = type { %"class.std::_Rb_tree.75" }
%"class.std::_Rb_tree.75" = type { %"struct.std::_Rb_tree<const PackageManifest *, const PackageManifest *, std::_Identity<const PackageManifest *>, std::less<const PackageManifest *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const PackageManifest *, const PackageManifest *, std::_Identity<const PackageManifest *>, std::less<const PackageManifest *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl" }
%"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.DebugFunctionScope = type { ptr }
%class.anon.85 = type { ptr, ptr }
%"class.std::vector.86" = type { %"struct.std::_Vector_base.87" }
%"struct.std::_Vector_base.87" = type { %"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl" }
%"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.91" = type { %"class.std::_Function_base", ptr }
%class.anon.94 = type { ptr }
%class.anon.95 = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%class.anon.101 = type { ptr }
%"struct.std::pair.102" = type <{ %"struct.std::_Rb_tree_const_iterator.104", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator.104" = type { ptr }
%"struct.std::pair.105" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.108" = type { %struct.Rule, ptr }
%struct.Rule = type { %"class.std::__cxx11::basic_string", %struct.SemverRelease }
%struct.SemverRelease = type { i32, i32 }
%struct.BuildOptions = type <{ %"class.helpers::path", %"class.helpers::path", %"class.std::vector.112", i8, i8, [6 x i8], ptr, i32, [4 x i8] }>
%"class.std::vector.112" = type { %"struct.std::_Vector_base.113" }
%"struct.std::_Vector_base.113" = type { %"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl" }
%"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl" = type { %"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.117" = type { ptr }
%class.BuildList = type { ptr, %"class.std::vector.118" }
%"class.std::vector.118" = type { %"struct.std::_Vector_base.119" }
%"struct.std::_Vector_base.119" = type { %"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl" }
%"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl" = type { %"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", %"class.helpers::path" }
%struct.PackageVersionSpec = type { %"class.std::vector.96" }
%"class.std::vector.96" = type { %"struct.std::_Vector_base.97" }
%"struct.std::_Vector_base.97" = type { %"struct.std::_Vector_base<PackageVersionSpec::Bound, std::allocator<PackageVersionSpec::Bound>>::_Vector_impl" }
%"struct.std::_Vector_base<PackageVersionSpec::Bound, std::allocator<PackageVersionSpec::Bound>>::_Vector_impl" = type { %"struct.std::_Vector_base<PackageVersionSpec::Bound, std::allocator<PackageVersionSpec::Bound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<PackageVersionSpec::Bound, std::allocator<PackageVersionSpec::Bound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.110" = type { %struct.Rule, ptr }

@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@__FUNCTION__.main = external hidden unnamed_addr constant [5 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.16 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %struct.ProgramOptions, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca %class.Repository, align 8
  %12 = alloca %"class.helpers::path", align 8
  %13 = alloca %"class.helpers::path", align 8
  %14 = alloca %"class.helpers::path", align 8
  %15 = alloca %"class.helpers::path", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.12", align 1
  %18 = alloca %class.WorkspaceManifest, align 8
  %19 = alloca %"class.helpers::path", align 8
  %20 = alloca %"class.helpers::path", align 8
  %21 = alloca %"class.helpers::path", align 8
  %22 = alloca i8, align 1
  %23 = alloca %"class.std::basic_ifstream", align 8
  %24 = alloca i8, align 1
  %25 = alloca %class.TomlFile, align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca ptr, align 8
  %28 = alloca %class.TomlFileIter, align 8
  %29 = alloca %class.TomlFileIter, align 8
  %30 = alloca %struct.TomlKeyValue, align 8
  %31 = alloca %"class.helpers::path", align 8
  %32 = alloca %"class.std::function", align 8
  %33 = alloca %class.anon, align 1
  %34 = alloca %"class.std::function", align 8
  %35 = alloca %class.anon.41, align 8
  %36 = alloca %class.WorkspaceManifest, align 8
  %37 = alloca %"class.std::function", align 8
  %38 = alloca %class.anon.42, align 1
  %39 = alloca ptr, align 8
  %40 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %41 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"class.helpers::path", align 8
  %44 = alloca %class.PackageManifest, align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.helpers::path", align 8
  %47 = alloca %struct.LockfileEnumState, align 8
  %48 = alloca ptr, align 8
  %49 = alloca %"class.helpers::path", align 8
  %50 = alloca %struct.DebugFunctionScope, align 8
  %51 = alloca %"class.std::function", align 8
  %52 = alloca %class.anon.85, align 8
  %53 = alloca %"class.std::vector.86", align 8
  %54 = alloca %"class.std::function.91", align 8
  %55 = alloca %class.anon.94, align 8
  %56 = alloca %"class.std::function.91", align 8
  %57 = alloca %class.anon.95, align 8
  %58 = alloca ptr, align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %61 = alloca ptr, align 8
  %62 = alloca i8, align 1
  %63 = alloca ptr, align 8
  %64 = alloca %"class.std::shared_ptr", align 8
  %65 = alloca %"class.std::function", align 8
  %66 = alloca %class.anon.101, align 8
  %67 = alloca %"struct.std::pair.102", align 8
  %68 = alloca { ptr, i8 }, align 8
  %69 = alloca %"struct.std::pair.105", align 8
  %70 = alloca %"struct.std::pair.108", align 8
  %71 = alloca %struct.Rule, align 8
  %72 = alloca { ptr, i8 }, align 8
  %73 = alloca ptr, align 8
  %74 = alloca %struct.BuildOptions, align 8
  %75 = alloca %"class.helpers::path", align 8
  %76 = alloca ptr, align 8
  %77 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %78 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %79 = alloca ptr, align 8
  %80 = alloca %"class.helpers::path", align 8
  %81 = alloca %class.BuildList, align 8
  %82 = alloca %struct.BuildOptions, align 8
  %83 = alloca ptr, 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 120, ptr %6) #11
  call void @_ZN14ProgramOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(120) %6) #11
  %84 = load i32, ptr %4, align 4, !tbaa !5
  %85 = load ptr, ptr %5, align 8, !tbaa !9
  %86 = invoke noundef i32 @_ZN14ProgramOptions5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(120) %6, i32 noundef %84, ptr noundef %85)
          to label %87 unwind label %90

87:                                               ; preds = %2
  %88 = icmp ne i32 %86, 0
  br i1 %88, label %89, label %94

89:                                               ; preds = %87
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %824

90:                                               ; preds = %820, %818, %816, %101, %100, %99, %98, %97, %96, %95, %94, %2
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %7, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %8, align 4
  br label %826

94:                                               ; preds = %87
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str)
          to label %95 unwind label %90

95:                                               ; preds = %94
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str.1)
          to label %96 unwind label %90

96:                                               ; preds = %95
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str.2)
          to label %97 unwind label %90

97:                                               ; preds = %96
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str.3)
          to label %98 unwind label %90

98:                                               ; preds = %97
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str.4)
          to label %99 unwind label %90

99:                                               ; preds = %98
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str.5)
          to label %100 unwind label %90

100:                                              ; preds = %99
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str.6)
          to label %101 unwind label %90

101:                                              ; preds = %100
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef @.str.7)
          to label %102 unwind label %90

102:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  %103 = call ptr @getenv(ptr noundef @.str.8) #11
  store ptr %103, ptr %10, align 8, !tbaa !9
  %104 = load ptr, ptr %10, align 8, !tbaa !9
  %105 = icmp ne ptr %104, null
  br i1 %105, label %106, label %113

106:                                              ; preds = %102
  %107 = load ptr, ptr %10, align 8, !tbaa !9
  invoke void @_Z19Debug_ProcessEnablePKc(ptr noundef %107)
          to label %108 unwind label %109

108:                                              ; preds = %106
  br label %113

109:                                              ; preds = %106
  %110 = landingpad { ptr, i32 }
          cleanup
  %111 = extractvalue { ptr, i32 } %110, 0
  store ptr %111, ptr %7, align 8
  %112 = extractvalue { ptr, i32 } %110, 1
  store i32 %112, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  br label %826

113:                                              ; preds = %108, %102
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str)
          to label %114 unwind label %123

114:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 104, ptr %11) #11
  call void @_ZN10RepositoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %11) #11
  %115 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 3
  %116 = load ptr, ptr %115, align 8, !tbaa !11
  %117 = icmp ne ptr %116, null
  br i1 %117, label %118, label %136

118:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #11
  %119 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 3
  %120 = load ptr, ptr %119, align 8, !tbaa !11
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %120)
          to label %121 unwind label %127

121:                                              ; preds = %118
  invoke void @_ZN10Repository13load_vendoredERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104) %11, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %122 unwind label %131

122:                                              ; preds = %121
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #11
  br label %136

123:                                              ; preds = %113
  %124 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %7, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %8, align 4
  br label %772

127:                                              ; preds = %118
  %128 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %7, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %8, align 4
  br label %135

131:                                              ; preds = %121
  %132 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %7, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %8, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  br label %135

135:                                              ; preds = %131, %127
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #11
  br label %771

136:                                              ; preds = %122, %114
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #11
  %137 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 1
  %138 = load ptr, ptr %137, align 8, !tbaa !22
  %139 = icmp ne ptr %138, null
  br i1 %139, label %140, label %144

140:                                              ; preds = %136
  %141 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 1
  %142 = load ptr, ptr %141, align 8, !tbaa !22
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef %142)
          to label %143 unwind label %170

143:                                              ; preds = %140
  br label %146

144:                                              ; preds = %136
  invoke void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %145 unwind label %170

145:                                              ; preds = %144
  br label %146

146:                                              ; preds = %145, %143
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #11
  %147 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 0
  %148 = load ptr, ptr %147, align 8, !tbaa !23
  %149 = icmp ne ptr %148, null
  br i1 %149, label %150, label %153

150:                                              ; preds = %146
  %151 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 0
  %152 = load ptr, ptr %151, align 8, !tbaa !23
  br label %154

153:                                              ; preds = %146
  br label %154

154:                                              ; preds = %153, %150
  %155 = phi ptr [ %152, %150 ], [ @.str.9, %153 ]
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %155)
          to label %156 unwind label %174

156:                                              ; preds = %154
  invoke void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %157 unwind label %178

157:                                              ; preds = %156
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #11
  %158 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 6
  %159 = load ptr, ptr %158, align 8, !tbaa !24
  invoke void @_Z13Cfg_SetTargetPKc(ptr noundef %159)
          to label %160 unwind label %183

160:                                              ; preds = %157
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str.1)
          to label %161 unwind label %183

161:                                              ; preds = %160
  %162 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 2
  %163 = load ptr, ptr %162, align 8, !tbaa !25
  %164 = icmp ne ptr %163, null
  br i1 %164, label %165, label %196

165:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #11
  %166 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 2
  %167 = load ptr, ptr %166, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef %167, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %168 unwind label %187

168:                                              ; preds = %165
  invoke void @_Z22Manifest_LoadOverridesRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %169 unwind label %191

169:                                              ; preds = %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #11
  br label %196

170:                                              ; preds = %144, %140
  %171 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %7, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %8, align 4
  br label %770

174:                                              ; preds = %154
  %175 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %7, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %8, align 4
  br label %182

178:                                              ; preds = %156
  %179 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %7, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %8, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  br label %182

182:                                              ; preds = %178, %174
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #11
  br label %769

183:                                              ; preds = %196, %160, %157
  %184 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %7, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %8, align 4
  br label %768

187:                                              ; preds = %165
  %188 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %7, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %8, align 4
  br label %195

191:                                              ; preds = %168
  %192 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %7, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  br label %195

195:                                              ; preds = %191, %187
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #11
  br label %768

196:                                              ; preds = %169, %161
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str.3)
          to label %197 unwind label %183

197:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 128, ptr %18) #11
  invoke void @_ZN17WorkspaceManifestC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %198 unwind label %225

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #11
  invoke void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %199 unwind label %229

199:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #11
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.9)
          to label %200 unwind label %233

200:                                              ; preds = %199
  br label %201

201:                                              ; preds = %335, %200
  %202 = invoke noundef zeroext i1 @_ZN7helpers4path13pop_componentEv(ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %203 unwind label %237

203:                                              ; preds = %201
  br i1 %202, label %204, label %338

204:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #11
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.10)
          to label %205 unwind label %241

205:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #11
  call void @llvm.lifetime.start.p0(i64 520, ptr %23) #11
  %206 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %207 unwind label %245

207:                                              ; preds = %205
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %23, ptr noundef nonnull align 8 dereferenceable(32) %206, i32 noundef 8)
          to label %208 unwind label %245

208:                                              ; preds = %207
  %209 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %23)
          to label %210 unwind label %249

210:                                              ; preds = %208
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %23) #11
  call void @llvm.lifetime.end.p0(i64 520, ptr %23) #11
  %211 = zext i1 %209 to i8
  store i8 %211, ptr %22, align 1, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #11
  store i8 0, ptr %24, align 1, !tbaa !26
  %212 = load i8, ptr %22, align 1, !tbaa !26, !range !27, !noundef !28
  %213 = trunc i8 %212 to i1
  br i1 %213, label %214, label %328

214:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 672, ptr %25) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #11
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %215 unwind label %254

215:                                              ; preds = %214
  invoke void @_ZN8TomlFileC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(672) %25, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %216 unwind label %258

216:                                              ; preds = %215
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  store ptr %25, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 104, ptr %28) #11
  %217 = load ptr, ptr %27, align 8, !tbaa !9
  invoke void @_ZN8TomlFile5beginEv(ptr dead_on_unwind writable sret(%class.TomlFileIter) align 8 %28, ptr noundef nonnull align 8 dereferenceable(672) %217)
          to label %218 unwind label %263

218:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 104, ptr %29) #11
  %219 = load ptr, ptr %27, align 8, !tbaa !9
  invoke void @_ZN8TomlFile3endEv(ptr dead_on_unwind writable sret(%class.TomlFileIter) align 8 %29, ptr noundef nonnull align 8 dereferenceable(672) %219)
          to label %220 unwind label %267

220:                                              ; preds = %218
  br label %221

221:                                              ; preds = %319, %220
  %222 = invoke noundef zeroext i1 @_ZNK12TomlFileIterneERKS_(ptr noundef nonnull align 8 dereferenceable(104) %28, ptr noundef nonnull align 8 dereferenceable(104) %29)
          to label %223 unwind label %271

223:                                              ; preds = %221
  br i1 %222, label %275, label %224

224:                                              ; preds = %223
  store i32 4, ptr %9, align 4
  br label %322

225:                                              ; preds = %197
  %226 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %7, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %8, align 4
  br label %767

229:                                              ; preds = %198
  %230 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %7, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %8, align 4
  br label %766

233:                                              ; preds = %199
  %234 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %7, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %8, align 4
  br label %347

237:                                              ; preds = %201
  %238 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %7, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %8, align 4
  br label %346

241:                                              ; preds = %204
  %242 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %7, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %8, align 4
  br label %337

245:                                              ; preds = %207, %205
  %246 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %7, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %8, align 4
  br label %253

249:                                              ; preds = %208
  %250 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %7, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %8, align 4
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %23) #11
  br label %253

253:                                              ; preds = %249, %245
  call void @llvm.lifetime.end.p0(i64 520, ptr %23) #11
  br label %336

254:                                              ; preds = %214
  %255 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %7, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %8, align 4
  br label %262

258:                                              ; preds = %215
  %259 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %7, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  br label %262

262:                                              ; preds = %258, %254
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #11
  br label %327

263:                                              ; preds = %216
  %264 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %7, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %8, align 4
  br label %325

267:                                              ; preds = %218
  %268 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %7, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %8, align 4
  br label %324

271:                                              ; preds = %318, %221
  %272 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %7, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %8, align 4
  br label %323

275:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 96, ptr %30) #11
  invoke void @_ZNK12TomlFileIterdeEv(ptr dead_on_unwind writable sret(%struct.TomlKeyValue) align 8 %30, ptr noundef nonnull align 8 dereferenceable(104) %28)
          to label %276 unwind label %284

276:                                              ; preds = %275
  %277 = getelementptr inbounds %struct.TomlKeyValue, ptr %30, i32 0, i32 0
  %278 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %277, i64 noundef 0) #11
  %279 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef @.str.11)
          to label %280 unwind label %288

280:                                              ; preds = %276
  br i1 %279, label %281, label %292

281:                                              ; preds = %280
  store i8 1, ptr %24, align 1, !tbaa !26
  %282 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %283 unwind label %288

283:                                              ; preds = %281
  store i32 4, ptr %9, align 4
  br label %315

284:                                              ; preds = %275
  %285 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %7, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %8, align 4
  br label %321

288:                                              ; preds = %306, %297, %292, %281, %276
  %289 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %7, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %8, align 4
  br label %320

292:                                              ; preds = %280
  %293 = getelementptr inbounds %struct.TomlKeyValue, ptr %30, i32 0, i32 0
  %294 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %293, i64 noundef 0) #11
  %295 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef @.str.12)
          to label %296 unwind label %288

296:                                              ; preds = %292
  br i1 %295, label %297, label %314

297:                                              ; preds = %296
  %298 = getelementptr inbounds %struct.TomlKeyValue, ptr %30, i32 0, i32 0
  %299 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %298, i64 noundef 1) #11
  %300 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef @.str.11)
          to label %301 unwind label %288

301:                                              ; preds = %297
  br i1 %300, label %302, label %314

302:                                              ; preds = %301
  store i8 1, ptr %24, align 1, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #11
  %303 = getelementptr inbounds %struct.TomlKeyValue, ptr %30, i32 0, i32 1
  %304 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9TomlValue9as_stringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72) %303)
          to label %305 unwind label %310

305:                                              ; preds = %302
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %304)
          to label %306 unwind label %310

306:                                              ; preds = %305
  %307 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #11
  %308 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathdVEPKc(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.10)
          to label %309 unwind label %288

309:                                              ; preds = %306
  store i32 4, ptr %9, align 4
  br label %315

310:                                              ; preds = %305, %302
  %311 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %7, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #11
  br label %320

314:                                              ; preds = %301, %296
  store i32 0, ptr %9, align 4
  br label %315

315:                                              ; preds = %314, %309, %283
  call void @_ZN12TomlKeyValueD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %30) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr %30) #11
  %316 = load i32, ptr %9, align 4
  switch i32 %316, label %322 [
    i32 0, label %317
  ]

317:                                              ; preds = %315
  br label %318

318:                                              ; preds = %317
  invoke void @_ZN12TomlFileIterppEv(ptr noundef nonnull align 8 dereferenceable(104) %28)
          to label %319 unwind label %271

319:                                              ; preds = %318
  br label %221

320:                                              ; preds = %310, %288
  call void @_ZN12TomlKeyValueD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %30) #11
  br label %321

321:                                              ; preds = %320, %284
  call void @llvm.lifetime.end.p0(i64 96, ptr %30) #11
  br label %323

322:                                              ; preds = %315, %224
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %29) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %29) #11
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %28) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  br label %326

323:                                              ; preds = %321, %271
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %29) #11
  br label %324

324:                                              ; preds = %323, %267
  call void @llvm.lifetime.end.p0(i64 104, ptr %29) #11
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %28) #11
  br label %325

325:                                              ; preds = %324, %263
  call void @llvm.lifetime.end.p0(i64 104, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @_ZN8TomlFileD2Ev(ptr noundef nonnull align 8 dereferenceable(672) %25) #11
  br label %327

326:                                              ; preds = %322
  call void @_ZN8TomlFileD2Ev(ptr noundef nonnull align 8 dereferenceable(672) %25) #11
  call void @llvm.lifetime.end.p0(i64 672, ptr %25) #11
  br label %328

327:                                              ; preds = %325, %262
  call void @llvm.lifetime.end.p0(i64 672, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  br label %336

328:                                              ; preds = %326, %210
  %329 = load i8, ptr %24, align 1, !tbaa !26, !range !27, !noundef !28
  %330 = trunc i8 %329 to i1
  br i1 %330, label %331, label %332

331:                                              ; preds = %328
  store i32 3, ptr %9, align 4
  br label %333

332:                                              ; preds = %328
  store i32 0, ptr %9, align 4
  br label %333

333:                                              ; preds = %332, %331
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 1, 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
  %334 = load i32, ptr %9, align 4
  switch i32 %334, label %835 [
    i32 0, label %335
    i32 3, label %338
  ]

335:                                              ; preds = %333
  br label %201, !llvm.loop !29

336:                                              ; preds = %327, %253
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  br label %337

337:                                              ; preds = %336, %241
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #11
  br label %346

338:                                              ; preds = %333, %203
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #11
  %339 = invoke noundef zeroext i1 @_ZNK7helpers4path8is_validEv(ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %340 unwind label %348

340:                                              ; preds = %338
  br i1 %339, label %356, label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 1 dereferenceable(1) %33) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %32)
          to label %343 unwind label %352

343:                                              ; preds = %342
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #11
  br label %344

344:                                              ; preds = %343
  br label %345

345:                                              ; preds = %344
  br label %417

346:                                              ; preds = %337, %237
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  br label %347

347:                                              ; preds = %346, %233
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #11
  br label %765

348:                                              ; preds = %417, %415, %338
  %349 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %7, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %8, align 4
  br label %765

352:                                              ; preds = %342
  %353 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %7, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #11
  br label %765

356:                                              ; preds = %340
  br label %357

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  %358 = getelementptr inbounds %class.anon.41, ptr %35, i32 0, i32 0
  store ptr %19, ptr %358, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %34)
          to label %359 unwind label %379

359:                                              ; preds = %357
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %360

360:                                              ; preds = %359
  br label %361

361:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 128, ptr %36) #11
  invoke void @_ZN17WorkspaceManifest14load_from_tomlERKN7helpers4pathE(ptr dead_on_unwind writable sret(%class.WorkspaceManifest) align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %362 unwind label %383

362:                                              ; preds = %361
  %363 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN17WorkspaceManifestaSEOS_(ptr noundef nonnull align 8 dereferenceable(128) %18, ptr noundef nonnull align 8 dereferenceable(128) %36) #11
  call void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %36) #11
  call void @llvm.lifetime.end.p0(i64 128, ptr %36) #11
  br label %364

364:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %37)
          to label %365 unwind label %387

365:                                              ; preds = %364
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #11
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  %368 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK17WorkspaceManifest7patchesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %369 unwind label %391

369:                                              ; preds = %367
  store ptr %368, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  %370 = load ptr, ptr %39, align 8, !tbaa !9
  %371 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathESt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %370) #11
  %372 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %40, i32 0, i32 0
  store ptr %371, ptr %372, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #11
  %373 = load ptr, ptr %39, align 8, !tbaa !9
  %374 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathESt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %373) #11
  %375 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %41, i32 0, i32 0
  store ptr %374, ptr %375, align 8
  br label %376

376:                                              ; preds = %403, %369
  %377 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #11
  br i1 %377, label %395, label %378

378:                                              ; preds = %376
  store i32 12, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  br label %415

379:                                              ; preds = %357
  %380 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %7, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %765

383:                                              ; preds = %361
  %384 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %7, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 128, ptr %36) #11
  br label %765

387:                                              ; preds = %364
  %388 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %7, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #11
  br label %765

391:                                              ; preds = %367
  %392 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %7, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %8, align 4
  br label %414

395:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  %396 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #11
  store ptr %396, ptr %42, align 8, !tbaa !9
  %397 = load ptr, ptr %42, align 8, !tbaa !9
  %398 = getelementptr inbounds %"struct.std::pair", ptr %397, i32 0, i32 0
  %399 = load ptr, ptr %42, align 8, !tbaa !9
  %400 = getelementptr inbounds %"struct.std::pair", ptr %399, i32 0, i32 1
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %400)
          to label %401 unwind label %405

401:                                              ; preds = %395
  invoke void @_ZN10Repository14add_patch_pathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104) %11, ptr noundef nonnull align 8 dereferenceable(32) %398, ptr noundef %43)
          to label %402 unwind label %409

402:                                              ; preds = %401
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %403

403:                                              ; preds = %402
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #11
  br label %376

405:                                              ; preds = %395
  %406 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %7, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %8, align 4
  br label %413

409:                                              ; preds = %401
  %410 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %7, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %8, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  br label %413

413:                                              ; preds = %409, %405
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %414

414:                                              ; preds = %413, %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  br label %765

415:                                              ; preds = %378
  invoke void @_ZN10Repository13set_workspaceERK17WorkspaceManifest(ptr noundef nonnull align 8 dereferenceable(104) %11, ptr noundef nonnull align 8 dereferenceable(128) %18)
          to label %416 unwind label %348

416:                                              ; preds = %415
  br label %417

417:                                              ; preds = %416, %345
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str.2)
          to label %418 unwind label %348

418:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 600, ptr %44) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #11
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.10)
          to label %419 unwind label %436

419:                                              ; preds = %418
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %420 unwind label %440

420:                                              ; preds = %419
  invoke void @_ZN15PackageManifest14load_from_tomlERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK17WorkspaceManifest(ptr dead_on_unwind writable sret(%class.PackageManifest) align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef %18)
          to label %421 unwind label %444

421:                                              ; preds = %420
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #11
  %422 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 14
  %423 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 13
  %424 = load i8, ptr %423, align 8, !tbaa !31, !range !27, !noundef !28
  %425 = trunc i8 %424 to i1
  %426 = xor i1 %425, true
  invoke void @_ZN15PackageManifest12set_featuresERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEb(ptr noundef nonnull align 8 dereferenceable(594) %44, ptr noundef nonnull align 8 dereferenceable(24) %422, i1 noundef zeroext %426)
          to label %427 unwind label %450

427:                                              ; preds = %421
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str.4)
          to label %428 unwind label %450

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 128, ptr %47) #11
  invoke void @_ZZ4mainEN17LockfileEnumStateC2ERK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(128) %47, ptr noundef nonnull align 8 dereferenceable(594) %44)
          to label %429 unwind label %454

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %622, %429
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #11
  %431 = invoke noundef ptr @_ZZ4mainEN17LockfileEnumState3popEv(ptr noundef nonnull align 8 dereferenceable(128) %47)
          to label %432 unwind label %458

432:                                              ; preds = %430
  store ptr %431, ptr %48, align 8, !tbaa !9
  %433 = load ptr, ptr %48, align 8, !tbaa !9
  %434 = icmp ne ptr %433, null
  br i1 %434, label %462, label %435

435:                                              ; preds = %432
  store i32 15, ptr %9, align 4
  br label %620

436:                                              ; preds = %418
  %437 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %7, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %8, align 4
  br label %449

440:                                              ; preds = %419
  %441 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %7, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %8, align 4
  br label %448

444:                                              ; preds = %420
  %445 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %7, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  br label %448

448:                                              ; preds = %444, %440
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #11
  br label %449

449:                                              ; preds = %448, %436
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #11
  br label %764

450:                                              ; preds = %630, %628, %627, %427, %421
  %451 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %7, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %8, align 4
  br label %763

454:                                              ; preds = %428
  %455 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %7, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %8, align 4
  br label %678

458:                                              ; preds = %430
  %459 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %7, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %8, align 4
  br label %626

462:                                              ; preds = %432
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #11
  %463 = load ptr, ptr %48, align 8, !tbaa !9
  invoke void @_ZNK15PackageManifest9directoryEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %49, ptr noundef nonnull align 8 dereferenceable(594) %463)
          to label %464 unwind label %483

464:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #11
  %465 = getelementptr inbounds %class.anon.85, ptr %52, i32 0, i32 0
  store ptr %48, ptr %465, align 8, !tbaa !9
  %466 = getelementptr inbounds %class.anon.85, ptr %52, i32 0, i32 1
  store ptr %49, ptr %466, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(16) %52) #11
  invoke void @_ZN18DebugFunctionScopeC2EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef @__FUNCTION__.main, ptr noundef %51)
          to label %467 unwind label %487

467:                                              ; preds = %464
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #11
  call void @_ZNSt6vectorIPK10PackageRefSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #11
  %468 = load ptr, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  %469 = getelementptr inbounds %class.anon.94, ptr %55, i32 0, i32 0
  store ptr %53, ptr %469, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZ4mainE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(8) %55) #11
  invoke void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %468, ptr noundef %54)
          to label %470 unwind label %491

470:                                              ; preds = %467
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  %471 = load ptr, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %472 = getelementptr inbounds %class.anon.95, ptr %57, i32 0, i32 0
  store ptr %53, ptr %472, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZ4mainE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #11
  invoke void @_ZNK15PackageManifest23iter_build_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %471, ptr noundef %56)
          to label %473 unwind label %495

473:                                              ; preds = %470
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  store ptr %53, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  %474 = load ptr, ptr %58, align 8, !tbaa !9
  %475 = call ptr @_ZNSt6vectorIPK10PackageRefSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %474) #11
  %476 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %59, i32 0, i32 0
  store ptr %475, ptr %476, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %477 = load ptr, ptr %58, align 8, !tbaa !9
  %478 = call ptr @_ZNSt6vectorIPK10PackageRefSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %477) #11
  %479 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %60, i32 0, i32 0
  store ptr %478, ptr %479, align 8
  br label %480

480:                                              ; preds = %614, %473
  %481 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK10PackageRefSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %60) #11
  br i1 %481, label %499, label %482

482:                                              ; preds = %480
  store i32 16, ptr %9, align 4
  br label %618

483:                                              ; preds = %462
  %484 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %7, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %8, align 4
  br label %625

487:                                              ; preds = %464
  %488 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %7, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #11
  br label %624

491:                                              ; preds = %467
  %492 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %7, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %623

495:                                              ; preds = %470
  %496 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %7, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %623

499:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK10PackageRefSt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  %501 = load ptr, ptr %500, align 8, !tbaa !9
  store ptr %501, ptr %61, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #11
  %502 = load ptr, ptr %61, align 8, !tbaa !9
  %503 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10PackageRef11get_versionEv(ptr noundef nonnull align 8 dereferenceable(184) %502)
          to label %504 unwind label %520

504:                                              ; preds = %499
  %505 = getelementptr inbounds %struct.PackageVersionSpec, ptr %503, i32 0, i32 0
  %506 = call noundef zeroext i1 @_ZNKSt6vectorIN18PackageVersionSpec5BoundESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %505) #11
  %507 = xor i1 %506, true
  %508 = zext i1 %507 to i8
  store i8 %508, ptr %62, align 1, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #11
  %509 = load ptr, ptr %61, align 8, !tbaa !9
  invoke void @_ZN10PackageRef17load_manifest_rawER10RepositoryRKN7helpers4pathE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8 %64, ptr noundef nonnull align 8 dereferenceable(184) %509, ptr noundef nonnull align 8 dereferenceable(104) %11, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %510 unwind label %524

510:                                              ; preds = %504
  %511 = call noundef ptr @_ZNKSt12__shared_ptrI15PackageManifestLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %64) #11
  call void @_ZNSt12__shared_ptrI15PackageManifestLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #11
  store ptr %511, ptr %63, align 8, !tbaa !9
  %512 = load ptr, ptr %63, align 8, !tbaa !9
  %513 = icmp ne ptr %512, null
  br i1 %513, label %532, label %514

514:                                              ; preds = %510
  br label %515

515:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #11
  %516 = getelementptr inbounds %class.anon.101, ptr %66, i32 0, i32 0
  store ptr %61, ptr %516, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #11
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef %65)
          to label %517 unwind label %528

517:                                              ; preds = %515
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #11
  br label %518

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518
  store i32 17, ptr %9, align 4
  br label %608

520:                                              ; preds = %499
  %521 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %7, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %8, align 4
  br label %617

524:                                              ; preds = %504
  %525 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %7, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #11
  br label %616

528:                                              ; preds = %515
  %529 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %7, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #11
  br label %616

532:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #11
  %533 = getelementptr inbounds %struct.LockfileEnumState, ptr %47, i32 0, i32 2
  %534 = invoke { ptr, i8 } @_ZNSt3setIPK15PackageManifestSt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %533, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %535 unwind label %570

535:                                              ; preds = %532
  store { ptr, i8 } %534, ptr %68, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %67, ptr align 8 %68, i64 9, i1 false)
  %536 = getelementptr inbounds %"struct.std::pair.102", ptr %67, i32 0, i32 1
  %537 = load i8, ptr %536, align 8, !tbaa !32, !range !27, !noundef !28
  %538 = trunc i8 %537 to i1
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #11
  br i1 %538, label %539, label %607

539:                                              ; preds = %535
  %540 = getelementptr inbounds %struct.LockfileEnumState, ptr %47, i32 0, i32 3
  invoke void @_ZNSt6vectorIPK15PackageManifestSaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %540, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %541 unwind label %574

541:                                              ; preds = %539
  %542 = load i8, ptr %62, align 1, !tbaa !26, !range !27, !noundef !28
  %543 = trunc i8 %542 to i1
  br i1 %543, label %544, label %606

544:                                              ; preds = %541
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #11
  %545 = getelementptr inbounds %struct.LockfileEnumState, ptr %47, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 48, ptr %70) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %71) #11
  %546 = load ptr, ptr %63, align 8, !tbaa !9
  invoke void @_ZZ4mainEN4Rule12for_manifestERK15PackageManifest(ptr dead_on_unwind writable sret(%struct.Rule) align 8 %71, ptr noundef nonnull align 8 dereferenceable(594) %546)
          to label %547 unwind label %578

547:                                              ; preds = %544
  invoke void @_ZSt9make_pairIZ4mainE4RuleRPK15PackageManifestESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.108") align 8 %70, ptr noundef nonnull align 8 dereferenceable(40) %71, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %548 unwind label %582

548:                                              ; preds = %547
  %549 = invoke { ptr, i8 } @_ZNSt3mapIZ4mainE4RulePK15PackageManifestSt4lessIS0_ESaISt4pairIKS0_S3_EEE6insertIS6_IS0_S3_EEENSt9enable_ifIXsr16is_constructibleIS8_T_EE5valueES6_ISt17_Rb_tree_iteratorIS8_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48) %545, ptr noundef nonnull align 8 dereferenceable(48) %70)
          to label %550 unwind label %586

550:                                              ; preds = %548
  store { ptr, i8 } %549, ptr %72, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %69, ptr align 8 %72, i64 9, i1 false)
  call void @_ZNSt4pairIZ4mainE4RulePK15PackageManifestED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #11
  call void @_ZZ4mainEN4RuleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %71) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #11
  %551 = getelementptr inbounds %"struct.std::pair.105", ptr %69, i32 0, i32 0
  %552 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKZ4mainE4RulePK15PackageManifestEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %551) #11
  %553 = getelementptr inbounds %"struct.std::pair.110", ptr %552, i32 0, i32 1
  %554 = load ptr, ptr %553, align 8, !tbaa !35
  store ptr %554, ptr %73, align 8, !tbaa !9
  %555 = load ptr, ptr %73, align 8, !tbaa !9
  %556 = load ptr, ptr %63, align 8, !tbaa !9
  %557 = icmp ne ptr %555, %556
  br i1 %557, label %558, label %601

558:                                              ; preds = %550
  %559 = load ptr, ptr %73, align 8, !tbaa !9
  %560 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK15PackageManifest7versionEv(ptr noundef nonnull align 8 dereferenceable(594) %559)
          to label %561 unwind label %592

561:                                              ; preds = %558
  %562 = load ptr, ptr %63, align 8, !tbaa !9
  %563 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK15PackageManifest7versionEv(ptr noundef nonnull align 8 dereferenceable(594) %562)
          to label %564 unwind label %592

564:                                              ; preds = %561
  %565 = invoke noundef zeroext i1 @_ZNK14PackageVersionltERKS_(ptr noundef nonnull align 8 dereferenceable(48) %560, ptr noundef nonnull align 8 dereferenceable(48) %563)
          to label %566 unwind label %592

566:                                              ; preds = %564
  br i1 %565, label %567, label %596

567:                                              ; preds = %566
  %568 = load ptr, ptr %63, align 8, !tbaa !9
  invoke void @_ZN10Repository20blacklist_dependencyEPK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(104) %11, ptr noundef %568)
          to label %569 unwind label %592

569:                                              ; preds = %567
  br label %600

570:                                              ; preds = %532
  %571 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %7, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #11
  br label %616

574:                                              ; preds = %539
  %575 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %7, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %8, align 4
  br label %616

578:                                              ; preds = %544
  %579 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %7, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %8, align 4
  br label %591

582:                                              ; preds = %547
  %583 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %7, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %8, align 4
  br label %590

586:                                              ; preds = %548
  %587 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %7, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %8, align 4
  call void @_ZNSt4pairIZ4mainE4RulePK15PackageManifestED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #11
  br label %590

590:                                              ; preds = %586, %582
  call void @_ZZ4mainEN4RuleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %71) #11
  br label %591

591:                                              ; preds = %590, %578
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #11
  br label %605

592:                                              ; preds = %598, %596, %567, %564, %561, %558
  %593 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %7, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #11
  br label %605

596:                                              ; preds = %566
  %597 = load ptr, ptr %73, align 8, !tbaa !9
  invoke void @_ZN10Repository20blacklist_dependencyEPK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(104) %11, ptr noundef %597)
          to label %598 unwind label %592

598:                                              ; preds = %596
  invoke void @_ZZ4mainEN17LockfileEnumState5resetEv(ptr noundef nonnull align 8 dereferenceable(128) %47)
          to label %599 unwind label %592

599:                                              ; preds = %598
  store i32 16, ptr %9, align 4
  br label %602

600:                                              ; preds = %569
  br label %601

601:                                              ; preds = %600, %550
  store i32 0, ptr %9, align 4
  br label %602

602:                                              ; preds = %601, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #11
  %603 = load i32, ptr %9, align 4
  switch i32 %603, label %608 [
    i32 0, label %604
  ]

604:                                              ; preds = %602
  br label %606

605:                                              ; preds = %592, %591
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #11
  br label %616

606:                                              ; preds = %604, %541
  br label %607

607:                                              ; preds = %606, %535
  store i32 0, ptr %9, align 4
  br label %608

608:                                              ; preds = %607, %602, %519
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  %609 = load i32, ptr %9, align 4
  switch i32 %609, label %611 [
    i32 0, label %610
  ]

610:                                              ; preds = %608
  store i32 0, ptr %9, align 4
  br label %611

611:                                              ; preds = %610, %608
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  %612 = load i32, ptr %9, align 4
  switch i32 %612, label %618 [
    i32 0, label %613
    i32 17, label %614
  ]

613:                                              ; preds = %611
  br label %614

614:                                              ; preds = %613, %611
  %615 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPK10PackageRefSt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  br label %480

616:                                              ; preds = %605, %574, %570, %528, %524
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  br label %617

617:                                              ; preds = %616, %520
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %623

618:                                              ; preds = %611, %482
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %619

619:                                              ; preds = %618
  call void @_ZNSt6vectorIPK10PackageRefSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #11
  call void @_ZN18DebugFunctionScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #11
  store i32 0, ptr %9, align 4
  br label %620

620:                                              ; preds = %619, %435
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  %621 = load i32, ptr %9, align 4
  switch i32 %621, label %835 [
    i32 0, label %622
    i32 15, label %627
  ]

622:                                              ; preds = %620
  br label %430, !llvm.loop !42

623:                                              ; preds = %617, %495, %491
  call void @_ZNSt6vectorIPK10PackageRefSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #11
  call void @_ZN18DebugFunctionScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  br label %624

624:                                              ; preds = %623, %487
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  br label %625

625:                                              ; preds = %624, %483
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #11
  br label %626

626:                                              ; preds = %625, %458
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  call void @_ZZ4mainEN17LockfileEnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %47) #11
  br label %678

627:                                              ; preds = %620
  call void @_ZZ4mainEN17LockfileEnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %47) #11
  call void @llvm.lifetime.end.p0(i64 128, ptr %47) #11
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str.5)
          to label %628 unwind label %450

628:                                              ; preds = %627
  %629 = invoke noundef zeroext i1 @_ZNK7helpers4path8is_validEv(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %630 unwind label %450

630:                                              ; preds = %628
  %631 = xor i1 %629, true
  %632 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 11
  %633 = load i8, ptr %632, align 2, !tbaa !43, !range !27, !noundef !28
  %634 = trunc i8 %633 to i1
  invoke void @_ZN15PackageManifest17load_dependenciesER10Repositorybb(ptr noundef nonnull align 8 dereferenceable(594) %44, ptr noundef nonnull align 8 dereferenceable(104) %11, i1 noundef zeroext %631, i1 noundef zeroext %634)
          to label %635 unwind label %450

635:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 112, ptr %74) #11
  invoke void @_ZN12BuildOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(108) %74)
          to label %636 unwind label %679

636:                                              ; preds = %635
  %637 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 1
  %638 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %637, ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #11
  %639 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 4
  %640 = load ptr, ptr %639, align 8, !tbaa !44
  %641 = icmp ne ptr %640, null
  br i1 %641, label %642, label %646

642:                                              ; preds = %636
  %643 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 4
  %644 = load ptr, ptr %643, align 8, !tbaa !44
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef %644)
          to label %645 unwind label %683

645:                                              ; preds = %642
  br label %648

646:                                              ; preds = %636
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.13)
          to label %647 unwind label %683

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647, %645
  %649 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 0
  %650 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %649, ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #11
  %651 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 2
  %652 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 7
  %653 = call noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %652) #11
  invoke void @_ZNSt6vectorIN7helpers4pathESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %651, i64 noundef %653)
          to label %654 unwind label %687

654:                                              ; preds = %648
  %655 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 5
  %656 = load i8, ptr %655, align 8, !tbaa !45, !range !27, !noundef !28
  %657 = trunc i8 %656 to i1
  %658 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 3
  %659 = zext i1 %657 to i8
  store i8 %659, ptr %658, align 8, !tbaa !46
  %660 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 12
  %661 = load i8, ptr %660, align 1, !tbaa !54, !range !27, !noundef !28
  %662 = trunc i8 %661 to i1
  %663 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 4
  %664 = zext i1 %662 to i8
  store i8 %664, ptr %663, align 1, !tbaa !55
  %665 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 6
  %666 = load ptr, ptr %665, align 8, !tbaa !24
  %667 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 6
  store ptr %666, ptr %667, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #11
  %668 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 7
  store ptr %668, ptr %76, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #11
  %669 = load ptr, ptr %76, align 8, !tbaa !9
  %670 = call ptr @_ZNSt6vectorIPKcSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %669) #11
  %671 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %77, i32 0, i32 0
  store ptr %670, ptr %671, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %672 = load ptr, ptr %76, align 8, !tbaa !9
  %673 = call ptr @_ZNSt6vectorIPKcSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %672) #11
  %674 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %78, i32 0, i32 0
  store ptr %673, ptr %674, align 8
  br label %675

675:                                              ; preds = %698, %654
  %676 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKcSt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(8) %78) #11
  br i1 %676, label %691, label %677

677:                                              ; preds = %675
  store i32 20, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  br label %709

678:                                              ; preds = %626, %454
  call void @llvm.lifetime.end.p0(i64 128, ptr %47) #11
  br label %763

679:                                              ; preds = %635
  %680 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %7, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %8, align 4
  br label %762

683:                                              ; preds = %646, %642
  %684 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %7, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #11
  br label %761

687:                                              ; preds = %709, %648
  %688 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %7, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %8, align 4
  br label %761

691:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #11
  %692 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKcSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %77) #11
  %693 = load ptr, ptr %692, align 8, !tbaa !9
  store ptr %693, ptr %79, align 8, !tbaa !9
  %694 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #11
  %695 = load ptr, ptr %79, align 8, !tbaa !9
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef %695)
          to label %696 unwind label %700

696:                                              ; preds = %691
  invoke void @_ZNSt6vectorIN7helpers4pathESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %694, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %697 unwind label %704

697:                                              ; preds = %696
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  br label %698

698:                                              ; preds = %697
  %699 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKcSt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %77) #11
  br label %675

700:                                              ; preds = %691
  %701 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %7, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %8, align 4
  br label %708

704:                                              ; preds = %696
  %705 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %7, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %8, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #11
  br label %708

708:                                              ; preds = %704, %700
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  br label %761

709:                                              ; preds = %677
  %710 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 11
  %711 = load i8, ptr %710, align 2, !tbaa !43, !range !27, !noundef !28
  %712 = trunc i8 %711 to i1
  %713 = zext i1 %712 to i64
  %714 = select i1 %712, i32 1, i32 0
  %715 = getelementptr inbounds %struct.BuildOptions, ptr %74, i32 0, i32 7
  store i32 %714, ptr %715, align 8, !tbaa !57
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str.6)
          to label %716 unwind label %687

716:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #11
  invoke void @_ZN9BuildListC1ERK15PackageManifestRK12BuildOptions(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(594) %44, ptr noundef nonnull align 8 dereferenceable(108) %74)
          to label %717 unwind label %742

717:                                              ; preds = %716
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef @.str.7)
          to label %718 unwind label %746

718:                                              ; preds = %717
  call void @_ZN12BuildOptionsC2EOS_(ptr noundef nonnull align 8 dereferenceable(108) %82, ptr noundef nonnull align 8 dereferenceable(108) %74) #11
  %719 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 8
  %720 = load i32, ptr %719, align 8, !tbaa !58
  %721 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 9
  %722 = load i8, ptr %721, align 4, !tbaa !59, !range !27, !noundef !28
  %723 = trunc i8 %722 to i1
  %724 = invoke noundef zeroext i1 @_ZN9BuildList5buildE12BuildOptionsjb(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef %82, i32 noundef %720, i1 noundef zeroext %723)
          to label %725 unwind label %750

725:                                              ; preds = %718
  %726 = xor i1 %724, true
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %82) #11
  br i1 %726, label %727, label %755

727:                                              ; preds = %725
  %728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.14)
          to label %729 unwind label %746

729:                                              ; preds = %727
  %730 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %728, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %731 unwind label %746

731:                                              ; preds = %729
  %732 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 10
  %733 = load i8, ptr %732, align 1, !tbaa !60, !range !27, !noundef !28
  %734 = trunc i8 %733 to i1
  br i1 %734, label %735, label %754

735:                                              ; preds = %731
  %736 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
          to label %737 unwind label %746

737:                                              ; preds = %735
  %738 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %736, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %739 unwind label %746

739:                                              ; preds = %737
  %740 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin)
          to label %741 unwind label %746

741:                                              ; preds = %739
  br label %754

742:                                              ; preds = %716
  %743 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %7, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %8, align 4
  br label %760

746:                                              ; preds = %739, %737, %735, %729, %727, %717
  %747 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %7, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %8, align 4
  br label %759

750:                                              ; preds = %718
  %751 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %7, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %8, align 4
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %82) #11
  br label %759

754:                                              ; preds = %741, %731
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %756

755:                                              ; preds = %725
  store i32 0, ptr %9, align 4
  br label %756

756:                                              ; preds = %755, %754
  call void @_ZN9BuildListD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #11
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %74) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr %74) #11
  call void @_ZN15PackageManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(594) %44) #11
  call void @llvm.lifetime.end.p0(i64 600, ptr %44) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #11
  call void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %18) #11
  call void @llvm.lifetime.end.p0(i64 128, ptr %18) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @llvm.lifetime.end.p0(i64 32, 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
  call void @_ZN10RepositoryD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %11) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %11) #11
  %757 = load i32, ptr %9, align 4
  switch i32 %757, label %824 [
    i32 0, label %758
  ]

758:                                              ; preds = %756
  br label %812

759:                                              ; preds = %750, %746
  call void @_ZN9BuildListD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  br label %760

760:                                              ; preds = %759, %742
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #11
  br label %761

761:                                              ; preds = %760, %708, %687, %683
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %74) #11
  br label %762

762:                                              ; preds = %761, %679
  call void @llvm.lifetime.end.p0(i64 112, ptr %74) #11
  br label %763

763:                                              ; preds = %762, %678, %450
  call void @_ZN15PackageManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(594) %44) #11
  br label %764

764:                                              ; preds = %763, %449
  call void @llvm.lifetime.end.p0(i64 600, ptr %44) #11
  br label %765

765:                                              ; preds = %764, %414, %387, %383, %379, %352, %348, %347
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  br label %766

766:                                              ; preds = %765, %229
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #11
  call void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %18) #11
  br label %767

767:                                              ; preds = %766, %225
  call void @llvm.lifetime.end.p0(i64 128, ptr %18) #11
  br label %768

768:                                              ; preds = %767, %195, %183
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %769

769:                                              ; preds = %768, %182
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #11
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  br label %770

770:                                              ; preds = %769, %170
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #11
  br label %771

771:                                              ; preds = %770, %135
  call void @_ZN10RepositoryD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %11) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %11) #11
  br label %772

772:                                              ; preds = %771, %123
  %773 = load i32, ptr %8, align 4
  %774 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #11
  %775 = icmp eq i32 %773, %774
  br i1 %775, label %776, label %826

776:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  %777 = load ptr, ptr %7, align 8
  %778 = call ptr @__cxa_begin_catch(ptr %777) #11
  store ptr %778, ptr %83, align 8
  %779 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.16)
          to label %780 unwind label %800

780:                                              ; preds = %776
  %781 = load ptr, ptr %83, align 8, !tbaa !9
  %782 = load ptr, ptr %781, align 8, !tbaa !61
  %783 = getelementptr inbounds ptr, ptr %782, i64 2
  %784 = load ptr, ptr %783, align 8
  %785 = call noundef ptr %784(ptr noundef nonnull align 8 dereferenceable(8) %781) #11
  %786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %779, ptr noundef %785)
          to label %787 unwind label %800

787:                                              ; preds = %780
  %788 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %789 unwind label %800

789:                                              ; preds = %787
  %790 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 10
  %791 = load i8, ptr %790, align 1, !tbaa !60, !range !27, !noundef !28
  %792 = trunc i8 %791 to i1
  br i1 %792, label %793, label %804

793:                                              ; preds = %789
  %794 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
          to label %795 unwind label %800

795:                                              ; preds = %793
  %796 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %794, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %797 unwind label %800

797:                                              ; preds = %795
  %798 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin)
          to label %799 unwind label %800

799:                                              ; preds = %797
  br label %804

800:                                              ; preds = %797, %795, %793, %787, %780, %776
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %7, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %810 unwind label %832

804:                                              ; preds = %799, %789
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  invoke void @__cxa_end_catch()
          to label %805 unwind label %806

805:                                              ; preds = %804
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %824

806:                                              ; preds = %804
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %7, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %8, align 4
  br label %811

810:                                              ; preds = %800
  br label %811

811:                                              ; preds = %810, %806
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %826

812:                                              ; preds = %758
  %813 = getelementptr inbounds %struct.ProgramOptions, ptr %6, i32 0, i32 10
  %814 = load i8, ptr %813, align 1, !tbaa !60, !range !27, !noundef !28
  %815 = trunc i8 %814 to i1
  br i1 %815, label %816, label %823

816:                                              ; preds = %812
  %817 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
          to label %818 unwind label %90

818:                                              ; preds = %816
  %819 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %817, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %820 unwind label %90

820:                                              ; preds = %818
  %821 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin)
          to label %822 unwind label %90

822:                                              ; preds = %820
  br label %823

823:                                              ; preds = %822, %812
  store i32 0, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %824

824:                                              ; preds = %823, %805, %756, %89
  call void @_ZN14ProgramOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %6) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %6) #11
  %825 = load i32, ptr %3, align 4
  ret i32 %825

826:                                              ; preds = %811, %772, %109, %90
  call void @_ZN14ProgramOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %6) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %6) #11
  br label %827

827:                                              ; preds = %826
  %828 = load ptr, ptr %7, align 8
  %829 = load i32, ptr %8, align 4
  %830 = insertvalue { ptr, i32 } poison, ptr %828, 0
  %831 = insertvalue { ptr, i32 } %830, i32 %829, 1
  resume { ptr, i32 } %831

832:                                              ; preds = %800
  %833 = landingpad { ptr, i32 }
          catch ptr null
  %834 = extractvalue { ptr, i32 } %833, 0
  call void @__clang_call_terminate(ptr %834) #12
  unreachable

835:                                              ; preds = %620, %333
  unreachable
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14ProgramOptions5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef, ptr noundef) #3 align 2

declare i32 @__gxx_personality_v0(...)

declare void @_Z18Debug_DisablePhasePKc(ptr noundef) #4

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

declare void @_Z19Debug_ProcessEnablePKc(ptr noundef) #4

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

declare void @_Z14Debug_SetPhasePKc(ptr noundef) #4

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

declare void @_ZN10Repository13load_vendoredERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

declare void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #4

declare void @_Z13Cfg_SetTargetPKc(ptr noundef) #4

declare void @_Z22Manifest_LoadOverridesRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

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

declare void @_ZN17WorkspaceManifestC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) 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) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7helpers4path13pop_componentEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 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)) #6 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 #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #6 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)) #3 align 2

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

declare void @_ZN8TomlFile5beginEv(ptr dead_on_unwind writable sret(%class.TomlFileIter) align 8, ptr noundef nonnull align 8 dereferenceable(672)) #4

declare void @_ZN8TomlFile3endEv(ptr dead_on_unwind writable sret(%class.TomlFileIter) align 8, ptr noundef nonnull align 8 dereferenceable(672)) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK12TomlFileIterdeEv(ptr dead_on_unwind noalias writable sret(%struct.TomlKeyValue) align 8, ptr noundef nonnull align 8 dereferenceable(104)) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9TomlValue9as_stringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72)) #3 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 #3 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)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12TomlFileIterppEv(ptr noundef nonnull align 8 dereferenceable(104)) #3 align 2

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

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

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

declare void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef) #4

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

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

declare void @_ZN17WorkspaceManifest14load_from_tomlERKN7helpers4pathE(ptr dead_on_unwind writable sret(%class.WorkspaceManifest) align 8, ptr noundef nonnull align 8 dereferenceable(32)) #4

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128)) 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 #6 align 2

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

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

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

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

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

declare void @_ZN10Repository14add_patch_pathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10Repository13set_workspaceERK17WorkspaceManifest(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(128)) #6 align 2

declare void @_ZN15PackageManifest14load_from_tomlERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK17WorkspaceManifest(ptr dead_on_unwind writable sret(%class.PackageManifest) align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #4

declare void @_ZN15PackageManifest12set_featuresERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEb(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ4mainEN17LockfileEnumStateC2ERK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(594)) unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest23iter_build_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) #3 align 2

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

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

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

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

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

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

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

declare void @_ZN10PackageRef17load_manifest_rawER10RepositoryRKN7helpers4pathE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrI15PackageManifestLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 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(8)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIPK15PackageManifestSt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #3 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) #8

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

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i8 } @_ZNSt3mapIZ4mainE4RulePK15PackageManifestSt4lessIS0_ESaISt4pairIKS0_S3_EEE6insertIS6_IS0_S3_EEENSt9enable_ifIXsr16is_constructibleIS8_T_EE5valueES6_ISt17_Rb_tree_iteratorIS8_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZSt9make_pairIZ4mainE4RuleRPK15PackageManifestESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.108") align 8, ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ4mainEN4Rule12for_manifestERK15PackageManifest(ptr dead_on_unwind noalias writable sret(%struct.Rule) align 8, ptr noundef nonnull align 8 dereferenceable(594)) #3 align 2

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

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

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

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

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

declare void @_ZN10Repository20blacklist_dependencyEPK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef) #4

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

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

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

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

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

declare void @_ZN15PackageManifest17load_dependenciesER10Repositorybb(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef nonnull align 8 dereferenceable(104), i1 noundef zeroext, i1 noundef zeroext) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN12BuildOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(108)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7helpers4pathESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN9BuildList5buildE12BuildOptionsjb(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, i1 noundef zeroext) #4

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

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

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

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

declare noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16)) #4

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

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

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

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #9

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #10

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !10, i64 24}
!12 = !{!"_ZTS14ProgramOptions", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !13, i64 40, !10, i64 48, !14, i64 56, !6, i64 80, !13, i64 84, !13, i64 85, !13, i64 86, !13, i64 87, !13, i64 88, !18, i64 96}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSSt6vectorIPKcSaIS1_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIPKcSaIS1_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPKcSaIS1_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIPKcSaIS1_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!18 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!22 = !{!12, !10, i64 8}
!23 = !{!12, !10, i64 0}
!24 = !{!12, !10, i64 48}
!25 = !{!12, !10, i64 16}
!26 = !{!13, !13, i64 0}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!12, !13, i64 88}
!32 = !{!33, !13, i64 8}
!33 = !{!"_ZTSSt4pairISt23_Rb_tree_const_iteratorIPK15PackageManifestEbE", !34, i64 0, !13, i64 8}
!34 = !{!"_ZTSSt23_Rb_tree_const_iteratorIPK15PackageManifestE", !10, i64 0}
!35 = !{!36, !10, i64 40}
!36 = !{!"_ZTSSt4pairIKZ4mainE4RulePK15PackageManifestE", !37, i64 0, !10, i64 40}
!37 = !{!"_ZTSZ4mainE4Rule", !38, i64 0, !41, i64 32}
!38 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !39, i64 0, !40, i64 8, !7, i64 16}
!39 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!40 = !{!"long", !7, i64 0}
!41 = !{!"_ZTSZ4mainE13SemverRelease", !6, i64 0, !6, i64 4}
!42 = distinct !{!42, !30}
!43 = !{!12, !13, i64 86}
!44 = !{!12, !10, i64 32}
!45 = !{!12, !13, i64 40}
!46 = !{!47, !13, i64 88}
!47 = !{!"_ZTS12BuildOptions", !48, i64 0, !48, i64 32, !49, i64 64, !13, i64 88, !13, i64 89, !10, i64 96, !53, i64 104}
!48 = !{!"_ZTSN7helpers4pathE", !38, i64 0}
!49 = !{!"_ZTSSt6vectorIN7helpers4pathESaIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN7helpers4pathESaIS1_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!53 = !{!"_ZTSN12BuildOptions4ModeE", !7, i64 0}
!54 = !{!12, !13, i64 87}
!55 = !{!47, !13, i64 89}
!56 = !{!47, !10, i64 96}
!57 = !{!47, !53, i64 104}
!58 = !{!12, !6, i64 80}
!59 = !{!12, !13, i64 84}
!60 = !{!12, !13, i64 85}
!61 = !{!62, !62, i64 0}
!62 = !{!"vtable pointer", !8, i64 0}


; 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.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%struct.ProgramOptions = type { ptr, ptr, ptr, ptr, ptr, i8, ptr, %"class.std::vector", i32, i8, i8, i8, i8, i8, %"class.std::vector.0" }
%"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::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = 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 }
%class.Repository = type { %"class.std::multimap", %"class.std::map", ptr }
%"class.std::multimap" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Repository::Entry>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree.8" }
%"class.std::_Rb_tree.8" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<PackageManifest>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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] }
%"class.std::allocator.12" = type { i8 }
%class.WorkspaceManifest = type { %"class.std::map.15", i32, %"struct.WorkspaceManifest::Dependencies" }
%"class.std::map.15" = type { %"class.std::_Rb_tree.16" }
%"class.std::_Rb_tree.16" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, helpers::path>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, helpers::path>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, helpers::path>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, helpers::path>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.WorkspaceManifest::Dependencies" = type { %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl" }
%"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<PackageRef, std::allocator<PackageRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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.25 }
%union.anon.25 = type { i32 }
%class.TomlFile = type { %class.TomlLexer, %"class.std::vector.0", %"class.std::vector.26", i32, %"class.std::unordered_map" }
%class.TomlLexer = type <{ %"class.std::basic_ifstream", %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%"class.std::vector.26" = type { %"struct.std::_Vector_base.27" }
%"struct.std::_Vector_base.27" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%class.TomlFileIter = type { ptr, %struct.TomlKeyValue }
%struct.TomlKeyValue = type { %"class.std::vector.0", %struct.TomlValue }
%struct.TomlValue = type { i32, i64, %"class.std::__cxx11::basic_string", %"class.std::vector.36" }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl" }
%"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl" = type { %"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TomlValue, std::allocator<TomlValue>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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 { i8 }
%class.anon.41 = type { ptr }
%class.anon.42 = type { i8 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%class.PackageManifest = type <{ %"class.helpers::path", %"class.std::__cxx11::basic_string", %struct.PackageVersion, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"struct.PackageManifest::Dependencies", %"class.std::map.44", %"class.std::vector.49", %class.BuildScriptOutput, %"class.std::map.64", %"class.std::vector.0", %"class.std::vector.0", i8, i8, [6 x i8] }>
%struct.PackageVersion = type { i32, i32, i32, i8, %"class.std::__cxx11::basic_string" }
%"struct.PackageManifest::Dependencies" = type { %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20" }
%"class.std::map.44" = type { %"class.std::_Rb_tree.45" }
%"class.std::_Rb_tree.45" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, PackageManifest::Dependencies>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.49" = type { %"struct.std::_Vector_base.50" }
%"struct.std::_Vector_base.50" = type { %"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl" }
%"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl" = type { %"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl_data" }
%"struct.std::_Vector_base<PackageTarget, std::allocator<PackageTarget>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.BuildScriptOutput = type { %"class.std::vector.0", %"class.std::vector.54", %"class.std::vector.54", %"class.std::vector.0", %"class.std::vector.0", %"class.std::vector.59", %"class.std::vector.59" }
%"class.std::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.59" = type { %"struct.std::_Vector_base.60" }
%"struct.std::_Vector_base.60" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.64" = type { %"class.std::_Rb_tree.65" }
%"class.std::_Rb_tree.65" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char>>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%struct.LockfileEnumState = type { ptr, %"class.std::map.69", %"class.std::set", %"class.std::vector.80" }
%"class.std::map.69" = type { %"class.std::_Rb_tree.70" }
%"class.std::_Rb_tree.70" = type { %"struct.std::_Rb_tree<Rule, std::pair<const Rule, const PackageManifest *>, std::_Select1st<std::pair<const Rule, const PackageManifest *>>, std::less<Rule>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<Rule, std::pair<const Rule, const PackageManifest *>, std::_Select1st<std::pair<const Rule, const PackageManifest *>>, std::less<Rule>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set" = type { %"class.std::_Rb_tree.75" }
%"class.std::_Rb_tree.75" = type { %"struct.std::_Rb_tree<const PackageManifest *, const PackageManifest *, std::_Identity<const PackageManifest *>, std::less<const PackageManifest *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const PackageManifest *, const PackageManifest *, std::_Identity<const PackageManifest *>, std::less<const PackageManifest *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl" }
%"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const PackageManifest *, std::allocator<const PackageManifest *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.DebugFunctionScope = type { ptr }
%class.anon.85 = type { ptr, ptr }
%"class.std::vector.86" = type { %"struct.std::_Vector_base.87" }
%"struct.std::_Vector_base.87" = type { %"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl" }
%"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const PackageRef *, std::allocator<const PackageRef *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.91" = type { %"class.std::_Function_base", ptr }
%class.anon.94 = type { ptr }
%class.anon.95 = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%class.anon.101 = type { ptr }
%"struct.std::pair.105" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.108" = type { %struct.Rule, ptr }
%struct.Rule = type { %"class.std::__cxx11::basic_string", %struct.SemverRelease }
%struct.SemverRelease = type { i32, i32 }
%struct.BuildOptions = type <{ %"class.helpers::path", %"class.helpers::path", %"class.std::vector.112", i8, i8, [6 x i8], ptr, i32, [4 x i8] }>
%"class.std::vector.112" = type { %"struct.std::_Vector_base.113" }
%"struct.std::_Vector_base.113" = type { %"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl" }
%"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl" = type { %"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.117" = type { ptr }
%class.BuildList = type { ptr, %"class.std::vector.118" }
%"class.std::vector.118" = type { %"struct.std::_Vector_base.119" }
%"struct.std::_Vector_base.119" = type { %"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl" }
%"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl" = type { %"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<BuildList::Entry, std::allocator<BuildList::Entry>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@__FUNCTION__.main = external hidden unnamed_addr constant [5 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.16 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.ProgramOptions, align 8
  %4 = alloca %class.Repository, align 8
  %5 = alloca %"class.helpers::path", align 8
  %6 = alloca %"class.helpers::path", align 8
  %7 = alloca %"class.helpers::path", align 8
  %8 = alloca %"class.helpers::path", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator.12", align 1
  %11 = alloca %class.WorkspaceManifest, align 8
  %12 = alloca %"class.helpers::path", align 8
  %13 = alloca %"class.helpers::path", align 8
  %14 = alloca %"class.helpers::path", align 8
  %15 = alloca %"class.std::basic_ifstream", align 8
  %16 = alloca %class.TomlFile, align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %class.TomlFileIter, align 8
  %19 = alloca %class.TomlFileIter, align 8
  %20 = alloca %struct.TomlKeyValue, align 8
  %21 = alloca %"class.helpers::path", align 8
  %22 = alloca %"class.std::function", align 8
  %23 = alloca %class.anon, align 1
  %24 = alloca %"class.std::function", align 8
  %25 = alloca %class.anon.41, align 8
  %26 = alloca %class.WorkspaceManifest, align 8
  %27 = alloca %"class.std::function", align 8
  %28 = alloca %class.anon.42, align 1
  %29 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %30 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %31 = alloca %"class.helpers::path", align 8
  %32 = alloca %class.PackageManifest, align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.helpers::path", align 8
  %35 = alloca %struct.LockfileEnumState, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %"class.helpers::path", align 8
  %38 = alloca %struct.DebugFunctionScope, align 8
  %39 = alloca %"class.std::function", align 8
  %40 = alloca %class.anon.85, align 8
  %41 = alloca %"class.std::vector.86", align 8
  %42 = alloca %"class.std::function.91", align 8
  %43 = alloca %class.anon.94, align 8
  %44 = alloca %"class.std::function.91", align 8
  %45 = alloca %class.anon.95, align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca %"class.std::shared_ptr", align 8
  %51 = alloca %"class.std::function", align 8
  %52 = alloca %class.anon.101, align 8
  %53 = alloca %"struct.std::pair.105", align 8
  %54 = alloca %"struct.std::pair.108", align 8
  %55 = alloca %struct.Rule, align 8
  %56 = alloca %struct.BuildOptions, align 8
  %57 = alloca %"class.helpers::path", align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %60 = alloca %"class.helpers::path", align 8
  %61 = alloca %class.BuildList, align 8
  %62 = alloca %struct.BuildOptions, align 8
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %3) #10
  call void @_ZN14ProgramOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(120) %3) #10
  %63 = invoke noundef i32 @_ZN14ProgramOptions5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(120) %3, i32 noundef %0, ptr noundef %1)
          to label %64 unwind label %65

64:                                               ; preds = %2
  %.not = icmp eq i32 %63, 0
  br i1 %.not, label %67, label %476

65:                                               ; preds = %474, %472, %470, %74, %73, %72, %71, %70, %69, %68, %67, %2
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %477

67:                                               ; preds = %64
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str)
          to label %68 unwind label %65

68:                                               ; preds = %67
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str.1)
          to label %69 unwind label %65

69:                                               ; preds = %68
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str.2)
          to label %70 unwind label %65

70:                                               ; preds = %69
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str.3)
          to label %71 unwind label %65

71:                                               ; preds = %70
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str.4)
          to label %72 unwind label %65

72:                                               ; preds = %71
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str.5)
          to label %73 unwind label %65

73:                                               ; preds = %72
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str.6)
          to label %74 unwind label %65

74:                                               ; preds = %73
  invoke void @_Z18Debug_DisablePhasePKc(ptr noundef nonnull @.str.7)
          to label %75 unwind label %65

75:                                               ; preds = %74
  %76 = call ptr @getenv(ptr noundef nonnull @.str.8) #10
  %.not98 = icmp eq ptr %76, null
  br i1 %.not98, label %80, label %77

77:                                               ; preds = %75
  invoke void @_Z19Debug_ProcessEnablePKc(ptr noundef nonnull %76)
          to label %80 unwind label %78

78:                                               ; preds = %77
  %79 = landingpad { ptr, i32 }
          cleanup
  br label %477

80:                                               ; preds = %77, %75
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str)
          to label %81 unwind label %87

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %4) #10
  call void @_ZN10RepositoryC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %4) #10
  %82 = getelementptr inbounds i8, ptr %3, i64 24
  %83 = load ptr, ptr %82, align 8, !tbaa !5
  %.not99 = icmp eq ptr %83, null
  br i1 %.not99, label %94, label %84

84:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #10
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %83)
          to label %85 unwind label %89

85:                                               ; preds = %84
  invoke void @_ZN10Repository13load_vendoredERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %86 unwind label %91

86:                                               ; preds = %85
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #10
  br label %94

87:                                               ; preds = %80
  %88 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %437

89:                                               ; preds = %84
  %90 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %93

91:                                               ; preds = %85
  %92 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #10
  br label %93

93:                                               ; preds = %91, %89
  %.pn = phi { ptr, i32 } [ %92, %91 ], [ %90, %89 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #10
  br label %436

94:                                               ; preds = %86, %81
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #10
  %95 = getelementptr inbounds i8, ptr %3, i64 8
  %96 = load ptr, ptr %95, align 8, !tbaa !20
  %.not101 = icmp eq ptr %96, null
  br i1 %.not101, label %98, label %97

97:                                               ; preds = %94
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %96)
          to label %99 unwind label %113

98:                                               ; preds = %94
  call void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6)
  br label %99

99:                                               ; preds = %97, %98
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #10
  %100 = load ptr, ptr %3, align 8
  %.not102 = icmp eq ptr %100, null
  %101 = select i1 %.not102, ptr @.str.9, ptr %100
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull %101)
          to label %102 unwind label %115

102:                                              ; preds = %99
  invoke void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %103 unwind label %117

103:                                              ; preds = %102
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  %104 = getelementptr inbounds i8, ptr %3, i64 48
  %105 = load ptr, ptr %104, align 8, !tbaa !21
  invoke void @_Z13Cfg_SetTargetPKc(ptr noundef %105)
          to label %106 unwind label %120

106:                                              ; preds = %103
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str.1)
          to label %107 unwind label %120

107:                                              ; preds = %106
  %108 = getelementptr inbounds i8, ptr %3, i64 16
  %109 = load ptr, ptr %108, align 8, !tbaa !22
  %.not105 = icmp eq ptr %109, null
  br i1 %.not105, label %127, label %110

110:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull %109, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %111 unwind label %122

111:                                              ; preds = %110
  invoke void @_Z22Manifest_LoadOverridesRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %112 unwind label %124

112:                                              ; preds = %111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  br label %127

113:                                              ; preds = %97
  %114 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %435

115:                                              ; preds = %99
  %116 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %119

117:                                              ; preds = %102
  %118 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  br label %119

119:                                              ; preds = %117, %115
  %.pn103 = phi { ptr, i32 } [ %118, %117 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  br label %434

120:                                              ; preds = %127, %106, %103
  %121 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %433

122:                                              ; preds = %110
  %123 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %126

124:                                              ; preds = %111
  %125 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  br label %126

126:                                              ; preds = %124, %122
  %.pn106 = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  br label %433

127:                                              ; preds = %112, %107
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str.3)
          to label %128 unwind label %120

128:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %11) #10
  invoke void @_ZN17WorkspaceManifestC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11)
          to label %129 unwind label %144

129:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #10
  call void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #10
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.9)
          to label %.preheader176 unwind label %146

.preheader176:                                    ; preds = %129
  %130 = getelementptr inbounds i8, ptr %20, i64 24
  br label %.backedge

.critedge:                                        ; preds = %136
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  br label %.backedge.backedge

.backedge.backedge:                               ; preds = %.critedge, %.critedge173
  br label %.backedge

.critedge173:                                     ; preds = %143
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %19) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %19) #10
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %18) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %18) #10
  call void @_ZN8TomlFileD2Ev(ptr noundef nonnull align 8 dereferenceable(672) %16) #10
  call void @llvm.lifetime.end.p0(i64 672, ptr nonnull %16) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  br label %.backedge.backedge

.backedge:                                        ; preds = %.backedge.backedge, %.preheader176
  %131 = invoke noundef zeroext i1 @_ZN7helpers4path13pop_componentEv(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %132 unwind label %148

132:                                              ; preds = %.backedge
  br i1 %131, label %133, label %.loopexit193

133:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #10
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.10)
          to label %134 unwind label %150

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %15) #10
  %135 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %14)
  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) %135, i32 noundef 8)
          to label %136 unwind label %152

136:                                              ; preds = %134
  %137 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %15)
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15) #10
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %15) #10
  br i1 %137, label %138, label %.critedge

138:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 672, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #10
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %139 unwind label %154

139:                                              ; preds = %138
  invoke void @_ZN8TomlFileC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(672) %16, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %140 unwind label %156

140:                                              ; preds = %139
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %18) #10
  invoke void @_ZN8TomlFile5beginEv(ptr dead_on_unwind nonnull writable sret(%class.TomlFileIter) align 8 %18, ptr noundef nonnull align 8 dereferenceable(672) %16)
          to label %141 unwind label %159

141:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %19) #10
  invoke void @_ZN8TomlFile3endEv(ptr dead_on_unwind nonnull writable sret(%class.TomlFileIter) align 8 %19, ptr noundef nonnull align 8 dereferenceable(672) %16)
          to label %.preheader175 unwind label %161

.preheader175:                                    ; preds = %141, %190
  %142 = invoke noundef zeroext i1 @_ZNK12TomlFileIterneERKS_(ptr noundef nonnull align 8 dereferenceable(104) %18, ptr noundef nonnull align 8 dereferenceable(104) %19)
          to label %143 unwind label %163

143:                                              ; preds = %.preheader175
  br i1 %142, label %165, label %.critedge173

144:                                              ; preds = %128
  %145 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %432

146:                                              ; preds = %129
  %147 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %204

148:                                              ; preds = %.backedge
  %149 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %203

150:                                              ; preds = %133
  %151 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %198

152:                                              ; preds = %134
  %153 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %15) #10
  br label %197

154:                                              ; preds = %138
  %155 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %158

156:                                              ; preds = %139
  %157 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %158

158:                                              ; preds = %156, %154
  %.pn108 = phi { ptr, i32 } [ %157, %156 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  br label %196

159:                                              ; preds = %140
  %160 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %195

161:                                              ; preds = %141
  %162 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %194

163:                                              ; preds = %190, %.preheader175
  %164 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %193

165:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %20) #10
  invoke void @_ZNK12TomlFileIterdeEv(ptr dead_on_unwind nonnull writable sret(%struct.TomlKeyValue) align 8 %20, ptr noundef nonnull align 8 dereferenceable(104) %18)
          to label %166 unwind label %171

166:                                              ; preds = %165
  %167 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 0) #10
  %168 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull @.str.11)
  br i1 %168, label %169, label %175

169:                                              ; preds = %166
  %170 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %189 unwind label %173

171:                                              ; preds = %165
  %172 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %192

173:                                              ; preds = %184, %169
  %174 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %191

175:                                              ; preds = %166
  %176 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 0) #10
  %177 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull @.str.12)
  br i1 %177, label %178, label %190

178:                                              ; preds = %175
  %179 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef 1) #10
  %180 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull @.str.11)
  br i1 %180, label %181, label %190

181:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #10
  %182 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9TomlValue9as_stringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72) %130)
          to label %183 unwind label %187

183:                                              ; preds = %181
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %184 unwind label %187

184:                                              ; preds = %183
  %185 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  %186 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathdVEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.10)
          to label %189 unwind label %173

187:                                              ; preds = %183, %181
  %188 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #10
  br label %191

189:                                              ; preds = %184, %169
  call void @_ZN12TomlKeyValueD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %20) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %20) #10
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %19) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %19) #10
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %18) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %18) #10
  call void @_ZN8TomlFileD2Ev(ptr noundef nonnull align 8 dereferenceable(672) %16) #10
  call void @llvm.lifetime.end.p0(i64 672, ptr nonnull %16) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  br label %.loopexit193

190:                                              ; preds = %178, %175
  call void @_ZN12TomlKeyValueD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %20) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %20) #10
  invoke void @_ZN12TomlFileIterppEv(ptr noundef nonnull align 8 dereferenceable(104) %18)
          to label %.preheader175 unwind label %163

191:                                              ; preds = %187, %173
  %.pn110 = phi { ptr, i32 } [ %174, %173 ], [ %188, %187 ]
  call void @_ZN12TomlKeyValueD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %20) #10
  br label %192

192:                                              ; preds = %191, %171
  %.pn110.pn = phi { ptr, i32 } [ %.pn110, %191 ], [ %172, %171 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %20) #10
  br label %193

193:                                              ; preds = %192, %163
  %.pn141 = phi { ptr, i32 } [ %164, %163 ], [ %.pn110.pn, %192 ]
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %19) #10
  br label %194

194:                                              ; preds = %193, %161
  %.pn141.pn = phi { ptr, i32 } [ %.pn141, %193 ], [ %162, %161 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %19) #10
  call void @_ZN12TomlFileIterD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %18) #10
  br label %195

195:                                              ; preds = %194, %159
  %.pn141.pn.pn = phi { ptr, i32 } [ %.pn141.pn, %194 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %18) #10
  call void @_ZN8TomlFileD2Ev(ptr noundef nonnull align 8 dereferenceable(672) %16) #10
  br label %196

196:                                              ; preds = %195, %158
  %.pn141.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn, %195 ], [ %.pn108, %158 ]
  call void @llvm.lifetime.end.p0(i64 672, ptr nonnull %16) #10
  br label %197

197:                                              ; preds = %196, %152
  %.pn141.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn, %196 ], [ %153, %152 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  br label %198

198:                                              ; preds = %197, %150
  %.pn141.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn, %197 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  br label %203

.loopexit193:                                     ; preds = %132, %189
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  %199 = invoke noundef zeroext i1 @_ZNK7helpers4path8is_validEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %200 unwind label %205

200:                                              ; preds = %.loopexit193
  br i1 %199, label %209, label %201

201:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #10
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %22)
          to label %202 unwind label %207

202:                                              ; preds = %201
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  br label %235

203:                                              ; preds = %198, %148
  %.pn141.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn, %198 ], [ %149, %148 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %204

204:                                              ; preds = %203, %146
  %.pn141.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn, %203 ], [ %147, %146 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  br label %431

205:                                              ; preds = %235, %.loopexit193
  %206 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %431

207:                                              ; preds = %201
  %208 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  br label %431

209:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  store ptr %12, ptr %25, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %24)
          to label %210 unwind label %218

210:                                              ; preds = %209
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %26) #10
  invoke void @_ZN17WorkspaceManifest14load_from_tomlERKN7helpers4pathE(ptr dead_on_unwind nonnull writable sret(%class.WorkspaceManifest) align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %211 unwind label %220

211:                                              ; preds = %210
  %212 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN17WorkspaceManifestaSEOS_(ptr noundef nonnull align 8 dereferenceable(128) %11, ptr noundef nonnull align 8 dereferenceable(128) %26) #10
  call void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %26) #10
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %26) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #10
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 1 dereferenceable(1) %28) #10
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %27)
          to label %213 unwind label %222

213:                                              ; preds = %211
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  %214 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK17WorkspaceManifest7patchesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(128) %11)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  %215 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathESt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %214) #10
  store ptr %215, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #10
  %216 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathESt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %214) #10
  store ptr %216, ptr %30, align 8
  %217 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  br i1 %217, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %227, %213
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @_ZN10Repository13set_workspaceERK17WorkspaceManifest(ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(128) %11)
  br label %235

218:                                              ; preds = %209
  %219 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  br label %431

220:                                              ; preds = %210
  %221 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %26) #10
  br label %431

222:                                              ; preds = %211
  %223 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #10
  br label %431

.lr.ph:                                           ; preds = %213, %227
  %224 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  %225 = getelementptr inbounds i8, ptr %224, i64 32
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %225)
          to label %226 unwind label %230

226:                                              ; preds = %.lr.ph
  invoke void @_ZN10Repository14add_patch_pathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull %31)
          to label %227 unwind label %232

227:                                              ; preds = %226
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  %229 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  br i1 %229, label %.lr.ph, label %._crit_edge

230:                                              ; preds = %.lr.ph
  %231 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %234

232:                                              ; preds = %226
  %233 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  br label %234

234:                                              ; preds = %232, %230
  %.pn139 = phi { ptr, i32 } [ %233, %232 ], [ %231, %230 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  br label %431

235:                                              ; preds = %._crit_edge, %202
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str.2)
          to label %236 unwind label %205

236:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 600, ptr nonnull %32) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #10
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.10)
          to label %237 unwind label %252

237:                                              ; preds = %236
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %238 unwind label %254

238:                                              ; preds = %237
  invoke void @_ZN15PackageManifest14load_from_tomlERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK17WorkspaceManifest(ptr dead_on_unwind nonnull writable sret(%class.PackageManifest) align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull %11)
          to label %239 unwind label %256

239:                                              ; preds = %238
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #10
  %240 = getelementptr inbounds i8, ptr %3, i64 96
  %241 = getelementptr inbounds i8, ptr %3, i64 88
  %242 = load i8, ptr %241, align 8, !tbaa !24, !range !25, !noundef !26
  %243 = trunc nuw i8 %242 to i1
  %244 = xor i1 %243, true
  invoke void @_ZN15PackageManifest12set_featuresERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEb(ptr noundef nonnull align 8 dereferenceable(594) %32, ptr noundef nonnull align 8 dereferenceable(24) %240, i1 noundef zeroext %244)
          to label %245 unwind label %260

245:                                              ; preds = %239
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str.4)
          to label %246 unwind label %260

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %35) #10
  invoke void @_ZZ4mainEN17LockfileEnumStateC2ERK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(128) %35, ptr noundef nonnull align 8 dereferenceable(594) %32)
          to label %.preheader unwind label %262

.preheader:                                       ; preds = %246
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #10
  %247 = call noundef ptr @_ZZ4mainEN17LockfileEnumState3popEv(ptr noundef nonnull align 8 dereferenceable(128) %35)
  store ptr %247, ptr %36, align 8, !tbaa !23
  %.not116183 = icmp eq ptr %247, null
  br i1 %.not116183, label %._crit_edge185, label %.lr.ph184

.lr.ph184:                                        ; preds = %.preheader
  %248 = getelementptr inbounds i8, ptr %40, i64 8
  %249 = getelementptr inbounds i8, ptr %35, i64 56
  %250 = getelementptr inbounds i8, ptr %35, i64 104
  %251 = getelementptr inbounds i8, ptr %35, i64 8
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %53, i64 8
  br label %264

252:                                              ; preds = %236
  %253 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %259

254:                                              ; preds = %237
  %255 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %258

256:                                              ; preds = %238
  %257 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  br label %258

258:                                              ; preds = %256, %254
  %.pn113 = phi { ptr, i32 } [ %257, %256 ], [ %255, %254 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %259

259:                                              ; preds = %258, %252
  %.pn113.pn = phi { ptr, i32 } [ %.pn113, %258 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #10
  br label %430

260:                                              ; preds = %346, %344, %._crit_edge185, %245, %239
  %261 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %429

262:                                              ; preds = %246
  %263 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %376

264:                                              ; preds = %.lr.ph184, %.loopexit
  %265 = phi ptr [ %247, %.lr.ph184 ], [ %340, %.loopexit ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #10
  invoke void @_ZNK15PackageManifest9directoryEv(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %37, ptr noundef nonnull align 8 dereferenceable(594) %265)
          to label %266 unwind label %275

266:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #10
  store ptr %36, ptr %40, align 8, !tbaa !23
  store ptr %37, ptr %248, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(16) %40) #10
  invoke void @_ZN18DebugFunctionScopeC2EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull @__FUNCTION__.main, ptr noundef nonnull %39)
          to label %267 unwind label %277

267:                                              ; preds = %266
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #10
  call void @_ZNSt6vectorIPK10PackageRefSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #10
  %268 = load ptr, ptr %36, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #10
  store ptr %41, ptr %43, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZ4mainE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #10
  invoke void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %268, ptr noundef nonnull %42)
          to label %269 unwind label %279

269:                                              ; preds = %267
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  %270 = load ptr, ptr %36, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #10
  store ptr %41, ptr %45, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZ4mainE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  invoke void @_ZNK15PackageManifest23iter_build_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %270, ptr noundef nonnull %44)
          to label %271 unwind label %281

271:                                              ; preds = %269
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #10
  %272 = call ptr @_ZNSt6vectorIPK10PackageRefSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #10
  store ptr %272, ptr %46, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #10
  %273 = call ptr @_ZNSt6vectorIPK10PackageRefSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #10
  store ptr %273, ptr %47, align 8
  %274 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK10PackageRefSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  br i1 %274, label %.lr.ph182, label %.loopexit

275:                                              ; preds = %264
  %276 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %343

277:                                              ; preds = %266
  %278 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #10
  br label %342

279:                                              ; preds = %267
  %280 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  br label %341

281:                                              ; preds = %269
  %282 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #10
  br label %341

.lr.ph182:                                        ; preds = %271, %336
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #10
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK10PackageRefSt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #10
  %284 = load ptr, ptr %283, align 8, !tbaa !23
  store ptr %284, ptr %48, align 8, !tbaa !23
  %285 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK10PackageRef11get_versionEv(ptr noundef nonnull align 8 dereferenceable(184) %284)
  %286 = call noundef zeroext i1 @_ZNKSt6vectorIN18PackageVersionSpec5BoundESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %285) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #10
  %287 = load ptr, ptr %48, align 8, !tbaa !23
  invoke void @_ZN10PackageRef17load_manifest_rawER10RepositoryRKN7helpers4pathE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr") align 8 %50, ptr noundef nonnull align 8 dereferenceable(184) %287, ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %288 unwind label %292

288:                                              ; preds = %.lr.ph182
  %289 = call noundef ptr @_ZNKSt12__shared_ptrI15PackageManifestLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %50) #10
  call void @_ZNSt12__shared_ptrI15PackageManifestLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  store ptr %289, ptr %49, align 8, !tbaa !23
  %.not117 = icmp eq ptr %289, null
  br i1 %.not117, label %290, label %296

290:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #10
  store ptr %48, ptr %52, align 8, !tbaa !23
  call void @"_ZNSt8functionIFvRSoEEC2IZ4mainE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #10
  invoke void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef nonnull %51)
          to label %291 unwind label %294

291:                                              ; preds = %290
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #10
  br label %336

292:                                              ; preds = %.lr.ph182
  %293 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #10
  br label %339

294:                                              ; preds = %290
  %295 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #10
  br label %339

296:                                              ; preds = %288
  %297 = invoke { ptr, i8 } @_ZNSt3setIPK15PackageManifestSt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %249, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %298 unwind label %320

298:                                              ; preds = %296
  %.fca.1.extract11 = extractvalue { ptr, i8 } %297, 1
  %299 = trunc i8 %.fca.1.extract11 to i1
  br i1 %299, label %300, label %336

300:                                              ; preds = %298
  invoke void @_ZNSt6vectorIPK15PackageManifestSaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %250, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %301 unwind label %322

301:                                              ; preds = %300
  br i1 %286, label %336, label %302

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %54) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %55) #10
  %303 = load ptr, ptr %49, align 8, !tbaa !23
  invoke void @_ZZ4mainEN4Rule12for_manifestERK15PackageManifest(ptr dead_on_unwind nonnull writable sret(%struct.Rule) align 8 %55, ptr noundef nonnull align 8 dereferenceable(594) %303)
          to label %304 unwind label %324

304:                                              ; preds = %302
  invoke void @_ZSt9make_pairIZ4mainE4RuleRPK15PackageManifestESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.108") align 8 %54, ptr noundef nonnull align 8 dereferenceable(40) %55, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %305 unwind label %326

305:                                              ; preds = %304
  %306 = invoke { ptr, i8 } @_ZNSt3mapIZ4mainE4RulePK15PackageManifestSt4lessIS0_ESaISt4pairIKS0_S3_EEE6insertIS6_IS0_S3_EEENSt9enable_ifIXsr16is_constructibleIS8_T_EE5valueES6_ISt17_Rb_tree_iteratorIS8_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(48) %54)
          to label %307 unwind label %328

307:                                              ; preds = %305
  %.fca.0.extract = extractvalue { ptr, i8 } %306, 0
  %.fca.1.extract = extractvalue { ptr, i8 } %306, 1
  store ptr %.fca.0.extract, ptr %53, align 8
  store i8 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  call void @_ZNSt4pairIZ4mainE4RulePK15PackageManifestED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %54) #10
  call void @_ZZ4mainEN4RuleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %55) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %54) #10
  %308 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKZ4mainE4RulePK15PackageManifestEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  %309 = getelementptr inbounds i8, ptr %308, i64 40
  %310 = load ptr, ptr %309, align 8, !tbaa !27
  %311 = load ptr, ptr %49, align 8, !tbaa !23
  %.not121 = icmp eq ptr %310, %311
  br i1 %.not121, label %.thread163, label %312

312:                                              ; preds = %307
  %313 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK15PackageManifest7versionEv(ptr noundef nonnull align 8 dereferenceable(594) %310)
  %314 = load ptr, ptr %49, align 8, !tbaa !23
  %315 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK15PackageManifest7versionEv(ptr noundef nonnull align 8 dereferenceable(594) %314)
  %316 = invoke noundef zeroext i1 @_ZNK14PackageVersionltERKS_(ptr noundef nonnull align 8 dereferenceable(48) %313, ptr noundef nonnull align 8 dereferenceable(48) %315)
          to label %317 unwind label %.loopexit174

317:                                              ; preds = %312
  br i1 %316, label %318, label %332

318:                                              ; preds = %317
  %319 = load ptr, ptr %49, align 8, !tbaa !23
  invoke void @_ZN10Repository20blacklist_dependencyEPK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef %319)
          to label %.thread163 unwind label %.loopexit174

320:                                              ; preds = %296
  %321 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %339

322:                                              ; preds = %300
  %323 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %339

324:                                              ; preds = %302
  %325 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %331

326:                                              ; preds = %304
  %327 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %330

328:                                              ; preds = %305
  %329 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZNSt4pairIZ4mainE4RulePK15PackageManifestED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %54) #10
  br label %330

330:                                              ; preds = %328, %326
  %.pn118 = phi { ptr, i32 } [ %329, %328 ], [ %327, %326 ]
  call void @_ZZ4mainEN4RuleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #10
  br label %331

331:                                              ; preds = %330, %324
  %.pn118.pn = phi { ptr, i32 } [ %.pn118, %330 ], [ %325, %324 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %55) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %54) #10
  br label %334

.loopexit174:                                     ; preds = %312, %318
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %334

.loopexit.split-lp:                               ; preds = %332, %333
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %334

332:                                              ; preds = %317
  invoke void @_ZN10Repository20blacklist_dependencyEPK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(104) %4, ptr noundef nonnull %310)
          to label %333 unwind label %.loopexit.split-lp

333:                                              ; preds = %332
  invoke void @_ZZ4mainEN17LockfileEnumState5resetEv(ptr noundef nonnull align 8 dereferenceable(128) %35)
          to label %335 unwind label %.loopexit.split-lp

.thread163:                                       ; preds = %318, %307
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #10
  br label %336

334:                                              ; preds = %.loopexit174, %.loopexit.split-lp, %331
  %.pn122 = phi { ptr, i32 } [ %.pn118.pn, %331 ], [ %lpad.loopexit, %.loopexit174 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #10
  br label %339

335:                                              ; preds = %333
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #10
  br label %.loopexit

336:                                              ; preds = %291, %.thread163, %301, %298
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #10
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPK10PackageRefSt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #10
  %338 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK10PackageRefSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  br i1 %338, label %.lr.ph182, label %.loopexit

339:                                              ; preds = %334, %322, %320, %294, %292
  %.pn122.pn = phi { ptr, i32 } [ %.pn122, %334 ], [ %323, %322 ], [ %321, %320 ], [ %295, %294 ], [ %293, %292 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #10
  br label %341

.loopexit:                                        ; preds = %336, %271, %335
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #10
  call void @_ZNSt6vectorIPK10PackageRefSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #10
  call void @_ZN18DebugFunctionScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #10
  %340 = call noundef ptr @_ZZ4mainEN17LockfileEnumState3popEv(ptr noundef nonnull align 8 dereferenceable(128) %35)
  store ptr %340, ptr %36, align 8, !tbaa !23
  %.not116 = icmp eq ptr %340, null
  br i1 %.not116, label %._crit_edge185, label %264

341:                                              ; preds = %339, %281, %279
  %.pn122.pn.pn = phi { ptr, i32 } [ %.pn122.pn, %339 ], [ %282, %281 ], [ %280, %279 ]
  call void @_ZNSt6vectorIPK10PackageRefSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #10
  call void @_ZN18DebugFunctionScopeD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  br label %342

342:                                              ; preds = %341, %277
  %.pn122.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn, %341 ], [ %278, %277 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  br label %343

343:                                              ; preds = %342, %275
  %.pn122.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn.pn, %342 ], [ %276, %275 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #10
  call void @_ZZ4mainEN17LockfileEnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %35) #10
  br label %376

._crit_edge185:                                   ; preds = %.loopexit, %.preheader
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #10
  call void @_ZZ4mainEN17LockfileEnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %35) #10
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %35) #10
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str.5)
          to label %344 unwind label %260

344:                                              ; preds = %._crit_edge185
  %345 = invoke noundef zeroext i1 @_ZNK7helpers4path8is_validEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %346 unwind label %260

346:                                              ; preds = %344
  %347 = xor i1 %345, true
  %348 = getelementptr inbounds i8, ptr %3, i64 86
  %349 = load i8, ptr %348, align 2, !tbaa !34, !range !25, !noundef !26
  %350 = trunc nuw i8 %349 to i1
  invoke void @_ZN15PackageManifest17load_dependenciesER10Repositorybb(ptr noundef nonnull align 8 dereferenceable(594) %32, ptr noundef nonnull align 8 dereferenceable(104) %4, i1 noundef zeroext %347, i1 noundef zeroext %350)
          to label %351 unwind label %260

351:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %56) #10
  invoke void @_ZN12BuildOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(108) %56)
          to label %.invoke unwind label %377

.invoke:                                          ; preds = %351
  %352 = getelementptr inbounds i8, ptr %56, i64 32
  %353 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #10
  %354 = getelementptr inbounds i8, ptr %3, i64 32
  %355 = load ptr, ptr %354, align 8, !tbaa !35
  %.not129 = icmp eq ptr %355, null
  %.str.13. = select i1 %.not129, ptr @.str.13, ptr %355
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull %.str.13.)
          to label %356 unwind label %379

356:                                              ; preds = %.invoke
  %357 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #10
  %358 = getelementptr inbounds i8, ptr %56, i64 64
  %359 = getelementptr inbounds i8, ptr %3, i64 56
  %360 = call noundef i64 @_ZNKSt6vectorIPKcSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %359) #10
  invoke void @_ZNSt6vectorIN7helpers4pathESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %360)
          to label %361 unwind label %381

361:                                              ; preds = %356
  %362 = getelementptr inbounds i8, ptr %3, i64 40
  %363 = load i8, ptr %362, align 8, !tbaa !36, !range !25, !noundef !26
  %364 = getelementptr inbounds i8, ptr %56, i64 88
  store i8 %363, ptr %364, align 8, !tbaa !37
  %365 = getelementptr inbounds i8, ptr %3, i64 87
  %366 = load i8, ptr %365, align 1, !tbaa !45, !range !25, !noundef !26
  %367 = getelementptr inbounds i8, ptr %56, i64 89
  store i8 %366, ptr %367, align 1, !tbaa !46
  %368 = load ptr, ptr %104, align 8, !tbaa !21
  %369 = getelementptr inbounds i8, ptr %56, i64 96
  store ptr %368, ptr %369, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #10
  %370 = call ptr @_ZNSt6vectorIPKcSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %359) #10
  store ptr %370, ptr %58, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #10
  %371 = call ptr @_ZNSt6vectorIPKcSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %359) #10
  store ptr %371, ptr %59, align 8
  %372 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKcSt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %59) #10
  br i1 %372, label %.lr.ph187, label %._crit_edge188

._crit_edge188:                                   ; preds = %386, %361
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #10
  %373 = load i8, ptr %348, align 2, !tbaa !34, !range !25, !noundef !26
  %374 = zext nneg i8 %373 to i32
  %375 = getelementptr inbounds i8, ptr %56, i64 104
  store i32 %374, ptr %375, align 8, !tbaa !48
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str.6)
          to label %394 unwind label %381

376:                                              ; preds = %343, %262
  %.pn122.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn.pn.pn, %343 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %35) #10
  br label %429

377:                                              ; preds = %351
  %378 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %428

379:                                              ; preds = %.invoke
  %380 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #10
  br label %427

381:                                              ; preds = %._crit_edge188, %356
  %382 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %427

.lr.ph187:                                        ; preds = %361, %386
  %383 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKcSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58) #10
  %384 = load ptr, ptr %383, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #10
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef %384)
          to label %385 unwind label %389

385:                                              ; preds = %.lr.ph187
  invoke void @_ZNSt6vectorIN7helpers4pathESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %358, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %386 unwind label %391

386:                                              ; preds = %385
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #10
  %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKcSt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %58) #10
  %388 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKcSt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %59) #10
  br i1 %388, label %.lr.ph187, label %._crit_edge188

389:                                              ; preds = %.lr.ph187
  %390 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %393

391:                                              ; preds = %385
  %392 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  br label %393

393:                                              ; preds = %391, %389
  %.pn133 = phi { ptr, i32 } [ %392, %391 ], [ %390, %389 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #10
  br label %427

394:                                              ; preds = %._crit_edge188
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #10
  invoke void @_ZN9BuildListC1ERK15PackageManifestRK12BuildOptions(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(594) %32, ptr noundef nonnull align 8 dereferenceable(108) %56)
          to label %395 unwind label %418

395:                                              ; preds = %394
  invoke void @_Z14Debug_SetPhasePKc(ptr noundef nonnull @.str.7)
          to label %396 unwind label %420

396:                                              ; preds = %395
  call void @_ZN12BuildOptionsC2EOS_(ptr noundef nonnull align 8 dereferenceable(108) %62, ptr noundef nonnull align 8 dereferenceable(108) %56) #10
  %397 = getelementptr inbounds i8, ptr %3, i64 80
  %398 = load i32, ptr %397, align 8, !tbaa !49
  %399 = getelementptr inbounds i8, ptr %3, i64 84
  %400 = load i8, ptr %399, align 4, !tbaa !50, !range !25, !noundef !26
  %401 = trunc nuw i8 %400 to i1
  %402 = invoke noundef zeroext i1 @_ZN9BuildList5buildE12BuildOptionsjb(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull %62, i32 noundef %398, i1 noundef zeroext %401)
          to label %403 unwind label %422

403:                                              ; preds = %396
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %62) #10
  br i1 %402, label %424, label %404

404:                                              ; preds = %403
  %405 = 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.14)
          to label %406 unwind label %420

406:                                              ; preds = %404
  %407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %405, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %408 unwind label %420

408:                                              ; preds = %406
  %409 = getelementptr inbounds i8, ptr %3, i64 85
  %410 = load i8, ptr %409, align 1, !tbaa !51, !range !25, !noundef !26
  %411 = trunc nuw i8 %410 to i1
  br i1 %411, label %412, label %424

412:                                              ; preds = %408
  %413 = 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.15)
          to label %414 unwind label %420

414:                                              ; preds = %412
  %415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %413, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %416 unwind label %420

416:                                              ; preds = %414
  %417 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin)
          to label %424 unwind label %420

418:                                              ; preds = %394
  %419 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %426

420:                                              ; preds = %416, %414, %412, %406, %404, %395
  %421 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  br label %425

422:                                              ; preds = %396
  %423 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %62) #10
  br label %425

424:                                              ; preds = %403, %408, %416
  %.0 = phi i32 [ 1, %416 ], [ 1, %408 ], [ 0, %403 ]
  call void @_ZN9BuildListD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #10
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %56) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %56) #10
  call void @_ZN15PackageManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(594) %32) #10
  call void @llvm.lifetime.end.p0(i64 600, ptr nonnull %32) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  call void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #10
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  call void @_ZN10RepositoryD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %4) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %4) #10
  br i1 %402, label %466, label %476

425:                                              ; preds = %422, %420
  %.pn130 = phi { ptr, i32 } [ %421, %420 ], [ %423, %422 ]
  call void @_ZN9BuildListD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #10
  br label %426

426:                                              ; preds = %425, %418
  %.pn130.pn = phi { ptr, i32 } [ %.pn130, %425 ], [ %419, %418 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #10
  br label %427

427:                                              ; preds = %426, %393, %381, %379
  %.pn133.pn = phi { ptr, i32 } [ %.pn133, %393 ], [ %.pn130.pn, %426 ], [ %382, %381 ], [ %380, %379 ]
  call void @_ZN12BuildOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(108) %56) #10
  br label %428

428:                                              ; preds = %427, %377
  %.pn133.pn.pn = phi { ptr, i32 } [ %.pn133.pn, %427 ], [ %378, %377 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %56) #10
  br label %429

429:                                              ; preds = %428, %376, %260
  %.pn133.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn, %428 ], [ %261, %260 ], [ %.pn122.pn.pn.pn.pn.pn, %376 ]
  call void @_ZN15PackageManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(594) %32) #10
  br label %430

430:                                              ; preds = %429, %259
  %.pn133.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn.pn, %429 ], [ %.pn113.pn, %259 ]
  call void @llvm.lifetime.end.p0(i64 600, ptr nonnull %32) #10
  br label %431

431:                                              ; preds = %430, %234, %222, %220, %218, %207, %205, %204
  %.pn141.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn, %204 ], [ %.pn139, %234 ], [ %.pn133.pn.pn.pn.pn, %430 ], [ %206, %205 ], [ %223, %222 ], [ %221, %220 ], [ %219, %218 ], [ %208, %207 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  call void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #10
  br label %432

432:                                              ; preds = %431, %144
  %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn.pn, %431 ], [ %145, %144 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #10
  br label %433

433:                                              ; preds = %432, %126, %120
  %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn, %432 ], [ %121, %120 ], [ %.pn106, %126 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  br label %434

434:                                              ; preds = %433, %119
  %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %433 ], [ %.pn103, %119 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  br label %435

435:                                              ; preds = %434, %113
  %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %434 ], [ %114, %113 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  br label %436

436:                                              ; preds = %435, %93
  %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %435 ], [ %.pn, %93 ]
  call void @_ZN10RepositoryD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %4) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %4) #10
  br label %437

437:                                              ; preds = %436, %87
  %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %436 ], [ %88, %87 ]
  %.3881 = extractvalue { ptr, i32 } %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, 1
  %438 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %439 = icmp eq i32 %.3881, %438
  br i1 %439, label %440, label %477

440:                                              ; preds = %437
  %.38 = extractvalue { ptr, i32 } %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, 0
  %441 = call ptr @__cxa_begin_catch(ptr %.38) #10
  %442 = 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.16)
          to label %443 unwind label %461

443:                                              ; preds = %440
  %444 = load ptr, ptr %441, align 8, !tbaa !52
  %445 = getelementptr inbounds i8, ptr %444, i64 16
  %446 = load ptr, ptr %445, align 8
  %447 = call noundef ptr %446(ptr noundef nonnull align 8 dereferenceable(8) %441) #10
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef %447)
          to label %449 unwind label %461

449:                                              ; preds = %443
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %451 unwind label %461

451:                                              ; preds = %449
  %452 = getelementptr inbounds i8, ptr %3, i64 85
  %453 = load i8, ptr %452, align 1, !tbaa !51, !range !25, !noundef !26
  %454 = trunc nuw i8 %453 to i1
  br i1 %454, label %455, label %463

455:                                              ; preds = %451
  %456 = 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.15)
          to label %457 unwind label %461

457:                                              ; preds = %455
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %456, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %459 unwind label %461

459:                                              ; preds = %457
  %460 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin)
          to label %463 unwind label %461

461:                                              ; preds = %459, %457, %455, %449, %443, %440
  %462 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %477 unwind label %478

463:                                              ; preds = %459, %451
  invoke void @__cxa_end_catch()
          to label %476 unwind label %464

464:                                              ; preds = %463
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %477

466:                                              ; preds = %424
  %467 = getelementptr inbounds i8, ptr %3, i64 85
  %468 = load i8, ptr %467, align 1, !tbaa !51, !range !25, !noundef !26
  %469 = trunc nuw i8 %468 to i1
  br i1 %469, label %470, label %476

470:                                              ; preds = %466
  %471 = 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.15)
          to label %472 unwind label %65

472:                                              ; preds = %470
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %471, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %474 unwind label %65

474:                                              ; preds = %472
  %475 = invoke noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin)
          to label %476 unwind label %65

476:                                              ; preds = %466, %474, %463, %64, %424
  %.1 = phi i32 [ %.0, %424 ], [ 1, %64 ], [ 1, %463 ], [ 0, %474 ], [ 0, %466 ]
  call void @_ZN14ProgramOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %3) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %3) #10
  ret i32 %.1

477:                                              ; preds = %464, %461, %437, %78, %65
  %.merged = phi { ptr, i32 } [ %.pn141.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %437 ], [ %66, %65 ], [ %79, %78 ], [ %465, %464 ], [ %462, %461 ]
  call void @_ZN14ProgramOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %3) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %3) #10
  resume { ptr, i32 } %.merged

478:                                              ; preds = %461
  %479 = landingpad { ptr, i32 }
          catch ptr null
  %480 = extractvalue { ptr, i32 } %479, 0
  call void @__clang_call_terminate(ptr %480) #11
  unreachable
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN14ProgramOptions5parseEiPPKc(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef, ptr noundef) local_unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

declare void @_Z18Debug_DisablePhasePKc(ptr noundef) local_unnamed_addr #4

; Function Attrs: nofree nounwind memory(read)
declare noundef ptr @getenv(ptr nocapture noundef) local_unnamed_addr #5

declare void @_Z19Debug_ProcessEnablePKc(ptr noundef) local_unnamed_addr #4

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

declare void @_Z14Debug_SetPhasePKc(ptr noundef) local_unnamed_addr #4

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

declare void @_ZN10Repository13load_vendoredERKN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

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

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

declare void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

declare void @_Z13Cfg_SetTargetPKc(ptr noundef) local_unnamed_addr #4

declare void @_Z22Manifest_LoadOverridesRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

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

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

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

declare void @_ZN17WorkspaceManifestC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) 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 #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7helpers4path13pop_componentEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 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 #6 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #6 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 #3 align 2

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

declare void @_ZN8TomlFile5beginEv(ptr dead_on_unwind writable sret(%class.TomlFileIter) align 8, ptr noundef nonnull align 8 dereferenceable(672)) local_unnamed_addr #4

declare void @_ZN8TomlFile3endEv(ptr dead_on_unwind writable sret(%class.TomlFileIter) align 8, ptr noundef nonnull align 8 dereferenceable(672)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK12TomlFileIterneERKS_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK12TomlFileIterdeEv(ptr dead_on_unwind noalias writable sret(%struct.TomlKeyValue) align 8, ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9TomlValue9as_stringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #3 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 #3 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 #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12TomlFileIterppEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7helpers4path8is_validEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

declare void @_Z11Debug_PrintSt8functionIFvRSoEE(ptr noundef) local_unnamed_addr #4

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

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

declare void @_ZN17WorkspaceManifest14load_from_tomlERKN7helpers4pathE(ptr dead_on_unwind writable sret(%class.WorkspaceManifest) align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN17WorkspaceManifestD2Ev(ptr noundef nonnull align 8 dereferenceable(128)) 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 #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNK17WorkspaceManifest7patchesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #6 align 2

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

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

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

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

declare void @_ZN10Repository14add_patch_pathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7helpers4pathE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10Repository13set_workspaceERK17WorkspaceManifest(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #6 align 2

declare void @_ZN15PackageManifest14load_from_tomlERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK17WorkspaceManifest(ptr dead_on_unwind writable sret(%class.PackageManifest) align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #4

declare void @_ZN15PackageManifest12set_featuresERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEb(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ4mainEN17LockfileEnumStateC2ERK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(594)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZZ4mainEN17LockfileEnumState3popEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #6 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest23iter_build_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

declare void @_ZN10PackageRef17load_manifest_rawER10RepositoryRKN7helpers4pathE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr") align 8, ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrI15PackageManifestLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 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(8)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIPK15PackageManifestSt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIPK15PackageManifestSaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden { ptr, i8 } @_ZNSt3mapIZ4mainE4RulePK15PackageManifestSt4lessIS0_ESaISt4pairIKS0_S3_EEE6insertIS6_IS0_S3_EEENSt9enable_ifIXsr16is_constructibleIS8_T_EE5valueES6_ISt17_Rb_tree_iteratorIS8_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZSt9make_pairIZ4mainE4RuleRPK15PackageManifestESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.108") align 8, ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ4mainEN4Rule12for_manifestERK15PackageManifest(ptr dead_on_unwind noalias writable sret(%struct.Rule) align 8, ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNK15PackageManifest7versionEv(ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK14PackageVersionltERKS_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

declare void @_ZN10Repository20blacklist_dependencyEPK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ4mainEN17LockfileEnumState5resetEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #3 align 2

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

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

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

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

declare void @_ZN15PackageManifest17load_dependenciesER10Repositorybb(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef nonnull align 8 dereferenceable(104), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN12BuildOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(108)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7helpers4pathESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN9BuildList5buildE12BuildOptionsjb(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #4

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

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

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

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

declare noundef i32 @_ZNSi3getEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

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

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

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

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #9

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 24}
!6 = !{!"_ZTS14ProgramOptions", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !7, i64 48, !11, i64 56, !15, i64 80, !10, i64 84, !10, i64 85, !10, i64 86, !10, i64 87, !10, i64 88, !16, i64 96}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"_ZTSSt6vectorIPKcSaIS1_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIPKcSaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIPKcSaIS1_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIPKcSaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!15 = !{!"int", !8, i64 0}
!16 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!20 = !{!6, !7, i64 8}
!21 = !{!6, !7, i64 48}
!22 = !{!6, !7, i64 16}
!23 = !{!7, !7, i64 0}
!24 = !{!6, !10, i64 88}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!28, !7, i64 40}
!28 = !{!"_ZTSSt4pairIKZ4mainE4RulePK15PackageManifestE", !29, i64 0, !7, i64 40}
!29 = !{!"_ZTSZ4mainE4Rule", !30, i64 0, !33, i64 32}
!30 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !31, i64 0, !32, i64 8, !8, i64 16}
!31 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!32 = !{!"long", !8, i64 0}
!33 = !{!"_ZTSZ4mainE13SemverRelease", !15, i64 0, !15, i64 4}
!34 = !{!6, !10, i64 86}
!35 = !{!6, !7, i64 32}
!36 = !{!6, !10, i64 40}
!37 = !{!38, !10, i64 88}
!38 = !{!"_ZTS12BuildOptions", !39, i64 0, !39, i64 32, !40, i64 64, !10, i64 88, !10, i64 89, !7, i64 96, !44, i64 104}
!39 = !{!"_ZTSN7helpers4pathE", !30, i64 0}
!40 = !{!"_ZTSSt6vectorIN7helpers4pathESaIS1_EE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIN7helpers4pathESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!44 = !{!"_ZTSN12BuildOptions4ModeE", !8, i64 0}
!45 = !{!6, !10, i64 87}
!46 = !{!38, !10, i64 89}
!47 = !{!38, !7, i64 96}
!48 = !{!38, !44, i64 104}
!49 = !{!6, !15, i64 80}
!50 = !{!6, !10, i64 84}
!51 = !{!6, !10, i64 85}
!52 = !{!53, !53, i64 0}
!53 = !{!"vtable pointer", !9, i64 0}


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