; LLVM IR from kimwalisch/primesieve :: src/app/CmdOptions.ll (Z12parseOptionsiPPc)

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

%struct.CmdOptions = type <{ %"class.primesieve::Vector", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i32, i32, i64, i8, i8, i8, [5 x i8] }>
%"class.primesieve::Vector" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", %"struct.std::pair.6" }
%"struct.std::pair.6" = type { i32, i32 }
%"struct.std::less" = type { i8 }
%"class.std::allocator.8" = type { i8 }
%struct.Option = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }

@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [10 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions11optionPrintER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions11optionCountER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions14optionDistanceER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions16optionStressTestER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions13optionTimeoutER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z12parseOptionsiPPc(ptr dead_on_unwind noalias writable sret(%struct.CmdOptions) align 8 %0, i32 noundef %1, ptr noundef %2) #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca %"class.std::map", align 8
  %8 = alloca %"class.std::initializer_list", align 8
  %9 = alloca [30 x %"struct.std::pair"], align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"struct.std::pair.6", align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %"struct.std::pair.6", align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %"struct.std::pair.6", align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %"struct.std::pair.6", align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %"struct.std::pair.6", align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %"struct.std::pair.6", align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %"struct.std::pair.6", align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %"struct.std::pair.6", align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %"struct.std::pair.6", align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %"struct.std::pair.6", align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %"struct.std::pair.6", align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %"struct.std::pair.6", align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %"struct.std::pair.6", align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca %"struct.std::pair.6", align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %"struct.std::pair.6", align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %"struct.std::pair.6", align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca %"struct.std::pair.6", align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca %"struct.std::pair.6", align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca %"struct.std::pair.6", align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %"struct.std::pair.6", align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %"struct.std::pair.6", align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca %"struct.std::pair.6", align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca %"struct.std::pair.6", align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca %"struct.std::pair.6", align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %"struct.std::pair.6", align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %"struct.std::pair.6", align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca %"struct.std::pair.6", align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca %"struct.std::pair.6", align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca %"struct.std::pair.6", align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca %"struct.std::pair.6", align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i1, align 1
  %104 = alloca %"struct.std::less", align 1
  %105 = alloca %"class.std::allocator.8", align 1
  %106 = alloca i1, align 1
  %107 = alloca i32, align 4
  %108 = alloca %struct.Option, align 8
  %109 = alloca i32, align 4
  %110 = alloca i64, align 8
  store ptr %0, ptr %4, align 8
  store i32 %1, ptr %5, align 4, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !9
  %111 = load i32, ptr %5, align 4, !tbaa !5
  %112 = icmp sle i32 %111, 1
  br i1 %112, label %113, label %114

113:                                              ; preds = %3
  call void @_Z4helpi(i32 noundef 1)
  br label %114

114:                                              ; preds = %113, %3
  call void @llvm.lifetime.start.p0(i64 48, ptr %7) #6
  call void @llvm.lifetime.start.p0(i64 1200, ptr %9) #6
  store i1 true, ptr %103, align 1
  store ptr %9, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  store i32 0, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 2, ptr %13, align 4, !tbaa !13
  %115 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %116 unwind label %253

116:                                              ; preds = %114
  store i64 %115, ptr %11, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull align 1 dereferenceable(3) @.str.8, ptr noundef nonnull align 4 dereferenceable(8) %11)
          to label %117 unwind label %253

117:                                              ; preds = %116
  %118 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 1
  store ptr %118, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  store i32 0, ptr %17, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  store i32 2, ptr %18, align 4, !tbaa !13
  %119 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %120 unwind label %257

120:                                              ; preds = %117
  store i64 %119, ptr %16, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %118, ptr noundef nonnull align 1 dereferenceable(8) @.str.9, ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %121 unwind label %257

121:                                              ; preds = %120
  %122 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 2
  store ptr %122, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  store i32 1, ptr %20, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  store i32 0, ptr %21, align 4, !tbaa !13
  %123 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %124 unwind label %261

124:                                              ; preds = %121
  store i64 %123, ptr %19, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %122, ptr noundef nonnull align 1 dereferenceable(11) @.str.10, ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %125 unwind label %261

125:                                              ; preds = %124
  %126 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 3
  store ptr %126, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 2, ptr %23, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 0, ptr %24, align 4, !tbaa !13
  %127 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %128 unwind label %265

128:                                              ; preds = %125
  store i64 %127, ptr %22, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %126, ptr noundef nonnull align 1 dereferenceable(3) @.str.11, ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %129 unwind label %265

129:                                              ; preds = %128
  %130 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 4
  store ptr %130, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 2, ptr %26, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  store i32 0, ptr %27, align 4, !tbaa !13
  %131 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %132 unwind label %269

132:                                              ; preds = %129
  store i64 %131, ptr %25, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %130, ptr noundef nonnull align 1 dereferenceable(7) @.str.12, ptr noundef nonnull align 4 dereferenceable(8) %25)
          to label %133 unwind label %269

133:                                              ; preds = %132
  %134 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 5
  store ptr %134, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  store i32 3, ptr %29, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  store i32 0, ptr %30, align 4, !tbaa !13
  %135 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %136 unwind label %273

136:                                              ; preds = %133
  store i64 %135, ptr %28, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %134, ptr noundef nonnull align 1 dereferenceable(3) @.str.13, ptr noundef nonnull align 4 dereferenceable(8) %28)
          to label %137 unwind label %273

137:                                              ; preds = %136
  %138 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 6
  store ptr %138, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  store i32 3, ptr %32, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  store i32 0, ptr %33, align 4, !tbaa !13
  %139 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %140 unwind label %277

140:                                              ; preds = %137
  store i64 %139, ptr %31, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %138, ptr noundef nonnull align 1 dereferenceable(11) @.str.14, ptr noundef nonnull align 4 dereferenceable(8) %31)
          to label %141 unwind label %277

141:                                              ; preds = %140
  %142 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 7
  store ptr %142, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  store i32 3, ptr %35, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  store i32 0, ptr %36, align 4, !tbaa !13
  %143 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %144 unwind label %281

144:                                              ; preds = %141
  store i64 %143, ptr %34, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA12_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %142, ptr noundef nonnull align 1 dereferenceable(12) @.str.15, ptr noundef nonnull align 4 dereferenceable(8) %34)
          to label %145 unwind label %281

145:                                              ; preds = %144
  %146 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 8
  store ptr %146, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  store i32 4, ptr %38, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #6
  store i32 0, ptr %39, align 4, !tbaa !13
  %147 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %148 unwind label %285

148:                                              ; preds = %145
  store i64 %147, ptr %37, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA12_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %146, ptr noundef nonnull align 1 dereferenceable(12) @.str.16, ptr noundef nonnull align 4 dereferenceable(8) %37)
          to label %149 unwind label %285

149:                                              ; preds = %148
  %150 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 9
  store ptr %150, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  store i32 5, ptr %41, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  store i32 1, ptr %42, align 4, !tbaa !13
  %151 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %152 unwind label %289

152:                                              ; preds = %149
  store i64 %151, ptr %40, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA9_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %150, ptr noundef nonnull align 1 dereferenceable(9) @.str.17, ptr noundef nonnull align 4 dereferenceable(8) %40)
          to label %153 unwind label %289

153:                                              ; preds = %152
  %154 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 10
  store ptr %154, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  store i32 6, ptr %44, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #6
  store i32 1, ptr %45, align 4, !tbaa !13
  %155 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %156 unwind label %293

156:                                              ; preds = %153
  store i64 %155, ptr %43, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %154, ptr noundef nonnull align 1 dereferenceable(3) @.str.18, ptr noundef nonnull align 4 dereferenceable(8) %43)
          to label %157 unwind label %293

157:                                              ; preds = %156
  %158 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 11
  store ptr %158, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  store i32 6, ptr %47, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 1, ptr %48, align 4, !tbaa !13
  %159 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %160 unwind label %297

160:                                              ; preds = %157
  store i64 %159, ptr %46, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %158, ptr noundef nonnull align 1 dereferenceable(7) @.str.19, ptr noundef nonnull align 4 dereferenceable(8) %46)
          to label %161 unwind label %297

161:                                              ; preds = %160
  %162 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 12
  store ptr %162, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #6
  store i32 7, ptr %50, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  store i32 2, ptr %51, align 4, !tbaa !13
  %163 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %164 unwind label %301

164:                                              ; preds = %161
  store i64 %163, ptr %49, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %162, ptr noundef nonnull align 1 dereferenceable(3) @.str.20, ptr noundef nonnull align 4 dereferenceable(8) %49)
          to label %165 unwind label %301

165:                                              ; preds = %164
  %166 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 13
  store ptr %166, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  store i32 7, ptr %53, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  store i32 2, ptr %54, align 4, !tbaa !13
  %167 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %168 unwind label %305

168:                                              ; preds = %165
  store i64 %167, ptr %52, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %166, ptr noundef nonnull align 1 dereferenceable(8) @.str.21, ptr noundef nonnull align 4 dereferenceable(8) %52)
          to label %169 unwind label %305

169:                                              ; preds = %168
  %170 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 14
  store ptr %170, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  store i32 8, ptr %56, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  store i32 0, ptr %57, align 4, !tbaa !13
  %171 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef nonnull align 4 dereferenceable(4) %57)
          to label %172 unwind label %309

172:                                              ; preds = %169
  store i64 %171, ptr %55, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %170, ptr noundef nonnull align 1 dereferenceable(3) @.str.22, ptr noundef nonnull align 4 dereferenceable(8) %55)
          to label %173 unwind label %309

173:                                              ; preds = %172
  %174 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 15
  store ptr %174, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  store i32 8, ptr %59, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #6
  store i32 0, ptr %60, align 4, !tbaa !13
  %175 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %59, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %176 unwind label %313

176:                                              ; preds = %173
  store i64 %175, ptr %58, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %174, ptr noundef nonnull align 1 dereferenceable(8) @.str.23, ptr noundef nonnull align 4 dereferenceable(8) %58)
          to label %177 unwind label %313

177:                                              ; preds = %176
  %178 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 16
  store ptr %178, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  store i32 9, ptr %62, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #6
  store i32 0, ptr %63, align 4, !tbaa !13
  %179 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %62, ptr noundef nonnull align 4 dereferenceable(4) %63)
          to label %180 unwind label %317

180:                                              ; preds = %177
  store i64 %179, ptr %61, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %178, ptr noundef nonnull align 1 dereferenceable(3) @.str.24, ptr noundef nonnull align 4 dereferenceable(8) %61)
          to label %181 unwind label %317

181:                                              ; preds = %180
  %182 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 17
  store ptr %182, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  store i32 9, ptr %65, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #6
  store i32 0, ptr %66, align 4, !tbaa !13
  %183 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %65, ptr noundef nonnull align 4 dereferenceable(4) %66)
          to label %184 unwind label %321

184:                                              ; preds = %181
  store i64 %183, ptr %64, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %182, ptr noundef nonnull align 1 dereferenceable(11) @.str.25, ptr noundef nonnull align 4 dereferenceable(8) %64)
          to label %185 unwind label %321

185:                                              ; preds = %184
  %186 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 18
  store ptr %186, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #6
  store i32 10, ptr %68, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #6
  store i32 0, ptr %69, align 4, !tbaa !13
  %187 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %68, ptr noundef nonnull align 4 dereferenceable(4) %69)
          to label %188 unwind label %325

188:                                              ; preds = %185
  store i64 %187, ptr %67, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA19_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %186, ptr noundef nonnull align 1 dereferenceable(19) @.str.26, ptr noundef nonnull align 4 dereferenceable(8) %67)
          to label %189 unwind label %325

189:                                              ; preds = %188
  %190 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 19
  store ptr %190, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #6
  store i32 11, ptr %71, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #6
  store i32 1, ptr %72, align 4, !tbaa !13
  %191 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %71, ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %192 unwind label %329

192:                                              ; preds = %189
  store i64 %191, ptr %70, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %190, ptr noundef nonnull align 1 dereferenceable(3) @.str.27, ptr noundef nonnull align 4 dereferenceable(8) %70)
          to label %193 unwind label %329

193:                                              ; preds = %192
  %194 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 20
  store ptr %194, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #6
  store i32 11, ptr %74, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #6
  store i32 1, ptr %75, align 4, !tbaa !13
  %195 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %74, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %196 unwind label %333

196:                                              ; preds = %193
  store i64 %195, ptr %73, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %194, ptr noundef nonnull align 1 dereferenceable(7) @.str.28, ptr noundef nonnull align 4 dereferenceable(8) %73)
          to label %197 unwind label %333

197:                                              ; preds = %196
  %198 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 21
  store ptr %198, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #6
  store i32 12, ptr %77, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #6
  store i32 2, ptr %78, align 4, !tbaa !13
  %199 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %77, ptr noundef nonnull align 4 dereferenceable(4) %78)
          to label %200 unwind label %337

200:                                              ; preds = %197
  store i64 %199, ptr %76, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %198, ptr noundef nonnull align 1 dereferenceable(3) @.str.29, ptr noundef nonnull align 4 dereferenceable(8) %76)
          to label %201 unwind label %337

201:                                              ; preds = %200
  %202 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 22
  store ptr %202, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #6
  store i32 12, ptr %80, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #6
  store i32 2, ptr %81, align 4, !tbaa !13
  %203 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %80, ptr noundef nonnull align 4 dereferenceable(4) %81)
          to label %204 unwind label %341

204:                                              ; preds = %201
  store i64 %203, ptr %79, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA14_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %202, ptr noundef nonnull align 1 dereferenceable(14) @.str.30, ptr noundef nonnull align 4 dereferenceable(8) %79)
          to label %205 unwind label %341

205:                                              ; preds = %204
  %206 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 23
  store ptr %206, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #6
  store i32 13, ptr %83, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #6
  store i32 0, ptr %84, align 4, !tbaa !13
  %207 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %83, ptr noundef nonnull align 4 dereferenceable(4) %84)
          to label %208 unwind label %345

208:                                              ; preds = %205
  store i64 %207, ptr %82, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %206, ptr noundef nonnull align 1 dereferenceable(7) @.str.31, ptr noundef nonnull align 4 dereferenceable(8) %82)
          to label %209 unwind label %345

209:                                              ; preds = %208
  %210 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 24
  store ptr %210, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #6
  store i32 14, ptr %86, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #6
  store i32 1, ptr %87, align 4, !tbaa !13
  %211 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %86, ptr noundef nonnull align 4 dereferenceable(4) %87)
          to label %212 unwind label %349

212:                                              ; preds = %209
  store i64 %211, ptr %85, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %210, ptr noundef nonnull align 1 dereferenceable(3) @.str.32, ptr noundef nonnull align 4 dereferenceable(8) %85)
          to label %213 unwind label %349

213:                                              ; preds = %212
  %214 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 25
  store ptr %214, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #6
  store i32 14, ptr %89, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #6
  store i32 1, ptr %90, align 4, !tbaa !13
  %215 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %89, ptr noundef nonnull align 4 dereferenceable(4) %90)
          to label %216 unwind label %353

216:                                              ; preds = %213
  store i64 %215, ptr %88, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %214, ptr noundef nonnull align 1 dereferenceable(10) @.str.33, ptr noundef nonnull align 4 dereferenceable(8) %88)
          to label %217 unwind label %353

217:                                              ; preds = %216
  %218 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 26
  store ptr %218, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #6
  store i32 15, ptr %92, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #6
  store i32 0, ptr %93, align 4, !tbaa !13
  %219 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %92, ptr noundef nonnull align 4 dereferenceable(4) %93)
          to label %220 unwind label %357

220:                                              ; preds = %217
  store i64 %219, ptr %91, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %218, ptr noundef nonnull align 1 dereferenceable(7) @.str.34, ptr noundef nonnull align 4 dereferenceable(8) %91)
          to label %221 unwind label %357

221:                                              ; preds = %220
  %222 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 27
  store ptr %222, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #6
  store i32 16, ptr %95, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #6
  store i32 1, ptr %96, align 4, !tbaa !13
  %223 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %95, ptr noundef nonnull align 4 dereferenceable(4) %96)
          to label %224 unwind label %361

224:                                              ; preds = %221
  store i64 %223, ptr %94, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %222, ptr noundef nonnull align 1 dereferenceable(10) @.str.35, ptr noundef nonnull align 4 dereferenceable(8) %94)
          to label %225 unwind label %361

225:                                              ; preds = %224
  %226 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 28
  store ptr %226, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #6
  store i32 17, ptr %98, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #6
  store i32 0, ptr %99, align 4, !tbaa !13
  %227 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %98, ptr noundef nonnull align 4 dereferenceable(4) %99)
          to label %228 unwind label %365

228:                                              ; preds = %225
  store i64 %227, ptr %97, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %226, ptr noundef nonnull align 1 dereferenceable(3) @.str.36, ptr noundef nonnull align 4 dereferenceable(8) %97)
          to label %229 unwind label %365

229:                                              ; preds = %228
  %230 = getelementptr inbounds %"struct.std::pair", ptr %9, i64 29
  store ptr %230, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #6
  store i32 17, ptr %101, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #6
  store i32 0, ptr %102, align 4, !tbaa !13
  %231 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %101, ptr noundef nonnull align 4 dereferenceable(4) %102)
          to label %232 unwind label %369

232:                                              ; preds = %229
  store i64 %231, ptr %100, align 4
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %230, ptr noundef nonnull align 1 dereferenceable(10) @.str.37, ptr noundef nonnull align 4 dereferenceable(8) %100)
          to label %233 unwind label %369

233:                                              ; preds = %232
  store i1 false, ptr %103, align 1
  %234 = getelementptr inbounds %"class.std::initializer_list", ptr %8, i32 0, i32 0
  store ptr %9, ptr %234, align 8, !tbaa !14
  %235 = getelementptr inbounds %"class.std::initializer_list", ptr %8, i32 0, i32 1
  store i64 30, ptr %235, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %104) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #6
  call void @_ZNSaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  %236 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 0
  %237 = load ptr, ptr %236, align 8
  %238 = getelementptr inbounds { ptr, i64 }, ptr %8, i32 0, i32 1
  %239 = load i64, ptr %238, align 8
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEEC2ESt16initializer_listISE_ERKSC_RKSF_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr %237, i64 %239, ptr noundef nonnull align 1 dereferenceable(1) %104, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %240 unwind label %373

240:                                              ; preds = %233
  call void @_ZNSt15__new_allocatorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_I8OptionIDN12_GLOBAL__N_17IsParamEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #6
  %241 = getelementptr inbounds [30 x %"struct.std::pair"], ptr %9, i32 0, i32 0
  %242 = getelementptr inbounds %"struct.std::pair", ptr %241, i64 30
  br label %243

243:                                              ; preds = %243, %240
  %244 = phi ptr [ %242, %240 ], [ %245, %243 ]
  %245 = getelementptr inbounds %"struct.std::pair", ptr %244, i64 -1
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %245) #6
  %246 = icmp eq ptr %245, %241
  br i1 %246, label %247, label %243

247:                                              ; preds = %243
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 1200, ptr %9) #6
  store i1 false, ptr %106, align 1
  call void @_ZN10CmdOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(115) %0) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #6
  store i32 1, ptr %107, align 4, !tbaa !5
  br label %248

248:                                              ; preds = %480, %247
  %249 = load i32, ptr %107, align 4, !tbaa !5
  %250 = load i32, ptr %5, align 4, !tbaa !5
  %251 = icmp slt i32 %249, %250
  br i1 %251, label %424, label %252

252:                                              ; preds = %248
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #6
  br label %485

253:                                              ; preds = %116, %114
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %14, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %15, align 4
  br label %413

257:                                              ; preds = %120, %117
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %14, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %15, align 4
  br label %412

261:                                              ; preds = %124, %121
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %14, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %15, align 4
  br label %411

265:                                              ; preds = %128, %125
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %14, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %15, align 4
  br label %410

269:                                              ; preds = %132, %129
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %14, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %15, align 4
  br label %409

273:                                              ; preds = %136, %133
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %14, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %15, align 4
  br label %408

277:                                              ; preds = %140, %137
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %14, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %15, align 4
  br label %407

281:                                              ; preds = %144, %141
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %14, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %15, align 4
  br label %406

285:                                              ; preds = %148, %145
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %14, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %15, align 4
  br label %405

289:                                              ; preds = %152, %149
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %14, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %15, align 4
  br label %404

293:                                              ; preds = %156, %153
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %14, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %15, align 4
  br label %403

297:                                              ; preds = %160, %157
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %14, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %15, align 4
  br label %402

301:                                              ; preds = %164, %161
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %14, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %15, align 4
  br label %401

305:                                              ; preds = %168, %165
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %14, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %15, align 4
  br label %400

309:                                              ; preds = %172, %169
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %14, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %15, align 4
  br label %399

313:                                              ; preds = %176, %173
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %14, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %15, align 4
  br label %398

317:                                              ; preds = %180, %177
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %14, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %15, align 4
  br label %397

321:                                              ; preds = %184, %181
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %14, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %15, align 4
  br label %396

325:                                              ; preds = %188, %185
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %14, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %15, align 4
  br label %395

329:                                              ; preds = %192, %189
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %14, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %15, align 4
  br label %394

333:                                              ; preds = %196, %193
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %14, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %15, align 4
  br label %393

337:                                              ; preds = %200, %197
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %14, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %15, align 4
  br label %392

341:                                              ; preds = %204, %201
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %14, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %15, align 4
  br label %391

345:                                              ; preds = %208, %205
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %14, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %15, align 4
  br label %390

349:                                              ; preds = %212, %209
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %14, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %15, align 4
  br label %389

353:                                              ; preds = %216, %213
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %14, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %15, align 4
  br label %388

357:                                              ; preds = %220, %217
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %14, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %15, align 4
  br label %387

361:                                              ; preds = %224, %221
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %14, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %15, align 4
  br label %386

365:                                              ; preds = %228, %225
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %14, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %15, align 4
  br label %385

369:                                              ; preds = %232, %229
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %14, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %15, align 4
  br label %384

373:                                              ; preds = %233
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %14, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %15, align 4
  call void @_ZNSt15__new_allocatorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_I8OptionIDN12_GLOBAL__N_17IsParamEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #6
  %377 = getelementptr inbounds [30 x %"struct.std::pair"], ptr %9, i32 0, i32 0
  %378 = getelementptr inbounds %"struct.std::pair", ptr %377, i64 30
  br label %379

379:                                              ; preds = %379, %373
  %380 = phi ptr [ %378, %373 ], [ %381, %379 ]
  %381 = getelementptr inbounds %"struct.std::pair", ptr %380, i64 -1
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %381) #6
  %382 = icmp eq ptr %381, %377
  br i1 %382, label %383, label %379

383:                                              ; preds = %379
  br label %384

384:                                              ; preds = %383, %369
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #6
  br label %385

385:                                              ; preds = %384, %365
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #6
  br label %386

386:                                              ; preds = %385, %361
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #6
  br label %387

387:                                              ; preds = %386, %357
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #6
  br label %388

388:                                              ; preds = %387, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #6
  br label %389

389:                                              ; preds = %388, %349
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  br label %390

390:                                              ; preds = %389, %345
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #6
  br label %391

391:                                              ; preds = %390, %341
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #6
  br label %392

392:                                              ; preds = %391, %337
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #6
  br label %393

393:                                              ; preds = %392, %333
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  br label %394

394:                                              ; preds = %393, %329
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  br label %395

395:                                              ; preds = %394, %325
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  br label %396

396:                                              ; preds = %395, %321
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  br label %397

397:                                              ; preds = %396, %317
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  br label %398

398:                                              ; preds = %397, %313
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  br label %399

399:                                              ; preds = %398, %309
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  br label %400

400:                                              ; preds = %399, %305
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  br label %401

401:                                              ; preds = %400, %301
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  br label %402

402:                                              ; preds = %401, %297
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  br label %403

403:                                              ; preds = %402, %293
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  br label %404

404:                                              ; preds = %403, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  br label %405

405:                                              ; preds = %404, %285
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  br label %406

406:                                              ; preds = %405, %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  br label %407

407:                                              ; preds = %406, %277
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  br label %408

408:                                              ; preds = %407, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  br label %409

409:                                              ; preds = %408, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  br label %410

410:                                              ; preds = %409, %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  br label %411

411:                                              ; preds = %410, %261
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %412

412:                                              ; preds = %411, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  br label %413

413:                                              ; preds = %412, %253
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  %414 = load i1, ptr %103, align 1
  br i1 %414, label %415, label %423

415:                                              ; preds = %413
  %416 = load ptr, ptr %10, align 8
  %417 = icmp eq ptr %9, %416
  br i1 %417, label %422, label %418

418:                                              ; preds = %418, %415
  %419 = phi ptr [ %416, %415 ], [ %420, %418 ]
  %420 = getelementptr inbounds %"struct.std::pair", ptr %419, i64 -1
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %420) #6
  %421 = icmp eq ptr %420, %9
  br i1 %421, label %422, label %418

422:                                              ; preds = %418, %415
  br label %423

423:                                              ; preds = %422, %413
  call void @llvm.lifetime.end.p0(i64 1200, ptr %9) #6
  br label %501

424:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 96, ptr %108) #6
  %425 = load i32, ptr %5, align 4, !tbaa !5
  %426 = load ptr, ptr %6, align 8, !tbaa !9
  invoke void @_ZN12_GLOBAL__N_111parseOptionISt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDNS_7IsParamEESt4lessIS7_ESaIS8_IKS7_SB_EEEEE6OptioniPPcRiRKT_(ptr dead_on_unwind writable sret(%struct.Option) align 8 %108, i32 noundef %425, ptr noundef %426, ptr noundef nonnull align 4 dereferenceable(4) %107, ptr noundef nonnull align 8 dereferenceable(48) %7)
          to label %427 unwind label %434

427:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #6
  %428 = getelementptr inbounds %struct.Option, ptr %108, i32 0, i32 1
  %429 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEE2atERSD_(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 8 dereferenceable(32) %428)
          to label %430 unwind label %438

430:                                              ; preds = %427
  %431 = getelementptr inbounds %"struct.std::pair.6", ptr %429, i32 0, i32 0
  %432 = load i32, ptr %431, align 4, !tbaa !18
  store i32 %432, ptr %109, align 4, !tbaa !11
  %433 = load i32, ptr %109, align 4, !tbaa !11
  switch i32 %433, label %475 [
    i32 0, label %442
    i32 6, label %444
    i32 7, label %446
    i32 12, label %448
    i32 16, label %450
    i32 11, label %452
    i32 14, label %456
    i32 8, label %460
    i32 4, label %462
    i32 15, label %464
    i32 5, label %466
  ]

434:                                              ; preds = %424
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %14, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %15, align 4
  br label %484

438:                                              ; preds = %475, %456, %452, %450, %448, %446, %444, %442, %427
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %14, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %15, align 4
  br label %483

442:                                              ; preds = %430
  invoke void @_ZN10CmdOptions11optionCountER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %443 unwind label %438

443:                                              ; preds = %442
  br label %479

444:                                              ; preds = %430
  invoke void @_ZN10CmdOptions14optionDistanceER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %445 unwind label %438

445:                                              ; preds = %444
  br label %479

446:                                              ; preds = %430
  invoke void @_ZN10CmdOptions11optionPrintER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %447 unwind label %438

447:                                              ; preds = %446
  br label %479

448:                                              ; preds = %430
  invoke void @_ZN10CmdOptions16optionStressTestER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %449 unwind label %438

449:                                              ; preds = %448
  br label %479

450:                                              ; preds = %430
  invoke void @_ZN10CmdOptions13optionTimeoutER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %451 unwind label %438

451:                                              ; preds = %450
  br label %479

452:                                              ; preds = %430
  %453 = invoke noundef i32 @_ZNK6Option8getValueIiEET_v(ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %454 unwind label %438

454:                                              ; preds = %452
  %455 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 5
  store i32 %453, ptr %455, align 8, !tbaa !20
  br label %479

456:                                              ; preds = %430
  %457 = invoke noundef i32 @_ZNK6Option8getValueIiEET_v(ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %458 unwind label %438

458:                                              ; preds = %456
  %459 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 6
  store i32 %457, ptr %459, align 4, !tbaa !26
  br label %479

460:                                              ; preds = %430
  %461 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 8
  store i8 1, ptr %461, align 8, !tbaa !27
  br label %479

462:                                              ; preds = %430
  %463 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 9
  store i8 0, ptr %463, align 1, !tbaa !28
  br label %479

464:                                              ; preds = %430
  %465 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 10
  store i8 1, ptr %465, align 2, !tbaa !29
  br label %479

466:                                              ; preds = %430
  %467 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #6
  %468 = invoke noundef i64 @_ZNK6Option8getValueImEET_v(ptr noundef nonnull align 8 dereferenceable(96) %108)
          to label %469 unwind label %471

469:                                              ; preds = %466
  store i64 %468, ptr %110, align 8, !tbaa !30
  invoke void @_ZN10primesieve6VectorImSaImEE9push_backEOm(ptr noundef nonnull align 8 dereferenceable(24) %467, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %470 unwind label %471

470:                                              ; preds = %469
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #6
  br label %479

471:                                              ; preds = %469, %466
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %14, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #6
  br label %483

475:                                              ; preds = %430
  %476 = load i32, ptr %109, align 4, !tbaa !11
  %477 = getelementptr inbounds %struct.Option, ptr %108, i32 0, i32 0
  invoke void @_ZN10CmdOptions13setMainOptionE8OptionIDRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(115) %0, i32 noundef %476, ptr noundef nonnull align 8 dereferenceable(32) %477)
          to label %478 unwind label %438

478:                                              ; preds = %475
  br label %479

479:                                              ; preds = %478, %470, %464, %462, %460, %458, %454, %451, %449, %447, %445, %443
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #6
  call void @_ZN6OptionD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %108) #6
  call void @llvm.lifetime.end.p0(i64 96, ptr %108) #6
  br label %480

480:                                              ; preds = %479
  %481 = load i32, ptr %107, align 4, !tbaa !5
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr %107, align 4, !tbaa !5
  br label %248, !llvm.loop !31

483:                                              ; preds = %471, %438
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #6
  call void @_ZN6OptionD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %108) #6
  br label %484

484:                                              ; preds = %483, %434
  call void @llvm.lifetime.end.p0(i64 96, ptr %108) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #6
  call void @_ZN10CmdOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(115) %0) #6
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #6
  br label %501

485:                                              ; preds = %252
  %486 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 8
  %487 = load i8, ptr %486, align 8, !tbaa !27, !range !33, !noundef !34
  %488 = trunc i8 %487 to i1
  br i1 %488, label %489, label %491

489:                                              ; preds = %485
  %490 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 9
  store i8 0, ptr %490, align 1, !tbaa !28
  br label %491

491:                                              ; preds = %489, %485
  %492 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 8
  %493 = load i8, ptr %492, align 8, !tbaa !27, !range !33, !noundef !34
  %494 = trunc i8 %493 to i1
  br i1 %494, label %497, label %495

495:                                              ; preds = %491
  %496 = getelementptr inbounds %struct.CmdOptions, ptr %0, i32 0, i32 10
  store i8 1, ptr %496, align 2, !tbaa !29
  br label %497

497:                                              ; preds = %495, %491
  store i1 true, ptr %106, align 1
  %498 = load i1, ptr %106, align 1
  br i1 %498, label %500, label %499

499:                                              ; preds = %497
  call void @_ZN10CmdOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(115) %0) #6
  br label %500

500:                                              ; preds = %499, %497
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %7) #6
  ret void

501:                                              ; preds = %484, %423
  call void @llvm.lifetime.end.p0(i64 48, ptr %7) #6
  br label %502

502:                                              ; preds = %501
  %503 = load ptr, ptr %14, align 8
  %504 = load i32, ptr %15, align 4
  %505 = insertvalue { ptr, i32 } poison, ptr %503, 0
  %506 = insertvalue { ptr, i32 } %505, i32 %504, 1
  resume { ptr, i32 } %506
}

declare void @_Z4helpi(i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA12_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA9_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA19_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA14_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(14), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_111parseOptionISt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDNS_7IsParamEESt4lessIS7_ESaIS8_IKS7_SB_EEEEE6OptioniPPcRiRKT_(ptr dead_on_unwind noalias writable sret(%struct.Option) align 8, i32 noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(48)) #0

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEE2atERSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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 = { 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 #6 = { 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, !12, i64 0}
!12 = !{!"_ZTS8OptionID", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !10, i64 0}
!15 = !{!"_ZTSSt16initializer_listISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_I8OptionIDN12_GLOBAL__N_17IsParamEEEE", !10, i64 0, !16, i64 8}
!16 = !{!"long", !7, i64 0}
!17 = !{!15, !16, i64 8}
!18 = !{!19, !12, i64 0}
!19 = !{!"_ZTSSt4pairI8OptionIDN12_GLOBAL__N_17IsParamEE", !12, i64 0, !7, i64 4}
!20 = !{!21, !6, i64 96}
!21 = !{!"_ZTS10CmdOptions", !22, i64 0, !23, i64 24, !23, i64 56, !6, i64 88, !6, i64 92, !6, i64 96, !6, i64 100, !16, i64 104, !25, i64 112, !25, i64 113, !25, i64 114}
!22 = !{!"_ZTSN10primesieve6VectorImSaImEEE", !10, i64 0, !10, i64 8, !10, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !16, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!25 = !{!"bool", !7, i64 0}
!26 = !{!21, !6, i64 100}
!27 = !{!21, !25, i64 112}
!28 = !{!21, !25, i64 113}
!29 = !{!21, !25, i64 114}
!30 = !{!16, !16, i64 0}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{i8 0, i8 2}
!34 = !{}


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

%struct.CmdOptions = type <{ %"class.primesieve::Vector", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i32, i32, i64, i8, i8, i8, [5 x i8] }>
%"class.primesieve::Vector" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<OptionID, (anonymous namespace)::IsParam>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", %"struct.std::pair.6" }
%"struct.std::pair.6" = type { i32, i32 }
%"struct.std::less" = type { i8 }
%"class.std::allocator.8" = type { i8 }
%struct.Option = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }

@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [10 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions13setMainOptionE8OptionIDRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(115), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions11optionPrintER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK6Option8getValueIiEET_v(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions11optionCountER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions14optionDistanceER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions16optionStressTestER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10CmdOptions13optionTimeoutER6Option(ptr noundef nonnull align 8 dereferenceable(115), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z12parseOptionsiPPc(ptr dead_on_unwind noalias writable sret(%struct.CmdOptions) align 8 %0, i32 noundef %1, ptr noundef %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::map", align 8
  %5 = alloca [30 x %"struct.std::pair"], align 8
  %6 = alloca %"struct.std::pair.6", align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca %"struct.std::pair.6", align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"struct.std::pair.6", align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %"struct.std::pair.6", align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"struct.std::pair.6", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"struct.std::pair.6", align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %"struct.std::pair.6", align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca %"struct.std::pair.6", align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"struct.std::pair.6", align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %"struct.std::pair.6", align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %"struct.std::pair.6", align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %"struct.std::pair.6", align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %"struct.std::pair.6", align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %"struct.std::pair.6", align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca %"struct.std::pair.6", align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca %"struct.std::pair.6", align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca %"struct.std::pair.6", align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca %"struct.std::pair.6", align 8
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %"struct.std::pair.6", align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %"struct.std::pair.6", align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca %"struct.std::pair.6", align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca %"struct.std::pair.6", align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %"struct.std::pair.6", align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca %"struct.std::pair.6", align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca %"struct.std::pair.6", align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %"struct.std::pair.6", align 8
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca %"struct.std::pair.6", align 8
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca %"struct.std::pair.6", align 8
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca %"struct.std::pair.6", align 8
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %"struct.std::pair.6", align 8
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca %"struct.std::less", align 1
  %97 = alloca %"class.std::allocator.8", align 1
  %98 = alloca i32, align 4
  %99 = alloca %struct.Option, align 8
  %100 = alloca i64, align 8
  %101 = icmp slt i32 %1, 2
  br i1 %101, label %102, label %103

102:                                              ; preds = %3
  tail call void @_Z4helpi(i32 noundef 1)
  br label %103

103:                                              ; preds = %102, %3
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %4) #6
  call void @llvm.lifetime.start.p0(i64 1200, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  store i32 0, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  store i32 2, ptr %8, align 4, !tbaa !9
  %104 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %105 unwind label %.thread

105:                                              ; preds = %103
  store i64 %104, ptr %6, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef nonnull align 1 dereferenceable(3) @.str.8, ptr noundef nonnull align 4 dereferenceable(8) %6)
          to label %106 unwind label %.thread

106:                                              ; preds = %105
  %107 = getelementptr inbounds i8, ptr %5, i64 40
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  store i32 0, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  store i32 2, ptr %11, align 4, !tbaa !9
  %108 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %109 unwind label %264

109:                                              ; preds = %106
  store i64 %108, ptr %9, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %107, ptr noundef nonnull align 1 dereferenceable(8) @.str.9, ptr noundef nonnull align 4 dereferenceable(8) %9)
          to label %110 unwind label %264

110:                                              ; preds = %109
  %111 = getelementptr inbounds i8, ptr %5, i64 80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  store i32 1, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  store i32 0, ptr %14, align 4, !tbaa !9
  %112 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %113 unwind label %266

113:                                              ; preds = %110
  store i64 %112, ptr %12, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %111, ptr noundef nonnull align 1 dereferenceable(11) @.str.10, ptr noundef nonnull align 4 dereferenceable(8) %12)
          to label %114 unwind label %266

114:                                              ; preds = %113
  %115 = getelementptr inbounds i8, ptr %5, i64 120
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 2, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  store i32 0, ptr %17, align 4, !tbaa !9
  %116 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %117 unwind label %268

117:                                              ; preds = %114
  store i64 %116, ptr %15, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %115, ptr noundef nonnull align 1 dereferenceable(3) @.str.11, ptr noundef nonnull align 4 dereferenceable(8) %15)
          to label %118 unwind label %268

118:                                              ; preds = %117
  %119 = getelementptr inbounds i8, ptr %5, i64 160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  store i32 2, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  store i32 0, ptr %20, align 4, !tbaa !9
  %120 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %121 unwind label %270

121:                                              ; preds = %118
  store i64 %120, ptr %18, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %119, ptr noundef nonnull align 1 dereferenceable(7) @.str.12, ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %122 unwind label %270

122:                                              ; preds = %121
  %123 = getelementptr inbounds i8, ptr %5, i64 200
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  store i32 3, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  store i32 0, ptr %23, align 4, !tbaa !9
  %124 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %125 unwind label %272

125:                                              ; preds = %122
  store i64 %124, ptr %21, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %123, ptr noundef nonnull align 1 dereferenceable(3) @.str.13, ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %126 unwind label %272

126:                                              ; preds = %125
  %127 = getelementptr inbounds i8, ptr %5, i64 240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  store i32 3, ptr %25, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  store i32 0, ptr %26, align 4, !tbaa !9
  %128 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %129 unwind label %274

129:                                              ; preds = %126
  store i64 %128, ptr %24, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %127, ptr noundef nonnull align 1 dereferenceable(11) @.str.14, ptr noundef nonnull align 4 dereferenceable(8) %24)
          to label %130 unwind label %274

130:                                              ; preds = %129
  %131 = getelementptr inbounds i8, ptr %5, i64 280
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  store i32 3, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  store i32 0, ptr %29, align 4, !tbaa !9
  %132 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %133 unwind label %276

133:                                              ; preds = %130
  store i64 %132, ptr %27, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA12_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %131, ptr noundef nonnull align 1 dereferenceable(12) @.str.15, ptr noundef nonnull align 4 dereferenceable(8) %27)
          to label %134 unwind label %276

134:                                              ; preds = %133
  %135 = getelementptr inbounds i8, ptr %5, i64 320
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  store i32 4, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  store i32 0, ptr %32, align 4, !tbaa !9
  %136 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %137 unwind label %278

137:                                              ; preds = %134
  store i64 %136, ptr %30, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA12_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %135, ptr noundef nonnull align 1 dereferenceable(12) @.str.16, ptr noundef nonnull align 4 dereferenceable(8) %30)
          to label %138 unwind label %278

138:                                              ; preds = %137
  %139 = getelementptr inbounds i8, ptr %5, i64 360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  store i32 5, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  store i32 1, ptr %35, align 4, !tbaa !9
  %140 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %141 unwind label %280

141:                                              ; preds = %138
  store i64 %140, ptr %33, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA9_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %139, ptr noundef nonnull align 1 dereferenceable(9) @.str.17, ptr noundef nonnull align 4 dereferenceable(8) %33)
          to label %142 unwind label %280

142:                                              ; preds = %141
  %143 = getelementptr inbounds i8, ptr %5, i64 400
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  store i32 6, ptr %37, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  store i32 1, ptr %38, align 4, !tbaa !9
  %144 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %145 unwind label %282

145:                                              ; preds = %142
  store i64 %144, ptr %36, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %143, ptr noundef nonnull align 1 dereferenceable(3) @.str.18, ptr noundef nonnull align 4 dereferenceable(8) %36)
          to label %146 unwind label %282

146:                                              ; preds = %145
  %147 = getelementptr inbounds i8, ptr %5, i64 440
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  store i32 6, ptr %40, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  store i32 1, ptr %41, align 4, !tbaa !9
  %148 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %149 unwind label %284

149:                                              ; preds = %146
  store i64 %148, ptr %39, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %147, ptr noundef nonnull align 1 dereferenceable(7) @.str.19, ptr noundef nonnull align 4 dereferenceable(8) %39)
          to label %150 unwind label %284

150:                                              ; preds = %149
  %151 = getelementptr inbounds i8, ptr %5, i64 480
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  store i32 7, ptr %43, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  store i32 2, ptr %44, align 4, !tbaa !9
  %152 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %153 unwind label %286

153:                                              ; preds = %150
  store i64 %152, ptr %42, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %151, ptr noundef nonnull align 1 dereferenceable(3) @.str.20, ptr noundef nonnull align 4 dereferenceable(8) %42)
          to label %154 unwind label %286

154:                                              ; preds = %153
  %155 = getelementptr inbounds i8, ptr %5, i64 520
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #6
  store i32 7, ptr %46, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #6
  store i32 2, ptr %47, align 4, !tbaa !9
  %156 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %157 unwind label %288

157:                                              ; preds = %154
  store i64 %156, ptr %45, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %155, ptr noundef nonnull align 1 dereferenceable(8) @.str.21, ptr noundef nonnull align 4 dereferenceable(8) %45)
          to label %158 unwind label %288

158:                                              ; preds = %157
  %159 = getelementptr inbounds i8, ptr %5, i64 560
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #6
  store i32 8, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #6
  store i32 0, ptr %50, align 4, !tbaa !9
  %160 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %161 unwind label %290

161:                                              ; preds = %158
  store i64 %160, ptr %48, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %159, ptr noundef nonnull align 1 dereferenceable(3) @.str.22, ptr noundef nonnull align 4 dereferenceable(8) %48)
          to label %162 unwind label %290

162:                                              ; preds = %161
  %163 = getelementptr inbounds i8, ptr %5, i64 600
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #6
  store i32 8, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #6
  store i32 0, ptr %53, align 4, !tbaa !9
  %164 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %165 unwind label %292

165:                                              ; preds = %162
  store i64 %164, ptr %51, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %163, ptr noundef nonnull align 1 dereferenceable(8) @.str.23, ptr noundef nonnull align 4 dereferenceable(8) %51)
          to label %166 unwind label %292

166:                                              ; preds = %165
  %167 = getelementptr inbounds i8, ptr %5, i64 640
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #6
  store i32 9, ptr %55, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #6
  store i32 0, ptr %56, align 4, !tbaa !9
  %168 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %169 unwind label %294

169:                                              ; preds = %166
  store i64 %168, ptr %54, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %167, ptr noundef nonnull align 1 dereferenceable(3) @.str.24, ptr noundef nonnull align 4 dereferenceable(8) %54)
          to label %170 unwind label %294

170:                                              ; preds = %169
  %171 = getelementptr inbounds i8, ptr %5, i64 680
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #6
  store i32 9, ptr %58, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #6
  store i32 0, ptr %59, align 4, !tbaa !9
  %172 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %173 unwind label %296

173:                                              ; preds = %170
  store i64 %172, ptr %57, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %171, ptr noundef nonnull align 1 dereferenceable(11) @.str.25, ptr noundef nonnull align 4 dereferenceable(8) %57)
          to label %174 unwind label %296

174:                                              ; preds = %173
  %175 = getelementptr inbounds i8, ptr %5, i64 720
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %61) #6
  store i32 10, ptr %61, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %62) #6
  store i32 0, ptr %62, align 4, !tbaa !9
  %176 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef nonnull align 4 dereferenceable(4) %62)
          to label %177 unwind label %298

177:                                              ; preds = %174
  store i64 %176, ptr %60, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA19_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %175, ptr noundef nonnull align 1 dereferenceable(19) @.str.26, ptr noundef nonnull align 4 dereferenceable(8) %60)
          to label %178 unwind label %298

178:                                              ; preds = %177
  %179 = getelementptr inbounds i8, ptr %5, i64 760
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %64) #6
  store i32 11, ptr %64, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %65) #6
  store i32 1, ptr %65, align 4, !tbaa !9
  %180 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %181 unwind label %300

181:                                              ; preds = %178
  store i64 %180, ptr %63, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %179, ptr noundef nonnull align 1 dereferenceable(3) @.str.27, ptr noundef nonnull align 4 dereferenceable(8) %63)
          to label %182 unwind label %300

182:                                              ; preds = %181
  %183 = getelementptr inbounds i8, ptr %5, i64 800
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #6
  store i32 11, ptr %67, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #6
  store i32 1, ptr %68, align 4, !tbaa !9
  %184 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %67, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %185 unwind label %302

185:                                              ; preds = %182
  store i64 %184, ptr %66, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %183, ptr noundef nonnull align 1 dereferenceable(7) @.str.28, ptr noundef nonnull align 4 dereferenceable(8) %66)
          to label %186 unwind label %302

186:                                              ; preds = %185
  %187 = getelementptr inbounds i8, ptr %5, i64 840
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #6
  store i32 12, ptr %70, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %71) #6
  store i32 2, ptr %71, align 4, !tbaa !9
  %188 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %70, ptr noundef nonnull align 4 dereferenceable(4) %71)
          to label %189 unwind label %304

189:                                              ; preds = %186
  store i64 %188, ptr %69, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %187, ptr noundef nonnull align 1 dereferenceable(3) @.str.29, ptr noundef nonnull align 4 dereferenceable(8) %69)
          to label %190 unwind label %304

190:                                              ; preds = %189
  %191 = getelementptr inbounds i8, ptr %5, i64 880
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %73) #6
  store i32 12, ptr %73, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %74) #6
  store i32 2, ptr %74, align 4, !tbaa !9
  %192 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %193 unwind label %306

193:                                              ; preds = %190
  store i64 %192, ptr %72, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA14_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %191, ptr noundef nonnull align 1 dereferenceable(14) @.str.30, ptr noundef nonnull align 4 dereferenceable(8) %72)
          to label %194 unwind label %306

194:                                              ; preds = %193
  %195 = getelementptr inbounds i8, ptr %5, i64 920
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %76) #6
  store i32 13, ptr %76, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %77) #6
  store i32 0, ptr %77, align 4, !tbaa !9
  %196 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 4 dereferenceable(4) %77)
          to label %197 unwind label %308

197:                                              ; preds = %194
  store i64 %196, ptr %75, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %195, ptr noundef nonnull align 1 dereferenceable(7) @.str.31, ptr noundef nonnull align 4 dereferenceable(8) %75)
          to label %198 unwind label %308

198:                                              ; preds = %197
  %199 = getelementptr inbounds i8, ptr %5, i64 960
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %79) #6
  store i32 14, ptr %79, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %80) #6
  store i32 1, ptr %80, align 4, !tbaa !9
  %200 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %79, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %201 unwind label %310

201:                                              ; preds = %198
  store i64 %200, ptr %78, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %199, ptr noundef nonnull align 1 dereferenceable(3) @.str.32, ptr noundef nonnull align 4 dereferenceable(8) %78)
          to label %202 unwind label %310

202:                                              ; preds = %201
  %203 = getelementptr inbounds i8, ptr %5, i64 1000
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %82) #6
  store i32 14, ptr %82, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %83) #6
  store i32 1, ptr %83, align 4, !tbaa !9
  %204 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %82, ptr noundef nonnull align 4 dereferenceable(4) %83)
          to label %205 unwind label %312

205:                                              ; preds = %202
  store i64 %204, ptr %81, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %203, ptr noundef nonnull align 1 dereferenceable(10) @.str.33, ptr noundef nonnull align 4 dereferenceable(8) %81)
          to label %206 unwind label %312

206:                                              ; preds = %205
  %207 = getelementptr inbounds i8, ptr %5, i64 1040
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %85) #6
  store i32 15, ptr %85, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %86) #6
  store i32 0, ptr %86, align 4, !tbaa !9
  %208 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %85, ptr noundef nonnull align 4 dereferenceable(4) %86)
          to label %209 unwind label %314

209:                                              ; preds = %206
  store i64 %208, ptr %84, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %207, ptr noundef nonnull align 1 dereferenceable(7) @.str.34, ptr noundef nonnull align 4 dereferenceable(8) %84)
          to label %210 unwind label %314

210:                                              ; preds = %209
  %211 = getelementptr inbounds i8, ptr %5, i64 1080
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %88) #6
  store i32 16, ptr %88, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %89) #6
  store i32 1, ptr %89, align 4, !tbaa !9
  %212 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %88, ptr noundef nonnull align 4 dereferenceable(4) %89)
          to label %213 unwind label %316

213:                                              ; preds = %210
  store i64 %212, ptr %87, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %211, ptr noundef nonnull align 1 dereferenceable(10) @.str.35, ptr noundef nonnull align 4 dereferenceable(8) %87)
          to label %214 unwind label %316

214:                                              ; preds = %213
  %215 = getelementptr inbounds i8, ptr %5, i64 1120
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %91) #6
  store i32 17, ptr %91, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %92) #6
  store i32 0, ptr %92, align 4, !tbaa !9
  %216 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %91, ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %217 unwind label %318

217:                                              ; preds = %214
  store i64 %216, ptr %90, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %215, ptr noundef nonnull align 1 dereferenceable(3) @.str.36, ptr noundef nonnull align 4 dereferenceable(8) %90)
          to label %218 unwind label %318

218:                                              ; preds = %217
  %219 = getelementptr inbounds i8, ptr %5, i64 1160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %94) #6
  store i32 17, ptr %94, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %95) #6
  store i32 0, ptr %95, align 4, !tbaa !9
  %220 = invoke i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4) %94, ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %221 unwind label %320

221:                                              ; preds = %218
  store i64 %220, ptr %93, align 8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40) %219, ptr noundef nonnull align 1 dereferenceable(10) @.str.37, ptr noundef nonnull align 4 dereferenceable(8) %93)
          to label %222 unwind label %320

222:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %97) #6
  call void @_ZNSaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #6
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEEC2ESt16initializer_listISE_ERKSC_RKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr nonnull %5, i64 30, ptr noundef nonnull align 1 dereferenceable(1) %96, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %223 unwind label %.loopexit145.loopexit

223:                                              ; preds = %222
  call void @_ZNSt15__new_allocatorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_I8OptionIDN12_GLOBAL__N_17IsParamEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #6
  %224 = getelementptr inbounds i8, ptr %5, i64 1160
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %224) #6
  %225 = getelementptr inbounds i8, ptr %5, i64 1120
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %225) #6
  %226 = getelementptr inbounds i8, ptr %5, i64 1080
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %226) #6
  %227 = getelementptr inbounds i8, ptr %5, i64 1040
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %227) #6
  %228 = getelementptr inbounds i8, ptr %5, i64 1000
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %228) #6
  %229 = getelementptr inbounds i8, ptr %5, i64 960
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %229) #6
  %230 = getelementptr inbounds i8, ptr %5, i64 920
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %230) #6
  %231 = getelementptr inbounds i8, ptr %5, i64 880
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %231) #6
  %232 = getelementptr inbounds i8, ptr %5, i64 840
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %232) #6
  %233 = getelementptr inbounds i8, ptr %5, i64 800
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %233) #6
  %234 = getelementptr inbounds i8, ptr %5, i64 760
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %234) #6
  %235 = getelementptr inbounds i8, ptr %5, i64 720
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %235) #6
  %236 = getelementptr inbounds i8, ptr %5, i64 680
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %236) #6
  %237 = getelementptr inbounds i8, ptr %5, i64 640
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %237) #6
  %238 = getelementptr inbounds i8, ptr %5, i64 600
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %238) #6
  %239 = getelementptr inbounds i8, ptr %5, i64 560
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %239) #6
  %240 = getelementptr inbounds i8, ptr %5, i64 520
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %240) #6
  %241 = getelementptr inbounds i8, ptr %5, i64 480
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %241) #6
  %242 = getelementptr inbounds i8, ptr %5, i64 440
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %242) #6
  %243 = getelementptr inbounds i8, ptr %5, i64 400
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %243) #6
  %244 = getelementptr inbounds i8, ptr %5, i64 360
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %244) #6
  %245 = getelementptr inbounds i8, ptr %5, i64 320
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %245) #6
  %246 = getelementptr inbounds i8, ptr %5, i64 280
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %246) #6
  %247 = getelementptr inbounds i8, ptr %5, i64 240
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %247) #6
  %248 = getelementptr inbounds i8, ptr %5, i64 200
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %248) #6
  %249 = getelementptr inbounds i8, ptr %5, i64 160
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %249) #6
  %250 = getelementptr inbounds i8, ptr %5, i64 120
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %250) #6
  %251 = getelementptr inbounds i8, ptr %5, i64 80
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %251) #6
  %252 = getelementptr inbounds i8, ptr %5, i64 40
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %252) #6
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %95) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %94) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %91) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %89) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %85) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 1200, ptr nonnull %5) #6
  call void @_ZN10CmdOptionsC2Ev(ptr noundef nonnull align 8 dereferenceable(115) %0) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %98) #6
  store i32 1, ptr %98, align 4, !tbaa !10
  %253 = icmp sgt i32 %1, 1
  br i1 %253, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %223
  %254 = getelementptr inbounds i8, ptr %99, i64 32
  %255 = getelementptr inbounds i8, ptr %0, i64 114
  %256 = getelementptr inbounds i8, ptr %0, i64 113
  %257 = getelementptr inbounds i8, ptr %0, i64 112
  %258 = getelementptr inbounds i8, ptr %0, i64 100
  %259 = getelementptr inbounds i8, ptr %0, i64 96
  br label %385

._crit_edge:                                      ; preds = %415, %223
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #6
  %260 = getelementptr inbounds i8, ptr %0, i64 112
  %261 = load i8, ptr %260, align 8, !tbaa !12, !range !20, !noundef !21
  %262 = trunc nuw i8 %261 to i1
  br i1 %262, label %.thread144, label %422

.thread:                                          ; preds = %103, %105
  %263 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  br label %.loopexit

264:                                              ; preds = %109, %106
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %380

266:                                              ; preds = %113, %110
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %379

268:                                              ; preds = %117, %114
  %269 = landingpad { ptr, i32 }
          cleanup
  br label %378

270:                                              ; preds = %121, %118
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %377

272:                                              ; preds = %125, %122
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %376

274:                                              ; preds = %129, %126
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %375

276:                                              ; preds = %133, %130
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %374

278:                                              ; preds = %137, %134
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %373

280:                                              ; preds = %141, %138
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %372

282:                                              ; preds = %145, %142
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %371

284:                                              ; preds = %149, %146
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %370

286:                                              ; preds = %153, %150
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %369

288:                                              ; preds = %157, %154
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %368

290:                                              ; preds = %161, %158
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %367

292:                                              ; preds = %165, %162
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %366

294:                                              ; preds = %169, %166
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %365

296:                                              ; preds = %173, %170
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %364

298:                                              ; preds = %177, %174
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %363

300:                                              ; preds = %181, %178
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %362

302:                                              ; preds = %185, %182
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %361

304:                                              ; preds = %189, %186
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %360

306:                                              ; preds = %193, %190
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %359

308:                                              ; preds = %197, %194
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %358

310:                                              ; preds = %201, %198
  %311 = landingpad { ptr, i32 }
          cleanup
  br label %357

312:                                              ; preds = %205, %202
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %356

314:                                              ; preds = %209, %206
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %355

316:                                              ; preds = %213, %210
  %317 = landingpad { ptr, i32 }
          cleanup
  br label %354

318:                                              ; preds = %217, %214
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %353

320:                                              ; preds = %221, %218
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit145

.loopexit145.loopexit:                            ; preds = %222
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_I8OptionIDN12_GLOBAL__N_17IsParamEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #6
  %323 = getelementptr inbounds i8, ptr %5, i64 1160
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %323) #6
  %324 = getelementptr inbounds i8, ptr %5, i64 1120
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %324) #6
  %325 = getelementptr inbounds i8, ptr %5, i64 1080
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %325) #6
  %326 = getelementptr inbounds i8, ptr %5, i64 1040
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %326) #6
  %327 = getelementptr inbounds i8, ptr %5, i64 1000
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %327) #6
  %328 = getelementptr inbounds i8, ptr %5, i64 960
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %328) #6
  %329 = getelementptr inbounds i8, ptr %5, i64 920
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %329) #6
  %330 = getelementptr inbounds i8, ptr %5, i64 880
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %330) #6
  %331 = getelementptr inbounds i8, ptr %5, i64 840
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %331) #6
  %332 = getelementptr inbounds i8, ptr %5, i64 800
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %332) #6
  %333 = getelementptr inbounds i8, ptr %5, i64 760
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %333) #6
  %334 = getelementptr inbounds i8, ptr %5, i64 720
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %334) #6
  %335 = getelementptr inbounds i8, ptr %5, i64 680
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %335) #6
  %336 = getelementptr inbounds i8, ptr %5, i64 640
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %336) #6
  %337 = getelementptr inbounds i8, ptr %5, i64 600
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %337) #6
  %338 = getelementptr inbounds i8, ptr %5, i64 560
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %338) #6
  %339 = getelementptr inbounds i8, ptr %5, i64 520
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %339) #6
  %340 = getelementptr inbounds i8, ptr %5, i64 480
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %340) #6
  %341 = getelementptr inbounds i8, ptr %5, i64 440
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %341) #6
  %342 = getelementptr inbounds i8, ptr %5, i64 400
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %342) #6
  %343 = getelementptr inbounds i8, ptr %5, i64 360
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %343) #6
  %344 = getelementptr inbounds i8, ptr %5, i64 320
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %344) #6
  %345 = getelementptr inbounds i8, ptr %5, i64 280
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %345) #6
  %346 = getelementptr inbounds i8, ptr %5, i64 240
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %346) #6
  %347 = getelementptr inbounds i8, ptr %5, i64 200
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %347) #6
  %348 = getelementptr inbounds i8, ptr %5, i64 160
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %348) #6
  %349 = getelementptr inbounds i8, ptr %5, i64 120
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %349) #6
  %350 = getelementptr inbounds i8, ptr %5, i64 80
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %350) #6
  %351 = getelementptr inbounds i8, ptr %5, i64 40
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %351) #6
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #6
  br label %.loopexit145

.loopexit145:                                     ; preds = %.loopexit145.loopexit, %320
  %.pn = phi { ptr, i32 } [ %321, %320 ], [ %322, %.loopexit145.loopexit ]
  %352 = phi i1 [ false, %320 ], [ true, %.loopexit145.loopexit ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %95) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %94) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #6
  br label %353

353:                                              ; preds = %.loopexit145, %318
  %.pn.pn = phi { ptr, i32 } [ %.pn, %.loopexit145 ], [ %319, %318 ]
  %.112 = phi i1 [ %352, %.loopexit145 ], [ false, %318 ]
  %.0 = phi ptr [ %219, %.loopexit145 ], [ %215, %318 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %91) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #6
  br label %354

354:                                              ; preds = %353, %316
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %353 ], [ %317, %316 ]
  %.213 = phi i1 [ %.112, %353 ], [ false, %316 ]
  %.1 = phi ptr [ %.0, %353 ], [ %211, %316 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %89) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #6
  br label %355

355:                                              ; preds = %354, %314
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %354 ], [ %315, %314 ]
  %.314 = phi i1 [ %.213, %354 ], [ false, %314 ]
  %.2 = phi ptr [ %.1, %354 ], [ %207, %314 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %85) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #6
  br label %356

356:                                              ; preds = %355, %312
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %355 ], [ %313, %312 ]
  %.415 = phi i1 [ %.314, %355 ], [ false, %312 ]
  %.3 = phi ptr [ %.2, %355 ], [ %203, %312 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #6
  br label %357

357:                                              ; preds = %356, %310
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %356 ], [ %311, %310 ]
  %.516 = phi i1 [ %.415, %356 ], [ false, %310 ]
  %.4 = phi ptr [ %.3, %356 ], [ %199, %310 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #6
  br label %358

358:                                              ; preds = %357, %308
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %357 ], [ %309, %308 ]
  %.617 = phi i1 [ %.516, %357 ], [ false, %308 ]
  %.5 = phi ptr [ %.4, %357 ], [ %195, %308 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #6
  br label %359

359:                                              ; preds = %358, %306
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %358 ], [ %307, %306 ]
  %.718 = phi i1 [ %.617, %358 ], [ false, %306 ]
  %.6 = phi ptr [ %.5, %358 ], [ %191, %306 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #6
  br label %360

360:                                              ; preds = %359, %304
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %359 ], [ %305, %304 ]
  %.819 = phi i1 [ %.718, %359 ], [ false, %304 ]
  %.7 = phi ptr [ %.6, %359 ], [ %187, %304 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #6
  br label %361

361:                                              ; preds = %360, %302
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %360 ], [ %303, %302 ]
  %.920 = phi i1 [ %.819, %360 ], [ false, %302 ]
  %.8 = phi ptr [ %.7, %360 ], [ %183, %302 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #6
  br label %362

362:                                              ; preds = %361, %300
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %361 ], [ %301, %300 ]
  %.1021 = phi i1 [ %.920, %361 ], [ false, %300 ]
  %.9 = phi ptr [ %.8, %361 ], [ %179, %300 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #6
  br label %363

363:                                              ; preds = %362, %298
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %362 ], [ %299, %298 ]
  %.1122 = phi i1 [ %.1021, %362 ], [ false, %298 ]
  %.10 = phi ptr [ %.9, %362 ], [ %175, %298 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #6
  br label %364

364:                                              ; preds = %363, %296
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %363 ], [ %297, %296 ]
  %.1223 = phi i1 [ %.1122, %363 ], [ false, %296 ]
  %.11 = phi ptr [ %.10, %363 ], [ %171, %296 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #6
  br label %365

365:                                              ; preds = %364, %294
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %364 ], [ %295, %294 ]
  %.1324 = phi i1 [ %.1223, %364 ], [ false, %294 ]
  %.12 = phi ptr [ %.11, %364 ], [ %167, %294 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #6
  br label %366

366:                                              ; preds = %365, %292
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %365 ], [ %293, %292 ]
  %.1425 = phi i1 [ %.1324, %365 ], [ false, %292 ]
  %.13 = phi ptr [ %.12, %365 ], [ %163, %292 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #6
  br label %367

367:                                              ; preds = %366, %290
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %366 ], [ %291, %290 ]
  %.1526 = phi i1 [ %.1425, %366 ], [ false, %290 ]
  %.14 = phi ptr [ %.13, %366 ], [ %159, %290 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  br label %368

368:                                              ; preds = %367, %288
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %367 ], [ %289, %288 ]
  %.1627 = phi i1 [ %.1526, %367 ], [ false, %288 ]
  %.15 = phi ptr [ %.14, %367 ], [ %155, %288 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #6
  br label %369

369:                                              ; preds = %368, %286
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %368 ], [ %287, %286 ]
  %.1728 = phi i1 [ %.1627, %368 ], [ false, %286 ]
  %.16 = phi ptr [ %.15, %368 ], [ %151, %286 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  br label %370

370:                                              ; preds = %369, %284
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %369 ], [ %285, %284 ]
  %.1829 = phi i1 [ %.1728, %369 ], [ false, %284 ]
  %.17 = phi ptr [ %.16, %369 ], [ %147, %284 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  br label %371

371:                                              ; preds = %370, %282
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %370 ], [ %283, %282 ]
  %.1930 = phi i1 [ %.1829, %370 ], [ false, %282 ]
  %.18 = phi ptr [ %.17, %370 ], [ %143, %282 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  br label %372

372:                                              ; preds = %371, %280
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %371 ], [ %281, %280 ]
  %.2031 = phi i1 [ %.1930, %371 ], [ false, %280 ]
  %.19 = phi ptr [ %.18, %371 ], [ %139, %280 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  br label %373

373:                                              ; preds = %372, %278
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %372 ], [ %279, %278 ]
  %.2132 = phi i1 [ %.2031, %372 ], [ false, %278 ]
  %.20 = phi ptr [ %.19, %372 ], [ %135, %278 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  br label %374

374:                                              ; preds = %373, %276
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %373 ], [ %277, %276 ]
  %.2233 = phi i1 [ %.2132, %373 ], [ false, %276 ]
  %.21 = phi ptr [ %.20, %373 ], [ %131, %276 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  br label %375

375:                                              ; preds = %374, %274
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %374 ], [ %275, %274 ]
  %.2334 = phi i1 [ %.2233, %374 ], [ false, %274 ]
  %.22 = phi ptr [ %.21, %374 ], [ %127, %274 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  br label %376

376:                                              ; preds = %375, %272
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %375 ], [ %273, %272 ]
  %.2435 = phi i1 [ %.2334, %375 ], [ false, %272 ]
  %.23 = phi ptr [ %.22, %375 ], [ %123, %272 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  br label %377

377:                                              ; preds = %376, %270
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %376 ], [ %271, %270 ]
  %.2536 = phi i1 [ %.2435, %376 ], [ false, %270 ]
  %.24 = phi ptr [ %.23, %376 ], [ %119, %270 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  br label %378

378:                                              ; preds = %377, %268
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %377 ], [ %269, %268 ]
  %.2637 = phi i1 [ %.2536, %377 ], [ false, %268 ]
  %.25 = phi ptr [ %.24, %377 ], [ %115, %268 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  br label %379

379:                                              ; preds = %378, %266
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %378 ], [ %267, %266 ]
  %.2738 = phi i1 [ %.2637, %378 ], [ false, %266 ]
  %.26 = phi ptr [ %.25, %378 ], [ %111, %266 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %380

380:                                              ; preds = %264, %379
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %379 ], [ %265, %264 ]
  %.2839 = phi i1 [ %.2738, %379 ], [ false, %264 ]
  %.27 = phi ptr [ %.26, %379 ], [ %107, %264 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  %381 = icmp eq ptr %5, %.27
  %or.cond = select i1 %.2839, i1 true, i1 %381
  br i1 %or.cond, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %380, %.preheader
  %382 = phi ptr [ %383, %.preheader ], [ %.27, %380 ]
  %383 = getelementptr inbounds i8, ptr %382, i64 -40
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %383) #6
  %384 = icmp eq ptr %383, %5
  br i1 %384, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %.preheader, %.thread, %380
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn143 = phi { ptr, i32 } [ %263, %.thread ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %380 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.preheader ]
  call void @llvm.lifetime.end.p0(i64 1200, ptr nonnull %5) #6
  br label %425

385:                                              ; preds = %.lr.ph, %415
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %99) #6
  invoke void @_ZN12_GLOBAL__N_111parseOptionISt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDNS_7IsParamEESt4lessIS7_ESaIS8_IKS7_SB_EEEEE6OptioniPPcRiRKT_(ptr dead_on_unwind nonnull writable sret(%struct.Option) align 8 %99, i32 noundef %1, ptr noundef %2, ptr noundef nonnull align 4 dereferenceable(4) %98, ptr noundef nonnull align 8 dereferenceable(48) %4)
          to label %386 unwind label %390

386:                                              ; preds = %385
  %387 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEE2atERSD_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(32) %254)
          to label %388 unwind label %392

388:                                              ; preds = %386
  %389 = load i32, ptr %387, align 4, !tbaa !22
  switch i32 %389, label %414 [
    i32 0, label %394
    i32 6, label %395
    i32 7, label %396
    i32 12, label %397
    i32 16, label %398
    i32 11, label %399
    i32 14, label %402
    i32 8, label %405
    i32 4, label %406
    i32 15, label %407
    i32 5, label %408
  ]

390:                                              ; preds = %385
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %420

392:                                              ; preds = %414, %402, %399, %398, %397, %396, %395, %394, %386
  %393 = landingpad { ptr, i32 }
          cleanup
  br label %419

394:                                              ; preds = %388
  invoke void @_ZN10CmdOptions11optionCountER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %415 unwind label %392

395:                                              ; preds = %388
  invoke void @_ZN10CmdOptions14optionDistanceER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %415 unwind label %392

396:                                              ; preds = %388
  invoke void @_ZN10CmdOptions11optionPrintER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %415 unwind label %392

397:                                              ; preds = %388
  invoke void @_ZN10CmdOptions16optionStressTestER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %415 unwind label %392

398:                                              ; preds = %388
  invoke void @_ZN10CmdOptions13optionTimeoutER6Option(ptr noundef nonnull align 8 dereferenceable(115) %0, ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %415 unwind label %392

399:                                              ; preds = %388
  %400 = invoke noundef i32 @_ZNK6Option8getValueIiEET_v(ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %401 unwind label %392

401:                                              ; preds = %399
  store i32 %400, ptr %259, align 8, !tbaa !24
  br label %415

402:                                              ; preds = %388
  %403 = invoke noundef i32 @_ZNK6Option8getValueIiEET_v(ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %404 unwind label %392

404:                                              ; preds = %402
  store i32 %403, ptr %258, align 4, !tbaa !25
  br label %415

405:                                              ; preds = %388
  store i8 1, ptr %257, align 8, !tbaa !12
  br label %415

406:                                              ; preds = %388
  store i8 0, ptr %256, align 1, !tbaa !26
  br label %415

407:                                              ; preds = %388
  store i8 1, ptr %255, align 2, !tbaa !27
  br label %415

408:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #6
  %409 = invoke noundef i64 @_ZNK6Option8getValueImEET_v(ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %410 unwind label %412

410:                                              ; preds = %408
  store i64 %409, ptr %100, align 8, !tbaa !28
  invoke void @_ZN10primesieve6VectorImSaImEE9push_backEOm(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %411 unwind label %412

411:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #6
  br label %415

412:                                              ; preds = %410, %408
  %413 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #6
  br label %419

414:                                              ; preds = %388
  invoke void @_ZN10CmdOptions13setMainOptionE8OptionIDRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(115) %0, i32 noundef %389, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %415 unwind label %392

415:                                              ; preds = %414, %398, %397, %396, %395, %394, %411, %407, %406, %405, %404, %401
  call void @_ZN6OptionD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %99) #6
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %99) #6
  %416 = load i32, ptr %98, align 4, !tbaa !10
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr %98, align 4, !tbaa !10
  %418 = icmp slt i32 %417, %1
  br i1 %418, label %385, label %._crit_edge, !llvm.loop !29

419:                                              ; preds = %412, %392
  %.pn135 = phi { ptr, i32 } [ %393, %392 ], [ %413, %412 ]
  call void @_ZN6OptionD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %99) #6
  br label %420

420:                                              ; preds = %419, %390
  %.pn135.pn = phi { ptr, i32 } [ %.pn135, %419 ], [ %391, %390 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %99) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #6
  call void @_ZN10CmdOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(115) %0) #6
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #6
  br label %425

.thread144:                                       ; preds = %._crit_edge
  %421 = getelementptr inbounds i8, ptr %0, i64 113
  store i8 0, ptr %421, align 1, !tbaa !26
  br label %424

422:                                              ; preds = %._crit_edge
  %423 = getelementptr inbounds i8, ptr %0, i64 114
  store i8 1, ptr %423, align 2, !tbaa !27
  br label %424

424:                                              ; preds = %.thread144, %422
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) #6
  ret void

425:                                              ; preds = %420, %.loopexit
  %.pn135.pn.pn = phi { ptr, i32 } [ %.pn135.pn, %420 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn143, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) #6
  resume { ptr, i32 } %.pn135.pn.pn
}

declare void @_Z4helpi(i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden i64 @_ZSt9make_pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA3_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA8_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA11_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA7_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA12_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA9_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA19_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA14_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(14), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES_I8OptionIDN12_GLOBAL__N_17IsParamEEEC2IRA10_KcSA_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISH_SI_EEEbE4typeELb1EEEOSH_OSI_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #0 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_111parseOptionISt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDNS_7IsParamEESt4lessIS7_ESaIS8_IKS7_SB_EEEEE6OptioniPPcRiRKT_(ptr dead_on_unwind noalias writable sret(%struct.Option) align 8, i32 noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairI8OptionIDN12_GLOBAL__N_17IsParamEESt4lessIS5_ESaIS6_IKS5_SA_EEE2atERSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { alwaysinline mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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 = { 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 #6 = { 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 = !{!"_ZTS8OptionID", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = !{!13, !19, i64 112}
!13 = !{!"_ZTS10CmdOptions", !14, i64 0, !16, i64 24, !16, i64 56, !11, i64 88, !11, i64 92, !11, i64 96, !11, i64 100, !18, i64 104, !19, i64 112, !19, i64 113, !19, i64 114}
!14 = !{!"_ZTSN10primesieve6VectorImSaImEEE", !15, i64 0, !15, i64 8, !15, i64 16}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !17, i64 0, !18, i64 8, !7, i64 16}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !15, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!23, !6, i64 0}
!23 = !{!"_ZTSSt4pairI8OptionIDN12_GLOBAL__N_17IsParamEE", !6, i64 0, !7, i64 4}
!24 = !{!13, !11, i64 96}
!25 = !{!13, !11, i64 100}
!26 = !{!13, !19, i64 113}
!27 = !{!13, !19, i64 114}
!28 = !{!18, !18, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}


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