; LLVM IR from fetlang/fetlang :: src (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.args::ArgumentParser" = type { %"class.args::Group", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, %"struct.args::ArgumentParser::HelpParams" }
%"class.args::Group" = type { %"class.args::Base", %"class.std::vector", %"class.std::function" }
%"class.args::Base" = type { ptr, i8, %"class.std::__cxx11::basic_string" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.args::ArgumentParser::HelpParams" = type <{ i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8 }>
%"class.std::allocator" = type { i8 }
%"class.args::HelpFlag" = type { %"class.args::Flag" }
%"class.args::Flag" = type { %"class.args::FlagBase" }
%"class.args::FlagBase" = type { %"class.args::NamedBase.base", i8, %"class.args::Matcher" }
%"class.args::NamedBase.base" = type <{ %"class.args::Base", %"class.std::__cxx11::basic_string", i8 }>
%"class.args::Matcher" = type { %"class.std::unordered_set", %"class.std::unordered_set.8" }
%"class.std::unordered_set" = 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.std::unordered_set.8" = type { %"class.std::_Hashtable.9" }
%"class.std::_Hashtable.9" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"struct.args::EitherFlag" = type { i8, i8, %"class.std::__cxx11::basic_string" }
%"class.args::Positional" = type <{ %"class.args::PositionalBase.base", [6 x i8], %"class.std::__cxx11::basic_string", [8 x i8] }>
%"class.args::PositionalBase.base" = type { %"class.args::NamedBase.base", i8 }
%"class.args::ValueFlag" = type <{ %"class.args::ValueFlagBase", %"class.std::__cxx11::basic_string", [8 x i8] }>
%"class.args::ValueFlagBase" = type { %"class.args::FlagBase" }
%class.Builder = type { i8, i8, i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@_ZTIN4args4HelpE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args10ParseErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args15ValidationErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.23 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZTI16FetlangException = external constant ptr
@_ZTISt9exception = external constant ptr
@manager = external constant ptr, align 8
@.str.24 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 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 %"class.args::ArgumentParser", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.args::HelpFlag", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.args::Matcher", align 8
  %19 = alloca %"class.std::initializer_list", align 8
  %20 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.args::Flag", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.args::Matcher", align 8
  %28 = alloca %"class.std::initializer_list", align 8
  %29 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.args::Flag", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.args::Matcher", align 8
  %37 = alloca %"class.std::initializer_list", align 8
  %38 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"class.args::Flag", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.args::Matcher", align 8
  %46 = alloca %"class.std::initializer_list", align 8
  %47 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %48 = alloca ptr, align 8
  %49 = alloca %"class.args::Flag", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.args::Matcher", align 8
  %55 = alloca %"class.std::initializer_list", align 8
  %56 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"class.args::Flag", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %"class.args::Matcher", align 8
  %64 = alloca %"class.std::initializer_list", align 8
  %65 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %66 = alloca ptr, align 8
  %67 = alloca %"class.args::Flag", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"class.args::Matcher", align 8
  %73 = alloca %"class.std::initializer_list", align 8
  %74 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %75 = alloca ptr, align 8
  %76 = alloca %"class.args::Group", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca %"class.std::function", align 8
  %80 = alloca %"class.args::Positional", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.args::ValueFlag", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator", align 1
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator", align 1
  %91 = alloca %"class.args::Matcher", align 8
  %92 = alloca %"class.std::initializer_list", align 8
  %93 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %94 = alloca ptr, align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.args::ValueFlag", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator", align 1
  %101 = alloca %"class.args::Matcher", align 8
  %102 = alloca %"class.std::initializer_list", align 8
  %103 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %104 = alloca ptr, align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca ptr, align 8
  %107 = alloca i32, align 4
  %108 = alloca ptr, align 8
  %109 = alloca ptr, align 8
  %110 = alloca %class.Builder, align 8
  %111 = alloca ptr, align 8
  %112 = 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 400, ptr %6) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %113 unwind label %291

113:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %114 unwind label %295

114:                                              ; preds = %113
  invoke void @_ZN4args14ArgumentParserC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(400) %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %115 unwind label %299

115:                                              ; preds = %114
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %116 unwind label %305

116:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %117 unwind label %309

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 112, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 80, ptr %20) #9
  store ptr %20, ptr %21, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 noundef signext 104)
          to label %118 unwind label %313

118:                                              ; preds = %117
  %119 = getelementptr inbounds %"struct.args::EitherFlag", ptr %20, i64 1
  store ptr %119, ptr %21, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %119, ptr noundef @.str.2)
          to label %120 unwind label %313

120:                                              ; preds = %118
  %121 = getelementptr inbounds %"class.std::initializer_list", ptr %19, i32 0, i32 0
  store ptr %20, ptr %121, align 8, !tbaa !11
  %122 = getelementptr inbounds %"class.std::initializer_list", ptr %19, i32 0, i32 1
  store i64 2, ptr %122, align 8, !tbaa !14
  %123 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 0
  %124 = load ptr, ptr %123, align 8
  %125 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 1
  %126 = load i64, ptr %125, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %18, ptr %124, i64 %126)
          to label %127 unwind label %324

127:                                              ; preds = %120
  invoke void @_ZN4args8HelpFlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherE(ptr noundef nonnull align 8 dereferenceable(200) %13, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(112) %18)
          to label %128 unwind label %328

128:                                              ; preds = %127
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %18) #9
  %129 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %20, i32 0, i32 0
  %130 = getelementptr inbounds %"struct.args::EitherFlag", ptr %129, i64 2
  br label %131

131:                                              ; preds = %131, %128
  %132 = phi ptr [ %130, %128 ], [ %133, %131 ]
  %133 = getelementptr inbounds %"struct.args::EitherFlag", ptr %132, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %133) #9
  %134 = icmp eq ptr %133, %129
  br i1 %134, label %135, label %131

135:                                              ; preds = %131
  call void @llvm.lifetime.end.p0(i64 80, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %136 unwind label %343

136:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %137 unwind label %347

137:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 112, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %29) #9
  store ptr %29, ptr %30, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %29, i8 noundef signext 79)
          to label %138 unwind label %351

138:                                              ; preds = %137
  %139 = getelementptr inbounds %"class.std::initializer_list", ptr %28, i32 0, i32 0
  store ptr %29, ptr %139, align 8, !tbaa !11
  %140 = getelementptr inbounds %"class.std::initializer_list", ptr %28, i32 0, i32 1
  store i64 1, ptr %140, align 8, !tbaa !14
  %141 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 0
  %142 = load ptr, ptr %141, align 8
  %143 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 1
  %144 = load i64, ptr %143, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %27, ptr %142, i64 %144)
          to label %145 unwind label %362

145:                                              ; preds = %138
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %22, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(112) %27, i1 noundef zeroext false)
          to label %146 unwind label %366

146:                                              ; preds = %145
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #9
  %147 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %29, i32 0, i32 0
  %148 = getelementptr inbounds %"struct.args::EitherFlag", ptr %147, i64 1
  br label %149

149:                                              ; preds = %149, %146
  %150 = phi ptr [ %148, %146 ], [ %151, %149 ]
  %151 = getelementptr inbounds %"struct.args::EitherFlag", ptr %150, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %151) #9
  %152 = icmp eq ptr %151, %147
  br i1 %152, label %153, label %149

153:                                              ; preds = %149
  call void @llvm.lifetime.end.p0(i64 40, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %154 unwind label %381

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %155 unwind label %385

155:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 112, ptr %36) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #9
  store ptr %38, ptr %39, align 8
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef @.str.8)
          to label %156 unwind label %389

156:                                              ; preds = %155
  %157 = getelementptr inbounds %"class.std::initializer_list", ptr %37, i32 0, i32 0
  store ptr %38, ptr %157, align 8, !tbaa !11
  %158 = getelementptr inbounds %"class.std::initializer_list", ptr %37, i32 0, i32 1
  store i64 1, ptr %158, align 8, !tbaa !14
  %159 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 0
  %160 = load ptr, ptr %159, align 8
  %161 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 1
  %162 = load i64, ptr %161, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %36, ptr %160, i64 %162)
          to label %163 unwind label %400

163:                                              ; preds = %156
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %31, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(112) %36, i1 noundef zeroext false)
          to label %164 unwind label %404

164:                                              ; preds = %163
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %36) #9
  %165 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %38, i32 0, i32 0
  %166 = getelementptr inbounds %"struct.args::EitherFlag", ptr %165, i64 1
  br label %167

167:                                              ; preds = %167, %164
  %168 = phi ptr [ %166, %164 ], [ %169, %167 ]
  %169 = getelementptr inbounds %"struct.args::EitherFlag", ptr %168, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %169) #9
  %170 = icmp eq ptr %169, %165
  br i1 %170, label %171, label %167

171:                                              ; preds = %167
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %36) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %172 unwind label %419

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %173 unwind label %423

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 112, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %47) #9
  store ptr %47, ptr %48, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %47, i8 noundef signext 116)
          to label %174 unwind label %427

174:                                              ; preds = %173
  %175 = getelementptr inbounds %"class.std::initializer_list", ptr %46, i32 0, i32 0
  store ptr %47, ptr %175, align 8, !tbaa !11
  %176 = getelementptr inbounds %"class.std::initializer_list", ptr %46, i32 0, i32 1
  store i64 1, ptr %176, align 8, !tbaa !14
  %177 = getelementptr inbounds { ptr, i64 }, ptr %46, i32 0, i32 0
  %178 = load ptr, ptr %177, align 8
  %179 = getelementptr inbounds { ptr, i64 }, ptr %46, i32 0, i32 1
  %180 = load i64, ptr %179, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %45, ptr %178, i64 %180)
          to label %181 unwind label %438

181:                                              ; preds = %174
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %40, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(112) %45, i1 noundef zeroext false)
          to label %182 unwind label %442

182:                                              ; preds = %181
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %45) #9
  %183 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %47, i32 0, i32 0
  %184 = getelementptr inbounds %"struct.args::EitherFlag", ptr %183, i64 1
  br label %185

185:                                              ; preds = %185, %182
  %186 = phi ptr [ %184, %182 ], [ %187, %185 ]
  %187 = getelementptr inbounds %"struct.args::EitherFlag", ptr %186, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %187) #9
  %188 = icmp eq ptr %187, %183
  br i1 %188, label %189, label %185

189:                                              ; preds = %185
  call void @llvm.lifetime.end.p0(i64 40, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %190 unwind label %457

190:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %191 unwind label %461

191:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 112, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %56) #9
  store ptr %56, ptr %57, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %56, i8 noundef signext 84)
          to label %192 unwind label %465

192:                                              ; preds = %191
  %193 = getelementptr inbounds %"class.std::initializer_list", ptr %55, i32 0, i32 0
  store ptr %56, ptr %193, align 8, !tbaa !11
  %194 = getelementptr inbounds %"class.std::initializer_list", ptr %55, i32 0, i32 1
  store i64 1, ptr %194, align 8, !tbaa !14
  %195 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 0
  %196 = load ptr, ptr %195, align 8
  %197 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 1
  %198 = load i64, ptr %197, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr %196, i64 %198)
          to label %199 unwind label %476

199:                                              ; preds = %192
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %49, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(112) %54, i1 noundef zeroext false)
          to label %200 unwind label %480

200:                                              ; preds = %199
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #9
  %201 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %56, i32 0, i32 0
  %202 = getelementptr inbounds %"struct.args::EitherFlag", ptr %201, i64 1
  br label %203

203:                                              ; preds = %203, %200
  %204 = phi ptr [ %202, %200 ], [ %205, %203 ]
  %205 = getelementptr inbounds %"struct.args::EitherFlag", ptr %204, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %205) #9
  %206 = icmp eq ptr %205, %201
  br i1 %206, label %207, label %203

207:                                              ; preds = %203
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %54) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %208 unwind label %495

208:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %209 unwind label %499

209:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 112, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %65) #9
  store ptr %65, ptr %66, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %65, i8 noundef signext 99)
          to label %210 unwind label %503

210:                                              ; preds = %209
  %211 = getelementptr inbounds %"class.std::initializer_list", ptr %64, i32 0, i32 0
  store ptr %65, ptr %211, align 8, !tbaa !11
  %212 = getelementptr inbounds %"class.std::initializer_list", ptr %64, i32 0, i32 1
  store i64 1, ptr %212, align 8, !tbaa !14
  %213 = getelementptr inbounds { ptr, i64 }, ptr %64, i32 0, i32 0
  %214 = load ptr, ptr %213, align 8
  %215 = getelementptr inbounds { ptr, i64 }, ptr %64, i32 0, i32 1
  %216 = load i64, ptr %215, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %63, ptr %214, i64 %216)
          to label %217 unwind label %514

217:                                              ; preds = %210
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %58, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(112) %63, i1 noundef zeroext false)
          to label %218 unwind label %518

218:                                              ; preds = %217
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %63) #9
  %219 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %65, i32 0, i32 0
  %220 = getelementptr inbounds %"struct.args::EitherFlag", ptr %219, i64 1
  br label %221

221:                                              ; preds = %221, %218
  %222 = phi ptr [ %220, %218 ], [ %223, %221 ]
  %223 = getelementptr inbounds %"struct.args::EitherFlag", ptr %222, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %223) #9
  %224 = icmp eq ptr %223, %219
  br i1 %224, label %225, label %221

225:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 40, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %63) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %67) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %226 unwind label %533

226:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %227 unwind label %537

227:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 112, ptr %72) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %74) #9
  store ptr %74, ptr %75, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %74, i8 noundef signext 115)
          to label %228 unwind label %541

228:                                              ; preds = %227
  %229 = getelementptr inbounds %"class.std::initializer_list", ptr %73, i32 0, i32 0
  store ptr %74, ptr %229, align 8, !tbaa !11
  %230 = getelementptr inbounds %"class.std::initializer_list", ptr %73, i32 0, i32 1
  store i64 1, ptr %230, align 8, !tbaa !14
  %231 = getelementptr inbounds { ptr, i64 }, ptr %73, i32 0, i32 0
  %232 = load ptr, ptr %231, align 8
  %233 = getelementptr inbounds { ptr, i64 }, ptr %73, i32 0, i32 1
  %234 = load i64, ptr %233, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %72, ptr %232, i64 %234)
          to label %235 unwind label %552

235:                                              ; preds = %228
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %67, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(112) %72, i1 noundef zeroext false)
          to label %236 unwind label %556

236:                                              ; preds = %235
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %72) #9
  %237 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %74, i32 0, i32 0
  %238 = getelementptr inbounds %"struct.args::EitherFlag", ptr %237, i64 1
  br label %239

239:                                              ; preds = %239, %236
  %240 = phi ptr [ %238, %236 ], [ %241, %239 ]
  %241 = getelementptr inbounds %"struct.args::EitherFlag", ptr %240, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %241) #9
  %242 = icmp eq ptr %241, %237
  br i1 %242, label %243, label %239

243:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 40, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 104, ptr %76) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %244 unwind label %571

244:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #9
  call void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @_ZN4args5Group10Validators10AtLeastOneERKS0_) #9
  invoke void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EE(ptr noundef nonnull align 8 dereferenceable(104) %76, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %245 unwind label %575

245:                                              ; preds = %244
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.start.p0(i64 128, ptr %80) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %246 unwind label %580

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %247 unwind label %584

247:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  invoke void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_SD_(ptr noundef nonnull align 8 dereferenceable(121) %80, ptr noundef nonnull align 8 dereferenceable(104) %76, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %248 unwind label %588

248:                                              ; preds = %247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 240, ptr %86) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %249 unwind label %594

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %250 unwind label %598

250:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 112, ptr %91) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %93) #9
  store ptr %93, ptr %94, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %93, i8 noundef signext 111)
          to label %251 unwind label %602

251:                                              ; preds = %250
  %252 = getelementptr inbounds %"class.std::initializer_list", ptr %92, i32 0, i32 0
  store ptr %93, ptr %252, align 8, !tbaa !11
  %253 = getelementptr inbounds %"class.std::initializer_list", ptr %92, i32 0, i32 1
  store i64 1, ptr %253, align 8, !tbaa !14
  %254 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 0
  %255 = load ptr, ptr %254, align 8
  %256 = getelementptr inbounds { ptr, i64 }, ptr %92, i32 0, i32 1
  %257 = load i64, ptr %256, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %91, ptr %255, i64 %257)
          to label %258 unwind label %613

258:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  invoke void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_ONS_7MatcherESD_b(ptr noundef nonnull align 8 dereferenceable(233) %86, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(112) %91, ptr noundef nonnull align 8 dereferenceable(32) %95, i1 noundef zeroext false)
          to label %259 unwind label %617

259:                                              ; preds = %258
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %91) #9
  %260 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %93, i32 0, i32 0
  %261 = getelementptr inbounds %"struct.args::EitherFlag", ptr %260, i64 1
  br label %262

262:                                              ; preds = %262, %259
  %263 = phi ptr [ %261, %259 ], [ %264, %262 ]
  %264 = getelementptr inbounds %"struct.args::EitherFlag", ptr %263, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %264) #9
  %265 = icmp eq ptr %264, %260
  br i1 %265, label %266, label %262

266:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 40, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %91) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #9
  call void @llvm.lifetime.start.p0(i64 240, ptr %96) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %267 unwind label %632

267:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %268 unwind label %636

268:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 112, ptr %101) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %103) #9
  store ptr %103, ptr %104, align 8
  invoke void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %103, i8 noundef signext 102)
          to label %269 unwind label %640

269:                                              ; preds = %268
  %270 = getelementptr inbounds %"class.std::initializer_list", ptr %102, i32 0, i32 0
  store ptr %103, ptr %270, align 8, !tbaa !11
  %271 = getelementptr inbounds %"class.std::initializer_list", ptr %102, i32 0, i32 1
  store i64 1, ptr %271, align 8, !tbaa !14
  %272 = getelementptr inbounds { ptr, i64 }, ptr %102, i32 0, i32 0
  %273 = load ptr, ptr %272, align 8
  %274 = getelementptr inbounds { ptr, i64 }, ptr %102, i32 0, i32 1
  %275 = load i64, ptr %274, align 8
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %101, ptr %273, i64 %275)
          to label %276 unwind label %651

276:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  invoke void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_ONS_7MatcherESD_b(ptr noundef nonnull align 8 dereferenceable(233) %96, ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(112) %101, ptr noundef nonnull align 8 dereferenceable(32) %105, i1 noundef zeroext false)
          to label %277 unwind label %655

277:                                              ; preds = %276
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %101) #9
  %278 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %103, i32 0, i32 0
  %279 = getelementptr inbounds %"struct.args::EitherFlag", ptr %278, i64 1
  br label %280

280:                                              ; preds = %280, %277
  %281 = phi ptr [ %279, %277 ], [ %282, %280 ]
  %282 = getelementptr inbounds %"struct.args::EitherFlag", ptr %281, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %282) #9
  %283 = icmp eq ptr %282, %278
  br i1 %283, label %284, label %280

284:                                              ; preds = %280
  call void @llvm.lifetime.end.p0(i64 40, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %101) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #9
  %285 = getelementptr inbounds %"class.args::ArgumentParser", ptr %6, i32 0, i32 13
  %286 = getelementptr inbounds %"struct.args::ArgumentParser::HelpParams", ptr %285, i32 0, i32 8
  store i8 0, ptr %286, align 4, !tbaa !15
  %287 = load i32, ptr %4, align 4, !tbaa !5
  %288 = load ptr, ptr %5, align 8, !tbaa !9
  %289 = invoke noundef zeroext i1 @_ZN4args14ArgumentParser8ParseCLIEiPKPKc(ptr noundef nonnull align 8 dereferenceable(400) %6, i32 noundef %287, ptr noundef %288)
          to label %290 unwind label %670

290:                                              ; preds = %284
  br label %760

291:                                              ; preds = %2
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %9, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %10, align 4
  br label %304

295:                                              ; preds = %113
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %9, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %10, align 4
  br label %303

299:                                              ; preds = %114
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %9, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %303

303:                                              ; preds = %299, %295
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %304

304:                                              ; preds = %303, %291
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #9
  br label %893

305:                                              ; preds = %115
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %9, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %10, align 4
  br label %342

309:                                              ; preds = %116
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %9, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %10, align 4
  br label %341

313:                                              ; preds = %118, %117
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %9, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %10, align 4
  %317 = load ptr, ptr %21, align 8
  %318 = icmp eq ptr %20, %317
  br i1 %318, label %323, label %319

319:                                              ; preds = %319, %313
  %320 = phi ptr [ %317, %313 ], [ %321, %319 ]
  %321 = getelementptr inbounds %"struct.args::EitherFlag", ptr %320, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %321) #9
  %322 = icmp eq ptr %321, %20
  br i1 %322, label %323, label %319

323:                                              ; preds = %319, %313
  br label %340

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

328:                                              ; preds = %127
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %9, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %18) #9
  br label %332

332:                                              ; preds = %328, %324
  %333 = getelementptr inbounds [2 x %"struct.args::EitherFlag"], ptr %20, i32 0, i32 0
  %334 = getelementptr inbounds %"struct.args::EitherFlag", ptr %333, i64 2
  br label %335

335:                                              ; preds = %335, %332
  %336 = phi ptr [ %334, %332 ], [ %337, %335 ]
  %337 = getelementptr inbounds %"struct.args::EitherFlag", ptr %336, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %337) #9
  %338 = icmp eq ptr %337, %333
  br i1 %338, label %339, label %335

339:                                              ; preds = %335
  br label %340

340:                                              ; preds = %339, %323
  call void @llvm.lifetime.end.p0(i64 80, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %341

341:                                              ; preds = %340, %309
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %342

342:                                              ; preds = %341, %305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  br label %892

343:                                              ; preds = %135
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %9, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %10, align 4
  br label %380

347:                                              ; preds = %136
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %9, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %10, align 4
  br label %379

351:                                              ; preds = %137
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %9, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %10, align 4
  %355 = load ptr, ptr %30, align 8
  %356 = icmp eq ptr %29, %355
  br i1 %356, label %361, label %357

357:                                              ; preds = %357, %351
  %358 = phi ptr [ %355, %351 ], [ %359, %357 ]
  %359 = getelementptr inbounds %"struct.args::EitherFlag", ptr %358, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %359) #9
  %360 = icmp eq ptr %359, %29
  br i1 %360, label %361, label %357

361:                                              ; preds = %357, %351
  br label %378

362:                                              ; preds = %138
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %9, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %10, align 4
  br label %370

366:                                              ; preds = %145
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %9, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #9
  br label %370

370:                                              ; preds = %366, %362
  %371 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %29, i32 0, i32 0
  %372 = getelementptr inbounds %"struct.args::EitherFlag", ptr %371, i64 1
  br label %373

373:                                              ; preds = %373, %370
  %374 = phi ptr [ %372, %370 ], [ %375, %373 ]
  %375 = getelementptr inbounds %"struct.args::EitherFlag", ptr %374, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %375) #9
  %376 = icmp eq ptr %375, %371
  br i1 %376, label %377, label %373

377:                                              ; preds = %373
  br label %378

378:                                              ; preds = %377, %361
  call void @llvm.lifetime.end.p0(i64 40, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %379

379:                                              ; preds = %378, %347
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %380

380:                                              ; preds = %379, %343
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  br label %891

381:                                              ; preds = %153
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %9, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %10, align 4
  br label %418

385:                                              ; preds = %154
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %9, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %10, align 4
  br label %417

389:                                              ; preds = %155
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %9, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %10, align 4
  %393 = load ptr, ptr %39, align 8
  %394 = icmp eq ptr %38, %393
  br i1 %394, label %399, label %395

395:                                              ; preds = %395, %389
  %396 = phi ptr [ %393, %389 ], [ %397, %395 ]
  %397 = getelementptr inbounds %"struct.args::EitherFlag", ptr %396, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %397) #9
  %398 = icmp eq ptr %397, %38
  br i1 %398, label %399, label %395

399:                                              ; preds = %395, %389
  br label %416

400:                                              ; preds = %156
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %9, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %10, align 4
  br label %408

404:                                              ; preds = %163
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %9, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %36) #9
  br label %408

408:                                              ; preds = %404, %400
  %409 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %38, i32 0, i32 0
  %410 = getelementptr inbounds %"struct.args::EitherFlag", ptr %409, i64 1
  br label %411

411:                                              ; preds = %411, %408
  %412 = phi ptr [ %410, %408 ], [ %413, %411 ]
  %413 = getelementptr inbounds %"struct.args::EitherFlag", ptr %412, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %413) #9
  %414 = icmp eq ptr %413, %409
  br i1 %414, label %415, label %411

415:                                              ; preds = %411
  br label %416

416:                                              ; preds = %415, %399
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %36) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %417

417:                                              ; preds = %416, %385
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %418

418:                                              ; preds = %417, %381
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  br label %890

419:                                              ; preds = %171
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %9, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %10, align 4
  br label %456

423:                                              ; preds = %172
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %9, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %10, align 4
  br label %455

427:                                              ; preds = %173
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %9, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %10, align 4
  %431 = load ptr, ptr %48, align 8
  %432 = icmp eq ptr %47, %431
  br i1 %432, label %437, label %433

433:                                              ; preds = %433, %427
  %434 = phi ptr [ %431, %427 ], [ %435, %433 ]
  %435 = getelementptr inbounds %"struct.args::EitherFlag", ptr %434, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %435) #9
  %436 = icmp eq ptr %435, %47
  br i1 %436, label %437, label %433

437:                                              ; preds = %433, %427
  br label %454

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

442:                                              ; preds = %181
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %9, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %45) #9
  br label %446

446:                                              ; preds = %442, %438
  %447 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %47, i32 0, i32 0
  %448 = getelementptr inbounds %"struct.args::EitherFlag", ptr %447, i64 1
  br label %449

449:                                              ; preds = %449, %446
  %450 = phi ptr [ %448, %446 ], [ %451, %449 ]
  %451 = getelementptr inbounds %"struct.args::EitherFlag", ptr %450, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %451) #9
  %452 = icmp eq ptr %451, %447
  br i1 %452, label %453, label %449

453:                                              ; preds = %449
  br label %454

454:                                              ; preds = %453, %437
  call void @llvm.lifetime.end.p0(i64 40, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %455

455:                                              ; preds = %454, %423
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %456

456:                                              ; preds = %455, %419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #9
  br label %889

457:                                              ; preds = %189
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %9, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %10, align 4
  br label %494

461:                                              ; preds = %190
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %9, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %10, align 4
  br label %493

465:                                              ; preds = %191
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %9, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %10, align 4
  %469 = load ptr, ptr %57, align 8
  %470 = icmp eq ptr %56, %469
  br i1 %470, label %475, label %471

471:                                              ; preds = %471, %465
  %472 = phi ptr [ %469, %465 ], [ %473, %471 ]
  %473 = getelementptr inbounds %"struct.args::EitherFlag", ptr %472, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %473) #9
  %474 = icmp eq ptr %473, %56
  br i1 %474, label %475, label %471

475:                                              ; preds = %471, %465
  br label %492

476:                                              ; preds = %192
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %9, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %10, align 4
  br label %484

480:                                              ; preds = %199
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %9, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #9
  br label %484

484:                                              ; preds = %480, %476
  %485 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %56, i32 0, i32 0
  %486 = getelementptr inbounds %"struct.args::EitherFlag", ptr %485, i64 1
  br label %487

487:                                              ; preds = %487, %484
  %488 = phi ptr [ %486, %484 ], [ %489, %487 ]
  %489 = getelementptr inbounds %"struct.args::EitherFlag", ptr %488, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %489) #9
  %490 = icmp eq ptr %489, %485
  br i1 %490, label %491, label %487

491:                                              ; preds = %487
  br label %492

492:                                              ; preds = %491, %475
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %54) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %493

493:                                              ; preds = %492, %461
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %494

494:                                              ; preds = %493, %457
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  br label %888

495:                                              ; preds = %207
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %9, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %10, align 4
  br label %532

499:                                              ; preds = %208
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %9, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %10, align 4
  br label %531

503:                                              ; preds = %209
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %9, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %10, align 4
  %507 = load ptr, ptr %66, align 8
  %508 = icmp eq ptr %65, %507
  br i1 %508, label %513, label %509

509:                                              ; preds = %509, %503
  %510 = phi ptr [ %507, %503 ], [ %511, %509 ]
  %511 = getelementptr inbounds %"struct.args::EitherFlag", ptr %510, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %511) #9
  %512 = icmp eq ptr %511, %65
  br i1 %512, label %513, label %509

513:                                              ; preds = %509, %503
  br label %530

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

518:                                              ; preds = %217
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %9, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %63) #9
  br label %522

522:                                              ; preds = %518, %514
  %523 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %65, i32 0, i32 0
  %524 = getelementptr inbounds %"struct.args::EitherFlag", ptr %523, i64 1
  br label %525

525:                                              ; preds = %525, %522
  %526 = phi ptr [ %524, %522 ], [ %527, %525 ]
  %527 = getelementptr inbounds %"struct.args::EitherFlag", ptr %526, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %527) #9
  %528 = icmp eq ptr %527, %523
  br i1 %528, label %529, label %525

529:                                              ; preds = %525
  br label %530

530:                                              ; preds = %529, %513
  call void @llvm.lifetime.end.p0(i64 40, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %63) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %531

531:                                              ; preds = %530, %499
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %532

532:                                              ; preds = %531, %495
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %887

533:                                              ; preds = %225
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %9, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %10, align 4
  br label %570

537:                                              ; preds = %226
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %9, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %10, align 4
  br label %569

541:                                              ; preds = %227
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %9, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %10, align 4
  %545 = load ptr, ptr %75, align 8
  %546 = icmp eq ptr %74, %545
  br i1 %546, label %551, label %547

547:                                              ; preds = %547, %541
  %548 = phi ptr [ %545, %541 ], [ %549, %547 ]
  %549 = getelementptr inbounds %"struct.args::EitherFlag", ptr %548, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %549) #9
  %550 = icmp eq ptr %549, %74
  br i1 %550, label %551, label %547

551:                                              ; preds = %547, %541
  br label %568

552:                                              ; preds = %228
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %9, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %10, align 4
  br label %560

556:                                              ; preds = %235
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %9, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %10, align 4
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %72) #9
  br label %560

560:                                              ; preds = %556, %552
  %561 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %74, i32 0, i32 0
  %562 = getelementptr inbounds %"struct.args::EitherFlag", ptr %561, i64 1
  br label %563

563:                                              ; preds = %563, %560
  %564 = phi ptr [ %562, %560 ], [ %565, %563 ]
  %565 = getelementptr inbounds %"struct.args::EitherFlag", ptr %564, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %565) #9
  %566 = icmp eq ptr %565, %561
  br i1 %566, label %567, label %563

567:                                              ; preds = %563
  br label %568

568:                                              ; preds = %567, %551
  call void @llvm.lifetime.end.p0(i64 40, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %569

569:                                              ; preds = %568, %537
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %570

570:                                              ; preds = %569, %533
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  br label %886

571:                                              ; preds = %243
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %9, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %10, align 4
  br label %579

575:                                              ; preds = %244
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %9, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %10, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %579

579:                                              ; preds = %575, %571
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  br label %885

580:                                              ; preds = %245
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %9, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %10, align 4
  br label %593

584:                                              ; preds = %246
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %9, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %10, align 4
  br label %592

588:                                              ; preds = %247
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %9, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  br label %592

592:                                              ; preds = %588, %584
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #9
  br label %593

593:                                              ; preds = %592, %580
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  br label %884

594:                                              ; preds = %248
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %9, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %10, align 4
  br label %631

598:                                              ; preds = %249
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %9, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %10, align 4
  br label %630

602:                                              ; preds = %250
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %9, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %10, align 4
  %606 = load ptr, ptr %94, align 8
  %607 = icmp eq ptr %93, %606
  br i1 %607, label %612, label %608

608:                                              ; preds = %608, %602
  %609 = phi ptr [ %606, %602 ], [ %610, %608 ]
  %610 = getelementptr inbounds %"struct.args::EitherFlag", ptr %609, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %610) #9
  %611 = icmp eq ptr %610, %93
  br i1 %611, label %612, label %608

612:                                              ; preds = %608, %602
  br label %629

613:                                              ; preds = %251
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %9, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %10, align 4
  br label %621

617:                                              ; preds = %258
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %9, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %91) #9
  br label %621

621:                                              ; preds = %617, %613
  %622 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %93, i32 0, i32 0
  %623 = getelementptr inbounds %"struct.args::EitherFlag", ptr %622, i64 1
  br label %624

624:                                              ; preds = %624, %621
  %625 = phi ptr [ %623, %621 ], [ %626, %624 ]
  %626 = getelementptr inbounds %"struct.args::EitherFlag", ptr %625, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %626) #9
  %627 = icmp eq ptr %626, %622
  br i1 %627, label %628, label %624

628:                                              ; preds = %624
  br label %629

629:                                              ; preds = %628, %612
  call void @llvm.lifetime.end.p0(i64 40, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %91) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %630

630:                                              ; preds = %629, %598
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  br label %631

631:                                              ; preds = %630, %594
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #9
  br label %883

632:                                              ; preds = %266
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %9, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %10, align 4
  br label %669

636:                                              ; preds = %267
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %9, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %10, align 4
  br label %668

640:                                              ; preds = %268
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %9, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %10, align 4
  %644 = load ptr, ptr %104, align 8
  %645 = icmp eq ptr %103, %644
  br i1 %645, label %650, label %646

646:                                              ; preds = %646, %640
  %647 = phi ptr [ %644, %640 ], [ %648, %646 ]
  %648 = getelementptr inbounds %"struct.args::EitherFlag", ptr %647, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %648) #9
  %649 = icmp eq ptr %648, %103
  br i1 %649, label %650, label %646

650:                                              ; preds = %646, %640
  br label %667

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

655:                                              ; preds = %276
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %9, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %101) #9
  br label %659

659:                                              ; preds = %655, %651
  %660 = getelementptr inbounds [1 x %"struct.args::EitherFlag"], ptr %103, i32 0, i32 0
  %661 = getelementptr inbounds %"struct.args::EitherFlag", ptr %660, i64 1
  br label %662

662:                                              ; preds = %662, %659
  %663 = phi ptr [ %661, %659 ], [ %664, %662 ]
  %664 = getelementptr inbounds %"struct.args::EitherFlag", ptr %663, i64 -1
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %664) #9
  %665 = icmp eq ptr %664, %660
  br i1 %665, label %666, label %662

666:                                              ; preds = %662
  br label %667

667:                                              ; preds = %666, %650
  call void @llvm.lifetime.end.p0(i64 40, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr %101) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %668

668:                                              ; preds = %667, %636
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  br label %669

669:                                              ; preds = %668, %632
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #9
  br label %882

670:                                              ; preds = %284
  %671 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4args4HelpE
          catch ptr @_ZTIN4args10ParseErrorE
          catch ptr @_ZTIN4args15ValidationErrorE
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %9, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %10, align 4
  br label %674

674:                                              ; preds = %670
  %675 = load i32, ptr %10, align 4
  %676 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4args4HelpE) #9
  %677 = icmp eq i32 %675, %676
  br i1 %677, label %678, label %683

678:                                              ; preds = %674
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #9
  %679 = load ptr, ptr %9, align 8
  %680 = call ptr @__cxa_begin_catch(ptr %679) #9
  store ptr %680, ptr %109, align 8
  %681 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(400) %6)
          to label %682 unwind label %749

682:                                              ; preds = %678
  store i32 0, ptr %3, align 4
  store i32 1, ptr %107, align 4
  invoke void @__cxa_end_catch()
          to label %753 unwind label %754

683:                                              ; preds = %674
  %684 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4args10ParseErrorE) #9
  %685 = icmp eq i32 %675, %684
  br i1 %685, label %686, label %700

686:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  %687 = load ptr, ptr %9, align 8
  %688 = call ptr @__cxa_begin_catch(ptr %687) #9
  store ptr %688, ptr %108, align 8
  %689 = load ptr, ptr %108, align 8, !tbaa !9
  %690 = load ptr, ptr %689, align 8, !tbaa !29
  %691 = getelementptr inbounds ptr, ptr %690, i64 2
  %692 = load ptr, ptr %691, align 8
  %693 = call noundef ptr %692(ptr noundef nonnull align 8 dereferenceable(16) %689) #9
  %694 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %693)
          to label %695 unwind label %738

695:                                              ; preds = %686
  %696 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %694, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %697 unwind label %738

697:                                              ; preds = %695
  %698 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(400) %6)
          to label %699 unwind label %738

699:                                              ; preds = %697
  store i32 1, ptr %3, align 4
  store i32 1, ptr %107, align 4
  invoke void @__cxa_end_catch()
          to label %742 unwind label %743

700:                                              ; preds = %683
  %701 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4args15ValidationErrorE) #9
  %702 = icmp eq i32 %675, %701
  br i1 %702, label %703, label %881

703:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #9
  %704 = load ptr, ptr %9, align 8
  %705 = call ptr @__cxa_begin_catch(ptr %704) #9
  store ptr %705, ptr %106, align 8
  %706 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %80) #9
  br i1 %706, label %718, label %707

707:                                              ; preds = %703
  %708 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.23)
          to label %709 unwind label %714

709:                                              ; preds = %707
  %710 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %708, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %711 unwind label %714

711:                                              ; preds = %709
  %712 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(400) %6)
          to label %713 unwind label %714

713:                                              ; preds = %711
  store i32 1, ptr %3, align 4
  store i32 1, ptr %107, align 4
  br label %730

714:                                              ; preds = %727, %725, %718, %711, %709, %707
  %715 = landingpad { ptr, i32 }
          cleanup
  %716 = extractvalue { ptr, i32 } %715, 0
  store ptr %716, ptr %9, align 8
  %717 = extractvalue { ptr, i32 } %715, 1
  store i32 %717, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %736 unwind label %899

718:                                              ; preds = %703
  %719 = load ptr, ptr %106, align 8, !tbaa !9
  %720 = load ptr, ptr %719, align 8, !tbaa !29
  %721 = getelementptr inbounds ptr, ptr %720, i64 2
  %722 = load ptr, ptr %721, align 8
  %723 = call noundef ptr %722(ptr noundef nonnull align 8 dereferenceable(16) %719) #9
  %724 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %723)
          to label %725 unwind label %714

725:                                              ; preds = %718
  %726 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %724, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %727 unwind label %714

727:                                              ; preds = %725
  %728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(400) %6)
          to label %729 unwind label %714

729:                                              ; preds = %727
  store i32 1, ptr %3, align 4
  store i32 1, ptr %107, align 4
  br label %730

730:                                              ; preds = %729, %713
  invoke void @__cxa_end_catch()
          to label %731 unwind label %732

731:                                              ; preds = %730
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  br label %879

732:                                              ; preds = %730
  %733 = landingpad { ptr, i32 }
          cleanup
  %734 = extractvalue { ptr, i32 } %733, 0
  store ptr %734, ptr %9, align 8
  %735 = extractvalue { ptr, i32 } %733, 1
  store i32 %735, ptr %10, align 4
  br label %737

736:                                              ; preds = %714
  br label %737

737:                                              ; preds = %736, %732
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  br label %881

738:                                              ; preds = %697, %695, %686
  %739 = landingpad { ptr, i32 }
          cleanup
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %9, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %747 unwind label %899

742:                                              ; preds = %699
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  br label %879

743:                                              ; preds = %699
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %9, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %10, align 4
  br label %748

747:                                              ; preds = %738
  br label %748

748:                                              ; preds = %747, %743
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  br label %881

749:                                              ; preds = %678
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %9, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %758 unwind label %899

753:                                              ; preds = %682
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #9
  br label %879

754:                                              ; preds = %682
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %9, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %10, align 4
  br label %759

758:                                              ; preds = %749
  br label %759

759:                                              ; preds = %758, %754
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #9
  br label %881

760:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 104, ptr %110) #9
  invoke void @_ZN7BuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(104) %110)
          to label %761 unwind label %768

761:                                              ; preds = %760
  %762 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %96) #9
  br i1 %762, label %763, label %776

763:                                              ; preds = %761
  %764 = load ptr, ptr @manager, align 8, !tbaa !9
  %765 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4args3getINS_9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS7_EEEEEEDTcldtfp_3GetEERT_(ptr noundef nonnull align 8 dereferenceable(233) %96)
          to label %766 unwind label %772

766:                                              ; preds = %763
  invoke void @_ZN14FetlangManager18addFetishDirectoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(380) %764, ptr noundef nonnull align 8 dereferenceable(32) %765)
          to label %767 unwind label %772

767:                                              ; preds = %766
  br label %776

768:                                              ; preds = %760
  %769 = landingpad { ptr, i32 }
          catch ptr @_ZTI16FetlangException
          catch ptr @_ZTISt9exception
          catch ptr null
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %9, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %10, align 4
  br label %811

772:                                              ; preds = %809, %808, %806, %804, %800, %798, %794, %790, %786, %782, %778, %766, %763
  %773 = landingpad { ptr, i32 }
          catch ptr @_ZTI16FetlangException
          catch ptr @_ZTISt9exception
          catch ptr null
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %9, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %10, align 4
  call void @_ZN7BuilderD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %110) #9
  br label %811

776:                                              ; preds = %767, %761
  %777 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %58) #9
  br i1 %777, label %778, label %780

778:                                              ; preds = %776
  invoke void @_ZN7Builder14setCompilationEb(ptr noundef nonnull align 8 dereferenceable(104) %110, i1 noundef zeroext false)
          to label %779 unwind label %772

779:                                              ; preds = %778
  br label %780

780:                                              ; preds = %779, %776
  %781 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %40) #9
  br i1 %781, label %782, label %784

782:                                              ; preds = %780
  invoke void @_ZN7Builder10showTokensEb(ptr noundef nonnull align 8 dereferenceable(104) %110, i1 noundef zeroext true)
          to label %783 unwind label %772

783:                                              ; preds = %782
  br label %784

784:                                              ; preds = %783, %780
  %785 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %49) #9
  br i1 %785, label %786, label %788

786:                                              ; preds = %784
  invoke void @_ZN7Builder8showTreeEb(ptr noundef nonnull align 8 dereferenceable(104) %110, i1 noundef zeroext true)
          to label %787 unwind label %772

787:                                              ; preds = %786
  br label %788

788:                                              ; preds = %787, %784
  %789 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %22) #9
  br i1 %789, label %790, label %792

790:                                              ; preds = %788
  invoke void @_ZN7Builder15setOptimizationEb(ptr noundef nonnull align 8 dereferenceable(104) %110, i1 noundef zeroext true)
          to label %791 unwind label %772

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791, %788
  %793 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %31) #9
  br i1 %793, label %794, label %796

794:                                              ; preds = %792
  invoke void @_ZN7Builder23setLinkTimeOptimizationEb(ptr noundef nonnull align 8 dereferenceable(104) %110, i1 noundef zeroext true)
          to label %795 unwind label %772

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795, %792
  %797 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %86) #9
  br i1 %797, label %798, label %802

798:                                              ; preds = %796
  %799 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4args3getINS_9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS7_EEEEEEDTcldtfp_3GetEERT_(ptr noundef nonnull align 8 dereferenceable(233) %86)
          to label %800 unwind label %772

800:                                              ; preds = %798
  invoke void @_ZN7Builder14setDestinationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %110, ptr noundef nonnull align 8 dereferenceable(32) %799)
          to label %801 unwind label %772

801:                                              ; preds = %800
  br label %802

802:                                              ; preds = %801, %796
  %803 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %67) #9
  br i1 %803, label %804, label %806

804:                                              ; preds = %802
  invoke void @_ZNK7Builder5cleanEv(ptr noundef nonnull align 8 dereferenceable(104) %110)
          to label %805 unwind label %772

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805, %802
  %807 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN4args3getINS_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS7_EEEEEEDTcldtfp_3GetEERT_(ptr noundef nonnull align 8 dereferenceable(121) %80)
          to label %808 unwind label %772

808:                                              ; preds = %806
  invoke void @_ZN7Builder9setSourceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %110, ptr noundef nonnull align 8 dereferenceable(32) %807)
          to label %809 unwind label %772

809:                                              ; preds = %808
  invoke void @_ZN7Builder5buildEv(ptr noundef nonnull align 8 dereferenceable(104) %110)
          to label %810 unwind label %772

810:                                              ; preds = %809
  call void @_ZN7BuilderD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %110) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr %110) #9
  br label %878

811:                                              ; preds = %772, %768
  call void @llvm.lifetime.end.p0(i64 104, ptr %110) #9
  br label %812

812:                                              ; preds = %811
  %813 = load i32, ptr %10, align 4
  %814 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTI16FetlangException) #9
  %815 = icmp eq i32 %813, %814
  br i1 %815, label %816, label %824

816:                                              ; preds = %812
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  %817 = load ptr, ptr %9, align 8
  %818 = call ptr @__cxa_begin_catch(ptr %817) #9
  store ptr %818, ptr %112, align 8
  %819 = load ptr, ptr %112, align 8, !tbaa !9
  %820 = load ptr, ptr %819, align 8, !tbaa !29
  %821 = getelementptr inbounds ptr, ptr %820, i64 3
  %822 = load ptr, ptr %821, align 8
  invoke void %822(ptr noundef nonnull align 8 dereferenceable(20) %819)
          to label %823 unwind label %867

823:                                              ; preds = %816
  store i32 1, ptr %3, align 4
  store i32 1, ptr %107, align 4
  invoke void @__cxa_end_catch()
          to label %871 unwind label %872

824:                                              ; preds = %812
  %825 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #9
  %826 = icmp eq i32 %813, %825
  br i1 %826, label %827, label %841

827:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  %828 = load ptr, ptr %9, align 8
  %829 = call ptr @__cxa_begin_catch(ptr %828) #9
  store ptr %829, ptr %111, align 8
  %830 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.25)
          to label %831 unwind label %856

831:                                              ; preds = %827
  %832 = load ptr, ptr %111, align 8, !tbaa !9
  %833 = load ptr, ptr %832, align 8, !tbaa !29
  %834 = getelementptr inbounds ptr, ptr %833, i64 2
  %835 = load ptr, ptr %834, align 8
  %836 = call noundef ptr %835(ptr noundef nonnull align 8 dereferenceable(8) %832) #9
  %837 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %830, ptr noundef %836)
          to label %838 unwind label %856

838:                                              ; preds = %831
  %839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %837, ptr noundef @.str.26)
          to label %840 unwind label %856

840:                                              ; preds = %838
  store i32 1, ptr %3, align 4
  store i32 1, ptr %107, align 4
  invoke void @__cxa_end_catch()
          to label %860 unwind label %861

841:                                              ; preds = %824
  %842 = load ptr, ptr %9, align 8
  %843 = call ptr @__cxa_begin_catch(ptr %842) #9
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.24)
          to label %845 unwind label %846

845:                                              ; preds = %841
  store i32 1, ptr %3, align 4
  store i32 1, ptr %107, align 4
  invoke void @__cxa_end_catch()
          to label %850 unwind label %851

846:                                              ; preds = %841
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %9, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %855 unwind label %899

850:                                              ; preds = %845
  br label %879

851:                                              ; preds = %845
  %852 = landingpad { ptr, i32 }
          cleanup
  %853 = extractvalue { ptr, i32 } %852, 0
  store ptr %853, ptr %9, align 8
  %854 = extractvalue { ptr, i32 } %852, 1
  store i32 %854, ptr %10, align 4
  br label %881

855:                                              ; preds = %846
  br label %881

856:                                              ; preds = %838, %831, %827
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %9, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %865 unwind label %899

860:                                              ; preds = %840
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %879

861:                                              ; preds = %840
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %9, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %10, align 4
  br label %866

865:                                              ; preds = %856
  br label %866

866:                                              ; preds = %865, %861
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %881

867:                                              ; preds = %816
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %9, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %10, align 4
  invoke void @__cxa_end_catch()
          to label %876 unwind label %899

871:                                              ; preds = %823
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  br label %879

872:                                              ; preds = %823
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %9, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %10, align 4
  br label %877

876:                                              ; preds = %867
  br label %877

877:                                              ; preds = %876, %872
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  br label %881

878:                                              ; preds = %810
  store i32 0, ptr %3, align 4
  store i32 1, ptr %107, align 4
  br label %879

879:                                              ; preds = %878, %871, %860, %850, %753, %742, %731
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %96) #9
  call void @llvm.lifetime.end.p0(i64 240, ptr %96) #9
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %86) #9
  call void @llvm.lifetime.end.p0(i64 240, ptr %86) #9
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(121) %80) #9
  call void @llvm.lifetime.end.p0(i64 128, ptr %80) #9
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %76) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr %76) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %67) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %67) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %58) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %58) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %49) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %49) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %40) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %40) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %31) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %31) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %22) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %22) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %13) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %13) #9
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(400) %6) #9
  call void @llvm.lifetime.end.p0(i64 400, ptr %6) #9
  %880 = load i32, ptr %3, align 4
  ret i32 %880

881:                                              ; preds = %877, %866, %855, %851, %759, %748, %737, %700
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %96) #9
  br label %882

882:                                              ; preds = %881, %669
  call void @llvm.lifetime.end.p0(i64 240, ptr %96) #9
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %86) #9
  br label %883

883:                                              ; preds = %882, %631
  call void @llvm.lifetime.end.p0(i64 240, ptr %86) #9
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(121) %80) #9
  br label %884

884:                                              ; preds = %883, %593
  call void @llvm.lifetime.end.p0(i64 128, ptr %80) #9
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %76) #9
  br label %885

885:                                              ; preds = %884, %579
  call void @llvm.lifetime.end.p0(i64 104, ptr %76) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %67) #9
  br label %886

886:                                              ; preds = %885, %570
  call void @llvm.lifetime.end.p0(i64 200, ptr %67) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %58) #9
  br label %887

887:                                              ; preds = %886, %532
  call void @llvm.lifetime.end.p0(i64 200, ptr %58) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %49) #9
  br label %888

888:                                              ; preds = %887, %494
  call void @llvm.lifetime.end.p0(i64 200, ptr %49) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %40) #9
  br label %889

889:                                              ; preds = %888, %456
  call void @llvm.lifetime.end.p0(i64 200, ptr %40) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %31) #9
  br label %890

890:                                              ; preds = %889, %418
  call void @llvm.lifetime.end.p0(i64 200, ptr %31) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %22) #9
  br label %891

891:                                              ; preds = %890, %380
  call void @llvm.lifetime.end.p0(i64 200, ptr %22) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %13) #9
  br label %892

892:                                              ; preds = %891, %342
  call void @llvm.lifetime.end.p0(i64 200, ptr %13) #9
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(400) %6) #9
  br label %893

893:                                              ; preds = %892, %304
  call void @llvm.lifetime.end.p0(i64 400, ptr %6) #9
  br label %894

894:                                              ; preds = %893
  %895 = load ptr, ptr %9, align 8
  %896 = load i32, ptr %10, align 4
  %897 = insertvalue { ptr, i32 } poison, ptr %895, 0
  %898 = insertvalue { ptr, i32 } %897, i32 %896, 1
  resume { ptr, i32 } %898

899:                                              ; preds = %867, %856, %846, %749, %738, %714
  %900 = landingpad { ptr, i32 }
          catch ptr null
  %901 = extractvalue { ptr, i32 } %900, 0
  call void @__clang_call_terminate(ptr %901) #10
  unreachable
}

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), i1 noundef zeroext) unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_ONS_7MatcherESD_b(ptr noundef nonnull align 8 dereferenceable(233), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) unnamed_addr #3 align 2

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

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

declare ptr @__cxa_begin_catch(ptr)

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

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

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

declare void @__cxa_end_catch()

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

declare void @_ZN7BuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #8

declare void @_ZN14FetlangManager18addFetishDirectoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef nonnull align 8 dereferenceable(32)) #8

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

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

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

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

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

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

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

declare void @_ZNK7Builder5cleanEv(ptr noundef nonnull align 8 dereferenceable(104)) #8

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

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

declare void @_ZN7Builder5buildEv(ptr noundef nonnull align 8 dereferenceable(104)) #8

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200)) 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 = { 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 = { 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 #5 = { nounwind memory(none) }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { 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 0}
!12 = !{!"_ZTSSt16initializer_listIN4args10EitherFlagEE", !10, i64 0, !13, i64 8}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !13, i64 8}
!15 = !{!16, !19, i64 396}
!16 = !{!"_ZTSN4args14ArgumentParserE", !17, i64 0, !20, i64 104, !20, i64 136, !20, i64 168, !20, i64 200, !20, i64 232, !20, i64 264, !20, i64 296, !20, i64 328, !19, i64 360, !19, i64 361, !19, i64 362, !19, i64 363, !28, i64 364}
!17 = !{!"_ZTSN4args5GroupE", !18, i64 0, !22, i64 48, !26, i64 72}
!18 = !{!"_ZTSN4args4BaseE", !19, i64 8, !20, i64 16}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !13, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!22 = !{!"_ZTSSt6vectorIPN4args4BaseESaIS2_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIPN4args4BaseESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!26 = !{!"_ZTSSt8functionIFbRKN4args5GroupEEE", !27, i64 0, !10, i64 24}
!27 = !{!"_ZTSSt14_Function_base", !7, i64 0, !10, i64 16}
!28 = !{!"_ZTSN4args14ArgumentParser10HelpParamsE", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !19, i64 32, !19, i64 33, !19, i64 34}
!29 = !{!30, !30, i64 0}
!30 = !{!"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.args::ArgumentParser" = type { %"class.args::Group", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, %"struct.args::ArgumentParser::HelpParams" }
%"class.args::Group" = type { %"class.args::Base", %"class.std::vector", %"class.std::function" }
%"class.args::Base" = type { ptr, i8, %"class.std::__cxx11::basic_string" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl" = type { %"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<args::Base *, std::allocator<args::Base *>>::_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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.args::ArgumentParser::HelpParams" = type <{ i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8 }>
%"class.std::allocator" = type { i8 }
%"class.args::HelpFlag" = type { %"class.args::Flag" }
%"class.args::Flag" = type { %"class.args::FlagBase" }
%"class.args::FlagBase" = type { %"class.args::NamedBase.base", i8, %"class.args::Matcher" }
%"class.args::NamedBase.base" = type <{ %"class.args::Base", %"class.std::__cxx11::basic_string", i8 }>
%"class.args::Matcher" = type { %"class.std::unordered_set", %"class.std::unordered_set.8" }
%"class.std::unordered_set" = 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.std::unordered_set.8" = type { %"class.std::_Hashtable.9" }
%"class.std::_Hashtable.9" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.args::EitherFlag" = type { i8, i8, %"class.std::__cxx11::basic_string" }
%"class.args::Positional" = type <{ %"class.args::PositionalBase.base", [6 x i8], %"class.std::__cxx11::basic_string", [8 x i8] }>
%"class.args::PositionalBase.base" = type { %"class.args::NamedBase.base", i8 }
%"class.args::ValueFlag" = type <{ %"class.args::ValueFlagBase", %"class.std::__cxx11::basic_string", [8 x i8] }>
%"class.args::ValueFlagBase" = type { %"class.args::FlagBase" }
%class.Builder = type { i8, i8, i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@_ZTIN4args4HelpE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args10ParseErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4args15ValidationErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.23 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZTI16FetlangException = external constant ptr
@_ZTISt9exception = external constant ptr
@manager = external local_unnamed_addr constant ptr, align 8
@.str.24 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 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 %"class.args::ArgumentParser", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca %"class.args::HelpFlag", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.args::Matcher", align 8
  %14 = alloca [2 x %"struct.args::EitherFlag"], align 8
  %15 = alloca %"class.args::Flag", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.args::Matcher", align 8
  %21 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %22 = alloca %"class.args::Flag", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.args::Matcher", align 8
  %28 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %29 = alloca %"class.args::Flag", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.args::Matcher", align 8
  %35 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %36 = alloca %"class.args::Flag", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.args::Matcher", align 8
  %42 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %43 = alloca %"class.args::Flag", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %"class.args::Matcher", align 8
  %49 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %50 = alloca %"class.args::Flag", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.args::Matcher", align 8
  %56 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %57 = alloca %"class.args::Group", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.std::function", align 8
  %61 = alloca %"class.args::Positional", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.args::ValueFlag", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"class.args::Matcher", align 8
  %73 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.args::ValueFlag", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca %"class.args::Matcher", align 8
  %81 = alloca [1 x %"struct.args::EitherFlag"], align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %class.Builder, align 8
  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %84 unwind label %134

84:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %85 unwind label %136

85:                                               ; preds = %84
  invoke void @_ZN4args14ArgumentParserC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(400) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %86 unwind label %138

86:                                               ; preds = %85
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %87 unwind label %142

87:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %88 unwind label %144

88:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %14) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 noundef signext 104)
  %89 = getelementptr inbounds i8, ptr %14, i64 40
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %89, ptr noundef nonnull @.str.2)
          to label %90 unwind label %.loopexit162.loopexit164

90:                                               ; preds = %88
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %13, ptr nonnull %14, i64 2)
          to label %91 unwind label %147

91:                                               ; preds = %90
  invoke void @_ZN4args8HelpFlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherE(ptr noundef nonnull align 8 dereferenceable(200) %8, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(112) %13)
          to label %92 unwind label %149

92:                                               ; preds = %91
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %13) #9
  %93 = getelementptr inbounds i8, ptr %14, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %93) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %94 unwind label %154

94:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %95 unwind label %156

95:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %21, i8 noundef signext 79)
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %20, ptr nonnull %21, i64 1)
          to label %96 unwind label %158

96:                                               ; preds = %95
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %15, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(112) %20, i1 noundef zeroext false)
          to label %97 unwind label %160

97:                                               ; preds = %96
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %98 unwind label %165

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %99 unwind label %167

99:                                               ; preds = %98
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %28) #9
  invoke void @_ZN4args10EitherFlagC2EPKc(ptr noundef nonnull align 8 dereferenceable(40) %28, ptr noundef nonnull @.str.8)
          to label %100 unwind label %169

100:                                              ; preds = %99
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %27, ptr nonnull %28, i64 1)
          to label %101 unwind label %171

101:                                              ; preds = %100
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %22, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(112) %27, i1 noundef zeroext false)
          to label %102 unwind label %173

102:                                              ; preds = %101
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %103 unwind label %177

103:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %104 unwind label %179

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %35) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %35, i8 noundef signext 116)
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %34, ptr nonnull %35, i64 1)
          to label %105 unwind label %181

105:                                              ; preds = %104
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %29, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(112) %34, i1 noundef zeroext false)
          to label %106 unwind label %183

106:                                              ; preds = %105
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %34) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %35) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %107 unwind label %188

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %108 unwind label %190

108:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %42) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %42, i8 noundef signext 84)
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %41, ptr nonnull %42, i64 1)
          to label %109 unwind label %192

109:                                              ; preds = %108
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %36, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(112) %41, i1 noundef zeroext false)
          to label %110 unwind label %194

110:                                              ; preds = %109
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %41) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %111 unwind label %199

111:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %112 unwind label %201

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %48) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %49) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %49, i8 noundef signext 99)
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %48, ptr nonnull %49, i64 1)
          to label %113 unwind label %203

113:                                              ; preds = %112
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %43, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(112) %48, i1 noundef zeroext false)
          to label %114 unwind label %205

114:                                              ; preds = %113
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %48) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %49) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %49) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %50) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %115 unwind label %210

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %116 unwind label %212

116:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %55) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %56) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %56, i8 noundef signext 115)
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %55, ptr nonnull %56, i64 1)
          to label %117 unwind label %214

117:                                              ; preds = %116
  invoke void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200) %50, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(112) %55, i1 noundef zeroext false)
          to label %118 unwind label %216

118:                                              ; preds = %117
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %55) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %56) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %55) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %57) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %119 unwind label %221

119:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #9
  call void @_ZNSt8functionIFbRKN4args5GroupEEEC2IRS4_vEEOT_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @_ZN4args5Group10Validators10AtLeastOneERKS0_) #9
  invoke void @_ZN4args5GroupC2ERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFbRKS0_EE(ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %120 unwind label %223

120:                                              ; preds = %119
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %61) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %121 unwind label %226

121:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %122 unwind label %228

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  invoke void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_SD_(ptr noundef nonnull align 8 dereferenceable(121) %61, ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %123 unwind label %230

123:                                              ; preds = %122
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %67) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %69) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %124 unwind label %234

124:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %125 unwind label %236

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %72) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %73) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %73, i8 noundef signext 111)
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %72, ptr nonnull %73, i64 1)
          to label %126 unwind label %238

126:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  invoke void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_ONS_7MatcherESD_b(ptr noundef nonnull align 8 dereferenceable(233) %67, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(112) %72, ptr noundef nonnull align 8 dereferenceable(32) %74, i1 noundef zeroext false)
          to label %127 unwind label %240

127:                                              ; preds = %126
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %72) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %73) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %75) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %77) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %128 unwind label %245

128:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %79) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %129 unwind label %247

129:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %80) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %81) #9
  call void @_ZN4args10EitherFlagC2Ec(ptr noundef nonnull align 8 dereferenceable(40) %81, i8 noundef signext 102)
  invoke void @_ZN4args7MatcherC2ESt16initializer_listINS_10EitherFlagEE(ptr noundef nonnull align 8 dereferenceable(112) %80, ptr nonnull %81, i64 1)
          to label %130 unwind label %249

130:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  invoke void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_ONS_7MatcherESD_b(ptr noundef nonnull align 8 dereferenceable(233) %75, ptr noundef nonnull align 8 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(112) %80, ptr noundef nonnull align 8 dereferenceable(32) %82, i1 noundef zeroext false)
          to label %131 unwind label %251

131:                                              ; preds = %130
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %80) #9
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %81) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %80) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  %132 = getelementptr inbounds i8, ptr %3, i64 396
  store i8 0, ptr %132, align 4, !tbaa !5
  %133 = invoke noundef zeroext i1 @_ZN4args14ArgumentParser8ParseCLIEiPKPKc(ptr noundef nonnull align 8 dereferenceable(400) %3, i32 noundef %0, ptr noundef %1)
          to label %314 unwind label %256

134:                                              ; preds = %2
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %141

136:                                              ; preds = %84
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %140

138:                                              ; preds = %85
  %139 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  br label %140

140:                                              ; preds = %138, %136
  %.pn = phi { ptr, i32 } [ %139, %138 ], [ %137, %136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  br label %141

141:                                              ; preds = %140, %134
  %.pn.pn = phi { ptr, i32 } [ %.pn, %140 ], [ %135, %134 ]
  %.135 = extractvalue { ptr, i32 } %.pn.pn, 0
  %.137 = extractvalue { ptr, i32 } %.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %408

142:                                              ; preds = %86
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %153

144:                                              ; preds = %87
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %152

.loopexit162.loopexit164:                         ; preds = %88
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit162

147:                                              ; preds = %90
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit162.loopexit

149:                                              ; preds = %91
  %150 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %13) #9
  br label %.loopexit162.loopexit

.loopexit162.loopexit:                            ; preds = %149, %147
  %.pn107 = phi { ptr, i32 } [ %150, %149 ], [ %148, %147 ]
  %151 = getelementptr inbounds i8, ptr %14, i64 40
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %151) #9
  br label %.loopexit162

.loopexit162:                                     ; preds = %.loopexit162.loopexit164, %.loopexit162.loopexit
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %.loopexit162.loopexit ], [ %146, %.loopexit162.loopexit164 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %13) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %152

152:                                              ; preds = %.loopexit162, %144
  %.pn107.pn.pn = phi { ptr, i32 } [ %.pn107.pn, %.loopexit162 ], [ %145, %144 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  br label %153

153:                                              ; preds = %152, %142
  %.pn107.pn.pn.pn = phi { ptr, i32 } [ %.pn107.pn.pn, %152 ], [ %143, %142 ]
  %.5 = extractvalue { ptr, i32 } %.pn107.pn.pn.pn, 0
  %.541 = extractvalue { ptr, i32 } %.pn107.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  br label %407

154:                                              ; preds = %92
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %164

156:                                              ; preds = %94
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %163

158:                                              ; preds = %95
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %162

160:                                              ; preds = %96
  %161 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #9
  br label %162

162:                                              ; preds = %160, %158
  %.pn112 = phi { ptr, i32 } [ %161, %160 ], [ %159, %158 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %163

163:                                              ; preds = %162, %156
  %.pn112.pn = phi { ptr, i32 } [ %.pn112, %162 ], [ %157, %156 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %164

164:                                              ; preds = %163, %154
  %.pn112.pn.pn = phi { ptr, i32 } [ %.pn112.pn, %163 ], [ %155, %154 ]
  %.8 = extractvalue { ptr, i32 } %.pn112.pn.pn, 0
  %.844 = extractvalue { ptr, i32 } %.pn112.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  br label %406

165:                                              ; preds = %97
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %176

167:                                              ; preds = %98
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %175

169:                                              ; preds = %99
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

171:                                              ; preds = %100
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

173:                                              ; preds = %101
  %174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #9
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %173, %171
  %.pn116 = phi { ptr, i32 } [ %174, %173 ], [ %172, %171 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #9
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %169
  %.pn116.pn = phi { ptr, i32 } [ %170, %169 ], [ %.pn116, %.loopexit.loopexit ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %175

175:                                              ; preds = %.loopexit, %167
  %.pn116.pn.pn = phi { ptr, i32 } [ %.pn116.pn, %.loopexit ], [ %168, %167 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %176

176:                                              ; preds = %175, %165
  %.pn116.pn.pn.pn = phi { ptr, i32 } [ %.pn116.pn.pn, %175 ], [ %166, %165 ]
  %.12 = extractvalue { ptr, i32 } %.pn116.pn.pn.pn, 0
  %.1248 = extractvalue { ptr, i32 } %.pn116.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  br label %405

177:                                              ; preds = %102
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %187

179:                                              ; preds = %103
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %186

181:                                              ; preds = %104
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %185

183:                                              ; preds = %105
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %34) #9
  br label %185

185:                                              ; preds = %183, %181
  %.pn121 = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %35) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %186

186:                                              ; preds = %185, %179
  %.pn121.pn = phi { ptr, i32 } [ %.pn121, %185 ], [ %180, %179 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %187

187:                                              ; preds = %186, %177
  %.pn121.pn.pn = phi { ptr, i32 } [ %.pn121.pn, %186 ], [ %178, %177 ]
  %.15 = extractvalue { ptr, i32 } %.pn121.pn.pn, 0
  %.1551 = extractvalue { ptr, i32 } %.pn121.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  br label %404

188:                                              ; preds = %106
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %198

190:                                              ; preds = %107
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %197

192:                                              ; preds = %108
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %196

194:                                              ; preds = %109
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %41) #9
  br label %196

196:                                              ; preds = %194, %192
  %.pn125 = phi { ptr, i32 } [ %195, %194 ], [ %193, %192 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %197

197:                                              ; preds = %196, %190
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %196 ], [ %191, %190 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %198

198:                                              ; preds = %197, %188
  %.pn125.pn.pn = phi { ptr, i32 } [ %.pn125.pn, %197 ], [ %189, %188 ]
  %.18 = extractvalue { ptr, i32 } %.pn125.pn.pn, 0
  %.1854 = extractvalue { ptr, i32 } %.pn125.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  br label %403

199:                                              ; preds = %110
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %209

201:                                              ; preds = %111
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %208

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

205:                                              ; preds = %113
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %48) #9
  br label %207

207:                                              ; preds = %205, %203
  %.pn129 = phi { ptr, i32 } [ %206, %205 ], [ %204, %203 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %49) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %49) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  br label %208

208:                                              ; preds = %207, %201
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %207 ], [ %202, %201 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %209

209:                                              ; preds = %208, %199
  %.pn129.pn.pn = phi { ptr, i32 } [ %.pn129.pn, %208 ], [ %200, %199 ]
  %.21 = extractvalue { ptr, i32 } %.pn129.pn.pn, 0
  %.2157 = extractvalue { ptr, i32 } %.pn129.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  br label %402

210:                                              ; preds = %114
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %220

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

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

216:                                              ; preds = %117
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %55) #9
  br label %218

218:                                              ; preds = %216, %214
  %.pn133 = phi { ptr, i32 } [ %217, %216 ], [ %215, %214 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %56) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %55) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %219

219:                                              ; preds = %218, %212
  %.pn133.pn = phi { ptr, i32 } [ %.pn133, %218 ], [ %213, %212 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %220

220:                                              ; preds = %219, %210
  %.pn133.pn.pn = phi { ptr, i32 } [ %.pn133.pn, %219 ], [ %211, %210 ]
  %.24 = extractvalue { ptr, i32 } %.pn133.pn.pn, 0
  %.2460 = extractvalue { ptr, i32 } %.pn133.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  br label %401

221:                                              ; preds = %118
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %225

223:                                              ; preds = %119
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %225

225:                                              ; preds = %223, %221
  %.pn137 = phi { ptr, i32 } [ %224, %223 ], [ %222, %221 ]
  %.25 = extractvalue { ptr, i32 } %.pn137, 0
  %.2561 = extractvalue { ptr, i32 } %.pn137, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  br label %400

226:                                              ; preds = %120
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %233

228:                                              ; preds = %121
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %232

230:                                              ; preds = %122
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  br label %232

232:                                              ; preds = %230, %228
  %.pn139 = phi { ptr, i32 } [ %231, %230 ], [ %229, %228 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %233

233:                                              ; preds = %232, %226
  %.pn139.pn = phi { ptr, i32 } [ %.pn139, %232 ], [ %227, %226 ]
  %.27 = extractvalue { ptr, i32 } %.pn139.pn, 0
  %.2763 = extractvalue { ptr, i32 } %.pn139.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  br label %399

234:                                              ; preds = %123
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %244

236:                                              ; preds = %124
  %237 = landingpad { ptr, i32 }
          cleanup
  br label %243

238:                                              ; preds = %125
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %242

240:                                              ; preds = %126
  %241 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %72) #9
  br label %242

242:                                              ; preds = %240, %238
  %.pn142 = phi { ptr, i32 } [ %241, %240 ], [ %239, %238 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %73) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %243

243:                                              ; preds = %242, %236
  %.pn142.pn = phi { ptr, i32 } [ %.pn142, %242 ], [ %237, %236 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %244

244:                                              ; preds = %243, %234
  %.pn142.pn.pn = phi { ptr, i32 } [ %.pn142.pn, %243 ], [ %235, %234 ]
  %.30 = extractvalue { ptr, i32 } %.pn142.pn.pn, 0
  %.3066 = extractvalue { ptr, i32 } %.pn142.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  br label %398

245:                                              ; preds = %127
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %255

247:                                              ; preds = %128
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %254

249:                                              ; preds = %129
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %253

251:                                              ; preds = %130
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #9
  call void @_ZN4args7MatcherD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %80) #9
  br label %253

253:                                              ; preds = %251, %249
  %.pn146 = phi { ptr, i32 } [ %252, %251 ], [ %250, %249 ]
  call void @_ZN4args10EitherFlagD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %81) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %80) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %254

254:                                              ; preds = %253, %247
  %.pn146.pn = phi { ptr, i32 } [ %.pn146, %253 ], [ %248, %247 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %255

255:                                              ; preds = %254, %245
  %.pn146.pn.pn = phi { ptr, i32 } [ %.pn146.pn, %254 ], [ %246, %245 ]
  %.33 = extractvalue { ptr, i32 } %.pn146.pn.pn, 0
  %.3369 = extractvalue { ptr, i32 } %.pn146.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  br label %397

256:                                              ; preds = %131
  %257 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4args4HelpE
          catch ptr @_ZTIN4args10ParseErrorE
          catch ptr @_ZTIN4args15ValidationErrorE
  %258 = extractvalue { ptr, i32 } %257, 0
  %259 = extractvalue { ptr, i32 } %257, 1
  %260 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4args4HelpE) #9
  %261 = icmp eq i32 %259, %260
  br i1 %261, label %262, label %266

262:                                              ; preds = %256
  %263 = call ptr @__cxa_begin_catch(ptr %258) #9
  %264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(400) %3)
          to label %265 unwind label %309

265:                                              ; preds = %262
  invoke void @__cxa_end_catch()
          to label %395 unwind label %311

266:                                              ; preds = %256
  %267 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4args10ParseErrorE) #9
  %268 = icmp eq i32 %259, %267
  br i1 %268, label %269, label %281

269:                                              ; preds = %266
  %270 = call ptr @__cxa_begin_catch(ptr %258) #9
  %271 = load ptr, ptr %270, align 8, !tbaa !24
  %272 = getelementptr inbounds i8, ptr %271, i64 16
  %273 = load ptr, ptr %272, align 8
  %274 = call noundef ptr %273(ptr noundef nonnull align 8 dereferenceable(16) %270) #9
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %274)
          to label %276 unwind label %304

276:                                              ; preds = %269
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %275, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %278 unwind label %304

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(400) %3)
          to label %280 unwind label %304

280:                                              ; preds = %278
  invoke void @__cxa_end_catch()
          to label %395 unwind label %306

281:                                              ; preds = %266
  %282 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4args15ValidationErrorE) #9
  %283 = icmp eq i32 %259, %282
  br i1 %283, label %284, label %396

284:                                              ; preds = %281
  %285 = call ptr @__cxa_begin_catch(ptr %258) #9
  %286 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %61) #9
  br i1 %286, label %291, label %287

287:                                              ; preds = %284
  %288 = 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.23)
          to label %.invoke165 unwind label %289

289:                                              ; preds = %.invoke165, %.invoke, %291, %287
  %290 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %303 unwind label %411

291:                                              ; preds = %284
  %292 = load ptr, ptr %285, align 8, !tbaa !24
  %293 = getelementptr inbounds i8, ptr %292, i64 16
  %294 = load ptr, ptr %293, align 8
  %295 = call noundef ptr %294(ptr noundef nonnull align 8 dereferenceable(16) %285) #9
  %296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef %295)
          to label %.invoke165 unwind label %289

.invoke165:                                       ; preds = %287, %291
  %297 = phi ptr [ %296, %291 ], [ %288, %287 ]
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.invoke unwind label %289

.invoke:                                          ; preds = %.invoke165
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull align 8 dereferenceable(400) %3)
          to label %300 unwind label %289

300:                                              ; preds = %.invoke
  invoke void @__cxa_end_catch()
          to label %395 unwind label %301

301:                                              ; preds = %300
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %303

303:                                              ; preds = %289, %301
  %.pn150 = phi { ptr, i32 } [ %302, %301 ], [ %290, %289 ]
  %.34 = extractvalue { ptr, i32 } %.pn150, 0
  %.3470 = extractvalue { ptr, i32 } %.pn150, 1
  br label %396

304:                                              ; preds = %278, %276, %269
  %305 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %308 unwind label %411

306:                                              ; preds = %280
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %308

308:                                              ; preds = %304, %306
  %.pn152 = phi { ptr, i32 } [ %307, %306 ], [ %305, %304 ]
  %.35 = extractvalue { ptr, i32 } %.pn152, 0
  %.3571 = extractvalue { ptr, i32 } %.pn152, 1
  br label %396

309:                                              ; preds = %262
  %310 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %313 unwind label %411

311:                                              ; preds = %265
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %313

313:                                              ; preds = %309, %311
  %.pn154 = phi { ptr, i32 } [ %312, %311 ], [ %310, %309 ]
  %.36 = extractvalue { ptr, i32 } %.pn154, 0
  %.3672 = extractvalue { ptr, i32 } %.pn154, 1
  br label %396

314:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %83) #9
  invoke void @_ZN7BuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(104) %83)
          to label %315 unwind label %320

315:                                              ; preds = %314
  %316 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %75) #9
  br i1 %316, label %317, label %324

317:                                              ; preds = %315
  %318 = load ptr, ptr @manager, align 8, !tbaa !26
  %319 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN4args3getINS_9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS7_EEEEEEDTcldtfp_3GetEERT_(ptr noundef nonnull align 8 dereferenceable(233) %75)
  invoke void @_ZN14FetlangManager18addFetishDirectoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(380) %318, ptr noundef nonnull align 8 dereferenceable(32) %319)
          to label %324 unwind label %322

320:                                              ; preds = %314
  %321 = landingpad { ptr, i32 }
          catch ptr @_ZTI16FetlangException
          catch ptr @_ZTISt9exception
          catch ptr null
  br label %350

322:                                              ; preds = %348, %346, %345, %341, %317
  %323 = landingpad { ptr, i32 }
          catch ptr @_ZTI16FetlangException
          catch ptr @_ZTISt9exception
          catch ptr null
  call void @_ZN7BuilderD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %83) #9
  br label %350

324:                                              ; preds = %317, %315
  %325 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %43) #9
  br i1 %325, label %326, label %327

326:                                              ; preds = %324
  call void @_ZN7Builder14setCompilationEb(ptr noundef nonnull align 8 dereferenceable(104) %83, i1 noundef zeroext false)
  br label %327

327:                                              ; preds = %326, %324
  %328 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %29) #9
  br i1 %328, label %329, label %330

329:                                              ; preds = %327
  call void @_ZN7Builder10showTokensEb(ptr noundef nonnull align 8 dereferenceable(104) %83, i1 noundef zeroext true)
  br label %330

330:                                              ; preds = %329, %327
  %331 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %36) #9
  br i1 %331, label %332, label %333

332:                                              ; preds = %330
  call void @_ZN7Builder8showTreeEb(ptr noundef nonnull align 8 dereferenceable(104) %83, i1 noundef zeroext true)
  br label %333

333:                                              ; preds = %332, %330
  %334 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %15) #9
  br i1 %334, label %335, label %336

335:                                              ; preds = %333
  call void @_ZN7Builder15setOptimizationEb(ptr noundef nonnull align 8 dereferenceable(104) %83, i1 noundef zeroext true)
  br label %336

336:                                              ; preds = %335, %333
  %337 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %22) #9
  br i1 %337, label %338, label %339

338:                                              ; preds = %336
  call void @_ZN7Builder23setLinkTimeOptimizationEb(ptr noundef nonnull align 8 dereferenceable(104) %83, i1 noundef zeroext true)
  br label %339

339:                                              ; preds = %338, %336
  %340 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %67) #9
  br i1 %340, label %341, label %343

341:                                              ; preds = %339
  %342 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN4args3getINS_9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS7_EEEEEEDTcldtfp_3GetEERT_(ptr noundef nonnull align 8 dereferenceable(233) %67)
  invoke void @_ZN7Builder14setDestinationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %83, ptr noundef nonnull align 8 dereferenceable(32) %342)
          to label %343 unwind label %322

343:                                              ; preds = %341, %339
  %344 = call noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48) %50) #9
  br i1 %344, label %345, label %346

345:                                              ; preds = %343
  invoke void @_ZNK7Builder5cleanEv(ptr noundef nonnull align 8 dereferenceable(104) %83)
          to label %346 unwind label %322

346:                                              ; preds = %345, %343
  %347 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN4args3getINS_10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS7_EEEEEEDTcldtfp_3GetEERT_(ptr noundef nonnull align 8 dereferenceable(121) %61)
  invoke void @_ZN7Builder9setSourceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %83, ptr noundef nonnull align 8 dereferenceable(32) %347)
          to label %348 unwind label %322

348:                                              ; preds = %346
  invoke void @_ZN7Builder5buildEv(ptr noundef nonnull align 8 dereferenceable(104) %83)
          to label %349 unwind label %322

349:                                              ; preds = %348
  call void @_ZN7BuilderD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %83) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %83) #9
  br label %395

350:                                              ; preds = %322, %320
  %.pn156 = phi { ptr, i32 } [ %323, %322 ], [ %321, %320 ]
  %.37 = extractvalue { ptr, i32 } %.pn156, 0
  %.3773 = extractvalue { ptr, i32 } %.pn156, 1
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %83) #9
  %351 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTI16FetlangException) #9
  %352 = icmp eq i32 %.3773, %351
  br i1 %352, label %353, label %359

353:                                              ; preds = %350
  %354 = call ptr @__cxa_begin_catch(ptr %.37) #9
  %355 = load ptr, ptr %354, align 8, !tbaa !24
  %356 = getelementptr inbounds i8, ptr %355, i64 24
  %357 = load ptr, ptr %356, align 8
  invoke void %357(ptr noundef nonnull align 8 dereferenceable(20) %354)
          to label %358 unwind label %390

358:                                              ; preds = %353
  invoke void @__cxa_end_catch()
          to label %395 unwind label %392

359:                                              ; preds = %350
  %360 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #9
  %361 = icmp eq i32 %.3773, %360
  %362 = call ptr @__cxa_begin_catch(ptr %.37) #9
  br i1 %361, label %363, label %374

363:                                              ; preds = %359
  %364 = 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.25)
          to label %365 unwind label %385

365:                                              ; preds = %363
  %366 = load ptr, ptr %362, align 8, !tbaa !24
  %367 = getelementptr inbounds i8, ptr %366, i64 16
  %368 = load ptr, ptr %367, align 8
  %369 = call noundef ptr %368(ptr noundef nonnull align 8 dereferenceable(8) %362) #9
  %370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef %369)
          to label %371 unwind label %385

371:                                              ; preds = %365
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef nonnull @.str.26)
          to label %373 unwind label %385

373:                                              ; preds = %371
  invoke void @__cxa_end_catch()
          to label %395 unwind label %387

374:                                              ; preds = %359
  %375 = 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.24)
          to label %376 unwind label %377

376:                                              ; preds = %374
  invoke void @__cxa_end_catch()
          to label %395 unwind label %381

377:                                              ; preds = %374
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  %380 = extractvalue { ptr, i32 } %378, 1
  invoke void @__cxa_end_catch()
          to label %396 unwind label %411

381:                                              ; preds = %376
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  %384 = extractvalue { ptr, i32 } %382, 1
  br label %396

385:                                              ; preds = %371, %365, %363
  %386 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %389 unwind label %411

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

389:                                              ; preds = %385, %387
  %.pn158 = phi { ptr, i32 } [ %388, %387 ], [ %386, %385 ]
  %.38 = extractvalue { ptr, i32 } %.pn158, 0
  %.3874 = extractvalue { ptr, i32 } %.pn158, 1
  br label %396

390:                                              ; preds = %353
  %391 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %394 unwind label %411

392:                                              ; preds = %358
  %393 = landingpad { ptr, i32 }
          cleanup
  br label %394

394:                                              ; preds = %390, %392
  %.pn160 = phi { ptr, i32 } [ %393, %392 ], [ %391, %390 ]
  %.39 = extractvalue { ptr, i32 } %.pn160, 0
  %.3975 = extractvalue { ptr, i32 } %.pn160, 1
  br label %396

395:                                              ; preds = %358, %373, %265, %280, %300, %376, %349
  %.1 = phi i32 [ 0, %349 ], [ 1, %376 ], [ 1, %300 ], [ 1, %280 ], [ 0, %265 ], [ 1, %373 ], [ 1, %358 ]
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %75) #9
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %75) #9
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %67) #9
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %67) #9
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(121) %61) #9
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %61) #9
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %57) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %57) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %50) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %50) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %43) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %43) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %36) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %36) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %29) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %29) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %22) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %22) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %15) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %15) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %8) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %8) #9
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(400) %3) #9
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %3) #9
  ret i32 %.1

396:                                              ; preds = %377, %394, %389, %381, %313, %308, %303, %281
  %.4076 = phi i32 [ %.3975, %394 ], [ %.3874, %389 ], [ %384, %381 ], [ %380, %377 ], [ %.3672, %313 ], [ %.3571, %308 ], [ %.3470, %303 ], [ %259, %281 ]
  %.40 = phi ptr [ %.39, %394 ], [ %.38, %389 ], [ %383, %381 ], [ %379, %377 ], [ %.36, %313 ], [ %.35, %308 ], [ %.34, %303 ], [ %258, %281 ]
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %75) #9
  br label %397

397:                                              ; preds = %396, %255
  %.4177 = phi i32 [ %.4076, %396 ], [ %.3369, %255 ]
  %.41 = phi ptr [ %.40, %396 ], [ %.33, %255 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %75) #9
  call void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(233) %67) #9
  br label %398

398:                                              ; preds = %397, %244
  %.4278 = phi i32 [ %.4177, %397 ], [ %.3066, %244 ]
  %.42 = phi ptr [ %.41, %397 ], [ %.30, %244 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %67) #9
  call void @_ZN4args10PositionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(121) %61) #9
  br label %399

399:                                              ; preds = %398, %233
  %.4379 = phi i32 [ %.4278, %398 ], [ %.2763, %233 ]
  %.43 = phi ptr [ %.42, %398 ], [ %.27, %233 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %61) #9
  call void @_ZN4args5GroupD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %57) #9
  br label %400

400:                                              ; preds = %399, %225
  %.4480 = phi i32 [ %.4379, %399 ], [ %.2561, %225 ]
  %.44 = phi ptr [ %.43, %399 ], [ %.25, %225 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %57) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %50) #9
  br label %401

401:                                              ; preds = %400, %220
  %.4581 = phi i32 [ %.4480, %400 ], [ %.2460, %220 ]
  %.45 = phi ptr [ %.44, %400 ], [ %.24, %220 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %50) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %43) #9
  br label %402

402:                                              ; preds = %401, %209
  %.4682 = phi i32 [ %.4581, %401 ], [ %.2157, %209 ]
  %.46 = phi ptr [ %.45, %401 ], [ %.21, %209 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %43) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %36) #9
  br label %403

403:                                              ; preds = %402, %198
  %.4783 = phi i32 [ %.4682, %402 ], [ %.1854, %198 ]
  %.47 = phi ptr [ %.46, %402 ], [ %.18, %198 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %36) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %29) #9
  br label %404

404:                                              ; preds = %403, %187
  %.4884 = phi i32 [ %.4783, %403 ], [ %.1551, %187 ]
  %.48 = phi ptr [ %.47, %403 ], [ %.15, %187 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %29) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %22) #9
  br label %405

405:                                              ; preds = %404, %176
  %.4985 = phi i32 [ %.4884, %404 ], [ %.1248, %176 ]
  %.49 = phi ptr [ %.48, %404 ], [ %.12, %176 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %22) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %15) #9
  br label %406

406:                                              ; preds = %405, %164
  %.5086 = phi i32 [ %.4985, %405 ], [ %.844, %164 ]
  %.50 = phi ptr [ %.49, %405 ], [ %.8, %164 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %15) #9
  call void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %8) #9
  br label %407

407:                                              ; preds = %406, %153
  %.5187 = phi i32 [ %.5086, %406 ], [ %.541, %153 ]
  %.51 = phi ptr [ %.50, %406 ], [ %.5, %153 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %8) #9
  call void @_ZN4args14ArgumentParserD2Ev(ptr noundef nonnull align 8 dereferenceable(400) %3) #9
  br label %408

408:                                              ; preds = %407, %141
  %.5288 = phi i32 [ %.5187, %407 ], [ %.137, %141 ]
  %.52 = phi ptr [ %.51, %407 ], [ %.135, %141 ]
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %3) #9
  %409 = insertvalue { ptr, i32 } poison, ptr %.52, 0
  %410 = insertvalue { ptr, i32 } %409, i32 %.5288, 1
  resume { ptr, i32 } %410

411:                                              ; preds = %390, %385, %377, %309, %304, %289
  %412 = landingpad { ptr, i32 }
          catch ptr null
  %413 = extractvalue { ptr, i32 } %412, 0
  call void @__clang_call_terminate(ptr %413) #10
  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: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args4FlagC2ERNS_5GroupERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_ONS_7MatcherEb(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), i1 noundef zeroext) unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4args9ValueFlagINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11ValueReaderIS6_EEEC2ERNS_5GroupERKS6_SD_ONS_7MatcherESD_b(ptr noundef nonnull align 8 dereferenceable(233), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) unnamed_addr #3 align 2

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

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

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4args4BasecvbEv(ptr noundef nonnull align 8 dereferenceable(48)) local_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 #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN4argslsERSoRKNS_14ArgumentParserE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(400)) local_unnamed_addr #6

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

declare void @_ZN7BuilderC1Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #8

declare void @_ZN14FetlangManager18addFetishDirectoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(380), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #8

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

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

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

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

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

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

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

declare void @_ZNK7Builder5cleanEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #8

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

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

declare void @_ZN7Builder5buildEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #8

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4args8FlagBaseD2Ev(ptr noundef nonnull align 8 dereferenceable(200)) 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 = { 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 = { 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 #5 = { nofree nosync nounwind memory(none) }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { 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, !9, i64 396}
!6 = !{!"_ZTSN4args14ArgumentParserE", !7, i64 0, !12, i64 104, !12, i64 136, !12, i64 168, !12, i64 200, !12, i64 232, !12, i64 264, !12, i64 296, !12, i64 328, !9, i64 360, !9, i64 361, !9, i64 362, !9, i64 363, !22, i64 364}
!7 = !{!"_ZTSN4args5GroupE", !8, i64 0, !16, i64 48, !20, i64 72}
!8 = !{!"_ZTSN4args4BaseE", !9, i64 8, !12, i64 16}
!9 = !{!"bool", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !15, i64 8, !10, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !14, i64 0}
!14 = !{!"any pointer", !10, i64 0}
!15 = !{!"long", !10, i64 0}
!16 = !{!"_ZTSSt6vectorIPN4args4BaseESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIPN4args4BaseESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN4args4BaseESaIS2_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!20 = !{!"_ZTSSt8functionIFbRKN4args5GroupEEE", !21, i64 0, !14, i64 24}
!21 = !{!"_ZTSSt14_Function_base", !10, i64 0, !14, i64 16}
!22 = !{!"_ZTSN4args14ArgumentParser10HelpParamsE", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12, !23, i64 16, !23, i64 20, !23, i64 24, !23, i64 28, !9, i64 32, !9, i64 33, !9, i64 34}
!23 = !{!"int", !10, i64 0}
!24 = !{!25, !25, i64 0}
!25 = !{!"vtable pointer", !11, i64 0}
!26 = !{!14, !14, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopSimplifyPass,SROAPass,SimplifyCFGPass