; LLVM IR from chensoft/libsocket :: lib/libchen/test/src/tool/cmd.ll (ZN24ToolCmdTest_General_Test8TestBodyEv)

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

%"class.chen::cmd" = type { i32, ptr, %"class.std::__cxx11::basic_string", %"class.std::unique_ptr", %"class.std::vector", ptr, %"class.std::vector", %"class.std::unordered_map", %"class.std::unordered_map.10" }
%"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::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_map.10" = type { %"class.std::_Hashtable.11" }
%"class.std::_Hashtable.11" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::allocator" = type { i8 }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.chen::any" = type { %"class.std::unique_ptr.24" }
%"class.std::unique_ptr.24" = type { %"struct.std::__uniq_ptr_data.25" }
%"struct.std::__uniq_ptr_data.25" = type { %"class.std::__uniq_ptr_impl.26" }
%"class.std::__uniq_ptr_impl.26" = type { %"class.std::tuple.27" }
%"class.std::tuple.27" = type { %"struct.std::_Tuple_impl.28" }
%"struct.std::_Tuple_impl.28" = type { %"struct.std::_Head_base.31" }
%"struct.std::_Head_base.31" = type { ptr }
%"struct.testing::internal::ConstCharPtr" = type { ptr }
%"class.testing::Message" = type { %"class.testing::internal::scoped_ptr" }
%"class.testing::internal::scoped_ptr" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.testing::AssertionResult" = type { i8, %"class.testing::internal::scoped_ptr.32" }
%"class.testing::internal::scoped_ptr.32" = type { ptr }
%"class.std::function.34" = type { %"class.std::_Function_base", ptr }
%class.anon = type { i8 }
%"class.std::function.36" = type { %"class.std::_Function_base", ptr }
%"class.std::function.39" = type { %"class.std::_Function_base", ptr }
%class.anon.41 = type { i8 }

@.str.3 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZTIN4chen3cmd5errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4chen3cmd13error_generalE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.32 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [8 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_app = external hidden unnamed_addr constant [4 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_version = external hidden unnamed_addr constant [8 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [14 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_start = external hidden unnamed_addr constant [6 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [22 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_port = external hidden unnamed_addr constant [12 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_addr = external hidden unnamed_addr constant [13 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_thread = external hidden unnamed_addr constant [9 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_four = external hidden unnamed_addr constant [2 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_s = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_100 = external hidden unnamed_addr constant [4 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_ip = external hidden unnamed_addr constant [10 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [22 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_module = external hidden unnamed_addr constant [7 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_update = external hidden unnamed_addr constant [7 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [16 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_a = external hidden unnamed_addr constant [4 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [168 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [159 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_speedx = external hidden unnamed_addr constant [9 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_x = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_editi = external hidden unnamed_addr constant [6 x i8], align 1
@_ZTIN4chen3cmd11error_parseE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.84 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.85 = external hidden unnamed_addr constant [89 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN24ToolCmdTest_General_Test8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.chen::cmd", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::function", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::function", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::function", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::function", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::function", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::function", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.chen::any", align 8
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.chen::any", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.chen::any", align 8
  %60 = alloca i32, align 4
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.chen::any", align 8
  %68 = alloca i32, align 4
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator", align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator", align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca %"class.chen::any", align 8
  %76 = alloca i8, align 1
  %77 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %78 = alloca i8, align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.chen::any", align 8
  %86 = alloca i32, align 4
  %87 = alloca ptr, align 8
  %88 = alloca %"class.testing::Message", align 8
  %89 = alloca %"class.testing::internal::AssertHelper", align 8
  %90 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %91 = alloca i8, align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca %"class.chen::any", align 8
  %99 = alloca ptr, align 8
  %100 = alloca %"class.testing::Message", align 8
  %101 = alloca %"class.testing::internal::AssertHelper", align 8
  %102 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %103 = alloca i8, align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator", align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator", align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator", align 1
  %110 = alloca %"class.chen::any", align 8
  %111 = alloca ptr, align 8
  %112 = alloca %"class.testing::Message", align 8
  %113 = alloca %"class.testing::internal::AssertHelper", align 8
  %114 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %115 = alloca i8, align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator", align 1
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator", align 1
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator", align 1
  %122 = alloca %"class.chen::any", align 8
  %123 = alloca ptr, align 8
  %124 = alloca %"class.testing::Message", align 8
  %125 = alloca %"class.testing::internal::AssertHelper", align 8
  %126 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %127 = alloca i8, align 1
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator", align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::allocator", align 1
  %134 = alloca %"class.chen::any", align 8
  %135 = alloca ptr, align 8
  %136 = alloca %"class.testing::Message", align 8
  %137 = alloca %"class.testing::internal::AssertHelper", align 8
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator", align 1
  %140 = alloca %"class.testing::Message", align 8
  %141 = alloca %"class.testing::internal::AssertHelper", align 8
  %142 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %143 = alloca i8, align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator", align 1
  %146 = alloca ptr, align 8
  %147 = alloca %"class.testing::Message", align 8
  %148 = alloca %"class.testing::internal::AssertHelper", align 8
  %149 = alloca %"class.testing::AssertionResult", align 8
  %150 = alloca i8, align 1
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::allocator", align 1
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::allocator", align 1
  %155 = alloca %"class.testing::Message", align 8
  %156 = alloca %"class.testing::internal::AssertHelper", align 8
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.testing::AssertionResult", align 8
  %159 = alloca i8, align 1
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator", align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator", align 1
  %164 = alloca %"class.testing::Message", align 8
  %165 = alloca %"class.testing::internal::AssertHelper", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::allocator", align 1
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::allocator", align 1
  %171 = alloca [4 x i8], align 1
  %172 = alloca [8 x i8], align 1
  %173 = alloca [3 x ptr], align 16
  %174 = alloca %"class.testing::AssertionResult", align 8
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca %"class.testing::Message", align 8
  %178 = alloca %"class.testing::internal::AssertHelper", align 8
  %179 = alloca %"class.testing::AssertionResult", align 8
  %180 = alloca ptr, align 8
  %181 = alloca ptr, align 8
  %182 = alloca %"class.testing::Message", align 8
  %183 = alloca %"class.testing::internal::AssertHelper", align 8
  %184 = alloca %"class.testing::AssertionResult", align 8
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.testing::Message", align 8
  %187 = alloca %"class.testing::internal::AssertHelper", align 8
  %188 = alloca %"class.testing::AssertionResult", align 8
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.testing::Message", align 8
  %191 = alloca %"class.testing::internal::AssertHelper", align 8
  %192 = alloca [6 x i8], align 1
  %193 = alloca [3 x ptr], align 16
  %194 = alloca %"class.testing::AssertionResult", align 8
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca %"class.testing::Message", align 8
  %197 = alloca %"class.testing::internal::AssertHelper", align 8
  %198 = alloca %"class.testing::AssertionResult", align 8
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::allocator", align 1
  %203 = alloca %"class.testing::Message", align 8
  %204 = alloca %"class.testing::internal::AssertHelper", align 8
  %205 = alloca %"class.testing::AssertionResult", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::allocator", align 1
  %209 = alloca %"class.testing::Message", align 8
  %210 = alloca %"class.testing::internal::AssertHelper", align 8
  %211 = alloca %"class.testing::AssertionResult", align 8
  %212 = alloca i8, align 1
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::allocator", align 1
  %215 = alloca %"class.testing::Message", align 8
  %216 = alloca %"class.testing::internal::AssertHelper", align 8
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.testing::AssertionResult", align 8
  %219 = alloca i8, align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::allocator", align 1
  %222 = alloca %"class.testing::Message", align 8
  %223 = alloca %"class.testing::internal::AssertHelper", align 8
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca [12 x i8], align 1
  %226 = alloca [13 x i8], align 1
  %227 = alloca [9 x i8], align 1
  %228 = alloca [2 x i8], align 1
  %229 = alloca [3 x i8], align 1
  %230 = alloca [4 x i8], align 1
  %231 = alloca [10 x i8], align 1
  %232 = alloca [10 x ptr], align 16
  %233 = alloca %"class.testing::AssertionResult", align 8
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.testing::Message", align 8
  %236 = alloca %"class.testing::internal::AssertHelper", align 8
  %237 = alloca %"class.testing::AssertionResult", align 8
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.std::allocator", align 1
  %242 = alloca %"class.testing::Message", align 8
  %243 = alloca %"class.testing::internal::AssertHelper", align 8
  %244 = alloca %"class.testing::AssertionResult", align 8
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::allocator", align 1
  %248 = alloca %"class.testing::Message", align 8
  %249 = alloca %"class.testing::internal::AssertHelper", align 8
  %250 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %251 = alloca i8, align 1
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::allocator", align 1
  %255 = alloca ptr, align 8
  %256 = alloca %"class.testing::Message", align 8
  %257 = alloca %"class.testing::internal::AssertHelper", align 8
  %258 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %259 = alloca i8, align 1
  %260 = alloca %"class.std::__cxx11::basic_string", align 8
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::allocator", align 1
  %263 = alloca ptr, align 8
  %264 = alloca %"class.testing::Message", align 8
  %265 = alloca %"class.testing::internal::AssertHelper", align 8
  %266 = alloca %"class.testing::AssertionResult", align 8
  %267 = alloca i8, align 1
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::allocator", align 1
  %270 = alloca %"class.testing::Message", align 8
  %271 = alloca %"class.testing::internal::AssertHelper", align 8
  %272 = alloca %"class.std::__cxx11::basic_string", align 8
  %273 = alloca %"class.testing::AssertionResult", align 8
  %274 = alloca i8, align 1
  %275 = alloca %"class.testing::Message", align 8
  %276 = alloca %"class.testing::internal::AssertHelper", align 8
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca [7 x i8], align 1
  %279 = alloca [7 x i8], align 1
  %280 = alloca [4 x ptr], align 16
  %281 = alloca %"class.testing::AssertionResult", align 8
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.testing::Message", align 8
  %284 = alloca %"class.testing::internal::AssertHelper", align 8
  %285 = alloca [4 x i8], align 1
  %286 = alloca [4 x ptr], align 16
  %287 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %288 = alloca i8, align 1
  %289 = alloca ptr, align 8
  %290 = alloca %"class.testing::Message", align 8
  %291 = alloca %"class.testing::internal::AssertHelper", align 8
  %292 = alloca [9 x i8], align 1
  %293 = alloca [4 x ptr], align 16
  %294 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %295 = alloca i8, align 1
  %296 = alloca ptr, align 8
  %297 = alloca %"class.testing::Message", align 8
  %298 = alloca %"class.testing::internal::AssertHelper", align 8
  %299 = alloca [3 x i8], align 1
  %300 = alloca [4 x ptr], align 16
  %301 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %302 = alloca i8, align 1
  %303 = alloca ptr, align 8
  %304 = alloca %"class.testing::Message", align 8
  %305 = alloca %"class.testing::internal::AssertHelper", align 8
  %306 = alloca [6 x i8], align 1
  %307 = alloca [3 x ptr], align 16
  %308 = alloca %"class.testing::Message", align 8
  %309 = alloca %"class.testing::internal::AssertHelper", align 8
  %310 = alloca ptr, align 8
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.std::__cxx11::basic_string", align 8
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::__cxx11::basic_string", align 8
  %315 = alloca %"class.std::allocator", align 1
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::__cxx11::basic_string", align 8
  %318 = alloca %"class.std::allocator", align 1
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::allocator", align 1
  %321 = alloca %"class.std::__cxx11::basic_string", align 8
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.std::allocator", align 1
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::allocator", align 1
  %326 = alloca %"class.std::function.34", align 8
  %327 = alloca %class.anon, align 1
  %328 = alloca %"class.std::function.36", align 8
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::allocator", align 1
  %331 = alloca %"class.std::function.39", align 8
  %332 = alloca %class.anon.41, align 1
  %333 = alloca %"class.std::function.36", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %334 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 224, ptr %3) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %335 unwind label %392

335:                                              ; preds = %1
  invoke void @_ZN4chen3cmdC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %336 unwind label %396

336:                                              ; preds = %335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %337 unwind label %401

337:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %338 unwind label %405

338:                                              ; preds = %337
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %12)
          to label %339 unwind label %409

339:                                              ; preds = %338
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %340 unwind label %415

340:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %341 unwind label %419

341:                                              ; preds = %340
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %17)
          to label %342 unwind label %423

342:                                              ; preds = %341
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %343 unwind label %429

343:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %344 unwind label %433

344:                                              ; preds = %343
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %22)
          to label %345 unwind label %437

345:                                              ; preds = %344
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %346 unwind label %443

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

347:                                              ; preds = %346
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %27)
          to label %348 unwind label %451

348:                                              ; preds = %347
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %349 unwind label %457

349:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %350 unwind label %461

350:                                              ; preds = %349
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %32)
          to label %351 unwind label %465

351:                                              ; preds = %350
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %352 unwind label %471

352:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %353 unwind label %475

353:                                              ; preds = %352
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %37)
          to label %354 unwind label %479

354:                                              ; preds = %353
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %355 unwind label %485

355:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %356 unwind label %489

356:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %357 unwind label %493

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store i32 80, ptr %45, align 4, !tbaa !9
  invoke void @_ZN4chen3anyC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %358 unwind label %497

358:                                              ; preds = %357
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %359 unwind label %501

359:                                              ; preds = %358
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %360 unwind label %509

360:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %361 unwind label %513

361:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %362 unwind label %517

362:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  invoke void @_ZN4chen3anyC2IA8_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 1 dereferenceable(8) @.str.22)
          to label %363 unwind label %521

363:                                              ; preds = %362
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %364 unwind label %525

364:                                              ; preds = %363
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %365 unwind label %533

365:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %366 unwind label %537

366:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %367 unwind label %541

367:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 1, ptr %60, align 4, !tbaa !9
  invoke void @_ZN4chen3anyC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %368 unwind label %545

368:                                              ; preds = %367
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %369 unwind label %549

369:                                              ; preds = %368
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %370 unwind label %557

370:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %371 unwind label %561

371:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %372 unwind label %565

372:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  store i32 1, ptr %68, align 4, !tbaa !9
  invoke void @_ZN4chen3anyC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %373 unwind label %569

373:                                              ; preds = %372
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %374 unwind label %573

374:                                              ; preds = %373
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %375 unwind label %581

375:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %376 unwind label %585

376:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %377 unwind label %589

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #9
  store i8 0, ptr %76, align 1, !tbaa !11
  invoke void @_ZN4chen3anyC2IbEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %378 unwind label %593

378:                                              ; preds = %377
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %379 unwind label %597

379:                                              ; preds = %378
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef @.str.4)
          to label %380 unwind label %605

380:                                              ; preds = %379
  %381 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %382 unwind label %605

382:                                              ; preds = %380
  br i1 %381, label %383, label %669

383:                                              ; preds = %382
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #9
  store i8 0, ptr %78, align 1, !tbaa !11
  %384 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %385 unwind label %609

385:                                              ; preds = %383
  br i1 %384, label %386, label %654

386:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %387 unwind label %613

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %388 unwind label %617

388:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %389 unwind label %621

389:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %390 unwind label %625

390:                                              ; preds = %389
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %391 unwind label %629

391:                                              ; preds = %390
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  br label %654

392:                                              ; preds = %1
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %6, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %7, align 4
  br label %400

396:                                              ; preds = %335
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %6, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  br label %400

400:                                              ; preds = %396, %392
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #9
  br label %2602

401:                                              ; preds = %336
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %6, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %7, align 4
  br label %414

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

409:                                              ; preds = %338
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %6, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  br label %413

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

414:                                              ; preds = %413, %401
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #9
  br label %2601

415:                                              ; preds = %339
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %6, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %7, align 4
  br label %428

419:                                              ; preds = %340
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %6, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %7, align 4
  br label %427

423:                                              ; preds = %341
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %6, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %427

427:                                              ; preds = %423, %419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %428

428:                                              ; preds = %427, %415
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  br label %2601

429:                                              ; preds = %342
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %6, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %7, align 4
  br label %442

433:                                              ; preds = %343
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %6, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %7, align 4
  br label %441

437:                                              ; preds = %344
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %6, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %441

441:                                              ; preds = %437, %433
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %442

442:                                              ; preds = %441, %429
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  br label %2601

443:                                              ; preds = %345
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %6, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %7, align 4
  br label %456

447:                                              ; preds = %346
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %6, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %7, align 4
  br label %455

451:                                              ; preds = %347
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %6, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %455

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

456:                                              ; preds = %455, %443
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  br label %2601

457:                                              ; preds = %348
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %6, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %7, align 4
  br label %470

461:                                              ; preds = %349
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %6, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %7, align 4
  br label %469

465:                                              ; preds = %350
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %6, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %469

469:                                              ; preds = %465, %461
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %470

470:                                              ; preds = %469, %457
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  br label %2601

471:                                              ; preds = %351
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %6, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %7, align 4
  br label %484

475:                                              ; preds = %352
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %6, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %7, align 4
  br label %483

479:                                              ; preds = %353
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %6, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %483

483:                                              ; preds = %479, %475
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %484

484:                                              ; preds = %483, %471
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  br label %2601

485:                                              ; preds = %354
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %6, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %7, align 4
  br label %508

489:                                              ; preds = %355
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %6, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %7, align 4
  br label %507

493:                                              ; preds = %356
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %6, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %7, align 4
  br label %506

497:                                              ; preds = %357
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %6, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %7, align 4
  br label %505

501:                                              ; preds = %358
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %6, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  br label %505

505:                                              ; preds = %501, %497
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %506

506:                                              ; preds = %505, %493
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %507

507:                                              ; preds = %506, %489
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %508

508:                                              ; preds = %507, %485
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  br label %2601

509:                                              ; preds = %359
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %6, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %7, align 4
  br label %532

513:                                              ; preds = %360
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %6, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %7, align 4
  br label %531

517:                                              ; preds = %361
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %6, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %7, align 4
  br label %530

521:                                              ; preds = %362
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %6, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %7, align 4
  br label %529

525:                                              ; preds = %363
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %6, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  br label %529

529:                                              ; preds = %525, %521
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %530

530:                                              ; preds = %529, %517
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %531

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

532:                                              ; preds = %531, %509
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  br label %2601

533:                                              ; preds = %364
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %6, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %7, align 4
  br label %556

537:                                              ; preds = %365
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %6, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %7, align 4
  br label %555

541:                                              ; preds = %366
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %6, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %7, align 4
  br label %554

545:                                              ; preds = %367
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %6, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %7, align 4
  br label %553

549:                                              ; preds = %368
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %6, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  br label %553

553:                                              ; preds = %549, %545
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %554

554:                                              ; preds = %553, %541
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %555

555:                                              ; preds = %554, %537
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %556

556:                                              ; preds = %555, %533
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  br label %2601

557:                                              ; preds = %369
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %6, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %7, align 4
  br label %580

561:                                              ; preds = %370
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %6, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %7, align 4
  br label %579

565:                                              ; preds = %371
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %6, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %7, align 4
  br label %578

569:                                              ; preds = %372
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %6, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %7, align 4
  br label %577

573:                                              ; preds = %373
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %6, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  br label %577

577:                                              ; preds = %573, %569
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  br label %578

578:                                              ; preds = %577, %565
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %579

579:                                              ; preds = %578, %561
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %580

580:                                              ; preds = %579, %557
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  br label %2601

581:                                              ; preds = %374
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %6, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %7, align 4
  br label %604

585:                                              ; preds = %375
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %6, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %7, align 4
  br label %603

589:                                              ; preds = %376
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %6, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %7, align 4
  br label %602

593:                                              ; preds = %377
  %594 = landingpad { ptr, i32 }
          cleanup
  %595 = extractvalue { ptr, i32 } %594, 0
  store ptr %595, ptr %6, align 8
  %596 = extractvalue { ptr, i32 } %594, 1
  store i32 %596, ptr %7, align 4
  br label %601

597:                                              ; preds = %378
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %6, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #9
  br label %601

601:                                              ; preds = %597, %593
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  br label %602

602:                                              ; preds = %601, %589
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  br label %603

603:                                              ; preds = %602, %585
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %604

604:                                              ; preds = %603, %581
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  br label %2601

605:                                              ; preds = %380, %379
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %6, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %7, align 4
  br label %703

609:                                              ; preds = %383
  %610 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %6, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %7, align 4
  br label %637

613:                                              ; preds = %386
  %614 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %6, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %7, align 4
  br label %636

617:                                              ; preds = %387
  %618 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %6, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %7, align 4
  br label %635

621:                                              ; preds = %388
  %622 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %6, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %7, align 4
  br label %634

625:                                              ; preds = %389
  %626 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %6, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %7, align 4
  br label %633

629:                                              ; preds = %390
  %630 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %6, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  br label %633

633:                                              ; preds = %629, %625
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  br label %634

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

635:                                              ; preds = %634, %617
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  br label %636

636:                                              ; preds = %635, %613
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  br label %637

637:                                              ; preds = %636, %609
  %638 = load i32, ptr %7, align 4
  %639 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd13error_generalE) #9
  %640 = icmp eq i32 %638, %639
  br i1 %640, label %641, label %650

641:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  %642 = load ptr, ptr %6, align 8
  %643 = call ptr @__cxa_begin_catch(ptr %642) #9
  store ptr %643, ptr %87, align 8
  store i8 1, ptr %78, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %644 unwind label %660

644:                                              ; preds = %641
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  br label %645

645:                                              ; preds = %654, %644
  %646 = load i8, ptr %78, align 1, !tbaa !11, !range !13, !noundef !14
  %647 = trunc i8 %646 to i1
  br i1 %647, label %664, label %648

648:                                              ; preds = %645
  %649 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %77, i32 0, i32 0
  store ptr @.str.33, ptr %649, align 8, !tbaa !15
  store i32 2, ptr %86, align 4
  br label %665

650:                                              ; preds = %637
  %651 = load ptr, ptr %6, align 8
  %652 = call ptr @__cxa_begin_catch(ptr %651) #9
  %653 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %77, i32 0, i32 0
  store ptr @.str.32, ptr %653, align 8, !tbaa !15
  store i32 2, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %655 unwind label %656

654:                                              ; preds = %391, %385
  br label %645

655:                                              ; preds = %650
  br label %665

656:                                              ; preds = %650
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %6, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %7, align 4
  br label %668

660:                                              ; preds = %641
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %6, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  br label %668

664:                                              ; preds = %645
  store i32 0, ptr %86, align 4
  br label %665

665:                                              ; preds = %664, %655, %648
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #9
  %666 = load i32, ptr %86, align 4
  switch i32 %666, label %2611 [
    i32 0, label %667
    i32 2, label %670
  ]

667:                                              ; preds = %665
  br label %690

668:                                              ; preds = %660, %656
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #9
  br label %703

669:                                              ; preds = %382
  br label %670

670:                                              ; preds = %669, %665
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %671 unwind label %676

671:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  %672 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %77, i32 0, i32 0
  %673 = load ptr, ptr %672, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %89, i32 noundef 1, ptr noundef @.str.3, i32 noundef 33, ptr noundef %673)
          to label %674 unwind label %680

674:                                              ; preds = %671
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %675 unwind label %684

675:                                              ; preds = %674
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %690

676:                                              ; preds = %670
  %677 = landingpad { ptr, i32 }
          cleanup
  %678 = extractvalue { ptr, i32 } %677, 0
  store ptr %678, ptr %6, align 8
  %679 = extractvalue { ptr, i32 } %677, 1
  store i32 %679, ptr %7, align 4
  br label %689

680:                                              ; preds = %671
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %6, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %7, align 4
  br label %688

684:                                              ; preds = %674
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %6, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  br label %688

688:                                              ; preds = %684, %680
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #9
  br label %689

689:                                              ; preds = %688, %676
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %703

690:                                              ; preds = %675, %667
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef @.str.4)
          to label %691 unwind label %704

691:                                              ; preds = %690
  %692 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %693 unwind label %704

693:                                              ; preds = %691
  br i1 %692, label %694, label %768

694:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #9
  store i8 0, ptr %91, align 1, !tbaa !11
  %695 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %696 unwind label %708

696:                                              ; preds = %694
  br i1 %695, label %697, label %753

697:                                              ; preds = %696
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %698 unwind label %712

698:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %699 unwind label %716

699:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %700 unwind label %720

700:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %701 unwind label %724

701:                                              ; preds = %700
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %702 unwind label %728

702:                                              ; preds = %701
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #9
  br label %753

703:                                              ; preds = %689, %668, %605
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  br label %2601

704:                                              ; preds = %691, %690
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %6, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %7, align 4
  br label %802

708:                                              ; preds = %694
  %709 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %6, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %7, align 4
  br label %736

712:                                              ; preds = %697
  %713 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %6, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %7, align 4
  br label %735

716:                                              ; preds = %698
  %717 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %718 = extractvalue { ptr, i32 } %717, 0
  store ptr %718, ptr %6, align 8
  %719 = extractvalue { ptr, i32 } %717, 1
  store i32 %719, ptr %7, align 4
  br label %734

720:                                              ; preds = %699
  %721 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %6, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %7, align 4
  br label %733

724:                                              ; preds = %700
  %725 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %6, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %7, align 4
  br label %732

728:                                              ; preds = %701
  %729 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %730 = extractvalue { ptr, i32 } %729, 0
  store ptr %730, ptr %6, align 8
  %731 = extractvalue { ptr, i32 } %729, 1
  store i32 %731, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #9
  br label %732

732:                                              ; preds = %728, %724
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  br label %733

733:                                              ; preds = %732, %720
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  br label %734

734:                                              ; preds = %733, %716
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  br label %735

735:                                              ; preds = %734, %712
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #9
  br label %736

736:                                              ; preds = %735, %708
  %737 = load i32, ptr %7, align 4
  %738 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd13error_generalE) #9
  %739 = icmp eq i32 %737, %738
  br i1 %739, label %740, label %749

740:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  %741 = load ptr, ptr %6, align 8
  %742 = call ptr @__cxa_begin_catch(ptr %741) #9
  store ptr %742, ptr %99, align 8
  store i8 1, ptr %91, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %743 unwind label %759

743:                                              ; preds = %740
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  br label %744

744:                                              ; preds = %753, %743
  %745 = load i8, ptr %91, align 1, !tbaa !11, !range !13, !noundef !14
  %746 = trunc i8 %745 to i1
  br i1 %746, label %763, label %747

747:                                              ; preds = %744
  %748 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %90, i32 0, i32 0
  store ptr @.str.35, ptr %748, align 8, !tbaa !15
  store i32 3, ptr %86, align 4
  br label %764

749:                                              ; preds = %736
  %750 = load ptr, ptr %6, align 8
  %751 = call ptr @__cxa_begin_catch(ptr %750) #9
  %752 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %90, i32 0, i32 0
  store ptr @.str.34, ptr %752, align 8, !tbaa !15
  store i32 3, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %754 unwind label %755

753:                                              ; preds = %702, %696
  br label %744

754:                                              ; preds = %749
  br label %764

755:                                              ; preds = %749
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %6, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %7, align 4
  br label %767

759:                                              ; preds = %740
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %6, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  br label %767

763:                                              ; preds = %744
  store i32 0, ptr %86, align 4
  br label %764

764:                                              ; preds = %763, %754, %747
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #9
  %765 = load i32, ptr %86, align 4
  switch i32 %765, label %2611 [
    i32 0, label %766
    i32 3, label %769
  ]

766:                                              ; preds = %764
  br label %789

767:                                              ; preds = %759, %755
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #9
  br label %802

768:                                              ; preds = %693
  br label %769

769:                                              ; preds = %768, %764
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %770 unwind label %775

770:                                              ; preds = %769
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #9
  %771 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %90, i32 0, i32 0
  %772 = load ptr, ptr %771, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %101, i32 noundef 1, ptr noundef @.str.3, i32 noundef 34, ptr noundef %772)
          to label %773 unwind label %779

773:                                              ; preds = %770
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %774 unwind label %783

774:                                              ; preds = %773
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  br label %789

775:                                              ; preds = %769
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %6, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %7, align 4
  br label %788

779:                                              ; preds = %770
  %780 = landingpad { ptr, i32 }
          cleanup
  %781 = extractvalue { ptr, i32 } %780, 0
  store ptr %781, ptr %6, align 8
  %782 = extractvalue { ptr, i32 } %780, 1
  store i32 %782, ptr %7, align 4
  br label %787

783:                                              ; preds = %773
  %784 = landingpad { ptr, i32 }
          cleanup
  %785 = extractvalue { ptr, i32 } %784, 0
  store ptr %785, ptr %6, align 8
  %786 = extractvalue { ptr, i32 } %784, 1
  store i32 %786, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  br label %787

787:                                              ; preds = %783, %779
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  br label %788

788:                                              ; preds = %787, %775
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  br label %802

789:                                              ; preds = %774, %766
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef @.str.4)
          to label %790 unwind label %803

790:                                              ; preds = %789
  %791 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %792 unwind label %803

792:                                              ; preds = %790
  br i1 %791, label %793, label %867

793:                                              ; preds = %792
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #9
  store i8 0, ptr %103, align 1, !tbaa !11
  %794 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %795 unwind label %807

795:                                              ; preds = %793
  br i1 %794, label %796, label %852

796:                                              ; preds = %795
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %797 unwind label %811

797:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %798 unwind label %815

798:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %799 unwind label %819

799:                                              ; preds = %798
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %800 unwind label %823

800:                                              ; preds = %799
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %801 unwind label %827

801:                                              ; preds = %800
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #9
  br label %852

802:                                              ; preds = %788, %767, %704
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  br label %2601

803:                                              ; preds = %790, %789
  %804 = landingpad { ptr, i32 }
          cleanup
  %805 = extractvalue { ptr, i32 } %804, 0
  store ptr %805, ptr %6, align 8
  %806 = extractvalue { ptr, i32 } %804, 1
  store i32 %806, ptr %7, align 4
  br label %901

807:                                              ; preds = %793
  %808 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %6, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %7, align 4
  br label %835

811:                                              ; preds = %796
  %812 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %6, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %7, align 4
  br label %834

815:                                              ; preds = %797
  %816 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %6, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %7, align 4
  br label %833

819:                                              ; preds = %798
  %820 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %6, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %7, align 4
  br label %832

823:                                              ; preds = %799
  %824 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %6, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %7, align 4
  br label %831

827:                                              ; preds = %800
  %828 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %829 = extractvalue { ptr, i32 } %828, 0
  store ptr %829, ptr %6, align 8
  %830 = extractvalue { ptr, i32 } %828, 1
  store i32 %830, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #9
  br label %831

831:                                              ; preds = %827, %823
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #9
  br label %832

832:                                              ; preds = %831, %819
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  br label %833

833:                                              ; preds = %832, %815
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #9
  br label %834

834:                                              ; preds = %833, %811
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #9
  br label %835

835:                                              ; preds = %834, %807
  %836 = load i32, ptr %7, align 4
  %837 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd13error_generalE) #9
  %838 = icmp eq i32 %836, %837
  br i1 %838, label %839, label %848

839:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  %840 = load ptr, ptr %6, align 8
  %841 = call ptr @__cxa_begin_catch(ptr %840) #9
  store ptr %841, ptr %111, align 8
  store i8 1, ptr %103, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %842 unwind label %858

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

843:                                              ; preds = %852, %842
  %844 = load i8, ptr %103, align 1, !tbaa !11, !range !13, !noundef !14
  %845 = trunc i8 %844 to i1
  br i1 %845, label %862, label %846

846:                                              ; preds = %843
  %847 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %102, i32 0, i32 0
  store ptr @.str.39, ptr %847, align 8, !tbaa !15
  store i32 4, ptr %86, align 4
  br label %863

848:                                              ; preds = %835
  %849 = load ptr, ptr %6, align 8
  %850 = call ptr @__cxa_begin_catch(ptr %849) #9
  %851 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %102, i32 0, i32 0
  store ptr @.str.38, ptr %851, align 8, !tbaa !15
  store i32 4, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %853 unwind label %854

852:                                              ; preds = %801, %795
  br label %843

853:                                              ; preds = %848
  br label %863

854:                                              ; preds = %848
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %6, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %7, align 4
  br label %866

858:                                              ; preds = %839
  %859 = landingpad { ptr, i32 }
          cleanup
  %860 = extractvalue { ptr, i32 } %859, 0
  store ptr %860, ptr %6, align 8
  %861 = extractvalue { ptr, i32 } %859, 1
  store i32 %861, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %866

862:                                              ; preds = %843
  store i32 0, ptr %86, align 4
  br label %863

863:                                              ; preds = %862, %853, %846
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #9
  %864 = load i32, ptr %86, align 4
  switch i32 %864, label %2611 [
    i32 0, label %865
    i32 4, label %868
  ]

865:                                              ; preds = %863
  br label %888

866:                                              ; preds = %858, %854
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #9
  br label %901

867:                                              ; preds = %792
  br label %868

868:                                              ; preds = %867, %863
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %869 unwind label %874

869:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #9
  %870 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %102, i32 0, i32 0
  %871 = load ptr, ptr %870, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %113, i32 noundef 1, ptr noundef @.str.3, i32 noundef 35, ptr noundef %871)
          to label %872 unwind label %878

872:                                              ; preds = %869
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %873 unwind label %882

873:                                              ; preds = %872
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  br label %888

874:                                              ; preds = %868
  %875 = landingpad { ptr, i32 }
          cleanup
  %876 = extractvalue { ptr, i32 } %875, 0
  store ptr %876, ptr %6, align 8
  %877 = extractvalue { ptr, i32 } %875, 1
  store i32 %877, ptr %7, align 4
  br label %887

878:                                              ; preds = %869
  %879 = landingpad { ptr, i32 }
          cleanup
  %880 = extractvalue { ptr, i32 } %879, 0
  store ptr %880, ptr %6, align 8
  %881 = extractvalue { ptr, i32 } %879, 1
  store i32 %881, ptr %7, align 4
  br label %886

882:                                              ; preds = %872
  %883 = landingpad { ptr, i32 }
          cleanup
  %884 = extractvalue { ptr, i32 } %883, 0
  store ptr %884, ptr %6, align 8
  %885 = extractvalue { ptr, i32 } %883, 1
  store i32 %885, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #9
  br label %886

886:                                              ; preds = %882, %878
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #9
  br label %887

887:                                              ; preds = %886, %874
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  br label %901

888:                                              ; preds = %873, %865
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef @.str.4)
          to label %889 unwind label %902

889:                                              ; preds = %888
  %890 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %891 unwind label %902

891:                                              ; preds = %889
  br i1 %890, label %892, label %966

892:                                              ; preds = %891
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #9
  store i8 0, ptr %115, align 1, !tbaa !11
  %893 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %894 unwind label %906

894:                                              ; preds = %892
  br i1 %893, label %895, label %951

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

896:                                              ; preds = %895
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %897 unwind label %914

897:                                              ; preds = %896
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %898 unwind label %918

898:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %899 unwind label %922

899:                                              ; preds = %898
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %900 unwind label %926

900:                                              ; preds = %899
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #9
  br label %951

901:                                              ; preds = %887, %866, %803
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %2601

902:                                              ; preds = %889, %888
  %903 = landingpad { ptr, i32 }
          cleanup
  %904 = extractvalue { ptr, i32 } %903, 0
  store ptr %904, ptr %6, align 8
  %905 = extractvalue { ptr, i32 } %903, 1
  store i32 %905, ptr %7, align 4
  br label %1000

906:                                              ; preds = %892
  %907 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %908 = extractvalue { ptr, i32 } %907, 0
  store ptr %908, ptr %6, align 8
  %909 = extractvalue { ptr, i32 } %907, 1
  store i32 %909, ptr %7, align 4
  br label %934

910:                                              ; preds = %895
  %911 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %912 = extractvalue { ptr, i32 } %911, 0
  store ptr %912, ptr %6, align 8
  %913 = extractvalue { ptr, i32 } %911, 1
  store i32 %913, ptr %7, align 4
  br label %933

914:                                              ; preds = %896
  %915 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %916 = extractvalue { ptr, i32 } %915, 0
  store ptr %916, ptr %6, align 8
  %917 = extractvalue { ptr, i32 } %915, 1
  store i32 %917, ptr %7, align 4
  br label %932

918:                                              ; preds = %897
  %919 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %920 = extractvalue { ptr, i32 } %919, 0
  store ptr %920, ptr %6, align 8
  %921 = extractvalue { ptr, i32 } %919, 1
  store i32 %921, ptr %7, align 4
  br label %931

922:                                              ; preds = %898
  %923 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %924 = extractvalue { ptr, i32 } %923, 0
  store ptr %924, ptr %6, align 8
  %925 = extractvalue { ptr, i32 } %923, 1
  store i32 %925, ptr %7, align 4
  br label %930

926:                                              ; preds = %899
  %927 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %928 = extractvalue { ptr, i32 } %927, 0
  store ptr %928, ptr %6, align 8
  %929 = extractvalue { ptr, i32 } %927, 1
  store i32 %929, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #9
  br label %930

930:                                              ; preds = %926, %922
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #9
  br label %931

931:                                              ; preds = %930, %918
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  br label %932

932:                                              ; preds = %931, %914
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  br label %933

933:                                              ; preds = %932, %910
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #9
  br label %934

934:                                              ; preds = %933, %906
  %935 = load i32, ptr %7, align 4
  %936 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd13error_generalE) #9
  %937 = icmp eq i32 %935, %936
  br i1 %937, label %938, label %947

938:                                              ; preds = %934
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #9
  %939 = load ptr, ptr %6, align 8
  %940 = call ptr @__cxa_begin_catch(ptr %939) #9
  store ptr %940, ptr %123, align 8
  store i8 1, ptr %115, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %941 unwind label %957

941:                                              ; preds = %938
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  br label %942

942:                                              ; preds = %951, %941
  %943 = load i8, ptr %115, align 1, !tbaa !11, !range !13, !noundef !14
  %944 = trunc i8 %943 to i1
  br i1 %944, label %961, label %945

945:                                              ; preds = %942
  %946 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %114, i32 0, i32 0
  store ptr @.str.41, ptr %946, align 8, !tbaa !15
  store i32 5, ptr %86, align 4
  br label %962

947:                                              ; preds = %934
  %948 = load ptr, ptr %6, align 8
  %949 = call ptr @__cxa_begin_catch(ptr %948) #9
  %950 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %114, i32 0, i32 0
  store ptr @.str.40, ptr %950, align 8, !tbaa !15
  store i32 5, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %952 unwind label %953

951:                                              ; preds = %900, %894
  br label %942

952:                                              ; preds = %947
  br label %962

953:                                              ; preds = %947
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %6, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %7, align 4
  br label %965

957:                                              ; preds = %938
  %958 = landingpad { ptr, i32 }
          cleanup
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %6, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  br label %965

961:                                              ; preds = %942
  store i32 0, ptr %86, align 4
  br label %962

962:                                              ; preds = %961, %952, %945
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #9
  %963 = load i32, ptr %86, align 4
  switch i32 %963, label %2611 [
    i32 0, label %964
    i32 5, label %967
  ]

964:                                              ; preds = %962
  br label %987

965:                                              ; preds = %957, %953
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #9
  br label %1000

966:                                              ; preds = %891
  br label %967

967:                                              ; preds = %966, %962
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %968 unwind label %973

968:                                              ; preds = %967
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #9
  %969 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %114, i32 0, i32 0
  %970 = load ptr, ptr %969, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %125, i32 noundef 1, ptr noundef @.str.3, i32 noundef 36, ptr noundef %970)
          to label %971 unwind label %977

971:                                              ; preds = %968
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %972 unwind label %981

972:                                              ; preds = %971
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  br label %987

973:                                              ; preds = %967
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %6, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %7, align 4
  br label %986

977:                                              ; preds = %968
  %978 = landingpad { ptr, i32 }
          cleanup
  %979 = extractvalue { ptr, i32 } %978, 0
  store ptr %979, ptr %6, align 8
  %980 = extractvalue { ptr, i32 } %978, 1
  store i32 %980, ptr %7, align 4
  br label %985

981:                                              ; preds = %971
  %982 = landingpad { ptr, i32 }
          cleanup
  %983 = extractvalue { ptr, i32 } %982, 0
  store ptr %983, ptr %6, align 8
  %984 = extractvalue { ptr, i32 } %982, 1
  store i32 %984, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #9
  br label %985

985:                                              ; preds = %981, %977
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #9
  br label %986

986:                                              ; preds = %985, %973
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  br label %1000

987:                                              ; preds = %972, %964
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef @.str.4)
          to label %988 unwind label %1001

988:                                              ; preds = %987
  %989 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %990 unwind label %1001

990:                                              ; preds = %988
  br i1 %989, label %991, label %1065

991:                                              ; preds = %990
  call void @llvm.lifetime.start.p0(i64 1, ptr %127) #9
  store i8 0, ptr %127, align 1, !tbaa !11
  %992 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %993 unwind label %1005

993:                                              ; preds = %991
  br i1 %992, label %994, label %1050

994:                                              ; preds = %993
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %995 unwind label %1009

995:                                              ; preds = %994
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %996 unwind label %1013

996:                                              ; preds = %995
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %133) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %997 unwind label %1017

997:                                              ; preds = %996
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %998 unwind label %1021

998:                                              ; preds = %997
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(8) %134)
          to label %999 unwind label %1025

999:                                              ; preds = %998
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #9
  br label %1050

1000:                                             ; preds = %986, %965, %902
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  br label %2601

1001:                                             ; preds = %988, %987
  %1002 = landingpad { ptr, i32 }
          cleanup
  %1003 = extractvalue { ptr, i32 } %1002, 0
  store ptr %1003, ptr %6, align 8
  %1004 = extractvalue { ptr, i32 } %1002, 1
  store i32 %1004, ptr %7, align 4
  br label %1095

1005:                                             ; preds = %991
  %1006 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %6, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %7, align 4
  br label %1033

1009:                                             ; preds = %994
  %1010 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1011 = extractvalue { ptr, i32 } %1010, 0
  store ptr %1011, ptr %6, align 8
  %1012 = extractvalue { ptr, i32 } %1010, 1
  store i32 %1012, ptr %7, align 4
  br label %1032

1013:                                             ; preds = %995
  %1014 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1015 = extractvalue { ptr, i32 } %1014, 0
  store ptr %1015, ptr %6, align 8
  %1016 = extractvalue { ptr, i32 } %1014, 1
  store i32 %1016, ptr %7, align 4
  br label %1031

1017:                                             ; preds = %996
  %1018 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %6, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %7, align 4
  br label %1030

1021:                                             ; preds = %997
  %1022 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1023 = extractvalue { ptr, i32 } %1022, 0
  store ptr %1023, ptr %6, align 8
  %1024 = extractvalue { ptr, i32 } %1022, 1
  store i32 %1024, ptr %7, align 4
  br label %1029

1025:                                             ; preds = %998
  %1026 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1027 = extractvalue { ptr, i32 } %1026, 0
  store ptr %1027, ptr %6, align 8
  %1028 = extractvalue { ptr, i32 } %1026, 1
  store i32 %1028, ptr %7, align 4
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #9
  br label %1029

1029:                                             ; preds = %1025, %1021
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #9
  br label %1030

1030:                                             ; preds = %1029, %1017
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  br label %1031

1031:                                             ; preds = %1030, %1013
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #9
  br label %1032

1032:                                             ; preds = %1031, %1009
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #9
  br label %1033

1033:                                             ; preds = %1032, %1005
  %1034 = load i32, ptr %7, align 4
  %1035 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd13error_generalE) #9
  %1036 = icmp eq i32 %1034, %1035
  br i1 %1036, label %1037, label %1046

1037:                                             ; preds = %1033
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #9
  %1038 = load ptr, ptr %6, align 8
  %1039 = call ptr @__cxa_begin_catch(ptr %1038) #9
  store ptr %1039, ptr %135, align 8
  store i8 1, ptr %127, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %1040 unwind label %1056

1040:                                             ; preds = %1037
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #9
  br label %1041

1041:                                             ; preds = %1050, %1040
  %1042 = load i8, ptr %127, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc i8 %1042 to i1
  br i1 %1043, label %1060, label %1044

1044:                                             ; preds = %1041
  %1045 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %126, i32 0, i32 0
  store ptr @.str.43, ptr %1045, align 8, !tbaa !15
  store i32 6, ptr %86, align 4
  br label %1061

1046:                                             ; preds = %1033
  %1047 = load ptr, ptr %6, align 8
  %1048 = call ptr @__cxa_begin_catch(ptr %1047) #9
  %1049 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %126, i32 0, i32 0
  store ptr @.str.42, ptr %1049, align 8, !tbaa !15
  store i32 6, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %1051 unwind label %1052

1050:                                             ; preds = %999, %993
  br label %1041

1051:                                             ; preds = %1046
  br label %1061

1052:                                             ; preds = %1046
  %1053 = landingpad { ptr, i32 }
          cleanup
  %1054 = extractvalue { ptr, i32 } %1053, 0
  store ptr %1054, ptr %6, align 8
  %1055 = extractvalue { ptr, i32 } %1053, 1
  store i32 %1055, ptr %7, align 4
  br label %1064

1056:                                             ; preds = %1037
  %1057 = landingpad { ptr, i32 }
          cleanup
  %1058 = extractvalue { ptr, i32 } %1057, 0
  store ptr %1058, ptr %6, align 8
  %1059 = extractvalue { ptr, i32 } %1057, 1
  store i32 %1059, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #9
  br label %1064

1060:                                             ; preds = %1041
  store i32 0, ptr %86, align 4
  br label %1061

1061:                                             ; preds = %1060, %1051, %1044
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #9
  %1062 = load i32, ptr %86, align 4
  switch i32 %1062, label %2611 [
    i32 0, label %1063
    i32 6, label %1066
  ]

1063:                                             ; preds = %1061
  br label %1086

1064:                                             ; preds = %1056, %1052
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #9
  br label %1095

1065:                                             ; preds = %990
  br label %1066

1066:                                             ; preds = %1065, %1061
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1067 unwind label %1072

1067:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #9
  %1068 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %126, i32 0, i32 0
  %1069 = load ptr, ptr %1068, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %137, i32 noundef 1, ptr noundef @.str.3, i32 noundef 37, ptr noundef %1069)
          to label %1070 unwind label %1076

1070:                                             ; preds = %1067
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1071 unwind label %1080

1071:                                             ; preds = %1070
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #9
  br label %1086

1072:                                             ; preds = %1066
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %6, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %7, align 4
  br label %1085

1076:                                             ; preds = %1067
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %6, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %7, align 4
  br label %1084

1080:                                             ; preds = %1070
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %6, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #9
  br label %1084

1084:                                             ; preds = %1080, %1076
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #9
  br label %1085

1085:                                             ; preds = %1084, %1072
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #9
  br label %1095

1086:                                             ; preds = %1071, %1063
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #9
  %1087 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1088 unwind label %1096

1088:                                             ; preds = %1086
  br i1 %1087, label %1089, label %1119

1089:                                             ; preds = %1088
  %1090 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1091 unwind label %1100

1091:                                             ; preds = %1089
  br i1 %1090, label %1092, label %1116

1092:                                             ; preds = %1091
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %1093 unwind label %1104

1093:                                             ; preds = %1092
  invoke void @_ZN4chen3cmd6changeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %138)
          to label %1094 unwind label %1108

1094:                                             ; preds = %1093
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #9
  br label %1116

1095:                                             ; preds = %1085, %1064, %1001
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #9
  br label %2601

1096:                                             ; preds = %1113, %1086
  %1097 = landingpad { ptr, i32 }
          cleanup
  %1098 = extractvalue { ptr, i32 } %1097, 0
  store ptr %1098, ptr %6, align 8
  %1099 = extractvalue { ptr, i32 } %1097, 1
  store i32 %1099, ptr %7, align 4
  br label %2601

1100:                                             ; preds = %1089
  %1101 = landingpad { ptr, i32 }
          catch ptr null
  %1102 = extractvalue { ptr, i32 } %1101, 0
  store ptr %1102, ptr %6, align 8
  %1103 = extractvalue { ptr, i32 } %1101, 1
  store i32 %1103, ptr %7, align 4
  br label %1113

1104:                                             ; preds = %1092
  %1105 = landingpad { ptr, i32 }
          catch ptr null
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %6, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %7, align 4
  br label %1112

1108:                                             ; preds = %1093
  %1109 = landingpad { ptr, i32 }
          catch ptr null
  %1110 = extractvalue { ptr, i32 } %1109, 0
  store ptr %1110, ptr %6, align 8
  %1111 = extractvalue { ptr, i32 } %1109, 1
  store i32 %1111, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #9
  br label %1112

1112:                                             ; preds = %1108, %1104
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #9
  br label %1113

1113:                                             ; preds = %1112, %1100
  %1114 = load ptr, ptr %6, align 8
  %1115 = call ptr @__cxa_begin_catch(ptr %1114) #9
  store i32 7, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %1117 unwind label %1096

1116:                                             ; preds = %1094, %1091
  br label %1118

1117:                                             ; preds = %1113
  br label %1120

1118:                                             ; preds = %1116
  br label %1138

1119:                                             ; preds = %1088
  br label %1120

1120:                                             ; preds = %1119, %1117
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %1121 unwind label %1124

1121:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %141, i32 noundef 1, ptr noundef @.str.3, i32 noundef 39, ptr noundef @.str.44)
          to label %1122 unwind label %1128

1122:                                             ; preds = %1121
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %1123 unwind label %1132

1123:                                             ; preds = %1122
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #9
  br label %1138

1124:                                             ; preds = %1120
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %6, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %7, align 4
  br label %1137

1128:                                             ; preds = %1121
  %1129 = landingpad { ptr, i32 }
          cleanup
  %1130 = extractvalue { ptr, i32 } %1129, 0
  store ptr %1130, ptr %6, align 8
  %1131 = extractvalue { ptr, i32 } %1129, 1
  store i32 %1131, ptr %7, align 4
  br label %1136

1132:                                             ; preds = %1122
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %6, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #9
  br label %1136

1136:                                             ; preds = %1132, %1128
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #9
  br label %1137

1137:                                             ; preds = %1136, %1124
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #9
  br label %2601

1138:                                             ; preds = %1123, %1118
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef @.str.4)
          to label %1139 unwind label %1148

1139:                                             ; preds = %1138
  %1140 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %1141 unwind label %1148

1141:                                             ; preds = %1139
  br i1 %1140, label %1142, label %1197

1142:                                             ; preds = %1141
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #9
  store i8 0, ptr %143, align 1, !tbaa !11
  %1143 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1144 unwind label %1152

1144:                                             ; preds = %1142
  br i1 %1143, label %1145, label %1182

1145:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 32, ptr %144) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %145) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %1146 unwind label %1156

1146:                                             ; preds = %1145
  invoke void @_ZN4chen3cmd6changeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %144)
          to label %1147 unwind label %1160

1147:                                             ; preds = %1146
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #9
  br label %1182

1148:                                             ; preds = %1139, %1138
  %1149 = landingpad { ptr, i32 }
          cleanup
  %1150 = extractvalue { ptr, i32 } %1149, 0
  store ptr %1150, ptr %6, align 8
  %1151 = extractvalue { ptr, i32 } %1149, 1
  store i32 %1151, ptr %7, align 4
  br label %1229

1152:                                             ; preds = %1142
  %1153 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1154 = extractvalue { ptr, i32 } %1153, 0
  store ptr %1154, ptr %6, align 8
  %1155 = extractvalue { ptr, i32 } %1153, 1
  store i32 %1155, ptr %7, align 4
  br label %1165

1156:                                             ; preds = %1145
  %1157 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1158 = extractvalue { ptr, i32 } %1157, 0
  store ptr %1158, ptr %6, align 8
  %1159 = extractvalue { ptr, i32 } %1157, 1
  store i32 %1159, ptr %7, align 4
  br label %1164

1160:                                             ; preds = %1146
  %1161 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %6, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #9
  br label %1164

1164:                                             ; preds = %1160, %1156
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #9
  br label %1165

1165:                                             ; preds = %1164, %1152
  %1166 = load i32, ptr %7, align 4
  %1167 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd13error_generalE) #9
  %1168 = icmp eq i32 %1166, %1167
  br i1 %1168, label %1169, label %1178

1169:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #9
  %1170 = load ptr, ptr %6, align 8
  %1171 = call ptr @__cxa_begin_catch(ptr %1170) #9
  store ptr %1171, ptr %146, align 8
  store i8 1, ptr %143, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %1172 unwind label %1188

1172:                                             ; preds = %1169
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #9
  br label %1173

1173:                                             ; preds = %1182, %1172
  %1174 = load i8, ptr %143, align 1, !tbaa !11, !range !13, !noundef !14
  %1175 = trunc i8 %1174 to i1
  br i1 %1175, label %1192, label %1176

1176:                                             ; preds = %1173
  %1177 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %142, i32 0, i32 0
  store ptr @.str.47, ptr %1177, align 8, !tbaa !15
  store i32 8, ptr %86, align 4
  br label %1193

1178:                                             ; preds = %1165
  %1179 = load ptr, ptr %6, align 8
  %1180 = call ptr @__cxa_begin_catch(ptr %1179) #9
  %1181 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %142, i32 0, i32 0
  store ptr @.str.46, ptr %1181, align 8, !tbaa !15
  store i32 8, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %1183 unwind label %1184

1182:                                             ; preds = %1147, %1144
  br label %1173

1183:                                             ; preds = %1178
  br label %1193

1184:                                             ; preds = %1178
  %1185 = landingpad { ptr, i32 }
          cleanup
  %1186 = extractvalue { ptr, i32 } %1185, 0
  store ptr %1186, ptr %6, align 8
  %1187 = extractvalue { ptr, i32 } %1185, 1
  store i32 %1187, ptr %7, align 4
  br label %1196

1188:                                             ; preds = %1169
  %1189 = landingpad { ptr, i32 }
          cleanup
  %1190 = extractvalue { ptr, i32 } %1189, 0
  store ptr %1190, ptr %6, align 8
  %1191 = extractvalue { ptr, i32 } %1189, 1
  store i32 %1191, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #9
  br label %1196

1192:                                             ; preds = %1173
  store i32 0, ptr %86, align 4
  br label %1193

1193:                                             ; preds = %1192, %1183, %1176
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #9
  %1194 = load i32, ptr %86, align 4
  switch i32 %1194, label %2611 [
    i32 0, label %1195
    i32 8, label %1198
  ]

1195:                                             ; preds = %1193
  br label %1218

1196:                                             ; preds = %1188, %1184
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #9
  br label %1229

1197:                                             ; preds = %1141
  br label %1198

1198:                                             ; preds = %1197, %1193
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %1199 unwind label %1204

1199:                                             ; preds = %1198
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #9
  %1200 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %142, i32 0, i32 0
  %1201 = load ptr, ptr %1200, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %148, i32 noundef 1, ptr noundef @.str.3, i32 noundef 40, ptr noundef %1201)
          to label %1202 unwind label %1208

1202:                                             ; preds = %1199
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %1203 unwind label %1212

1203:                                             ; preds = %1202
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #9
  br label %1218

1204:                                             ; preds = %1198
  %1205 = landingpad { ptr, i32 }
          cleanup
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %6, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %7, align 4
  br label %1217

1208:                                             ; preds = %1199
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %6, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %7, align 4
  br label %1216

1212:                                             ; preds = %1202
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %6, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #9
  br label %1216

1216:                                             ; preds = %1212, %1208
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #9
  br label %1217

1217:                                             ; preds = %1216, %1204
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #9
  br label %1229

1218:                                             ; preds = %1203, %1195
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %149) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %150) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %152) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %1219 unwind label %1230

1219:                                             ; preds = %1218
  call void @llvm.lifetime.start.p0(i64 32, ptr %153) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %154) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %154)
          to label %1220 unwind label %1234

1220:                                             ; preds = %1219
  %1221 = invoke noundef zeroext i1 @_ZNK4chen3cmd5existERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull align 8 dereferenceable(32) %153)
          to label %1222 unwind label %1238

1222:                                             ; preds = %1220
  %1223 = xor i1 %1221, true
  %1224 = zext i1 %1223 to i8
  store i8 %1224, ptr %150, align 1, !tbaa !11
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef nonnull align 1 dereferenceable(1) %150, ptr noundef null)
          to label %1225 unwind label %1238

1225:                                             ; preds = %1222
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %150) #9
  %1226 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %149)
          to label %1227 unwind label %1244

1227:                                             ; preds = %1225
  br i1 %1226, label %1228, label %1248

1228:                                             ; preds = %1227
  br label %1273

1229:                                             ; preds = %1217, %1196, %1148
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #9
  br label %2601

1230:                                             ; preds = %1218
  %1231 = landingpad { ptr, i32 }
          cleanup
  %1232 = extractvalue { ptr, i32 } %1231, 0
  store ptr %1232, ptr %6, align 8
  %1233 = extractvalue { ptr, i32 } %1231, 1
  store i32 %1233, ptr %7, align 4
  br label %1243

1234:                                             ; preds = %1219
  %1235 = landingpad { ptr, i32 }
          cleanup
  %1236 = extractvalue { ptr, i32 } %1235, 0
  store ptr %1236, ptr %6, align 8
  %1237 = extractvalue { ptr, i32 } %1235, 1
  store i32 %1237, ptr %7, align 4
  br label %1242

1238:                                             ; preds = %1222, %1220
  %1239 = landingpad { ptr, i32 }
          cleanup
  %1240 = extractvalue { ptr, i32 } %1239, 0
  store ptr %1240, ptr %6, align 8
  %1241 = extractvalue { ptr, i32 } %1239, 1
  store i32 %1241, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  br label %1242

1242:                                             ; preds = %1238, %1234
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  br label %1243

1243:                                             ; preds = %1242, %1230
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %150) #9
  br label %1285

1244:                                             ; preds = %1225
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %6, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %7, align 4
  br label %1284

1248:                                             ; preds = %1227
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %155)
          to label %1249 unwind label %1254

1249:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %157) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 8 dereferenceable(16) %149, ptr noundef @.str.48, ptr noundef @.str.49, ptr noundef @.str.50)
          to label %1250 unwind label %1258

1250:                                             ; preds = %1249
  %1251 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %156, i32 noundef 1, ptr noundef @.str.3, i32 noundef 42, ptr noundef %1251)
          to label %1252 unwind label %1262

1252:                                             ; preds = %1250
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull align 8 dereferenceable(8) %155)
          to label %1253 unwind label %1266

1253:                                             ; preds = %1252
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #9
  br label %1273

1254:                                             ; preds = %1248
  %1255 = landingpad { ptr, i32 }
          cleanup
  %1256 = extractvalue { ptr, i32 } %1255, 0
  store ptr %1256, ptr %6, align 8
  %1257 = extractvalue { ptr, i32 } %1255, 1
  store i32 %1257, ptr %7, align 4
  br label %1272

1258:                                             ; preds = %1249
  %1259 = landingpad { ptr, i32 }
          cleanup
  %1260 = extractvalue { ptr, i32 } %1259, 0
  store ptr %1260, ptr %6, align 8
  %1261 = extractvalue { ptr, i32 } %1259, 1
  store i32 %1261, ptr %7, align 4
  br label %1271

1262:                                             ; preds = %1250
  %1263 = landingpad { ptr, i32 }
          cleanup
  %1264 = extractvalue { ptr, i32 } %1263, 0
  store ptr %1264, ptr %6, align 8
  %1265 = extractvalue { ptr, i32 } %1263, 1
  store i32 %1265, ptr %7, align 4
  br label %1270

1266:                                             ; preds = %1252
  %1267 = landingpad { ptr, i32 }
          cleanup
  %1268 = extractvalue { ptr, i32 } %1267, 0
  store ptr %1268, ptr %6, align 8
  %1269 = extractvalue { ptr, i32 } %1267, 1
  store i32 %1269, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #9
  br label %1270

1270:                                             ; preds = %1266, %1262
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  br label %1271

1271:                                             ; preds = %1270, %1258
  call void @llvm.lifetime.end.p0(i64 32, ptr %157) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #9
  br label %1272

1272:                                             ; preds = %1271, %1254
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #9
  br label %1284

1273:                                             ; preds = %1253, %1228
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %149) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %149) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %158) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %161) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %1274 unwind label %1286

1274:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef @.str.51, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %1275 unwind label %1290

1275:                                             ; preds = %1274
  %1276 = invoke noundef zeroext i1 @_ZNK4chen3cmd5existERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %1277 unwind label %1294

1277:                                             ; preds = %1275
  %1278 = xor i1 %1276, true
  %1279 = zext i1 %1278 to i8
  store i8 %1279, ptr %159, align 1, !tbaa !11
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull align 1 dereferenceable(1) %159, ptr noundef null)
          to label %1280 unwind label %1294

1280:                                             ; preds = %1277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #9
  %1281 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %158)
          to label %1282 unwind label %1300

1282:                                             ; preds = %1280
  br i1 %1281, label %1283, label %1304

1283:                                             ; preds = %1282
  br label %1329

1284:                                             ; preds = %1272, %1244
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %149) #9
  br label %1285

1285:                                             ; preds = %1284, %1243
  call void @llvm.lifetime.end.p0(i64 16, ptr %149) #9
  br label %2601

1286:                                             ; preds = %1273
  %1287 = landingpad { ptr, i32 }
          cleanup
  %1288 = extractvalue { ptr, i32 } %1287, 0
  store ptr %1288, ptr %6, align 8
  %1289 = extractvalue { ptr, i32 } %1287, 1
  store i32 %1289, ptr %7, align 4
  br label %1299

1290:                                             ; preds = %1274
  %1291 = landingpad { ptr, i32 }
          cleanup
  %1292 = extractvalue { ptr, i32 } %1291, 0
  store ptr %1292, ptr %6, align 8
  %1293 = extractvalue { ptr, i32 } %1291, 1
  store i32 %1293, ptr %7, align 4
  br label %1298

1294:                                             ; preds = %1277, %1275
  %1295 = landingpad { ptr, i32 }
          cleanup
  %1296 = extractvalue { ptr, i32 } %1295, 0
  store ptr %1296, ptr %6, align 8
  %1297 = extractvalue { ptr, i32 } %1295, 1
  store i32 %1297, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #9
  br label %1298

1298:                                             ; preds = %1294, %1290
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #9
  br label %1299

1299:                                             ; preds = %1298, %1286
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #9
  br label %1346

1300:                                             ; preds = %1280
  %1301 = landingpad { ptr, i32 }
          cleanup
  %1302 = extractvalue { ptr, i32 } %1301, 0
  store ptr %1302, ptr %6, align 8
  %1303 = extractvalue { ptr, i32 } %1301, 1
  store i32 %1303, ptr %7, align 4
  br label %1345

1304:                                             ; preds = %1282
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %1305 unwind label %1310

1305:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %166, ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef @.str.52, ptr noundef @.str.49, ptr noundef @.str.50)
          to label %1306 unwind label %1314

1306:                                             ; preds = %1305
  %1307 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %166) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %165, i32 noundef 1, ptr noundef @.str.3, i32 noundef 43, ptr noundef %1307)
          to label %1308 unwind label %1318

1308:                                             ; preds = %1306
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull align 8 dereferenceable(8) %164)
          to label %1309 unwind label %1322

1309:                                             ; preds = %1308
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %164) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #9
  br label %1329

1310:                                             ; preds = %1304
  %1311 = landingpad { ptr, i32 }
          cleanup
  %1312 = extractvalue { ptr, i32 } %1311, 0
  store ptr %1312, ptr %6, align 8
  %1313 = extractvalue { ptr, i32 } %1311, 1
  store i32 %1313, ptr %7, align 4
  br label %1328

1314:                                             ; preds = %1305
  %1315 = landingpad { ptr, i32 }
          cleanup
  %1316 = extractvalue { ptr, i32 } %1315, 0
  store ptr %1316, ptr %6, align 8
  %1317 = extractvalue { ptr, i32 } %1315, 1
  store i32 %1317, ptr %7, align 4
  br label %1327

1318:                                             ; preds = %1306
  %1319 = landingpad { ptr, i32 }
          cleanup
  %1320 = extractvalue { ptr, i32 } %1319, 0
  store ptr %1320, ptr %6, align 8
  %1321 = extractvalue { ptr, i32 } %1319, 1
  store i32 %1321, ptr %7, align 4
  br label %1326

1322:                                             ; preds = %1308
  %1323 = landingpad { ptr, i32 }
          cleanup
  %1324 = extractvalue { ptr, i32 } %1323, 0
  store ptr %1324, ptr %6, align 8
  %1325 = extractvalue { ptr, i32 } %1323, 1
  store i32 %1325, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #9
  br label %1326

1326:                                             ; preds = %1322, %1318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #9
  br label %1327

1327:                                             ; preds = %1326, %1314
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %164) #9
  br label %1328

1328:                                             ; preds = %1327, %1310
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #9
  br label %1345

1329:                                             ; preds = %1309, %1283
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %167) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %168) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %168)
          to label %1330 unwind label %1347

1330:                                             ; preds = %1329
  call void @llvm.lifetime.start.p0(i64 32, ptr %169) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %170) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %1331 unwind label %1351

1331:                                             ; preds = %1330
  invoke void @_ZN4chen3cmd7suggestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %1332 unwind label %1355

1332:                                             ; preds = %1331
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %168) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %171, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_app, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %172, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_version, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %173) #9
  %1333 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %1333, ptr %173, align 8, !tbaa !5
  %1334 = getelementptr inbounds ptr, ptr %173, i64 1
  %1335 = getelementptr inbounds [8 x i8], ptr %172, i64 0, i64 0
  store ptr %1335, ptr %1334, align 8, !tbaa !5
  %1336 = getelementptr inbounds ptr, ptr %173, i64 2
  store ptr null, ptr %1336, align 8, !tbaa !5
  %1337 = getelementptr inbounds [3 x ptr], ptr %173, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 2, ptr noundef %1337)
          to label %1338 unwind label %1361

1338:                                             ; preds = %1332
  call void @llvm.lifetime.start.p0(i64 16, ptr %174) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #9
  store i32 2, ptr %175, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #9
  %1339 = invoke noundef i32 @_ZNK4chen3cmd4argcEv(ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %1340 unwind label %1365

1340:                                             ; preds = %1338
  store i32 %1339, ptr %176, align 4, !tbaa !9
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %174, ptr noundef @.str.54, ptr noundef @.str.55, ptr noundef nonnull align 4 dereferenceable(4) %175, ptr noundef nonnull align 4 dereferenceable(4) %176)
          to label %1341 unwind label %1365

1341:                                             ; preds = %1340
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #9
  %1342 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %174)
          to label %1343 unwind label %1369

1343:                                             ; preds = %1341
  br i1 %1342, label %1344, label %1373

1344:                                             ; preds = %1343
  br label %1393

1345:                                             ; preds = %1328, %1300
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #9
  br label %1346

1346:                                             ; preds = %1345, %1299
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #9
  br label %2601

1347:                                             ; preds = %1329
  %1348 = landingpad { ptr, i32 }
          cleanup
  %1349 = extractvalue { ptr, i32 } %1348, 0
  store ptr %1349, ptr %6, align 8
  %1350 = extractvalue { ptr, i32 } %1348, 1
  store i32 %1350, ptr %7, align 4
  br label %1360

1351:                                             ; preds = %1330
  %1352 = landingpad { ptr, i32 }
          cleanup
  %1353 = extractvalue { ptr, i32 } %1352, 0
  store ptr %1353, ptr %6, align 8
  %1354 = extractvalue { ptr, i32 } %1352, 1
  store i32 %1354, ptr %7, align 4
  br label %1359

1355:                                             ; preds = %1331
  %1356 = landingpad { ptr, i32 }
          cleanup
  %1357 = extractvalue { ptr, i32 } %1356, 0
  store ptr %1357, ptr %6, align 8
  %1358 = extractvalue { ptr, i32 } %1356, 1
  store i32 %1358, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #9
  br label %1359

1359:                                             ; preds = %1355, %1351
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #9
  br label %1360

1360:                                             ; preds = %1359, %1347
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %168) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #9
  br label %2601

1361:                                             ; preds = %1332
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %6, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %7, align 4
  br label %1527

1365:                                             ; preds = %1340, %1338
  %1366 = landingpad { ptr, i32 }
          cleanup
  %1367 = extractvalue { ptr, i32 } %1366, 0
  store ptr %1367, ptr %6, align 8
  %1368 = extractvalue { ptr, i32 } %1366, 1
  store i32 %1368, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #9
  br label %1402

1369:                                             ; preds = %1341
  %1370 = landingpad { ptr, i32 }
          cleanup
  %1371 = extractvalue { ptr, i32 } %1370, 0
  store ptr %1371, ptr %6, align 8
  %1372 = extractvalue { ptr, i32 } %1370, 1
  store i32 %1372, ptr %7, align 4
  br label %1401

1373:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %177)
          to label %1374 unwind label %1379

1374:                                             ; preds = %1373
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #9
  %1375 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %174)
          to label %1376 unwind label %1383

1376:                                             ; preds = %1374
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %178, i32 noundef 1, ptr noundef @.str.3, i32 noundef 57, ptr noundef %1375)
          to label %1377 unwind label %1383

1377:                                             ; preds = %1376
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %178, ptr noundef nonnull align 8 dereferenceable(8) %177)
          to label %1378 unwind label %1387

1378:                                             ; preds = %1377
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #9
  br label %1393

1379:                                             ; preds = %1373
  %1380 = landingpad { ptr, i32 }
          cleanup
  %1381 = extractvalue { ptr, i32 } %1380, 0
  store ptr %1381, ptr %6, align 8
  %1382 = extractvalue { ptr, i32 } %1380, 1
  store i32 %1382, ptr %7, align 4
  br label %1392

1383:                                             ; preds = %1376, %1374
  %1384 = landingpad { ptr, i32 }
          cleanup
  %1385 = extractvalue { ptr, i32 } %1384, 0
  store ptr %1385, ptr %6, align 8
  %1386 = extractvalue { ptr, i32 } %1384, 1
  store i32 %1386, ptr %7, align 4
  br label %1391

1387:                                             ; preds = %1377
  %1388 = landingpad { ptr, i32 }
          cleanup
  %1389 = extractvalue { ptr, i32 } %1388, 0
  store ptr %1389, ptr %6, align 8
  %1390 = extractvalue { ptr, i32 } %1388, 1
  store i32 %1390, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #9
  br label %1391

1391:                                             ; preds = %1387, %1383
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #9
  br label %1392

1392:                                             ; preds = %1391, %1379
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #9
  br label %1401

1393:                                             ; preds = %1378, %1344
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %174) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %174) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %179) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #9
  %1394 = getelementptr inbounds [3 x ptr], ptr %173, i64 0, i64 0
  store ptr %1394, ptr %180, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #9
  %1395 = invoke noundef ptr @_ZNK4chen3cmd4argvEv(ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %1396 unwind label %1403

1396:                                             ; preds = %1393
  store ptr %1395, ptr %181, align 8, !tbaa !5
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIPPcS5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %179, ptr noundef @.str.56, ptr noundef @.str.57, ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %1397 unwind label %1403

1397:                                             ; preds = %1396
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #9
  %1398 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %179)
          to label %1399 unwind label %1407

1399:                                             ; preds = %1397
  br i1 %1398, label %1400, label %1411

1400:                                             ; preds = %1399
  br label %1431

1401:                                             ; preds = %1392, %1369
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %174) #9
  br label %1402

1402:                                             ; preds = %1401, %1365
  call void @llvm.lifetime.end.p0(i64 16, ptr %174) #9
  br label %1527

1403:                                             ; preds = %1396, %1393
  %1404 = landingpad { ptr, i32 }
          cleanup
  %1405 = extractvalue { ptr, i32 } %1404, 0
  store ptr %1405, ptr %6, align 8
  %1406 = extractvalue { ptr, i32 } %1404, 1
  store i32 %1406, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #9
  br label %1438

1407:                                             ; preds = %1397
  %1408 = landingpad { ptr, i32 }
          cleanup
  %1409 = extractvalue { ptr, i32 } %1408, 0
  store ptr %1409, ptr %6, align 8
  %1410 = extractvalue { ptr, i32 } %1408, 1
  store i32 %1410, ptr %7, align 4
  br label %1437

1411:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182)
          to label %1412 unwind label %1417

1412:                                             ; preds = %1411
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #9
  %1413 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %179)
          to label %1414 unwind label %1421

1414:                                             ; preds = %1412
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %183, i32 noundef 1, ptr noundef @.str.3, i32 noundef 58, ptr noundef %1413)
          to label %1415 unwind label %1421

1415:                                             ; preds = %1414
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef nonnull align 8 dereferenceable(8) %182)
          to label %1416 unwind label %1425

1416:                                             ; preds = %1415
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #9
  br label %1431

1417:                                             ; preds = %1411
  %1418 = landingpad { ptr, i32 }
          cleanup
  %1419 = extractvalue { ptr, i32 } %1418, 0
  store ptr %1419, ptr %6, align 8
  %1420 = extractvalue { ptr, i32 } %1418, 1
  store i32 %1420, ptr %7, align 4
  br label %1430

1421:                                             ; preds = %1414, %1412
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %6, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %7, align 4
  br label %1429

1425:                                             ; preds = %1415
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %6, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #9
  br label %1429

1429:                                             ; preds = %1425, %1421
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #9
  br label %1430

1430:                                             ; preds = %1429, %1417
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #9
  br label %1437

1431:                                             ; preds = %1416, %1400
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %179) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %184) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %185) #9
  invoke void @_ZNK4chen3cmd3appB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %185, ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %1432 unwind label %1439

1432:                                             ; preds = %1431
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %184, ptr noundef @.str.58, ptr noundef @.str.59, ptr noundef nonnull align 1 dereferenceable(4) @.str.60, ptr noundef nonnull align 8 dereferenceable(32) %185)
          to label %1433 unwind label %1443

1433:                                             ; preds = %1432
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %185) #9
  %1434 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %184)
          to label %1435 unwind label %1448

1435:                                             ; preds = %1433
  br i1 %1434, label %1436, label %1452

1436:                                             ; preds = %1435
  br label %1472

1437:                                             ; preds = %1430, %1407
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %179) #9
  br label %1438

1438:                                             ; preds = %1437, %1403
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #9
  br label %1527

1439:                                             ; preds = %1431
  %1440 = landingpad { ptr, i32 }
          cleanup
  %1441 = extractvalue { ptr, i32 } %1440, 0
  store ptr %1441, ptr %6, align 8
  %1442 = extractvalue { ptr, i32 } %1440, 1
  store i32 %1442, ptr %7, align 4
  br label %1447

1443:                                             ; preds = %1432
  %1444 = landingpad { ptr, i32 }
          cleanup
  %1445 = extractvalue { ptr, i32 } %1444, 0
  store ptr %1445, ptr %6, align 8
  %1446 = extractvalue { ptr, i32 } %1444, 1
  store i32 %1446, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #9
  br label %1447

1447:                                             ; preds = %1443, %1439
  call void @llvm.lifetime.end.p0(i64 32, ptr %185) #9
  br label %1479

1448:                                             ; preds = %1433
  %1449 = landingpad { ptr, i32 }
          cleanup
  %1450 = extractvalue { ptr, i32 } %1449, 0
  store ptr %1450, ptr %6, align 8
  %1451 = extractvalue { ptr, i32 } %1449, 1
  store i32 %1451, ptr %7, align 4
  br label %1478

1452:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %186)
          to label %1453 unwind label %1458

1453:                                             ; preds = %1452
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #9
  %1454 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %184)
          to label %1455 unwind label %1462

1455:                                             ; preds = %1453
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %187, i32 noundef 1, ptr noundef @.str.3, i32 noundef 59, ptr noundef %1454)
          to label %1456 unwind label %1462

1456:                                             ; preds = %1455
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef nonnull align 8 dereferenceable(8) %186)
          to label %1457 unwind label %1466

1457:                                             ; preds = %1456
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #9
  br label %1472

1458:                                             ; preds = %1452
  %1459 = landingpad { ptr, i32 }
          cleanup
  %1460 = extractvalue { ptr, i32 } %1459, 0
  store ptr %1460, ptr %6, align 8
  %1461 = extractvalue { ptr, i32 } %1459, 1
  store i32 %1461, ptr %7, align 4
  br label %1471

1462:                                             ; preds = %1455, %1453
  %1463 = landingpad { ptr, i32 }
          cleanup
  %1464 = extractvalue { ptr, i32 } %1463, 0
  store ptr %1464, ptr %6, align 8
  %1465 = extractvalue { ptr, i32 } %1463, 1
  store i32 %1465, ptr %7, align 4
  br label %1470

1466:                                             ; preds = %1456
  %1467 = landingpad { ptr, i32 }
          cleanup
  %1468 = extractvalue { ptr, i32 } %1467, 0
  store ptr %1468, ptr %6, align 8
  %1469 = extractvalue { ptr, i32 } %1467, 1
  store i32 %1469, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #9
  br label %1470

1470:                                             ; preds = %1466, %1462
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #9
  br label %1471

1471:                                             ; preds = %1470, %1458
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #9
  br label %1478

1472:                                             ; preds = %1457, %1436
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %184) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %184) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %188) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %189) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %189, ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %1473 unwind label %1480

1473:                                             ; preds = %1472
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA8_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %188, ptr noundef @.str.61, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(8) @.str.8, ptr noundef nonnull align 8 dereferenceable(32) %189)
          to label %1474 unwind label %1484

1474:                                             ; preds = %1473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %189) #9
  %1475 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %188)
          to label %1476 unwind label %1489

1476:                                             ; preds = %1474
  br i1 %1475, label %1477, label %1493

1477:                                             ; preds = %1476
  br label %1513

1478:                                             ; preds = %1471, %1448
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %184) #9
  br label %1479

1479:                                             ; preds = %1478, %1447
  call void @llvm.lifetime.end.p0(i64 16, ptr %184) #9
  br label %1527

1480:                                             ; preds = %1472
  %1481 = landingpad { ptr, i32 }
          cleanup
  %1482 = extractvalue { ptr, i32 } %1481, 0
  store ptr %1482, ptr %6, align 8
  %1483 = extractvalue { ptr, i32 } %1481, 1
  store i32 %1483, ptr %7, align 4
  br label %1488

1484:                                             ; preds = %1473
  %1485 = landingpad { ptr, i32 }
          cleanup
  %1486 = extractvalue { ptr, i32 } %1485, 0
  store ptr %1486, ptr %6, align 8
  %1487 = extractvalue { ptr, i32 } %1485, 1
  store i32 %1487, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #9
  br label %1488

1488:                                             ; preds = %1484, %1480
  call void @llvm.lifetime.end.p0(i64 32, ptr %189) #9
  br label %1526

1489:                                             ; preds = %1474
  %1490 = landingpad { ptr, i32 }
          cleanup
  %1491 = extractvalue { ptr, i32 } %1490, 0
  store ptr %1491, ptr %6, align 8
  %1492 = extractvalue { ptr, i32 } %1490, 1
  store i32 %1492, ptr %7, align 4
  br label %1525

1493:                                             ; preds = %1476
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %190)
          to label %1494 unwind label %1499

1494:                                             ; preds = %1493
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #9
  %1495 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %188)
          to label %1496 unwind label %1503

1496:                                             ; preds = %1494
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %191, i32 noundef 1, ptr noundef @.str.3, i32 noundef 60, ptr noundef %1495)
          to label %1497 unwind label %1503

1497:                                             ; preds = %1496
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull align 8 dereferenceable(8) %190)
          to label %1498 unwind label %1507

1498:                                             ; preds = %1497
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #9
  br label %1513

1499:                                             ; preds = %1493
  %1500 = landingpad { ptr, i32 }
          cleanup
  %1501 = extractvalue { ptr, i32 } %1500, 0
  store ptr %1501, ptr %6, align 8
  %1502 = extractvalue { ptr, i32 } %1500, 1
  store i32 %1502, ptr %7, align 4
  br label %1512

1503:                                             ; preds = %1496, %1494
  %1504 = landingpad { ptr, i32 }
          cleanup
  %1505 = extractvalue { ptr, i32 } %1504, 0
  store ptr %1505, ptr %6, align 8
  %1506 = extractvalue { ptr, i32 } %1504, 1
  store i32 %1506, ptr %7, align 4
  br label %1511

1507:                                             ; preds = %1497
  %1508 = landingpad { ptr, i32 }
          cleanup
  %1509 = extractvalue { ptr, i32 } %1508, 0
  store ptr %1509, ptr %6, align 8
  %1510 = extractvalue { ptr, i32 } %1508, 1
  store i32 %1510, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #9
  br label %1511

1511:                                             ; preds = %1507, %1503
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #9
  br label %1512

1512:                                             ; preds = %1511, %1499
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #9
  br label %1525

1513:                                             ; preds = %1498, %1477
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %188) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %173) #9
  call void @llvm.lifetime.start.p0(i64 6, ptr %192) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %192, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_start, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %193) #9
  %1514 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %1514, ptr %193, align 8, !tbaa !5
  %1515 = getelementptr inbounds ptr, ptr %193, i64 1
  %1516 = getelementptr inbounds [6 x i8], ptr %192, i64 0, i64 0
  store ptr %1516, ptr %1515, align 8, !tbaa !5
  %1517 = getelementptr inbounds ptr, ptr %193, i64 2
  store ptr null, ptr %1517, align 8, !tbaa !5
  %1518 = getelementptr inbounds [3 x ptr], ptr %193, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 2, ptr noundef %1518)
          to label %1519 unwind label %1528

1519:                                             ; preds = %1513
  call void @llvm.lifetime.start.p0(i64 16, ptr %194) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %195) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %195, ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %1520 unwind label %1532

1520:                                             ; preds = %1519
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %194, ptr noundef @.str.63, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(6) @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %195)
          to label %1521 unwind label %1536

1521:                                             ; preds = %1520
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #9
  %1522 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %194)
          to label %1523 unwind label %1541

1523:                                             ; preds = %1521
  br i1 %1522, label %1524, label %1545

1524:                                             ; preds = %1523
  br label %1565

1525:                                             ; preds = %1512, %1489
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %188) #9
  br label %1526

1526:                                             ; preds = %1525, %1488
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #9
  br label %1527

1527:                                             ; preds = %1526, %1479, %1438, %1402, %1361
  call void @llvm.lifetime.end.p0(i64 24, ptr %173) #9
  br label %2600

1528:                                             ; preds = %1513
  %1529 = landingpad { ptr, i32 }
          cleanup
  %1530 = extractvalue { ptr, i32 } %1529, 0
  store ptr %1530, ptr %6, align 8
  %1531 = extractvalue { ptr, i32 } %1529, 1
  store i32 %1531, ptr %7, align 4
  br label %1783

1532:                                             ; preds = %1519
  %1533 = landingpad { ptr, i32 }
          cleanup
  %1534 = extractvalue { ptr, i32 } %1533, 0
  store ptr %1534, ptr %6, align 8
  %1535 = extractvalue { ptr, i32 } %1533, 1
  store i32 %1535, ptr %7, align 4
  br label %1540

1536:                                             ; preds = %1520
  %1537 = landingpad { ptr, i32 }
          cleanup
  %1538 = extractvalue { ptr, i32 } %1537, 0
  store ptr %1538, ptr %6, align 8
  %1539 = extractvalue { ptr, i32 } %1537, 1
  store i32 %1539, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #9
  br label %1540

1540:                                             ; preds = %1536, %1532
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #9
  br label %1574

1541:                                             ; preds = %1521
  %1542 = landingpad { ptr, i32 }
          cleanup
  %1543 = extractvalue { ptr, i32 } %1542, 0
  store ptr %1543, ptr %6, align 8
  %1544 = extractvalue { ptr, i32 } %1542, 1
  store i32 %1544, ptr %7, align 4
  br label %1573

1545:                                             ; preds = %1523
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %196)
          to label %1546 unwind label %1551

1546:                                             ; preds = %1545
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #9
  %1547 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %194)
          to label %1548 unwind label %1555

1548:                                             ; preds = %1546
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %197, i32 noundef 1, ptr noundef @.str.3, i32 noundef 71, ptr noundef %1547)
          to label %1549 unwind label %1555

1549:                                             ; preds = %1548
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull align 8 dereferenceable(8) %196)
          to label %1550 unwind label %1559

1550:                                             ; preds = %1549
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %197) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %196) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #9
  br label %1565

1551:                                             ; preds = %1545
  %1552 = landingpad { ptr, i32 }
          cleanup
  %1553 = extractvalue { ptr, i32 } %1552, 0
  store ptr %1553, ptr %6, align 8
  %1554 = extractvalue { ptr, i32 } %1552, 1
  store i32 %1554, ptr %7, align 4
  br label %1564

1555:                                             ; preds = %1548, %1546
  %1556 = landingpad { ptr, i32 }
          cleanup
  %1557 = extractvalue { ptr, i32 } %1556, 0
  store ptr %1557, ptr %6, align 8
  %1558 = extractvalue { ptr, i32 } %1556, 1
  store i32 %1558, ptr %7, align 4
  br label %1563

1559:                                             ; preds = %1549
  %1560 = landingpad { ptr, i32 }
          cleanup
  %1561 = extractvalue { ptr, i32 } %1560, 0
  store ptr %1561, ptr %6, align 8
  %1562 = extractvalue { ptr, i32 } %1560, 1
  store i32 %1562, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %197) #9
  br label %1563

1563:                                             ; preds = %1559, %1555
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %196) #9
  br label %1564

1564:                                             ; preds = %1563, %1551
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #9
  br label %1573

1565:                                             ; preds = %1550, %1524
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %194) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %198) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #9
  store i32 80, ptr %199, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %202) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %202)
          to label %1566 unwind label %1575

1566:                                             ; preds = %1565
  %1567 = invoke noundef i32 @_ZNK4chen3cmd6intValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %201)
          to label %1568 unwind label %1579

1568:                                             ; preds = %1566
  store i32 %1567, ptr %200, align 4, !tbaa !9
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %198, ptr noundef @.str.64, ptr noundef @.str.65, ptr noundef nonnull align 4 dereferenceable(4) %199, ptr noundef nonnull align 4 dereferenceable(4) %200)
          to label %1569 unwind label %1579

1569:                                             ; preds = %1568
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #9
  %1570 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %198)
          to label %1571 unwind label %1584

1571:                                             ; preds = %1569
  br i1 %1570, label %1572, label %1588

1572:                                             ; preds = %1571
  br label %1608

1573:                                             ; preds = %1564, %1541
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %194) #9
  br label %1574

1574:                                             ; preds = %1573, %1540
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #9
  br label %1783

1575:                                             ; preds = %1565
  %1576 = landingpad { ptr, i32 }
          cleanup
  %1577 = extractvalue { ptr, i32 } %1576, 0
  store ptr %1577, ptr %6, align 8
  %1578 = extractvalue { ptr, i32 } %1576, 1
  store i32 %1578, ptr %7, align 4
  br label %1583

1579:                                             ; preds = %1568, %1566
  %1580 = landingpad { ptr, i32 }
          cleanup
  %1581 = extractvalue { ptr, i32 } %1580, 0
  store ptr %1581, ptr %6, align 8
  %1582 = extractvalue { ptr, i32 } %1580, 1
  store i32 %1582, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  br label %1583

1583:                                             ; preds = %1579, %1575
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #9
  br label %1616

1584:                                             ; preds = %1569
  %1585 = landingpad { ptr, i32 }
          cleanup
  %1586 = extractvalue { ptr, i32 } %1585, 0
  store ptr %1586, ptr %6, align 8
  %1587 = extractvalue { ptr, i32 } %1585, 1
  store i32 %1587, ptr %7, align 4
  br label %1615

1588:                                             ; preds = %1571
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %203)
          to label %1589 unwind label %1594

1589:                                             ; preds = %1588
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #9
  %1590 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %198)
          to label %1591 unwind label %1598

1591:                                             ; preds = %1589
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %204, i32 noundef 1, ptr noundef @.str.3, i32 noundef 72, ptr noundef %1590)
          to label %1592 unwind label %1598

1592:                                             ; preds = %1591
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %204, ptr noundef nonnull align 8 dereferenceable(8) %203)
          to label %1593 unwind label %1602

1593:                                             ; preds = %1592
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %204) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %203) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #9
  br label %1608

1594:                                             ; preds = %1588
  %1595 = landingpad { ptr, i32 }
          cleanup
  %1596 = extractvalue { ptr, i32 } %1595, 0
  store ptr %1596, ptr %6, align 8
  %1597 = extractvalue { ptr, i32 } %1595, 1
  store i32 %1597, ptr %7, align 4
  br label %1607

1598:                                             ; preds = %1591, %1589
  %1599 = landingpad { ptr, i32 }
          cleanup
  %1600 = extractvalue { ptr, i32 } %1599, 0
  store ptr %1600, ptr %6, align 8
  %1601 = extractvalue { ptr, i32 } %1599, 1
  store i32 %1601, ptr %7, align 4
  br label %1606

1602:                                             ; preds = %1592
  %1603 = landingpad { ptr, i32 }
          cleanup
  %1604 = extractvalue { ptr, i32 } %1603, 0
  store ptr %1604, ptr %6, align 8
  %1605 = extractvalue { ptr, i32 } %1603, 1
  store i32 %1605, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %204) #9
  br label %1606

1606:                                             ; preds = %1602, %1598
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %203) #9
  br label %1607

1607:                                             ; preds = %1606, %1594
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #9
  br label %1615

1608:                                             ; preds = %1593, %1572
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %198) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %198) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %205) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %208) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %208)
          to label %1609 unwind label %1617

1609:                                             ; preds = %1608
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %206, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %1610 unwind label %1621

1610:                                             ; preds = %1609
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA8_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %205, ptr noundef @.str.66, ptr noundef @.str.67, ptr noundef nonnull align 1 dereferenceable(8) @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %1611 unwind label %1625

1611:                                             ; preds = %1610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #9
  %1612 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %205)
          to label %1613 unwind label %1631

1613:                                             ; preds = %1611
  br i1 %1612, label %1614, label %1635

1614:                                             ; preds = %1613
  br label %1655

1615:                                             ; preds = %1607, %1584
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %198) #9
  br label %1616

1616:                                             ; preds = %1615, %1583
  call void @llvm.lifetime.end.p0(i64 16, ptr %198) #9
  br label %1783

1617:                                             ; preds = %1608
  %1618 = landingpad { ptr, i32 }
          cleanup
  %1619 = extractvalue { ptr, i32 } %1618, 0
  store ptr %1619, ptr %6, align 8
  %1620 = extractvalue { ptr, i32 } %1618, 1
  store i32 %1620, ptr %7, align 4
  br label %1630

1621:                                             ; preds = %1609
  %1622 = landingpad { ptr, i32 }
          cleanup
  %1623 = extractvalue { ptr, i32 } %1622, 0
  store ptr %1623, ptr %6, align 8
  %1624 = extractvalue { ptr, i32 } %1622, 1
  store i32 %1624, ptr %7, align 4
  br label %1629

1625:                                             ; preds = %1610
  %1626 = landingpad { ptr, i32 }
          cleanup
  %1627 = extractvalue { ptr, i32 } %1626, 0
  store ptr %1627, ptr %6, align 8
  %1628 = extractvalue { ptr, i32 } %1626, 1
  store i32 %1628, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  br label %1629

1629:                                             ; preds = %1625, %1621
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  br label %1630

1630:                                             ; preds = %1629, %1617
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #9
  br label %1666

1631:                                             ; preds = %1611
  %1632 = landingpad { ptr, i32 }
          cleanup
  %1633 = extractvalue { ptr, i32 } %1632, 0
  store ptr %1633, ptr %6, align 8
  %1634 = extractvalue { ptr, i32 } %1632, 1
  store i32 %1634, ptr %7, align 4
  br label %1665

1635:                                             ; preds = %1613
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %209)
          to label %1636 unwind label %1641

1636:                                             ; preds = %1635
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #9
  %1637 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %205)
          to label %1638 unwind label %1645

1638:                                             ; preds = %1636
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %210, i32 noundef 1, ptr noundef @.str.3, i32 noundef 73, ptr noundef %1637)
          to label %1639 unwind label %1645

1639:                                             ; preds = %1638
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef nonnull align 8 dereferenceable(8) %209)
          to label %1640 unwind label %1649

1640:                                             ; preds = %1639
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #9
  br label %1655

1641:                                             ; preds = %1635
  %1642 = landingpad { ptr, i32 }
          cleanup
  %1643 = extractvalue { ptr, i32 } %1642, 0
  store ptr %1643, ptr %6, align 8
  %1644 = extractvalue { ptr, i32 } %1642, 1
  store i32 %1644, ptr %7, align 4
  br label %1654

1645:                                             ; preds = %1638, %1636
  %1646 = landingpad { ptr, i32 }
          cleanup
  %1647 = extractvalue { ptr, i32 } %1646, 0
  store ptr %1647, ptr %6, align 8
  %1648 = extractvalue { ptr, i32 } %1646, 1
  store i32 %1648, ptr %7, align 4
  br label %1653

1649:                                             ; preds = %1639
  %1650 = landingpad { ptr, i32 }
          cleanup
  %1651 = extractvalue { ptr, i32 } %1650, 0
  store ptr %1651, ptr %6, align 8
  %1652 = extractvalue { ptr, i32 } %1650, 1
  store i32 %1652, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #9
  br label %1653

1653:                                             ; preds = %1649, %1645
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #9
  br label %1654

1654:                                             ; preds = %1653, %1641
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #9
  br label %1665

1655:                                             ; preds = %1640, %1614
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %205) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %205) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %211) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %212) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %213) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %214) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %214)
          to label %1656 unwind label %1667

1656:                                             ; preds = %1655
  %1657 = invoke noundef zeroext i1 @_ZNK4chen3cmd5isSetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %213)
          to label %1658 unwind label %1671

1658:                                             ; preds = %1656
  %1659 = xor i1 %1657, true
  %1660 = zext i1 %1659 to i8
  store i8 %1660, ptr %212, align 1, !tbaa !11
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef nonnull align 1 dereferenceable(1) %212, ptr noundef null)
          to label %1661 unwind label %1671

1661:                                             ; preds = %1658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #9
  %1662 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %211)
          to label %1663 unwind label %1676

1663:                                             ; preds = %1661
  br i1 %1662, label %1664, label %1680

1664:                                             ; preds = %1663
  br label %1705

1665:                                             ; preds = %1654, %1631
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %205) #9
  br label %1666

1666:                                             ; preds = %1665, %1630
  call void @llvm.lifetime.end.p0(i64 16, ptr %205) #9
  br label %1783

1667:                                             ; preds = %1655
  %1668 = landingpad { ptr, i32 }
          cleanup
  %1669 = extractvalue { ptr, i32 } %1668, 0
  store ptr %1669, ptr %6, align 8
  %1670 = extractvalue { ptr, i32 } %1668, 1
  store i32 %1670, ptr %7, align 4
  br label %1675

1671:                                             ; preds = %1658, %1656
  %1672 = landingpad { ptr, i32 }
          cleanup
  %1673 = extractvalue { ptr, i32 } %1672, 0
  store ptr %1673, ptr %6, align 8
  %1674 = extractvalue { ptr, i32 } %1672, 1
  store i32 %1674, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #9
  br label %1675

1675:                                             ; preds = %1671, %1667
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #9
  br label %1716

1676:                                             ; preds = %1661
  %1677 = landingpad { ptr, i32 }
          cleanup
  %1678 = extractvalue { ptr, i32 } %1677, 0
  store ptr %1678, ptr %6, align 8
  %1679 = extractvalue { ptr, i32 } %1677, 1
  store i32 %1679, ptr %7, align 4
  br label %1715

1680:                                             ; preds = %1663
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %215)
          to label %1681 unwind label %1686

1681:                                             ; preds = %1680
  call void @llvm.lifetime.start.p0(i64 8, ptr %216) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %217) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %217, ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef @.str.68, ptr noundef @.str.49, ptr noundef @.str.50)
          to label %1682 unwind label %1690

1682:                                             ; preds = %1681
  %1683 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %217) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %216, i32 noundef 1, ptr noundef @.str.3, i32 noundef 75, ptr noundef %1683)
          to label %1684 unwind label %1694

1684:                                             ; preds = %1682
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %216, ptr noundef nonnull align 8 dereferenceable(8) %215)
          to label %1685 unwind label %1698

1685:                                             ; preds = %1684
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %216) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #9
  br label %1705

1686:                                             ; preds = %1680
  %1687 = landingpad { ptr, i32 }
          cleanup
  %1688 = extractvalue { ptr, i32 } %1687, 0
  store ptr %1688, ptr %6, align 8
  %1689 = extractvalue { ptr, i32 } %1687, 1
  store i32 %1689, ptr %7, align 4
  br label %1704

1690:                                             ; preds = %1681
  %1691 = landingpad { ptr, i32 }
          cleanup
  %1692 = extractvalue { ptr, i32 } %1691, 0
  store ptr %1692, ptr %6, align 8
  %1693 = extractvalue { ptr, i32 } %1691, 1
  store i32 %1693, ptr %7, align 4
  br label %1703

1694:                                             ; preds = %1682
  %1695 = landingpad { ptr, i32 }
          cleanup
  %1696 = extractvalue { ptr, i32 } %1695, 0
  store ptr %1696, ptr %6, align 8
  %1697 = extractvalue { ptr, i32 } %1695, 1
  store i32 %1697, ptr %7, align 4
  br label %1702

1698:                                             ; preds = %1684
  %1699 = landingpad { ptr, i32 }
          cleanup
  %1700 = extractvalue { ptr, i32 } %1699, 0
  store ptr %1700, ptr %6, align 8
  %1701 = extractvalue { ptr, i32 } %1699, 1
  store i32 %1701, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %216) #9
  br label %1702

1702:                                             ; preds = %1698, %1694
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #9
  br label %1703

1703:                                             ; preds = %1702, %1690
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %216) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #9
  br label %1704

1704:                                             ; preds = %1703, %1686
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #9
  br label %1715

1705:                                             ; preds = %1685, %1664
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %211) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %218) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %220) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %221) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %221)
          to label %1706 unwind label %1717

1706:                                             ; preds = %1705
  %1707 = invoke noundef zeroext i1 @_ZNK4chen3cmd7boolValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %220)
          to label %1708 unwind label %1721

1708:                                             ; preds = %1706
  %1709 = xor i1 %1707, true
  %1710 = zext i1 %1709 to i8
  store i8 %1710, ptr %219, align 1, !tbaa !11
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 1 dereferenceable(1) %219, ptr noundef null)
          to label %1711 unwind label %1721

1711:                                             ; preds = %1708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %221) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #9
  %1712 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %218)
          to label %1713 unwind label %1726

1713:                                             ; preds = %1711
  br i1 %1712, label %1714, label %1730

1714:                                             ; preds = %1713
  br label %1755

1715:                                             ; preds = %1704, %1676
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %211) #9
  br label %1716

1716:                                             ; preds = %1715, %1675
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #9
  br label %1783

1717:                                             ; preds = %1705
  %1718 = landingpad { ptr, i32 }
          cleanup
  %1719 = extractvalue { ptr, i32 } %1718, 0
  store ptr %1719, ptr %6, align 8
  %1720 = extractvalue { ptr, i32 } %1718, 1
  store i32 %1720, ptr %7, align 4
  br label %1725

1721:                                             ; preds = %1708, %1706
  %1722 = landingpad { ptr, i32 }
          cleanup
  %1723 = extractvalue { ptr, i32 } %1722, 0
  store ptr %1723, ptr %6, align 8
  %1724 = extractvalue { ptr, i32 } %1722, 1
  store i32 %1724, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #9
  br label %1725

1725:                                             ; preds = %1721, %1717
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %221) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #9
  br label %1782

1726:                                             ; preds = %1711
  %1727 = landingpad { ptr, i32 }
          cleanup
  %1728 = extractvalue { ptr, i32 } %1727, 0
  store ptr %1728, ptr %6, align 8
  %1729 = extractvalue { ptr, i32 } %1727, 1
  store i32 %1729, ptr %7, align 4
  br label %1781

1730:                                             ; preds = %1713
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %222)
          to label %1731 unwind label %1736

1731:                                             ; preds = %1730
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %224) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %224, ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef @.str.69, ptr noundef @.str.49, ptr noundef @.str.50)
          to label %1732 unwind label %1740

1732:                                             ; preds = %1731
  %1733 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %224) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %223, i32 noundef 1, ptr noundef @.str.3, i32 noundef 76, ptr noundef %1733)
          to label %1734 unwind label %1744

1734:                                             ; preds = %1732
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull align 8 dereferenceable(8) %222)
          to label %1735 unwind label %1748

1735:                                             ; preds = %1734
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %222) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #9
  br label %1755

1736:                                             ; preds = %1730
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %6, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %7, align 4
  br label %1754

1740:                                             ; preds = %1731
  %1741 = landingpad { ptr, i32 }
          cleanup
  %1742 = extractvalue { ptr, i32 } %1741, 0
  store ptr %1742, ptr %6, align 8
  %1743 = extractvalue { ptr, i32 } %1741, 1
  store i32 %1743, ptr %7, align 4
  br label %1753

1744:                                             ; preds = %1732
  %1745 = landingpad { ptr, i32 }
          cleanup
  %1746 = extractvalue { ptr, i32 } %1745, 0
  store ptr %1746, ptr %6, align 8
  %1747 = extractvalue { ptr, i32 } %1745, 1
  store i32 %1747, ptr %7, align 4
  br label %1752

1748:                                             ; preds = %1734
  %1749 = landingpad { ptr, i32 }
          cleanup
  %1750 = extractvalue { ptr, i32 } %1749, 0
  store ptr %1750, ptr %6, align 8
  %1751 = extractvalue { ptr, i32 } %1749, 1
  store i32 %1751, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #9
  br label %1752

1752:                                             ; preds = %1748, %1744
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #9
  br label %1753

1753:                                             ; preds = %1752, %1740
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %222) #9
  br label %1754

1754:                                             ; preds = %1753, %1736
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #9
  br label %1781

1755:                                             ; preds = %1735, %1714
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %218) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr %225) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %225, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_port, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 13, ptr %226) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %226, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_addr, i64 13, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr %227) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %227, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_thread, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 2, ptr %228) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %228, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_four, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 3, ptr %229) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %229, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_s, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %230, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_100, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 10, ptr %231) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %231, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_ip, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %232) #9
  %1756 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %1756, ptr %232, align 8, !tbaa !5
  %1757 = getelementptr inbounds ptr, ptr %232, i64 1
  %1758 = getelementptr inbounds [6 x i8], ptr %192, i64 0, i64 0
  store ptr %1758, ptr %1757, align 8, !tbaa !5
  %1759 = getelementptr inbounds ptr, ptr %232, i64 2
  %1760 = getelementptr inbounds [12 x i8], ptr %225, i64 0, i64 0
  store ptr %1760, ptr %1759, align 8, !tbaa !5
  %1761 = getelementptr inbounds ptr, ptr %232, i64 3
  %1762 = getelementptr inbounds [13 x i8], ptr %226, i64 0, i64 0
  store ptr %1762, ptr %1761, align 8, !tbaa !5
  %1763 = getelementptr inbounds ptr, ptr %232, i64 4
  %1764 = getelementptr inbounds [9 x i8], ptr %227, i64 0, i64 0
  store ptr %1764, ptr %1763, align 8, !tbaa !5
  %1765 = getelementptr inbounds ptr, ptr %232, i64 5
  %1766 = getelementptr inbounds [2 x i8], ptr %228, i64 0, i64 0
  store ptr %1766, ptr %1765, align 8, !tbaa !5
  %1767 = getelementptr inbounds ptr, ptr %232, i64 6
  %1768 = getelementptr inbounds [3 x i8], ptr %229, i64 0, i64 0
  store ptr %1768, ptr %1767, align 8, !tbaa !5
  %1769 = getelementptr inbounds ptr, ptr %232, i64 7
  %1770 = getelementptr inbounds [4 x i8], ptr %230, i64 0, i64 0
  store ptr %1770, ptr %1769, align 8, !tbaa !5
  %1771 = getelementptr inbounds ptr, ptr %232, i64 8
  %1772 = getelementptr inbounds [10 x i8], ptr %231, i64 0, i64 0
  store ptr %1772, ptr %1771, align 8, !tbaa !5
  %1773 = getelementptr inbounds ptr, ptr %232, i64 9
  store ptr null, ptr %1773, align 8, !tbaa !5
  %1774 = getelementptr inbounds [10 x ptr], ptr %232, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 9, ptr noundef %1774)
          to label %1775 unwind label %1784

1775:                                             ; preds = %1755
  call void @llvm.lifetime.start.p0(i64 16, ptr %233) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %234) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %234, ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %1776 unwind label %1788

1776:                                             ; preds = %1775
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %233, ptr noundef @.str.63, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(6) @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %234)
          to label %1777 unwind label %1792

1777:                                             ; preds = %1776
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #9
  %1778 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %1779 unwind label %1797

1779:                                             ; preds = %1777
  br i1 %1778, label %1780, label %1801

1780:                                             ; preds = %1779
  br label %1821

1781:                                             ; preds = %1754, %1726
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #9
  br label %1782

1782:                                             ; preds = %1781, %1725
  call void @llvm.lifetime.end.p0(i64 16, ptr %218) #9
  br label %1783

1783:                                             ; preds = %1782, %1716, %1666, %1616, %1574, %1528
  call void @llvm.lifetime.end.p0(i64 24, ptr %193) #9
  br label %2599

1784:                                             ; preds = %1755
  %1785 = landingpad { ptr, i32 }
          cleanup
  %1786 = extractvalue { ptr, i32 } %1785, 0
  store ptr %1786, ptr %6, align 8
  %1787 = extractvalue { ptr, i32 } %1785, 1
  store i32 %1787, ptr %7, align 4
  br label %2183

1788:                                             ; preds = %1775
  %1789 = landingpad { ptr, i32 }
          cleanup
  %1790 = extractvalue { ptr, i32 } %1789, 0
  store ptr %1790, ptr %6, align 8
  %1791 = extractvalue { ptr, i32 } %1789, 1
  store i32 %1791, ptr %7, align 4
  br label %1796

1792:                                             ; preds = %1776
  %1793 = landingpad { ptr, i32 }
          cleanup
  %1794 = extractvalue { ptr, i32 } %1793, 0
  store ptr %1794, ptr %6, align 8
  %1795 = extractvalue { ptr, i32 } %1793, 1
  store i32 %1795, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #9
  br label %1796

1796:                                             ; preds = %1792, %1788
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #9
  br label %1830

1797:                                             ; preds = %1777
  %1798 = landingpad { ptr, i32 }
          cleanup
  %1799 = extractvalue { ptr, i32 } %1798, 0
  store ptr %1799, ptr %6, align 8
  %1800 = extractvalue { ptr, i32 } %1798, 1
  store i32 %1800, ptr %7, align 4
  br label %1829

1801:                                             ; preds = %1779
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %235)
          to label %1802 unwind label %1807

1802:                                             ; preds = %1801
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #9
  %1803 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %1804 unwind label %1811

1804:                                             ; preds = %1802
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %236, i32 noundef 1, ptr noundef @.str.3, i32 noundef 93, ptr noundef %1803)
          to label %1805 unwind label %1811

1805:                                             ; preds = %1804
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef nonnull align 8 dereferenceable(8) %235)
          to label %1806 unwind label %1815

1806:                                             ; preds = %1805
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #9
  br label %1821

1807:                                             ; preds = %1801
  %1808 = landingpad { ptr, i32 }
          cleanup
  %1809 = extractvalue { ptr, i32 } %1808, 0
  store ptr %1809, ptr %6, align 8
  %1810 = extractvalue { ptr, i32 } %1808, 1
  store i32 %1810, ptr %7, align 4
  br label %1820

1811:                                             ; preds = %1804, %1802
  %1812 = landingpad { ptr, i32 }
          cleanup
  %1813 = extractvalue { ptr, i32 } %1812, 0
  store ptr %1813, ptr %6, align 8
  %1814 = extractvalue { ptr, i32 } %1812, 1
  store i32 %1814, ptr %7, align 4
  br label %1819

1815:                                             ; preds = %1805
  %1816 = landingpad { ptr, i32 }
          cleanup
  %1817 = extractvalue { ptr, i32 } %1816, 0
  store ptr %1817, ptr %6, align 8
  %1818 = extractvalue { ptr, i32 } %1816, 1
  store i32 %1818, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #9
  br label %1819

1819:                                             ; preds = %1815, %1811
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #9
  br label %1820

1820:                                             ; preds = %1819, %1807
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #9
  br label %1829

1821:                                             ; preds = %1806, %1780
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %233) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %237) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #9
  store i32 8888, ptr %238, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %240) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %241) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %241)
          to label %1822 unwind label %1831

1822:                                             ; preds = %1821
  %1823 = invoke noundef i32 @_ZNK4chen3cmd6intValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %240)
          to label %1824 unwind label %1835

1824:                                             ; preds = %1822
  store i32 %1823, ptr %239, align 4, !tbaa !9
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %237, ptr noundef @.str.70, ptr noundef @.str.65, ptr noundef nonnull align 4 dereferenceable(4) %238, ptr noundef nonnull align 4 dereferenceable(4) %239)
          to label %1825 unwind label %1835

1825:                                             ; preds = %1824
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #9
  %1826 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %237)
          to label %1827 unwind label %1840

1827:                                             ; preds = %1825
  br i1 %1826, label %1828, label %1844

1828:                                             ; preds = %1827
  br label %1864

1829:                                             ; preds = %1820, %1797
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %233) #9
  br label %1830

1830:                                             ; preds = %1829, %1796
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #9
  br label %2183

1831:                                             ; preds = %1821
  %1832 = landingpad { ptr, i32 }
          cleanup
  %1833 = extractvalue { ptr, i32 } %1832, 0
  store ptr %1833, ptr %6, align 8
  %1834 = extractvalue { ptr, i32 } %1832, 1
  store i32 %1834, ptr %7, align 4
  br label %1839

1835:                                             ; preds = %1824, %1822
  %1836 = landingpad { ptr, i32 }
          cleanup
  %1837 = extractvalue { ptr, i32 } %1836, 0
  store ptr %1837, ptr %6, align 8
  %1838 = extractvalue { ptr, i32 } %1836, 1
  store i32 %1838, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #9
  br label %1839

1839:                                             ; preds = %1835, %1831
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #9
  br label %1872

1840:                                             ; preds = %1825
  %1841 = landingpad { ptr, i32 }
          cleanup
  %1842 = extractvalue { ptr, i32 } %1841, 0
  store ptr %1842, ptr %6, align 8
  %1843 = extractvalue { ptr, i32 } %1841, 1
  store i32 %1843, ptr %7, align 4
  br label %1871

1844:                                             ; preds = %1827
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %242)
          to label %1845 unwind label %1850

1845:                                             ; preds = %1844
  call void @llvm.lifetime.start.p0(i64 8, ptr %243) #9
  %1846 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %237)
          to label %1847 unwind label %1854

1847:                                             ; preds = %1845
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %243, i32 noundef 1, ptr noundef @.str.3, i32 noundef 94, ptr noundef %1846)
          to label %1848 unwind label %1854

1848:                                             ; preds = %1847
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef nonnull align 8 dereferenceable(8) %242)
          to label %1849 unwind label %1858

1849:                                             ; preds = %1848
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #9
  br label %1864

1850:                                             ; preds = %1844
  %1851 = landingpad { ptr, i32 }
          cleanup
  %1852 = extractvalue { ptr, i32 } %1851, 0
  store ptr %1852, ptr %6, align 8
  %1853 = extractvalue { ptr, i32 } %1851, 1
  store i32 %1853, ptr %7, align 4
  br label %1863

1854:                                             ; preds = %1847, %1845
  %1855 = landingpad { ptr, i32 }
          cleanup
  %1856 = extractvalue { ptr, i32 } %1855, 0
  store ptr %1856, ptr %6, align 8
  %1857 = extractvalue { ptr, i32 } %1855, 1
  store i32 %1857, ptr %7, align 4
  br label %1862

1858:                                             ; preds = %1848
  %1859 = landingpad { ptr, i32 }
          cleanup
  %1860 = extractvalue { ptr, i32 } %1859, 0
  store ptr %1860, ptr %6, align 8
  %1861 = extractvalue { ptr, i32 } %1859, 1
  store i32 %1861, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #9
  br label %1862

1862:                                             ; preds = %1858, %1854
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #9
  br label %1863

1863:                                             ; preds = %1862, %1850
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #9
  br label %1871

1864:                                             ; preds = %1849, %1828
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %237) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %237) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %244) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %245) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %246) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %247) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %247)
          to label %1865 unwind label %1873

1865:                                             ; preds = %1864
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %245, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %246)
          to label %1866 unwind label %1877

1866:                                             ; preds = %1865
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %244, ptr noundef @.str.71, ptr noundef @.str.67, ptr noundef nonnull align 1 dereferenceable(10) @.str.72, ptr noundef nonnull align 8 dereferenceable(32) %245)
          to label %1867 unwind label %1881

1867:                                             ; preds = %1866
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #9
  %1868 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %244)
          to label %1869 unwind label %1887

1869:                                             ; preds = %1867
  br i1 %1868, label %1870, label %1891

1870:                                             ; preds = %1869
  br label %1911

1871:                                             ; preds = %1863, %1840
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %237) #9
  br label %1872

1872:                                             ; preds = %1871, %1839
  call void @llvm.lifetime.end.p0(i64 16, ptr %237) #9
  br label %2183

1873:                                             ; preds = %1864
  %1874 = landingpad { ptr, i32 }
          cleanup
  %1875 = extractvalue { ptr, i32 } %1874, 0
  store ptr %1875, ptr %6, align 8
  %1876 = extractvalue { ptr, i32 } %1874, 1
  store i32 %1876, ptr %7, align 4
  br label %1886

1877:                                             ; preds = %1865
  %1878 = landingpad { ptr, i32 }
          cleanup
  %1879 = extractvalue { ptr, i32 } %1878, 0
  store ptr %1879, ptr %6, align 8
  %1880 = extractvalue { ptr, i32 } %1878, 1
  store i32 %1880, ptr %7, align 4
  br label %1885

1881:                                             ; preds = %1866
  %1882 = landingpad { ptr, i32 }
          cleanup
  %1883 = extractvalue { ptr, i32 } %1882, 0
  store ptr %1883, ptr %6, align 8
  %1884 = extractvalue { ptr, i32 } %1882, 1
  store i32 %1884, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #9
  br label %1885

1885:                                             ; preds = %1881, %1877
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #9
  br label %1886

1886:                                             ; preds = %1885, %1873
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #9
  br label %1922

1887:                                             ; preds = %1867
  %1888 = landingpad { ptr, i32 }
          cleanup
  %1889 = extractvalue { ptr, i32 } %1888, 0
  store ptr %1889, ptr %6, align 8
  %1890 = extractvalue { ptr, i32 } %1888, 1
  store i32 %1890, ptr %7, align 4
  br label %1921

1891:                                             ; preds = %1869
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %248)
          to label %1892 unwind label %1897

1892:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #9
  %1893 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %244)
          to label %1894 unwind label %1901

1894:                                             ; preds = %1892
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %249, i32 noundef 1, ptr noundef @.str.3, i32 noundef 95, ptr noundef %1893)
          to label %1895 unwind label %1901

1895:                                             ; preds = %1894
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %249, ptr noundef nonnull align 8 dereferenceable(8) %248)
          to label %1896 unwind label %1905

1896:                                             ; preds = %1895
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #9
  br label %1911

1897:                                             ; preds = %1891
  %1898 = landingpad { ptr, i32 }
          cleanup
  %1899 = extractvalue { ptr, i32 } %1898, 0
  store ptr %1899, ptr %6, align 8
  %1900 = extractvalue { ptr, i32 } %1898, 1
  store i32 %1900, ptr %7, align 4
  br label %1910

1901:                                             ; preds = %1894, %1892
  %1902 = landingpad { ptr, i32 }
          cleanup
  %1903 = extractvalue { ptr, i32 } %1902, 0
  store ptr %1903, ptr %6, align 8
  %1904 = extractvalue { ptr, i32 } %1902, 1
  store i32 %1904, ptr %7, align 4
  br label %1909

1905:                                             ; preds = %1895
  %1906 = landingpad { ptr, i32 }
          cleanup
  %1907 = extractvalue { ptr, i32 } %1906, 0
  store ptr %1907, ptr %6, align 8
  %1908 = extractvalue { ptr, i32 } %1906, 1
  store i32 %1908, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #9
  br label %1909

1909:                                             ; preds = %1905, %1901
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #9
  br label %1910

1910:                                             ; preds = %1909, %1897
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #9
  br label %1921

1911:                                             ; preds = %1896, %1870
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %244) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %244) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef @.str.4)
          to label %1912 unwind label %1923

1912:                                             ; preds = %1911
  %1913 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %250)
          to label %1914 unwind label %1923

1914:                                             ; preds = %1912
  br i1 %1913, label %1915, label %1972

1915:                                             ; preds = %1914
  call void @llvm.lifetime.start.p0(i64 1, ptr %251) #9
  store i8 0, ptr %251, align 1, !tbaa !11
  %1916 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1917 unwind label %1927

1917:                                             ; preds = %1915
  br i1 %1916, label %1918, label %1957

1918:                                             ; preds = %1917
  call void @llvm.lifetime.start.p0(i64 32, ptr %253) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %254) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %254)
          to label %1919 unwind label %1931

1919:                                             ; preds = %1918
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %252, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %253)
          to label %1920 unwind label %1935

1920:                                             ; preds = %1919
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %254) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #9
  br label %1957

1921:                                             ; preds = %1910, %1887
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %244) #9
  br label %1922

1922:                                             ; preds = %1921, %1886
  call void @llvm.lifetime.end.p0(i64 16, ptr %244) #9
  br label %2183

1923:                                             ; preds = %1912, %1911
  %1924 = landingpad { ptr, i32 }
          cleanup
  %1925 = extractvalue { ptr, i32 } %1924, 0
  store ptr %1925, ptr %6, align 8
  %1926 = extractvalue { ptr, i32 } %1924, 1
  store i32 %1926, ptr %7, align 4
  br label %2003

1927:                                             ; preds = %1915
  %1928 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %1929 = extractvalue { ptr, i32 } %1928, 0
  store ptr %1929, ptr %6, align 8
  %1930 = extractvalue { ptr, i32 } %1928, 1
  store i32 %1930, ptr %7, align 4
  br label %1940

1931:                                             ; preds = %1918
  %1932 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %1933 = extractvalue { ptr, i32 } %1932, 0
  store ptr %1933, ptr %6, align 8
  %1934 = extractvalue { ptr, i32 } %1932, 1
  store i32 %1934, ptr %7, align 4
  br label %1939

1935:                                             ; preds = %1919
  %1936 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %1937 = extractvalue { ptr, i32 } %1936, 0
  store ptr %1937, ptr %6, align 8
  %1938 = extractvalue { ptr, i32 } %1936, 1
  store i32 %1938, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #9
  br label %1939

1939:                                             ; preds = %1935, %1931
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %254) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #9
  br label %1940

1940:                                             ; preds = %1939, %1927
  %1941 = load i32, ptr %7, align 4
  %1942 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd5errorE) #9
  %1943 = icmp eq i32 %1941, %1942
  br i1 %1943, label %1944, label %1953

1944:                                             ; preds = %1940
  call void @llvm.lifetime.start.p0(i64 8, ptr %255) #9
  %1945 = load ptr, ptr %6, align 8
  %1946 = call ptr @__cxa_begin_catch(ptr %1945) #9
  store ptr %1946, ptr %255, align 8
  store i8 1, ptr %251, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %1947 unwind label %1963

1947:                                             ; preds = %1944
  call void @llvm.lifetime.end.p0(i64 8, ptr %255) #9
  br label %1948

1948:                                             ; preds = %1957, %1947
  %1949 = load i8, ptr %251, align 1, !tbaa !11, !range !13, !noundef !14
  %1950 = trunc i8 %1949 to i1
  br i1 %1950, label %1967, label %1951

1951:                                             ; preds = %1948
  %1952 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %250, i32 0, i32 0
  store ptr @.str.75, ptr %1952, align 8, !tbaa !15
  store i32 9, ptr %86, align 4
  br label %1968

1953:                                             ; preds = %1940
  %1954 = load ptr, ptr %6, align 8
  %1955 = call ptr @__cxa_begin_catch(ptr %1954) #9
  %1956 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %250, i32 0, i32 0
  store ptr @.str.74, ptr %1956, align 8, !tbaa !15
  store i32 9, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %1958 unwind label %1959

1957:                                             ; preds = %1920, %1917
  br label %1948

1958:                                             ; preds = %1953
  br label %1968

1959:                                             ; preds = %1953
  %1960 = landingpad { ptr, i32 }
          cleanup
  %1961 = extractvalue { ptr, i32 } %1960, 0
  store ptr %1961, ptr %6, align 8
  %1962 = extractvalue { ptr, i32 } %1960, 1
  store i32 %1962, ptr %7, align 4
  br label %1971

1963:                                             ; preds = %1944
  %1964 = landingpad { ptr, i32 }
          cleanup
  %1965 = extractvalue { ptr, i32 } %1964, 0
  store ptr %1965, ptr %6, align 8
  %1966 = extractvalue { ptr, i32 } %1964, 1
  store i32 %1966, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %255) #9
  br label %1971

1967:                                             ; preds = %1948
  store i32 0, ptr %86, align 4
  br label %1968

1968:                                             ; preds = %1967, %1958, %1951
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #9
  %1969 = load i32, ptr %86, align 4
  switch i32 %1969, label %2611 [
    i32 0, label %1970
    i32 9, label %1973
  ]

1970:                                             ; preds = %1968
  br label %1993

1971:                                             ; preds = %1963, %1959
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #9
  br label %2003

1972:                                             ; preds = %1914
  br label %1973

1973:                                             ; preds = %1972, %1968
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %256)
          to label %1974 unwind label %1979

1974:                                             ; preds = %1973
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #9
  %1975 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %250, i32 0, i32 0
  %1976 = load ptr, ptr %1975, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %257, i32 noundef 1, ptr noundef @.str.3, i32 noundef 97, ptr noundef %1976)
          to label %1977 unwind label %1983

1977:                                             ; preds = %1974
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull align 8 dereferenceable(8) %256)
          to label %1978 unwind label %1987

1978:                                             ; preds = %1977
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %257) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %256) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #9
  br label %1993

1979:                                             ; preds = %1973
  %1980 = landingpad { ptr, i32 }
          cleanup
  %1981 = extractvalue { ptr, i32 } %1980, 0
  store ptr %1981, ptr %6, align 8
  %1982 = extractvalue { ptr, i32 } %1980, 1
  store i32 %1982, ptr %7, align 4
  br label %1992

1983:                                             ; preds = %1974
  %1984 = landingpad { ptr, i32 }
          cleanup
  %1985 = extractvalue { ptr, i32 } %1984, 0
  store ptr %1985, ptr %6, align 8
  %1986 = extractvalue { ptr, i32 } %1984, 1
  store i32 %1986, ptr %7, align 4
  br label %1991

1987:                                             ; preds = %1977
  %1988 = landingpad { ptr, i32 }
          cleanup
  %1989 = extractvalue { ptr, i32 } %1988, 0
  store ptr %1989, ptr %6, align 8
  %1990 = extractvalue { ptr, i32 } %1988, 1
  store i32 %1990, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %257) #9
  br label %1991

1991:                                             ; preds = %1987, %1983
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %256) #9
  br label %1992

1992:                                             ; preds = %1991, %1979
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #9
  br label %2003

1993:                                             ; preds = %1978, %1970
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef @.str.4)
          to label %1994 unwind label %2004

1994:                                             ; preds = %1993
  %1995 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %258)
          to label %1996 unwind label %2004

1996:                                             ; preds = %1994
  br i1 %1995, label %1997, label %2053

1997:                                             ; preds = %1996
  call void @llvm.lifetime.start.p0(i64 1, ptr %259) #9
  store i8 0, ptr %259, align 1, !tbaa !11
  %1998 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1999 unwind label %2008

1999:                                             ; preds = %1997
  br i1 %1998, label %2000, label %2038

2000:                                             ; preds = %1999
  call void @llvm.lifetime.start.p0(i64 32, ptr %261) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %262) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %262)
          to label %2001 unwind label %2012

2001:                                             ; preds = %2000
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %260, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %261)
          to label %2002 unwind label %2016

2002:                                             ; preds = %2001
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %262) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %261) #9
  br label %2038

2003:                                             ; preds = %1992, %1971, %1923
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #9
  br label %2183

2004:                                             ; preds = %1994, %1993
  %2005 = landingpad { ptr, i32 }
          cleanup
  %2006 = extractvalue { ptr, i32 } %2005, 0
  store ptr %2006, ptr %6, align 8
  %2007 = extractvalue { ptr, i32 } %2005, 1
  store i32 %2007, ptr %7, align 4
  br label %2083

2008:                                             ; preds = %1997
  %2009 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %2010 = extractvalue { ptr, i32 } %2009, 0
  store ptr %2010, ptr %6, align 8
  %2011 = extractvalue { ptr, i32 } %2009, 1
  store i32 %2011, ptr %7, align 4
  br label %2021

2012:                                             ; preds = %2000
  %2013 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %2014 = extractvalue { ptr, i32 } %2013, 0
  store ptr %2014, ptr %6, align 8
  %2015 = extractvalue { ptr, i32 } %2013, 1
  store i32 %2015, ptr %7, align 4
  br label %2020

2016:                                             ; preds = %2001
  %2017 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %2018 = extractvalue { ptr, i32 } %2017, 0
  store ptr %2018, ptr %6, align 8
  %2019 = extractvalue { ptr, i32 } %2017, 1
  store i32 %2019, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #9
  br label %2020

2020:                                             ; preds = %2016, %2012
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %262) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %261) #9
  br label %2021

2021:                                             ; preds = %2020, %2008
  %2022 = load i32, ptr %7, align 4
  %2023 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd5errorE) #9
  %2024 = icmp eq i32 %2022, %2023
  br i1 %2024, label %2025, label %2034

2025:                                             ; preds = %2021
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #9
  %2026 = load ptr, ptr %6, align 8
  %2027 = call ptr @__cxa_begin_catch(ptr %2026) #9
  store ptr %2027, ptr %263, align 8
  store i8 1, ptr %259, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %2028 unwind label %2044

2028:                                             ; preds = %2025
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #9
  br label %2029

2029:                                             ; preds = %2038, %2028
  %2030 = load i8, ptr %259, align 1, !tbaa !11, !range !13, !noundef !14
  %2031 = trunc i8 %2030 to i1
  br i1 %2031, label %2048, label %2032

2032:                                             ; preds = %2029
  %2033 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %258, i32 0, i32 0
  store ptr @.str.78, ptr %2033, align 8, !tbaa !15
  store i32 10, ptr %86, align 4
  br label %2049

2034:                                             ; preds = %2021
  %2035 = load ptr, ptr %6, align 8
  %2036 = call ptr @__cxa_begin_catch(ptr %2035) #9
  %2037 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %258, i32 0, i32 0
  store ptr @.str.77, ptr %2037, align 8, !tbaa !15
  store i32 10, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %2039 unwind label %2040

2038:                                             ; preds = %2002, %1999
  br label %2029

2039:                                             ; preds = %2034
  br label %2049

2040:                                             ; preds = %2034
  %2041 = landingpad { ptr, i32 }
          cleanup
  %2042 = extractvalue { ptr, i32 } %2041, 0
  store ptr %2042, ptr %6, align 8
  %2043 = extractvalue { ptr, i32 } %2041, 1
  store i32 %2043, ptr %7, align 4
  br label %2052

2044:                                             ; preds = %2025
  %2045 = landingpad { ptr, i32 }
          cleanup
  %2046 = extractvalue { ptr, i32 } %2045, 0
  store ptr %2046, ptr %6, align 8
  %2047 = extractvalue { ptr, i32 } %2045, 1
  store i32 %2047, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #9
  br label %2052

2048:                                             ; preds = %2029
  store i32 0, ptr %86, align 4
  br label %2049

2049:                                             ; preds = %2048, %2039, %2032
  call void @llvm.lifetime.end.p0(i64 1, ptr %259) #9
  %2050 = load i32, ptr %86, align 4
  switch i32 %2050, label %2611 [
    i32 0, label %2051
    i32 10, label %2054
  ]

2051:                                             ; preds = %2049
  br label %2074

2052:                                             ; preds = %2044, %2040
  call void @llvm.lifetime.end.p0(i64 1, ptr %259) #9
  br label %2083

2053:                                             ; preds = %1996
  br label %2054

2054:                                             ; preds = %2053, %2049
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %264)
          to label %2055 unwind label %2060

2055:                                             ; preds = %2054
  call void @llvm.lifetime.start.p0(i64 8, ptr %265) #9
  %2056 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %258, i32 0, i32 0
  %2057 = load ptr, ptr %2056, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %265, i32 noundef 1, ptr noundef @.str.3, i32 noundef 98, ptr noundef %2057)
          to label %2058 unwind label %2064

2058:                                             ; preds = %2055
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %265, ptr noundef nonnull align 8 dereferenceable(8) %264)
          to label %2059 unwind label %2068

2059:                                             ; preds = %2058
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #9
  br label %2074

2060:                                             ; preds = %2054
  %2061 = landingpad { ptr, i32 }
          cleanup
  %2062 = extractvalue { ptr, i32 } %2061, 0
  store ptr %2062, ptr %6, align 8
  %2063 = extractvalue { ptr, i32 } %2061, 1
  store i32 %2063, ptr %7, align 4
  br label %2073

2064:                                             ; preds = %2055
  %2065 = landingpad { ptr, i32 }
          cleanup
  %2066 = extractvalue { ptr, i32 } %2065, 0
  store ptr %2066, ptr %6, align 8
  %2067 = extractvalue { ptr, i32 } %2065, 1
  store i32 %2067, ptr %7, align 4
  br label %2072

2068:                                             ; preds = %2058
  %2069 = landingpad { ptr, i32 }
          cleanup
  %2070 = extractvalue { ptr, i32 } %2069, 0
  store ptr %2070, ptr %6, align 8
  %2071 = extractvalue { ptr, i32 } %2069, 1
  store i32 %2071, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #9
  br label %2072

2072:                                             ; preds = %2068, %2064
  call void @llvm.lifetime.end.p0(i64 8, ptr %265) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #9
  br label %2073

2073:                                             ; preds = %2072, %2060
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #9
  br label %2083

2074:                                             ; preds = %2059, %2051
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %266) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %267) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %268) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %269) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %269)
          to label %2075 unwind label %2084

2075:                                             ; preds = %2074
  %2076 = invoke noundef zeroext i1 @_ZNK4chen3cmd5isSetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %268)
          to label %2077 unwind label %2088

2077:                                             ; preds = %2075
  %2078 = zext i1 %2076 to i8
  store i8 %2078, ptr %267, align 1, !tbaa !11
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %266, ptr noundef nonnull align 1 dereferenceable(1) %267, ptr noundef null)
          to label %2079 unwind label %2088

2079:                                             ; preds = %2077
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %267) #9
  %2080 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %266)
          to label %2081 unwind label %2093

2081:                                             ; preds = %2079
  br i1 %2080, label %2082, label %2097

2082:                                             ; preds = %2081
  br label %2122

2083:                                             ; preds = %2073, %2052, %2004
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #9
  br label %2183

2084:                                             ; preds = %2074
  %2085 = landingpad { ptr, i32 }
          cleanup
  %2086 = extractvalue { ptr, i32 } %2085, 0
  store ptr %2086, ptr %6, align 8
  %2087 = extractvalue { ptr, i32 } %2085, 1
  store i32 %2087, ptr %7, align 4
  br label %2092

2088:                                             ; preds = %2077, %2075
  %2089 = landingpad { ptr, i32 }
          cleanup
  %2090 = extractvalue { ptr, i32 } %2089, 0
  store ptr %2090, ptr %6, align 8
  %2091 = extractvalue { ptr, i32 } %2089, 1
  store i32 %2091, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #9
  br label %2092

2092:                                             ; preds = %2088, %2084
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %267) #9
  br label %2133

2093:                                             ; preds = %2079
  %2094 = landingpad { ptr, i32 }
          cleanup
  %2095 = extractvalue { ptr, i32 } %2094, 0
  store ptr %2095, ptr %6, align 8
  %2096 = extractvalue { ptr, i32 } %2094, 1
  store i32 %2096, ptr %7, align 4
  br label %2132

2097:                                             ; preds = %2081
  call void @llvm.lifetime.start.p0(i64 8, ptr %270) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %270)
          to label %2098 unwind label %2103

2098:                                             ; preds = %2097
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %272) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %272, ptr noundef nonnull align 8 dereferenceable(16) %266, ptr noundef @.str.79, ptr noundef @.str.50, ptr noundef @.str.49)
          to label %2099 unwind label %2107

2099:                                             ; preds = %2098
  %2100 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %272) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %271, i32 noundef 1, ptr noundef @.str.3, i32 noundef 100, ptr noundef %2100)
          to label %2101 unwind label %2111

2101:                                             ; preds = %2099
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull align 8 dereferenceable(8) %270)
          to label %2102 unwind label %2115

2102:                                             ; preds = %2101
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %271) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %270) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %270) #9
  br label %2122

2103:                                             ; preds = %2097
  %2104 = landingpad { ptr, i32 }
          cleanup
  %2105 = extractvalue { ptr, i32 } %2104, 0
  store ptr %2105, ptr %6, align 8
  %2106 = extractvalue { ptr, i32 } %2104, 1
  store i32 %2106, ptr %7, align 4
  br label %2121

2107:                                             ; preds = %2098
  %2108 = landingpad { ptr, i32 }
          cleanup
  %2109 = extractvalue { ptr, i32 } %2108, 0
  store ptr %2109, ptr %6, align 8
  %2110 = extractvalue { ptr, i32 } %2108, 1
  store i32 %2110, ptr %7, align 4
  br label %2120

2111:                                             ; preds = %2099
  %2112 = landingpad { ptr, i32 }
          cleanup
  %2113 = extractvalue { ptr, i32 } %2112, 0
  store ptr %2113, ptr %6, align 8
  %2114 = extractvalue { ptr, i32 } %2112, 1
  store i32 %2114, ptr %7, align 4
  br label %2119

2115:                                             ; preds = %2101
  %2116 = landingpad { ptr, i32 }
          cleanup
  %2117 = extractvalue { ptr, i32 } %2116, 0
  store ptr %2117, ptr %6, align 8
  %2118 = extractvalue { ptr, i32 } %2116, 1
  store i32 %2118, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %271) #9
  br label %2119

2119:                                             ; preds = %2115, %2111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #9
  br label %2120

2120:                                             ; preds = %2119, %2107
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %270) #9
  br label %2121

2121:                                             ; preds = %2120, %2103
  call void @llvm.lifetime.end.p0(i64 8, ptr %270) #9
  br label %2132

2122:                                             ; preds = %2102, %2082
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %266) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %266) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %273) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %274) #9
  %2123 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4chen3cmd7objectsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %2124 unwind label %2134

2124:                                             ; preds = %2122
  %2125 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %2123) #9
  %2126 = xor i1 %2125, true
  %2127 = zext i1 %2126 to i8
  store i8 %2127, ptr %274, align 1, !tbaa !11
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %273, ptr noundef nonnull align 1 dereferenceable(1) %274, ptr noundef null)
          to label %2128 unwind label %2134

2128:                                             ; preds = %2124
  call void @llvm.lifetime.end.p0(i64 1, ptr %274) #9
  %2129 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %273)
          to label %2130 unwind label %2138

2130:                                             ; preds = %2128
  br i1 %2129, label %2131, label %2142

2131:                                             ; preds = %2130
  br label %2167

2132:                                             ; preds = %2121, %2093
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %266) #9
  br label %2133

2133:                                             ; preds = %2132, %2092
  call void @llvm.lifetime.end.p0(i64 16, ptr %266) #9
  br label %2183

2134:                                             ; preds = %2124, %2122
  %2135 = landingpad { ptr, i32 }
          cleanup
  %2136 = extractvalue { ptr, i32 } %2135, 0
  store ptr %2136, ptr %6, align 8
  %2137 = extractvalue { ptr, i32 } %2135, 1
  store i32 %2137, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %274) #9
  br label %2182

2138:                                             ; preds = %2128
  %2139 = landingpad { ptr, i32 }
          cleanup
  %2140 = extractvalue { ptr, i32 } %2139, 0
  store ptr %2140, ptr %6, align 8
  %2141 = extractvalue { ptr, i32 } %2139, 1
  store i32 %2141, ptr %7, align 4
  br label %2181

2142:                                             ; preds = %2130
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %275)
          to label %2143 unwind label %2148

2143:                                             ; preds = %2142
  call void @llvm.lifetime.start.p0(i64 8, ptr %276) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %277) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %277, ptr noundef nonnull align 8 dereferenceable(16) %273, ptr noundef @.str.80, ptr noundef @.str.49, ptr noundef @.str.50)
          to label %2144 unwind label %2152

2144:                                             ; preds = %2143
  %2145 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %277) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %276, i32 noundef 1, ptr noundef @.str.3, i32 noundef 101, ptr noundef %2145)
          to label %2146 unwind label %2156

2146:                                             ; preds = %2144
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %276, ptr noundef nonnull align 8 dereferenceable(8) %275)
          to label %2147 unwind label %2160

2147:                                             ; preds = %2146
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %276) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %277) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %276) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %275) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #9
  br label %2167

2148:                                             ; preds = %2142
  %2149 = landingpad { ptr, i32 }
          cleanup
  %2150 = extractvalue { ptr, i32 } %2149, 0
  store ptr %2150, ptr %6, align 8
  %2151 = extractvalue { ptr, i32 } %2149, 1
  store i32 %2151, ptr %7, align 4
  br label %2166

2152:                                             ; preds = %2143
  %2153 = landingpad { ptr, i32 }
          cleanup
  %2154 = extractvalue { ptr, i32 } %2153, 0
  store ptr %2154, ptr %6, align 8
  %2155 = extractvalue { ptr, i32 } %2153, 1
  store i32 %2155, ptr %7, align 4
  br label %2165

2156:                                             ; preds = %2144
  %2157 = landingpad { ptr, i32 }
          cleanup
  %2158 = extractvalue { ptr, i32 } %2157, 0
  store ptr %2158, ptr %6, align 8
  %2159 = extractvalue { ptr, i32 } %2157, 1
  store i32 %2159, ptr %7, align 4
  br label %2164

2160:                                             ; preds = %2146
  %2161 = landingpad { ptr, i32 }
          cleanup
  %2162 = extractvalue { ptr, i32 } %2161, 0
  store ptr %2162, ptr %6, align 8
  %2163 = extractvalue { ptr, i32 } %2161, 1
  store i32 %2163, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %276) #9
  br label %2164

2164:                                             ; preds = %2160, %2156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #9
  br label %2165

2165:                                             ; preds = %2164, %2152
  call void @llvm.lifetime.end.p0(i64 32, ptr %277) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %276) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %275) #9
  br label %2166

2166:                                             ; preds = %2165, %2148
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #9
  br label %2181

2167:                                             ; preds = %2147, %2131
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %273) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %273) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr %232) #9
  call void @llvm.lifetime.start.p0(i64 7, ptr %278) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %278, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_module, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 7, ptr %279) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %279, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_update, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %280) #9
  %2168 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %2168, ptr %280, align 8, !tbaa !5
  %2169 = getelementptr inbounds ptr, ptr %280, i64 1
  %2170 = getelementptr inbounds [7 x i8], ptr %278, i64 0, i64 0
  store ptr %2170, ptr %2169, align 8, !tbaa !5
  %2171 = getelementptr inbounds ptr, ptr %280, i64 2
  %2172 = getelementptr inbounds [7 x i8], ptr %279, i64 0, i64 0
  store ptr %2172, ptr %2171, align 8, !tbaa !5
  %2173 = getelementptr inbounds ptr, ptr %280, i64 3
  store ptr null, ptr %2173, align 8, !tbaa !5
  %2174 = getelementptr inbounds [4 x ptr], ptr %280, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 3, ptr noundef %2174)
          to label %2175 unwind label %2184

2175:                                             ; preds = %2167
  call void @llvm.lifetime.start.p0(i64 16, ptr %281) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %282) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %282, ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %2176 unwind label %2188

2176:                                             ; preds = %2175
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind writable sret(%"class.testing::AssertionResult") align 8 %281, ptr noundef @.str.81, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(14) @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %282)
          to label %2177 unwind label %2192

2177:                                             ; preds = %2176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #9
  %2178 = invoke noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %281)
          to label %2179 unwind label %2197

2179:                                             ; preds = %2177
  br i1 %2178, label %2180, label %2201

2180:                                             ; preds = %2179
  br label %2221

2181:                                             ; preds = %2166, %2138
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %273) #9
  br label %2182

2182:                                             ; preds = %2181, %2134
  call void @llvm.lifetime.end.p0(i64 16, ptr %273) #9
  br label %2183

2183:                                             ; preds = %2182, %2133, %2083, %2003, %1922, %1872, %1830, %1784
  call void @llvm.lifetime.end.p0(i64 80, ptr %232) #9
  br label %2598

2184:                                             ; preds = %2167
  %2185 = landingpad { ptr, i32 }
          cleanup
  %2186 = extractvalue { ptr, i32 } %2185, 0
  store ptr %2186, ptr %6, align 8
  %2187 = extractvalue { ptr, i32 } %2185, 1
  store i32 %2187, ptr %7, align 4
  br label %2239

2188:                                             ; preds = %2175
  %2189 = landingpad { ptr, i32 }
          cleanup
  %2190 = extractvalue { ptr, i32 } %2189, 0
  store ptr %2190, ptr %6, align 8
  %2191 = extractvalue { ptr, i32 } %2189, 1
  store i32 %2191, ptr %7, align 4
  br label %2196

2192:                                             ; preds = %2176
  %2193 = landingpad { ptr, i32 }
          cleanup
  %2194 = extractvalue { ptr, i32 } %2193, 0
  store ptr %2194, ptr %6, align 8
  %2195 = extractvalue { ptr, i32 } %2193, 1
  store i32 %2195, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #9
  br label %2196

2196:                                             ; preds = %2192, %2188
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #9
  br label %2238

2197:                                             ; preds = %2177
  %2198 = landingpad { ptr, i32 }
          cleanup
  %2199 = extractvalue { ptr, i32 } %2198, 0
  store ptr %2199, ptr %6, align 8
  %2200 = extractvalue { ptr, i32 } %2198, 1
  store i32 %2200, ptr %7, align 4
  br label %2237

2201:                                             ; preds = %2179
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %283)
          to label %2202 unwind label %2207

2202:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 8, ptr %284) #9
  %2203 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %281)
          to label %2204 unwind label %2211

2204:                                             ; preds = %2202
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %284, i32 noundef 1, ptr noundef @.str.3, i32 noundef 113, ptr noundef %2203)
          to label %2205 unwind label %2211

2205:                                             ; preds = %2204
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull align 8 dereferenceable(8) %283)
          to label %2206 unwind label %2215

2206:                                             ; preds = %2205
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %283) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #9
  br label %2221

2207:                                             ; preds = %2201
  %2208 = landingpad { ptr, i32 }
          cleanup
  %2209 = extractvalue { ptr, i32 } %2208, 0
  store ptr %2209, ptr %6, align 8
  %2210 = extractvalue { ptr, i32 } %2208, 1
  store i32 %2210, ptr %7, align 4
  br label %2220

2211:                                             ; preds = %2204, %2202
  %2212 = landingpad { ptr, i32 }
          cleanup
  %2213 = extractvalue { ptr, i32 } %2212, 0
  store ptr %2213, ptr %6, align 8
  %2214 = extractvalue { ptr, i32 } %2212, 1
  store i32 %2214, ptr %7, align 4
  br label %2219

2215:                                             ; preds = %2205
  %2216 = landingpad { ptr, i32 }
          cleanup
  %2217 = extractvalue { ptr, i32 } %2216, 0
  store ptr %2217, ptr %6, align 8
  %2218 = extractvalue { ptr, i32 } %2216, 1
  store i32 %2218, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #9
  br label %2219

2219:                                             ; preds = %2215, %2211
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %283) #9
  br label %2220

2220:                                             ; preds = %2219, %2207
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #9
  br label %2237

2221:                                             ; preds = %2206, %2180
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %281) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %280) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %285, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_a, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %286) #9
  %2222 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %2222, ptr %286, align 8, !tbaa !5
  %2223 = getelementptr inbounds ptr, ptr %286, i64 1
  %2224 = getelementptr inbounds [6 x i8], ptr %192, i64 0, i64 0
  store ptr %2224, ptr %2223, align 8, !tbaa !5
  %2225 = getelementptr inbounds ptr, ptr %286, i64 2
  %2226 = getelementptr inbounds [4 x i8], ptr %285, i64 0, i64 0
  store ptr %2226, ptr %2225, align 8, !tbaa !5
  %2227 = getelementptr inbounds ptr, ptr %286, i64 3
  store ptr null, ptr %2227, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef @.str.4)
          to label %2228 unwind label %2240

2228:                                             ; preds = %2221
  %2229 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %287)
          to label %2230 unwind label %2240

2230:                                             ; preds = %2228
  br i1 %2229, label %2231, label %2280

2231:                                             ; preds = %2230
  call void @llvm.lifetime.start.p0(i64 1, ptr %288) #9
  store i8 0, ptr %288, align 1, !tbaa !11
  %2232 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2233 unwind label %2244

2233:                                             ; preds = %2231
  br i1 %2232, label %2234, label %2265

2234:                                             ; preds = %2233
  %2235 = getelementptr inbounds [4 x ptr], ptr %286, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 3, ptr noundef %2235)
          to label %2236 unwind label %2244

2236:                                             ; preds = %2234
  br label %2265

2237:                                             ; preds = %2220, %2197
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %281) #9
  br label %2238

2238:                                             ; preds = %2237, %2196
  call void @llvm.lifetime.end.p0(i64 16, ptr %281) #9
  br label %2239

2239:                                             ; preds = %2238, %2184
  call void @llvm.lifetime.end.p0(i64 32, ptr %280) #9
  br label %2597

2240:                                             ; preds = %2228, %2221
  %2241 = landingpad { ptr, i32 }
          cleanup
  %2242 = extractvalue { ptr, i32 } %2241, 0
  store ptr %2242, ptr %6, align 8
  %2243 = extractvalue { ptr, i32 } %2241, 1
  store i32 %2243, ptr %7, align 4
  br label %2317

2244:                                             ; preds = %2234, %2231
  %2245 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %2246 = extractvalue { ptr, i32 } %2245, 0
  store ptr %2246, ptr %6, align 8
  %2247 = extractvalue { ptr, i32 } %2245, 1
  store i32 %2247, ptr %7, align 4
  br label %2248

2248:                                             ; preds = %2244
  %2249 = load i32, ptr %7, align 4
  %2250 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd5errorE) #9
  %2251 = icmp eq i32 %2249, %2250
  br i1 %2251, label %2252, label %2261

2252:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #9
  %2253 = load ptr, ptr %6, align 8
  %2254 = call ptr @__cxa_begin_catch(ptr %2253) #9
  store ptr %2254, ptr %289, align 8
  store i8 1, ptr %288, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %2255 unwind label %2271

2255:                                             ; preds = %2252
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #9
  br label %2256

2256:                                             ; preds = %2265, %2255
  %2257 = load i8, ptr %288, align 1, !tbaa !11, !range !13, !noundef !14
  %2258 = trunc i8 %2257 to i1
  br i1 %2258, label %2275, label %2259

2259:                                             ; preds = %2256
  %2260 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %287, i32 0, i32 0
  store ptr @.str.83, ptr %2260, align 8, !tbaa !15
  store i32 11, ptr %86, align 4
  br label %2276

2261:                                             ; preds = %2248
  %2262 = load ptr, ptr %6, align 8
  %2263 = call ptr @__cxa_begin_catch(ptr %2262) #9
  %2264 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %287, i32 0, i32 0
  store ptr @.str.82, ptr %2264, align 8, !tbaa !15
  store i32 11, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %2266 unwind label %2267

2265:                                             ; preds = %2236, %2233
  br label %2256

2266:                                             ; preds = %2261
  br label %2276

2267:                                             ; preds = %2261
  %2268 = landingpad { ptr, i32 }
          cleanup
  %2269 = extractvalue { ptr, i32 } %2268, 0
  store ptr %2269, ptr %6, align 8
  %2270 = extractvalue { ptr, i32 } %2268, 1
  store i32 %2270, ptr %7, align 4
  br label %2279

2271:                                             ; preds = %2252
  %2272 = landingpad { ptr, i32 }
          cleanup
  %2273 = extractvalue { ptr, i32 } %2272, 0
  store ptr %2273, ptr %6, align 8
  %2274 = extractvalue { ptr, i32 } %2272, 1
  store i32 %2274, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #9
  br label %2279

2275:                                             ; preds = %2256
  store i32 0, ptr %86, align 4
  br label %2276

2276:                                             ; preds = %2275, %2266, %2259
  call void @llvm.lifetime.end.p0(i64 1, ptr %288) #9
  %2277 = load i32, ptr %86, align 4
  switch i32 %2277, label %2611 [
    i32 0, label %2278
    i32 11, label %2281
  ]

2278:                                             ; preds = %2276
  br label %2301

2279:                                             ; preds = %2271, %2267
  call void @llvm.lifetime.end.p0(i64 1, ptr %288) #9
  br label %2317

2280:                                             ; preds = %2230
  br label %2281

2281:                                             ; preds = %2280, %2276
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %290)
          to label %2282 unwind label %2287

2282:                                             ; preds = %2281
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #9
  %2283 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %287, i32 0, i32 0
  %2284 = load ptr, ptr %2283, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %291, i32 noundef 1, ptr noundef @.str.3, i32 noundef 122, ptr noundef %2284)
          to label %2285 unwind label %2291

2285:                                             ; preds = %2282
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(8) %290)
          to label %2286 unwind label %2295

2286:                                             ; preds = %2285
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #9
  br label %2301

2287:                                             ; preds = %2281
  %2288 = landingpad { ptr, i32 }
          cleanup
  %2289 = extractvalue { ptr, i32 } %2288, 0
  store ptr %2289, ptr %6, align 8
  %2290 = extractvalue { ptr, i32 } %2288, 1
  store i32 %2290, ptr %7, align 4
  br label %2300

2291:                                             ; preds = %2282
  %2292 = landingpad { ptr, i32 }
          cleanup
  %2293 = extractvalue { ptr, i32 } %2292, 0
  store ptr %2293, ptr %6, align 8
  %2294 = extractvalue { ptr, i32 } %2292, 1
  store i32 %2294, ptr %7, align 4
  br label %2299

2295:                                             ; preds = %2285
  %2296 = landingpad { ptr, i32 }
          cleanup
  %2297 = extractvalue { ptr, i32 } %2296, 0
  store ptr %2297, ptr %6, align 8
  %2298 = extractvalue { ptr, i32 } %2296, 1
  store i32 %2298, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #9
  br label %2299

2299:                                             ; preds = %2295, %2291
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #9
  br label %2300

2300:                                             ; preds = %2299, %2287
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #9
  br label %2317

2301:                                             ; preds = %2286, %2278
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %286) #9
  call void @llvm.lifetime.start.p0(i64 9, ptr %292) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %292, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_speedx, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %293) #9
  %2302 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %2302, ptr %293, align 8, !tbaa !5
  %2303 = getelementptr inbounds ptr, ptr %293, i64 1
  %2304 = getelementptr inbounds [6 x i8], ptr %192, i64 0, i64 0
  store ptr %2304, ptr %2303, align 8, !tbaa !5
  %2305 = getelementptr inbounds ptr, ptr %293, i64 2
  %2306 = getelementptr inbounds [9 x i8], ptr %292, i64 0, i64 0
  store ptr %2306, ptr %2305, align 8, !tbaa !5
  %2307 = getelementptr inbounds ptr, ptr %293, i64 3
  store ptr null, ptr %2307, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef @.str.4)
          to label %2308 unwind label %2318

2308:                                             ; preds = %2301
  %2309 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %294)
          to label %2310 unwind label %2318

2310:                                             ; preds = %2308
  br i1 %2309, label %2311, label %2358

2311:                                             ; preds = %2310
  call void @llvm.lifetime.start.p0(i64 1, ptr %295) #9
  store i8 0, ptr %295, align 1, !tbaa !11
  %2312 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2313 unwind label %2322

2313:                                             ; preds = %2311
  br i1 %2312, label %2314, label %2343

2314:                                             ; preds = %2313
  %2315 = getelementptr inbounds [4 x ptr], ptr %293, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 3, ptr noundef %2315)
          to label %2316 unwind label %2322

2316:                                             ; preds = %2314
  br label %2343

2317:                                             ; preds = %2300, %2279, %2240
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %286) #9
  br label %2596

2318:                                             ; preds = %2308, %2301
  %2319 = landingpad { ptr, i32 }
          cleanup
  %2320 = extractvalue { ptr, i32 } %2319, 0
  store ptr %2320, ptr %6, align 8
  %2321 = extractvalue { ptr, i32 } %2319, 1
  store i32 %2321, ptr %7, align 4
  br label %2395

2322:                                             ; preds = %2314, %2311
  %2323 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %2324 = extractvalue { ptr, i32 } %2323, 0
  store ptr %2324, ptr %6, align 8
  %2325 = extractvalue { ptr, i32 } %2323, 1
  store i32 %2325, ptr %7, align 4
  br label %2326

2326:                                             ; preds = %2322
  %2327 = load i32, ptr %7, align 4
  %2328 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd5errorE) #9
  %2329 = icmp eq i32 %2327, %2328
  br i1 %2329, label %2330, label %2339

2330:                                             ; preds = %2326
  call void @llvm.lifetime.start.p0(i64 8, ptr %296) #9
  %2331 = load ptr, ptr %6, align 8
  %2332 = call ptr @__cxa_begin_catch(ptr %2331) #9
  store ptr %2332, ptr %296, align 8
  store i8 1, ptr %295, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %2333 unwind label %2349

2333:                                             ; preds = %2330
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #9
  br label %2334

2334:                                             ; preds = %2343, %2333
  %2335 = load i8, ptr %295, align 1, !tbaa !11, !range !13, !noundef !14
  %2336 = trunc i8 %2335 to i1
  br i1 %2336, label %2353, label %2337

2337:                                             ; preds = %2334
  %2338 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %294, i32 0, i32 0
  store ptr @.str.83, ptr %2338, align 8, !tbaa !15
  store i32 12, ptr %86, align 4
  br label %2354

2339:                                             ; preds = %2326
  %2340 = load ptr, ptr %6, align 8
  %2341 = call ptr @__cxa_begin_catch(ptr %2340) #9
  %2342 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %294, i32 0, i32 0
  store ptr @.str.82, ptr %2342, align 8, !tbaa !15
  store i32 12, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %2344 unwind label %2345

2343:                                             ; preds = %2316, %2313
  br label %2334

2344:                                             ; preds = %2339
  br label %2354

2345:                                             ; preds = %2339
  %2346 = landingpad { ptr, i32 }
          cleanup
  %2347 = extractvalue { ptr, i32 } %2346, 0
  store ptr %2347, ptr %6, align 8
  %2348 = extractvalue { ptr, i32 } %2346, 1
  store i32 %2348, ptr %7, align 4
  br label %2357

2349:                                             ; preds = %2330
  %2350 = landingpad { ptr, i32 }
          cleanup
  %2351 = extractvalue { ptr, i32 } %2350, 0
  store ptr %2351, ptr %6, align 8
  %2352 = extractvalue { ptr, i32 } %2350, 1
  store i32 %2352, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #9
  br label %2357

2353:                                             ; preds = %2334
  store i32 0, ptr %86, align 4
  br label %2354

2354:                                             ; preds = %2353, %2344, %2337
  call void @llvm.lifetime.end.p0(i64 1, ptr %295) #9
  %2355 = load i32, ptr %86, align 4
  switch i32 %2355, label %2611 [
    i32 0, label %2356
    i32 12, label %2359
  ]

2356:                                             ; preds = %2354
  br label %2379

2357:                                             ; preds = %2349, %2345
  call void @llvm.lifetime.end.p0(i64 1, ptr %295) #9
  br label %2395

2358:                                             ; preds = %2310
  br label %2359

2359:                                             ; preds = %2358, %2354
  call void @llvm.lifetime.start.p0(i64 8, ptr %297) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %297)
          to label %2360 unwind label %2365

2360:                                             ; preds = %2359
  call void @llvm.lifetime.start.p0(i64 8, ptr %298) #9
  %2361 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %294, i32 0, i32 0
  %2362 = load ptr, ptr %2361, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %298, i32 noundef 1, ptr noundef @.str.3, i32 noundef 130, ptr noundef %2362)
          to label %2363 unwind label %2369

2363:                                             ; preds = %2360
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull align 8 dereferenceable(8) %297)
          to label %2364 unwind label %2373

2364:                                             ; preds = %2363
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %298) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %297) #9
  br label %2379

2365:                                             ; preds = %2359
  %2366 = landingpad { ptr, i32 }
          cleanup
  %2367 = extractvalue { ptr, i32 } %2366, 0
  store ptr %2367, ptr %6, align 8
  %2368 = extractvalue { ptr, i32 } %2366, 1
  store i32 %2368, ptr %7, align 4
  br label %2378

2369:                                             ; preds = %2360
  %2370 = landingpad { ptr, i32 }
          cleanup
  %2371 = extractvalue { ptr, i32 } %2370, 0
  store ptr %2371, ptr %6, align 8
  %2372 = extractvalue { ptr, i32 } %2370, 1
  store i32 %2372, ptr %7, align 4
  br label %2377

2373:                                             ; preds = %2363
  %2374 = landingpad { ptr, i32 }
          cleanup
  %2375 = extractvalue { ptr, i32 } %2374, 0
  store ptr %2375, ptr %6, align 8
  %2376 = extractvalue { ptr, i32 } %2374, 1
  store i32 %2376, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %298) #9
  br label %2377

2377:                                             ; preds = %2373, %2369
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #9
  br label %2378

2378:                                             ; preds = %2377, %2365
  call void @llvm.lifetime.end.p0(i64 8, ptr %297) #9
  br label %2395

2379:                                             ; preds = %2364, %2356
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #9
  call void @llvm.lifetime.start.p0(i64 3, ptr %299) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %299, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_x, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %300) #9
  %2380 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %2380, ptr %300, align 8, !tbaa !5
  %2381 = getelementptr inbounds ptr, ptr %300, i64 1
  %2382 = getelementptr inbounds [6 x i8], ptr %192, i64 0, i64 0
  store ptr %2382, ptr %2381, align 8, !tbaa !5
  %2383 = getelementptr inbounds ptr, ptr %300, i64 2
  %2384 = getelementptr inbounds [3 x i8], ptr %299, i64 0, i64 0
  store ptr %2384, ptr %2383, align 8, !tbaa !5
  %2385 = getelementptr inbounds ptr, ptr %300, i64 3
  store ptr null, ptr %2385, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #9
  invoke void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef @.str.4)
          to label %2386 unwind label %2396

2386:                                             ; preds = %2379
  %2387 = invoke noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %301)
          to label %2388 unwind label %2396

2388:                                             ; preds = %2386
  br i1 %2387, label %2389, label %2436

2389:                                             ; preds = %2388
  call void @llvm.lifetime.start.p0(i64 1, ptr %302) #9
  store i8 0, ptr %302, align 1, !tbaa !11
  %2390 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2391 unwind label %2400

2391:                                             ; preds = %2389
  br i1 %2390, label %2392, label %2421

2392:                                             ; preds = %2391
  %2393 = getelementptr inbounds [4 x ptr], ptr %300, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 3, ptr noundef %2393)
          to label %2394 unwind label %2400

2394:                                             ; preds = %2392
  br label %2421

2395:                                             ; preds = %2378, %2357, %2318
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #9
  br label %2595

2396:                                             ; preds = %2386, %2379
  %2397 = landingpad { ptr, i32 }
          cleanup
  %2398 = extractvalue { ptr, i32 } %2397, 0
  store ptr %2398, ptr %6, align 8
  %2399 = extractvalue { ptr, i32 } %2397, 1
  store i32 %2399, ptr %7, align 4
  br label %2471

2400:                                             ; preds = %2392, %2389
  %2401 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %2402 = extractvalue { ptr, i32 } %2401, 0
  store ptr %2402, ptr %6, align 8
  %2403 = extractvalue { ptr, i32 } %2401, 1
  store i32 %2403, ptr %7, align 4
  br label %2404

2404:                                             ; preds = %2400
  %2405 = load i32, ptr %7, align 4
  %2406 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd5errorE) #9
  %2407 = icmp eq i32 %2405, %2406
  br i1 %2407, label %2408, label %2417

2408:                                             ; preds = %2404
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #9
  %2409 = load ptr, ptr %6, align 8
  %2410 = call ptr @__cxa_begin_catch(ptr %2409) #9
  store ptr %2410, ptr %303, align 8
  store i8 1, ptr %302, align 1, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %2411 unwind label %2427

2411:                                             ; preds = %2408
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #9
  br label %2412

2412:                                             ; preds = %2421, %2411
  %2413 = load i8, ptr %302, align 1, !tbaa !11, !range !13, !noundef !14
  %2414 = trunc i8 %2413 to i1
  br i1 %2414, label %2431, label %2415

2415:                                             ; preds = %2412
  %2416 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %301, i32 0, i32 0
  store ptr @.str.83, ptr %2416, align 8, !tbaa !15
  store i32 13, ptr %86, align 4
  br label %2432

2417:                                             ; preds = %2404
  %2418 = load ptr, ptr %6, align 8
  %2419 = call ptr @__cxa_begin_catch(ptr %2418) #9
  %2420 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %301, i32 0, i32 0
  store ptr @.str.82, ptr %2420, align 8, !tbaa !15
  store i32 13, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %2422 unwind label %2423

2421:                                             ; preds = %2394, %2391
  br label %2412

2422:                                             ; preds = %2417
  br label %2432

2423:                                             ; preds = %2417
  %2424 = landingpad { ptr, i32 }
          cleanup
  %2425 = extractvalue { ptr, i32 } %2424, 0
  store ptr %2425, ptr %6, align 8
  %2426 = extractvalue { ptr, i32 } %2424, 1
  store i32 %2426, ptr %7, align 4
  br label %2435

2427:                                             ; preds = %2408
  %2428 = landingpad { ptr, i32 }
          cleanup
  %2429 = extractvalue { ptr, i32 } %2428, 0
  store ptr %2429, ptr %6, align 8
  %2430 = extractvalue { ptr, i32 } %2428, 1
  store i32 %2430, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #9
  br label %2435

2431:                                             ; preds = %2412
  store i32 0, ptr %86, align 4
  br label %2432

2432:                                             ; preds = %2431, %2422, %2415
  call void @llvm.lifetime.end.p0(i64 1, ptr %302) #9
  %2433 = load i32, ptr %86, align 4
  switch i32 %2433, label %2611 [
    i32 0, label %2434
    i32 13, label %2437
  ]

2434:                                             ; preds = %2432
  br label %2457

2435:                                             ; preds = %2427, %2423
  call void @llvm.lifetime.end.p0(i64 1, ptr %302) #9
  br label %2471

2436:                                             ; preds = %2388
  br label %2437

2437:                                             ; preds = %2436, %2432
  call void @llvm.lifetime.start.p0(i64 8, ptr %304) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %304)
          to label %2438 unwind label %2443

2438:                                             ; preds = %2437
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #9
  %2439 = getelementptr inbounds %"struct.testing::internal::ConstCharPtr", ptr %301, i32 0, i32 0
  %2440 = load ptr, ptr %2439, align 8, !tbaa !15
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %305, i32 noundef 1, ptr noundef @.str.3, i32 noundef 138, ptr noundef %2440)
          to label %2441 unwind label %2447

2441:                                             ; preds = %2438
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull align 8 dereferenceable(8) %304)
          to label %2442 unwind label %2451

2442:                                             ; preds = %2441
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %304) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %304) #9
  br label %2457

2443:                                             ; preds = %2437
  %2444 = landingpad { ptr, i32 }
          cleanup
  %2445 = extractvalue { ptr, i32 } %2444, 0
  store ptr %2445, ptr %6, align 8
  %2446 = extractvalue { ptr, i32 } %2444, 1
  store i32 %2446, ptr %7, align 4
  br label %2456

2447:                                             ; preds = %2438
  %2448 = landingpad { ptr, i32 }
          cleanup
  %2449 = extractvalue { ptr, i32 } %2448, 0
  store ptr %2449, ptr %6, align 8
  %2450 = extractvalue { ptr, i32 } %2448, 1
  store i32 %2450, ptr %7, align 4
  br label %2455

2451:                                             ; preds = %2441
  %2452 = landingpad { ptr, i32 }
          cleanup
  %2453 = extractvalue { ptr, i32 } %2452, 0
  store ptr %2453, ptr %6, align 8
  %2454 = extractvalue { ptr, i32 } %2452, 1
  store i32 %2454, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #9
  br label %2455

2455:                                             ; preds = %2451, %2447
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %304) #9
  br label %2456

2456:                                             ; preds = %2455, %2443
  call void @llvm.lifetime.end.p0(i64 8, ptr %304) #9
  br label %2471

2457:                                             ; preds = %2442, %2434
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %300) #9
  call void @llvm.lifetime.start.p0(i64 6, ptr %306) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %306, ptr align 1 @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_editi, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %307) #9
  %2458 = getelementptr inbounds [4 x i8], ptr %171, i64 0, i64 0
  store ptr %2458, ptr %307, align 8, !tbaa !5
  %2459 = getelementptr inbounds ptr, ptr %307, i64 1
  %2460 = getelementptr inbounds [6 x i8], ptr %306, i64 0, i64 0
  store ptr %2460, ptr %2459, align 8, !tbaa !5
  %2461 = getelementptr inbounds ptr, ptr %307, i64 2
  store ptr null, ptr %2461, align 8, !tbaa !5
  %2462 = getelementptr inbounds [3 x ptr], ptr %307, i64 0, i64 0
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %3, i32 noundef 2, ptr noundef %2462)
          to label %2463 unwind label %2472

2463:                                             ; preds = %2457
  %2464 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2465 unwind label %2472

2465:                                             ; preds = %2463
  br i1 %2464, label %2466, label %2486

2466:                                             ; preds = %2465
  %2467 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %2468 unwind label %2476

2468:                                             ; preds = %2466
  br i1 %2467, label %2469, label %2483

2469:                                             ; preds = %2468
  %2470 = call ptr @__cxa_allocate_exception(i64 8) #9
  store ptr @.str.84, ptr %2470, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr %2470, ptr @_ZTIPKc, ptr null) #10
          to label %2611 unwind label %2476

2471:                                             ; preds = %2456, %2435, %2396
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %300) #9
  br label %2594

2472:                                             ; preds = %2480, %2463, %2457
  %2473 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  %2474 = extractvalue { ptr, i32 } %2473, 0
  store ptr %2474, ptr %6, align 8
  %2475 = extractvalue { ptr, i32 } %2473, 1
  store i32 %2475, ptr %7, align 4
  br label %2505

2476:                                             ; preds = %2469, %2466
  %2477 = landingpad { ptr, i32 }
          catch ptr null
  %2478 = extractvalue { ptr, i32 } %2477, 0
  store ptr %2478, ptr %6, align 8
  %2479 = extractvalue { ptr, i32 } %2477, 1
  store i32 %2479, ptr %7, align 4
  br label %2480

2480:                                             ; preds = %2476
  %2481 = load ptr, ptr %6, align 8
  %2482 = call ptr @__cxa_begin_catch(ptr %2481) #9
  store i32 14, ptr %86, align 4
  invoke void @__cxa_end_catch()
          to label %2484 unwind label %2472

2483:                                             ; preds = %2468
  br label %2485

2484:                                             ; preds = %2480
  br label %2487

2485:                                             ; preds = %2483
  br label %2528

2486:                                             ; preds = %2465
  br label %2487

2487:                                             ; preds = %2486, %2484
  call void @llvm.lifetime.start.p0(i64 8, ptr %308) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %308)
          to label %2488 unwind label %2491

2488:                                             ; preds = %2487
  call void @llvm.lifetime.start.p0(i64 8, ptr %309) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %309, i32 noundef 1, ptr noundef @.str.3, i32 noundef 150, ptr noundef @.str.85)
          to label %2489 unwind label %2495

2489:                                             ; preds = %2488
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(8) %308)
          to label %2490 unwind label %2499

2490:                                             ; preds = %2489
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #9
  br label %2528

2491:                                             ; preds = %2487
  %2492 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  %2493 = extractvalue { ptr, i32 } %2492, 0
  store ptr %2493, ptr %6, align 8
  %2494 = extractvalue { ptr, i32 } %2492, 1
  store i32 %2494, ptr %7, align 4
  br label %2504

2495:                                             ; preds = %2488
  %2496 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  %2497 = extractvalue { ptr, i32 } %2496, 0
  store ptr %2497, ptr %6, align 8
  %2498 = extractvalue { ptr, i32 } %2496, 1
  store i32 %2498, ptr %7, align 4
  br label %2503

2499:                                             ; preds = %2489
  %2500 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  %2501 = extractvalue { ptr, i32 } %2500, 0
  store ptr %2501, ptr %6, align 8
  %2502 = extractvalue { ptr, i32 } %2500, 1
  store i32 %2502, ptr %7, align 4
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #9
  br label %2503

2503:                                             ; preds = %2499, %2495
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #9
  br label %2504

2504:                                             ; preds = %2503, %2491
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #9
  br label %2505

2505:                                             ; preds = %2504, %2472
  %2506 = load i32, ptr %7, align 4
  %2507 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4chen3cmd11error_parseE) #9
  %2508 = icmp eq i32 %2506, %2507
  br i1 %2508, label %2509, label %2593

2509:                                             ; preds = %2505
  call void @llvm.lifetime.start.p0(i64 8, ptr %310) #9
  %2510 = load ptr, ptr %6, align 8
  %2511 = call ptr @__cxa_begin_catch(ptr %2510) #9
  store ptr %2511, ptr %310, align 8
  %2512 = load ptr, ptr %310, align 8, !tbaa !5
  invoke void @_ZNK4chen3cmd5usageB5cxx11ERKNS0_11error_parseE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %311, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(80) %2512)
          to label %2513 unwind label %2529

2513:                                             ; preds = %2509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #9
  invoke void @__cxa_end_catch()
          to label %2514 unwind label %2533

2514:                                             ; preds = %2513
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #9
  br label %2515

2515:                                             ; preds = %2528, %2514
  invoke void @_ZNK4chen3cmd5usageB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %312, ptr noundef nonnull align 8 dereferenceable(224) %3)
          to label %2516 unwind label %2539

2516:                                             ; preds = %2515
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %314) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %315) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %315)
          to label %2517 unwind label %2543

2517:                                             ; preds = %2516
  invoke void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %313, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %314)
          to label %2518 unwind label %2547

2518:                                             ; preds = %2517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %317) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %318) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %318)
          to label %2519 unwind label %2552

2519:                                             ; preds = %2518
  call void @llvm.lifetime.start.p0(i64 32, ptr %319) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %320) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %320)
          to label %2520 unwind label %2556

2520:                                             ; preds = %2519
  invoke void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %316, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull align 8 dereferenceable(32) %319)
          to label %2521 unwind label %2560

2521:                                             ; preds = %2520
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %320) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %319) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %317) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %322) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %323) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %323)
          to label %2522 unwind label %2566

2522:                                             ; preds = %2521
  call void @llvm.lifetime.start.p0(i64 32, ptr %324) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %325) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %325)
          to label %2523 unwind label %2570

2523:                                             ; preds = %2522
  invoke void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %321, ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull align 8 dereferenceable(32) %324)
          to label %2524 unwind label %2574

2524:                                             ; preds = %2523
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %325) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %323) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %327) #9
  call void @"_ZNSt8functionIFvRKN4chen3cmd6actionEmmEEC2IZN24ToolCmdTest_General_Test8TestBodyEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef nonnull align 1 dereferenceable(1) %327) #9
  call void @_ZNSt8functionIFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %328, ptr null) #9
  invoke void @_ZNK4chen3cmd5visitESt8functionIFvRKNS0_6actionEmmEES1_IFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef %326, ptr noundef %328)
          to label %2525 unwind label %2580

2525:                                             ; preds = %2524
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %327) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %329) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %330) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %2526 unwind label %2584

2526:                                             ; preds = %2525
  call void @llvm.lifetime.start.p0(i64 1, ptr %332) #9
  call void @"_ZNSt8functionIFvRKN4chen3cmd6optionEmmEEC2IZN24ToolCmdTest_General_Test8TestBodyEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull align 1 dereferenceable(1) %332) #9
  call void @_ZNSt8functionIFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %333, ptr null) #9
  invoke void @_ZNK4chen3cmd5visitERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFvRKNS0_6optionEmmEES9_IFbS8_S8_EE(ptr noundef nonnull align 8 dereferenceable(224) %3, ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef %331, ptr noundef %333)
          to label %2527 unwind label %2588

2527:                                             ; preds = %2526
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %332) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %330) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %329) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %307) #9
  call void @llvm.lifetime.end.p0(i64 6, ptr %306) #9
  call void @llvm.lifetime.end.p0(i64 3, ptr %299) #9
  call void @llvm.lifetime.end.p0(i64 9, ptr %292) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #9
  call void @llvm.lifetime.end.p0(i64 7, ptr %279) #9
  call void @llvm.lifetime.end.p0(i64 7, ptr %278) #9
  call void @llvm.lifetime.end.p0(i64 10, ptr %231) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #9
  call void @llvm.lifetime.end.p0(i64 3, ptr %229) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %228) #9
  call void @llvm.lifetime.end.p0(i64 9, ptr %227) #9
  call void @llvm.lifetime.end.p0(i64 13, ptr %226) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr %225) #9
  call void @llvm.lifetime.end.p0(i64 6, ptr %192) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #9
  call void @_ZN4chen3cmdD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %3) #9
  call void @llvm.lifetime.end.p0(i64 224, ptr %3) #9
  ret void

2528:                                             ; preds = %2490, %2485
  br label %2515

2529:                                             ; preds = %2509
  %2530 = landingpad { ptr, i32 }
          cleanup
  %2531 = extractvalue { ptr, i32 } %2530, 0
  store ptr %2531, ptr %6, align 8
  %2532 = extractvalue { ptr, i32 } %2530, 1
  store i32 %2532, ptr %7, align 4
  invoke void @__cxa_end_catch()
          to label %2537 unwind label %2608

2533:                                             ; preds = %2513
  %2534 = landingpad { ptr, i32 }
          cleanup
  %2535 = extractvalue { ptr, i32 } %2534, 0
  store ptr %2535, ptr %6, align 8
  %2536 = extractvalue { ptr, i32 } %2534, 1
  store i32 %2536, ptr %7, align 4
  br label %2538

2537:                                             ; preds = %2529
  br label %2538

2538:                                             ; preds = %2537, %2533
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #9
  br label %2593

2539:                                             ; preds = %2515
  %2540 = landingpad { ptr, i32 }
          cleanup
  %2541 = extractvalue { ptr, i32 } %2540, 0
  store ptr %2541, ptr %6, align 8
  %2542 = extractvalue { ptr, i32 } %2540, 1
  store i32 %2542, ptr %7, align 4
  br label %2593

2543:                                             ; preds = %2516
  %2544 = landingpad { ptr, i32 }
          cleanup
  %2545 = extractvalue { ptr, i32 } %2544, 0
  store ptr %2545, ptr %6, align 8
  %2546 = extractvalue { ptr, i32 } %2544, 1
  store i32 %2546, ptr %7, align 4
  br label %2551

2547:                                             ; preds = %2517
  %2548 = landingpad { ptr, i32 }
          cleanup
  %2549 = extractvalue { ptr, i32 } %2548, 0
  store ptr %2549, ptr %6, align 8
  %2550 = extractvalue { ptr, i32 } %2548, 1
  store i32 %2550, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #9
  br label %2551

2551:                                             ; preds = %2547, %2543
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #9
  br label %2593

2552:                                             ; preds = %2518
  %2553 = landingpad { ptr, i32 }
          cleanup
  %2554 = extractvalue { ptr, i32 } %2553, 0
  store ptr %2554, ptr %6, align 8
  %2555 = extractvalue { ptr, i32 } %2553, 1
  store i32 %2555, ptr %7, align 4
  br label %2565

2556:                                             ; preds = %2519
  %2557 = landingpad { ptr, i32 }
          cleanup
  %2558 = extractvalue { ptr, i32 } %2557, 0
  store ptr %2558, ptr %6, align 8
  %2559 = extractvalue { ptr, i32 } %2557, 1
  store i32 %2559, ptr %7, align 4
  br label %2564

2560:                                             ; preds = %2520
  %2561 = landingpad { ptr, i32 }
          cleanup
  %2562 = extractvalue { ptr, i32 } %2561, 0
  store ptr %2562, ptr %6, align 8
  %2563 = extractvalue { ptr, i32 } %2561, 1
  store i32 %2563, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #9
  br label %2564

2564:                                             ; preds = %2560, %2556
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %320) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %319) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #9
  br label %2565

2565:                                             ; preds = %2564, %2552
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %317) #9
  br label %2593

2566:                                             ; preds = %2521
  %2567 = landingpad { ptr, i32 }
          cleanup
  %2568 = extractvalue { ptr, i32 } %2567, 0
  store ptr %2568, ptr %6, align 8
  %2569 = extractvalue { ptr, i32 } %2567, 1
  store i32 %2569, ptr %7, align 4
  br label %2579

2570:                                             ; preds = %2522
  %2571 = landingpad { ptr, i32 }
          cleanup
  %2572 = extractvalue { ptr, i32 } %2571, 0
  store ptr %2572, ptr %6, align 8
  %2573 = extractvalue { ptr, i32 } %2571, 1
  store i32 %2573, ptr %7, align 4
  br label %2578

2574:                                             ; preds = %2523
  %2575 = landingpad { ptr, i32 }
          cleanup
  %2576 = extractvalue { ptr, i32 } %2575, 0
  store ptr %2576, ptr %6, align 8
  %2577 = extractvalue { ptr, i32 } %2575, 1
  store i32 %2577, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #9
  br label %2578

2578:                                             ; preds = %2574, %2570
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %325) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #9
  br label %2579

2579:                                             ; preds = %2578, %2566
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %323) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #9
  br label %2593

2580:                                             ; preds = %2524
  %2581 = landingpad { ptr, i32 }
          cleanup
  %2582 = extractvalue { ptr, i32 } %2581, 0
  store ptr %2582, ptr %6, align 8
  %2583 = extractvalue { ptr, i32 } %2581, 1
  store i32 %2583, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %327) #9
  br label %2593

2584:                                             ; preds = %2525
  %2585 = landingpad { ptr, i32 }
          cleanup
  %2586 = extractvalue { ptr, i32 } %2585, 0
  store ptr %2586, ptr %6, align 8
  %2587 = extractvalue { ptr, i32 } %2585, 1
  store i32 %2587, ptr %7, align 4
  br label %2592

2588:                                             ; preds = %2526
  %2589 = landingpad { ptr, i32 }
          cleanup
  %2590 = extractvalue { ptr, i32 } %2589, 0
  store ptr %2590, ptr %6, align 8
  %2591 = extractvalue { ptr, i32 } %2589, 1
  store i32 %2591, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %332) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #9
  br label %2592

2592:                                             ; preds = %2588, %2584
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %330) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %329) #9
  br label %2593

2593:                                             ; preds = %2592, %2580, %2579, %2565, %2551, %2539, %2538, %2505
  call void @llvm.lifetime.end.p0(i64 24, ptr %307) #9
  call void @llvm.lifetime.end.p0(i64 6, ptr %306) #9
  br label %2594

2594:                                             ; preds = %2593, %2471
  call void @llvm.lifetime.end.p0(i64 3, ptr %299) #9
  br label %2595

2595:                                             ; preds = %2594, %2395
  call void @llvm.lifetime.end.p0(i64 9, ptr %292) #9
  br label %2596

2596:                                             ; preds = %2595, %2317
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #9
  br label %2597

2597:                                             ; preds = %2596, %2239
  call void @llvm.lifetime.end.p0(i64 7, ptr %279) #9
  call void @llvm.lifetime.end.p0(i64 7, ptr %278) #9
  br label %2598

2598:                                             ; preds = %2597, %2183
  call void @llvm.lifetime.end.p0(i64 10, ptr %231) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #9
  call void @llvm.lifetime.end.p0(i64 3, ptr %229) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %228) #9
  call void @llvm.lifetime.end.p0(i64 9, ptr %227) #9
  call void @llvm.lifetime.end.p0(i64 13, ptr %226) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr %225) #9
  br label %2599

2599:                                             ; preds = %2598, %1783
  call void @llvm.lifetime.end.p0(i64 6, ptr %192) #9
  br label %2600

2600:                                             ; preds = %2599, %1527
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #9
  br label %2601

2601:                                             ; preds = %2600, %1360, %1346, %1285, %1229, %1137, %1096, %1095, %1000, %901, %802, %703, %604, %580, %556, %532, %508, %484, %470, %456, %442, %428, %414
  call void @_ZN4chen3cmdD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %3) #9
  br label %2602

2602:                                             ; preds = %2601, %400
  call void @llvm.lifetime.end.p0(i64 224, ptr %3) #9
  br label %2603

2603:                                             ; preds = %2602
  %2604 = load ptr, ptr %6, align 8
  %2605 = load i32, ptr %7, align 4
  %2606 = insertvalue { ptr, i32 } poison, ptr %2604, 0
  %2607 = insertvalue { ptr, i32 } %2606, i32 %2605, 1
  resume { ptr, i32 } %2607

2608:                                             ; preds = %2529
  %2609 = landingpad { ptr, i32 }
          catch ptr null
  %2610 = extractvalue { ptr, i32 } %2609, 0
  call void @__clang_call_terminate(ptr %2610) #11
  unreachable

2611:                                             ; preds = %2469, %2432, %2354, %2276, %2049, %1968, %1193, %1061, %962, %863, %764, %665
  unreachable
}

declare void @_ZN4chen3cmdC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3

declare void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #3

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

declare void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() #3

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

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

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

declare void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #3

declare void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

declare void @_ZN4chen3cmd6changeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare noundef zeroext i1 @_ZNK4chen3cmd5existERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

declare void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef) #3

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

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

declare void @_ZN4chen3cmd7suggestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

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

declare void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224), i32 noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIPPcS5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA8_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare noundef i32 @_ZNK4chen3cmd6intValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare noundef zeroext i1 @_ZNK4chen3cmd5isSetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare noundef zeroext i1 @_ZNK4chen3cmd7boolValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4chen3cmd7objectsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(224)) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @_ZNK4chen3cmd5usageB5cxx11ERKNS0_11error_parseE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(80)) #3

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

declare void @_ZNK4chen3cmd5usageB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224)) #3

declare void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare void @_ZNK4chen3cmd5visitESt8functionIFvRKNS0_6actionEmmEES1_IFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_EE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef, ptr noundef) #3

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

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

declare void @_ZNK4chen3cmd5visitERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFvRKNS0_6optionEmmEES9_IFbS8_S8_EE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef) #3

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 0}
!16 = !{!"_ZTSN7testing8internal12ConstCharPtrE", !6, i64 0}


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

%"class.chen::cmd" = type { i32, ptr, %"class.std::__cxx11::basic_string", %"class.std::unique_ptr", %"class.std::vector", ptr, %"class.std::vector", %"class.std::unordered_map", %"class.std::unordered_map.10" }
%"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::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_map.10" = type { %"class.std::_Hashtable.11" }
%"class.std::_Hashtable.11" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::allocator" = type { i8 }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.chen::any" = type { %"class.std::unique_ptr.24" }
%"class.std::unique_ptr.24" = type { %"struct.std::__uniq_ptr_data.25" }
%"struct.std::__uniq_ptr_data.25" = type { %"class.std::__uniq_ptr_impl.26" }
%"class.std::__uniq_ptr_impl.26" = type { %"class.std::tuple.27" }
%"class.std::tuple.27" = type { %"struct.std::_Tuple_impl.28" }
%"struct.std::_Tuple_impl.28" = type { %"struct.std::_Head_base.31" }
%"struct.std::_Head_base.31" = type { ptr }
%"struct.testing::internal::ConstCharPtr" = type { ptr }
%"class.testing::Message" = type { %"class.testing::internal::scoped_ptr" }
%"class.testing::internal::scoped_ptr" = type { ptr }
%"class.testing::internal::AssertHelper" = type { ptr }
%"class.testing::AssertionResult" = type { i8, %"class.testing::internal::scoped_ptr.32" }
%"class.testing::internal::scoped_ptr.32" = type { ptr }
%"class.std::function.34" = type { %"class.std::_Function_base", ptr }
%class.anon = type { i8 }
%"class.std::function.36" = type { %"class.std::_Function_base", ptr }
%"class.std::function.39" = type { %"class.std::_Function_base", ptr }
%class.anon.41 = type { i8 }

@.str.3 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@_ZTIN4chen3cmd5errorE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN4chen3cmd13error_generalE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.32 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [8 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_app = external hidden unnamed_addr constant [4 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_version = external hidden unnamed_addr constant [8 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [14 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_start = external hidden unnamed_addr constant [6 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [22 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_port = external hidden unnamed_addr constant [12 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_addr = external hidden unnamed_addr constant [13 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_thread = external hidden unnamed_addr constant [9 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_four = external hidden unnamed_addr constant [2 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_s = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_100 = external hidden unnamed_addr constant [4 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_ip = external hidden unnamed_addr constant [10 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [22 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_module = external hidden unnamed_addr constant [7 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_update = external hidden unnamed_addr constant [7 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [16 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_a = external hidden unnamed_addr constant [4 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [168 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [159 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_speedx = external hidden unnamed_addr constant [9 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_x = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_editi = external hidden unnamed_addr constant [6 x i8], align 1
@_ZTIN4chen3cmd11error_parseE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.84 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.85 = external hidden unnamed_addr constant [89 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN24ToolCmdTest_General_Test8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.chen::cmd", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::function", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::function", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::function", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::function", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::function", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::function", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.chen::any", align 8
  %42 = alloca i32, align 4
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.chen::any", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca %"class.chen::any", align 8
  %57 = alloca i32, align 4
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.chen::any", align 8
  %65 = alloca i32, align 4
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"class.chen::any", align 8
  %73 = alloca i8, align 1
  %74 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca %"class.chen::any", align 8
  %82 = alloca %"class.testing::Message", align 8
  %83 = alloca %"class.testing::internal::AssertHelper", align 8
  %84 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator", align 1
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator", align 1
  %91 = alloca %"class.chen::any", align 8
  %92 = alloca %"class.testing::Message", align 8
  %93 = alloca %"class.testing::internal::AssertHelper", align 8
  %94 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator", align 1
  %101 = alloca %"class.chen::any", align 8
  %102 = alloca %"class.testing::Message", align 8
  %103 = alloca %"class.testing::internal::AssertHelper", align 8
  %104 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator", align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::allocator", align 1
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::allocator", align 1
  %111 = alloca %"class.chen::any", align 8
  %112 = alloca %"class.testing::Message", align 8
  %113 = alloca %"class.testing::internal::AssertHelper", align 8
  %114 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::allocator", align 1
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator", align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator", align 1
  %121 = alloca %"class.chen::any", align 8
  %122 = alloca %"class.testing::Message", align 8
  %123 = alloca %"class.testing::internal::AssertHelper", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::allocator", align 1
  %126 = alloca %"class.testing::Message", align 8
  %127 = alloca %"class.testing::internal::AssertHelper", align 8
  %128 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::allocator", align 1
  %131 = alloca %"class.testing::Message", align 8
  %132 = alloca %"class.testing::internal::AssertHelper", align 8
  %133 = alloca %"class.testing::AssertionResult", align 8
  %134 = alloca i8, align 1
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::allocator", align 1
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.std::allocator", align 1
  %139 = alloca %"class.testing::Message", align 8
  %140 = alloca %"class.testing::internal::AssertHelper", align 8
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.testing::AssertionResult", align 8
  %143 = alloca i8, align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator", align 1
  %148 = alloca %"class.testing::Message", align 8
  %149 = alloca %"class.testing::internal::AssertHelper", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::allocator", align 1
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::allocator", align 1
  %155 = alloca [4 x i8], align 4
  %156 = alloca [8 x i8], align 8
  %157 = alloca [3 x ptr], align 16
  %158 = alloca %"class.testing::AssertionResult", align 8
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca %"class.testing::Message", align 8
  %162 = alloca %"class.testing::internal::AssertHelper", align 8
  %163 = alloca %"class.testing::AssertionResult", align 8
  %164 = alloca ptr, align 8
  %165 = alloca ptr, align 8
  %166 = alloca %"class.testing::Message", align 8
  %167 = alloca %"class.testing::internal::AssertHelper", align 8
  %168 = alloca %"class.testing::AssertionResult", align 8
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.testing::Message", align 8
  %171 = alloca %"class.testing::internal::AssertHelper", align 8
  %172 = alloca %"class.testing::AssertionResult", align 8
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.testing::Message", align 8
  %175 = alloca %"class.testing::internal::AssertHelper", align 8
  %176 = alloca [6 x i8], align 1
  %177 = alloca [3 x ptr], align 16
  %178 = alloca %"class.testing::AssertionResult", align 8
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.testing::Message", align 8
  %181 = alloca %"class.testing::internal::AssertHelper", align 8
  %182 = alloca %"class.testing::AssertionResult", align 8
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::allocator", align 1
  %187 = alloca %"class.testing::Message", align 8
  %188 = alloca %"class.testing::internal::AssertHelper", align 8
  %189 = alloca %"class.testing::AssertionResult", align 8
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::allocator", align 1
  %193 = alloca %"class.testing::Message", align 8
  %194 = alloca %"class.testing::internal::AssertHelper", align 8
  %195 = alloca %"class.testing::AssertionResult", align 8
  %196 = alloca i8, align 1
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca %"class.std::allocator", align 1
  %199 = alloca %"class.testing::Message", align 8
  %200 = alloca %"class.testing::internal::AssertHelper", align 8
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.testing::AssertionResult", align 8
  %203 = alloca i8, align 1
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::allocator", align 1
  %206 = alloca %"class.testing::Message", align 8
  %207 = alloca %"class.testing::internal::AssertHelper", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca [12 x i8], align 1
  %210 = alloca [13 x i8], align 1
  %211 = alloca [9 x i8], align 1
  %212 = alloca [2 x i8], align 2
  %213 = alloca [3 x i8], align 1
  %214 = alloca [4 x i8], align 4
  %215 = alloca [10 x i8], align 1
  %216 = alloca [10 x ptr], align 16
  %217 = alloca %"class.testing::AssertionResult", align 8
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.testing::Message", align 8
  %220 = alloca %"class.testing::internal::AssertHelper", align 8
  %221 = alloca %"class.testing::AssertionResult", align 8
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::allocator", align 1
  %226 = alloca %"class.testing::Message", align 8
  %227 = alloca %"class.testing::internal::AssertHelper", align 8
  %228 = alloca %"class.testing::AssertionResult", align 8
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca %"class.testing::Message", align 8
  %233 = alloca %"class.testing::internal::AssertHelper", align 8
  %234 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::__cxx11::basic_string", align 8
  %237 = alloca %"class.std::allocator", align 1
  %238 = alloca %"class.testing::Message", align 8
  %239 = alloca %"class.testing::internal::AssertHelper", align 8
  %240 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::allocator", align 1
  %244 = alloca %"class.testing::Message", align 8
  %245 = alloca %"class.testing::internal::AssertHelper", align 8
  %246 = alloca %"class.testing::AssertionResult", align 8
  %247 = alloca i8, align 1
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::allocator", align 1
  %250 = alloca %"class.testing::Message", align 8
  %251 = alloca %"class.testing::internal::AssertHelper", align 8
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.testing::AssertionResult", align 8
  %254 = alloca i8, align 1
  %255 = alloca %"class.testing::Message", align 8
  %256 = alloca %"class.testing::internal::AssertHelper", align 8
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca [7 x i8], align 1
  %259 = alloca [7 x i8], align 1
  %260 = alloca [4 x ptr], align 16
  %261 = alloca %"class.testing::AssertionResult", align 8
  %262 = alloca %"class.std::__cxx11::basic_string", align 8
  %263 = alloca %"class.testing::Message", align 8
  %264 = alloca %"class.testing::internal::AssertHelper", align 8
  %265 = alloca [4 x i8], align 4
  %266 = alloca [4 x ptr], align 16
  %267 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %268 = alloca %"class.testing::Message", align 8
  %269 = alloca %"class.testing::internal::AssertHelper", align 8
  %270 = alloca [9 x i8], align 1
  %271 = alloca [4 x ptr], align 16
  %272 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %273 = alloca %"class.testing::Message", align 8
  %274 = alloca %"class.testing::internal::AssertHelper", align 8
  %275 = alloca [3 x i8], align 1
  %276 = alloca [4 x ptr], align 16
  %277 = alloca %"struct.testing::internal::ConstCharPtr", align 8
  %278 = alloca %"class.testing::Message", align 8
  %279 = alloca %"class.testing::internal::AssertHelper", align 8
  %280 = alloca [6 x i8], align 1
  %281 = alloca [3 x ptr], align 16
  %282 = alloca %"class.testing::Message", align 8
  %283 = alloca %"class.testing::internal::AssertHelper", align 8
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::__cxx11::basic_string", align 8
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::__cxx11::basic_string", align 8
  %288 = alloca %"class.std::allocator", align 1
  %289 = alloca %"class.std::__cxx11::basic_string", align 8
  %290 = alloca %"class.std::__cxx11::basic_string", align 8
  %291 = alloca %"class.std::allocator", align 1
  %292 = alloca %"class.std::__cxx11::basic_string", align 8
  %293 = alloca %"class.std::allocator", align 1
  %294 = alloca %"class.std::__cxx11::basic_string", align 8
  %295 = alloca %"class.std::__cxx11::basic_string", align 8
  %296 = alloca %"class.std::allocator", align 1
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::allocator", align 1
  %299 = alloca %"class.std::function.34", align 8
  %300 = alloca %class.anon, align 1
  %301 = alloca %"class.std::function.36", align 8
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.std::allocator", align 1
  %304 = alloca %"class.std::function.39", align 8
  %305 = alloca %class.anon.41, align 1
  %306 = alloca %"class.std::function.36", align 8
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %2) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %307 unwind label %362

307:                                              ; preds = %1
  invoke void @_ZN4chen3cmdC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %308 unwind label %364

308:                                              ; preds = %307
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %309 unwind label %367

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

310:                                              ; preds = %309
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull %9)
          to label %311 unwind label %371

311:                                              ; preds = %310
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %312 unwind label %375

312:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %313 unwind label %377

313:                                              ; preds = %312
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull %14)
          to label %314 unwind label %379

314:                                              ; preds = %313
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %315 unwind label %383

315:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %316 unwind label %385

316:                                              ; preds = %315
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %19)
          to label %317 unwind label %387

317:                                              ; preds = %316
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %318 unwind label %391

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %319 unwind label %393

319:                                              ; preds = %318
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull %24)
          to label %320 unwind label %395

320:                                              ; preds = %319
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %321 unwind label %399

321:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %322 unwind label %401

322:                                              ; preds = %321
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull %29)
          to label %323 unwind label %403

323:                                              ; preds = %322
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %324 unwind label %407

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %325 unwind label %409

325:                                              ; preds = %324
  call void @_ZNSt8functionIFvRKN4chen3cmdEEEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr null) #9
  invoke void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull %34)
          to label %326 unwind label %411

326:                                              ; preds = %325
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %327 unwind label %415

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %328 unwind label %417

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %329 unwind label %419

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #9
  store i32 80, ptr %42, align 4, !tbaa !5
  invoke void @_ZN4chen3anyC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %330 unwind label %421

330:                                              ; preds = %329
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %331 unwind label %423

331:                                              ; preds = %330
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %332 unwind label %429

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %333 unwind label %431

333:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %334 unwind label %433

334:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #9
  invoke void @_ZN4chen3anyC2IA8_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 1 dereferenceable(8) @.str.22)
          to label %335 unwind label %435

335:                                              ; preds = %334
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %336 unwind label %437

336:                                              ; preds = %335
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %337 unwind label %443

337:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %338 unwind label %445

338:                                              ; preds = %337
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %55) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %339 unwind label %447

339:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %57) #9
  store i32 1, ptr %57, align 4, !tbaa !5
  invoke void @_ZN4chen3anyC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 4 dereferenceable(4) %57)
          to label %340 unwind label %449

340:                                              ; preds = %339
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %341 unwind label %451

341:                                              ; preds = %340
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %342 unwind label %457

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %343 unwind label %459

343:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %344 unwind label %461

344:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %65) #9
  store i32 1, ptr %65, align 4, !tbaa !5
  invoke void @_ZN4chen3anyC2IiEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %345 unwind label %463

345:                                              ; preds = %344
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %346 unwind label %465

346:                                              ; preds = %345
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %67) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %347 unwind label %471

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %69) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %348 unwind label %473

348:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %349 unwind label %475

349:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #9
  store i8 0, ptr %73, align 1, !tbaa !9
  invoke void @_ZN4chen3anyC2IbEEOT_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %350 unwind label %477

350:                                              ; preds = %349
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %351 unwind label %479

351:                                              ; preds = %350
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull @.str.4)
  %352 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %74)
  br i1 %352, label %353, label %.thread

353:                                              ; preds = %351
  %354 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %355 unwind label %485

355:                                              ; preds = %353
  br i1 %354, label %356, label %.critedge

356:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %357 unwind label %487

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %78) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %358 unwind label %489

358:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %359 unwind label %491

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %360 unwind label %493

360:                                              ; preds = %359
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %361 unwind label %495

361:                                              ; preds = %360
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #9
  br label %.critedge

362:                                              ; preds = %1
  %363 = landingpad { ptr, i32 }
          cleanup
  br label %366

364:                                              ; preds = %307
  %365 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9
  br label %366

366:                                              ; preds = %364, %362
  %.pn = phi { ptr, i32 } [ %365, %364 ], [ %363, %362 ]
  %.0 = extractvalue { ptr, i32 } %.pn, 0
  %.062 = extractvalue { ptr, i32 } %.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br label %1581

367:                                              ; preds = %308
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %374

369:                                              ; preds = %309
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %373

371:                                              ; preds = %310
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %373

373:                                              ; preds = %371, %369
  %.pn333 = phi { ptr, i32 } [ %372, %371 ], [ %370, %369 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #9
  br label %374

374:                                              ; preds = %373, %367
  %.pn333.pn = phi { ptr, i32 } [ %.pn333, %373 ], [ %368, %367 ]
  %.2 = extractvalue { ptr, i32 } %.pn333.pn, 0
  %.2101 = extractvalue { ptr, i32 } %.pn333.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  br label %1580

375:                                              ; preds = %311
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %382

377:                                              ; preds = %312
  %378 = landingpad { ptr, i32 }
          cleanup
  br label %381

379:                                              ; preds = %313
  %380 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %381

381:                                              ; preds = %379, %377
  %.pn336 = phi { ptr, i32 } [ %380, %379 ], [ %378, %377 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  br label %382

382:                                              ; preds = %381, %375
  %.pn336.pn = phi { ptr, i32 } [ %.pn336, %381 ], [ %376, %375 ]
  %.4 = extractvalue { ptr, i32 } %.pn336.pn, 0
  %.4103 = extractvalue { ptr, i32 } %.pn336.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  br label %1580

383:                                              ; preds = %314
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %390

385:                                              ; preds = %315
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %389

387:                                              ; preds = %316
  %388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %389

389:                                              ; preds = %387, %385
  %.pn339 = phi { ptr, i32 } [ %388, %387 ], [ %386, %385 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %390

390:                                              ; preds = %389, %383
  %.pn339.pn = phi { ptr, i32 } [ %.pn339, %389 ], [ %384, %383 ]
  %.6 = extractvalue { ptr, i32 } %.pn339.pn, 0
  %.6105 = extractvalue { ptr, i32 } %.pn339.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  br label %1580

391:                                              ; preds = %317
  %392 = landingpad { ptr, i32 }
          cleanup
  br label %398

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

395:                                              ; preds = %319
  %396 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %397

397:                                              ; preds = %395, %393
  %.pn342 = phi { ptr, i32 } [ %396, %395 ], [ %394, %393 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %398

398:                                              ; preds = %397, %391
  %.pn342.pn = phi { ptr, i32 } [ %.pn342, %397 ], [ %392, %391 ]
  %.8 = extractvalue { ptr, i32 } %.pn342.pn, 0
  %.8107 = extractvalue { ptr, i32 } %.pn342.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  br label %1580

399:                                              ; preds = %320
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %406

401:                                              ; preds = %321
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %405

403:                                              ; preds = %322
  %404 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %405

405:                                              ; preds = %403, %401
  %.pn345 = phi { ptr, i32 } [ %404, %403 ], [ %402, %401 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %406

406:                                              ; preds = %405, %399
  %.pn345.pn = phi { ptr, i32 } [ %.pn345, %405 ], [ %400, %399 ]
  %.10 = extractvalue { ptr, i32 } %.pn345.pn, 0
  %.10109 = extractvalue { ptr, i32 } %.pn345.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  br label %1580

407:                                              ; preds = %323
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %414

409:                                              ; preds = %324
  %410 = landingpad { ptr, i32 }
          cleanup
  br label %413

411:                                              ; preds = %325
  %412 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %413

413:                                              ; preds = %411, %409
  %.pn348 = phi { ptr, i32 } [ %412, %411 ], [ %410, %409 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %414

414:                                              ; preds = %413, %407
  %.pn348.pn = phi { ptr, i32 } [ %.pn348, %413 ], [ %408, %407 ]
  %.12 = extractvalue { ptr, i32 } %.pn348.pn, 0
  %.12111 = extractvalue { ptr, i32 } %.pn348.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  br label %1580

415:                                              ; preds = %326
  %416 = landingpad { ptr, i32 }
          cleanup
  br label %428

417:                                              ; preds = %327
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %427

419:                                              ; preds = %328
  %420 = landingpad { ptr, i32 }
          cleanup
  br label %426

421:                                              ; preds = %329
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %425

423:                                              ; preds = %330
  %424 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  br label %425

425:                                              ; preds = %423, %421
  %.pn351 = phi { ptr, i32 } [ %424, %423 ], [ %422, %421 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %426

426:                                              ; preds = %425, %419
  %.pn351.pn = phi { ptr, i32 } [ %.pn351, %425 ], [ %420, %419 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %427

427:                                              ; preds = %426, %417
  %.pn351.pn.pn = phi { ptr, i32 } [ %.pn351.pn, %426 ], [ %418, %417 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %428

428:                                              ; preds = %427, %415
  %.pn351.pn.pn.pn = phi { ptr, i32 } [ %.pn351.pn.pn, %427 ], [ %416, %415 ]
  %.16 = extractvalue { ptr, i32 } %.pn351.pn.pn.pn, 0
  %.16115 = extractvalue { ptr, i32 } %.pn351.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  br label %1580

429:                                              ; preds = %331
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %442

431:                                              ; preds = %332
  %432 = landingpad { ptr, i32 }
          cleanup
  br label %441

433:                                              ; preds = %333
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %440

435:                                              ; preds = %334
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %439

437:                                              ; preds = %335
  %438 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  br label %439

439:                                              ; preds = %437, %435
  %.pn356 = phi { ptr, i32 } [ %438, %437 ], [ %436, %435 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %440

440:                                              ; preds = %439, %433
  %.pn356.pn = phi { ptr, i32 } [ %.pn356, %439 ], [ %434, %433 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %441

441:                                              ; preds = %440, %431
  %.pn356.pn.pn = phi { ptr, i32 } [ %.pn356.pn, %440 ], [ %432, %431 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %442

442:                                              ; preds = %441, %429
  %.pn356.pn.pn.pn = phi { ptr, i32 } [ %.pn356.pn.pn, %441 ], [ %430, %429 ]
  %.20 = extractvalue { ptr, i32 } %.pn356.pn.pn.pn, 0
  %.20119 = extractvalue { ptr, i32 } %.pn356.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  br label %1580

443:                                              ; preds = %336
  %444 = landingpad { ptr, i32 }
          cleanup
  br label %456

445:                                              ; preds = %337
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %455

447:                                              ; preds = %338
  %448 = landingpad { ptr, i32 }
          cleanup
  br label %454

449:                                              ; preds = %339
  %450 = landingpad { ptr, i32 }
          cleanup
  br label %453

451:                                              ; preds = %340
  %452 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #9
  br label %453

453:                                              ; preds = %451, %449
  %.pn361 = phi { ptr, i32 } [ %452, %451 ], [ %450, %449 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %454

454:                                              ; preds = %453, %447
  %.pn361.pn = phi { ptr, i32 } [ %.pn361, %453 ], [ %448, %447 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %455

455:                                              ; preds = %454, %445
  %.pn361.pn.pn = phi { ptr, i32 } [ %.pn361.pn, %454 ], [ %446, %445 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %456

456:                                              ; preds = %455, %443
  %.pn361.pn.pn.pn = phi { ptr, i32 } [ %.pn361.pn.pn, %455 ], [ %444, %443 ]
  %.24 = extractvalue { ptr, i32 } %.pn361.pn.pn.pn, 0
  %.24123 = extractvalue { ptr, i32 } %.pn361.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  br label %1580

457:                                              ; preds = %341
  %458 = landingpad { ptr, i32 }
          cleanup
  br label %470

459:                                              ; preds = %342
  %460 = landingpad { ptr, i32 }
          cleanup
  br label %469

461:                                              ; preds = %343
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %468

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

465:                                              ; preds = %345
  %466 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  br label %467

467:                                              ; preds = %465, %463
  %.pn366 = phi { ptr, i32 } [ %466, %465 ], [ %464, %463 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %468

468:                                              ; preds = %467, %461
  %.pn366.pn = phi { ptr, i32 } [ %.pn366, %467 ], [ %462, %461 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br label %469

469:                                              ; preds = %468, %459
  %.pn366.pn.pn = phi { ptr, i32 } [ %.pn366.pn, %468 ], [ %460, %459 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %470

470:                                              ; preds = %469, %457
  %.pn366.pn.pn.pn = phi { ptr, i32 } [ %.pn366.pn.pn, %469 ], [ %458, %457 ]
  %.28 = extractvalue { ptr, i32 } %.pn366.pn.pn.pn, 0
  %.28127 = extractvalue { ptr, i32 } %.pn366.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  br label %1580

471:                                              ; preds = %346
  %472 = landingpad { ptr, i32 }
          cleanup
  br label %484

473:                                              ; preds = %347
  %474 = landingpad { ptr, i32 }
          cleanup
  br label %483

475:                                              ; preds = %348
  %476 = landingpad { ptr, i32 }
          cleanup
  br label %482

477:                                              ; preds = %349
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %481

479:                                              ; preds = %350
  %480 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #9
  br label %481

481:                                              ; preds = %479, %477
  %.pn371 = phi { ptr, i32 } [ %480, %479 ], [ %478, %477 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %482

482:                                              ; preds = %481, %475
  %.pn371.pn = phi { ptr, i32 } [ %.pn371, %481 ], [ %476, %475 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %483

483:                                              ; preds = %482, %473
  %.pn371.pn.pn = phi { ptr, i32 } [ %.pn371.pn, %482 ], [ %474, %473 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  br label %484

484:                                              ; preds = %483, %471
  %.pn371.pn.pn.pn = phi { ptr, i32 } [ %.pn371.pn.pn, %483 ], [ %472, %471 ]
  %.32 = extractvalue { ptr, i32 } %.pn371.pn.pn.pn, 0
  %.32131 = extractvalue { ptr, i32 } %.pn371.pn.pn.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  br label %1580

485:                                              ; preds = %353
  %486 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %501

487:                                              ; preds = %356
  %488 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %500

489:                                              ; preds = %357
  %490 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %499

491:                                              ; preds = %358
  %492 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %498

493:                                              ; preds = %359
  %494 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %497

495:                                              ; preds = %360
  %496 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #9
  br label %497

497:                                              ; preds = %495, %493
  %.pn376 = phi { ptr, i32 } [ %496, %495 ], [ %494, %493 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  br label %498

498:                                              ; preds = %497, %491
  %.pn376.pn = phi { ptr, i32 } [ %.pn376, %497 ], [ %492, %491 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %499

499:                                              ; preds = %498, %489
  %.pn376.pn.pn = phi { ptr, i32 } [ %.pn376.pn, %498 ], [ %490, %489 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  br label %500

500:                                              ; preds = %499, %487
  %.pn376.pn.pn.pn = phi { ptr, i32 } [ %.pn376.pn.pn, %499 ], [ %488, %487 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #9
  br label %501

501:                                              ; preds = %500, %485
  %.pn376.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn376.pn.pn.pn, %500 ], [ %486, %485 ]
  %.37 = extractvalue { ptr, i32 } %.pn376.pn.pn.pn.pn, 0
  %.37136 = extractvalue { ptr, i32 } %.pn376.pn.pn.pn.pn, 1
  %502 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd13error_generalE) #9
  %503 = icmp eq i32 %.37136, %502
  %504 = call ptr @__cxa_begin_catch(ptr %.37) #9
  br i1 %503, label %505, label %506

505:                                              ; preds = %501
  invoke void @__cxa_end_catch()
          to label %523 unwind label %509

.critedge:                                        ; preds = %355, %361
  store ptr @.str.33, ptr %74, align 8, !tbaa !11
  br label %.thread

506:                                              ; preds = %501
  store ptr @.str.32, ptr %74, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread unwind label %507

507:                                              ; preds = %506
  %508 = landingpad { ptr, i32 }
          cleanup
  br label %534

509:                                              ; preds = %505
  %510 = landingpad { ptr, i32 }
          cleanup
  br label %534

.thread:                                          ; preds = %506, %.critedge, %351
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %511 unwind label %515

511:                                              ; preds = %.thread
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #9
  %512 = load ptr, ptr %74, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 33, ptr noundef %512)
          to label %513 unwind label %517

513:                                              ; preds = %511
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %514 unwind label %519

514:                                              ; preds = %513
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #9
  br label %523

515:                                              ; preds = %.thread
  %516 = landingpad { ptr, i32 }
          cleanup
  br label %522

517:                                              ; preds = %511
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %521

519:                                              ; preds = %513
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #9
  br label %521

521:                                              ; preds = %519, %517
  %.pn384 = phi { ptr, i32 } [ %520, %519 ], [ %518, %517 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  br label %522

522:                                              ; preds = %521, %515
  %.pn384.pn = phi { ptr, i32 } [ %.pn384, %521 ], [ %516, %515 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #9
  br label %534

523:                                              ; preds = %505, %514
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull @.str.4)
  %524 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %84)
  br i1 %524, label %525, label %.thread657

525:                                              ; preds = %523
  %526 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %527 unwind label %535

527:                                              ; preds = %525
  br i1 %526, label %528, label %.critedge615

528:                                              ; preds = %527
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %529 unwind label %537

529:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %88) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %530 unwind label %539

530:                                              ; preds = %529
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %90) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %531 unwind label %541

531:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %532 unwind label %543

532:                                              ; preds = %531
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %533 unwind label %545

533:                                              ; preds = %532
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #9
  br label %.critedge615

534:                                              ; preds = %507, %509, %522
  %.pn384.pn.pn = phi { ptr, i32 } [ %.pn384.pn, %522 ], [ %510, %509 ], [ %508, %507 ]
  %.41 = extractvalue { ptr, i32 } %.pn384.pn.pn, 0
  %.41140 = extractvalue { ptr, i32 } %.pn384.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #9
  br label %1580

535:                                              ; preds = %525
  %536 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %551

537:                                              ; preds = %528
  %538 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %550

539:                                              ; preds = %529
  %540 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %549

541:                                              ; preds = %530
  %542 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %548

543:                                              ; preds = %531
  %544 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %547

545:                                              ; preds = %532
  %546 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  br label %547

547:                                              ; preds = %545, %543
  %.pn388 = phi { ptr, i32 } [ %546, %545 ], [ %544, %543 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %548

548:                                              ; preds = %547, %541
  %.pn388.pn = phi { ptr, i32 } [ %.pn388, %547 ], [ %542, %541 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  br label %549

549:                                              ; preds = %548, %539
  %.pn388.pn.pn = phi { ptr, i32 } [ %.pn388.pn, %548 ], [ %540, %539 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br label %550

550:                                              ; preds = %549, %537
  %.pn388.pn.pn.pn = phi { ptr, i32 } [ %.pn388.pn.pn, %549 ], [ %538, %537 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #9
  br label %551

551:                                              ; preds = %550, %535
  %.pn388.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn388.pn.pn.pn, %550 ], [ %536, %535 ]
  %.46 = extractvalue { ptr, i32 } %.pn388.pn.pn.pn.pn, 0
  %.46145 = extractvalue { ptr, i32 } %.pn388.pn.pn.pn.pn, 1
  %552 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd13error_generalE) #9
  %553 = icmp eq i32 %.46145, %552
  %554 = call ptr @__cxa_begin_catch(ptr %.46) #9
  br i1 %553, label %555, label %556

555:                                              ; preds = %551
  invoke void @__cxa_end_catch()
          to label %573 unwind label %559

.critedge615:                                     ; preds = %527, %533
  store ptr @.str.35, ptr %84, align 8, !tbaa !11
  br label %.thread657

556:                                              ; preds = %551
  store ptr @.str.34, ptr %84, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread657 unwind label %557

557:                                              ; preds = %556
  %558 = landingpad { ptr, i32 }
          cleanup
  br label %584

559:                                              ; preds = %555
  %560 = landingpad { ptr, i32 }
          cleanup
  br label %584

.thread657:                                       ; preds = %556, %.critedge615, %523
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %561 unwind label %565

561:                                              ; preds = %.thread657
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #9
  %562 = load ptr, ptr %84, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %93, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 34, ptr noundef %562)
          to label %563 unwind label %567

563:                                              ; preds = %561
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %564 unwind label %569

564:                                              ; preds = %563
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #9
  br label %573

565:                                              ; preds = %.thread657
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %572

567:                                              ; preds = %561
  %568 = landingpad { ptr, i32 }
          cleanup
  br label %571

569:                                              ; preds = %563
  %570 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  br label %571

571:                                              ; preds = %569, %567
  %.pn396 = phi { ptr, i32 } [ %570, %569 ], [ %568, %567 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #9
  br label %572

572:                                              ; preds = %571, %565
  %.pn396.pn = phi { ptr, i32 } [ %.pn396, %571 ], [ %566, %565 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #9
  br label %584

573:                                              ; preds = %555, %564
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull @.str.4)
  %574 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %94)
  br i1 %574, label %575, label %.thread661

575:                                              ; preds = %573
  %576 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %577 unwind label %585

577:                                              ; preds = %575
  br i1 %576, label %578, label %.critedge619

578:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %579 unwind label %587

579:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %98) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %580 unwind label %589

580:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %100) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %581 unwind label %591

581:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %582 unwind label %593

582:                                              ; preds = %581
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %583 unwind label %595

583:                                              ; preds = %582
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  br label %.critedge619

584:                                              ; preds = %557, %559, %572
  %.pn396.pn.pn = phi { ptr, i32 } [ %.pn396.pn, %572 ], [ %560, %559 ], [ %558, %557 ]
  %.50 = extractvalue { ptr, i32 } %.pn396.pn.pn, 0
  %.50149 = extractvalue { ptr, i32 } %.pn396.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #9
  br label %1580

585:                                              ; preds = %575
  %586 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %601

587:                                              ; preds = %578
  %588 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %600

589:                                              ; preds = %579
  %590 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %599

591:                                              ; preds = %580
  %592 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %598

593:                                              ; preds = %581
  %594 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %597

595:                                              ; preds = %582
  %596 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  br label %597

597:                                              ; preds = %595, %593
  %.pn400 = phi { ptr, i32 } [ %596, %595 ], [ %594, %593 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %598

598:                                              ; preds = %597, %591
  %.pn400.pn = phi { ptr, i32 } [ %.pn400, %597 ], [ %592, %591 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  br label %599

599:                                              ; preds = %598, %589
  %.pn400.pn.pn = phi { ptr, i32 } [ %.pn400.pn, %598 ], [ %590, %589 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  br label %600

600:                                              ; preds = %599, %587
  %.pn400.pn.pn.pn = phi { ptr, i32 } [ %.pn400.pn.pn, %599 ], [ %588, %587 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  br label %601

601:                                              ; preds = %600, %585
  %.pn400.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn400.pn.pn.pn, %600 ], [ %586, %585 ]
  %.55 = extractvalue { ptr, i32 } %.pn400.pn.pn.pn.pn, 0
  %.55154 = extractvalue { ptr, i32 } %.pn400.pn.pn.pn.pn, 1
  %602 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd13error_generalE) #9
  %603 = icmp eq i32 %.55154, %602
  %604 = call ptr @__cxa_begin_catch(ptr %.55) #9
  br i1 %603, label %605, label %606

605:                                              ; preds = %601
  invoke void @__cxa_end_catch()
          to label %623 unwind label %609

.critedge619:                                     ; preds = %577, %583
  store ptr @.str.39, ptr %94, align 8, !tbaa !11
  br label %.thread661

606:                                              ; preds = %601
  store ptr @.str.38, ptr %94, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread661 unwind label %607

607:                                              ; preds = %606
  %608 = landingpad { ptr, i32 }
          cleanup
  br label %634

609:                                              ; preds = %605
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %634

.thread661:                                       ; preds = %606, %.critedge619, %573
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %611 unwind label %615

611:                                              ; preds = %.thread661
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #9
  %612 = load ptr, ptr %94, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %103, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 35, ptr noundef %612)
          to label %613 unwind label %617

613:                                              ; preds = %611
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %614 unwind label %619

614:                                              ; preds = %613
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #9
  br label %623

615:                                              ; preds = %.thread661
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %622

617:                                              ; preds = %611
  %618 = landingpad { ptr, i32 }
          cleanup
  br label %621

619:                                              ; preds = %613
  %620 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #9
  br label %621

621:                                              ; preds = %619, %617
  %.pn408 = phi { ptr, i32 } [ %620, %619 ], [ %618, %617 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  br label %622

622:                                              ; preds = %621, %615
  %.pn408.pn = phi { ptr, i32 } [ %.pn408, %621 ], [ %616, %615 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #9
  br label %634

623:                                              ; preds = %605, %614
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull @.str.4)
  %624 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %104)
  br i1 %624, label %625, label %.thread665

625:                                              ; preds = %623
  %626 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %627 unwind label %635

627:                                              ; preds = %625
  br i1 %626, label %628, label %.critedge623

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %106) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %629 unwind label %637

629:                                              ; preds = %628
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %630 unwind label %639

630:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %110) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %631 unwind label %641

631:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %632 unwind label %643

632:                                              ; preds = %631
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %633 unwind label %645

633:                                              ; preds = %632
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  br label %.critedge623

634:                                              ; preds = %607, %609, %622
  %.pn408.pn.pn = phi { ptr, i32 } [ %.pn408.pn, %622 ], [ %610, %609 ], [ %608, %607 ]
  %.59 = extractvalue { ptr, i32 } %.pn408.pn.pn, 0
  %.59158 = extractvalue { ptr, i32 } %.pn408.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #9
  br label %1580

635:                                              ; preds = %625
  %636 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %651

637:                                              ; preds = %628
  %638 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %650

639:                                              ; preds = %629
  %640 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %649

641:                                              ; preds = %630
  %642 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %648

643:                                              ; preds = %631
  %644 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %647

645:                                              ; preds = %632
  %646 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #9
  br label %647

647:                                              ; preds = %645, %643
  %.pn412 = phi { ptr, i32 } [ %646, %645 ], [ %644, %643 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  br label %648

648:                                              ; preds = %647, %641
  %.pn412.pn = phi { ptr, i32 } [ %.pn412, %647 ], [ %642, %641 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #9
  br label %649

649:                                              ; preds = %648, %639
  %.pn412.pn.pn = phi { ptr, i32 } [ %.pn412.pn, %648 ], [ %640, %639 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  br label %650

650:                                              ; preds = %649, %637
  %.pn412.pn.pn.pn = phi { ptr, i32 } [ %.pn412.pn.pn, %649 ], [ %638, %637 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  br label %651

651:                                              ; preds = %650, %635
  %.pn412.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn412.pn.pn.pn, %650 ], [ %636, %635 ]
  %.64 = extractvalue { ptr, i32 } %.pn412.pn.pn.pn.pn, 0
  %.64163 = extractvalue { ptr, i32 } %.pn412.pn.pn.pn.pn, 1
  %652 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd13error_generalE) #9
  %653 = icmp eq i32 %.64163, %652
  %654 = call ptr @__cxa_begin_catch(ptr %.64) #9
  br i1 %653, label %655, label %656

655:                                              ; preds = %651
  invoke void @__cxa_end_catch()
          to label %673 unwind label %659

.critedge623:                                     ; preds = %627, %633
  store ptr @.str.41, ptr %104, align 8, !tbaa !11
  br label %.thread665

656:                                              ; preds = %651
  store ptr @.str.40, ptr %104, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread665 unwind label %657

657:                                              ; preds = %656
  %658 = landingpad { ptr, i32 }
          cleanup
  br label %684

659:                                              ; preds = %655
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %684

.thread665:                                       ; preds = %656, %.critedge623, %623
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %661 unwind label %665

661:                                              ; preds = %.thread665
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #9
  %662 = load ptr, ptr %104, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %113, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 36, ptr noundef %662)
          to label %663 unwind label %667

663:                                              ; preds = %661
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %664 unwind label %669

664:                                              ; preds = %663
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #9
  br label %673

665:                                              ; preds = %.thread665
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %672

667:                                              ; preds = %661
  %668 = landingpad { ptr, i32 }
          cleanup
  br label %671

669:                                              ; preds = %663
  %670 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #9
  br label %671

671:                                              ; preds = %669, %667
  %.pn420 = phi { ptr, i32 } [ %670, %669 ], [ %668, %667 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #9
  br label %672

672:                                              ; preds = %671, %665
  %.pn420.pn = phi { ptr, i32 } [ %.pn420, %671 ], [ %666, %665 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #9
  br label %684

673:                                              ; preds = %655, %664
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull @.str.4)
  %674 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %114)
  br i1 %674, label %675, label %.thread669

675:                                              ; preds = %673
  %676 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %677 unwind label %685

677:                                              ; preds = %675
  br i1 %676, label %678, label %.critedge627

678:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %116) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %679 unwind label %687

679:                                              ; preds = %678
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %118) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %680 unwind label %689

680:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %681 unwind label %691

681:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #9
  invoke void @_ZN4chen3anyC2IA1_cEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 1 dereferenceable(1) @.str.4)
          to label %682 unwind label %693

682:                                              ; preds = %681
  invoke void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(8) %121)
          to label %683 unwind label %695

683:                                              ; preds = %682
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #9
  br label %.critedge627

684:                                              ; preds = %657, %659, %672
  %.pn420.pn.pn = phi { ptr, i32 } [ %.pn420.pn, %672 ], [ %660, %659 ], [ %658, %657 ]
  %.68 = extractvalue { ptr, i32 } %.pn420.pn.pn, 0
  %.68167 = extractvalue { ptr, i32 } %.pn420.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #9
  br label %1580

685:                                              ; preds = %675
  %686 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %701

687:                                              ; preds = %678
  %688 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %700

689:                                              ; preds = %679
  %690 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %699

691:                                              ; preds = %680
  %692 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %698

693:                                              ; preds = %681
  %694 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %697

695:                                              ; preds = %682
  %696 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  call void @_ZN4chen3anyD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #9
  br label %697

697:                                              ; preds = %695, %693
  %.pn424 = phi { ptr, i32 } [ %696, %695 ], [ %694, %693 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  br label %698

698:                                              ; preds = %697, %691
  %.pn424.pn = phi { ptr, i32 } [ %.pn424, %697 ], [ %692, %691 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  br label %699

699:                                              ; preds = %698, %689
  %.pn424.pn.pn = phi { ptr, i32 } [ %.pn424.pn, %698 ], [ %690, %689 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #9
  br label %700

700:                                              ; preds = %699, %687
  %.pn424.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn, %699 ], [ %688, %687 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #9
  br label %701

701:                                              ; preds = %700, %685
  %.pn424.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn, %700 ], [ %686, %685 ]
  %.73 = extractvalue { ptr, i32 } %.pn424.pn.pn.pn.pn, 0
  %.73172 = extractvalue { ptr, i32 } %.pn424.pn.pn.pn.pn, 1
  %702 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd13error_generalE) #9
  %703 = icmp eq i32 %.73172, %702
  %704 = call ptr @__cxa_begin_catch(ptr %.73) #9
  br i1 %703, label %705, label %706

705:                                              ; preds = %701
  invoke void @__cxa_end_catch()
          to label %723 unwind label %709

.critedge627:                                     ; preds = %677, %683
  store ptr @.str.43, ptr %114, align 8, !tbaa !11
  br label %.thread669

706:                                              ; preds = %701
  store ptr @.str.42, ptr %114, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread669 unwind label %707

707:                                              ; preds = %706
  %708 = landingpad { ptr, i32 }
          cleanup
  br label %732

709:                                              ; preds = %705
  %710 = landingpad { ptr, i32 }
          cleanup
  br label %732

.thread669:                                       ; preds = %706, %.critedge627, %673
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %711 unwind label %715

711:                                              ; preds = %.thread669
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #9
  %712 = load ptr, ptr %114, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %123, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 37, ptr noundef %712)
          to label %713 unwind label %717

713:                                              ; preds = %711
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %122)
          to label %714 unwind label %719

714:                                              ; preds = %713
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #9
  br label %723

715:                                              ; preds = %.thread669
  %716 = landingpad { ptr, i32 }
          cleanup
  br label %722

717:                                              ; preds = %711
  %718 = landingpad { ptr, i32 }
          cleanup
  br label %721

719:                                              ; preds = %713
  %720 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  br label %721

721:                                              ; preds = %719, %717
  %.pn432 = phi { ptr, i32 } [ %720, %719 ], [ %718, %717 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #9
  br label %722

722:                                              ; preds = %721, %715
  %.pn432.pn = phi { ptr, i32 } [ %.pn432, %721 ], [ %716, %715 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #9
  br label %732

723:                                              ; preds = %705, %714
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #9
  %724 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %725 unwind label %733

725:                                              ; preds = %723
  br i1 %724, label %726, label %746

726:                                              ; preds = %725
  %727 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %728 unwind label %737

728:                                              ; preds = %726
  br i1 %727, label %729, label %758

729:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %125) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %730 unwind label %739

730:                                              ; preds = %729
  invoke void @_ZN4chen3cmd6changeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %731 unwind label %741

731:                                              ; preds = %730
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #9
  br label %758

732:                                              ; preds = %707, %709, %722
  %.pn432.pn.pn = phi { ptr, i32 } [ %.pn432.pn, %722 ], [ %710, %709 ], [ %708, %707 ]
  %.77 = extractvalue { ptr, i32 } %.pn432.pn.pn, 0
  %.77176 = extractvalue { ptr, i32 } %.pn432.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #9
  br label %1580

733:                                              ; preds = %744, %723
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  %736 = extractvalue { ptr, i32 } %734, 1
  br label %1580

737:                                              ; preds = %726
  %738 = landingpad { ptr, i32 }
          catch ptr null
  br label %744

739:                                              ; preds = %729
  %740 = landingpad { ptr, i32 }
          catch ptr null
  br label %743

741:                                              ; preds = %730
  %742 = landingpad { ptr, i32 }
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #9
  br label %743

743:                                              ; preds = %741, %739
  %.pn436 = phi { ptr, i32 } [ %742, %741 ], [ %740, %739 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #9
  br label %744

744:                                              ; preds = %743, %737
  %.pn436.pn = phi { ptr, i32 } [ %.pn436, %743 ], [ %738, %737 ]
  %.79 = extractvalue { ptr, i32 } %.pn436.pn, 0
  %745 = call ptr @__cxa_begin_catch(ptr %.79) #9
  invoke void @__cxa_end_catch()
          to label %746 unwind label %733

746:                                              ; preds = %725, %744
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %126) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %747 unwind label %750

747:                                              ; preds = %746
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %127) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %127, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 39, ptr noundef nonnull @.str.44)
          to label %748 unwind label %752

748:                                              ; preds = %747
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %749 unwind label %754

749:                                              ; preds = %748
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #9
  br label %758

750:                                              ; preds = %746
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %757

752:                                              ; preds = %747
  %753 = landingpad { ptr, i32 }
          cleanup
  br label %756

754:                                              ; preds = %748
  %755 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #9
  br label %756

756:                                              ; preds = %754, %752
  %.pn437 = phi { ptr, i32 } [ %755, %754 ], [ %753, %752 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %127) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #9
  br label %757

757:                                              ; preds = %756, %750
  %.pn437.pn = phi { ptr, i32 } [ %.pn437, %756 ], [ %751, %750 ]
  %.81 = extractvalue { ptr, i32 } %.pn437.pn, 0
  %.79178 = extractvalue { ptr, i32 } %.pn437.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #9
  br label %1580

758:                                              ; preds = %731, %728, %749
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %128) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef nonnull @.str.4)
  %759 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %128)
  br i1 %759, label %760, label %.thread673

760:                                              ; preds = %758
  %761 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %762 unwind label %766

762:                                              ; preds = %760
  br i1 %761, label %763, label %.critedge631

763:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %130) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %130)
          to label %764 unwind label %768

764:                                              ; preds = %763
  invoke void @_ZN4chen3cmd6changeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %129)
          to label %765 unwind label %770

765:                                              ; preds = %764
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #9
  br label %.critedge631

766:                                              ; preds = %760
  %767 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %773

768:                                              ; preds = %763
  %769 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  br label %772

770:                                              ; preds = %764
  %771 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd13error_generalE
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  br label %772

772:                                              ; preds = %770, %768
  %.pn440 = phi { ptr, i32 } [ %771, %770 ], [ %769, %768 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #9
  br label %773

773:                                              ; preds = %772, %766
  %.pn440.pn = phi { ptr, i32 } [ %.pn440, %772 ], [ %767, %766 ]
  %.83 = extractvalue { ptr, i32 } %.pn440.pn, 0
  %.81180 = extractvalue { ptr, i32 } %.pn440.pn, 1
  %774 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd13error_generalE) #9
  %775 = icmp eq i32 %.81180, %774
  %776 = call ptr @__cxa_begin_catch(ptr %.83) #9
  br i1 %775, label %777, label %778

777:                                              ; preds = %773
  invoke void @__cxa_end_catch()
          to label %795 unwind label %781

.critedge631:                                     ; preds = %762, %765
  store ptr @.str.47, ptr %128, align 8, !tbaa !11
  br label %.thread673

778:                                              ; preds = %773
  store ptr @.str.46, ptr %128, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread673 unwind label %779

779:                                              ; preds = %778
  %780 = landingpad { ptr, i32 }
          cleanup
  br label %804

781:                                              ; preds = %777
  %782 = landingpad { ptr, i32 }
          cleanup
  br label %804

.thread673:                                       ; preds = %778, %.critedge631, %758
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %131) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %783 unwind label %787

783:                                              ; preds = %.thread673
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %132) #9
  %784 = load ptr, ptr %128, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %132, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 40, ptr noundef %784)
          to label %785 unwind label %789

785:                                              ; preds = %783
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull align 8 dereferenceable(8) %131)
          to label %786 unwind label %791

786:                                              ; preds = %785
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %132) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #9
  br label %795

787:                                              ; preds = %.thread673
  %788 = landingpad { ptr, i32 }
          cleanup
  br label %794

789:                                              ; preds = %783
  %790 = landingpad { ptr, i32 }
          cleanup
  br label %793

791:                                              ; preds = %785
  %792 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  br label %793

793:                                              ; preds = %791, %789
  %.pn445 = phi { ptr, i32 } [ %792, %791 ], [ %790, %789 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %132) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #9
  br label %794

794:                                              ; preds = %793, %787
  %.pn445.pn = phi { ptr, i32 } [ %.pn445, %793 ], [ %788, %787 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #9
  br label %804

795:                                              ; preds = %777, %786
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %128) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %133) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %134) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %135) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %136) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %796 unwind label %805

796:                                              ; preds = %795
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %137) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %138) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %138)
          to label %797 unwind label %807

797:                                              ; preds = %796
  %798 = invoke noundef zeroext i1 @_ZNK4chen3cmd5existERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %799 unwind label %809

799:                                              ; preds = %797
  %800 = xor i1 %798, true
  %801 = zext i1 %800 to i8
  store i8 %801, ptr %134, align 1, !tbaa !9
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef nonnull align 1 dereferenceable(1) %134, ptr noundef null)
          to label %802 unwind label %809

802:                                              ; preds = %799
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %138) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #9
  %803 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %133)
  br i1 %803, label %830, label %813

804:                                              ; preds = %779, %781, %794
  %.pn445.pn.pn = phi { ptr, i32 } [ %.pn445.pn, %794 ], [ %782, %781 ], [ %780, %779 ]
  %.87 = extractvalue { ptr, i32 } %.pn445.pn.pn, 0
  %.85184 = extractvalue { ptr, i32 } %.pn445.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %128) #9
  br label %1580

805:                                              ; preds = %795
  %806 = landingpad { ptr, i32 }
          cleanup
  br label %812

807:                                              ; preds = %796
  %808 = landingpad { ptr, i32 }
          cleanup
  br label %811

809:                                              ; preds = %799, %797
  %810 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #9
  br label %811

811:                                              ; preds = %809, %807
  %.pn449 = phi { ptr, i32 } [ %810, %809 ], [ %808, %807 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %138) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #9
  br label %812

812:                                              ; preds = %811, %805
  %.pn449.pn = phi { ptr, i32 } [ %.pn449, %811 ], [ %806, %805 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #9
  br label %839

813:                                              ; preds = %802
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %139) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %814 unwind label %819

814:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %141) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %141, ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.50)
          to label %815 unwind label %821

815:                                              ; preds = %814
  %816 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %140, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 42, ptr noundef %816)
          to label %817 unwind label %823

817:                                              ; preds = %815
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %818 unwind label %825

818:                                              ; preds = %817
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #9
  br label %830

819:                                              ; preds = %813
  %820 = landingpad { ptr, i32 }
          cleanup
  br label %829

821:                                              ; preds = %814
  %822 = landingpad { ptr, i32 }
          cleanup
  br label %828

823:                                              ; preds = %815
  %824 = landingpad { ptr, i32 }
          cleanup
  br label %827

825:                                              ; preds = %817
  %826 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #9
  br label %827

827:                                              ; preds = %825, %823
  %.pn452 = phi { ptr, i32 } [ %826, %825 ], [ %824, %823 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  br label %828

828:                                              ; preds = %827, %821
  %.pn452.pn = phi { ptr, i32 } [ %.pn452, %827 ], [ %822, %821 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #9
  br label %829

829:                                              ; preds = %828, %819
  %.pn452.pn.pn = phi { ptr, i32 } [ %.pn452.pn, %828 ], [ %820, %819 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %139) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #9
  br label %839

830:                                              ; preds = %802, %818
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %133) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %142) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %143) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %145) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %831 unwind label %840

831:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %147) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @.str.51, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %832 unwind label %842

832:                                              ; preds = %831
  %833 = invoke noundef zeroext i1 @_ZNK4chen3cmd5existERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull align 8 dereferenceable(32) %146)
          to label %834 unwind label %844

834:                                              ; preds = %832
  %835 = xor i1 %833, true
  %836 = zext i1 %835 to i8
  store i8 %836, ptr %143, align 1, !tbaa !9
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %142, ptr noundef nonnull align 1 dereferenceable(1) %143, ptr noundef null)
          to label %837 unwind label %844

837:                                              ; preds = %834
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #9
  %838 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %142)
  br i1 %838, label %865, label %848

839:                                              ; preds = %829, %812
  %.pn452.pn.pn.pn = phi { ptr, i32 } [ %.pn452.pn.pn, %829 ], [ %.pn449.pn, %812 ]
  %.93 = extractvalue { ptr, i32 } %.pn452.pn.pn.pn, 0
  %.91190 = extractvalue { ptr, i32 } %.pn452.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %133) #9
  br label %1580

840:                                              ; preds = %830
  %841 = landingpad { ptr, i32 }
          cleanup
  br label %847

842:                                              ; preds = %831
  %843 = landingpad { ptr, i32 }
          cleanup
  br label %846

844:                                              ; preds = %834, %832
  %845 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #9
  br label %846

846:                                              ; preds = %844, %842
  %.pn457 = phi { ptr, i32 } [ %845, %844 ], [ %843, %842 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #9
  br label %847

847:                                              ; preds = %846, %840
  %.pn457.pn = phi { ptr, i32 } [ %.pn457, %846 ], [ %841, %840 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #9
  br label %877

848:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %148) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %148)
          to label %849 unwind label %854

849:                                              ; preds = %848
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %149) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %150, ptr noundef nonnull align 8 dereferenceable(16) %142, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.50)
          to label %850 unwind label %856

850:                                              ; preds = %849
  %851 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %149, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 43, ptr noundef %851)
          to label %852 unwind label %858

852:                                              ; preds = %850
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull align 8 dereferenceable(8) %148)
          to label %853 unwind label %860

853:                                              ; preds = %852
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %148) #9
  br label %865

854:                                              ; preds = %848
  %855 = landingpad { ptr, i32 }
          cleanup
  br label %864

856:                                              ; preds = %849
  %857 = landingpad { ptr, i32 }
          cleanup
  br label %863

858:                                              ; preds = %850
  %859 = landingpad { ptr, i32 }
          cleanup
  br label %862

860:                                              ; preds = %852
  %861 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #9
  br label %862

862:                                              ; preds = %860, %858
  %.pn460 = phi { ptr, i32 } [ %861, %860 ], [ %859, %858 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  br label %863

863:                                              ; preds = %862, %856
  %.pn460.pn = phi { ptr, i32 } [ %.pn460, %862 ], [ %857, %856 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #9
  br label %864

864:                                              ; preds = %863, %854
  %.pn460.pn.pn = phi { ptr, i32 } [ %.pn460.pn, %863 ], [ %855, %854 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %148) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #9
  br label %877

865:                                              ; preds = %837, %853
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %142) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %152) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %866 unwind label %878

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

867:                                              ; preds = %866
  invoke void @_ZN4chen3cmd7suggestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull align 8 dereferenceable(32) %153)
          to label %868 unwind label %882

868:                                              ; preds = %867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %155) #9
  %869 = load i32, ptr @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_app, align 1
  store i32 %869, ptr %155, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %156) #9
  %870 = load i64, ptr @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_version, align 1
  store i64 %870, ptr %156, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %157) #9
  store ptr %155, ptr %157, align 16, !tbaa !14
  %871 = getelementptr inbounds i8, ptr %157, i64 8
  store ptr %156, ptr %871, align 8, !tbaa !14
  %872 = getelementptr inbounds i8, ptr %157, i64 16
  store ptr null, ptr %872, align 16, !tbaa !14
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 2, ptr noundef nonnull %157)
          to label %873 unwind label %886

873:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %158) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %159) #9
  store i32 2, ptr %159, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %160) #9
  %874 = call noundef i32 @_ZNK4chen3cmd4argcEv(ptr noundef nonnull align 8 dereferenceable(224) %2)
  store i32 %874, ptr %160, align 4, !tbaa !5
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %158, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.55, ptr noundef nonnull align 4 dereferenceable(4) %159, ptr noundef nonnull align 4 dereferenceable(4) %160)
          to label %875 unwind label %888

875:                                              ; preds = %873
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %160) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %159) #9
  %876 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %158)
  br i1 %876, label %904, label %890

877:                                              ; preds = %864, %847
  %.pn460.pn.pn.pn = phi { ptr, i32 } [ %.pn460.pn.pn, %864 ], [ %.pn457.pn, %847 ]
  %.99 = extractvalue { ptr, i32 } %.pn460.pn.pn.pn, 0
  %.97196 = extractvalue { ptr, i32 } %.pn460.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %142) #9
  br label %1580

878:                                              ; preds = %865
  %879 = landingpad { ptr, i32 }
          cleanup
  br label %885

880:                                              ; preds = %866
  %881 = landingpad { ptr, i32 }
          cleanup
  br label %884

882:                                              ; preds = %867
  %883 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  br label %884

884:                                              ; preds = %882, %880
  %.pn465 = phi { ptr, i32 } [ %883, %882 ], [ %881, %880 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  br label %885

885:                                              ; preds = %884, %878
  %.pn465.pn = phi { ptr, i32 } [ %.pn465, %884 ], [ %879, %878 ]
  %.101 = extractvalue { ptr, i32 } %.pn465.pn, 0
  %.99198 = extractvalue { ptr, i32 } %.pn465.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #9
  br label %1580

886:                                              ; preds = %868
  %887 = landingpad { ptr, i32 }
          cleanup
  br label %981

888:                                              ; preds = %873
  %889 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %160) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %159) #9
  br label %908

890:                                              ; preds = %875
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %161) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %891 unwind label %896

891:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %162) #9
  %892 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %158)
          to label %893 unwind label %898

893:                                              ; preds = %891
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %162, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 57, ptr noundef %892)
          to label %894 unwind label %898

894:                                              ; preds = %893
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %895 unwind label %900

895:                                              ; preds = %894
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %162) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #9
  br label %904

896:                                              ; preds = %890
  %897 = landingpad { ptr, i32 }
          cleanup
  br label %903

898:                                              ; preds = %893, %891
  %899 = landingpad { ptr, i32 }
          cleanup
  br label %902

900:                                              ; preds = %894
  %901 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #9
  br label %902

902:                                              ; preds = %900, %898
  %.pn468 = phi { ptr, i32 } [ %901, %900 ], [ %899, %898 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %162) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #9
  br label %903

903:                                              ; preds = %902, %896
  %.pn468.pn = phi { ptr, i32 } [ %.pn468, %902 ], [ %897, %896 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %161) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #9
  br label %908

904:                                              ; preds = %875, %895
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %158) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %163) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %164) #9
  store ptr %157, ptr %164, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %165) #9
  %905 = call noundef ptr @_ZNK4chen3cmd4argvEv(ptr noundef nonnull align 8 dereferenceable(224) %2)
  store ptr %905, ptr %165, align 8, !tbaa !14
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIPPcS5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %163, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.57, ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %906 unwind label %909

906:                                              ; preds = %904
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %165) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #9
  %907 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %163)
  br i1 %907, label %925, label %911

908:                                              ; preds = %903, %888
  %.pn468.pn.pn = phi { ptr, i32 } [ %.pn468.pn, %903 ], [ %889, %888 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %158) #9
  br label %981

909:                                              ; preds = %904
  %910 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %165) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %164) #9
  br label %929

911:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %166) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %912 unwind label %917

912:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %167) #9
  %913 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %163)
          to label %914 unwind label %919

914:                                              ; preds = %912
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %167, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 58, ptr noundef %913)
          to label %915 unwind label %919

915:                                              ; preds = %914
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %916 unwind label %921

916:                                              ; preds = %915
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %167) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #9
  br label %925

917:                                              ; preds = %911
  %918 = landingpad { ptr, i32 }
          cleanup
  br label %924

919:                                              ; preds = %914, %912
  %920 = landingpad { ptr, i32 }
          cleanup
  br label %923

921:                                              ; preds = %915
  %922 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #9
  br label %923

923:                                              ; preds = %921, %919
  %.pn472 = phi { ptr, i32 } [ %922, %921 ], [ %920, %919 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %167) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #9
  br label %924

924:                                              ; preds = %923, %917
  %.pn472.pn = phi { ptr, i32 } [ %.pn472, %923 ], [ %918, %917 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %166) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #9
  br label %929

925:                                              ; preds = %906, %916
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %168) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %169) #9
  invoke void @_ZNK4chen3cmd3appB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %169, ptr noundef nonnull align 8 dereferenceable(224) %2)
          to label %926 unwind label %930

926:                                              ; preds = %925
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %168, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.59, ptr noundef nonnull align 1 dereferenceable(4) @.str.60, ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %927 unwind label %932

927:                                              ; preds = %926
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #9
  %928 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %168)
  br i1 %928, label %949, label %935

929:                                              ; preds = %924, %909
  %.pn472.pn.pn = phi { ptr, i32 } [ %.pn472.pn, %924 ], [ %910, %909 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #9
  br label %981

930:                                              ; preds = %925
  %931 = landingpad { ptr, i32 }
          cleanup
  br label %934

932:                                              ; preds = %926
  %933 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #9
  br label %934

934:                                              ; preds = %932, %930
  %.pn476 = phi { ptr, i32 } [ %933, %932 ], [ %931, %930 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #9
  br label %953

935:                                              ; preds = %927
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %170) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %170)
          to label %936 unwind label %941

936:                                              ; preds = %935
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %171) #9
  %937 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %168)
          to label %938 unwind label %943

938:                                              ; preds = %936
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %171, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 59, ptr noundef %937)
          to label %939 unwind label %943

939:                                              ; preds = %938
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef nonnull align 8 dereferenceable(8) %170)
          to label %940 unwind label %945

940:                                              ; preds = %939
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #9
  br label %949

941:                                              ; preds = %935
  %942 = landingpad { ptr, i32 }
          cleanup
  br label %948

943:                                              ; preds = %938, %936
  %944 = landingpad { ptr, i32 }
          cleanup
  br label %947

945:                                              ; preds = %939
  %946 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #9
  br label %947

947:                                              ; preds = %945, %943
  %.pn478 = phi { ptr, i32 } [ %946, %945 ], [ %944, %943 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %171) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #9
  br label %948

948:                                              ; preds = %947, %941
  %.pn478.pn = phi { ptr, i32 } [ %.pn478, %947 ], [ %942, %941 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %170) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %168) #9
  br label %953

949:                                              ; preds = %927, %940
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %168) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %168) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %172) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %173) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %173, ptr noundef nonnull align 8 dereferenceable(224) %2)
          to label %950 unwind label %954

950:                                              ; preds = %949
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA8_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %172, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.62, ptr noundef nonnull align 1 dereferenceable(8) @.str.8, ptr noundef nonnull align 8 dereferenceable(32) %173)
          to label %951 unwind label %956

951:                                              ; preds = %950
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #9
  %952 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %172)
  br i1 %952, label %973, label %959

953:                                              ; preds = %948, %934
  %.pn478.pn.pn = phi { ptr, i32 } [ %.pn478.pn, %948 ], [ %.pn476, %934 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %168) #9
  br label %981

954:                                              ; preds = %949
  %955 = landingpad { ptr, i32 }
          cleanup
  br label %958

956:                                              ; preds = %950
  %957 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #9
  br label %958

958:                                              ; preds = %956, %954
  %.pn482 = phi { ptr, i32 } [ %957, %956 ], [ %955, %954 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #9
  br label %980

959:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %174) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %174)
          to label %960 unwind label %965

960:                                              ; preds = %959
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %175) #9
  %961 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %172)
          to label %962 unwind label %967

962:                                              ; preds = %960
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %175, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 60, ptr noundef %961)
          to label %963 unwind label %967

963:                                              ; preds = %962
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef nonnull align 8 dereferenceable(8) %174)
          to label %964 unwind label %969

964:                                              ; preds = %963
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %175) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %174) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %174) #9
  br label %973

965:                                              ; preds = %959
  %966 = landingpad { ptr, i32 }
          cleanup
  br label %972

967:                                              ; preds = %962, %960
  %968 = landingpad { ptr, i32 }
          cleanup
  br label %971

969:                                              ; preds = %963
  %970 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #9
  br label %971

971:                                              ; preds = %969, %967
  %.pn484 = phi { ptr, i32 } [ %970, %969 ], [ %968, %967 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %175) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %174) #9
  br label %972

972:                                              ; preds = %971, %965
  %.pn484.pn = phi { ptr, i32 } [ %.pn484, %971 ], [ %966, %965 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %174) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %172) #9
  br label %980

973:                                              ; preds = %951, %964
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %172) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %172) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %157) #9
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %176) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %176, ptr noundef nonnull align 1 dereferenceable(6) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_start, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %177) #9
  store ptr %155, ptr %177, align 16, !tbaa !14
  %974 = getelementptr inbounds i8, ptr %177, i64 8
  store ptr %176, ptr %974, align 8, !tbaa !14
  %975 = getelementptr inbounds i8, ptr %177, i64 16
  store ptr null, ptr %975, align 16, !tbaa !14
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 2, ptr noundef nonnull %177)
          to label %976 unwind label %982

976:                                              ; preds = %973
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %178) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %179) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %179, ptr noundef nonnull align 8 dereferenceable(224) %2)
          to label %977 unwind label %984

977:                                              ; preds = %976
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %178, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.62, ptr noundef nonnull align 1 dereferenceable(6) @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %179)
          to label %978 unwind label %986

978:                                              ; preds = %977
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #9
  %979 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %178)
  br i1 %979, label %1003, label %989

980:                                              ; preds = %972, %958
  %.pn484.pn.pn = phi { ptr, i32 } [ %.pn484.pn, %972 ], [ %.pn482, %958 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %172) #9
  br label %981

981:                                              ; preds = %980, %953, %929, %908, %886
  %.pn484.pn.pn.pn = phi { ptr, i32 } [ %.pn484.pn.pn, %980 ], [ %.pn478.pn.pn, %953 ], [ %.pn472.pn.pn, %929 ], [ %.pn468.pn.pn, %908 ], [ %887, %886 ]
  %.116 = extractvalue { ptr, i32 } %.pn484.pn.pn.pn, 0
  %.114213 = extractvalue { ptr, i32 } %.pn484.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %157) #9
  br label %1579

982:                                              ; preds = %973
  %983 = landingpad { ptr, i32 }
          cleanup
  br label %1136

984:                                              ; preds = %976
  %985 = landingpad { ptr, i32 }
          cleanup
  br label %988

986:                                              ; preds = %977
  %987 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #9
  br label %988

988:                                              ; preds = %986, %984
  %.pn489 = phi { ptr, i32 } [ %987, %986 ], [ %985, %984 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #9
  br label %1009

989:                                              ; preds = %978
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %180) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %180)
          to label %990 unwind label %995

990:                                              ; preds = %989
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %181) #9
  %991 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %178)
          to label %992 unwind label %997

992:                                              ; preds = %990
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %181, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 71, ptr noundef %991)
          to label %993 unwind label %997

993:                                              ; preds = %992
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %181, ptr noundef nonnull align 8 dereferenceable(8) %180)
          to label %994 unwind label %999

994:                                              ; preds = %993
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #9
  br label %1003

995:                                              ; preds = %989
  %996 = landingpad { ptr, i32 }
          cleanup
  br label %1002

997:                                              ; preds = %992, %990
  %998 = landingpad { ptr, i32 }
          cleanup
  br label %1001

999:                                              ; preds = %993
  %1000 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #9
  br label %1001

1001:                                             ; preds = %999, %997
  %.pn491 = phi { ptr, i32 } [ %1000, %999 ], [ %998, %997 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #9
  br label %1002

1002:                                             ; preds = %1001, %995
  %.pn491.pn = phi { ptr, i32 } [ %.pn491, %1001 ], [ %996, %995 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %180) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %178) #9
  br label %1009

1003:                                             ; preds = %978, %994
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %178) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %178) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %182) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %183) #9
  store i32 80, ptr %183, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %184) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %185) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %186) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %186)
          to label %1004 unwind label %1010

1004:                                             ; preds = %1003
  %1005 = invoke noundef i32 @_ZNK4chen3cmd6intValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %185)
          to label %1006 unwind label %1012

1006:                                             ; preds = %1004
  store i32 %1005, ptr %184, align 4, !tbaa !5
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %182, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.65, ptr noundef nonnull align 4 dereferenceable(4) %183, ptr noundef nonnull align 4 dereferenceable(4) %184)
          to label %1007 unwind label %1012

1007:                                             ; preds = %1006
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %186) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %184) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %183) #9
  %1008 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %182)
  br i1 %1008, label %1029, label %1015

1009:                                             ; preds = %1002, %988
  %.pn491.pn.pn = phi { ptr, i32 } [ %.pn491.pn, %1002 ], [ %.pn489, %988 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %178) #9
  br label %1136

1010:                                             ; preds = %1003
  %1011 = landingpad { ptr, i32 }
          cleanup
  br label %1014

1012:                                             ; preds = %1006, %1004
  %1013 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #9
  br label %1014

1014:                                             ; preds = %1012, %1010
  %.pn495 = phi { ptr, i32 } [ %1013, %1012 ], [ %1011, %1010 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %186) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %184) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %183) #9
  br label %1034

1015:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %187) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %187)
          to label %1016 unwind label %1021

1016:                                             ; preds = %1015
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %188) #9
  %1017 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %182)
          to label %1018 unwind label %1023

1018:                                             ; preds = %1016
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %188, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 72, ptr noundef %1017)
          to label %1019 unwind label %1023

1019:                                             ; preds = %1018
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull align 8 dereferenceable(8) %187)
          to label %1020 unwind label %1025

1020:                                             ; preds = %1019
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %188) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %187) #9
  br label %1029

1021:                                             ; preds = %1015
  %1022 = landingpad { ptr, i32 }
          cleanup
  br label %1028

1023:                                             ; preds = %1018, %1016
  %1024 = landingpad { ptr, i32 }
          cleanup
  br label %1027

1025:                                             ; preds = %1019
  %1026 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #9
  br label %1027

1027:                                             ; preds = %1025, %1023
  %.pn497 = phi { ptr, i32 } [ %1026, %1025 ], [ %1024, %1023 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %188) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #9
  br label %1028

1028:                                             ; preds = %1027, %1021
  %.pn497.pn = phi { ptr, i32 } [ %.pn497, %1027 ], [ %1022, %1021 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %187) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %182) #9
  br label %1034

1029:                                             ; preds = %1007, %1020
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %182) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %182) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %189) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %190) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %191) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %192) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %191, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %192)
          to label %1030 unwind label %1035

1030:                                             ; preds = %1029
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %190, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %191)
          to label %1031 unwind label %1037

1031:                                             ; preds = %1030
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA8_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %189, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.67, ptr noundef nonnull align 1 dereferenceable(8) @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %190)
          to label %1032 unwind label %1039

1032:                                             ; preds = %1031
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %192) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #9
  %1033 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %189)
  br i1 %1033, label %1057, label %1043

1034:                                             ; preds = %1028, %1014
  %.pn497.pn.pn = phi { ptr, i32 } [ %.pn497.pn, %1028 ], [ %.pn495, %1014 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %182) #9
  br label %1136

1035:                                             ; preds = %1029
  %1036 = landingpad { ptr, i32 }
          cleanup
  br label %1042

1037:                                             ; preds = %1030
  %1038 = landingpad { ptr, i32 }
          cleanup
  br label %1041

1039:                                             ; preds = %1031
  %1040 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  br label %1041

1041:                                             ; preds = %1039, %1037
  %.pn501 = phi { ptr, i32 } [ %1040, %1039 ], [ %1038, %1037 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  br label %1042

1042:                                             ; preds = %1041, %1035
  %.pn501.pn = phi { ptr, i32 } [ %.pn501, %1041 ], [ %1036, %1035 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %192) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %192) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #9
  br label %1065

1043:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %193) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1044 unwind label %1049

1044:                                             ; preds = %1043
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %194) #9
  %1045 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %189)
          to label %1046 unwind label %1051

1046:                                             ; preds = %1044
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %194, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 73, ptr noundef %1045)
          to label %1047 unwind label %1051

1047:                                             ; preds = %1046
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1048 unwind label %1053

1048:                                             ; preds = %1047
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %194) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %193) #9
  br label %1057

1049:                                             ; preds = %1043
  %1050 = landingpad { ptr, i32 }
          cleanup
  br label %1056

1051:                                             ; preds = %1046, %1044
  %1052 = landingpad { ptr, i32 }
          cleanup
  br label %1055

1053:                                             ; preds = %1047
  %1054 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #9
  br label %1055

1055:                                             ; preds = %1053, %1051
  %.pn504 = phi { ptr, i32 } [ %1054, %1053 ], [ %1052, %1051 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %194) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #9
  br label %1056

1056:                                             ; preds = %1055, %1049
  %.pn504.pn = phi { ptr, i32 } [ %.pn504, %1055 ], [ %1050, %1049 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %193) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #9
  br label %1065

1057:                                             ; preds = %1032, %1048
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %189) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %195) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %196) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %197) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %198) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %198)
          to label %1058 unwind label %1066

1058:                                             ; preds = %1057
  %1059 = invoke noundef zeroext i1 @_ZNK4chen3cmd5isSetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %197)
          to label %1060 unwind label %1068

1060:                                             ; preds = %1058
  %1061 = xor i1 %1059, true
  %1062 = zext i1 %1061 to i8
  store i8 %1062, ptr %196, align 1, !tbaa !9
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull align 1 dereferenceable(1) %196, ptr noundef null)
          to label %1063 unwind label %1068

1063:                                             ; preds = %1060
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %198) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %197) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #9
  %1064 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %195)
  br i1 %1064, label %1088, label %1071

1065:                                             ; preds = %1056, %1042
  %.pn504.pn.pn = phi { ptr, i32 } [ %.pn504.pn, %1056 ], [ %.pn501.pn, %1042 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %189) #9
  br label %1136

1066:                                             ; preds = %1057
  %1067 = landingpad { ptr, i32 }
          cleanup
  br label %1070

1068:                                             ; preds = %1060, %1058
  %1069 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #9
  br label %1070

1070:                                             ; preds = %1068, %1066
  %.pn508 = phi { ptr, i32 } [ %1069, %1068 ], [ %1067, %1066 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %198) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %197) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #9
  br label %1096

1071:                                             ; preds = %1063
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %199) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %199)
          to label %1072 unwind label %1077

1072:                                             ; preds = %1071
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %200) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %201) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %201, ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.50)
          to label %1073 unwind label %1079

1073:                                             ; preds = %1072
  %1074 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %200, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 75, ptr noundef %1074)
          to label %1075 unwind label %1081

1075:                                             ; preds = %1073
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull align 8 dereferenceable(8) %199)
          to label %1076 unwind label %1083

1076:                                             ; preds = %1075
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %200) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %201) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %199) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %199) #9
  br label %1088

1077:                                             ; preds = %1071
  %1078 = landingpad { ptr, i32 }
          cleanup
  br label %1087

1079:                                             ; preds = %1072
  %1080 = landingpad { ptr, i32 }
          cleanup
  br label %1086

1081:                                             ; preds = %1073
  %1082 = landingpad { ptr, i32 }
          cleanup
  br label %1085

1083:                                             ; preds = %1075
  %1084 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %200) #9
  br label %1085

1085:                                             ; preds = %1083, %1081
  %.pn510 = phi { ptr, i32 } [ %1084, %1083 ], [ %1082, %1081 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  br label %1086

1086:                                             ; preds = %1085, %1079
  %.pn510.pn = phi { ptr, i32 } [ %.pn510, %1085 ], [ %1080, %1079 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %201) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %199) #9
  br label %1087

1087:                                             ; preds = %1086, %1077
  %.pn510.pn.pn = phi { ptr, i32 } [ %.pn510.pn, %1086 ], [ %1078, %1077 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %199) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %195) #9
  br label %1096

1088:                                             ; preds = %1063, %1076
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %195) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %195) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %202) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %203) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %204) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %205) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %1089 unwind label %1097

1089:                                             ; preds = %1088
  %1090 = invoke noundef zeroext i1 @_ZNK4chen3cmd7boolValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %204)
          to label %1091 unwind label %1099

1091:                                             ; preds = %1089
  %1092 = xor i1 %1090, true
  %1093 = zext i1 %1092 to i8
  store i8 %1093, ptr %203, align 1, !tbaa !9
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef nonnull align 1 dereferenceable(1) %203, ptr noundef null)
          to label %1094 unwind label %1099

1094:                                             ; preds = %1091
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %205) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %203) #9
  %1095 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %202)
  br i1 %1095, label %1119, label %1102

1096:                                             ; preds = %1087, %1070
  %.pn510.pn.pn.pn = phi { ptr, i32 } [ %.pn510.pn.pn, %1087 ], [ %.pn508, %1070 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %195) #9
  br label %1136

1097:                                             ; preds = %1088
  %1098 = landingpad { ptr, i32 }
          cleanup
  br label %1101

1099:                                             ; preds = %1091, %1089
  %1100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #9
  br label %1101

1101:                                             ; preds = %1099, %1097
  %.pn515 = phi { ptr, i32 } [ %1100, %1099 ], [ %1098, %1097 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %205) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %203) #9
  br label %1135

1102:                                             ; preds = %1094
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %206) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %206)
          to label %1103 unwind label %1108

1103:                                             ; preds = %1102
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %207) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.50)
          to label %1104 unwind label %1110

1104:                                             ; preds = %1103
  %1105 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %207, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 76, ptr noundef %1105)
          to label %1106 unwind label %1112

1106:                                             ; preds = %1104
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %207, ptr noundef nonnull align 8 dereferenceable(8) %206)
          to label %1107 unwind label %1114

1107:                                             ; preds = %1106
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %207) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %207) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %206) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %206) #9
  br label %1119

1108:                                             ; preds = %1102
  %1109 = landingpad { ptr, i32 }
          cleanup
  br label %1118

1110:                                             ; preds = %1103
  %1111 = landingpad { ptr, i32 }
          cleanup
  br label %1117

1112:                                             ; preds = %1104
  %1113 = landingpad { ptr, i32 }
          cleanup
  br label %1116

1114:                                             ; preds = %1106
  %1115 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %207) #9
  br label %1116

1116:                                             ; preds = %1114, %1112
  %.pn517 = phi { ptr, i32 } [ %1115, %1114 ], [ %1113, %1112 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  br label %1117

1117:                                             ; preds = %1116, %1110
  %.pn517.pn = phi { ptr, i32 } [ %.pn517, %1116 ], [ %1111, %1110 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %207) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %206) #9
  br label %1118

1118:                                             ; preds = %1117, %1108
  %.pn517.pn.pn = phi { ptr, i32 } [ %.pn517.pn, %1117 ], [ %1109, %1108 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %206) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %202) #9
  br label %1135

1119:                                             ; preds = %1094, %1107
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %202) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %202) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %177) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %209) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %209, ptr noundef nonnull align 1 dereferenceable(12) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_port, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %210) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %210, ptr noundef nonnull align 1 dereferenceable(13) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_addr, i64 13, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %211) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %211, ptr noundef nonnull align 1 dereferenceable(9) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_thread, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %212) #9
  %1120 = load i16, ptr @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_four, align 1
  store i16 %1120, ptr %212, align 2
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %213) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %213, ptr noundef nonnull align 1 dereferenceable(3) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_s, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %214) #9
  %1121 = load i32, ptr @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_100, align 1
  store i32 %1121, ptr %214, align 4
  call void @llvm.lifetime.start.p0(i64 10, ptr nonnull %215) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %215, ptr noundef nonnull align 1 dereferenceable(10) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_ip, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %216) #9
  store ptr %155, ptr %216, align 16, !tbaa !14
  %1122 = getelementptr inbounds i8, ptr %216, i64 8
  store ptr %176, ptr %1122, align 8, !tbaa !14
  %1123 = getelementptr inbounds i8, ptr %216, i64 16
  store ptr %209, ptr %1123, align 16, !tbaa !14
  %1124 = getelementptr inbounds i8, ptr %216, i64 24
  store ptr %210, ptr %1124, align 8, !tbaa !14
  %1125 = getelementptr inbounds i8, ptr %216, i64 32
  store ptr %211, ptr %1125, align 16, !tbaa !14
  %1126 = getelementptr inbounds i8, ptr %216, i64 40
  store ptr %212, ptr %1126, align 8, !tbaa !14
  %1127 = getelementptr inbounds i8, ptr %216, i64 48
  store ptr %213, ptr %1127, align 16, !tbaa !14
  %1128 = getelementptr inbounds i8, ptr %216, i64 56
  store ptr %214, ptr %1128, align 8, !tbaa !14
  %1129 = getelementptr inbounds i8, ptr %216, i64 64
  store ptr %215, ptr %1129, align 16, !tbaa !14
  %1130 = getelementptr inbounds i8, ptr %216, i64 72
  store ptr null, ptr %1130, align 8, !tbaa !14
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 9, ptr noundef nonnull %216)
          to label %1131 unwind label %1137

1131:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %217) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %218) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %218, ptr noundef nonnull align 8 dereferenceable(224) %2)
          to label %1132 unwind label %1139

1132:                                             ; preds = %1131
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %217, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.62, ptr noundef nonnull align 1 dereferenceable(6) @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %218)
          to label %1133 unwind label %1141

1133:                                             ; preds = %1132
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %218) #9
  %1134 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %217)
  br i1 %1134, label %1158, label %1144

1135:                                             ; preds = %1118, %1101
  %.pn517.pn.pn.pn = phi { ptr, i32 } [ %.pn517.pn.pn, %1118 ], [ %.pn515, %1101 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %202) #9
  br label %1136

1136:                                             ; preds = %1135, %1096, %1065, %1034, %1009, %982
  %.pn517.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn517.pn.pn.pn, %1135 ], [ %.pn510.pn.pn.pn, %1096 ], [ %.pn504.pn.pn, %1065 ], [ %.pn497.pn.pn, %1034 ], [ %.pn491.pn.pn, %1009 ], [ %983, %982 ]
  %.140 = extractvalue { ptr, i32 } %.pn517.pn.pn.pn.pn, 0
  %.138237 = extractvalue { ptr, i32 } %.pn517.pn.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %177) #9
  br label %1578

1137:                                             ; preds = %1119
  %1138 = landingpad { ptr, i32 }
          cleanup
  br label %1355

1139:                                             ; preds = %1131
  %1140 = landingpad { ptr, i32 }
          cleanup
  br label %1143

1141:                                             ; preds = %1132
  %1142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #9
  br label %1143

1143:                                             ; preds = %1141, %1139
  %.pn523 = phi { ptr, i32 } [ %1142, %1141 ], [ %1140, %1139 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %218) #9
  br label %1164

1144:                                             ; preds = %1133
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %219) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %219)
          to label %1145 unwind label %1150

1145:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %220) #9
  %1146 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %217)
          to label %1147 unwind label %1152

1147:                                             ; preds = %1145
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %220, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 93, ptr noundef %1146)
          to label %1148 unwind label %1152

1148:                                             ; preds = %1147
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef nonnull align 8 dereferenceable(8) %219)
          to label %1149 unwind label %1154

1149:                                             ; preds = %1148
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %220) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %219) #9
  br label %1158

1150:                                             ; preds = %1144
  %1151 = landingpad { ptr, i32 }
          cleanup
  br label %1157

1152:                                             ; preds = %1147, %1145
  %1153 = landingpad { ptr, i32 }
          cleanup
  br label %1156

1154:                                             ; preds = %1148
  %1155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #9
  br label %1156

1156:                                             ; preds = %1154, %1152
  %.pn525 = phi { ptr, i32 } [ %1155, %1154 ], [ %1153, %1152 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %220) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #9
  br label %1157

1157:                                             ; preds = %1156, %1150
  %.pn525.pn = phi { ptr, i32 } [ %.pn525, %1156 ], [ %1151, %1150 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %219) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #9
  br label %1164

1158:                                             ; preds = %1133, %1149
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %217) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %221) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %222) #9
  store i32 8888, ptr %222, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %223) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %224) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %225) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %225)
          to label %1159 unwind label %1165

1159:                                             ; preds = %1158
  %1160 = invoke noundef i32 @_ZNK4chen3cmd6intValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %224)
          to label %1161 unwind label %1167

1161:                                             ; preds = %1159
  store i32 %1160, ptr %223, align 4, !tbaa !5
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %221, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.65, ptr noundef nonnull align 4 dereferenceable(4) %222, ptr noundef nonnull align 4 dereferenceable(4) %223)
          to label %1162 unwind label %1167

1162:                                             ; preds = %1161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %225) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %223) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %222) #9
  %1163 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %221)
  br i1 %1163, label %1184, label %1170

1164:                                             ; preds = %1157, %1143
  %.pn525.pn.pn = phi { ptr, i32 } [ %.pn525.pn, %1157 ], [ %.pn523, %1143 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %217) #9
  br label %1355

1165:                                             ; preds = %1158
  %1166 = landingpad { ptr, i32 }
          cleanup
  br label %1169

1167:                                             ; preds = %1161, %1159
  %1168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #9
  br label %1169

1169:                                             ; preds = %1167, %1165
  %.pn529 = phi { ptr, i32 } [ %1168, %1167 ], [ %1166, %1165 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %225) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %223) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %222) #9
  br label %1189

1170:                                             ; preds = %1162
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %226) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %226)
          to label %1171 unwind label %1176

1171:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %227) #9
  %1172 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %221)
          to label %1173 unwind label %1178

1173:                                             ; preds = %1171
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %227, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 94, ptr noundef %1172)
          to label %1174 unwind label %1178

1174:                                             ; preds = %1173
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef nonnull align 8 dereferenceable(8) %226)
          to label %1175 unwind label %1180

1175:                                             ; preds = %1174
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %227) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %226) #9
  br label %1184

1176:                                             ; preds = %1170
  %1177 = landingpad { ptr, i32 }
          cleanup
  br label %1183

1178:                                             ; preds = %1173, %1171
  %1179 = landingpad { ptr, i32 }
          cleanup
  br label %1182

1180:                                             ; preds = %1174
  %1181 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #9
  br label %1182

1182:                                             ; preds = %1180, %1178
  %.pn531 = phi { ptr, i32 } [ %1181, %1180 ], [ %1179, %1178 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %227) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #9
  br label %1183

1183:                                             ; preds = %1182, %1176
  %.pn531.pn = phi { ptr, i32 } [ %.pn531, %1182 ], [ %1177, %1176 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %226) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #9
  br label %1189

1184:                                             ; preds = %1162, %1175
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %221) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %228) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %229) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %230) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %231) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %1185 unwind label %1190

1185:                                             ; preds = %1184
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %229, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %1186 unwind label %1192

1186:                                             ; preds = %1185
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %228, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.67, ptr noundef nonnull align 1 dereferenceable(10) @.str.72, ptr noundef nonnull align 8 dereferenceable(32) %229)
          to label %1187 unwind label %1194

1187:                                             ; preds = %1186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %231) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #9
  %1188 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %228)
  br i1 %1188, label %1212, label %1198

1189:                                             ; preds = %1183, %1169
  %.pn531.pn.pn = phi { ptr, i32 } [ %.pn531.pn, %1183 ], [ %.pn529, %1169 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %221) #9
  br label %1355

1190:                                             ; preds = %1184
  %1191 = landingpad { ptr, i32 }
          cleanup
  br label %1197

1192:                                             ; preds = %1185
  %1193 = landingpad { ptr, i32 }
          cleanup
  br label %1196

1194:                                             ; preds = %1186
  %1195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #9
  br label %1196

1196:                                             ; preds = %1194, %1192
  %.pn535 = phi { ptr, i32 } [ %1195, %1194 ], [ %1193, %1192 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #9
  br label %1197

1197:                                             ; preds = %1196, %1190
  %.pn535.pn = phi { ptr, i32 } [ %.pn535, %1196 ], [ %1191, %1190 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %231) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #9
  br label %1220

1198:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %232) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %232)
          to label %1199 unwind label %1204

1199:                                             ; preds = %1198
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %233) #9
  %1200 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %228)
          to label %1201 unwind label %1206

1201:                                             ; preds = %1199
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %233, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 95, ptr noundef %1200)
          to label %1202 unwind label %1206

1202:                                             ; preds = %1201
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef nonnull align 8 dereferenceable(8) %232)
          to label %1203 unwind label %1208

1203:                                             ; preds = %1202
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %233) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %233) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #9
  br label %1212

1204:                                             ; preds = %1198
  %1205 = landingpad { ptr, i32 }
          cleanup
  br label %1211

1206:                                             ; preds = %1201, %1199
  %1207 = landingpad { ptr, i32 }
          cleanup
  br label %1210

1208:                                             ; preds = %1202
  %1209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %233) #9
  br label %1210

1210:                                             ; preds = %1208, %1206
  %.pn538 = phi { ptr, i32 } [ %1209, %1208 ], [ %1207, %1206 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %233) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #9
  br label %1211

1211:                                             ; preds = %1210, %1204
  %.pn538.pn = phi { ptr, i32 } [ %.pn538, %1210 ], [ %1205, %1204 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %232) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %228) #9
  br label %1220

1212:                                             ; preds = %1187, %1203
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %228) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %228) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %234) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef nonnull @.str.4)
  %1213 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %234)
  br i1 %1213, label %1214, label %.thread677

1214:                                             ; preds = %1212
  %1215 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1216 unwind label %1221

1216:                                             ; preds = %1214
  br i1 %1215, label %1217, label %.critedge635

1217:                                             ; preds = %1216
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %236) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %237) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %237)
          to label %1218 unwind label %1223

1218:                                             ; preds = %1217
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %235, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %236)
          to label %1219 unwind label %1225

1219:                                             ; preds = %1218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %237) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %236) #9
  br label %.critedge635

1220:                                             ; preds = %1211, %1197
  %.pn538.pn.pn = phi { ptr, i32 } [ %.pn538.pn, %1211 ], [ %.pn535.pn, %1197 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %228) #9
  br label %1355

1221:                                             ; preds = %1214
  %1222 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  br label %1228

1223:                                             ; preds = %1217
  %1224 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  br label %1227

1225:                                             ; preds = %1218
  %1226 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #9
  br label %1227

1227:                                             ; preds = %1225, %1223
  %.pn542 = phi { ptr, i32 } [ %1226, %1225 ], [ %1224, %1223 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %237) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %236) #9
  br label %1228

1228:                                             ; preds = %1227, %1221
  %.pn542.pn = phi { ptr, i32 } [ %.pn542, %1227 ], [ %1222, %1221 ]
  %.155 = extractvalue { ptr, i32 } %.pn542.pn, 0
  %.153252 = extractvalue { ptr, i32 } %.pn542.pn, 1
  %1229 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd5errorE) #9
  %1230 = icmp eq i32 %.153252, %1229
  %1231 = call ptr @__cxa_begin_catch(ptr %.155) #9
  br i1 %1230, label %1232, label %1233

1232:                                             ; preds = %1228
  invoke void @__cxa_end_catch()
          to label %1250 unwind label %1236

.critedge635:                                     ; preds = %1216, %1219
  store ptr @.str.75, ptr %234, align 8, !tbaa !11
  br label %.thread677

1233:                                             ; preds = %1228
  store ptr @.str.74, ptr %234, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread677 unwind label %1234

1234:                                             ; preds = %1233
  %1235 = landingpad { ptr, i32 }
          cleanup
  br label %1258

1236:                                             ; preds = %1232
  %1237 = landingpad { ptr, i32 }
          cleanup
  br label %1258

.thread677:                                       ; preds = %1233, %.critedge635, %1212
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %238) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %238)
          to label %1238 unwind label %1242

1238:                                             ; preds = %.thread677
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %239) #9
  %1239 = load ptr, ptr %234, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %239, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 97, ptr noundef %1239)
          to label %1240 unwind label %1244

1240:                                             ; preds = %1238
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef nonnull align 8 dereferenceable(8) %238)
          to label %1241 unwind label %1246

1241:                                             ; preds = %1240
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %239) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %239) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %238) #9
  br label %1250

1242:                                             ; preds = %.thread677
  %1243 = landingpad { ptr, i32 }
          cleanup
  br label %1249

1244:                                             ; preds = %1238
  %1245 = landingpad { ptr, i32 }
          cleanup
  br label %1248

1246:                                             ; preds = %1240
  %1247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %239) #9
  br label %1248

1248:                                             ; preds = %1246, %1244
  %.pn547 = phi { ptr, i32 } [ %1247, %1246 ], [ %1245, %1244 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %239) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #9
  br label %1249

1249:                                             ; preds = %1248, %1242
  %.pn547.pn = phi { ptr, i32 } [ %.pn547, %1248 ], [ %1243, %1242 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %238) #9
  br label %1258

1250:                                             ; preds = %1232, %1241
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %240) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull @.str.4)
  %1251 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %240)
  br i1 %1251, label %1252, label %.thread681

1252:                                             ; preds = %1250
  %1253 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1254 unwind label %1259

1254:                                             ; preds = %1252
  br i1 %1253, label %1255, label %.critedge639

1255:                                             ; preds = %1254
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %242) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %243) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef nonnull @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %243)
          to label %1256 unwind label %1261

1256:                                             ; preds = %1255
  invoke void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %241, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %242)
          to label %1257 unwind label %1263

1257:                                             ; preds = %1256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %243) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %242) #9
  br label %.critedge639

1258:                                             ; preds = %1234, %1236, %1249
  %.pn547.pn.pn = phi { ptr, i32 } [ %.pn547.pn, %1249 ], [ %1237, %1236 ], [ %1235, %1234 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #9
  br label %1355

1259:                                             ; preds = %1252
  %1260 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  br label %1266

1261:                                             ; preds = %1255
  %1262 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  br label %1265

1263:                                             ; preds = %1256
  %1264 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #9
  br label %1265

1265:                                             ; preds = %1263, %1261
  %.pn551 = phi { ptr, i32 } [ %1264, %1263 ], [ %1262, %1261 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %243) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %242) #9
  br label %1266

1266:                                             ; preds = %1265, %1259
  %.pn551.pn = phi { ptr, i32 } [ %.pn551, %1265 ], [ %1260, %1259 ]
  %.161 = extractvalue { ptr, i32 } %.pn551.pn, 0
  %.159258 = extractvalue { ptr, i32 } %.pn551.pn, 1
  %1267 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd5errorE) #9
  %1268 = icmp eq i32 %.159258, %1267
  %1269 = call ptr @__cxa_begin_catch(ptr %.161) #9
  br i1 %1268, label %1270, label %1271

1270:                                             ; preds = %1266
  invoke void @__cxa_end_catch()
          to label %1288 unwind label %1274

.critedge639:                                     ; preds = %1254, %1257
  store ptr @.str.78, ptr %240, align 8, !tbaa !11
  br label %.thread681

1271:                                             ; preds = %1266
  store ptr @.str.77, ptr %240, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread681 unwind label %1272

1272:                                             ; preds = %1271
  %1273 = landingpad { ptr, i32 }
          cleanup
  br label %1295

1274:                                             ; preds = %1270
  %1275 = landingpad { ptr, i32 }
          cleanup
  br label %1295

.thread681:                                       ; preds = %1271, %.critedge639, %1250
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %244) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %244)
          to label %1276 unwind label %1280

1276:                                             ; preds = %.thread681
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %245) #9
  %1277 = load ptr, ptr %240, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %245, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 98, ptr noundef %1277)
          to label %1278 unwind label %1282

1278:                                             ; preds = %1276
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull align 8 dereferenceable(8) %244)
          to label %1279 unwind label %1284

1279:                                             ; preds = %1278
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %245) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %244) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %244) #9
  br label %1288

1280:                                             ; preds = %.thread681
  %1281 = landingpad { ptr, i32 }
          cleanup
  br label %1287

1282:                                             ; preds = %1276
  %1283 = landingpad { ptr, i32 }
          cleanup
  br label %1286

1284:                                             ; preds = %1278
  %1285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #9
  br label %1286

1286:                                             ; preds = %1284, %1282
  %.pn556 = phi { ptr, i32 } [ %1285, %1284 ], [ %1283, %1282 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %245) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %244) #9
  br label %1287

1287:                                             ; preds = %1286, %1280
  %.pn556.pn = phi { ptr, i32 } [ %.pn556, %1286 ], [ %1281, %1280 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %244) #9
  br label %1295

1288:                                             ; preds = %1270, %1279
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %240) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %246) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %247) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %248) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %249) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %249)
          to label %1289 unwind label %1296

1289:                                             ; preds = %1288
  %1290 = invoke noundef zeroext i1 @_ZNK4chen3cmd5isSetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %248)
          to label %1291 unwind label %1298

1291:                                             ; preds = %1289
  %1292 = zext i1 %1290 to i8
  store i8 %1292, ptr %247, align 1, !tbaa !9
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %246, ptr noundef nonnull align 1 dereferenceable(1) %247, ptr noundef null)
          to label %1293 unwind label %1298

1293:                                             ; preds = %1291
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %249) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %247) #9
  %1294 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %246)
  br i1 %1294, label %1318, label %1301

1295:                                             ; preds = %1272, %1274, %1287
  %.pn556.pn.pn = phi { ptr, i32 } [ %.pn556.pn, %1287 ], [ %1275, %1274 ], [ %1273, %1272 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %240) #9
  br label %1355

1296:                                             ; preds = %1288
  %1297 = landingpad { ptr, i32 }
          cleanup
  br label %1300

1298:                                             ; preds = %1291, %1289
  %1299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #9
  br label %1300

1300:                                             ; preds = %1298, %1296
  %.pn560 = phi { ptr, i32 } [ %1299, %1298 ], [ %1297, %1296 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %249) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %247) #9
  br label %1326

1301:                                             ; preds = %1293
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %250) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %250)
          to label %1302 unwind label %1307

1302:                                             ; preds = %1301
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %251) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %252) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %252, ptr noundef nonnull align 8 dereferenceable(16) %246, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.49)
          to label %1303 unwind label %1309

1303:                                             ; preds = %1302
  %1304 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %252) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %251, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 100, ptr noundef %1304)
          to label %1305 unwind label %1311

1305:                                             ; preds = %1303
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %251, ptr noundef nonnull align 8 dereferenceable(8) %250)
          to label %1306 unwind label %1313

1306:                                             ; preds = %1305
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %252) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %251) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %250) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %250) #9
  br label %1318

1307:                                             ; preds = %1301
  %1308 = landingpad { ptr, i32 }
          cleanup
  br label %1317

1309:                                             ; preds = %1302
  %1310 = landingpad { ptr, i32 }
          cleanup
  br label %1316

1311:                                             ; preds = %1303
  %1312 = landingpad { ptr, i32 }
          cleanup
  br label %1315

1313:                                             ; preds = %1305
  %1314 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #9
  br label %1315

1315:                                             ; preds = %1313, %1311
  %.pn562 = phi { ptr, i32 } [ %1314, %1313 ], [ %1312, %1311 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #9
  br label %1316

1316:                                             ; preds = %1315, %1309
  %.pn562.pn = phi { ptr, i32 } [ %.pn562, %1315 ], [ %1310, %1309 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %252) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %251) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %250) #9
  br label %1317

1317:                                             ; preds = %1316, %1307
  %.pn562.pn.pn = phi { ptr, i32 } [ %.pn562.pn, %1316 ], [ %1308, %1307 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %250) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %246) #9
  br label %1326

1318:                                             ; preds = %1293, %1306
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %246) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %246) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %253) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %254) #9
  %1319 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4chen3cmd7objectsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(224) %2)
          to label %1320 unwind label %1327

1320:                                             ; preds = %1318
  %1321 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %1319) #9
  %1322 = xor i1 %1321, true
  %1323 = zext i1 %1322 to i8
  store i8 %1323, ptr %254, align 1, !tbaa !9
  invoke void @_ZN7testing15AssertionResultC2IbEERKT_PNS_8internal8EnableIfIXntsr8internal21ImplicitlyConvertibleIS2_S0_EE5valueEE4typeE(ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull align 1 dereferenceable(1) %254, ptr noundef null)
          to label %1324 unwind label %1327

1324:                                             ; preds = %1320
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %254) #9
  %1325 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %253)
  br i1 %1325, label %1346, label %1329

1326:                                             ; preds = %1317, %1300
  %.pn562.pn.pn.pn = phi { ptr, i32 } [ %.pn562.pn.pn, %1317 ], [ %.pn560, %1300 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %246) #9
  br label %1355

1327:                                             ; preds = %1320, %1318
  %1328 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %254) #9
  br label %1354

1329:                                             ; preds = %1324
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %255) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %255)
          to label %1330 unwind label %1335

1330:                                             ; preds = %1329
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %256) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %257) #9
  invoke void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %257, ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.50)
          to label %1331 unwind label %1337

1331:                                             ; preds = %1330
  %1332 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %257) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %256, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 101, ptr noundef %1332)
          to label %1333 unwind label %1339

1333:                                             ; preds = %1331
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %256, ptr noundef nonnull align 8 dereferenceable(8) %255)
          to label %1334 unwind label %1341

1334:                                             ; preds = %1333
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %256) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %256) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %255) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %255) #9
  br label %1346

1335:                                             ; preds = %1329
  %1336 = landingpad { ptr, i32 }
          cleanup
  br label %1345

1337:                                             ; preds = %1330
  %1338 = landingpad { ptr, i32 }
          cleanup
  br label %1344

1339:                                             ; preds = %1331
  %1340 = landingpad { ptr, i32 }
          cleanup
  br label %1343

1341:                                             ; preds = %1333
  %1342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %256) #9
  br label %1343

1343:                                             ; preds = %1341, %1339
  %.pn567 = phi { ptr, i32 } [ %1342, %1341 ], [ %1340, %1339 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #9
  br label %1344

1344:                                             ; preds = %1343, %1337
  %.pn567.pn = phi { ptr, i32 } [ %.pn567, %1343 ], [ %1338, %1337 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %256) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %255) #9
  br label %1345

1345:                                             ; preds = %1344, %1335
  %.pn567.pn.pn = phi { ptr, i32 } [ %.pn567.pn, %1344 ], [ %1336, %1335 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %255) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %253) #9
  br label %1354

1346:                                             ; preds = %1324, %1334
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %253) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %253) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %216) #9
  call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %258) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %258, ptr noundef nonnull align 1 dereferenceable(7) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_module, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %259) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %259, ptr noundef nonnull align 1 dereferenceable(7) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_update, i64 7, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %260) #9
  store ptr %155, ptr %260, align 16, !tbaa !14
  %1347 = getelementptr inbounds i8, ptr %260, i64 8
  store ptr %258, ptr %1347, align 8, !tbaa !14
  %1348 = getelementptr inbounds i8, ptr %260, i64 16
  store ptr %259, ptr %1348, align 16, !tbaa !14
  %1349 = getelementptr inbounds i8, ptr %260, i64 24
  store ptr null, ptr %1349, align 8, !tbaa !14
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 3, ptr noundef nonnull %260)
          to label %1350 unwind label %1356

1350:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %261) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %262) #9
  invoke void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %262, ptr noundef nonnull align 8 dereferenceable(224) %2)
          to label %1351 unwind label %1358

1351:                                             ; preds = %1350
  invoke void @_ZN7testing8internal8EqHelperILb0EE7CompareIA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind nonnull writable sret(%"class.testing::AssertionResult") align 8 %261, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.62, ptr noundef nonnull align 1 dereferenceable(14) @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %262)
          to label %1352 unwind label %1360

1352:                                             ; preds = %1351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %262) #9
  %1353 = call noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %261)
  br i1 %1353, label %1377, label %1363

1354:                                             ; preds = %1345, %1327
  %.pn567.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn, %1345 ], [ %1328, %1327 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %253) #9
  br label %1355

1355:                                             ; preds = %1354, %1326, %1295, %1258, %1220, %1189, %1164, %1137
  %.pn567.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn, %1354 ], [ %.pn562.pn.pn.pn, %1326 ], [ %.pn556.pn.pn, %1295 ], [ %.pn547.pn.pn, %1258 ], [ %.pn538.pn.pn, %1220 ], [ %.pn531.pn.pn, %1189 ], [ %.pn525.pn.pn, %1164 ], [ %1138, %1137 ]
  %.175 = extractvalue { ptr, i32 } %.pn567.pn.pn.pn.pn, 0
  %.173272 = extractvalue { ptr, i32 } %.pn567.pn.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %216) #9
  br label %1577

1356:                                             ; preds = %1346
  %1357 = landingpad { ptr, i32 }
          cleanup
  br label %1388

1358:                                             ; preds = %1350
  %1359 = landingpad { ptr, i32 }
          cleanup
  br label %1362

1360:                                             ; preds = %1351
  %1361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #9
  br label %1362

1362:                                             ; preds = %1360, %1358
  %.pn573 = phi { ptr, i32 } [ %1361, %1360 ], [ %1359, %1358 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %262) #9
  br label %1387

1363:                                             ; preds = %1352
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %263) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %263)
          to label %1364 unwind label %1369

1364:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %264) #9
  %1365 = invoke noundef ptr @_ZNK7testing15AssertionResult15failure_messageEv(ptr noundef nonnull align 8 dereferenceable(16) %261)
          to label %1366 unwind label %1371

1366:                                             ; preds = %1364
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %264, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 113, ptr noundef %1365)
          to label %1367 unwind label %1371

1367:                                             ; preds = %1366
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %264, ptr noundef nonnull align 8 dereferenceable(8) %263)
          to label %1368 unwind label %1373

1368:                                             ; preds = %1367
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %264) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %263) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %263) #9
  br label %1377

1369:                                             ; preds = %1363
  %1370 = landingpad { ptr, i32 }
          cleanup
  br label %1376

1371:                                             ; preds = %1366, %1364
  %1372 = landingpad { ptr, i32 }
          cleanup
  br label %1375

1373:                                             ; preds = %1367
  %1374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #9
  br label %1375

1375:                                             ; preds = %1373, %1371
  %.pn575 = phi { ptr, i32 } [ %1374, %1373 ], [ %1372, %1371 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %264) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %263) #9
  br label %1376

1376:                                             ; preds = %1375, %1369
  %.pn575.pn = phi { ptr, i32 } [ %.pn575, %1375 ], [ %1370, %1369 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %263) #9
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #9
  br label %1387

1377:                                             ; preds = %1352, %1368
  call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %261) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %265) #9
  %1378 = load i32, ptr @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_a, align 1
  store i32 %1378, ptr %265, align 4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %266) #9
  store ptr %155, ptr %266, align 16, !tbaa !14
  %1379 = getelementptr inbounds i8, ptr %266, i64 8
  store ptr %176, ptr %1379, align 8, !tbaa !14
  %1380 = getelementptr inbounds i8, ptr %266, i64 16
  store ptr %265, ptr %1380, align 16, !tbaa !14
  %1381 = getelementptr inbounds i8, ptr %266, i64 24
  store ptr null, ptr %1381, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %267) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef nonnull @.str.4)
  %1382 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %267)
  br i1 %1382, label %1383, label %.thread685

1383:                                             ; preds = %1377
  %1384 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1385 unwind label %1389

1385:                                             ; preds = %1383
  br i1 %1384, label %1386, label %.critedge643

1386:                                             ; preds = %1385
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 3, ptr noundef nonnull %266)
          to label %.critedge643 unwind label %1389

1387:                                             ; preds = %1376, %1362
  %.pn575.pn.pn = phi { ptr, i32 } [ %.pn575.pn, %1376 ], [ %.pn573, %1362 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %261) #9
  br label %1388

1388:                                             ; preds = %1387, %1356
  %.pn575.pn.pn.pn = phi { ptr, i32 } [ %.pn575.pn.pn, %1387 ], [ %1357, %1356 ]
  %.180 = extractvalue { ptr, i32 } %.pn575.pn.pn.pn, 0
  %.178277 = extractvalue { ptr, i32 } %.pn575.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #9
  br label %1576

1389:                                             ; preds = %1386, %1383
  %1390 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %1391 = extractvalue { ptr, i32 } %1390, 0
  %1392 = extractvalue { ptr, i32 } %1390, 1
  %1393 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd5errorE) #9
  %1394 = icmp eq i32 %1392, %1393
  %1395 = call ptr @__cxa_begin_catch(ptr %1391) #9
  br i1 %1394, label %1396, label %1397

1396:                                             ; preds = %1389
  invoke void @__cxa_end_catch()
          to label %1414 unwind label %1400

.critedge643:                                     ; preds = %1385, %1386
  store ptr @.str.83, ptr %267, align 8, !tbaa !11
  br label %.thread685

1397:                                             ; preds = %1389
  store ptr @.str.82, ptr %267, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread685 unwind label %1398

1398:                                             ; preds = %1397
  %1399 = landingpad { ptr, i32 }
          cleanup
  br label %1423

1400:                                             ; preds = %1396
  %1401 = landingpad { ptr, i32 }
          cleanup
  br label %1423

.thread685:                                       ; preds = %1397, %.critedge643, %1377
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %268) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %268)
          to label %1402 unwind label %1406

1402:                                             ; preds = %.thread685
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %269) #9
  %1403 = load ptr, ptr %267, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %269, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 122, ptr noundef %1403)
          to label %1404 unwind label %1408

1404:                                             ; preds = %1402
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %269, ptr noundef nonnull align 8 dereferenceable(8) %268)
          to label %1405 unwind label %1410

1405:                                             ; preds = %1404
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %269) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #9
  br label %1414

1406:                                             ; preds = %.thread685
  %1407 = landingpad { ptr, i32 }
          cleanup
  br label %1413

1408:                                             ; preds = %1402
  %1409 = landingpad { ptr, i32 }
          cleanup
  br label %1412

1410:                                             ; preds = %1404
  %1411 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #9
  br label %1412

1412:                                             ; preds = %1410, %1408
  %.pn582 = phi { ptr, i32 } [ %1411, %1410 ], [ %1409, %1408 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %269) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #9
  br label %1413

1413:                                             ; preds = %1412, %1406
  %.pn582.pn = phi { ptr, i32 } [ %.pn582, %1412 ], [ %1407, %1406 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #9
  br label %1423

1414:                                             ; preds = %1396, %1405
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %266) #9
  call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %270) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %270, ptr noundef nonnull align 1 dereferenceable(9) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_speedx, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %271) #9
  store ptr %155, ptr %271, align 16, !tbaa !14
  %1415 = getelementptr inbounds i8, ptr %271, i64 8
  store ptr %176, ptr %1415, align 8, !tbaa !14
  %1416 = getelementptr inbounds i8, ptr %271, i64 16
  store ptr %270, ptr %1416, align 16, !tbaa !14
  %1417 = getelementptr inbounds i8, ptr %271, i64 24
  store ptr null, ptr %1417, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %272) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef nonnull @.str.4)
  %1418 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %272)
  br i1 %1418, label %1419, label %.thread689

1419:                                             ; preds = %1414
  %1420 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1421 unwind label %1424

1421:                                             ; preds = %1419
  br i1 %1420, label %1422, label %.critedge647

1422:                                             ; preds = %1421
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 3, ptr noundef nonnull %271)
          to label %.critedge647 unwind label %1424

1423:                                             ; preds = %1398, %1400, %1413
  %.pn582.pn.pn = phi { ptr, i32 } [ %.pn582.pn, %1413 ], [ %1401, %1400 ], [ %1399, %1398 ]
  %.184 = extractvalue { ptr, i32 } %.pn582.pn.pn, 0
  %.182281 = extractvalue { ptr, i32 } %.pn582.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %266) #9
  br label %1575

1424:                                             ; preds = %1422, %1419
  %1425 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %1426 = extractvalue { ptr, i32 } %1425, 0
  %1427 = extractvalue { ptr, i32 } %1425, 1
  %1428 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd5errorE) #9
  %1429 = icmp eq i32 %1427, %1428
  %1430 = call ptr @__cxa_begin_catch(ptr %1426) #9
  br i1 %1429, label %1431, label %1432

1431:                                             ; preds = %1424
  invoke void @__cxa_end_catch()
          to label %1449 unwind label %1435

.critedge647:                                     ; preds = %1421, %1422
  store ptr @.str.83, ptr %272, align 8, !tbaa !11
  br label %.thread689

1432:                                             ; preds = %1424
  store ptr @.str.82, ptr %272, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread689 unwind label %1433

1433:                                             ; preds = %1432
  %1434 = landingpad { ptr, i32 }
          cleanup
  br label %1458

1435:                                             ; preds = %1431
  %1436 = landingpad { ptr, i32 }
          cleanup
  br label %1458

.thread689:                                       ; preds = %1432, %.critedge647, %1414
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %273) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %273)
          to label %1437 unwind label %1441

1437:                                             ; preds = %.thread689
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %274) #9
  %1438 = load ptr, ptr %272, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %274, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 130, ptr noundef %1438)
          to label %1439 unwind label %1443

1439:                                             ; preds = %1437
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %274, ptr noundef nonnull align 8 dereferenceable(8) %273)
          to label %1440 unwind label %1445

1440:                                             ; preds = %1439
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %274) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %274) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %273) #9
  br label %1449

1441:                                             ; preds = %.thread689
  %1442 = landingpad { ptr, i32 }
          cleanup
  br label %1448

1443:                                             ; preds = %1437
  %1444 = landingpad { ptr, i32 }
          cleanup
  br label %1447

1445:                                             ; preds = %1439
  %1446 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %274) #9
  br label %1447

1447:                                             ; preds = %1445, %1443
  %.pn588 = phi { ptr, i32 } [ %1446, %1445 ], [ %1444, %1443 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %274) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #9
  br label %1448

1448:                                             ; preds = %1447, %1441
  %.pn588.pn = phi { ptr, i32 } [ %.pn588, %1447 ], [ %1442, %1441 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %273) #9
  br label %1458

1449:                                             ; preds = %1431, %1440
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %272) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #9
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %275) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %275, ptr noundef nonnull align 1 dereferenceable(3) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_x, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %276) #9
  store ptr %155, ptr %276, align 16, !tbaa !14
  %1450 = getelementptr inbounds i8, ptr %276, i64 8
  store ptr %176, ptr %1450, align 8, !tbaa !14
  %1451 = getelementptr inbounds i8, ptr %276, i64 16
  store ptr %275, ptr %1451, align 16, !tbaa !14
  %1452 = getelementptr inbounds i8, ptr %276, i64 24
  store ptr null, ptr %1452, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %277) #9
  call void @_ZN7testing8internal12ConstCharPtrC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef nonnull @.str.4)
  %1453 = call noundef zeroext i1 @_ZNK7testing8internal12ConstCharPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %277)
  br i1 %1453, label %1454, label %.thread693

1454:                                             ; preds = %1449
  %1455 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1456 unwind label %1459

1456:                                             ; preds = %1454
  br i1 %1455, label %1457, label %.critedge651

1457:                                             ; preds = %1456
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 3, ptr noundef nonnull %276)
          to label %.critedge651 unwind label %1459

1458:                                             ; preds = %1433, %1435, %1448
  %.pn588.pn.pn = phi { ptr, i32 } [ %.pn588.pn, %1448 ], [ %1436, %1435 ], [ %1434, %1433 ]
  %.188 = extractvalue { ptr, i32 } %.pn588.pn.pn, 0
  %.186285 = extractvalue { ptr, i32 } %.pn588.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %272) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #9
  br label %1574

1459:                                             ; preds = %1457, %1454
  %1460 = landingpad { ptr, i32 }
          catch ptr @_ZTIN4chen3cmd5errorE
          catch ptr null
  %1461 = extractvalue { ptr, i32 } %1460, 0
  %1462 = extractvalue { ptr, i32 } %1460, 1
  %1463 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd5errorE) #9
  %1464 = icmp eq i32 %1462, %1463
  %1465 = call ptr @__cxa_begin_catch(ptr %1461) #9
  br i1 %1464, label %1466, label %1467

1466:                                             ; preds = %1459
  invoke void @__cxa_end_catch()
          to label %1484 unwind label %1470

.critedge651:                                     ; preds = %1456, %1457
  store ptr @.str.83, ptr %277, align 8, !tbaa !11
  br label %.thread693

1467:                                             ; preds = %1459
  store ptr @.str.82, ptr %277, align 8, !tbaa !11
  invoke void @__cxa_end_catch()
          to label %.thread693 unwind label %1468

1468:                                             ; preds = %1467
  %1469 = landingpad { ptr, i32 }
          cleanup
  br label %1495

1470:                                             ; preds = %1466
  %1471 = landingpad { ptr, i32 }
          cleanup
  br label %1495

.thread693:                                       ; preds = %1467, %.critedge651, %1449
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %278) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %1472 unwind label %1476

1472:                                             ; preds = %.thread693
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %279) #9
  %1473 = load ptr, ptr %277, align 8, !tbaa !11
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %279, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 138, ptr noundef %1473)
          to label %1474 unwind label %1478

1474:                                             ; preds = %1472
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %1475 unwind label %1480

1475:                                             ; preds = %1474
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %278) #9
  br label %1484

1476:                                             ; preds = %.thread693
  %1477 = landingpad { ptr, i32 }
          cleanup
  br label %1483

1478:                                             ; preds = %1472
  %1479 = landingpad { ptr, i32 }
          cleanup
  br label %1482

1480:                                             ; preds = %1474
  %1481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #9
  br label %1482

1482:                                             ; preds = %1480, %1478
  %.pn594 = phi { ptr, i32 } [ %1481, %1480 ], [ %1479, %1478 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %279) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #9
  br label %1483

1483:                                             ; preds = %1482, %1476
  %.pn594.pn = phi { ptr, i32 } [ %.pn594, %1482 ], [ %1477, %1476 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %278) #9
  br label %1495

1484:                                             ; preds = %1466, %1475
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %277) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %276) #9
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %280) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %280, ptr noundef nonnull align 1 dereferenceable(6) @__const._ZN24ToolCmdTest_General_Test8TestBodyEv.param_editi, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %281) #9
  store ptr %155, ptr %281, align 16, !tbaa !14
  %1485 = getelementptr inbounds i8, ptr %281, i64 8
  store ptr %280, ptr %1485, align 8, !tbaa !14
  %1486 = getelementptr inbounds i8, ptr %281, i64 16
  store ptr null, ptr %1486, align 16, !tbaa !14
  invoke void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224) %2, i32 noundef 2, ptr noundef nonnull %281)
          to label %1487 unwind label %1496

1487:                                             ; preds = %1484
  %1488 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1489 unwind label %1496

1489:                                             ; preds = %1487
  br i1 %1488, label %1490, label %1502

1490:                                             ; preds = %1489
  %1491 = invoke noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv()
          to label %1492 unwind label %1498

1492:                                             ; preds = %1490
  br i1 %1491, label %1493, label %1520

1493:                                             ; preds = %1492
  %1494 = call ptr @__cxa_allocate_exception(i64 8) #9
  store ptr @.str.84, ptr %1494, align 16, !tbaa !14
  invoke void @__cxa_throw(ptr nonnull %1494, ptr nonnull @_ZTIPKc, ptr null) #10
          to label %1587 unwind label %1498

1495:                                             ; preds = %1468, %1470, %1483
  %.pn594.pn.pn = phi { ptr, i32 } [ %.pn594.pn, %1483 ], [ %1471, %1470 ], [ %1469, %1468 ]
  %.192 = extractvalue { ptr, i32 } %.pn594.pn.pn, 0
  %.190289 = extractvalue { ptr, i32 } %.pn594.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %277) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %276) #9
  br label %1573

1496:                                             ; preds = %1498, %1487, %1484
  %1497 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  br label %1514

1498:                                             ; preds = %1493, %1490
  %1499 = landingpad { ptr, i32 }
          catch ptr null
  %1500 = extractvalue { ptr, i32 } %1499, 0
  %1501 = call ptr @__cxa_begin_catch(ptr %1500) #9
  invoke void @__cxa_end_catch()
          to label %1502 unwind label %1496

1502:                                             ; preds = %1489, %1498
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %282) #9
  invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %282)
          to label %1503 unwind label %1506

1503:                                             ; preds = %1502
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %283) #9
  invoke void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8) %283, i32 noundef 1, ptr noundef nonnull @.str.3, i32 noundef 150, ptr noundef nonnull @.str.85)
          to label %1504 unwind label %1508

1504:                                             ; preds = %1503
  invoke void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8) %283, ptr noundef nonnull align 8 dereferenceable(8) %282)
          to label %1505 unwind label %1510

1505:                                             ; preds = %1504
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %283) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %283) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %282) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %282) #9
  br label %1520

1506:                                             ; preds = %1502
  %1507 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  br label %1513

1508:                                             ; preds = %1503
  %1509 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  br label %1512

1510:                                             ; preds = %1504
  %1511 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4chen3cmd11error_parseE
  call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %283) #9
  br label %1512

1512:                                             ; preds = %1510, %1508
  %.pn598 = phi { ptr, i32 } [ %1511, %1510 ], [ %1509, %1508 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %283) #9
  call void @_ZN7testing7MessageD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %282) #9
  br label %1513

1513:                                             ; preds = %1512, %1506
  %.pn598.pn = phi { ptr, i32 } [ %.pn598, %1512 ], [ %1507, %1506 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %282) #9
  br label %1514

1514:                                             ; preds = %1513, %1496
  %.pn598.pn.pn = phi { ptr, i32 } [ %.pn598.pn, %1513 ], [ %1497, %1496 ]
  %.195 = extractvalue { ptr, i32 } %.pn598.pn.pn, 0
  %.193292 = extractvalue { ptr, i32 } %.pn598.pn.pn, 1
  %1515 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4chen3cmd11error_parseE) #9
  %1516 = icmp eq i32 %.193292, %1515
  br i1 %1516, label %1517, label %1572

1517:                                             ; preds = %1514
  %1518 = call ptr @__cxa_begin_catch(ptr %.195) #9
  invoke void @_ZNK4chen3cmd5usageB5cxx11ERKNS0_11error_parseE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %284, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(80) %1518)
          to label %1519 unwind label %1533

1519:                                             ; preds = %1517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #9
  invoke void @__cxa_end_catch()
          to label %1520 unwind label %1535

1520:                                             ; preds = %1519, %1505, %1492
  invoke void @_ZNK4chen3cmd5usageB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %285, ptr noundef nonnull align 8 dereferenceable(224) %2)
          to label %1521 unwind label %1538

1521:                                             ; preds = %1520
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %287) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %288) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %288)
          to label %1522 unwind label %1542

1522:                                             ; preds = %1521
  invoke void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %286, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %287)
          to label %1523 unwind label %1544

1523:                                             ; preds = %1522
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %288) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %290) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %291) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %290, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %291)
          to label %1524 unwind label %1547

1524:                                             ; preds = %1523
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %292) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %293) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %293)
          to label %1525 unwind label %1549

1525:                                             ; preds = %1524
  invoke void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %289, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %290, ptr noundef nonnull align 8 dereferenceable(32) %292)
          to label %1526 unwind label %1551

1526:                                             ; preds = %1525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %293) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %295) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %296) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %295, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %296)
          to label %1527 unwind label %1555

1527:                                             ; preds = %1526
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %297) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %298) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %298)
          to label %1528 unwind label %1557

1528:                                             ; preds = %1527
  invoke void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %294, ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %295, ptr noundef nonnull align 8 dereferenceable(32) %297)
          to label %1529 unwind label %1559

1529:                                             ; preds = %1528
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %298) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %296) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %295) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %300) #9
  call void @"_ZNSt8functionIFvRKN4chen3cmd6actionEmmEEC2IZN24ToolCmdTest_General_Test8TestBodyEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 1 dereferenceable(1) %300) #9
  call void @_ZNSt8functionIFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %301, ptr null) #9
  invoke void @_ZNK4chen3cmd5visitESt8functionIFvRKNS0_6actionEmmEES1_IFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull %299, ptr noundef nonnull %301)
          to label %1530 unwind label %1563

1530:                                             ; preds = %1529
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %300) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %302) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %303) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %303)
          to label %1531 unwind label %1567

1531:                                             ; preds = %1530
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %305) #9
  call void @"_ZNSt8functionIFvRKN4chen3cmd6optionEmmEEC2IZN24ToolCmdTest_General_Test8TestBodyEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef nonnull align 1 dereferenceable(1) %305) #9
  call void @_ZNSt8functionIFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEC2EDn(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr null) #9
  invoke void @_ZNK4chen3cmd5visitERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFvRKNS0_6optionEmmEES9_IFbS8_S8_EE(ptr noundef nonnull align 8 dereferenceable(224) %2, ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef nonnull %304, ptr noundef nonnull %306)
          to label %1532 unwind label %1569

1532:                                             ; preds = %1531
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %305) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %303) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %302) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %281) #9
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %280) #9
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %275) #9
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %270) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %265) #9
  call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %259) #9
  call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %258) #9
  call void @llvm.lifetime.end.p0(i64 10, ptr nonnull %215) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %214) #9
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %213) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %212) #9
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %211) #9
  call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %210) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %209) #9
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %176) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %156) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %155) #9
  call void @_ZN4chen3cmdD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %2) #9
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %2) #9
  ret void

1533:                                             ; preds = %1517
  %1534 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %1537 unwind label %1584

1535:                                             ; preds = %1519
  %1536 = landingpad { ptr, i32 }
          cleanup
  br label %1537

1537:                                             ; preds = %1533, %1535
  %.pn602 = phi { ptr, i32 } [ %1536, %1535 ], [ %1534, %1533 ]
  %.196 = extractvalue { ptr, i32 } %.pn602, 0
  %.194293 = extractvalue { ptr, i32 } %.pn602, 1
  br label %1572

1538:                                             ; preds = %1520
  %1539 = landingpad { ptr, i32 }
          cleanup
  %1540 = extractvalue { ptr, i32 } %1539, 0
  %1541 = extractvalue { ptr, i32 } %1539, 1
  br label %1572

1542:                                             ; preds = %1521
  %1543 = landingpad { ptr, i32 }
          cleanup
  br label %1546

1544:                                             ; preds = %1522
  %1545 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #9
  br label %1546

1546:                                             ; preds = %1544, %1542
  %.pn604 = phi { ptr, i32 } [ %1545, %1544 ], [ %1543, %1542 ]
  %.197 = extractvalue { ptr, i32 } %.pn604, 0
  %.195294 = extractvalue { ptr, i32 } %.pn604, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %288) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #9
  br label %1572

1547:                                             ; preds = %1523
  %1548 = landingpad { ptr, i32 }
          cleanup
  br label %1554

1549:                                             ; preds = %1524
  %1550 = landingpad { ptr, i32 }
          cleanup
  br label %1553

1551:                                             ; preds = %1525
  %1552 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #9
  br label %1553

1553:                                             ; preds = %1551, %1549
  %.pn606 = phi { ptr, i32 } [ %1552, %1551 ], [ %1550, %1549 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %293) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #9
  br label %1554

1554:                                             ; preds = %1553, %1547
  %.pn606.pn = phi { ptr, i32 } [ %.pn606, %1553 ], [ %1548, %1547 ]
  %.199 = extractvalue { ptr, i32 } %.pn606.pn, 0
  %.197296 = extractvalue { ptr, i32 } %.pn606.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #9
  br label %1572

1555:                                             ; preds = %1526
  %1556 = landingpad { ptr, i32 }
          cleanup
  br label %1562

1557:                                             ; preds = %1527
  %1558 = landingpad { ptr, i32 }
          cleanup
  br label %1561

1559:                                             ; preds = %1528
  %1560 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #9
  br label %1561

1561:                                             ; preds = %1559, %1557
  %.pn609 = phi { ptr, i32 } [ %1560, %1559 ], [ %1558, %1557 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %298) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #9
  br label %1562

1562:                                             ; preds = %1561, %1555
  %.pn609.pn = phi { ptr, i32 } [ %.pn609, %1561 ], [ %1556, %1555 ]
  %.201 = extractvalue { ptr, i32 } %.pn609.pn, 0
  %.199298 = extractvalue { ptr, i32 } %.pn609.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %296) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %295) #9
  br label %1572

1563:                                             ; preds = %1529
  %1564 = landingpad { ptr, i32 }
          cleanup
  %1565 = extractvalue { ptr, i32 } %1564, 0
  %1566 = extractvalue { ptr, i32 } %1564, 1
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %300) #9
  br label %1572

1567:                                             ; preds = %1530
  %1568 = landingpad { ptr, i32 }
          cleanup
  br label %1571

1569:                                             ; preds = %1531
  %1570 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %305) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #9
  br label %1571

1571:                                             ; preds = %1569, %1567
  %.pn612 = phi { ptr, i32 } [ %1570, %1569 ], [ %1568, %1567 ]
  %.202 = extractvalue { ptr, i32 } %.pn612, 0
  %.200299 = extractvalue { ptr, i32 } %.pn612, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %303) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %302) #9
  br label %1572

1572:                                             ; preds = %1571, %1563, %1562, %1554, %1546, %1538, %1537, %1514
  %.201300 = phi i32 [ %.200299, %1571 ], [ %1566, %1563 ], [ %.199298, %1562 ], [ %.197296, %1554 ], [ %.195294, %1546 ], [ %1541, %1538 ], [ %.194293, %1537 ], [ %.193292, %1514 ]
  %.203 = phi ptr [ %.202, %1571 ], [ %1565, %1563 ], [ %.201, %1562 ], [ %.199, %1554 ], [ %.197, %1546 ], [ %1540, %1538 ], [ %.196, %1537 ], [ %.195, %1514 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %281) #9
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %280) #9
  br label %1573

1573:                                             ; preds = %1572, %1495
  %.202301 = phi i32 [ %.201300, %1572 ], [ %.190289, %1495 ]
  %.204 = phi ptr [ %.203, %1572 ], [ %.192, %1495 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %275) #9
  br label %1574

1574:                                             ; preds = %1573, %1458
  %.203302 = phi i32 [ %.202301, %1573 ], [ %.186285, %1458 ]
  %.205 = phi ptr [ %.204, %1573 ], [ %.188, %1458 ]
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %270) #9
  br label %1575

1575:                                             ; preds = %1574, %1423
  %.204303 = phi i32 [ %.203302, %1574 ], [ %.182281, %1423 ]
  %.206 = phi ptr [ %.205, %1574 ], [ %.184, %1423 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %265) #9
  br label %1576

1576:                                             ; preds = %1575, %1388
  %.205304 = phi i32 [ %.204303, %1575 ], [ %.178277, %1388 ]
  %.207 = phi ptr [ %.206, %1575 ], [ %.180, %1388 ]
  call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %259) #9
  call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %258) #9
  br label %1577

1577:                                             ; preds = %1576, %1355
  %.206305 = phi i32 [ %.205304, %1576 ], [ %.173272, %1355 ]
  %.208 = phi ptr [ %.207, %1576 ], [ %.175, %1355 ]
  call void @llvm.lifetime.end.p0(i64 10, ptr nonnull %215) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %214) #9
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %213) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %212) #9
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %211) #9
  call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %210) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %209) #9
  br label %1578

1578:                                             ; preds = %1577, %1136
  %.207306 = phi i32 [ %.206305, %1577 ], [ %.138237, %1136 ]
  %.209 = phi ptr [ %.208, %1577 ], [ %.140, %1136 ]
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %176) #9
  br label %1579

1579:                                             ; preds = %1578, %981
  %.208307 = phi i32 [ %.207306, %1578 ], [ %.114213, %981 ]
  %.210 = phi ptr [ %.209, %1578 ], [ %.116, %981 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %156) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %155) #9
  br label %1580

1580:                                             ; preds = %1579, %885, %877, %839, %804, %757, %733, %732, %684, %634, %584, %534, %484, %470, %456, %442, %428, %414, %406, %398, %390, %382, %374
  %.209308 = phi i32 [ %.208307, %1579 ], [ %.99198, %885 ], [ %.97196, %877 ], [ %.91190, %839 ], [ %.85184, %804 ], [ %.79178, %757 ], [ %736, %733 ], [ %.77176, %732 ], [ %.68167, %684 ], [ %.59158, %634 ], [ %.50149, %584 ], [ %.41140, %534 ], [ %.32131, %484 ], [ %.28127, %470 ], [ %.24123, %456 ], [ %.20119, %442 ], [ %.16115, %428 ], [ %.12111, %414 ], [ %.10109, %406 ], [ %.8107, %398 ], [ %.6105, %390 ], [ %.4103, %382 ], [ %.2101, %374 ]
  %.211 = phi ptr [ %.210, %1579 ], [ %.101, %885 ], [ %.99, %877 ], [ %.93, %839 ], [ %.87, %804 ], [ %.81, %757 ], [ %735, %733 ], [ %.77, %732 ], [ %.68, %684 ], [ %.59, %634 ], [ %.50, %584 ], [ %.41, %534 ], [ %.32, %484 ], [ %.28, %470 ], [ %.24, %456 ], [ %.20, %442 ], [ %.16, %428 ], [ %.12, %414 ], [ %.10, %406 ], [ %.8, %398 ], [ %.6, %390 ], [ %.4, %382 ], [ %.2, %374 ]
  call void @_ZN4chen3cmdD2Ev(ptr noundef nonnull align 8 dereferenceable(224) %2) #9
  br label %1581

1581:                                             ; preds = %1580, %366
  %.210309 = phi i32 [ %.209308, %1580 ], [ %.062, %366 ]
  %.212 = phi ptr [ %.211, %1580 ], [ %.0, %366 ]
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %2) #9
  %1582 = insertvalue { ptr, i32 } poison, ptr %.212, 0
  %1583 = insertvalue { ptr, i32 } %1582, i32 %.210309, 1
  resume { ptr, i32 } %1583

1584:                                             ; preds = %1533
  %1585 = landingpad { ptr, i32 }
          catch ptr null
  %1586 = extractvalue { ptr, i32 } %1585, 0
  call void @__clang_call_terminate(ptr %1586) #11
  unreachable

1587:                                             ; preds = %1493
  unreachable
}

declare void @_ZN4chen3cmdC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3

declare void @_ZN4chen3cmd6createERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_St8functionIFvRKS0_EE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #3

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

declare void @_ZN4chen3cmd6defineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RKNS_3anyE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7testing8internal10AlwaysTrueEv() local_unnamed_addr #3

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

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

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

declare void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN7testing8internal12AssertHelperC1ENS_14TestPartResult4TypeEPKciS5_(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #3

declare void @_ZNK7testing8internal12AssertHelperaSERKNS_7MessageE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

declare void @_ZN4chen3cmd6changeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZNK4chen3cmd5existERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK7testing15AssertionResultcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

declare void @_ZN7testing8internal30GetBoolAssertionFailureMessageB5cxx11ERKNS_15AssertionResultEPKcS5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

declare void @_ZN4chen3cmd7suggestERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

declare void @_ZN4chen3cmd5parseEiPPc(ptr noundef nonnull align 8 dereferenceable(224), i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4chen3cmd4argcEv(ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIPPcS5_EENS_15AssertionResultEPKcS8_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA8_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare void @_ZNK4chen3cmd7currentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA6_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare noundef i32 @_ZNK4chen3cmd6intValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare void @_ZNK4chen3cmd6strValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZNK4chen3cmd5isSetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZNK4chen3cmd7boolValERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZNK4chen3cmd7objectsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7testing8internal8EqHelperILb0EE7CompareIA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_15AssertionResultEPKcSD_RKT_RKT0_(ptr dead_on_unwind noalias writable sret(%"class.testing::AssertionResult") align 8, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @_ZNK4chen3cmd5usageB5cxx11ERKNS0_11error_parseE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #3

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

declare void @_ZNK4chen3cmd5usageB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #3

declare void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare void @_ZNK4chen3cmd5usageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare void @_ZNK4chen3cmd5visitESt8functionIFvRKNS0_6actionEmmEES1_IFbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_EE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

declare void @_ZNK4chen3cmd5visitERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFvRKNS0_6optionEmmEES9_IFbS8_S8_EE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"_ZTSN7testing8internal12ConstCharPtrE", !13, i64 0}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!13, !13, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass